summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--board/nuvoton/arbel_evb/arbel_evb.c8
-rw-r--r--configs/arbel_evb_defconfig4
-rw-r--r--drivers/pinctrl/nuvoton/pinctrl-npcm8xx.c18
-rw-r--r--include/configs/arbel.h2
4 files changed, 27 insertions, 5 deletions
diff --git a/board/nuvoton/arbel_evb/arbel_evb.c b/board/nuvoton/arbel_evb/arbel_evb.c
index 1f519219e7e..55e93a77f0f 100644
--- a/board/nuvoton/arbel_evb/arbel_evb.c
+++ b/board/nuvoton/arbel_evb/arbel_evb.c
@@ -59,17 +59,21 @@ int dram_init(void)
int dram_init_banksize(void)
{
+ phys_size_t ram_size = gd->ram_size;
gd->bd->bi_dram[0].start = 0;
- switch (gd->ram_size) {
+ #if defined(CONFIG_SYS_MEM_TOP_HIDE)
+ ram_size += CONFIG_SYS_MEM_TOP_HIDE;
+ #endif
+ switch (ram_size) {
case DRAM_512MB_ECC_SIZE:
case DRAM_512MB_SIZE:
case DRAM_1GB_ECC_SIZE:
case DRAM_1GB_SIZE:
case DRAM_2GB_ECC_SIZE:
case DRAM_2GB_SIZE:
- gd->bd->bi_dram[0].size = gd->ram_size;
+ gd->bd->bi_dram[0].size = ram_size;
gd->bd->bi_dram[1].start = 0;
gd->bd->bi_dram[1].size = 0;
break;
diff --git a/configs/arbel_evb_defconfig b/configs/arbel_evb_defconfig
index 08753aebc00..9983d3a58b2 100644
--- a/configs/arbel_evb_defconfig
+++ b/configs/arbel_evb_defconfig
@@ -7,7 +7,7 @@ CONFIG_NR_DRAM_BANKS=2
CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y
CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x06208000
CONFIG_ENV_SIZE=0x40000
-CONFIG_ENV_OFFSET=0x3C0000
+CONFIG_ENV_OFFSET=0x7C0000
CONFIG_ENV_SECT_SIZE=0x1000
CONFIG_DM_GPIO=y
CONFIG_DEFAULT_DEVICE_TREE="nuvoton-npcm845-evb"
@@ -17,7 +17,7 @@ CONFIG_ARCH_NPCM8XX=y
CONFIG_SYS_SKIP_UART_INIT=y
CONFIG_TARGET_ARBEL_EVB=y
CONFIG_SYS_LOAD_ADDR=0x06208000
-CONFIG_ENV_ADDR=0x803C0000
+CONFIG_ENV_ADDR=0x807C0000
CONFIG_FIT=y
CONFIG_FIT_VERBOSE=y
CONFIG_SYS_BOOTM_LEN=0x1400000
diff --git a/drivers/pinctrl/nuvoton/pinctrl-npcm8xx.c b/drivers/pinctrl/nuvoton/pinctrl-npcm8xx.c
index ff49819b58d..67e564f85c3 100644
--- a/drivers/pinctrl/nuvoton/pinctrl-npcm8xx.c
+++ b/drivers/pinctrl/nuvoton/pinctrl-npcm8xx.c
@@ -48,6 +48,7 @@
#define GPIO_OES 0x70 /* Output Enable Set */
#define GPIO_OEC 0x74 /* Output Enable Clear */
+#define NPCM8XX_NUM_GPIO_BANK 8
#define NPCM8XX_GPIO_PER_BANK 32
#define GPIOX_OFFSET 16
@@ -967,6 +968,18 @@ static int npcm8xx_pinconf_set(struct udevice *dev, unsigned int selector,
}
#endif
+static void npcm8xx_pinctrl_clear_events(struct npcm8xx_pinctrl_priv *priv)
+{
+ void __iomem *base;
+ int i;
+
+ for (i = 0; i < NPCM8XX_NUM_GPIO_BANK; i++) {
+ base = priv->gpio_base + (0x1000 * i);
+ clrbits_le32(base + GPIO_EVEN, 0xFFFFFFFF);
+ setbits_le32(base + GPIO_EVST, 0xFFFFFFFF);
+ }
+}
+
static struct pinctrl_ops npcm8xx_pinctrl_ops = {
.set_state = pinctrl_generic_set_state,
.get_pins_count = npcm8xx_get_pins_count,
@@ -1001,6 +1014,11 @@ static int npcm8xx_pinctrl_probe(struct udevice *dev)
if (IS_ERR(priv->rst_regmap))
return -EINVAL;
+ /*
+ * Clear all previous gpio events, otherwise it may produce
+ * unexpected interrupts during kernel booting.
+ */
+ npcm8xx_pinctrl_clear_events(priv);
return 0;
}
diff --git a/include/configs/arbel.h b/include/configs/arbel.h
index 61f6a5e2438..b5f684e88fe 100644
--- a/include/configs/arbel.h
+++ b/include/configs/arbel.h
@@ -16,7 +16,7 @@
{ 9600, 14400, 19200, 38400, 57600, 115200, 230400, 380400, 460800, 921600 }
/* Default environemnt variables */
-#define CFG_EXTRA_ENV_SETTINGS "uimage_flash_addr=80400000\0" \
+#define CFG_EXTRA_ENV_SETTINGS "uimage_flash_addr=80800000\0" \
"stdin=serial\0" \
"stdout=serial\0" \
"stderr=serial\0" \