Skip to contentSkip to conversation

Pull request for branch rpi-support

GIT PULL New Maxime Hadjinlian 8 participants 29 messages Jan 5, 2013 – Jan 7, 2013

lore
Share & tools
lore
#0 lore raw

Hello All!

A short series to add some needed RaspberryPi specific packages in order to build a rootfs for this board.

The following changes since commit 66bfe1d4fe2de50aef6ac3fc836a710fa577cdef:

xdriver_xf86-video-sunffb: remove package (2013-01-05 14:34:48 +0100)

are available in the git repository at:

http://github.com/maximeh/buildroot.git rpi-support

for you to fetch changes up to 0a82214a34f519691ff795260820907a7a8b4cfc:

rpi-fw: New package (2013-01-05 14:59:15 +0100)

----------------------------------------------------------------
Maxime Hadjinlian (3):
libcofi: new package
rpi-userland: new package
rpi-fw: New package

 package/Config.in                    |    3 +++
 package/libcofi/Config.in            |    8 ++++++++
 package/libcofi/libcofi.mk           |   17 +++++++++++++++++
 package/rpi-fw/Config.in             |    9 +++++++++
 package/rpi-fw/cmdline.txt           |    1 +
 package/rpi-fw/config.txt            |    7 +++++++
 package/rpi-fw/rpi-fw.mk             |   22 ++++++++++++++++++++++
 package/rpi-userland/Config.in       |   12 ++++++++++++
 package/rpi-userland/rpi-userland.mk |   25 +++++++++++++++++++++++++
 9 files changed, 104 insertions(+)
 create mode 100644 package/libcofi/Config.in
 create mode 100644 package/libcofi/libcofi.mk
 create mode 100644 package/rpi-fw/Config.in
 create mode 100644 package/rpi-fw/cmdline.txt
 create mode 100644 package/rpi-fw/config.txt
 create mode 100644 package/rpi-fw/rpi-fw.mk
 create mode 100644 package/rpi-userland/Config.in
 create mode 100644 package/rpi-userland/rpi-userland.mk

Regards,
Maxime Hadjinlian

--

#1 lore raw

PATCH 1/3 libcofi: new package

replacement for memcpy and memset functionality
This package was originally found at : https://github.com/huceke/buildroot-rbp
By gimli <[email protected]>

---
 package/Config.in          |    1 +
 package/libcofi/Config.in  |    8 ++++++++
 package/libcofi/libcofi.mk |   17 +++++++++++++++++
 3 files changed, 26 insertions(+)
 create mode 100644 package/libcofi/Config.in
 create mode 100644 package/libcofi/libcofi.mk
package/Config.in +1 -0
index 11ff82d..a3530d7 100644
@@ -511,6 +511,7 @@ endmenu
 menu "Other"
 source "package/apr/Config.in"
 source "package/apr-util/Config.in"
+source "package/libcofi/Config.in"
 source "package/classpath/Config.in"
 source "package/fftw/Config.in"
 source "package/libargtable2/Config.in"
package/libcofi/Config.in new file +8 -0
new file mode 100644
index 0000000..b900b69
@@ -0,0 +1,8 @@
+config BR2_PACKAGE_LIBCOFI
+	bool "libcofi"
+	depends on BR2_arm
+	help
+	  A replacement for memcpy and memset functionality for the Raspberry Pi
+	  with the intention of gaining greater performance.
+
+	  https://github.com/simonjhall/copies-and-fills
package/libcofi/libcofi.mk new file +17 -0
new file mode 100644
index 0000000..4872d1c
@@ -0,0 +1,17 @@
+#############################################################
+#
+# libcofi
+#
+#############################################################
+LIBCOFI_VERSION = 7313fbe12b0593034d0a1b606bf33c7cf4ababce
+LIBCOFI_SITE = http://github.com/simonjhall/copies-and-fills/tarball/master
+
+define LIBCOFI_BUILD_CMDS
+    $(MAKE1) AS="$(TARGET_AS)" CC="$(TARGET_CC)" -C $(@D) libcofi_rpi.so
+endef
+
+define LIBCOFI_INSTALL_TARGET_CMDS
+    $(INSTALL) -D -m 0755 $(@D)/libcofi_rpi.so* $(TARGET_DIR)/usr/lib
+endef
+
+$(eval $(generic-package))
Signature · 1 line
1.7.10.4
#2 lore raw

PATCH 2/3 rpi-userland: new package

In reply to Maxime Hadjinlian

Introducing a package to build the userland part of the Raspberry, needed by anyone who would want to build a rootfs for a RaspberryPi.

---
 package/Config.in                    |    1 +
 package/rpi-userland/Config.in       |   12 ++++++++++++
 package/rpi-userland/rpi-userland.mk |   25 +++++++++++++++++++++++++
 3 files changed, 38 insertions(+)
 create mode 100644 package/rpi-userland/Config.in
 create mode 100644 package/rpi-userland/rpi-userland.mk
package/Config.in +1 -0
index a3530d7..604ed1b 100644
@@ -579,6 +579,7 @@ source "package/collectd/Config.in"
 source "package/empty/Config.in"
 source "package/googlefontdirectory/Config.in"
 source "package/mobile-broadband-provider-info/Config.in"
+source "package/rpi-userland/Config.in"
 source "package/shared-mime-info/Config.in"
 source "package/snowball-init/Config.in"
 source "package/sound-theme-borealis/Config.in"
