coreboot-kgpe-d16/src/soc/nvidia/tegra124
Aaron Durbin d972f78e75 linking: link bootblock.elf with .data and .bss sections again
Currently coreboot expects the loader to clear the bss section
for all stages. i.e. stages don't clear their own bss. On ARM
SoCs the BootROM would be responsible for this. To do that
one needs to include the bss section data (all zeros) in the
bootblock.bin file. This was previously being attempted by
keeping the .bss info in the .data section because objcopy
happened zero out non-file allocated data section data.

Instead go back to linking bootblock with the bss section
but mark the bss section as loadable allocatable data. That
way it will be included in the binary properly when objcopy
-O binary is emplyed. Also do the same for the data section
in the case of no non-zero object values are in the data
section.

Without this change the trick of including .bss in .data
was not working when there wasn't a non-zero value object
in the data section.

BUG=None
BRANCH=None
TEST=Built emulation/qemu-armv7 and noted bootblock.bin contains
     the cleared bss.

Change-Id: I94bd404c2c4a8b9332393e6224e98940a9cad4a2
Signed-off-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-on: http://review.coreboot.org/11680
Tested-by: build bot (Jenkins)
Reviewed-by: Patrick Georgi <pgeorgi@google.com>
2015-09-22 21:22:44 +00:00
..
include/soc verstage: use common program.ld for linking 2015-09-09 19:35:20 +00:00
lp0 tegra lp0: fix checkpatch errors 2015-07-24 15:08:59 +02:00
bootblock.c tegra124/tegra210: Include stages.h in bootblock.c 2015-07-13 10:23:46 +02:00
bootblock_asm.S Remove address from GPLv2 headers 2015-05-21 20:50:25 +02:00
cache.c Remove address from GPLv2 headers 2015-05-21 20:50:25 +02:00
cbmem.c Remove address from GPLv2 headers 2015-05-21 20:50:25 +02:00
chip.h Remove address from GPLv2 headers 2015-05-21 20:50:25 +02:00
clock.c arm(64): Manually clean up the mess left by write32() transition 2015-04-21 08:22:40 +02:00
display.c Remove empty lines at end of file 2015-06-08 00:55:07 +02:00
dma.c tegra124: Change all SoC headers to <soc/headername.h> system 2015-04-08 09:42:08 +02:00
dp.c edid: Use edid_mode struct to reduce redundancy 2015-08-28 06:42:03 +00:00
i2c.c Remove address from GPLv2 headers 2015-05-21 20:50:25 +02:00
Kconfig tegra124: verified boot fixups 2015-07-02 19:56:18 +02:00
maincpu.S arm: Put assembly functions into separate sections 2014-11-13 06:49:41 +01:00
Makefile.inc linking: link bootblock.elf with .data and .bss sections again 2015-09-22 21:22:44 +00:00
monotonic_timer.c Remove address from GPLv2 headers 2015-05-21 20:50:25 +02:00
power.c Remove address from GPLv2 headers 2015-05-21 20:50:25 +02:00
sdram.c Remove address from GPLv2 headers 2015-05-21 20:50:25 +02:00
sdram_lp0.c tegra124: Change all SoC headers to <soc/headername.h> system 2015-04-08 09:42:08 +02:00
soc.c bootmode: add display_init_required() 2015-09-04 15:09:00 +00:00
sor.c tegra124: Change all SoC headers to <soc/headername.h> system 2015-04-08 09:42:08 +02:00
spi.c cbfs: new API and better program loading 2015-06-02 14:09:31 +02:00
uart.c Remove address from GPLv2 headers 2015-05-21 20:50:25 +02:00
verstage.c Remove address from GPLv2 headers 2015-05-21 20:50:25 +02:00