Patrick Rudolph has uploaded this change for review. ( https://review.coreboot.org/23792
Change subject: soc/cavium/bootblock: Get rid of register X1 ......................................................................
soc/cavium/bootblock: Get rid of register X1
The register X1 isn't used. Document it and remove it.
Change-Id: I9324ea9de24ba4baaef9dde890c443dd0f921ad9 Signed-off-by: Patrick Rudolph patrick.rudolph@9elements.com --- M src/soc/cavium/cn81xx/bootblock_custom.S M src/soc/cavium/common/bootblock.c M src/soc/cavium/common/include/soc/bootblock.h 3 files changed, 7 insertions(+), 8 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/92/23792/1
diff --git a/src/soc/cavium/cn81xx/bootblock_custom.S b/src/soc/cavium/cn81xx/bootblock_custom.S index 69985b7..2f503c8 100644 --- a/src/soc/cavium/cn81xx/bootblock_custom.S +++ b/src/soc/cavium/cn81xx/bootblock_custom.S @@ -29,7 +29,11 @@ */ ic ialluis fmov d30, x0 /* Save X0 in FPR for use later */ - fmov d31, x1 /* Save X1 in FPR for use later */ + /** + * The BDK stores X1 for later use, but it turns out that we don't need + * this "feature". The idea is to hide the devicetree somewhere in + * flash, that only the ROM will find it and point to it using X1. + */ adr x1, _start /* x1 = _start location based on PC */ fmov d29, x1 /* Save PC in FPR for use later */
@@ -84,7 +88,7 @@ adr x0, _start
/** - * Check if IROM has loaded the code to CONFIG_BOOTROM_OFFSET. + * Check if IROM has loaded the code to BOOTROM_OFFSET. * In case the offset is wrong, try to relocate. * Ideally the following code is never executed. * FIXME: Add region overlap check. @@ -248,8 +252,7 @@ bl arm64_init_cpu
fmov x0, d30 /* The original X0, info from previous image */ - fmov x1, d31 /* The original X1, info from previous image */ - fmov x2, d29 /* The original PC we were loaded at */ + fmov x1, d29 /* The original PC we were loaded at */
/* Call C entry */ bl bootblock_main diff --git a/src/soc/cavium/common/bootblock.c b/src/soc/cavium/common/bootblock.c index c61a8d7..7b9d524 100644 --- a/src/soc/cavium/common/bootblock.c +++ b/src/soc/cavium/common/bootblock.c @@ -32,7 +32,6 @@
/* C code entry point for the boot block */ void bootblock_main(const uint64_t reg_x0, - const uint64_t reg_x1, const uint64_t reg_pc) { uint64_t base_timestamp = 0; @@ -57,8 +56,6 @@ printk(BIOS_ERR, "BOOTBLOCK: RST Boot Failure Code %lld\n", reg_x0); - - printk(BIOS_DEBUG, "BOOTBLOCK: FDT 0x%llX\n", reg_x1); }
bootblock_soc_init(); diff --git a/src/soc/cavium/common/include/soc/bootblock.h b/src/soc/cavium/common/include/soc/bootblock.h index e347e86..bfb9745 100644 --- a/src/soc/cavium/common/include/soc/bootblock.h +++ b/src/soc/cavium/common/include/soc/bootblock.h @@ -14,7 +14,6 @@ void bootblock_mainboard_init(void);
void bootblock_main(const uint64_t reg_x0, - const uint64_t reg_x1, const uint64_t reg_pc);