boot/riscv-pk: add bootloader for RISC-V architecture

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>
[Thomas:
 - fix prompt of option to be just "riscv-pk"
 - add blank line between help text and upstream URL in Config.in file
 - use $(INSTALL) instead of cp to install the generated image]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
This commit is contained in:
Mark Corbin 2018-09-12 11:22:55 +01:00 committed by Thomas Petazzoni
parent 9b3d52b400
commit b3c46df481
4 changed files with 48 additions and 0 deletions

View File

@ -1301,6 +1301,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/

View File

@ -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"

14
boot/riscv-pk/Config.in Normal file
View File

@ -0,0 +1,14 @@
comment "riscv-pk needs a Linux kernel to be built"
depends on BR2_riscv
depends on !BR2_LINUX_KERNEL
config BR2_TARGET_RISCV_PK
bool "riscv-pk"
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

32
boot/riscv-pk/riscv-pk.mk Normal file
View File

@ -0,0 +1,32 @@
################################################################################
#
# riscv-pk
#
################################################################################
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
$(INSTALL) -D -m 0755 $(@D)/build/bbl $(BINARIES_DIR)/bbl
endef
$(eval $(generic-package))