[yocto] [meta-raspberrypi][PATCH 2/3] u-boot-scr: Add recipe to create u-boot boot script

Andrei Gherzan andrei at gherzan.ro
Wed Jul 13 04:52:35 PDT 2016


Hi Paul,

On Mon, Jul 11, 2016 at 12:17:55AM +0100, Paul Barker wrote:
> Upstream u-boot searches the boot partition for a script named 'boot.scr'. If
> this file exists it is executed as a sequence of u-boot commands in order to
> boot the system. This script must be compiled using the mkimage command to
> ensure that it is understood by u-boot.
>
> Signed-off-by: Paul Barker <paul at paulbarker.me.uk>
> ---
>  recipes-bsp/u-boot-scr/files/raspberrypi/boot.cmd  |  6 ++++++
>  recipes-bsp/u-boot-scr/files/raspberrypi0/boot.cmd |  6 ++++++
>  recipes-bsp/u-boot-scr/files/raspberrypi2/boot.cmd |  6 ++++++
>  recipes-bsp/u-boot-scr/files/raspberrypi3/boot.cmd |  6 ++++++
>  recipes-bsp/u-boot-scr/u-boot-scr.bb               | 20 ++++++++++++++++++++
>  5 files changed, 44 insertions(+)
>  create mode 100644 recipes-bsp/u-boot-scr/files/raspberrypi/boot.cmd
>  create mode 100644 recipes-bsp/u-boot-scr/files/raspberrypi0/boot.cmd
>  create mode 100644 recipes-bsp/u-boot-scr/files/raspberrypi2/boot.cmd
>  create mode 100644 recipes-bsp/u-boot-scr/files/raspberrypi3/boot.cmd
>  create mode 100644 recipes-bsp/u-boot-scr/u-boot-scr.bb
>
> diff --git a/recipes-bsp/u-boot-scr/files/raspberrypi/boot.cmd b/recipes-bsp/u-boot-scr/files/raspberrypi/boot.cmd
> new file mode 100644
> index 0000000..c86c758
> --- /dev/null
> +++ b/recipes-bsp/u-boot-scr/files/raspberrypi/boot.cmd
> @@ -0,0 +1,6 @@
> +setenv fdtfile bcm2708-rpi-b.dtb
> +setenv bootargs 'earlyprintk console=tty0 console=ttyAMA0 root=/dev/mmcblk0p2 rootfstype=ext4 rootwait noinitrd'
> +mmc dev 0
> +fatload mmc 0:1 ${kernel_addr_r} uImage
> +fatload mmc 0:1 ${fdt_addr_r} ${fdtfile}
> +bootm ${kernel_addr_r} - ${fdt_addr_r}
> diff --git a/recipes-bsp/u-boot-scr/files/raspberrypi0/boot.cmd b/recipes-bsp/u-boot-scr/files/raspberrypi0/boot.cmd
> new file mode 100644
> index 0000000..c86c758
> --- /dev/null
> +++ b/recipes-bsp/u-boot-scr/files/raspberrypi0/boot.cmd
> @@ -0,0 +1,6 @@
> +setenv fdtfile bcm2708-rpi-b.dtb
> +setenv bootargs 'earlyprintk console=tty0 console=ttyAMA0 root=/dev/mmcblk0p2 rootfstype=ext4 rootwait noinitrd'
> +mmc dev 0
> +fatload mmc 0:1 ${kernel_addr_r} uImage
> +fatload mmc 0:1 ${fdt_addr_r} ${fdtfile}
> +bootm ${kernel_addr_r} - ${fdt_addr_r}
> diff --git a/recipes-bsp/u-boot-scr/files/raspberrypi2/boot.cmd b/recipes-bsp/u-boot-scr/files/raspberrypi2/boot.cmd
> new file mode 100644
> index 0000000..aa4ea64
> --- /dev/null
> +++ b/recipes-bsp/u-boot-scr/files/raspberrypi2/boot.cmd
> @@ -0,0 +1,6 @@
> +setenv fdtfile bcm2709-rpi-2-b.dtb
> +setenv bootargs 'earlyprintk console=tty0 console=ttyAMA0 root=/dev/mmcblk0p2 rootfstype=ext4 rootwait noinitrd'
> +mmc dev 0
> +fatload mmc 0:1 ${kernel_addr_r} uImage
> +fatload mmc 0:1 ${fdt_addr_r} ${fdtfile}
> +bootm ${kernel_addr_r} - ${fdt_addr_r}
> diff --git a/recipes-bsp/u-boot-scr/files/raspberrypi3/boot.cmd b/recipes-bsp/u-boot-scr/files/raspberrypi3/boot.cmd
> new file mode 100644
> index 0000000..2950856
> --- /dev/null
> +++ b/recipes-bsp/u-boot-scr/files/raspberrypi3/boot.cmd
> @@ -0,0 +1,6 @@
> +setenv fdtfile bcm2710-rpi-3-b.dtb
> +setenv bootargs 'earlyprintk console=tty0 console=ttyAMA0 root=/dev/mmcblk0p2 rootfstype=ext4 rootwait noinitrd'
> +mmc dev 0
> +fatload mmc 0:1 ${kernel_addr_r} uImage
> +fatload mmc 0:1 ${fdt_addr_r} ${fdtfile}
> +bootm ${kernel_addr_r} - ${fdt_addr_r}
> diff --git a/recipes-bsp/u-boot-scr/u-boot-scr.bb b/recipes-bsp/u-boot-scr/u-boot-scr.bb

I think we should brand this recipe to be rpi specific. Something like
rpi-u-boot-scr.bb to avoid clash with other layers. I think I saw this
exactly recipe name in the past.

> new file mode 100644
> index 0000000..310bf3d
> --- /dev/null
> +++ b/recipes-bsp/u-boot-scr/u-boot-scr.bb
> @@ -0,0 +1,20 @@
> +SUMMARY = "U-boot boot scripts for Raspberry Pi"
> +LICENSE = "MIT"
> +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
> +
> +DEPENDS = "u-boot-mkimage-native"
> +
> +SRC_URI = "file://boot.cmd"
> +
> +do_compile() {
> +    mkimage -A arm -T script -C none -n "Boot script" -d "${WORKDIR}/boot.cmd" boot.scr
> +}
> +
> +inherit deploy
> +
> +do_deploy() {
> +    install -d ${DEPLOYDIR}
> +    install -m 0644 boot.scr ${DEPLOYDIR}
> +}
> +
> +addtask do_deploy after do_compile before do_build
> --
> 2.1.4
>
> --
> _______________________________________________
> yocto mailing list
> yocto at yoctoproject.org
> https://lists.yoctoproject.org/listinfo/yocto

I would expect uboot to RDEPEND on this recipe too. As without it the
board doesn't autoboot.

--
Andrei Gherzan
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://lists.yoctoproject.org/pipermail/yocto/attachments/20160713/3260156a/attachment.pgp>


More information about the yocto mailing list