Patchwork [6/7] boot-wrapper-aarch64: new package

login
register
mail settings
Submitter Thomas Petazzoni
Date Oct. 28, 2012, 4:40 p.m.
Message ID <1351442438-20639-7-git-send-email-thomas.petazzoni@free-electrons.com>
Download mbox | patch
Permalink /patch/194722/
State Accepted
Commit 7689b72e00fd4d8c017880004e83a1c79144ab7b
Headers show

Comments

Thomas Petazzoni - Oct. 28, 2012, 4:40 p.m.
The boot wrapper contains both a minimal bootloader and a tool to
generate an image suitable for execution by the AArch64 software
simulator. The image generated embeds the minimal bootloader, the
kernel image, the Device Tree Blob and the kernel command line.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
 boot/Config.in                                    |    1 +
 boot/boot-wrapper-aarch64/Config.in               |   31 +++++++++++++++++++++
 boot/boot-wrapper-aarch64/boot-wrapper-aarch64.mk |   29 +++++++++++++++++++
 3 files changed, 61 insertions(+)
 create mode 100644 boot/boot-wrapper-aarch64/Config.in
 create mode 100644 boot/boot-wrapper-aarch64/boot-wrapper-aarch64.mk

Patch

diff --git a/boot/Config.in b/boot/Config.in
index a55139b..eb5f7cd 100644
--- a/boot/Config.in
+++ b/boot/Config.in
@@ -4,6 +4,7 @@  source "boot/at91bootstrap/Config.in"
 source "boot/at91bootstrap3/Config.in"
 source "boot/at91dataflashboot/Config.in"
 source "boot/barebox/Config.in"
+source "boot/boot-wrapper-aarch64/Config.in"
 source "boot/grub/Config.in"
 source "boot/lpc32xxcdl/Config.in"
 source "boot/mxs-bootlets/Config.in"
diff --git a/boot/boot-wrapper-aarch64/Config.in b/boot/boot-wrapper-aarch64/Config.in
new file mode 100644
index 0000000..6546862
--- /dev/null
+++ b/boot/boot-wrapper-aarch64/Config.in
@@ -0,0 +1,31 @@ 
+config BR2_TARGET_BOOT_WRAPPER_AARCH64
+	bool "boot-wrapper-aarch64"
+	depends on BR2_aarch64
+	depends on BR2_LINUX_KERNEL
+	help
+	  The boot-wrapper-aarch64 is a small bootloader that makes it
+	  possible to start an Aarch64 kernel inside the available
+	  software simulators for the Aarch64 architecture.
+
+	  git://git.kernel.org/pub/scm/linux/kernel/git/cmarinas/boot-wrapper-aarch64.git
+
+if BR2_TARGET_BOOT_WRAPPER_AARCH64
+
+config BR2_TARGET_BOOT_WRAPPER_AARCH64_DTS
+	string "Device Tree Source name"
+	default ""
+	help
+	  Name of the Device Tree Source file to use to generate the
+	  Device Tree Blob that will be embedded in the image
+	  generated by the boot wrapper. Valid names are the .dts
+	  files from arch/arm64/boot/dts/ in the kernel source
+	  tree. The name must be specified without the .dts suffix.
+
+config BR2_TARGET_BOOT_WRAPPER_AARCH64_BOOTARGS
+	string "Kernel bootargs"
+	default ""
+	help
+	  Kernel bootargs to embed inside the image generated by the
+	  boot wrapper.
+
+endif
diff --git a/boot/boot-wrapper-aarch64/boot-wrapper-aarch64.mk b/boot/boot-wrapper-aarch64/boot-wrapper-aarch64.mk
new file mode 100644
index 0000000..25c6bed
--- /dev/null
+++ b/boot/boot-wrapper-aarch64/boot-wrapper-aarch64.mk
@@ -0,0 +1,29 @@ 
+#############################################################
+#
+# boot-wrapper-aarch64
+#
+#############################################################
+
+BOOT_WRAPPER_AARCH64_VERSION        = 26b62f586020fd998c6efd43db657eaafeec14da
+BOOT_WRAPPER_AARCH64_SITE           = git://git.kernel.org/pub/scm/linux/kernel/git/cmarinas/boot-wrapper-aarch64.git
+BOOT_WRAPPER_AARCH64_LICENSE        = BSD3c
+BOOT_WRAPPER_AARCH64_LICENSE_FILES  = LICENSE.txt
+BOOT_WRAPPER_AARCH64_DEPENDENCIES   = linux
+BOOT_WRAPPER_AARCH64_INSTALL_IMAGES = YES
+
+BOOT_WRAPPER_AARCH64_DTS = $(call qstrip,$(BR2_TARGET_BOOT_WRAPPER_AARCH64_DTS))
+
+define BOOT_WRAPPER_AARCH64_BUILD_CMDS
+	$(MAKE) \
+		KERNEL=$(BINARIES_DIR)/Image \
+		DTC=$(LINUX_DIR)/scripts/dtc/dtc \
+		FDT_SRC=$(LINUX_DIR)/arch/arm64/boot/dts/$(BOOT_WRAPPER_AARCH64_DTS).dts \
+		CROSS_COMPILE="$(CCACHE) $(TARGET_CROSS)" \
+		BOOTARGS='$(BR2_TARGET_BOOT_WRAPPER_AARCH64_BOOTARGS)' -C $(@D)
+endef
+
+define BOOT_WRAPPER_AARCH64_INSTALL_IMAGES_CMDS
+	cp $(@D)/linux-system.axf $(BINARIES_DIR)
+endef
+
+$(eval $(generic-package))