package/rpi-userland/Config.in new file +12 -0
new file mode 100644
index 0000000..3d4585f
@@ -0,0 +1,12 @@
+config BR2_PACKAGE_RPI_USERLAND
+	bool "rpi-userland"
+	select BR2_PACKAGE_LIBCOFI
+	help
+	  Raspberry Pi Userland contains the necessary library to use the
+	  VideoCore driver.
+
+	  Includes source for the ARM side code to interface to: 
+	  EGL, mmal, GLESv2, vcos, openmaxil, vchiq_arm, bcm_host, WFC, OpenVG.
+
+	  https://github.com/raspberrypi/userland/
+
package/rpi-userland/rpi-userland.mk new file +25 -0
new file mode 100644
index 0000000..5bae06d
@@ -0,0 +1,25 @@
+#############################################################
+#
+# rpi-userland
+#
+#############################################################
+RPI_USERLAND_VERSION = 9852ce28826889e50c4d6786b942f51bccccac54
+RPI_USERLAND_SITE = http://github.com/raspberrypi/userland/tarball/master
+RPI_USERLAND_LICENSE = FOSS
+RPI_USERLAND_LICENSE_FILE = LICENCE
+RPI_USERLAND_INSTALL_STAGING = YES
+
+define RPI_USERLAND_POST_TARGET_CLEANUP
+    rm -Rf $(TARGET_DIR)/opt/vc/include
+    rm -Rf $(TARGET_DIR)/opt/vc/share
+    rm -Rf $(TARGET_DIR)/opt/vc/src
+    rm -f  $(TARGET_DIR)/etc/init.d/vcfiled
+    rm -f  $(TARGET_DIR)/opt/vc/lib/*.a
+    rmdir -p --ignore-fail-on-non-empty $(TARGET_DIR)/etc/init.d || true
+    mv $(TARGET_DIR)/opt/vc/lib/* $(TARGET_DIR)/usr/lib/
+    rm -Rf $(TARGET_DIR)/opt/vc/
+endef
+
+RPI_USERLAND_POST_INSTALL_TARGET_HOOKS += RPI_USERLAND_POST_TARGET_CLEANUP
+
+$(eval $(cmake-package))
Signature · 1 line
1.7.10.4
#15 lore raw

PATCH 3/3 rpi-fw: New package

In reply to Maxime Hadjinlian

Introducing a package to install pre-built binaries for the bootloader and the GPU firmware for the RaspberryPi board.

---
 package/Config.in          |    1 +
 package/rpi-fw/Config.in   |    9 +++++++++
 package/rpi-fw/cmdline.txt |    1 +
 package/rpi-fw/config.txt  |    7 +++++++
 package/rpi-fw/rpi-fw.mk   |   22 ++++++++++++++++++++++
 5 files changed, 40 insertions(+)
 create mode 100644 package/rpi-fw/Config.in
 create mode 100644 package/rpi-fw/cmdline.txt
 create mode 100644 package/rpi-fw/config.txt
 create mode 100644 package/rpi-fw/rpi-fw.mk
package/Config.in +1 -0
index 604ed1b..e21045f 100644
@@ -253,6 +253,7 @@ source "package/owl-linux/Config.in"
 source "package/parted/Config.in"
 source "package/pciutils/Config.in"
 source "package/picocom/Config.in"
+source "package/rpi-fw/Config.in"
 source "package/read-edid/Config.in"
 source "package/rng-tools/Config.in"
 source "package/sane-backends/Config.in"
package/rpi-fw/Config.in new file +9 -0
new file mode 100644
index 0000000..4b5a1e8
@@ -0,0 +1,9 @@
+config BR2_PACKAGE_RPI_FW
+	bool "RaspberryPi Firmware"
+	depends on BR2_arm
+	help
+	  RaspberryPi Firmware
+	  Pre-compiled binaries of the current bootloader and GPU firmware
+
+	  https://github.com/raspberrypi/firmware
+
package/rpi-fw/cmdline.txt new file +1 -0
new file mode 100644
index 0000000..010ee3f
@@ -0,0 +1 @@
+dwc_otg.fiq_fix_enable=1 sdhci-bcm2708.sync_after_dma=0 dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 rootwait
package/rpi-fw/config.txt new file +7 -0
new file mode 100644
index 0000000..ab9f7ff
@@ -0,0 +1,7 @@
+arm_freq=700
+core_freq=250
+disable_overscan=1
+gpu_mem_256=100
+gpu_mem_512=100
+sdram_freq=400
+over_voltage=0
package/rpi-fw/rpi-fw.mk new file +22 -0
new file mode 100644
index 0000000..e7b8674
@@ -0,0 +1,22 @@
+#############################################################
+#
+# rpi-fw
+#
+#############################################################
+RPI_FW_VERSION = 76d0ac38f16b6343c6155c80db1e4758b3a5838a
+RPI_FW_SITE = http://github.com/raspberrypi/firmware/tarball/master
+RPI_FW_LICENSE = FOSS
+RPI_FW_LICENSE_FILE = LICENCE.broadcom
+RPI_FW_INSTALL_STAGING = NO
+
+define RPI_FW_INSTALL_TARGET_CMDS
+	$(INSTALL) -D -m 0644 $(@D)/boot/bootcode.bin $(TARGET_DIR)/boot/
+	$(INSTALL) -D -m 0644 $(@D)/boot/start.elf $(TARGET_DIR)/boot/
+	$(INSTALL) -D -m 0644 $(@D)/boot/start_cd.elf $(TARGET_DIR)/boot/
+	$(INSTALL) -D -m 0644 $(@D)/boot/fixup.dat $(TARGET_DIR)/boot/
+	$(INSTALL) -D -m 0644 $(@D)/boot/fixup_cd.dat $(TARGET_DIR)/boot/
+	$(INSTALL) -D -m 0644 package/rpi-fw/cmdline.txt $(TARGET_DIR)/boot/
+	$(INSTALL) -D -m 0644 package/rpi-fw/config.txt $(TARGET_DIR)/boot/
+endef
+
+$(eval $(generic-package))
Signature · 1 line
1.7.10.4
#3 lore raw

PATCH 2/3 rpi-userland: new package

In reply to Maxime Hadjinlian

Hi Maxime,

2013/1/5 Maxime Hadjinlian <[email protected]>:

Quoted 56 lines

Introducing a package to build the userland part of the Raspberry, needed by anyone who would want to build a rootfs for a RaspberryPi.

---
 package/Config.in                    |    1 +
 package/rpi-userland/Config.in       |   12 ++++++++++++
 package/rpi-userland/rpi-userland.mk |   25 +++++++++++++++++++++++++
 3 files changed, 38 insertions(+)
 create mode 100644 package/rpi-userland/Config.in
 create mode 100644 package/rpi-userland/rpi-userland.mk
package/Config.in +1 -0
index a3530d7..604ed1b 100644
@@ -579,6 +579,7 @@ source "package/collectd/Config.in"
 source "package/empty/Config.in"
 source "package/googlefontdirectory/Config.in"
 source "package/mobile-broadband-provider-info/Config.in"
+source "package/rpi-userland/Config.in"
 source "package/shared-mime-info/Config.in"
 source "package/snowball-init/Config.in"
 source "package/sound-theme-borealis/Config.in"
package/rpi-userland/Config.in new file +12 -0
new file mode 100644
index 0000000..3d4585f
@@ -0,0 +1,12 @@
+config BR2_PACKAGE_RPI_USERLAND
+       bool "rpi-userland"
+       select BR2_PACKAGE_LIBCOFI
+       help
+         Raspberry Pi Userland contains the necessary library to use the
+         VideoCore driver.
+
+         Includes source for the ARM side code to interface to:
+         EGL, mmal, GLESv2, vcos, openmaxil, vchiq_arm, bcm_host, WFC, OpenVG.
+
+         https://github.com/raspberrypi/userland/
+
package/rpi-userland/rpi-userland.mk new file +8 -0
new file mode 100644
index 0000000..5bae06d
@@ -0,0 +1,25 @@
+#############################################################
+#
+# rpi-userland
+#
+#############################################################
+RPI_USERLAND_VERSION = 9852ce28826889e50c4d6786b942f51bccccac54
+RPI_USERLAND_SITE = http://github.com/raspberrypi/userland/tarball/master
+RPI_USERLAND_LICENSE = FOSS

package/rpi-userland/rpi-userland.mk line 18

Quoted 10 lines
package/rpi-userland/rpi-userland.mk new file +10 -0
+RPI_USERLAND_LICENSE_FILE = LICENCE
+RPI_USERLAND_INSTALL_STAGING = YES
+
+define RPI_USERLAND_POST_TARGET_CLEANUP
+    rm -Rf $(TARGET_DIR)/opt/vc/include
+    rm -Rf $(TARGET_DIR)/opt/vc/share
+    rm -Rf $(TARGET_DIR)/opt/vc/src
+    rm -f  $(TARGET_DIR)/etc/init.d/vcfiled
+    rm -f  $(TARGET_DIR)/opt/vc/lib/*.a
+    rmdir -p --ignore-fail-on-non-empty $(TARGET_DIR)/etc/init.d || true

Since you use the --ignore-fail-on-non-empty option, i think "|| true" is useless.

package/rpi-userland/rpi-userland.mk line 21

Quoted 3 lines
package/rpi-userland/rpi-userland.mk new file +3 -0
+    mv $(TARGET_DIR)/opt/vc/lib/* $(TARGET_DIR)/usr/lib/
+    rm -Rf $(TARGET_DIR)/opt/vc/
+endef

Also, since you set RPI_USERLAND_INSTALL_STAGING = YES, don't you need to do some cleanup/fixup hook for the staging area as well?

package/rpi-userland/rpi-userland.mk line 23

Quoted 2 lines
package/rpi-userland/rpi-userland.mk new file +2 -0
+
+RPI_USERLAND_POST_INSTALL_TARGET_HOOKS += RPI_USERLAND_POST_TARGET_CLEANUP

BTW, it is possible to avoid this cleanup hook (or at least reduce it to the example source) with this patch:
http://code.bulix.org/3fo6ye-82780
and by adding "-DVMCS_INSTALL_PREFIX=/usr" to the RPI_USERLAND_CONF_OPT variable.

Quoted 4 lines
package/rpi-userland/rpi-userland.mk new file +2 -1
+
+$(eval $(cmake-package))
--

1.7.10.4

Regards,

Signature · 1 line
Samuel
#9 lore raw

PATCH 2/3 rpi-userland: new package

In reply to Maxime Hadjinlian

Maxime, All,

Quoted 4 lines · On Saturday 05 January 2013 Maxime Hadjinlian wrote:

Introducing a package to build the userland part of the Raspberry, needed by anyone who would want to build a rootfs for a RaspberryPi.

[--SNIP--]

package/rpi-userland/Config.in line 3

Quoted 9 lines
package/rpi-userland/Config.in new file +3 -0
new file mode 100644
index 0000000..3d4585f
@@ -0,0 +1,12 @@
+config BR2_PACKAGE_RPI_USERLAND
+	bool "rpi-userland"
+	select BR2_PACKAGE_LIBCOFI

Do not forget to add this dependency in the .mk (see below)

package/rpi-userland/Config.in line 6

Quoted 3 lines
package/rpi-userland/Config.in new file +3 -0
+	help
+	  Raspberry Pi Userland contains the necessary library to use the
+	  VideoCore driver.

Then, what about calling this package something like 'videocore'. I guess there areaother boards out there that use this GPU.

[--SNIP--]

Quoted 6 lines
package/rpi-userland/rpi-userland.mk new file +0 -0
new file mode 100644
index 0000000..5bae06d

package/rpi-userland/rpi-userland.mk line 10

Quoted 10 lines
package/rpi-userland/rpi-userland.mk new file +10 -0
@@ -0,0 +1,25 @@
+#############################################################
+#
+# rpi-userland
+#
+#############################################################
+RPI_USERLAND_VERSION = 9852ce28826889e50c4d6786b942f51bccccac54
+RPI_USERLAND_SITE = http://github.com/raspberrypi/userland/tarball/master
+RPI_USERLAND_LICENSE = FOSS
+RPI_USERLAND_LICENSE_FILE = LICENCE
+RPI_USERLAND_INSTALL_STAGING = YES

RPI_USERLAND_DPENDENCIES = libcofi

Although, is libcofi really required? I just greped for 'cofi', and found no occurence, so I'd say it is not.

Quoted 4 lines
package/rpi-userland/rpi-userland.mk new file +4 -0
+define RPI_USERLAND_POST_TARGET_CLEANUP
+    rm -Rf $(TARGET_DIR)/opt/vc/include
+    rm -Rf $(TARGET_DIR)/opt/vc/share
+    rm -Rf $(TARGET_DIR)/opt/vc/src

package/rpi-userland/rpi-userland.mk line 25

Quoted 10 lines
package/rpi-userland/rpi-userland.mk new file +10 -0
+    rm -f  $(TARGET_DIR)/etc/init.d/vcfiled
+    rm -f  $(TARGET_DIR)/opt/vc/lib/*.a
+    rmdir -p --ignore-fail-on-non-empty $(TARGET_DIR)/etc/init.d || true
+    mv $(TARGET_DIR)/opt/vc/lib/* $(TARGET_DIR)/usr/lib/
+    rm -Rf $(TARGET_DIR)/opt/vc/
+endef
+
+RPI_USERLAND_POST_INSTALL_TARGET_HOOKS += RPI_USERLAND_POST_TARGET_CLEANUP
+
+$(eval $(cmake-package))

Untested so far, will do shortly.

Regards,
Yann E. MORIN.

Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
#16 lore raw

PATCH 3/3 rpi-fw: New package

In reply to Maxime Hadjinlian

Maxime, All,

Quoted 21 lines · On Saturday 05 January 2013 Maxime Hadjinlian wrote:

Introducing a package to install pre-built binaries for the bootloader and the GPU firmware for the RaspberryPi board.

---
 package/Config.in          |    1 +
 package/rpi-fw/Config.in   |    9 +++++++++
 package/rpi-fw/cmdline.txt |    1 +
 package/rpi-fw/config.txt  |    7 +++++++
 package/rpi-fw/rpi-fw.mk   |   22 ++++++++++++++++++++++
 5 files changed, 40 insertions(+)
 create mode 100644 package/rpi-fw/Config.in
 create mode 100644 package/rpi-fw/cmdline.txt
 create mode 100644 package/rpi-fw/config.txt
 create mode 100644 package/rpi-fw/rpi-fw.mk
package/Config.in +0 -0
index 604ed1b..e21045f 100644

package/Config.in source "package/owl-linux/Config.in" · line 256

Quoted 4 lines
package/Config.in +1 -0
@@ -253,6 +253,7 @@ source "package/owl-linux/Config.in"
 source "package/parted/Config.in"
 source "package/pciutils/Config.in"
 source "package/picocom/Config.in"
+source "package/rpi-fw/Config.in"

We now have a menu dedicated to storing firmware-related packages:

    Hardware handling --> Misc firmwares

package/rpi-fw/Config.in line 2

Quoted 11 lines
package/Config.in +0 -0
 source "package/read-edid/Config.in"
 source "package/rng-tools/Config.in"
 source "package/sane-backends/Config.in"
package/rpi-fw/Config.in new file +2 -0
new file mode 100644
index 0000000..4b5a1e8
@@ -0,0 +1,9 @@
+config BR2_PACKAGE_RPI_FW
+	bool "RaspberryPi Firmware"

Today, this package is only used fior the RPI. But that GPU is not specific to the RPI, so what about calling that package "VideoCore bootloader" ?

[--SNIP--]

package/rpi-fw/cmdline.txt line 1

Quoted 7 lines
package/rpi-fw/cmdline.txt new file +1 -0
new file mode 100644
index 0000000..010ee3f
@@ -0,0 +1 @@
+dwc_otg.fiq_fix_enable=1 sdhci-bcm2708.sync_after_dma=0 dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 rootwait

This is typically a reason why I'd like to have a generic way to expressing the different filesystems tht form a sinlge firmware. Here, my root partition is *not* mmcblk0p2, it's p3. And the rootfstype is *not* ext4, it's ext2.

But, I guess we'll have to live with that commandline for now... :-/

Maybe you could just omit the root settings (or replace them with place-
holders: root=/dev/XXXX rootfstype=XXXX). Of course, that will depend on the maintainer's opinion. ;-)

Quoted 19 lines
package/rpi-fw/config.txt new file +7 -0
new file mode 100644
index 0000000..ab9f7ff
@@ -0,0 +1,7 @@
+arm_freq=700
+core_freq=250
+disable_overscan=1
+gpu_mem_256=100
+gpu_mem_512=100
+sdram_freq=400
+over_voltage=0
package/rpi-fw/rpi-fw.mk new file +0 -0
new file mode 100644
index 0000000..e7b8674

package/rpi-fw/rpi-fw.mk line 8

Quoted 8 lines
package/rpi-fw/rpi-fw.mk new file +8 -0
@@ -0,0 +1,22 @@
+#############################################################
+#
+# rpi-fw
+#
+#############################################################
+RPI_FW_VERSION = 76d0ac38f16b6343c6155c80db1e4758b3a5838a
+RPI_FW_SITE = http://github.com/raspberrypi/firmware/tarball/master
+RPI_FW_LICENSE = FOSS

It's a BSD-3c.

package/rpi-fw/rpi-fw.mk line 9

Quoted 1 line
package/rpi-fw/rpi-fw.mk new file +1 -0
+RPI_FW_LICENSE_FILE = LICENCE.broadcom

It's in boot/LICENCE.broadcom

package/rpi-fw/rpi-fw.mk line 10

Quoted 1 line
package/rpi-fw/rpi-fw.mk new file +1 -0
+RPI_FW_INSTALL_STAGING = NO

Not needed, that's the default.

package/rpi-fw/rpi-fw.mk line 15

Quoted 4 lines
package/rpi-fw/rpi-fw.mk new file +4 -0
+define RPI_FW_INSTALL_TARGET_CMDS
+	$(INSTALL) -D -m 0644 $(@D)/boot/bootcode.bin $(TARGET_DIR)/boot/
+	$(INSTALL) -D -m 0644 $(@D)/boot/start.elf $(TARGET_DIR)/boot/
+	$(INSTALL) -D -m 0644 $(@D)/boot/start_cd.elf $(TARGET_DIR)/boot/

Is it necessary to have both the normal (start.elf) and the cut-down (start_cd.elf) versions at the same time? I can't find a reason to have both.

package/rpi-fw/rpi-fw.mk line 22

Quoted 7 lines
package/rpi-fw/rpi-fw.mk new file +7 -0
+	$(INSTALL) -D -m 0644 $(@D)/boot/fixup.dat $(TARGET_DIR)/boot/
+	$(INSTALL) -D -m 0644 $(@D)/boot/fixup_cd.dat $(TARGET_DIR)/boot/
+	$(INSTALL) -D -m 0644 package/rpi-fw/cmdline.txt $(TARGET_DIR)/boot/
+	$(INSTALL) -D -m 0644 package/rpi-fw/config.txt $(TARGET_DIR)/boot/
+endef
+
+$(eval $(generic-package))

Regards,
Yann E. MORIN.

Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
#10 lore raw

PATCH 2/3 rpi-userland: new package

In reply to Maxime Hadjinlian
Quoted 30 lines · Maxime Hadjinlian

Introducing a package to build the userland part of the Raspberry, needed by anyone who would want to build a rootfs for a RaspberryPi.

---
 package/Config.in                    |    1 +
 package/rpi-userland/Config.in       |   12 ++++++++++++
 package/rpi-userland/rpi-userland.mk |   25 +++++++++++++++++++++++++
 3 files changed, 38 insertions(+)
 create mode 100644 package/rpi-userland/Config.in
 create mode 100644 package/rpi-userland/rpi-userland.mk
package/Config.in +1 -0
index a3530d7..604ed1b 100644
@@ -579,6 +579,7 @@ source "package/collectd/Config.in"
 source "package/empty/Config.in"
 source "package/googlefontdirectory/Config.in"
 source "package/mobile-broadband-provider-info/Config.in"
+source "package/rpi-userland/Config.in"
 source "package/shared-mime-info/Config.in"
 source "package/snowball-init/Config.in"
 source "package/sound-theme-borealis/Config.in"
package/rpi-userland/Config.in new file +0 -0
new file mode 100644
index 0000000..3d4585f

package/rpi-userland/Config.in line 3

Quoted 3 lines
package/rpi-userland/Config.in new file +3 -0
@@ -0,0 +1,12 @@
+config BR2_PACKAGE_RPI_USERLAND
+       bool "rpi-userland"
+       select BR2_PACKAGE_LIBCOFI

Libcofi is not required, and honestly using it via LD_PRELOAD is too ugly to pull in to buildroot I would think. It would be better integrated as a glibc patch, which is how it should eventually be included in Raspbian.

package/rpi-userland/Config.in line 9

Quoted 6 lines
package/rpi-userland/Config.in new file +6 -0
+#
+#############################################################
+RPI_USERLAND_VERSION = 9852ce28826889e50c4d6786b942f51bccccac54
+RPI_USERLAND_SITE = http://github.com/raspberrypi/userland/tarball/master
+RPI_USERLAND_LICENSE = FOSS
+RPI_USERLAND_LICENSE_FILE = LICENCE

The license is standard 3-clause BSD.

Alex

#21 lore raw

PATCH 3/3 rpi-fw: New package

In reply to Maxime Hadjinlian

package/rpi-fw/config.txt line 7

Quoted 13 lines · Maxime Hadjinlian
package/rpi-fw/config.txt new file +7 -0
new file mode 100644
index 0000000..ab9f7ff
@@ -0,0 +1,7 @@
+arm_freq=700
+core_freq=250
+disable_overscan=1
+gpu_mem_256=100
+gpu_mem_512=100
+sdram_freq=400
+over_voltage=0

It's not clear to me that you want a config.txt at all, but if you are going to add one I'm not sure it's appropriate to overclock the sdram by default.

package/rpi-fw/config.txt

Quoted 5 lines
package/rpi-fw/config.txt new file +5 -0
+#############################################################
+RPI_FW_VERSION = 76d0ac38f16b6343c6155c80db1e4758b3a5838a
+RPI_FW_SITE = http://github.com/raspberrypi/firmware/tarball/master
+RPI_FW_LICENSE = FOSS
+RPI_FW_LICENSE_FILE = LICENCE.broadcom

The license is straight-forward and allows redistribution with no strings attached, but is not a FOSS license.

Regards,

Alex

#22 lore raw

PATCH 3/3 rpi-fw: New package

Quoted 10 lines · Alex Bradbury
Quoted 9 lines · Maxime Hadjinlian
package/rpi-fw/config.txt new file +3 -0
new file mode 100644
index 0000000..ab9f7ff
@@ -0,0 +1,7 @@
+arm_freq=700
+core_freq=250
+disable_overscan=1
Quoted 8 lines

package/rpi-fw/config.txt line 7

Quoted 4 lines
package/rpi-fw/config.txt new file +4 -0
+gpu_mem_256=100
+gpu_mem_512=100
+sdram_freq=400
+over_voltage=0

It's not clear to me that you want a config.txt at all, but if you are going to add one I'm not sure it's appropriate to overclock the sdram by default.

The sdram is not over clocked, according to this page :
http://elinux.org/RPiconfig
The default is 400Mhz.

Quoted 10 lines

package/rpi-fw/config.txt

Quoted 6 lines
package/rpi-fw/config.txt new file +5 -0
+#############################################################
+RPI_FW_VERSION = 76d0ac38f16b6343c6155c80db1e4758b3a5838a
+RPI_FW_SITE = http://github.com/raspberrypi/firmware/tarball/master
+RPI_FW_LICENSE = FOSS
+RPI_FW_LICENSE_FILE = LICENCE.broadcom

The license is straight-forward and allows redistribution with no strings attached, but is not a FOSS license.

I'll change the license, I was unable to find information that seemed valid.

Quoted 3 lines

Regards,

Alex

#17 lore raw

PATCH 3/3 rpi-fw: New package

In reply to Yann E. MORIN
Quoted 30 lines · Yann E. MORIN

Maxime, All,

Quoted 21 lines · On Saturday 05 January 2013 Maxime Hadjinlian wrote:

Introducing a package to install pre-built binaries for the bootloader and the GPU firmware for the RaspberryPi board.

---
 package/Config.in          |    1 +
 package/rpi-fw/Config.in   |    9 +++++++++
 package/rpi-fw/cmdline.txt |    1 +
 package/rpi-fw/config.txt  |    7 +++++++
 package/rpi-fw/rpi-fw.mk   |   22 ++++++++++++++++++++++
 5 files changed, 40 insertions(+)
 create mode 100644 package/rpi-fw/Config.in
 create mode 100644 package/rpi-fw/cmdline.txt
 create mode 100644 package/rpi-fw/config.txt
 create mode 100644 package/rpi-fw/rpi-fw.mk
package/Config.in +0 -0
index 604ed1b..e21045f 100644

package/Config.in source "package/owl-linux/Config.in" · line 256

Quoted 4 lines
package/Config.in +1 -0
@@ -253,6 +253,7 @@ source "package/owl-linux/Config.in"
 source "package/parted/Config.in"
 source "package/pciutils/Config.in"
 source "package/picocom/Config.in"
+source "package/rpi-fw/Config.in"

We now have a menu dedicated to storing firmware-related packages:

Quoted 1 line
    Hardware handling --> Misc firmwares

I'll move it to that section.

Quoted 15 lines

package/rpi-fw/Config.in line 2

Quoted 12 lines
package/Config.in +0 -0
 source "package/read-edid/Config.in"
 source "package/rng-tools/Config.in"
 source "package/sane-backends/Config.in"
package/rpi-fw/Config.in new file +2 -0
new file mode 100644
index 0000000..4b5a1e8
@@ -0,0 +1,9 @@
+config BR2_PACKAGE_RPI_FW
+     bool "RaspberryPi Firmware"

Today, this package is only used fior the RPI. But that GPU is not specific to the RPI, so what about calling that package "VideoCore bootloader" ?

As this package is pre compiled binary, I prefer to have the specificity, nothing say that this would work on another board.

Quoted 14 lines

[--SNIP--]

package/rpi-fw/cmdline.txt line 1

Quoted 7 lines
package/rpi-fw/cmdline.txt new file +1 -0
new file mode 100644
index 0000000..010ee3f
@@ -0,0 +1 @@
+dwc_otg.fiq_fix_enable=1 sdhci-bcm2708.sync_after_dma=0 dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 rootwait

This is typically a reason why I'd like to have a generic way to expressing the different filesystems tht form a sinlge firmware. Here, my root partition is *not* mmcblk0p2, it's p3. And the rootfstype is *not* ext4, it's ext2.

Quoted 5 lines

But, I guess we'll have to live with that commandline for now... :-/

Maybe you could just omit the root settings (or replace them with place-
holders: root=/dev/XXXX rootfstype=XXXX). Of course, that will depend on the maintainer's opinion. ;-)

I agree that it's really not a perfect solution. I'm not sure about place-holders as it would require the user to fix the cmdline to have a working rootfs but we already know that a user will have to since there is a "mandatory" multiple partition.

Quoted 67 lines
Quoted 20 lines
package/rpi-fw/config.txt new file +7 -0
new file mode 100644
index 0000000..ab9f7ff
@@ -0,0 +1,7 @@
+arm_freq=700
+core_freq=250
+disable_overscan=1
+gpu_mem_256=100
+gpu_mem_512=100
+sdram_freq=400
+over_voltage=0
package/rpi-fw/rpi-fw.mk new file +0 -0
new file mode 100644
index 0000000..e7b8674

package/rpi-fw/rpi-fw.mk line 8

Quoted 8 lines
package/rpi-fw/rpi-fw.mk new file +8 -0
@@ -0,0 +1,22 @@
+#############################################################
+#
+# rpi-fw
+#
+#############################################################
+RPI_FW_VERSION = 76d0ac38f16b6343c6155c80db1e4758b3a5838a
+RPI_FW_SITE = http://github.com/raspberrypi/firmware/tarball/master
+RPI_FW_LICENSE = FOSS

It's a BSD-3c.

package/rpi-fw/rpi-fw.mk line 9

Quoted 1 line
package/rpi-fw/rpi-fw.mk new file +1 -0
+RPI_FW_LICENSE_FILE = LICENCE.broadcom

It's in boot/LICENCE.broadcom

package/rpi-fw/rpi-fw.mk line 10

Quoted 1 line
package/rpi-fw/rpi-fw.mk new file +1 -0
+RPI_FW_INSTALL_STAGING = NO

Not needed, that's the default.

package/rpi-fw/rpi-fw.mk line 15

Quoted 4 lines
package/rpi-fw/rpi-fw.mk new file +4 -0
+define RPI_FW_INSTALL_TARGET_CMDS
+     $(INSTALL) -D -m 0644 $(@D)/boot/bootcode.bin $(TARGET_DIR)/boot/
+     $(INSTALL) -D -m 0644 $(@D)/boot/start.elf $(TARGET_DIR)/boot/
+     $(INSTALL) -D -m 0644 $(@D)/boot/start_cd.elf $(TARGET_DIR)/boot/

Is it necessary to have both the normal (start.elf) and the cut-down (start_cd.elf) versions at the same time? I can't find a reason to have both.

package/rpi-fw/rpi-fw.mk line 22

Quoted 7 lines
package/rpi-fw/rpi-fw.mk new file +7 -0
+     $(INSTALL) -D -m 0644 $(@D)/boot/fixup.dat $(TARGET_DIR)/boot/
+     $(INSTALL) -D -m 0644 $(@D)/boot/fixup_cd.dat $(TARGET_DIR)/boot/
+     $(INSTALL) -D -m 0644 package/rpi-fw/cmdline.txt $(TARGET_DIR)/boot/
+     $(INSTALL) -D -m 0644 package/rpi-fw/config.txt $(TARGET_DIR)/boot/
+endef
+
+$(eval $(generic-package))

Regards,
Yann E. MORIN.

--
.-----------------.--------------------.------------------.--------------------.

|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |

'------------------------------^-------^------------------^--------------------'

#4 lore raw

PATCH 2/3 rpi-userland: new package

In reply to Samuel Martin
Quoted 1 line · Samuel Martin

Hi Maxime,

Hi Samuel,

Quoted 62 lines

2013/1/5 Maxime Hadjinlian <[email protected]>:

Quoted 60 lines

Introducing a package to build the userland part of the Raspberry, needed by anyone who would want to build a rootfs for a RaspberryPi.

---
 package/Config.in                    |    1 +
 package/rpi-userland/Config.in       |   12 ++++++++++++
 package/rpi-userland/rpi-userland.mk |   25 +++++++++++++++++++++++++
 3 files changed, 38 insertions(+)
 create mode 100644 package/rpi-userland/Config.in
 create mode 100644 package/rpi-userland/rpi-userland.mk
package/Config.in +1 -0
index a3530d7..604ed1b 100644
@@ -579,6 +579,7 @@ source "package/collectd/Config.in"
 source "package/empty/Config.in"
 source "package/googlefontdirectory/Config.in"
 source "package/mobile-broadband-provider-info/Config.in"
+source "package/rpi-userland/Config.in"
 source "package/shared-mime-info/Config.in"
 source "package/snowball-init/Config.in"
 source "package/sound-theme-borealis/Config.in"
package/rpi-userland/Config.in new file +12 -0
new file mode 100644
index 0000000..3d4585f
@@ -0,0 +1,12 @@
+config BR2_PACKAGE_RPI_USERLAND
+       bool "rpi-userland"
+       select BR2_PACKAGE_LIBCOFI
+       help
+         Raspberry Pi Userland contains the necessary library to use the
+         VideoCore driver.
+
+         Includes source for the ARM side code to interface to:
+         EGL, mmal, GLESv2, vcos, openmaxil, vchiq_arm, bcm_host, WFC, OpenVG.
+
+         https://github.com/raspberrypi/userland/
+
package/rpi-userland/rpi-userland.mk new file +12 -0
new file mode 100644
index 0000000..5bae06d
@@ -0,0 +1,25 @@
+#############################################################
+#
+# rpi-userland
+#
+#############################################################
+RPI_USERLAND_VERSION = 9852ce28826889e50c4d6786b942f51bccccac54
+RPI_USERLAND_SITE = http://github.com/raspberrypi/userland/tarball/master
+RPI_USERLAND_LICENSE = FOSS
+RPI_USERLAND_LICENSE_FILE = LICENCE
+RPI_USERLAND_INSTALL_STAGING = YES
+
+define RPI_USERLAND_POST_TARGET_CLEANUP
Quoted 8 lines

package/rpi-userland/rpi-userland.mk line 18

Quoted 6 lines
package/rpi-userland/rpi-userland.mk new file +6 -0
+    rm -Rf $(TARGET_DIR)/opt/vc/include
+    rm -Rf $(TARGET_DIR)/opt/vc/share
+    rm -Rf $(TARGET_DIR)/opt/vc/src
+    rm -f  $(TARGET_DIR)/etc/init.d/vcfiled
+    rm -f  $(TARGET_DIR)/opt/vc/lib/*.a
+    rmdir -p --ignore-fail-on-non-empty $(TARGET_DIR)/etc/init.d || true

Since you use the --ignore-fail-on-non-empty option, i think "|| true" is useless.

You're totally right.

Quoted 7 lines

package/rpi-userland/rpi-userland.mk line 21

Quoted 4 lines
package/rpi-userland/rpi-userland.mk new file +3 -0
+    mv $(TARGET_DIR)/opt/vc/lib/* $(TARGET_DIR)/usr/lib/
+    rm -Rf $(TARGET_DIR)/opt/vc/
+endef

Also, since you set RPI_USERLAND_INSTALL_STAGING = YES, don't you need to do some cleanup/fixup hook for the staging area as well?

Is it really useful to cleanup the staging area ?

Quoted 9 lines

package/rpi-userland/rpi-userland.mk line 23

Quoted 3 lines
package/rpi-userland/rpi-userland.mk new file +2 -0
+
+RPI_USERLAND_POST_INSTALL_TARGET_HOOKS += RPI_USERLAND_POST_TARGET_CLEANUP

BTW, it is possible to avoid this cleanup hook (or at least reduce it to the example source) with this patch:
http://code.bulix.org/3fo6ye-82780
and by adding "-DVMCS_INSTALL_PREFIX=/usr" to the RPI_USERLAND_CONF_OPT variable.

I think part of the cleanup is useful so we don't create a rootfs that comes with example sources code and useless files for runtime. In the other part, it's perfectly possible to add this option so it would install itself in the right place.

Quoted 10 lines
Quoted 5 lines
package/rpi-userland/rpi-userland.mk new file +2 -1
+
+$(eval $(cmake-package))
--

1.7.10.4

Regards,

--
Samuel

#11 lore raw

PATCH 2/3 rpi-userland: new package

In reply to Alex Bradbury
Quoted 31 lines · Alex Bradbury
Quoted 30 lines · Maxime Hadjinlian

Introducing a package to build the userland part of the Raspberry, needed by anyone who would want to build a rootfs for a RaspberryPi.

---
 package/Config.in                    |    1 +
 package/rpi-userland/Config.in       |   12 ++++++++++++
 package/rpi-userland/rpi-userland.mk |   25 +++++++++++++++++++++++++
 3 files changed, 38 insertions(+)
 create mode 100644 package/rpi-userland/Config.in
 create mode 100644 package/rpi-userland/rpi-userland.mk
package/Config.in +1 -0
index a3530d7..604ed1b 100644
@@ -579,6 +579,7 @@ source "package/collectd/Config.in"
 source "package/empty/Config.in"
 source "package/googlefontdirectory/Config.in"
 source "package/mobile-broadband-provider-info/Config.in"
+source "package/rpi-userland/Config.in"
 source "package/shared-mime-info/Config.in"
 source "package/snowball-init/Config.in"
 source "package/sound-theme-borealis/Config.in"
package/rpi-userland/Config.in new file +0 -0
new file mode 100644
index 0000000..3d4585f
@@ -0,0 +1,12 @@
Quoted 8 lines

package/rpi-userland/Config.in line 3

Quoted 3 lines
package/rpi-userland/Config.in new file +3 -0
+config BR2_PACKAGE_RPI_USERLAND
+       bool "rpi-userland"
+       select BR2_PACKAGE_LIBCOFI

Libcofi is not required, and honestly using it via LD_PRELOAD is too ugly to pull in to buildroot I would think. It would be better integrated as a glibc patch, which is how it should eventually be included in Raspbian.

It's true that libcofi is not required, but I didn't want to add it an independent package, although maybe that would be the best solution. Also, as you said, it's really ugly but as far as I can tell, really useful for a RaspberryPi.

Quoted 9 lines

package/rpi-userland/Config.in line 9

Quoted 7 lines
package/rpi-userland/Config.in new file +6 -0
+#
+#############################################################
+RPI_USERLAND_VERSION = 9852ce28826889e50c4d6786b942f51bccccac54
+RPI_USERLAND_SITE = http://github.com/raspberrypi/userland/tarball/master
+RPI_USERLAND_LICENSE = FOSS
+RPI_USERLAND_LICENSE_FILE = LICENCE

The license is standard 3-clause BSD.

Thanks, I'll fix it

Quoted 2 lines

Alex

#23 lore raw

PATCH 3/3 rpi-fw: New package

In reply to Maxime Hadjinlian
Quoted 7 lines · Maxime Hadjinlian
Quoted 3 lines · Alex Bradbury

It's not clear to me that you want a config.txt at all, but if you are going to add one I'm not sure it's appropriate to overclock the sdram by default.

The sdram is not over clocked, according to this page :
http://elinux.org/RPiconfig
The default is 400Mhz.

You are of course correct, my bad.

Alex

#5 lore raw

PATCH 2/3 rpi-userland: new package

In reply to Maxime Hadjinlian

Hi Maxime,

2013/1/5 Maxime Hadjinlian <[email protected]>:

Quoted 5 lines · Samuel Martin
Quoted 1 line

Hi Maxime,

Hi Samuel,

Quoted 2 lines

2013/1/5 Maxime Hadjinlian <[email protected]>:

[snip]

Quoted 12 lines
Quoted 10 lines

package/rpi-userland/rpi-userland.mk line 18

Quoted 8 lines
package/rpi-userland/rpi-userland.mk new file +8 -0
+
+define RPI_USERLAND_POST_TARGET_CLEANUP
+    rm -Rf $(TARGET_DIR)/opt/vc/include
+    rm -Rf $(TARGET_DIR)/opt/vc/share
+    rm -Rf $(TARGET_DIR)/opt/vc/src
+    rm -f  $(TARGET_DIR)/etc/init.d/vcfiled
+    rm -f  $(TARGET_DIR)/opt/vc/lib/*.a
+    rmdir -p --ignore-fail-on-non-empty $(TARGET_DIR)/etc/init.d || true

Since you use the --ignore-fail-on-non-empty option, i think "|| true" is useless.

You're totally right.

Quoted 1 line
Quoted 7 lines
Quoted 6 lines

package/rpi-userland/rpi-userland.mk line 21

Quoted 3 lines
package/rpi-userland/rpi-userland.mk new file +3 -0
+    mv $(TARGET_DIR)/opt/vc/lib/* $(TARGET_DIR)/usr/lib/
+    rm -Rf $(TARGET_DIR)/opt/vc/
+endef

Also, since you set RPI_USERLAND_INSTALL_STAGING = YES, don't you need to do some cleanup/fixup hook for the staging area as well?

Is it really useful to cleanup the staging area ?

Cleanup, not necessary...
But at least, fix the headers, libraries (static an dynamic) and perhaps the data install locations if you keep /opt/vc as install prefix, otherwise you will/may have some trouble to link against it...

Quoted 9 lines
Quoted 9 lines

Review

Quoted 3 lines
(quoted diff) +2 -0
+
+RPI_USERLAND_POST_INSTALL_TARGET_HOOKS += RPI_USERLAND_POST_TARGET_CLEANUP

BTW, it is possible to avoid this cleanup hook (or at least reduce it to the example source) with this patch:
http://code.bulix.org/3fo6ye-82780
and by adding "-DVMCS_INSTALL_PREFIX=/usr" to the RPI_USERLAND_CONF_OPT variable.

Quoted 4 lines

I think part of the cleanup is useful so we don't create a rootfs that comes with example sources code and useless files for runtime. In the other part, it's perfectly possible to add this option so it would install itself in the right place.

I agree.

Regards,

Signature · 1 line
Samuel
#6 lore raw

PATCH 2/3 rpi-userland: new package

In reply to Samuel Martin

Dear Samuel Martin,

Quoted 7 lines · Samuel Martin
Quoted 1 line

+RPI_USERLAND_POST_INSTALL_TARGET_HOOKS += RPI_USERLAND_POST_TARGET_CLEANUP

BTW, it is possible to avoid this cleanup hook (or at least reduce it to the example source) with this patch:
http://code.bulix.org/3fo6ye-82780
and by adding "-DVMCS_INSTALL_PREFIX=/usr" to the RPI_USERLAND_CONF_OPT variable.

This looks good. I would really prefer to see those libs and headers installed in /usr, like all other libs and headers.

Maxime, can you integrate Samuel's patch?

Thomas

Signature · 4 lines
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
#18 lore raw

PATCH 3/3 rpi-fw: New package

In reply to Yann E. MORIN

Dear Yann E. MORIN,

Quoted 7 lines · Yann E. MORIN

package/rpi-fw/Config.in line 2

Quoted 4 lines

+++ b/package/rpi-fw/Config.in

package/rpi-fw/Config.in new file +2 -0
@@ -0,0 +1,9 @@
+config BR2_PACKAGE_RPI_FW
+	bool "RaspberryPi Firmware"

Today, this package is only used fior the RPI. But that GPU is not specific to the RPI, so what about calling that package "VideoCore bootloader" ?

I am quite sure the start.elf code is Rasberry Pi specific, so I don't think this package is just a "VideoCore bootloader".

Quoted 8 lines

package/rpi-fw/cmdline.txt line 1

Quoted 3 lines
package/rpi-fw/cmdline.txt new file +2 -0
+++ b/package/rpi-fw/cmdline.txt
@@ -0,0 +1 @@
+dwc_otg.fiq_fix_enable=1 sdhci-bcm2708.sync_after_dma=0 dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 rootwait

This is typically a reason why I'd like to have a generic way to expressing the different filesystems tht form a sinlge firmware. Here, my root partition is *not* mmcblk0p2, it's p3. And the rootfstype is *not* ext4, it's ext2.

Quoted 5 lines

But, I guess we'll have to live with that commandline for now... :-/

Maybe you could just omit the root settings (or replace them with place-
holders: root=/dev/XXXX rootfstype=XXXX). Of course, that will depend on the maintainer's opinion. ;-)

I would like to see a comment added in this file, which mentions this is only a sample command line, and we recommend to override it on a per-project basis using a post-build script.

Thomas

Signature · 4 lines
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
#19 lore raw

PATCH 3/3 rpi-fw: New package

Maxime, Thomas, All,

Quoted 12 lines · On Saturday 05 January 2013 Thomas Petazzoni wrote:

Dear Yann E. MORIN,

Quoted 7 lines · Yann E. MORIN

package/rpi-fw/Config.in line 2

Quoted 4 lines

+++ b/package/rpi-fw/Config.in

package/rpi-fw/Config.in new file +2 -0
@@ -0,0 +1,9 @@
+config BR2_PACKAGE_RPI_FW
+	bool "RaspberryPi Firmware"

Today, this package is only used fior the RPI. But that GPU is not specific to the RPI, so what about calling that package "VideoCore bootloader" ?

Quoted 2 lines

I am quite sure the start.elf code is Rasberry Pi specific, so I don't think this package is just a "VideoCore bootloader".

Right.

Quoted 10 lines
Quoted 10 lines

package/rpi-fw/cmdline.txt line 1

Quoted 3 lines
package/rpi-fw/cmdline.txt new file +2 -0
+++ b/package/rpi-fw/cmdline.txt
@@ -0,0 +1 @@
+dwc_otg.fiq_fix_enable=1 sdhci-bcm2708.sync_after_dma=0 dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 rootwait

This is typically a reason why I'd like to have a generic way to expressing the different filesystems tht form a sinlge firmware. Here, my root partition is *not* mmcblk0p2, it's p3. And the rootfstype is *not* ext4, it's ext2.

But, I guess we'll have to live with that commandline for now... :-/

Quoted 7 lines
Quoted 3 lines

Maybe you could just omit the root settings (or replace them with place-
holders: root=/dev/XXXX rootfstype=XXXX). Of course, that will depend on the maintainer's opinion. ;-)

I would like to see a comment added in this file, which mentions this is only a sample command line, and we recommend to override it on a per-project basis using a post-build script.

I am not sure the bootloader knows how to parse comments in this file. Instead of installing it as 'cmdline.txt', what about installing it as 'cmdline-sample.txt' with the comment?

Regards,
Yann E. MORIN.

Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
#20 lore raw

PATCH 3/3 rpi-fw: New package

Quoted 34 lines · Yann E. MORIN

Maxime, Thomas, All,

Quoted 12 lines · On Saturday 05 January 2013 Thomas Petazzoni wrote:

Dear Yann E. MORIN,

Quoted 7 lines · Yann E. MORIN

package/rpi-fw/Config.in line 2

Quoted 4 lines

+++ b/package/rpi-fw/Config.in

package/rpi-fw/Config.in new file +2 -0
@@ -0,0 +1,9 @@
+config BR2_PACKAGE_RPI_FW
+ bool "RaspberryPi Firmware"

Today, this package is only used fior the RPI. But that GPU is not specific to the RPI, so what about calling that package "VideoCore bootloader" ?

Quoted 2 lines

I am quite sure the start.elf code is Rasberry Pi specific, so I don't think this package is just a "VideoCore bootloader".

Right.

Quoted 14 lines
Quoted 13 lines

package/rpi-fw/cmdline.txt line 1

Quoted 3 lines
package/rpi-fw/cmdline.txt new file +2 -0
+++ b/package/rpi-fw/cmdline.txt
@@ -0,0 +1 @@
+dwc_otg.fiq_fix_enable=1 sdhci-bcm2708.sync_after_dma=0 dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 rootwait

This is typically a reason why I'd like to have a generic way to expressing the different filesystems tht form a sinlge firmware. Here, my root partition is *not* mmcblk0p2, it's p3. And the rootfstype is *not* ext4, it's ext2.

But, I guess we'll have to live with that commandline for now... :-/

Maybe you could just omit the root settings (or replace them with place-
holders: root=/dev/XXXX rootfstype=XXXX). Of course, that will depend on the maintainer's opinion. ;-)

Quoted 7 lines
Quoted 3 lines

I would like to see a comment added in this file, which mentions this is only a sample command line, and we recommend to override it on a per-project basis using a post-build script.

I am not sure the bootloader knows how to parse comments in this file. Instead of installing it as 'cmdline.txt', what about installing it as 'cmdline-sample.txt' with the comment?

It should be possible to put the whole cmdline as an "option" in config.txt and thus we could put comments in there. I'll look into it.

Quoted 12 lines

Regards,
Yann E. MORIN.

--
.-----------------.--------------------.------------------.--------------------.

|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |

'------------------------------^-------^------------------^--------------------'

#7 lore raw

PATCH 2/3 rpi-userland: new package

In reply to Thomas Petazzoni
Quoted 11 lines · Thomas Petazzoni

Dear Samuel Martin,

Quoted 7 lines · Samuel Martin
Quoted 1 line

+RPI_USERLAND_POST_INSTALL_TARGET_HOOKS += RPI_USERLAND_POST_TARGET_CLEANUP

BTW, it is possible to avoid this cleanup hook (or at least reduce it to the example source) with this patch:
http://code.bulix.org/3fo6ye-82780
and by adding "-DVMCS_INSTALL_PREFIX=/usr" to the RPI_USERLAND_CONF_OPT variable.

Quoted 4 lines

This looks good. I would really prefer to see those libs and headers installed in /usr, like all other libs and headers.

Maxime, can you integrate Samuel's patch?

Yep, I haven't had time to test it but I will do and send my v2 when it's done.

Quoted 7 lines

Thomas
--
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com

#8 lore raw

PATCH 2/3 rpi-userland: new package

Maxime,

2013/1/5 Maxime Hadjinlian <[email protected]>:

Quoted 13 lines
Quoted 11 lines · Thomas Petazzoni

Dear Samuel Martin,

Quoted 7 lines · Samuel Martin
Quoted 1 line

+RPI_USERLAND_POST_INSTALL_TARGET_HOOKS += RPI_USERLAND_POST_TARGET_CLEANUP

BTW, it is possible to avoid this cleanup hook (or at least reduce it to the example source) with this patch:
http://code.bulix.org/3fo6ye-82780
and by adding "-DVMCS_INSTALL_PREFIX=/usr" to the RPI_USERLAND_CONF_OPT variable.

Quoted 5 lines
Quoted 4 lines

This looks good. I would really prefer to see those libs and headers installed in /usr, like all other libs and headers.

Maxime, can you integrate Samuel's patch?

Yep, I haven't had time to test it but I will do and send my v2 when it's done.

BTW, you can also try to just remove the "FORCE" in the relevant "set(VMCS_INSTALL_PREFIX ...)" line; it should have the same effect.

Regards,

Signature · 1 line
Samuel
#12 lore raw

PATCH 2/3 rpi-userland: new package

In reply to Maxime Hadjinlian
Quoted 2 lines · Maxime Hadjinlian

Introducing a package to build the userland part of the Raspberry, needed by anyone who would want to build a rootfs for a RaspberryPi.

rpi-userland does not build with the default buildroot uClibc toolchain.

==
[ 25%] /hdd/max/dev/tmp/buildroot/output/build/rpi-userland-9852ce28826889e50c4d6786b942f51bccccac54/interface/vcos/glibc/vcos_backtrace.c:30:22:
fatal error: execinfo.h: No such file or directory
==

Ran into the same issue a while back.
You can borrow my patch:
https://github.com/maxnet/userland/commit/93ae1bcd8005216baf7361ba860b53a2cf2e0401

Yours sincerely,

Floris Bos

#24 lore raw

PATCH 3/3 rpi-fw: New package

In reply to Maxime Hadjinlian
Quoted 2 lines · Maxime Hadjinlian

Introducing a package to install pre-built binaries for the bootloader and the GPU firmware for the RaspberryPi board.

Fails to install.
You need to create the target/boot directory first.

==

/usr/bin/install -D -m 0644 /hdd/max/dev/tmp/buildroot/output/build/rpi-fw-76d0ac38f16b6343c6155c80db1e4758b3a5838a/boot/bootcode.bin /hdd/max/dev/tmp/buildroot/output/target/boot/
/usr/bin/install: target
`/hdd/max/dev/tmp/buildroot/output/target/boot/' is not a directory: No
such file or directory
make: *** [/hdd/max/dev/tmp/buildroot/output/build/rpi-fw-76d0ac38f16b6343c6155c80db1e4758b3a5838a/.stamp_target_installed] Error 1
==

But another question would be if bootloader files really should be installed under target.
Keep in mind that the Raspberry Pi boot files are normally kept on a FAT partition seperate from the root file system.

Yours sincerely,

Floris Bos

#13 lore raw

PATCH 2/3 rpi-userland: new package

In reply to Floris Bos
Quoted 14 lines · Floris Bos
Quoted 3 lines · Maxime Hadjinlian

Introducing a package to build the userland part of the Raspberry, needed by anyone who would want to build a rootfs for a RaspberryPi.

rpi-userland does not build with the default buildroot uClibc toolchain.

==
[ 25%] /hdd/max/dev/tmp/buildroot/output/build/rpi-userland-9852ce28826889e50c4d6786b942f51bccccac54/interface/vcos/glibc/vcos_backtrace.c:30:22:
fatal error: execinfo.h: No such file or directory
==

Quoted 4 lines

Ran into the same issue a while back.
You can borrow my patch:
https://github.com/maxnet/userland/commit/93ae1bcd8005216baf7361ba860b53a2cf2e0401

Thanks, I builded using eglibc at the moment.
Could you push your patch upstream so we won't need to have it ?

Quoted 10 lines

Yours sincerely,

Floris Bos

_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot

#25 lore raw

PATCH 3/3 rpi-fw: New package

In reply to Floris Bos
Quoted 10 lines · Floris Bos
Quoted 4 lines · Maxime Hadjinlian

Introducing a package to install pre-built binaries for the bootloader and the
GPU firmware for the RaspberryPi board.

Fails to install.
You need to create the target/boot directory first.

Thanks, I was using a custom skeleton, forgot to get rid of it to try out.

Quoted 13 lines

==

/usr/bin/install -D -m 0644 /hdd/max/dev/tmp/buildroot/output/build/rpi-fw-76d0ac38f16b6343c6155c80db1e4758b3a5838a/boot/bootcode.bin /hdd/max/dev/tmp/buildroot/output/target/boot/
/usr/bin/install: target `/hdd/max/dev/tmp/buildroot/output/target/boot/' is
not a directory: No such file or directory
make: *** [/hdd/max/dev/tmp/buildroot/output/build/rpi-fw-76d0ac38f16b6343c6155c80db1e4758b3a5838a/.stamp_target_installed] Error 1
==

Quoted 4 lines

But another question would be if bootloader files really should be installed under target.
Keep in mind that the Raspberry Pi boot files are normally kept on a FAT partition seperate from the root file system.

This question can't be solved right now but it's in the pipe, see a mail by Yann E. Morin in the mailing list a few weeks ago.

Quoted 10 lines

Yours sincerely,

Floris Bos

_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot

#14 lore raw

PATCH 2/3 rpi-userland: new package

In reply to Maxime Hadjinlian
Quoted 3 lines · Maxime Hadjinlian
Quoted 1 line

rpi-userland does not build with the default buildroot uClibc toolchain.

Thanks, I builded using eglibc at the moment.
Could you push your patch upstream so we won't need to have it ?

Send a pull request to upstream a month ago, but did not receive any response.

https://github.com/raspberrypi/userland/pull/7

Yours sincerely,

Floris Bos

#26 lore raw

PATCH 3/3 rpi-fw: New package

In reply to Floris Bos
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Floris" == Floris Bos <[email protected]> writes:

Hi,

Floris> Fails to install.
Floris> You need to create the target/boot directory first.

Floris> ==

Floris> /usr/bin/install -D -m 0644
Floris> /hdd/max/dev/tmp/buildroot/output/build/rpi-fw-76d0ac38f16b6343c6155c80db1e4758b3a5838a/boot/bootcode.bin Floris> /hdd/max/dev/tmp/buildroot/output/target/boot/
Floris> /usr/bin/install: target
Floris> /hdd/max/dev/tmp/buildroot/output/target/boot/' is not a directory: No
Floris> such file or directory
Floris> make: ***
Floris> [/hdd/max/dev/tmp/buildroot/output/build/rpi-fw-76d0ac38f16b6343c6155c80db1e4758b3a5838a/.stamp_target_installed] Floris> Error 1
Floris> ==

That's the point of using install -D (create dest dirs as needed), but you need to provide it with the destination file name as well - E.G $(TARGET_DIR)/boot/bootcode.bin

Floris> But another question would be if bootloader files really should be Floris> installed under target.
Floris> Keep in mind that the Raspberry Pi boot files are normally kept on a Floris> FAT partition seperate from the root file system.

Indeed, it probably makes more sense to just put it in IMAGES_DIR instead.

Signature · 1 line
Bye, Peter Korsgaard
#27 lore raw

PATCH 3/3 rpi-fw: New package

Quoted 24 lines · Peter Korsgaard
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Floris" == Floris Bos <[email protected]> writes:

Hi,

Floris> Fails to install.
Floris> You need to create the target/boot directory first.

Floris> ==

Floris> /usr/bin/install -D -m 0644
Floris> /hdd/max/dev/tmp/buildroot/output/build/rpi-fw-76d0ac38f16b6343c6155c80db1e4758b3a5838a/boot/bootcode.bin Floris> /hdd/max/dev/tmp/buildroot/output/target/boot/
Floris> /usr/bin/install: target
Floris> /hdd/max/dev/tmp/buildroot/output/target/boot/' is not a directory: No
Floris> such file or directory
Floris> make: ***
Floris> [/hdd/max/dev/tmp/buildroot/output/build/rpi-fw-76d0ac38f16b6343c6155c80db1e4758b3a5838a/.stamp_target_installed] Floris> Error 1
Floris> ==

That's the point of using install -D (create dest dirs as needed), but you need to provide it with the destination file name as well - E.G $(TARGET_DIR)/boot/bootcode.bin

Quoted 7 lines

Floris> But another question would be if bootloader files really should be Floris> installed under target.
Floris> Keep in mind that the Raspberry Pi boot files are normally kept on a Floris> FAT partition seperate from the root file system.

Indeed, it probably makes more sense to just put it in IMAGES_DIR instead.

How about putting them all in a rpi-firmware folder inside IMAGES_DIR ? I don't want to just throw them in this folder, it would be a pain afterwards since they all go in the same place.

Quoted 7 lines

--
Bye, Peter Korsgaard
_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot

#28 lore raw

PATCH 3/3 rpi-fw: New package

Quoted 10 lines · Maxime Hadjinlian
Quoted 7 lines
Quoted 7 lines
   Floris>  But another question would be if bootloader files really should be
   Floris>  installed under target.
   Floris>  Keep in mind that the Raspberry Pi boot files are normally kept on a
   Floris>  FAT partition seperate from the root file system.

Indeed, it probably makes more sense to just put it in IMAGES_DIR instead.

How about putting them all in a rpi-firmware folder inside IMAGES_DIR ? I don't want to just throw them in this folder, it would be a pain afterwards since they all go in the same place.

I think typically everything in the images directory goes into the boot
partition, except the rootfs.* (exception to the exception: rootfs.cpio*, unless it's an initramfs)

I have thought about creating a boot/ subdirectory in the images
directory that collects everything that is supposed to go to the boot partition. But I'm afraid that there is no generic way to decide what has to go to the boot partition. For instance, if you generate a U-Boot for Flash but boot from SD card, you would have only kernel and device tree in the boot partition. In addition, you often want to add some additional things to the boot partition.

Therefore I think that what we have now is quite OK. You can easily
wrap the build in a script that copies things to the right place.

Regards,
Arnout

Signature · 6 lines
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F