diff mbox

[3/3] rpi-fw: New package

Message ID 0a82214a34f519691ff795260820907a7a8b4cfc.1357394983.git.maxime.hadjinlian@gmail.com
State Superseded
Headers show

Commit Message

Maxime Hadjinlian Jan. 5, 2013, 2:10 p.m. UTC
Introducing a package to install pre-built binaries for the bootloader and the
GPU firmware for the RaspberryPi board.

Signed-off-by: Maxime Hadjinlian <maxime.hadjinlian@gmail.com>
---
 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

Comments

Yann E. MORIN Jan. 5, 2013, 3:36 p.m. UTC | #1
Maxime, All,

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.
> 
> Signed-off-by: Maxime Hadjinlian <maxime.hadjinlian@gmail.com>
> ---
>  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
> 
> diff --git a/package/Config.in b/package/Config.in
> index 604ed1b..e21045f 100644
> --- a/package/Config.in
> +++ b/package/Config.in
> @@ -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

>  source "package/read-edid/Config.in"
>  source "package/rng-tools/Config.in"
>  source "package/sane-backends/Config.in"
> diff --git a/package/rpi-fw/Config.in b/package/rpi-fw/Config.in
> new file mode 100644
> index 0000000..4b5a1e8
> --- /dev/null
> +++ b/package/rpi-fw/Config.in
> @@ -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--]
> diff --git a/package/rpi-fw/cmdline.txt b/package/rpi-fw/cmdline.txt
> new file mode 100644
> index 0000000..010ee3f
> --- /dev/null
> +++ 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. ;-)

> diff --git a/package/rpi-fw/config.txt b/package/rpi-fw/config.txt
> new file mode 100644
> index 0000000..ab9f7ff
> --- /dev/null
> +++ b/package/rpi-fw/config.txt
> @@ -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
> diff --git a/package/rpi-fw/rpi-fw.mk b/package/rpi-fw/rpi-fw.mk
> new file mode 100644
> index 0000000..e7b8674
> --- /dev/null
> +++ b/package/rpi-fw/rpi-fw.mk
> @@ -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.

> +RPI_FW_LICENSE_FILE = LICENCE.broadcom

It's in boot/LICENCE.broadcom

> +RPI_FW_INSTALL_STAGING = NO

Not needed, that's the default.

> +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.

> +	$(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.
Alex Bradbury Jan. 5, 2013, 3:52 p.m. UTC | #2
On 5 January 2013 14:10, Maxime Hadjinlian <maxime.hadjinlian@gmail.com> wrote:
> diff --git a/package/rpi-fw/config.txt b/package/rpi-fw/config.txt
> new file mode 100644
> index 0000000..ab9f7ff
> --- /dev/null
> +++ b/package/rpi-fw/config.txt
> @@ -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.

> +#############################################################
> +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
Maxime Hadjinlian Jan. 5, 2013, 4:09 p.m. UTC | #3
On Sat, Jan 5, 2013 at 4:52 PM, Alex Bradbury <asb@asbradbury.org> wrote:
> On 5 January 2013 14:10, Maxime Hadjinlian <maxime.hadjinlian@gmail.com> wrote:
>> diff --git a/package/rpi-fw/config.txt b/package/rpi-fw/config.txt
>> new file mode 100644
>> index 0000000..ab9f7ff
>> --- /dev/null
>> +++ b/package/rpi-fw/config.txt
>> @@ -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.
The sdram is not over clocked, according to this page :
http://elinux.org/RPiconfig
The default is 400Mhz.
>
>> +#############################################################
>> +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.
> Regards,
>
> Alex
Maxime Hadjinlian Jan. 5, 2013, 4:16 p.m. UTC | #4
On Sat, Jan 5, 2013 at 4:36 PM, Yann E. MORIN <yann.morin.1998@free.fr> wrote:
> Maxime, All,
>
> 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.
>>
>> Signed-off-by: Maxime Hadjinlian <maxime.hadjinlian@gmail.com>
>> ---
>>  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
>>
>> diff --git a/package/Config.in b/package/Config.in
>> index 604ed1b..e21045f 100644
>> --- a/package/Config.in
>> +++ b/package/Config.in
>> @@ -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
I'll move it to that section.
>
>>  source "package/read-edid/Config.in"
>>  source "package/rng-tools/Config.in"
>>  source "package/sane-backends/Config.in"
>> diff --git a/package/rpi-fw/Config.in b/package/rpi-fw/Config.in
>> new file mode 100644
>> index 0000000..4b5a1e8
>> --- /dev/null
>> +++ b/package/rpi-fw/Config.in
>> @@ -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.
>
> [--SNIP--]
>> diff --git a/package/rpi-fw/cmdline.txt b/package/rpi-fw/cmdline.txt
>> new file mode 100644
>> index 0000000..010ee3f
>> --- /dev/null
>> +++ 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. ;-)
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.
>
>> diff --git a/package/rpi-fw/config.txt b/package/rpi-fw/config.txt
>> new file mode 100644
>> index 0000000..ab9f7ff
>> --- /dev/null
>> +++ b/package/rpi-fw/config.txt
>> @@ -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
>> diff --git a/package/rpi-fw/rpi-fw.mk b/package/rpi-fw/rpi-fw.mk
>> new file mode 100644
>> index 0000000..e7b8674
>> --- /dev/null
>> +++ b/package/rpi-fw/rpi-fw.mk
>> @@ -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.
>
>> +RPI_FW_LICENSE_FILE = LICENCE.broadcom
>
> It's in boot/LICENCE.broadcom
>
>> +RPI_FW_INSTALL_STAGING = NO
>
> Not needed, that's the default.
>
>> +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.
>
>> +     $(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.  |
> '------------------------------^-------^------------------^--------------------'
>
Alex Bradbury Jan. 5, 2013, 4:28 p.m. UTC | #5
On 5 January 2013 16:09, Maxime Hadjinlian <maxime.hadjinlian@gmail.com> wrote:
> On Sat, Jan 5, 2013 at 4:52 PM, Alex Bradbury <asb@asbradbury.org> wrote:
>> 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
Thomas Petazzoni Jan. 5, 2013, 5:58 p.m. UTC | #6
Dear Yann E. MORIN,

On Sat, 5 Jan 2013 16:36:51 +0100, Yann E. MORIN wrote:

> > +++ b/package/rpi-fw/Config.in
> > @@ -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".

> > +++ 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. ;-)

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
Yann E. MORIN Jan. 5, 2013, 8 p.m. UTC | #7
Maxime, Thomas, All,

