14 Mar, 2013

1 commit

  • Various errata exist in the Cortex-A9 CPU, and may be worked around by
    setting some bits in a CP15 diagnostic register. Add code to implement
    the workarounds, enabled by new CONFIG_ options.

    This code was taken from the Linux kernel, v3.8, arch/arm/mm/proc-v7.S,
    and modified to remove the logic to conditionally apply the WAR (since we
    know exactly which CPU we're running on given the U-Boot configuration),
    and use r0 instead of r10 for consistency with the rest of U-Boot's
    cpu_init_cp15().

    Signed-off-by: Stephen Warren
    Acked-by: Simon Glass

    Stephen Warren
     

13 Mar, 2013

5 commits

  • Refactor linker-generated array code so that symbols
    which were previously linker-generated are now compiler-
    generated. This causes relocation records of type
    R_ARM_ABS32 to become R_ARM_RELATIVE, which makes
    code which uses LGA able to run before relocation as
    well as after.

    Note: this affects more than ARM targets, as linker-
    lists span possibly all target architectures, notably
    PowerPC.

    Conflicts:
    arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds
    arch/arm/cpu/arm926ejs/spear/u-boot-spl.lds
    arch/arm/cpu/armv7/omap-common/u-boot-spl.lds
    board/ait/cam_enc_4xx/u-boot-spl.lds
    board/davinci/da8xxevm/u-boot-spl-da850evm.lds
    board/davinci/da8xxevm/u-boot-spl-hawk.lds
    board/vpac270/u-boot-spl.lds

    Signed-off-by: Albert ARIBAUD

    Albert ARIBAUD
     
  • Turn __bss_start and __bss_end__ from linker-generated
    to compiler-generated symbols, causing relocations for
    these symbols to change type, from R_ARM_ABS32 to
    R_ARM_RELATIVE.

    This should have no functional impact, as it affects
    references to __bss_start and __bss_end__ only before
    relocation, and no such references are done.

    Signed-off-by: Albert ARIBAUD

    Albert ARIBAUD
     
  • Many SPL linker scripts needlessly include linker lists (aka LGAs).
    Remove them whenever possible; keep it only in the seven am335x_evm
    variants (am335x_evm, am335x_evm_uart[1-5], am335x_evm_spiboot),
    where there is actual content in output section .u_boot_list.

    This commit keeps all u-boot.bin and u-boot-spl.bin in ARM targets
    byte-identical.

    Signed-off-by: Albert ARIBAUD

    Albert ARIBAUD
     
  • Output section .u_boot_list was left unmapped in
    u-boot-spl.lds for omap-common, causing the location
    counter to roll back to bteween .rodata and .data,
    making __image_copy_end and _end symbols wrong.

    Mapping output section .u_boot_list to memory .sram
    fixes these symbols' mapping.

    This modifies the SPL binary but has no functional
    impact, as __image_copy_end and _end are never used
    in SPLs and u_boot_list is empty for all 29 boards
    affected (omap4_sdp4430 eco5pk igep0030 am335x_evm_uart3
    omap3_beagle am3517_crane igep0032 mt_ventoux pcm051
    am3517_evm omap3_evm_quick_mmc am335x_evm_uart2
    am335x_evm_spiboot am335x_evm_uart1 omap3_evm igep0030_nand
    omap3_overo igep0020 am335x_evm omap4_panda omap5_evm
    am335x_evm_uart4 devkit8000 tricorder mcx twister
    omap3_evm_quick_nand am335x_evm_uart5 igep0020_nand).

    Signed-off-by: Albert ARIBAUD

    Albert ARIBAUD
     
  • Albert ARIBAUD
     

12 Mar, 2013

6 commits


11 Mar, 2013

28 commits