diff mbox

[kvm-unit-tests,v3,10/17] powerpc/ppc64: add a boot rom

Message ID 1455380910-30604-11-git-send-email-drjones@redhat.com
State Superseded
Headers show

Commit Message

Andrew Jones Feb. 13, 2016, 4:28 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>
---
 powerpc/Makefile.common | 11 +++++++++--
 powerpc/boot_rom.S      |  5 +++++
 2 files changed, 14 insertions(+), 2 deletions(-)
 create mode 100644 powerpc/boot_rom.S

Comments

Thomas Huth Feb. 15, 2016, 8 a.m. UTC | #1
On 13.02.2016 17:28, Andrew Jones wrote:
> 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>
> ---
>  powerpc/Makefile.common | 11 +++++++++--
>  powerpc/boot_rom.S      |  5 +++++
>  2 files changed, 14 insertions(+), 2 deletions(-)
>  create mode 100644 powerpc/boot_rom.S

Reviewed-by: Thomas Huth <thuth@redhat.com>

--
To unsubscribe from this list: send the line "unsubscribe kvm-ppc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/powerpc/Makefile.common b/powerpc/Makefile.common
index 13b828ab171d6..0c3eaba0d3aab 100644
--- a/powerpc/Makefile.common
+++ b/powerpc/Makefile.common
@@ -11,7 +11,7 @@  endif
 tests-common = \
 	$(TEST_DIR)/selftest.elf
 
-all: test_cases
+all: $(TEST_DIR)/boot_rom.bin test_cases
 
 ##################################################################
 phys_base = $(LOADADDR)
@@ -40,8 +40,15 @@  FLATLIBS = $(libcflat) $(LIBFDT_archive) $(libgcc)
 		-Wl,-T,powerpc/flat.lds,--build-id=none,-Ttext=$(start_addr) \
 		$(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