123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237 |
- /* GRLIB Memory controller setup. The register values are used
- * from the associated low level assembler routine implemented
- * in memcfg_low.S.
- *
- * (C) Copyright 2010, 2015
- * Daniel Hellstrom, Cobham Gaisler, daniel@gaisler.com.
- *
- * SPDX-License-Identifier: GPL-2.0+
- */
- #include <ambapp.h>
- #include "memcfg.h"
- #include <config.h>
- #ifdef CONFIG_SYS_GRLIB_ESA_MCTRL1
- struct mctrl_setup esa_mctrl1_cfg = {
- .reg_mask = 0x7,
- .regs = {
- {
- .mask = 0x00000300,
- .value = CONFIG_SYS_GRLIB_ESA_MCTRL1_CFG1,
- },
- {
- .mask = 0x00000000,
- .value = CONFIG_SYS_GRLIB_ESA_MCTRL1_CFG2,
- },
- {
- .mask = 0x00000000,
- .value = CONFIG_SYS_GRLIB_ESA_MCTRL1_CFG3,
- },
- }
- };
- #ifdef CONFIG_SYS_GRLIB_ESA_MCTRL2
- struct mctrl_setup esa_mctrl2_cfg = {
- .reg_mask = 0x7,
- .regs = {
- {
- .mask = 0x00000300,
- .value = CONFIG_SYS_GRLIB_ESA_MCTRL2_CFG1,
- },
- {
- .mask = 0x00000000,
- .value = CONFIG_SYS_GRLIB_ESA_MCTRL2_CFG2,
- },
- {
- .mask = 0x00000000,
- .value = CONFIG_SYS_GRLIB_ESA_MCTRL2_CFG3,
- },
- }
- };
- #endif
- #endif
- #ifdef CONFIG_SYS_GRLIB_GAISLER_FTMCTRL1
- struct mctrl_setup gaisler_ftmctrl1_cfg = {
- .reg_mask = 0x7,
- .regs = {
- {
- .mask = 0x00000300,
- .value = CONFIG_SYS_GRLIB_GAISLER_FTMCTRL1_CFG1,
- },
- {
- .mask = 0x00000000,
- .value = CONFIG_SYS_GRLIB_GAISLER_FTMCTRL1_CFG2,
- },
- {
- .mask = 0x00000000,
- .value = CONFIG_SYS_GRLIB_GAISLER_FTMCTRL1_CFG3,
- },
- }
- };
- #ifdef CONFIG_SYS_GRLIB_GAISLER_FTMCTRL2
- struct mctrl_setup gaisler_ftmctrl2_cfg = {
- .reg_mask = 0x7,
- .regs = {
- {
- .mask = 0x00000300,
- .value = CONFIG_SYS_GRLIB_GAISLER_FTMCTRL2_CFG1,
- },
- {
- .mask = 0x00000000,
- .value = CONFIG_SYS_GRLIB_GAISLER_FTMCTRL2_CFG2,
- },
- {
- .mask = 0x00000000,
- .value = CONFIG_SYS_GRLIB_GAISLER_FTMCTRL2_CFG3,
- },
- }
- };
- #endif
- #endif
- #ifdef CONFIG_SYS_GRLIB_GAISLER_SDCTRL1
- struct mctrl_setup gaisler_sdctrl1_cfg = {
- .reg_mask = 0x1,
- .regs = {
- {
- .mask = 0x00000000,
- .value = CONFIG_SYS_GRLIB_GAISLER_SDCTRL1_CTRL,
- },
- }
- };
- #ifdef CONFIG_SYS_GRLIB_GAISLER_SDCTRL2
- struct mctrl_setup gaisler_sdctrl2_cfg = {
- .reg_mask = 0x1,
- .regs = {
- {
- .mask = 0x00000000,
- .value = CONFIG_SYS_GRLIB_GAISLER_SDCTRL2_CTRL,
- },
- }
- };
- #endif
- #endif
- #ifdef CONFIG_SYS_GRLIB_GAISLER_DDR2SPA1
- struct ahbmctrl_setup gaisler_ddr2spa1_cfg = {
- .ahb_mbar_no = 1,
- .reg_mask = 0xd,
- .regs = {
- {
- .mask = 0x00000000,
- .value = CONFIG_SYS_GRLIB_GAISLER_DDR2SPA1_CFG1,
- },
- { 0x00000000, 0},
- {
- .mask = 0x00000000,
- .value = CONFIG_SYS_GRLIB_GAISLER_DDR2SPA1_CFG3,
- },
- {
- .mask = 0x00000000,
- .value = CONFIG_SYS_GRLIB_GAISLER_DDR2SPA1_CFG4,
- },
- }
- };
- #ifdef CONFIG_SYS_GRLIB_GAISLER_DDR2SPA2
- struct ahbmctrl_setup gaisler_ddr2spa2_cfg = {
- .ahb_mbar_no = 1,
- .reg_mask = 0xd,
- .regs = {
- {
- .mask = 0x00000000,
- .value = CONFIG_SYS_GRLIB_GAISLER_DDR2SPA2_CFG1,
- },
- { 0x00000000, 0},
- {
- .mask = 0x00000000,
- .value = CONFIG_SYS_GRLIB_GAISLER_DDR2SPA2_CFG3,
- },
- {
- .mask = 0x00000000,
- .value = CONFIG_SYS_GRLIB_GAISLER_DDR2SPA2_CFG4,
- },
- }
- };
- #endif
- #endif
- #ifdef CONFIG_SYS_GRLIB_GAISLER_DDRSPA1
- struct ahbmctrl_setup gaisler_ddrspa1_cfg = {
- .ahb_mbar_no = 1,
- .reg_mask = 0x1,
- .regs = {
- {
- .mask = 0x00000000,
- .value = CONFIG_SYS_GRLIB_GAISLER_DDRSPA1_CTRL,
- },
- }
- };
- #ifdef CONFIG_SYS_GRLIB_GAISLER_DDRSPA2
- struct ahbmctrl_setup gaisler_ddrspa2_cfg = {
- .ahb_mbar_no = 1,
- .reg_mask = 0x1,
- .regs = {
- {
- .mask = 0x00000000,
- .value = CONFIG_SYS_GRLIB_GAISLER_DDRSPA2_CTRL,
- },
- }
- };
- #endif
- #endif
- struct grlib_mctrl_handler grlib_mctrl_handlers[] = {
- /* ESA MCTRL (PROM/FLASH/IO/SRAM/SDRAM) */
- #ifdef CONFIG_SYS_GRLIB_ESA_MCTRL1
- {DEV_APB_SLV, 0, MH_UNUSED, AMBA_PNP_ID(VENDOR_ESA, ESA_MCTRL),
- _nomem_mctrl_init, (void *)&esa_mctrl1_cfg},
- #ifdef CONFIG_SYS_GRLIB_ESA_MCTRL2
- {DEV_APB_SLV, 1, MH_UNUSED, AMBA_PNP_ID(VENDOR_ESA, ESA_MCTRL),
- _nomem_mctrl_init, (void *)&esa_mctrl2_cfg},
- #endif
- #endif
- /* GAISLER Fault Tolerant Memory controller (PROM/FLASH/IO/SRAM/SDRAM) */
- #ifdef CONFIG_SYS_GRLIB_GAISLER_FTMCTRL1
- {DEV_APB_SLV, 0, MH_UNUSED, AMBA_PNP_ID(VENDOR_GAISLER, GAISLER_FTMCTRL),
- _nomem_mctrl_init, (void *)&gaisler_ftmctrl1_cfg},
- #ifdef CONFIG_SYS_GRLIB_GAISLER_FTMCTRL2
- {DEV_APB_SLV, 1, MH_UNUSED, AMBA_PNP_ID(VENDOR_GAISLER, GAISLER_FTMCTRL),
- _nomem_mctrl_init, (void *)&gaisler_ftmctrl2_cfg},
- #endif
- #endif
- /* GAISLER SDRAM-only Memory controller (SDRAM) */
- #ifdef CONFIG_SYS_GRLIB_GAISLER_SDCTRL1
- {DEV_APB_SLV, 0, MH_UNUSED, AMBA_PNP_ID(VENDOR_GAISLER, GAISLER_SDCTRL),
- _nomem_mctrl_init, (void *)&gaisler_sdctrl1_cfg},
- #ifdef CONFIG_SYS_GRLIB_GAISLER_SDCTRL2
- {DEV_APB_SLV, 1, MH_UNUSED, AMBA_PNP_ID(VENDOR_GAISLER, GAISLER_SDCTRL),
- _nomem_mctrl_init, (void *)&gaisler_sdctrl2_cfg},
- #endif
- #endif
- /* GAISLER DDR Memory controller (DDR) */
- #ifdef CONFIG_SYS_GRLIB_GAISLER_DDRSPA1
- {DEV_AHB_SLV, 0, MH_UNUSED, AMBA_PNP_ID(VENDOR_GAISLER, GAISLER_DDRSP),
- _nomem_ahbmctrl_init, (void *)&gaisler_ddrspa1_cfg},
- #ifdef CONFIG_SYS_GRLIB_GAISLER_DDRSPA2
- {DEV_AHB_SLV, 1, MH_UNUSED, AMBA_PNP_ID(VENDOR_GAISLER, GAISLER_DDRSP),
- _nomem_ahbmctrl_init, (void *)&gaisler_ddrspa2_cfg},
- #endif
- #endif
- /* GAISLER DDR2 Memory controller (DDR2) */
- #ifdef CONFIG_SYS_GRLIB_GAISLER_DDR2SPA1
- {DEV_AHB_SLV, 0, MH_UNUSED, AMBA_PNP_ID(VENDOR_GAISLER, GAISLER_DDR2SP),
- _nomem_ahbmctrl_init, (void *)&gaisler_ddr2spa1_cfg},
- #ifdef CONFIG_SYS_GRLIB_GAISLER_DDR2SPA2
- {DEV_AHB_SLV, 1, MH_UNUSED, AMBA_PNP_ID(VENDOR_GAISLER, GAISLER_DDR2SP),
- _nomem_ahbmctrl_init, (void *)&gaisler_ddr2spa2_cfg},
- #endif
- #endif
- /* Mark end */
- MH_END
- };
|