From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Jones Subject: [kvm-unit-tests PATCH 06/14] powerpc/ppc64: add boot rom source Date: Mon, 3 Aug 2015 16:41:23 +0200 Message-ID: <1438612891-3718-7-git-send-email-drjones@redhat.com> References: <1438612891-3718-1-git-send-email-drjones@redhat.com> Cc: dgibson@redhat.com, david@gibson.dropbear.id.au, agraf@suse.de, thuth@redhat.com, lvivier@redhat.com, pbonzini@redhat.com To: kvm@vger.kernel.org, kvm-ppc@vger.kernel.org Return-path: Received: from mx1.redhat.com ([209.132.183.28]:39585 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753171AbbHCOlv (ORCPT ); Mon, 3 Aug 2015 10:41:51 -0400 In-Reply-To: <1438612891-3718-1-git-send-email-drjones@redhat.com> Sender: kvm-owner@vger.kernel.org List-ID: Make a one line replacement for SLOF. This bootloader just jumps to 0x400000, because we know the kernel will be there. This commit allows rebuilding of the bootloader, as long as the SLOF build_romfs tool is present, but since it would be a pain to require that tool for ever build, we'll just commit the binary rom image too with the next commit. Signed-off-by: Andrew Jones --- powerpc/rom/.gitignore | 1 + powerpc/rom/Makefile | 36 ++++++++++++++++++++++++++++++++++++ powerpc/rom/header.img | 1 + powerpc/rom/rom.ffs | 4 ++++ powerpc/rom/stage1.S | 5 +++++ 5 files changed, 47 insertions(+) create mode 100644 powerpc/rom/.gitignore create mode 100644 powerpc/rom/Makefile create mode 100644 powerpc/rom/header.img create mode 100644 powerpc/rom/rom.ffs create mode 100644 powerpc/rom/stage1.S diff --git a/powerpc/rom/.gitignore b/powerpc/rom/.gitignore new file mode 100644 index 0000000000000..a8a0dcec44720 --- /dev/null +++ b/powerpc/rom/.gitignore @@ -0,0 +1 @@ +*.bin diff --git a/powerpc/rom/Makefile b/powerpc/rom/Makefile new file mode 100644 index 0000000000000..03b8bf7e0b5d2 --- /dev/null +++ b/powerpc/rom/Makefile @@ -0,0 +1,36 @@ +# +# powerpc boot_rom makefile +# +# Authors: Andrew Jones +# + +# Use SLOF's build_romfs tool (git://git.qemu-project.org/SLOF.git) +BUILD_ROMFS ?= build_romfs + +ifeq ($(wildcard ../../config.mak),) +$(error run ./configure first. See ./configure -h) +endif + +include ../../config.mak + +.PHONY: clean distclean + +all: boot_rom.bin + +boot_rom.bin: stage1.bin + $(BUILD_ROMFS) rom.ffs boot_rom.bin + +stage1.bin: stage1.elf + $(OBJCOPY) -O binary $^ $@ + +stage1.elf: stage1.o + $(LD) -nostdlib -Ttext=0x100 --entry=start --build-id=none -o $@ $< + +stage1.o: stage1.S + $(CC) -c -o $@ $< + +clean: + $(RM) stage1.{o,elf,bin} + +distclean: clean + $(RM) boot_rom.bin diff --git a/powerpc/rom/header.img b/powerpc/rom/header.img new file mode 100644 index 0000000000000..794129c95eec5 --- /dev/null +++ b/powerpc/rom/header.img @@ -0,0 +1 @@ +Key.Polynome....XXXXXXXX..Mask..XXXXXXXX.Polynome.Length....XXXX.Header.and.File.lengthXXXXXXXX... und weiter im Text! diff --git a/powerpc/rom/rom.ffs b/powerpc/rom/rom.ffs new file mode 100644 index 0000000000000..b7851c00c462b --- /dev/null +++ b/powerpc/rom/rom.ffs @@ -0,0 +1,4 @@ +# FFile-Name Real Filename Flags ROM-Offset i/a +#--------------|-------------------------------|-----------------------|-------------- +header header.img 0 0 +stage1 stage1.bin 1 0x100 diff --git a/powerpc/rom/stage1.S b/powerpc/rom/stage1.S new file mode 100644 index 0000000000000..ae2c08ddce3c1 --- /dev/null +++ b/powerpc/rom/stage1.S @@ -0,0 +1,5 @@ +#define SPAPR_KERNEL_LOAD_ADDR 0x400000 +.text +.globl start +start: + b SPAPR_KERNEL_LOAD_ADDR - 0x100 -- 2.4.3