[Buildroot] [PATCH 5/6] package/rpi-firmware: add options to select what firmware to install
Yann E. MORIN
yann.morin.1998 at free.fr
Mon Jun 3 20:15:51 UTC 2013
From: "Yann E. MORIN" <yann.morin.1998 at free.fr>
Add two options to rpi-firmware:
- the first option to select the firmware being booted, amongst:
- the default one
- the cut-down one, for emergency
- the second to also install all firmwares
Signed-off-by: "Yann E. MORIN" <yann.morin.1998 at free.fr>
---
board/raspberrypi/readme.txt | 8 -------
package/rpi-firmware/Config.in | 45 ++++++++++++++++++++++++++++++++++++
package/rpi-firmware/rpi-firmware.mk | 20 ++++++++++++----
3 files changed, 61 insertions(+), 12 deletions(-)
diff --git a/board/raspberrypi/readme.txt b/board/raspberrypi/readme.txt
index 3287795..720a0ac 100644
--- a/board/raspberrypi/readme.txt
+++ b/board/raspberrypi/readme.txt
@@ -34,9 +34,7 @@ After building, you should obtain this tree:
+-- rpi-firmware
| +-- bootcode.bin
| +-- config.txt
- | +-- fixup_cd.dat
| +-- fixup.dat
- | +-- start_cd.elf
| `-- start.elf
`-- zImage
@@ -52,9 +50,7 @@ At the root of the partition, the RaspberryPi must find the following files:
* bootcode.bin
* config.txt
- * fixup_cd.dat
* fixup.dat
- * start_cd.elf
* start.elf
* zImage
@@ -83,9 +79,7 @@ After building, you should obtain this tree:
+-- rpi-firmware
| +-- bootcode.bin
| +-- config.txt
- | +-- fixup_cd.dat
| +-- fixup.dat
- | +-- start_cd.elf
| `-- start.elf
`-- zImage
@@ -104,9 +98,7 @@ You must copy theses files at the root of partition:
* bootcode.bin
* config.txt
- * fixup_cd.dat
* fixup.dat
- * start_cd.elf
* start.elf
* zImage
diff --git a/package/rpi-firmware/Config.in b/package/rpi-firmware/Config.in
index eb10a8a..4573204 100644
--- a/package/rpi-firmware/Config.in
+++ b/package/rpi-firmware/Config.in
@@ -7,3 +7,48 @@ config BR2_PACKAGE_RPI_FIRMWARE
https://github.com/raspberrypi/firmware
+if BR2_PACKAGE_RPI_FIRMWARE
+
+choice
+ bool "Firmware to boot"
+ default BR2_PACKAGE_RPI_FIRMWARE_DEFAULT
+ help
+ There are two different firmware files:
+ - the default firmware, that enables standard GPU features;
+ - the cut-down firmware, for emergency situations, with only
+ features required to boot a Linux kernel.
+
+config BR2_PACKAGE_RPI_FIRMWARE_DEFAULT
+ bool "default"
+ help
+ The default firmware, that enables standard GPU features.
+
+config BR2_PACKAGE_RPI_FIRMWARE_CD
+ bool "cut-down ('cd', emergency)"
+ help
+ The cut-down firmware, for emergency situations, with only
+ features required to boot a Linux kernel.
+
+endchoice
+
+config BR2_PACKAGE_RPI_FIRMWARE_BOOT
+ string
+ default "" if BR2_PACKAGE_RPI_FIRMWARE_DEFAULT
+ default "_cd" if BR2_PACKAGE_RPI_FIRMWARE_CD
+
+config BR2_PACKAGE_RPI_FIRMWARE_ALL
+ bool "Install all firmwares"
+ default y
+ help
+ If you say 'y' here (the default), then all firmware files will
+ be installed, so you can later switch to an alternate firmware.
+ The firmware files will be installed thusly:
+ - the 'default' will be denoted with '_default' in filenames
+ - the 'cut-down' will be denoted with '_cd' in filenames
+
+ If you say 'n', then only the firmware you choose above will be
+ installed.
+
+ Unless you are sure about it, say 'y'.
+
+endif # BR2_PACKAGE_RPI_FIRMWARE
diff --git a/package/rpi-firmware/rpi-firmware.mk b/package/rpi-firmware/rpi-firmware.mk
index dcda6b0..ebcd753 100644
--- a/package/rpi-firmware/rpi-firmware.mk
+++ b/package/rpi-firmware/rpi-firmware.mk
@@ -9,13 +9,25 @@ RPI_FIRMWARE_SITE = http://github.com/raspberrypi/firmware/tarball/master
RPI_FIRMWARE_LICENSE = BSD-3c
RPI_FIRMWARE_LICENSE_FILES = boot/LICENCE.broadcom
-define RPI_FIRMWARE_INSTALL_TARGET_CMDS
+define RPI_FIRMWARE_INSTALL_TARGET_CMDS_BASE
$(INSTALL) -D -m 0644 $(@D)/boot/bootcode.bin $(BINARIES_DIR)/rpi-firmware/bootcode.bin
- $(INSTALL) -D -m 0644 $(@D)/boot/start.elf $(BINARIES_DIR)/rpi-firmware/start.elf
+ $(INSTALL) -D -m 0644 $(@D)/boot/start$(BR2_PACKAGE_RPI_FIRMWARE_BOOT).elf $(BINARIES_DIR)/rpi-firmware/start.elf
+ $(INSTALL) -D -m 0644 $(@D)/boot/fixup$(BR2_PACKAGE_RPI_FIRMWARE_BOOT).dat $(BINARIES_DIR)/rpi-firmware/fixup.dat
+ $(INSTALL) -D -m 0644 package/rpi-firmware/config.txt $(BINARIES_DIR)/rpi-firmware/config.txt
+endef
+
+ifeq ($(BR2_PACKAGE_RPI_FIRMWARE_ALL),y)
+define RPI_FIRMWARE_INSTALL_TARGET_CMDS_EXTRA
+ $(INSTALL) -D -m 0644 $(@D)/boot/start.elf $(BINARIES_DIR)/rpi-firmware/start_default.elf
$(INSTALL) -D -m 0644 $(@D)/boot/start_cd.elf $(BINARIES_DIR)/rpi-firmware/start_cd.elf
- $(INSTALL) -D -m 0644 $(@D)/boot/fixup.dat $(BINARIES_DIR)/rpi-firmware/fixup.dat
+ $(INSTALL) -D -m 0644 $(@D)/boot/fixup.dat $(BINARIES_DIR)/rpi-firmware/fixup_default.dat
$(INSTALL) -D -m 0644 $(@D)/boot/fixup_cd.dat $(BINARIES_DIR)/rpi-firmware/fixup_cd.dat
- $(INSTALL) -D -m 0644 package/rpi-firmware/config.txt $(BINARIES_DIR)/rpi-firmware/config.txt
+endef
+endif
+
+define RPI_FIRMWARE_INSTALL_TARGET_CMDS
+$(RPI_FIRMWARE_INSTALL_TARGET_CMDS_BASE)
+$(RPI_FIRMWARE_INSTALL_TARGET_CMDS_EXTRA)
endef
$(eval $(generic-package))
--
1.8.1.2
More information about the buildroot
mailing list