On Saturday 05 January 2013 Thomas Petazzoni wrote:
> Dear Yann E. MORIN,
> 
> On Sat, 5 Jan 2013 16:36:51 +0100, Yann E. MORIN wrote:
> 
> > > +++ b/package/rpi-fw/Config.in
> > > @@ -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".

Right.

> > > +++ 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. ;-)
> 
> 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.
Maxime Hadjinlian Jan. 5, 2013, 8:12 p.m. UTC | #8
On Sat, Jan 5, 2013 at 9:00 PM, Yann E. MORIN <yann.morin.1998@free.fr> wrote:
> Maxime, Thomas, All,
>
> On Saturday 05 January 2013 Thomas Petazzoni wrote:
>> Dear Yann E. MORIN,
>>
>> On Sat, 5 Jan 2013 16:36:51 +0100, Yann E. MORIN wrote:
>>
>> > > +++ b/package/rpi-fw/Config.in
>> > > @@ -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".
>
> Right.
>
>> > > +++ 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. ;-)
>>
>> 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.
>
> 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.  |
> '------------------------------^-------^------------------^--------------------'
>
Floris Bos Jan. 6, 2013, 2:40 a.m. UTC | #9
On 01/05/2013 03:10 PM, Maxime Hadjinlian wrote:
> 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
Maxime Hadjinlian Jan. 6, 2013, 10:29 a.m. UTC | #10
On Sun, Jan 6, 2013 at 3:40 AM, Floris Bos <bos@je-eigen-domein.nl> wrote:
> On 01/05/2013 03:10 PM, Maxime Hadjinlian wrote:
>>
>> 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.
> ==
>
> /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.
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.
>
>
> Yours sincerely,
>
> Floris Bos
>
> _______________________________________________
> buildroot mailing list
> buildroot@busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
Peter Korsgaard Jan. 6, 2013, 2:26 p.m. UTC | #11
>>>>> "Floris" == Floris Bos <bos@je-eigen-domein.nl> 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.
Maxime Hadjinlian Jan. 6, 2013, 2:47 p.m. UTC | #12
On Sun, Jan 6, 2013 at 3:26 PM, Peter Korsgaard <jacmet@uclibc.org> wrote:
>>>>>> "Floris" == Floris Bos <bos@je-eigen-domein.nl> 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.
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.
>
> --
> Bye, Peter Korsgaard
> _______________________________________________
> buildroot mailing list
> buildroot@busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
Arnout Vandecappelle Jan. 7, 2013, 5:45 p.m. UTC | #13
On 06/01/13 15:47, Maxime Hadjinlian wrote:
>> >    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
diff mbox

Patch

diff --git a/package/Config.in b/package/Config.in
index 604ed1b..e21045f 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -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"
diff --git a/package/rpi-fw/Config.in b/package/rpi-fw/Config.in
new file mode 100644
index 0000000..4b5a1e8
--- /dev/null
+++ b/package/rpi-fw/Config.in
@@ -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
+
diff --git a/package/rpi-fw/cmdline.txt b/package/rpi-fw/cmdline.txt
new file mode 100644
index 0000000..010ee3f
--- /dev/null
+++ 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
diff --git a/package/rpi-fw/config.txt b/package/rpi-fw/config.txt
new file mode 100644
index 0000000..ab9f7ff
--- /dev/null
+++ b/package/rpi-fw/config.txt
@@ -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
diff --git a/package/rpi-fw/rpi-fw.mk b/package/rpi-fw/rpi-fw.mk
new file mode 100644
index 0000000..e7b8674
--- /dev/null
+++ b/package/rpi-fw/rpi-fw.mk
@@ -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))