boot/beaglev-secondboot: new package
authorThomas Petazzoni <thomas.petazzoni@bootlin.com>
Tue, 4 May 2021 20:51:37 +0000 (22:51 +0200)
committerYann E. MORIN <yann.morin.1998@free.fr>
Fri, 7 May 2021 21:11:33 +0000 (23:11 +0200)
This packages allows to build the first stage bootloader used on the
BeagleV, which is used even before the DDR initialization and
OpenSBI/U-Boot. Yes, "secondboot" is strange for what is the first
stage bootloader, but that's the upstream name.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
[yann.morin.1998@free.fr:
  - add hash file
  - commit is HEAD only right now, so don't reference HEAD
]
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
DEVELOPERS
boot/Config.in
boot/beaglev-secondboot/Config.in [new file with mode: 0644]
boot/beaglev-secondboot/beaglev-secondboot.hash [new file with mode: 0644]
boot/beaglev-secondboot/beaglev-secondboot.mk [new file with mode: 0644]

index 0c3a3e31346e2ebcaa234604d0d97d49eb3b9627..bbbb0ecfa83a8439d09997a33229d0144a1eeafd 100644 (file)
@@ -2605,6 +2605,7 @@ F:        arch/Config.in.arm
 F:     board/beaglev/
 F:     board/stmicroelectronics/stm32mp157c-dk2/
 F:     boot/beaglev-ddrlnit/
+F:     boot/beaglev-secondboot/
 F:     boot/boot-wrapper-aarch64/
 F:     boot/grub2/
 F:     boot/gummiboot/
index 4f89f0dad11269b3e81595caf27dbc09d618116a..54c2b7605d5ae93fffbc3ba68decf94886ff69a3 100644 (file)
@@ -7,6 +7,7 @@ source "boot/at91dataflashboot/Config.in"
 source "boot/arm-trusted-firmware/Config.in"
 source "boot/barebox/Config.in"
 source "boot/beaglev-ddrlnit/Config.in"
+source "boot/beaglev-secondboot/Config.in"
 source "boot/binaries-marvell/Config.in"
 source "boot/boot-wrapper-aarch64/Config.in"
 source "boot/grub2/Config.in"
diff --git a/boot/beaglev-secondboot/Config.in b/boot/beaglev-secondboot/Config.in
new file mode 100644 (file)
index 0000000..a9695fc
--- /dev/null
@@ -0,0 +1,9 @@
+config BR2_TARGET_BEAGLEV_SECONDBOOT
+       bool "beaglev-secondboot"
+       depends on BR2_riscv
+       depends on BR2_HOSTARCH = "x86_64" # host-riscv64-elf-toolchain
+       help
+         This package builds the SecondBoot firmware used on the
+         BeagleV platform.
+
+         https://github.com/starfive-tech/beagle_secondBoot
diff --git a/boot/beaglev-secondboot/beaglev-secondboot.hash b/boot/beaglev-secondboot/beaglev-secondboot.hash
new file mode 100644 (file)
index 0000000..d936263
--- /dev/null
@@ -0,0 +1,2 @@
+# Locally computed
+sha256  b97dc40dbfc49ced591d6ef53d06adebf90b9c467d3754ec51b2626593d97cbd  beaglev-secondboot-a4f0b4307f877890f998b3216cffcc9f27a5f993.tar.gz
diff --git a/boot/beaglev-secondboot/beaglev-secondboot.mk b/boot/beaglev-secondboot/beaglev-secondboot.mk
new file mode 100644 (file)
index 0000000..7bd9716
--- /dev/null
@@ -0,0 +1,29 @@
+################################################################################
+#
+# beaglev-secondboot
+#
+################################################################################
+
+# Commit on the 'starfive' branch
+BEAGLEV_SECONDBOOT_VERSION = a4f0b4307f877890f998b3216cffcc9f27a5f993
+BEAGLEV_SECONDBOOT_SITE = $(call github,starfive-tech,beagle_secondBoot,$(BEAGLEV_SECONDBOOT_VERSION))
+BEAGLEV_SECONDBOOT_INSTALL_TARGET = NO
+BEAGLEV_SECONDBOOT_INSTALL_IMAGES = YES
+BEAGLEV_SECONDBOOT_DEPENDENCIES = host-riscv64-elf-toolchain
+# unfortunately, no real license file, but several sources files are
+# under GPL-2.0+, making the whole work GPL-2.0+
+BEAGLEV_SECONDBOOT_LICENSE = GPL-2.0+
+
+define BEAGLEV_SECONDBOOT_BUILD_CMDS
+       $(MAKE) -C $(@D)/build \
+               CROSSCOMPILE=$(HOST_DIR)/bin/riscv64-unknown-elf- \
+               SUFFIX=buildroot \
+               GIT_VERSION=$(BEAGLEV_SECONDBOOT_VERSION)
+endef
+
+define BEAGLEV_SECONDBOOT_INSTALL_IMAGES_CMDS
+       $(INSTALL) -D -m 0644 $(@D)/build/bootloader-BEAGLEV-buildroot.bin.out \
+               $(BINARIES_DIR)/bootloader-BEAGLEV-buildroot.bin.out
+endef
+
+$(eval $(generic-package))