[kvm-unit-tests,v6,11/18] powerpc/ppc64: add a boot rom
diff mbox

Message ID 1455897503-11835-12-git-send-email-drjones@redhat.com
State Superseded
Headers show

Commit Message

Andrew Jones Feb. 19, 2016, 3:58 p.m. UTC
Make a one line replacement for SLOF. This bootloader just
jumps to 0x400000, because we know the kernel will be there.

Signed-off-by: Andrew Jones <drjones@redhat.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Tested-by: Laurent Vivier <lvivier@redhat.com>
Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
---
 powerpc/.gitignore      |  1 +
 powerpc/Makefile.common | 11 +++++++++--
 powerpc/boot_rom.S      |  5 +++++
 3 files changed, 15 insertions(+), 2 deletions(-)
 create mode 100644 powerpc/.gitignore
 create mode 100644 powerpc/boot_rom.S

Patch
diff mbox

diff --git a/powerpc/.gitignore b/powerpc/.gitignore
new file mode 100644
index 0000000000000..2f017a8e61d4b
--- /dev/null
+++ b/powerpc/.gitignore
@@ -0,0 +1 @@ 
+boot_rom.bin
diff --git a/powerpc/Makefile.common b/powerpc/Makefile.common
index 7762231f6f1f7..06ec96c6e546b 100644
--- a/powerpc/Makefile.common
+++ b/powerpc/Makefile.common
@@ -7,7 +7,7 @@ 
 tests-common = \
 	$(TEST_DIR)/selftest.elf
 
-all: test_cases
+all: $(TEST_DIR)/boot_rom.bin test_cases
 
 ##################################################################
 
@@ -34,8 +34,15 @@  FLATLIBS = $(libcflat) $(LIBFDT_archive) $(libgcc)
 		-Wl,-T,powerpc/flat.lds,--build-id=none \
 		$(filter %.o, $^) $(FLATLIBS)
 
+$(TEST_DIR)/boot_rom.bin: $(TEST_DIR)/boot_rom.elf
+	dd if=/dev/zero of=$@ bs=256 count=1
+	$(OBJCOPY) -O binary $^ >(cat - >>$@)
+
+$(TEST_DIR)/boot_rom.elf: $(TEST_DIR)/boot_rom.o
+	$(LD) -nostdlib -Ttext=0x100 --entry=start --build-id=none -o $@ $<
+
 powerpc_clean: libfdt_clean asm_offsets_clean
-	$(RM) $(TEST_DIR)/*.{o,elf} \
+	$(RM) $(TEST_DIR)/*.{o,elf} $(TEST_DIR)/boot_rom.bin \
 	      $(TEST_DIR)/.*.d lib/powerpc/.*.d
 
 ##################################################################
diff --git a/powerpc/boot_rom.S b/powerpc/boot_rom.S
new file mode 100644
index 0000000000000..ae2c08ddce3c1
--- /dev/null
+++ b/powerpc/boot_rom.S
@@ -0,0 +1,5 @@ 
+#define SPAPR_KERNEL_LOAD_ADDR 0x400000
+.text
+.globl start
+start:
+	b	SPAPR_KERNEL_LOAD_ADDR - 0x100