Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH] Add package raspberrypi-firmware.
@ 2012-09-17 20:34 Marek Belisko
  2012-09-17 20:43 ` Thomas Petazzoni
                   ` (2 more replies)
  0 siblings, 3 replies; 16+ messages in thread
From: Marek Belisko @ 2012-09-17 20:34 UTC (permalink / raw)
  To: buildroot

Add support for raspberrypi bootloader and VideoCore.

Signed-off-by: Marek Belisko <marek.belisko@open-nandra.com>

Added changes from Arnout comments:
(http://lists.busybox.net/pipermail/buildroot/2012-September/058565.html)
- add rasberrypi-firmware as separate package
- change Config.in handling to have separate bootloader and
  VideoCore packages (handled in same mk file)
- various other fixes

New features:
- add possibility to choose ARM - GPU memory split by user
- download package in tar.gz instead git method

---
 package/Config.in                                  |    1 +
 package/raspberrypi-firmware/Config.in             |   53 ++++++++++++++++++++
 .../raspberrypi-firmware/raspberrypi-firmware.mk   |   48 ++++++++++++++++++
 3 files changed, 102 insertions(+)
 create mode 100644 package/raspberrypi-firmware/Config.in
 create mode 100644 package/raspberrypi-firmware/raspberrypi-firmware.mk

diff --git a/package/Config.in b/package/Config.in
index 58dd5e8..36635cd 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -232,6 +232,7 @@ source "package/owl-linux/Config.in"
 source "package/parted/Config.in"
 source "package/pciutils/Config.in"
 source "package/picocom/Config.in"
+source "package/raspberrypi-firmware/Config.in"
 source "package/read-edid/Config.in"
 source "package/rng-tools/Config.in"
 source "package/sane-backends/Config.in"
diff --git a/package/raspberrypi-firmware/Config.in b/package/raspberrypi-firmware/Config.in
new file mode 100644
index 0000000..55abd68
--- /dev/null
+++ b/package/raspberrypi-firmware/Config.in
@@ -0,0 +1,53 @@
+config BR2_PACKAGE_RASPBERRYPI_FIRMWARE
+	bool
+
+config BR2_PACKAGE_RASPBERRYPI_BOOTLOADER
+        bool "Raspberry Pi bootloader files"
+	select BR2_PACKAGE_RASPBERRYPI_FIRMWARE
+        help
+          These are the binary bootloader files from Broadcom.
+
+          https://github.com/raspberrypi/firmware
+
+if BR2_PACKAGE_RASPBERRYPI_BOOTLOADER
+choice
+
+prompt "Memory & GPU split"
+	default BR2_PACKAGE_BOOTLOADER_ARM192
+	help
+         Select how much memory use for system and
+	 how much for GPU.
+
+config BR2_PACKAGE_BOOTLOADER_ARM128
+        bool "arm128"
+        help
+	   128M ARM, 128M GPU split (use this for heavy 3D work, possibly also
+	   required for some video decoding)
+
+config BR2_PACKAGE_BOOTLOADER_ARM192
+        bool "arm192"
+        help
+	  192M ARM, 64M GPU split (this is the default)
+
+config BR2_PACKAGE_BOOTLOADER_ARM224
+        bool "arm224"
+        help
+	  224M ARM, 32M GPU split (use this for Linux only with no 3D or video
+	  processing. Its enough for the 1080p framebuffer, but not much else)
+
+config BR2_PACKAGE_BOOTLOADER_ARM240
+        bool "arm240"
+        help
+	  240M ARM, 16M GPU split (use this for headless mode only. It is enough
+	  to boot the system, but you can not use video at all.)
+endchoice
+
+endif #BR2_PACKAGE_RASPBERRYPI_BOOTLOADER
+
+config BR2_PACKAGE_RASPBERRYPI_VIDEOCORE
+        bool "Raspberry Pi VideoCore drivers"
+	select BR2_PACKAGE_RASPBERRYPI_FIRMWARE
+        help
+          These are the binary VideoCore drivers from Broadcom.
+
+          https://github.com/raspberrypi/firmware
diff --git a/package/raspberrypi-firmware/raspberrypi-firmware.mk b/package/raspberrypi-firmware/raspberrypi-firmware.mk
new file mode 100644
index 0000000..1ebf67c
--- /dev/null
+++ b/package/raspberrypi-firmware/raspberrypi-firmware.mk
@@ -0,0 +1,48 @@
+RASPBERRYPI_FIRMWARE_VERSION = d29291e
+RASPBERRYPI_FIRMWARE_SOURCE = raspberrypi-firmware-$(RASPBERRYPI_FIRMWARE_VERSION).tar.gz
+RASPBERRYPI_FIRMWARE_SITE = http://github.com/raspberrypi/firmware/tarball/master
+
+ifeq ($(BR2_PACKAGE_RASPBERRYPI_VIDEOCORE),y)
+RASPBERRYPI_FIRMWARE_INSTALL_STAGING = YES
+
+define RASPBERRYPI_FIRMWARE_INSTALL_STAGING_CMDS
+	cp -r $(@D)/hardfp/opt $(STAGING_DIR)/
+endef
+
+define RASPBERRYPI_FIRMWARE_INSTALL_TARGET_VIDEOCORE
+	cp -r $(@D)/hardfp/opt/vc/bin $(TARGET_DIR)/usr/bin
+	cp -r $(@D)/hardfp/opt/vc/lib $(TARGET_DIR)/usr/lib
+	cp -r $(@D)/hardfp/opt/vc/sbin $(TARGET_DIR)/usr/sbin
+endef
+endif
+
+ifeq ($(BR2_PACKAGE_RASPBERRYPI_BOOTLOADER),y)
+BOOT_FILE := #empty
+ifeq ($(BR2_PACKAGE_BOOTLOADER_ARM128),y)
+BOOT_FILE += arm128_start.elf
+else ifeq ($(BR2_PACKAGE_BOOTLOADER_ARM192),y)
+BOOT_FILE += arm192_start.elf
+else ifeq ($(BR2_PACKAGE_BOOTLOADER_ARM224),y)
+BOOT_FILE += arm224_start.elf
+else ifeq ($(BR2_PACKAGE_BOOTLOADER_ARM240),y)
+BOOT_FILE += arm240_start.elf
+endif
+
+define RASPBERRYPI_FIRMWARE_INSTALL_TARGET_BOOTLOADER
+	if [ ! -d "$(TARGET_DIR)/boot" ]; then \
+		mkdir $(TARGET_DIR)/boot; \
+	fi; \
+	cp $(@D)/boot/$(subst $(space),$(comma),$(strip $(BOOT_FILE))) \
+		$(TARGET_DIR)/boot/start.elf
+	cp $(@D)/boot/bootcode.bin $(TARGET_DIR)/boot/bootcode.bin
+	cp $(@D)/boot/loader.bin $(TARGET_DIR)/boot/loader.bin
+endef
+endif
+
+define RASPBERRYPI_FIRMWARE_INSTALL_TARGET_CMDS
+	$(RASPBERRYPI_FIRMWARE_INSTALL_TARGET_BOOTLOADER)
+	$(RASPBERRYPI_FIRMWARE_INSTALL_TARGET_VIDEOCORE)
+endef
+
+$(eval $(generic-package))
+
-- 
1.7.9.5

^ permalink raw reply related	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2012-09-19 23:10 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-09-17 20:34 [Buildroot] [PATCH] Add package raspberrypi-firmware Marek Belisko
2012-09-17 20:43 ` Thomas Petazzoni
2012-09-17 21:01 ` Yann E. MORIN
2012-09-17 21:50   ` Yann E. MORIN
2012-09-18  5:09     ` Thomas Petazzoni
2012-09-18 17:47       ` Yann E. MORIN
2012-09-18 18:06         ` Thomas Petazzoni
2012-09-18 21:53           ` [Buildroot] Two packages with the same source [was: [PATCH] Add package raspberrypi-firmware.] Arnout Vandecappelle
2012-09-18 22:01 ` [Buildroot] [PATCH] Add package raspberrypi-firmware Arnout Vandecappelle
2012-09-19  7:59   ` Diego Iastrubni
2012-09-19  8:09     ` Belisko Marek
2012-09-19 19:49       ` Arnout Vandecappelle
2012-09-19 20:08         ` Belisko Marek
2012-09-19 21:28           ` Arnout Vandecappelle
2012-09-19 21:50             ` Belisko Marek
2012-09-19 23:10               ` Arnout Vandecappelle

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox