~funderscore blog cgit wiki get in touch
aboutsummaryrefslogtreecommitdiff
blob: b9db10341ad89f326de8a5983f48ddb933fcf24a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
U-Boot for Freescale i.MX7

SPL Stack size and location notes
---------------------------------
See figure 6-22 in i.MX 7Dual/Solo Reference manuals:
  - IMX7D/S OCRAM free area RAM (OCRAM) is from 0x00910000 to
    0x00946C00.
  - Set the stack at the end of the free area section, at 0x00946BB8.
  - The BOOT ROM loads what they consider the firmware image
    which consists of a 4K header in front of us that contains the IVT, DCD
    and some padding. However, the manual also states that the ROM uses the
    OCRAM_EPCD and OCRAM_PXP areas for itself. While the SPL is free to use
    this range for stack and malloc, the SPL itself must fit below 0x920000,
    or the image will be truncated in at least some boot modes like USB SDP.
    Thus our max size is really 0x00920000 - 0x00912000. If necessary,
    CONFIG_SPL_TEXT_BASE could be moved to 0x00911000 to gain 4KB of space
    for the SPL, but 56KB should be more than enough for the SPL.
  - Pad SPL to 68KB (4KB header + 56KB max size + 8KB extra padding)
    The extra padding could be removed, but this value was used historically
    based on an incorrect CONFIG_SPL_MAX_SIZE definition.
    This allows to write the SPL/U-Boot combination generated with
    u-boot-with-spl.imx directly to a boot media (given that boot media specific
    offset is configured properly).