Skip to content
Snippets Groups Projects
Forked from Reform / reform-boundary-uboot
Source project has a limited visibility.
  • Simon Glass's avatar
    dde3b70d
    arm: add a common .lds link script · dde3b70d
    Simon Glass authored
    
    Most ARM CPUs use a very similar link script. This adds a basic
    script that can be used by most CPUs.
    
    Two new symbols are introduced which are intended to eventually be
    defined on all architectures to make things easier for generic relocation
    and reduce special-case code for each architecture:
    
    __image_copy_start is the start of the text area (equivalent to the
    existing _start on ARM). It marks the start of the region which must be
    copied to a new location during relocation. This symbol is called
    __text_start on x86 and microblaze.
    
    __image_copy_end is the end of the region which must be copied to a new
    location during relocation. It is normally equal to the start of the BSS
    region, but this can vary in some cases (SPL?). Making this an explicit
    symbol on its own removes any ambiguity and permits common code to always
    do the right thing.
    
    This new script makes use of CPUDIR, now defined by both Makefile and
    spl/Makefile, to find the directory containing the start.o object file,
    which is always placed first in the image.
    
    To permit MMU setup prior to relocation (as used by pxa) we add an area
    to the link script which contains space for this. This is taken
    from commit 7f4cfcf4. CPUs can put the contents in there using their
    start.S file. BTW, shouldn't that area be 16KB-aligned?
    
    Signed-off-by: default avatarSimon Glass <sjg@chromium.org>
    dde3b70d
    History
    arm: add a common .lds link script
    Simon Glass authored
    
    Most ARM CPUs use a very similar link script. This adds a basic
    script that can be used by most CPUs.
    
    Two new symbols are introduced which are intended to eventually be
    defined on all architectures to make things easier for generic relocation
    and reduce special-case code for each architecture:
    
    __image_copy_start is the start of the text area (equivalent to the
    existing _start on ARM). It marks the start of the region which must be
    copied to a new location during relocation. This symbol is called
    __text_start on x86 and microblaze.
    
    __image_copy_end is the end of the region which must be copied to a new
    location during relocation. It is normally equal to the start of the BSS
    region, but this can vary in some cases (SPL?). Making this an explicit
    symbol on its own removes any ambiguity and permits common code to always
    do the right thing.
    
    This new script makes use of CPUDIR, now defined by both Makefile and
    spl/Makefile, to find the directory containing the start.o object file,
    which is always placed first in the image.
    
    To permit MMU setup prior to relocation (as used by pxa) we add an area
    to the link script which contains space for this. This is taken
    from commit 7f4cfcf4. CPUs can put the contents in there using their
    start.S file. BTW, shouldn't that area be 16KB-aligned?
    
    Signed-off-by: default avatarSimon Glass <sjg@chromium.org>