]> git.baikalelectronics.ru Git - uboot.git/commitdiff
arm: imx: imx8m: Only use ROM pointers if not PSCI provider
authorMarek Vasut <marex@denx.de>
Thu, 22 Dec 2022 00:46:38 +0000 (01:46 +0100)
committerStefano Babic <sbabic@denx.de>
Tue, 31 Jan 2023 14:46:39 +0000 (15:46 +0100)
The ROM pointers are in fact populated by the ATF BL31 blob, in case
U-Boot itself if the PSCI provider, there is no ATF BL31 blob, hence
ignore the ROM pointers.

Signed-off-by: Marek Vasut <marex@denx.de>
arch/arm/mach-imx/imx8m/soc.c

index 90a59bd439887eb40078672a6017ac6c894cb52c..93e10bf06f92d2dae47ff4031435bbbc716d0b2d 100644 (file)
@@ -238,7 +238,7 @@ int dram_init(void)
                return ret;
 
        /* rom_pointer[1] contains the size of TEE occupies */
-       if (rom_pointer[1])
+       if (!IS_ENABLED(CONFIG_ARMV8_PSCI) && rom_pointer[1])
                gd->ram_size = sdram_size - rom_pointer[1];
        else
                gd->ram_size = sdram_size;
@@ -267,7 +267,7 @@ int dram_init_banksize(void)
        }
 
        gd->bd->bi_dram[bank].start = PHYS_SDRAM;
-       if (rom_pointer[1]) {
+       if (!IS_ENABLED(CONFIG_ARMV8_PSCI) && rom_pointer[1]) {
                phys_addr_t optee_start = (phys_addr_t)rom_pointer[0];
                phys_size_t optee_size = (size_t)rom_pointer[1];
 
@@ -312,7 +312,7 @@ phys_size_t get_effective_memsize(void)
                        sdram_b1_size = sdram_size;
                }
 
-               if (rom_pointer[1]) {
+               if (!IS_ENABLED(CONFIG_ARMV8_PSCI) && rom_pointer[1]) {
                        /* We will relocate u-boot to Top of dram1. Tee position has two cases:
                         * 1. At the top of dram1,  Then return the size removed optee size.
                         * 2. In the middle of dram1, return the size of dram1.
@@ -344,7 +344,8 @@ phys_size_t board_get_usable_ram_top(phys_size_t total_size)
         * rom_pointer[1] stores the size TEE uses.
         * We need to reserve the memory region for TEE.
         */
-       if (rom_pointer[0] && rom_pointer[1] && top_addr > rom_pointer[0])
+       if (!IS_ENABLED(CONFIG_ARMV8_PSCI) && rom_pointer[0] &&
+           rom_pointer[1] && top_addr > rom_pointer[0])
                top_addr = rom_pointer[0];
 
        return top_addr;