diff options
-rw-r--r-- | board/nuvoton/arbel_evb/arbel_evb.c | 8 | ||||
-rw-r--r-- | configs/arbel_evb_defconfig | 4 | ||||
-rw-r--r-- | drivers/pinctrl/nuvoton/pinctrl-npcm8xx.c | 18 | ||||
-rw-r--r-- | include/configs/arbel.h | 2 |
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" \ |