diff mbox series

[v2,5/6] boot/riscv-pk: add bootloader for RISC-V architecture

Message ID 20180912102256.3164-6-mark.corbin@embecosm.com
State Accepted
Headers show
Series Add RISC-V 64-bit architecture support | expand

Commit Message

Mark Corbin Sept. 12, 2018, 10:22 a.m. UTC
Add the RISC-V Proxy Kernel (pk) package which provides the Berkeley
Boot Loader for booting RISC-V kernel images.

Signed-off-by: Mark Corbin <mark.corbin@embecosm.com>
---
 DEVELOPERS                |  1 +
 boot/Config.in            |  1 +
 boot/riscv-pk/Config.in   | 13 +++++++++++++
 boot/riscv-pk/riscv-pk.mk | 33 +++++++++++++++++++++++++++++++++
 4 files changed, 48 insertions(+)
 create mode 100644 boot/riscv-pk/Config.in
 create mode 100644 boot/riscv-pk/riscv-pk.mk

Comments

Thomas Petazzoni Sept. 25, 2018, 8:08 p.m. UTC | #1
Hello,

On Wed, 12 Sep 2018 11:22:55 +0100, Mark Corbin wrote:
> Add the RISC-V Proxy Kernel (pk) package which provides the Berkeley
> Boot Loader for booting RISC-V kernel images.
> 
> Signed-off-by: Mark Corbin <mark.corbin@embecosm.com>

I have applied, after doing some minor changes, see below.

> diff --git a/boot/riscv-pk/Config.in b/boot/riscv-pk/Config.in
> new file mode 100644
> index 0000000000..ec49f6aa6d
> --- /dev/null
> +++ b/boot/riscv-pk/Config.in
> @@ -0,0 +1,13 @@
> +comment "riscv-pk (BBL) needs a Linux kernel to be built"

Changed to just "riscv-pk needs ..."

> +	depends on BR2_riscv
> +	depends on !BR2_LINUX_KERNEL
> +
> +config BR2_TARGET_RISCV_PK
> +	bool "riscv-pk (BBL)"

Changed to just "riscv-pk"

For both changes: our policy is to try to stick to the upstream package
name in the Config.in prompt and comments.

> +	depends on BR2_riscv
> +	depends on BR2_LINUX_KERNEL
> +	help
> +	  The RISC-V Proxy Kernel (pk) package contains the Berkeley
> +	  Boot Loader (BBL) which has been designed to boot a Linux
> +	  kernel on a RISC-V processor.

I've added a missing blank line here.

> +	  https://github.com/riscv/riscv-pk.git

> +define RISCV_PK_CONFIGURE_CMDS
> +	mkdir -p $(@D)/build
> +	(cd $(@D)/build; \
> +	$(TARGET_CONFIGURE_OPTS) ../configure \
> +	--host=$(GNU_TARGET_NAME) \
> +	--with-payload=$(BINARIES_DIR)/vmlinux \

I fixed a bit the indentation here.

> +	)
> +endef
> +
> +define RISCV_PK_BUILD_CMDS
> +	$(TARGET_MAKE_ENV) $(MAKE) \
> +		-C $(@D)/build bbl

Changed this to be on one single line.

> +endef
> +
> +define RISCV_PK_INSTALL_IMAGES_CMDS
> +	cp $(@D)/build/bbl $(BINARIES_DIR)

And changed to:

	$(INSTALL) -D -m 0755 $(@D)/build/bbl $(BINARIES_DIR)/bbl

Thanks again for this contribution!

Thomas
diff mbox series

Patch

diff --git a/DEVELOPERS b/DEVELOPERS
index 1c29da4038..4d6c599aea 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -1289,6 +1289,7 @@  F:	package/ratpoison/
 N:	Mark Corbin <mark.corbin@embecosm.com>
 F:	arch/arch.mk.riscv
 F:	arch/Config.in.riscv
+F:	boot/riscv-pk/
 
 N:	Markos Chandras <markos.chandras@imgtec.com>
 F:	package/harfbuzz/
diff --git a/boot/Config.in b/boot/Config.in
index 3687c41a2c..945168bf37 100644
--- a/boot/Config.in
+++ b/boot/Config.in
@@ -13,6 +13,7 @@  source "boot/gummiboot/Config.in"
 source "boot/lpc32xxcdl/Config.in"
 source "boot/mv-ddr-marvell/Config.in"
 source "boot/mxs-bootlets/Config.in"
+source "boot/riscv-pk/Config.in"
 source "boot/s500-bootloader/Config.in"
 source "boot/syslinux/Config.in"
 source "boot/ts4800-mbrboot/Config.in"
diff --git a/boot/riscv-pk/Config.in b/boot/riscv-pk/Config.in
new file mode 100644
index 0000000000..ec49f6aa6d
--- /dev/null
+++ b/boot/riscv-pk/Config.in
@@ -0,0 +1,13 @@ 
+comment "riscv-pk (BBL) needs a Linux kernel to be built"
+	depends on BR2_riscv
+	depends on !BR2_LINUX_KERNEL
+
+config BR2_TARGET_RISCV_PK
+	bool "riscv-pk (BBL)"
+	depends on BR2_riscv
+	depends on BR2_LINUX_KERNEL
+	help
+	  The RISC-V Proxy Kernel (pk) package contains the Berkeley
+	  Boot Loader (BBL) which has been designed to boot a Linux
+	  kernel on a RISC-V processor.
+	  https://github.com/riscv/riscv-pk.git
diff --git a/boot/riscv-pk/riscv-pk.mk b/boot/riscv-pk/riscv-pk.mk
new file mode 100644
index 0000000000..9eee7e0a82
--- /dev/null
+++ b/boot/riscv-pk/riscv-pk.mk
@@ -0,0 +1,33 @@ 
+################################################################################
+#
+# riscv-pk (BBL)
+#
+################################################################################
+
+RISCV_PK_VERSION = 706cc77c369fd3e4734b5a6aa813d421347f1814
+RISCV_PK_SITE = git://github.com/riscv/riscv-pk.git
+RISCV_PK_LICENSE = BSD-3-Clause
+RISCV_PK_LICENSE_FILES = LICENSE
+RISCV_PK_DEPENDENCIES = linux
+RISCV_PK_SUBDIR = build
+RISCV_PK_INSTALL_IMAGES = YES
+
+define RISCV_PK_CONFIGURE_CMDS
+	mkdir -p $(@D)/build
+	(cd $(@D)/build; \
+	$(TARGET_CONFIGURE_OPTS) ../configure \
+	--host=$(GNU_TARGET_NAME) \
+	--with-payload=$(BINARIES_DIR)/vmlinux \
+	)
+endef
+
+define RISCV_PK_BUILD_CMDS
+	$(TARGET_MAKE_ENV) $(MAKE) \
+		-C $(@D)/build bbl
+endef
+
+define RISCV_PK_INSTALL_IMAGES_CMDS
+	cp $(@D)/build/bbl $(BINARIES_DIR)
+endef
+
+$(eval $(generic-package))