[coreboot-gerrit] Change in coreboot[master]: soc/cavium: Add rom header images
Patrick Rudolph (Code Review)
gerrit at coreboot.org
Fri Feb 16 13:21:46 CET 2018
Patrick Rudolph has uploaded this change for review. ( https://review.coreboot.org/23793
Change subject: soc/cavium: Add rom header images
......................................................................
soc/cavium: Add rom header images
Add HEX rom header images, required to boot NBL1FW.
Change-Id: Icd9cdf882ccdac591bec7240f1c7694fe0c0ad4d
Signed-off-by: Patrick Rudolph <patrick.rudolph at 9elements.com>
---
M src/soc/cavium/cn81xx/Makefile.inc
M src/soc/cavium/common/Makefile.inc
A src/soc/cavium/common/rom_clib_s_nbl1fw.bin.hex
A src/soc/cavium/common/rom_csib_s_nbl1fw.bin.hex
4 files changed, 53 insertions(+), 25 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/93/23793/1
diff --git a/src/soc/cavium/cn81xx/Makefile.inc b/src/soc/cavium/cn81xx/Makefile.inc
index f835b09..c910b08 100644
--- a/src/soc/cavium/cn81xx/Makefile.inc
+++ b/src/soc/cavium/cn81xx/Makefile.inc
@@ -97,29 +97,4 @@
CPPFLAGS_common += -Isrc/soc/cavium/common/include/soc/bdk/
#CPPFLAGS_common += -Isrc/soc/cavium/common/include/soc/bdk/libdram
-# FIXME: Generate the ROM code load information block structure.
-# For NBL1FW the first 256 bytes are ignored and should be zeros.
-# For TLB1FW the first 256 bytes should be randomized.
-#FIXME: Generate bootblock more intelligently
-$(objcbfs)/bootblock.bin: $(objcbfs)/bootblock.raw.bin
- @printf "Generating: $(subst $(obj)/,,$(@))\n"
-# cp $< $@
-# @mkdir -p $(dir $@)
-# @$(IBSTOOL) --from=$< --to=$@ --nontrusted
- # Insert CLIB at 0x10000 and CSIB at 0x10100
-# dd if=/dev/zero bs=1k count=512 2>/dev/null | tr '\000' '\377' > $@
- dd if=rom_clib_s_nbl1fw.bin of=$@ bs=1 seek=$$((0x10000)) conv=notrunc
- dd if=rom_csib_s_nbl1fw.bin of=$@ bs=1 seek=$$((0x10100)) conv=notrunc
- # Insert header at 0x20000
-# According to OFFSET field description, first 256 bytes of NBL1FW are ignored.
-# dd if=/dev/zero bs=1 count=256 2>/dev/null | tr '\000' '\377' > _pad256.bin
-
- # FIXME: 0x20000-0x20100 should be ignored, but Cavium's image populates it.
- ## dd if=_pad256.bin of=$@ bs=1 seek=$$((0x20000)) conv=notrunc 2>/dev/null
- # TODO inject length of firmware at offset 0x04 of header
- ##dd if=$< of=$@ bs=1 seek=$$((0x20100)) conv=notrunc 2>/dev/null
- dd if=$< of=$@ bs=1 seek=$$((0x20000)) conv=notrunc
-# dd if=nbl1fw_header.bin of=$@ bs=1 seek=$$((0x20000)) conv=notrunc
-# # TODO: Calculate CRC32 of image and inject at offset 0x10 of header
-
endif
diff --git a/src/soc/cavium/common/Makefile.inc b/src/soc/cavium/common/Makefile.inc
index feeeb6e..5f47a1d 100644
--- a/src/soc/cavium/common/Makefile.inc
+++ b/src/soc/cavium/common/Makefile.inc
@@ -45,4 +45,25 @@
CPPFLAGS_common += -Isrc/soc/cavium/common/include
+ROM_HEADER_BIN := $(objgenerated)/rom_header.bin
+ROM_HEADER_SOURCES += rom_clib_s_nbl1fw
+ROM_HEADER_SOURCES += rom_csib_s_nbl1fw
+
+ROM_HEADER_DEPS := $(foreach f, $(ROM_HEADER_SOURCES), src/soc/cavium/common/$(f).bin.hex)
+
+# Include ROM header
+$(ROM_HEADER_BIN): $(ROM_HEADER_DEPS)
+ for f in $+; \
+ do for c in $$(cat $$f | grep -v ^#); \
+ do printf $$(printf '\%o' 0x$$c); \
+ done; \
+ done > $@
+
+$(objcbfs)/bootblock.bin: $(objcbfs)/bootblock.raw.bin $(ROM_HEADER_BIN)
+ @printf " GEN $(subst $(obj)/,,$(@))\n"
+ # Insert CLIB at 0x10000 and CSIB at 0x10100
+ dd if=$(ROM_HEADER_BIN) of=$@ bs=1 seek=$$((0x10000)) conv=notrunc status=none
+ # Insert bootblock at 0x20000
+ dd if=$(objcbfs)/bootblock.raw.bin of=$@ bs=1 seek=$$((0x20000)) conv=notrunc status=none
+
endif
diff --git a/src/soc/cavium/common/rom_clib_s_nbl1fw.bin.hex b/src/soc/cavium/common/rom_clib_s_nbl1fw.bin.hex
new file mode 100644
index 0000000..231c6a6
--- /dev/null
+++ b/src/soc/cavium/common/rom_clib_s_nbl1fw.bin.hex
@@ -0,0 +1,16 @@
+43 56 4d 5f 43 4c 49 42 00 00 00 00 00 00 00 00
+00 00 02 00 00 00 00 00 00 00 03 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
diff --git a/src/soc/cavium/common/rom_csib_s_nbl1fw.bin.hex b/src/soc/cavium/common/rom_csib_s_nbl1fw.bin.hex
new file mode 100644
index 0000000..f7a2021
--- /dev/null
+++ b/src/soc/cavium/common/rom_csib_s_nbl1fw.bin.hex
@@ -0,0 +1,16 @@
+43 56 4d 5f 43 53 49 42 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
--
To view, visit https://review.coreboot.org/23793
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: Icd9cdf882ccdac591bec7240f1c7694fe0c0ad4d
Gerrit-Change-Number: 23793
Gerrit-PatchSet: 1
Gerrit-Owner: Patrick Rudolph <patrick.rudolph at 9elements.com>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.coreboot.org/pipermail/coreboot-gerrit/attachments/20180216/e687513a/attachment-0001.html>
More information about the coreboot-gerrit
mailing list