diff options
author | Peng Fan <peng.fan@nxp.com> | 2020-07-09 10:26:06 +0300 |
---|---|---|
committer | Peng Fan <peng.fan@nxp.com> | 2020-07-14 10:23:48 +0300 |
commit | 3c41728d80f7a6178dd4ec91c28347d9768ab200 (patch) | |
tree | e5aa2f4a4f03e0071c76d3f4b502aed467583f9c /board/technexion/pico-imx8mq/pico-imx8mq.c | |
parent | ec04ae4217e6f68ad7ccd7740e540d79a3f4e1c1 (diff) | |
download | u-boot-3c41728d80f7a6178dd4ec91c28347d9768ab200.tar.xz |
imx8m: Refactor the OPTEE memory removal
Current codes assume the OPTEE address is at the end of first DRAM bank.
Adjust the process to allow OPTEE in the middle of first bank.
When OPTEE memory is removed from first bank, it may split the first bank
to two banks, adjust the MMU table for the split case,
Since the default CONFIG_NR_DRAM_BANKS is 4, it is enough, just enlarge
i.MX8MP evk to default to avoid issue.
Signed-off-by: Ye Li <ye.li@nxp.com>
Signed-off-by: Silvano di Ninno <silvano.dininno@nxp.com>
Tested-by: Silvano di Ninno <silvano.dininno@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
Diffstat (limited to 'board/technexion/pico-imx8mq/pico-imx8mq.c')
-rw-r--r-- | board/technexion/pico-imx8mq/pico-imx8mq.c | 26 |
1 files changed, 12 insertions, 14 deletions
diff --git a/board/technexion/pico-imx8mq/pico-imx8mq.c b/board/technexion/pico-imx8mq/pico-imx8mq.c index 2a3e6e7e26..330de7137c 100644 --- a/board/technexion/pico-imx8mq/pico-imx8mq.c +++ b/board/technexion/pico-imx8mq/pico-imx8mq.c @@ -51,24 +51,22 @@ int board_early_init_f(void) return 0; } -int dram_init(void) +int board_phys_sdram_size(phys_size_t *size) { int ddr_size = readl(M4_BOOTROM_BASE_ADDR); - if (ddr_size == 0x4) - gd->ram_size = 0x100000000; - else if (ddr_size == 0x3) - gd->ram_size = 0xc0000000; - else if (ddr_size == 0x2) - gd->ram_size = 0x80000000; - else if (ddr_size == 0x1) - gd->ram_size = 0x40000000; - else + if (ddr_size == 0x4) { + *size = 0x100000000; + } else if (ddr_size == 0x3) { + *size = 0xc0000000; + } else if (ddr_size == 0x2) { + *size = 0x80000000; + } else if (ddr_size == 0x1) { + *size = 0x40000000; + } else { printf("Unknown DDR type!!!\n"); - - /* rom_pointer[1] contains the size of TEE occupies */ - if (rom_pointer[1]) - gd->ram_size -= rom_pointer[1]; + return -1; + } return 0; } |