From 8c42b20451d6360e5105eba372bd45b413018edf Mon Sep 17 00:00:00 2001 From: Troy Kisky <troy.kisky@boundarydevices.com> Date: Mon, 17 Sep 2018 10:36:34 -0700 Subject: [PATCH] nitrogen8m: add 3G/4G memory support Signed-off-by: Troy Kisky <troy.kisky@boundarydevices.com> --- board/boundary/nitrogen8m/ddr/ddr_init.c | 8 +++ board/boundary/nitrogen8m/nitrogen8m.c | 22 ++++-- configs/nitrogen8m_3g_defconfig | 88 ++++++++++++++++++++++++ configs/nitrogen8m_4g_defconfig | 88 ++++++++++++++++++++++++ configs/nitrogen8m_defconfig | 2 +- include/configs/nitrogen8m.h | 1 - 6 files changed, 202 insertions(+), 7 deletions(-) create mode 100644 configs/nitrogen8m_3g_defconfig create mode 100644 configs/nitrogen8m_4g_defconfig diff --git a/board/boundary/nitrogen8m/ddr/ddr_init.c b/board/boundary/nitrogen8m/ddr/ddr_init.c index dff466177b8..a93a3c0491e 100644 --- a/board/boundary/nitrogen8m/ddr/ddr_init.c +++ b/board/boundary/nitrogen8m/ddr/ddr_init.c @@ -93,7 +93,15 @@ void lpddr4_800MHz_cfg_umctl2(void) /* addrmap_row_b11, addrmap_row_b10_b2, addrmap_row_b1, addrmap_row_b0 */ reg32_write(DDRC_ADDRMAP5(0), 0x07070707); /* addrmap_row_b15, addrmap_row_b14, addrmap_row_b13, addrmap_row_b12 */ +#if CONFIG_DDR_MB == 2048 reg32_write(DDRC_ADDRMAP6(0), 0x0f080707); +#elif CONFIG_DDR_MB == 3072 + reg32_write(DDRC_ADDRMAP6(0), 0x48080707); +#elif CONFIG_DDR_MB == 4096 + reg32_write(DDRC_ADDRMAP6(0), 0x08080707); +#elif +#error unsupported memory size +#endif reg32_write(DDRC_ADDRMAP7(0), 0x00000f0f); /* 667mts frequency setting */ diff --git a/board/boundary/nitrogen8m/nitrogen8m.c b/board/boundary/nitrogen8m/nitrogen8m.c index f1ea44ad3f7..1b3cadc34d6 100644 --- a/board/boundary/nitrogen8m/nitrogen8m.c +++ b/board/boundary/nitrogen8m/nitrogen8m.c @@ -123,14 +123,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/nitrogen8m_3g_defconfig b/configs/nitrogen8m_3g_defconfig new file mode 100644 index 00000000000..226791f9178 --- /dev/null +++ b/configs/nitrogen8m_3g_defconfig @@ -0,0 +1,88 @@ +CONFIG_ARM=y +CONFIG_ARCH_MX8M=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_NITROGEN8M=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="imx8mq-nitrogen8m" +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,DDR_MB=3072,DEFCONFIG=\"nitrogen8m_3g\"" +CONFIG_SPL_BOARD_INIT=y +CONFIG_SPL_I2C_SUPPORT=y +CONFIG_SPL_POWER_SUPPORT=y +CONFIG_SPL_WATCHDOG_SUPPORT=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_BMP=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_NET_RANDOM_ETHADDR=y +CONFIG_USB_FUNCTION_FASTBOOT=y +CONFIG_FASTBOOT_BUF_ADDR=0x40480000 +CONFIG_FASTBOOT_BUF_SIZE=0x20000000 +CONFIG_FASTBOOT_FLASH=y +CONFIG_FASTBOOT_FLASH_MMC_DEV=0 +CONFIG_DM_GPIO=y +CONFIG_DM_I2C=y +CONFIG_SYS_I2C_MXC=y +CONFIG_DM_MMC=y +CONFIG_FSL_ESDHC=y +CONFIG_SPI_FLASH=y +CONFIG_SPI_FLASH_WINBOND=y +CONFIG_PHYLIB=y +CONFIG_PHY_ATHEROS=y +CONFIG_NETDEVICES=y +CONFIG_FEC_MXC=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_XHCI_HCD=y +CONFIG_USB_XHCI_DWC3=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_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 +CONFIG_USB_ETHER_ASIX=y +CONFIG_USB_ETHER_MCS7830=y +CONFIG_USB_ETHER_SMSC95XX=y +CONFIG_VIDEO=y +CONFIG_VIDEO_IMXDCSS=y +CONFIG_VIDEO_IMX8_HDMI=y diff --git a/configs/nitrogen8m_4g_defconfig b/configs/nitrogen8m_4g_defconfig new file mode 100644 index 00000000000..f390ad5a5ae --- /dev/null +++ b/configs/nitrogen8m_4g_defconfig @@ -0,0 +1,88 @@ +CONFIG_ARM=y +CONFIG_ARCH_MX8M=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_NITROGEN8M=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="imx8mq-nitrogen8m" +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,DDR_MB=4096,DEFCONFIG=\"nitrogen8m_4g\"" +CONFIG_SPL_BOARD_INIT=y +CONFIG_SPL_I2C_SUPPORT=y +CONFIG_SPL_POWER_SUPPORT=y +CONFIG_SPL_WATCHDOG_SUPPORT=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_BMP=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_NET_RANDOM_ETHADDR=y +CONFIG_USB_FUNCTION_FASTBOOT=y +CONFIG_FASTBOOT_BUF_ADDR=0x40480000 +CONFIG_FASTBOOT_BUF_SIZE=0x20000000 +CONFIG_FASTBOOT_FLASH=y +CONFIG_FASTBOOT_FLASH_MMC_DEV=0 +CONFIG_DM_GPIO=y +CONFIG_DM_I2C=y +CONFIG_SYS_I2C_MXC=y +CONFIG_DM_MMC=y +CONFIG_FSL_ESDHC=y +CONFIG_SPI_FLASH=y +CONFIG_SPI_FLASH_WINBOND=y +CONFIG_PHYLIB=y +CONFIG_PHY_ATHEROS=y +CONFIG_NETDEVICES=y +CONFIG_FEC_MXC=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_XHCI_HCD=y +CONFIG_USB_XHCI_DWC3=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_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 +CONFIG_USB_ETHER_ASIX=y +CONFIG_USB_ETHER_MCS7830=y +CONFIG_USB_ETHER_SMSC95XX=y +CONFIG_VIDEO=y +CONFIG_VIDEO_IMXDCSS=y +CONFIG_VIDEO_IMX8_HDMI=y diff --git a/configs/nitrogen8m_defconfig b/configs/nitrogen8m_defconfig index e64272c69ec..72b36cf2af2 100644 --- a/configs/nitrogen8m_defconfig +++ b/configs/nitrogen8m_defconfig @@ -17,7 +17,7 @@ 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,DEFCONFIG=\"nitrogen8m\"" +CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=arch/arm/mach-imx/spl_sd.cfg,DDR_MB=2048,DEFCONFIG=\"nitrogen8m\"" CONFIG_SPL_BOARD_INIT=y CONFIG_SPL_I2C_SUPPORT=y CONFIG_SPL_POWER_SUPPORT=y diff --git a/include/configs/nitrogen8m.h b/include/configs/nitrogen8m.h index b38bfd416f1..39e1816d185 100644 --- a/include/configs/nitrogen8m.h +++ b/include/configs/nitrogen8m.h @@ -110,7 +110,6 @@ #define CONFIG_SYS_SDRAM_BASE 0x40000000 #define PHYS_SDRAM 0x40000000 -#define PHYS_SDRAM_SIZE 0x80000000 /* 2GB DDR */ #define CONFIG_NR_DRAM_BANKS 1 #define CONFIG_BAUDRATE 115200 -- GitLab