summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Rudolph <patrick.rudolph@9elements.com>2018-02-16 09:04:38 +0100
committerPatrick Georgi <pgeorgi@google.com>2018-07-30 18:46:41 +0000
commite15556ed3ae859acbdfcd5a4ab175dba8b359c4e (patch)
tree061b147f29b222954b9bf5c66bc321bafd623be6
parent520149dc63d5d09fc578cfc1a48f4b1ca2e2a08a (diff)
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> Reviewed-on: https://review.coreboot.org/23792 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Philipp Deppenwiese <zaolin.daisuki@gmail.com> Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net> Reviewed-by: David Hendricks <david.hendricks@gmail.com>
-rw-r--r--src/soc/cavium/cn81xx/bootblock_custom.S11
-rw-r--r--src/soc/cavium/common/bootblock.c3
-rw-r--r--src/soc/cavium/common/include/soc/bootblock.h1
3 files changed, 7 insertions, 8 deletions
diff --git a/src/soc/cavium/cn81xx/bootblock_custom.S b/src/soc/cavium/cn81xx/bootblock_custom.S
index 69985b7834..2f503c827b 100644
--- a/src/soc/cavium/cn81xx/bootblock_custom.S
+++ b/src/soc/cavium/cn81xx/bootblock_custom.S
@@ -29,7 +29,11 @@ ENTRY(_start)
*/
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 @@ node_check_done:
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 @@ ENTRY(start)
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 c61a8d7dc1..7b9d524198 100644
--- a/src/soc/cavium/common/bootblock.c
+++ b/src/soc/cavium/common/bootblock.c
@@ -32,7 +32,6 @@ __attribute__((weak)) void bootblock_mainboard_init(void) { /* do nothing */ }
/* 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 @@ void bootblock_main(const uint64_t reg_x0,
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 040c5a3a67..76fd4a158d 100644
--- a/src/soc/cavium/common/include/soc/bootblock.h
+++ b/src/soc/cavium/common/include/soc/bootblock.h
@@ -22,7 +22,6 @@ void bootblock_soc_init(void);
void bootblock_mainboard_init(void);
void bootblock_main(const uint64_t reg_x0,
- const uint64_t reg_x1,
const uint64_t reg_pc);