40 | | == Editing the environment |
41 | | If you would like to modify the default environment you can edit the [https://github.com/Gateworks/bsp-venice/blob/master/venice.env venice/venice.env] in the Venice BSP. |
| 43 | [=#memmap] |
| 44 | == Memory Mapping |
| 45 | When working with boot firmware you are often dealing with choosing where to load in memory various components. Sometimes this is done by hard-coding addresses into U-Boot commands, using env variables, or hard coding them into the U-Boot build configuration files (ie binman node) or FIT image templates. |
| 46 | |
| 47 | Here is what we recommend for memory mapping on the IMX8M{M,N,P} SoC's: |
| 48 | ||= address =||= var =||= Note =|| |
| 49 | || 0x00920000 || || ARM Trusted Firmware || |
| 50 | || 0x40000000 || || base of DRAM || |
| 51 | || 0x40200000 || kernel_comp_addr_r || CONFIG_TEXT_BASE: base of non-secure memory<BR>The ATF configures the first 2M of DRAM as secure for itself || |
| 52 | || 0x40310000 || || binman_fip image gets put here |
| 53 | || 0x44000000 || || CONFIG_SPL_LOAD_FIT_ADDRESS (used for secure boot) |
| 54 | || 0x48200000 || loadaddr, kernel_addr_r || CONFIG_SYS_LOAD_ADDR |
| 55 | || 0x50200000 || fdt_addr_r || area for loading fdt (128M above kernel_addr_r) |
| 56 | || 0x50300000 || scriptaddr || area for loading script (512K above fdt_addr_r) |
| 57 | || 0x7e000000 || || CFG_TZDRAM_START (secure boot with TEE; for 1GB DRAM boards) |
| 58 | || 0x80000000 || || 1GB boundary || |
| 59 | || 0xbe000000 || || CFG_TZDRAM_START (secure boot with TEE; for 2GB DRAM boards) |
| 60 | || 0xc0000000 || || 2GB boundary |
| 61 | || 0xfe000000 || || CGG_TZDRAM_START (secure boot with TEE; for 4GB DRAM boards) |
| 62 | || 0x100000000 || || 3GB boundary || |
| 63 | || 0x140000000 || || 4GB boundary || |