diff --git a/board/boundary/nitrogen8mm_som/lpddr4_timing.c b/board/boundary/nitrogen8mm_som/lpddr4_timing.c index 5759f04f1fc4206d980187ebf6c6c73b32299580..9202ba63e54e206c8c4852017100df73b13afed5 100644 --- a/board/boundary/nitrogen8mm_som/lpddr4_timing.c +++ b/board/boundary/nitrogen8mm_som/lpddr4_timing.c @@ -12,6 +12,22 @@ #define LPDDR4_CS 0x3 /* 2 ranks */ +#if CONFIG_DDR_MB == 2048 + /* Address map is from MSB 28: cs, r14, r13-r0, b2-b0, c9-c0 */ +#define VAL_DDRC_ADDRMAP0 0x00000016 +#define VAL_DDRC_ADDRMAP6 0x0f070707 +#elif CONFIG_DDR_MB == 3072 + /* Address map is from MSB 29: r15, r14, cs, r13-r0, b2-b0, c9-c0 */ +#define VAL_DDRC_ADDRMAP0 0x00000015 +#define VAL_DDRC_ADDRMAP6 0x48080707 +#elif CONFIG_DDR_MB == 4096 + /* Address map is from MSB 29: cs, r15, r14, r13-r0, b2-b0, c9-c0 */ +#define VAL_DDRC_ADDRMAP0 0x00000017 +#define VAL_DDRC_ADDRMAP6 0x07070707 +#else +#error unsupported memory size +#endif + static struct dram_cfg_param lpddr4_ddrc_cfg[] = { /* Start to config, default 3200mbps */ /* dis_dq=1, indicates no reads or writes are issued to SDRAM */ @@ -60,13 +76,13 @@ static struct dram_cfg_param lpddr4_ddrc_cfg[] = { { DDRC_DRAMTMG2(0), 0x070E1213 }, /* address mapping */ - { DDRC_ADDRMAP0(0), 0x00000016 }, + { DDRC_ADDRMAP0(0), VAL_DDRC_ADDRMAP0 }, { DDRC_ADDRMAP3(0), 0x00000000 }, { DDRC_ADDRMAP4(0), 0x00001f1f }, { DDRC_ADDRMAP1(0), 0x00080808 }, { DDRC_ADDRMAP2(0), 0x00000000 }, { DDRC_ADDRMAP5(0), 0x07070707 }, - { DDRC_ADDRMAP6(0), 0x0F070707 }, + { DDRC_ADDRMAP6(0), VAL_DDRC_ADDRMAP6 }, { DDRC_ADDRMAP7(0), 0x00000f0f }, /* performance setting */ diff --git a/board/boundary/nitrogen8mm_som/nitrogen8mm_som.c b/board/boundary/nitrogen8mm_som/nitrogen8mm_som.c index fff139c62a700b77341ba3c80d2fb837caafdecd..f2df500f6c7ac2c45e5e8b030401b5e0f7251034 100644 --- a/board/boundary/nitrogen8mm_som/nitrogen8mm_som.c +++ b/board/boundary/nitrogen8mm_som/nitrogen8mm_som.c @@ -120,14 +120,26 @@ int board_postclk_init(void) } #endif +#define MAX_LOW_SIZE (0x100000000ULL - CONFIG_SYS_SDRAM_BASE) +#define SDRAM_SIZE ((1ULL * CONFIG_DDR_MB) << 20) + +#if SDRAM_SIZE > MAX_LOW_SIZE +#define MEM_SIZE MAX_LOW_SIZE +#else +#define MEM_SIZE SDRAM_SIZE +#endif + +int dram_init_banksize(void) +{ + gd->bd->bi_dram[0].start = CONFIG_SYS_SDRAM_BASE; + gd->bd->bi_dram[0].size = SDRAM_SIZE; + return 0; +} + int dram_init(void) { /* rom_pointer[1] contains the size of TEE occupies */ - if (rom_pointer[1]) - gd->ram_size = PHYS_SDRAM_SIZE - rom_pointer[1]; - else - gd->ram_size = PHYS_SDRAM_SIZE; - + gd->ram_size = MEM_SIZE - rom_pointer[1]; return 0; } diff --git a/configs/nitrogen8mm_som_4g_defconfig b/configs/nitrogen8mm_som_4g_defconfig new file mode 100644 index 0000000000000000000000000000000000000000..71800f5de3648ce91b6ab075761e77ca2e4dd99b --- /dev/null +++ b/configs/nitrogen8mm_som_4g_defconfig @@ -0,0 +1,97 @@ +CONFIG_ARM=y +CONFIG_ARCH_IMX8M=y +CONFIG_SYS_TEXT_BASE=0x40200000 +CONFIG_SPL_GPIO_SUPPORT=y +CONFIG_SPL_LIBCOMMON_SUPPORT=y +CONFIG_SPL_LIBGENERIC_SUPPORT=y +CONFIG_SYS_MALLOC_F_LEN=0x2000 +CONFIG_TARGET_NITROGEN8MM_SOM=y +CONFIG_SPL_MMC_SUPPORT=y +CONFIG_SPL_SERIAL_SUPPORT=y +CONFIG_SPL_DRIVERS_MISC_SUPPORT=y +CONFIG_SPL=y +CONFIG_DEBUG_UART_BASE=0x30860000 +CONFIG_DEBUG_UART_CLOCK=25000000 +CONFIG_DEFAULT_DEVICE_TREE="imx8mm-nitrogen8mm_som" +CONFIG_DEBUG_UART=y +CONFIG_DISTRO_DEFAULTS=y +CONFIG_FIT=y +CONFIG_SPL_LOAD_FIT=y +CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=arch/arm/mach-imx/spl_sd.cfg,SPL_TEXT_BASE=0x7E1000,DDR_MB=4096,DEFCONFIG=\"nitrogen8mm_som_4g\"" +CONFIG_BOOTSTAGE_STASH_SIZE=4096 +CONFIG_ARCH_MISC_INIT=y +CONFIG_SPL_BOARD_INIT=y +CONFIG_SPL_I2C_SUPPORT=y +CONFIG_SPL_USB_HOST_SUPPORT=y +CONFIG_SPL_USB_GADGET_SUPPORT=y +CONFIG_SPL_USB_SDP_SUPPORT=y +CONFIG_SPL_WATCHDOG_SUPPORT=y +CONFIG_CMD_IMLS=y +CONFIG_CMD_MEMTEST=y +CONFIG_SYS_ALT_MEMTEST=y +CONFIG_CMD_GPIO=y +CONFIG_CMD_GPT=y +CONFIG_CMD_I2C=y +CONFIG_CMD_MMC=y +CONFIG_CMD_USB=y +CONFIG_CMD_USB_MASS_STORAGE=y +CONFIG_CMD_CACHE=y +CONFIG_CMD_TIME=y +CONFIG_CMD_REGULATOR=y +CONFIG_CMD_EXT4_WRITE=y +# CONFIG_SPL_DOS_PARTITION is not set +# CONFIG_ISO_PARTITION is not set +# CONFIG_SPL_EFI_PARTITION is not set +CONFIG_PARTITION_TYPE_GUID=y +CONFIG_OF_CONTROL=y +CONFIG_ENV_IS_IN_MMC=y +CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y +CONFIG_NET_RANDOM_ETHADDR=y +CONFIG_SYS_FSL_SEC_LE=y +CONFIG_IMX8M_LPDDR4=y +CONFIG_USB_FUNCTION_FASTBOOT=y +CONFIG_FASTBOOT_BUF_ADDR=0x42800000 +CONFIG_FASTBOOT_BUF_SIZE=0x40000000 +CONFIG_FASTBOOT_FLASH=y +CONFIG_FASTBOOT_FLASH_MMC_DEV=0 +CONFIG_DM_GPIO=y +CONFIG_DM_I2C=y +CONFIG_SYS_I2C_MXC=y +CONFIG_SYS_I2C_MXC_I2C1=y +CONFIG_SYS_I2C_MXC_I2C2=y +CONFIG_SYS_I2C_MXC_I2C3=y +CONFIG_SYS_I2C_MXC_I2C4=y +CONFIG_DM_MMC=y +CONFIG_MMC_IO_VOLTAGE=y +CONFIG_MMC_UHS_SUPPORT=y +CONFIG_FSL_ESDHC=y +CONFIG_PHYLIB=y +CONFIG_PHY_ATHEROS=y +CONFIG_NETDEVICES=y +CONFIG_FEC_MXC=y +CONFIG_FEC_PHY_BITBANG=y +CONFIG_PINCTRL=y +CONFIG_PINCTRL_IMX8M=y +CONFIG_DM_REGULATOR=y +CONFIG_DM_REGULATOR_FIXED=y +CONFIG_DM_REGULATOR_GPIO=y +CONFIG_DEBUG_UART_MXC=y +CONFIG_MXC_UART=y +CONFIG_DM_THERMAL=y +CONFIG_USB=y +CONFIG_DM_USB=y +CONFIG_USB_EHCI_HCD=y +CONFIG_MXC_USB_OTG_HACTIVE=y +CONFIG_USB_STORAGE=y +CONFIG_USB_KEYBOARD=y +CONFIG_SYS_USB_EVENT_POLL_VIA_CONTROL_EP=y +CONFIG_USB_GADGET=y +CONFIG_USB_GADGET_MANUFACTURER="Boundary" +CONFIG_USB_GADGET_VENDOR_NUM=0x3016 +CONFIG_USB_GADGET_PRODUCT_NUM=0x0001 +CONFIG_CI_UDC=y +CONFIG_USB_ETHER=y +CONFIG_USB_ETH_CDC=y +CONFIG_USBNET_DEVADDR="00:19:b8:00:00:02" +CONFIG_USBNET_HOST_ADDR="00:19:b8:00:00:01" +CONFIG_USB_HOST_ETHER=y