* [meta-raspberrypi][PATCH] u-boot: Simplify boot script @ 2016-11-01 13:49 Jonathan Liu 2016-11-02 7:46 ` Paul Barker 2016-11-03 20:57 ` Paul Barker 0 siblings, 2 replies; 7+ messages in thread From: Jonathan Liu @ 2016-11-01 13:49 UTC (permalink / raw) To: yocto device_tree_address=0x100 is set in config.txt so the firmware will load a patched device tree blob to 0x100 before passing control to U-Boot. The U-Boot script will then read the command line arguments generated by the firmware from the device tree and boot the kernel with the command line arguments and the loaded device tree. This allows things like MAC address, board revision and serial number to be correctly configured and options in config.txt to be used. Signed-off-by: Jonathan Liu <net147@gmail.com> --- recipes-bsp/bootfiles/rpi-config_git.bb | 5 +++++ recipes-bsp/rpi-u-boot-scr/files/boot.cmd | 3 +++ recipes-bsp/rpi-u-boot-scr/files/raspberrypi/boot.cmd | 6 ------ recipes-bsp/rpi-u-boot-scr/files/raspberrypi0/boot.cmd | 6 ------ recipes-bsp/rpi-u-boot-scr/files/raspberrypi2/boot.cmd | 6 ------ recipes-bsp/rpi-u-boot-scr/files/raspberrypi3/boot.cmd | 6 ------ 6 files changed, 8 insertions(+), 24 deletions(-) create mode 100644 recipes-bsp/rpi-u-boot-scr/files/boot.cmd delete mode 100644 recipes-bsp/rpi-u-boot-scr/files/raspberrypi/boot.cmd delete mode 100644 recipes-bsp/rpi-u-boot-scr/files/raspberrypi0/boot.cmd delete mode 100644 recipes-bsp/rpi-u-boot-scr/files/raspberrypi2/boot.cmd delete mode 100644 recipes-bsp/rpi-u-boot-scr/files/raspberrypi3/boot.cmd diff --git a/recipes-bsp/bootfiles/rpi-config_git.bb b/recipes-bsp/bootfiles/rpi-config_git.bb index f610718..2f4d25c 100644 --- a/recipes-bsp/bootfiles/rpi-config_git.bb +++ b/recipes-bsp/bootfiles/rpi-config_git.bb @@ -76,6 +76,11 @@ do_deploy() { echo "dispmanx_offline=1" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt fi + # U-Boot Device Tree support + if [ "${KERNEL_IMAGETYPE}" = "uImage" ]; then + sed -i '/#device_tree_address/ c\device_tree_address=0x100' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt + fi + # SPI bus support if [ -n "${ENABLE_SPI_BUS}" ] || [ "${PITFT}" = "1" ]; then echo "# Enable SPI bus" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt diff --git a/recipes-bsp/rpi-u-boot-scr/files/boot.cmd b/recipes-bsp/rpi-u-boot-scr/files/boot.cmd new file mode 100644 index 0000000..3f7e3b6 --- /dev/null +++ b/recipes-bsp/rpi-u-boot-scr/files/boot.cmd @@ -0,0 +1,3 @@ +fdt addr ${fdt_addr_r} && fdt get value bootargs /chosen bootargs +fatload mmc 0:1 ${kernel_addr_r} uImage +bootm ${kernel_addr_r} - ${fdt_addr_r} diff --git a/recipes-bsp/rpi-u-boot-scr/files/raspberrypi/boot.cmd b/recipes-bsp/rpi-u-boot-scr/files/raspberrypi/boot.cmd deleted file mode 100644 index c86c758..0000000 --- a/recipes-bsp/rpi-u-boot-scr/files/raspberrypi/boot.cmd +++ /dev/null @@ -1,6 +0,0 @@ -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/rpi-u-boot-scr/files/raspberrypi0/boot.cmd b/recipes-bsp/rpi-u-boot-scr/files/raspberrypi0/boot.cmd deleted file mode 100644 index c86c758..0000000 --- a/recipes-bsp/rpi-u-boot-scr/files/raspberrypi0/boot.cmd +++ /dev/null @@ -1,6 +0,0 @@ -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/rpi-u-boot-scr/files/raspberrypi2/boot.cmd b/recipes-bsp/rpi-u-boot-scr/files/raspberrypi2/boot.cmd deleted file mode 100644 index aa4ea64..0000000 --- a/recipes-bsp/rpi-u-boot-scr/files/raspberrypi2/boot.cmd +++ /dev/null @@ -1,6 +0,0 @@ -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/rpi-u-boot-scr/files/raspberrypi3/boot.cmd b/recipes-bsp/rpi-u-boot-scr/files/raspberrypi3/boot.cmd deleted file mode 100644 index 2950856..0000000 --- a/recipes-bsp/rpi-u-boot-scr/files/raspberrypi3/boot.cmd +++ /dev/null @@ -1,6 +0,0 @@ -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} -- 2.10.1 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [meta-raspberrypi][PATCH] u-boot: Simplify boot script 2016-11-01 13:49 [meta-raspberrypi][PATCH] u-boot: Simplify boot script Jonathan Liu @ 2016-11-02 7:46 ` Paul Barker 2016-11-03 5:58 ` Khem Raj 2016-11-03 20:57 ` Paul Barker 1 sibling, 1 reply; 7+ messages in thread From: Paul Barker @ 2016-11-02 7:46 UTC (permalink / raw) To: Jonathan Liu; +Cc: yocto On Wed, 2 Nov 2016 00:49:11 +1100 Jonathan Liu <net147@gmail.com> wrote: > device_tree_address=0x100 is set in config.txt so the firmware will > load a patched device tree blob to 0x100 before passing control to > U-Boot. The U-Boot script will then read the command line arguments > generated by the firmware from the device tree and boot the kernel > with the command line arguments and the loaded device tree. > > This allows things like MAC address, board revision and serial number > to be correctly configured and options in config.txt to be used. > > Signed-off-by: Jonathan Liu <net147@gmail.com> > --- > recipes-bsp/bootfiles/rpi-config_git.bb | 5 +++++ > recipes-bsp/rpi-u-boot-scr/files/boot.cmd | 3 +++ > recipes-bsp/rpi-u-boot-scr/files/raspberrypi/boot.cmd | 6 ------ > recipes-bsp/rpi-u-boot-scr/files/raspberrypi0/boot.cmd | 6 ------ > recipes-bsp/rpi-u-boot-scr/files/raspberrypi2/boot.cmd | 6 ------ > recipes-bsp/rpi-u-boot-scr/files/raspberrypi3/boot.cmd | 6 ------ > 6 files changed, 8 insertions(+), 24 deletions(-) > create mode 100644 recipes-bsp/rpi-u-boot-scr/files/boot.cmd > delete mode 100644 > recipes-bsp/rpi-u-boot-scr/files/raspberrypi/boot.cmd delete mode > 100644 recipes-bsp/rpi-u-boot-scr/files/raspberrypi0/boot.cmd delete > mode 100644 recipes-bsp/rpi-u-boot-scr/files/raspberrypi2/boot.cmd > delete mode 100644 > recipes-bsp/rpi-u-boot-scr/files/raspberrypi3/boot.cmd > > diff --git a/recipes-bsp/bootfiles/rpi-config_git.bb > b/recipes-bsp/bootfiles/rpi-config_git.bb index f610718..2f4d25c > 100644 --- a/recipes-bsp/bootfiles/rpi-config_git.bb > +++ b/recipes-bsp/bootfiles/rpi-config_git.bb > @@ -76,6 +76,11 @@ do_deploy() { > echo "dispmanx_offline=1" > >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt fi > > + # U-Boot Device Tree support > + if [ "${KERNEL_IMAGETYPE}" = "uImage" ]; then > + sed -i '/#device_tree_address/ c\device_tree_address=0x100' > ${DEPLOYDIR}/bcm2835-bootfiles/config.txt > + fi > + > # SPI bus support > if [ -n "${ENABLE_SPI_BUS}" ] || [ "${PITFT}" = "1" ]; then > echo "# Enable SPI bus" > >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt diff --git > >>a/recipes-bsp/rpi-u-boot-scr/files/boot.cmd > >>b/recipes-bsp/rpi-u-boot-scr/files/boot.cmd > new file mode 100644 > index 0000000..3f7e3b6 > --- /dev/null > +++ b/recipes-bsp/rpi-u-boot-scr/files/boot.cmd > @@ -0,0 +1,3 @@ > +fdt addr ${fdt_addr_r} && fdt get value bootargs /chosen bootargs > +fatload mmc 0:1 ${kernel_addr_r} uImage > +bootm ${kernel_addr_r} - ${fdt_addr_r} > diff --git a/recipes-bsp/rpi-u-boot-scr/files/raspberrypi/boot.cmd > b/recipes-bsp/rpi-u-boot-scr/files/raspberrypi/boot.cmd deleted file > mode 100644 index c86c758..0000000 > --- a/recipes-bsp/rpi-u-boot-scr/files/raspberrypi/boot.cmd > +++ /dev/null > @@ -1,6 +0,0 @@ > -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/rpi-u-boot-scr/files/raspberrypi0/boot.cmd > b/recipes-bsp/rpi-u-boot-scr/files/raspberrypi0/boot.cmd deleted file > mode 100644 index c86c758..0000000 > --- a/recipes-bsp/rpi-u-boot-scr/files/raspberrypi0/boot.cmd > +++ /dev/null > @@ -1,6 +0,0 @@ > -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/rpi-u-boot-scr/files/raspberrypi2/boot.cmd > b/recipes-bsp/rpi-u-boot-scr/files/raspberrypi2/boot.cmd deleted file > mode 100644 index aa4ea64..0000000 > --- a/recipes-bsp/rpi-u-boot-scr/files/raspberrypi2/boot.cmd > +++ /dev/null > @@ -1,6 +0,0 @@ > -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/rpi-u-boot-scr/files/raspberrypi3/boot.cmd > b/recipes-bsp/rpi-u-boot-scr/files/raspberrypi3/boot.cmd deleted file > mode 100644 index 2950856..0000000 > --- a/recipes-bsp/rpi-u-boot-scr/files/raspberrypi3/boot.cmd > +++ /dev/null > @@ -1,6 +0,0 @@ > -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} Looks like I missed the RaspberryPi Device Tree documentation (https://www.raspberrypi.org/documentation/configuration/device-tree.md) when putting my patches together. I assumed that they use device trees in a pretty standard way but looks like I was wrong! I'll give this a test this week. Thanks, Paul ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [meta-raspberrypi][PATCH] u-boot: Simplify boot script 2016-11-02 7:46 ` Paul Barker @ 2016-11-03 5:58 ` Khem Raj 0 siblings, 0 replies; 7+ messages in thread From: Khem Raj @ 2016-11-03 5:58 UTC (permalink / raw) To: Paul Barker; +Cc: yocto [-- Attachment #1: Type: text/plain, Size: 5668 bytes --] > On Nov 2, 2016, at 12:46 AM, Paul Barker <paul@paulbarker.me.uk> wrote: > > On Wed, 2 Nov 2016 00:49:11 +1100 > Jonathan Liu <net147@gmail.com> wrote: > >> device_tree_address=0x100 is set in config.txt so the firmware will >> load a patched device tree blob to 0x100 before passing control to >> U-Boot. The U-Boot script will then read the command line arguments >> generated by the firmware from the device tree and boot the kernel >> with the command line arguments and the loaded device tree. >> >> This allows things like MAC address, board revision and serial number >> to be correctly configured and options in config.txt to be used. >> >> Signed-off-by: Jonathan Liu <net147@gmail.com> >> --- >> recipes-bsp/bootfiles/rpi-config_git.bb | 5 +++++ >> recipes-bsp/rpi-u-boot-scr/files/boot.cmd | 3 +++ >> recipes-bsp/rpi-u-boot-scr/files/raspberrypi/boot.cmd | 6 ------ >> recipes-bsp/rpi-u-boot-scr/files/raspberrypi0/boot.cmd | 6 ------ >> recipes-bsp/rpi-u-boot-scr/files/raspberrypi2/boot.cmd | 6 ------ >> recipes-bsp/rpi-u-boot-scr/files/raspberrypi3/boot.cmd | 6 ------ >> 6 files changed, 8 insertions(+), 24 deletions(-) >> create mode 100644 recipes-bsp/rpi-u-boot-scr/files/boot.cmd >> delete mode 100644 >> recipes-bsp/rpi-u-boot-scr/files/raspberrypi/boot.cmd delete mode >> 100644 recipes-bsp/rpi-u-boot-scr/files/raspberrypi0/boot.cmd delete >> mode 100644 recipes-bsp/rpi-u-boot-scr/files/raspberrypi2/boot.cmd >> delete mode 100644 >> recipes-bsp/rpi-u-boot-scr/files/raspberrypi3/boot.cmd >> >> diff --git a/recipes-bsp/bootfiles/rpi-config_git.bb >> b/recipes-bsp/bootfiles/rpi-config_git.bb index f610718..2f4d25c >> 100644 --- a/recipes-bsp/bootfiles/rpi-config_git.bb >> +++ b/recipes-bsp/bootfiles/rpi-config_git.bb >> @@ -76,6 +76,11 @@ do_deploy() { >> echo "dispmanx_offline=1" >>>> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt fi >> >> + # U-Boot Device Tree support >> + if [ "${KERNEL_IMAGETYPE}" = "uImage" ]; then >> + sed -i '/#device_tree_address/ c\device_tree_address=0x100' >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt >> + fi >> + >> # SPI bus support >> if [ -n "${ENABLE_SPI_BUS}" ] || [ "${PITFT}" = "1" ]; then >> echo "# Enable SPI bus" >>>> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt diff --git >>>> a/recipes-bsp/rpi-u-boot-scr/files/boot.cmd >>>> b/recipes-bsp/rpi-u-boot-scr/files/boot.cmd >> new file mode 100644 >> index 0000000..3f7e3b6 >> --- /dev/null >> +++ b/recipes-bsp/rpi-u-boot-scr/files/boot.cmd >> @@ -0,0 +1,3 @@ >> +fdt addr ${fdt_addr_r} && fdt get value bootargs /chosen bootargs >> +fatload mmc 0:1 ${kernel_addr_r} uImage >> +bootm ${kernel_addr_r} - ${fdt_addr_r} >> diff --git a/recipes-bsp/rpi-u-boot-scr/files/raspberrypi/boot.cmd >> b/recipes-bsp/rpi-u-boot-scr/files/raspberrypi/boot.cmd deleted file >> mode 100644 index c86c758..0000000 >> --- a/recipes-bsp/rpi-u-boot-scr/files/raspberrypi/boot.cmd >> +++ /dev/null >> @@ -1,6 +0,0 @@ >> -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/rpi-u-boot-scr/files/raspberrypi0/boot.cmd >> b/recipes-bsp/rpi-u-boot-scr/files/raspberrypi0/boot.cmd deleted file >> mode 100644 index c86c758..0000000 >> --- a/recipes-bsp/rpi-u-boot-scr/files/raspberrypi0/boot.cmd >> +++ /dev/null >> @@ -1,6 +0,0 @@ >> -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/rpi-u-boot-scr/files/raspberrypi2/boot.cmd >> b/recipes-bsp/rpi-u-boot-scr/files/raspberrypi2/boot.cmd deleted file >> mode 100644 index aa4ea64..0000000 >> --- a/recipes-bsp/rpi-u-boot-scr/files/raspberrypi2/boot.cmd >> +++ /dev/null >> @@ -1,6 +0,0 @@ >> -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/rpi-u-boot-scr/files/raspberrypi3/boot.cmd >> b/recipes-bsp/rpi-u-boot-scr/files/raspberrypi3/boot.cmd deleted file >> mode 100644 index 2950856..0000000 >> --- a/recipes-bsp/rpi-u-boot-scr/files/raspberrypi3/boot.cmd >> +++ /dev/null >> @@ -1,6 +0,0 @@ >> -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} > > Looks like I missed the RaspberryPi Device Tree documentation > (https://www.raspberrypi.org/documentation/configuration/device-tree.md) > when putting my patches together. I assumed that they use device trees > in a pretty standard way but looks like I was wrong! > > I'll give this a test this week. Staged for testing > > Thanks, > Paul > -- > _______________________________________________ > yocto mailing list > yocto@yoctoproject.org > https://lists.yoctoproject.org/listinfo/yocto [-- Attachment #2: Message signed with OpenPGP using GPGMail --] [-- Type: application/pgp-signature, Size: 211 bytes --] ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [meta-raspberrypi][PATCH] u-boot: Simplify boot script 2016-11-01 13:49 [meta-raspberrypi][PATCH] u-boot: Simplify boot script Jonathan Liu 2016-11-02 7:46 ` Paul Barker @ 2016-11-03 20:57 ` Paul Barker 2016-11-03 21:55 ` Jonathan Liu 1 sibling, 1 reply; 7+ messages in thread From: Paul Barker @ 2016-11-03 20:57 UTC (permalink / raw) To: Jonathan Liu; +Cc: yocto On Wed, 2 Nov 2016 00:49:11 +1100 Jonathan Liu <net147@gmail.com> wrote: > device_tree_address=0x100 is set in config.txt so the firmware will > load a patched device tree blob to 0x100 before passing control to > U-Boot. The U-Boot script will then read the command line arguments > generated by the firmware from the device tree and boot the kernel > with the command line arguments and the loaded device tree. > > This allows things like MAC address, board revision and serial number > to be correctly configured and options in config.txt to be used. > > Signed-off-by: Jonathan Liu <net147@gmail.com> > --- > recipes-bsp/bootfiles/rpi-config_git.bb | 5 +++++ > recipes-bsp/rpi-u-boot-scr/files/boot.cmd | 3 +++ > recipes-bsp/rpi-u-boot-scr/files/raspberrypi/boot.cmd | 6 ------ > recipes-bsp/rpi-u-boot-scr/files/raspberrypi0/boot.cmd | 6 ------ > recipes-bsp/rpi-u-boot-scr/files/raspberrypi2/boot.cmd | 6 ------ > recipes-bsp/rpi-u-boot-scr/files/raspberrypi3/boot.cmd | 6 ------ > 6 files changed, 8 insertions(+), 24 deletions(-) > create mode 100644 recipes-bsp/rpi-u-boot-scr/files/boot.cmd > delete mode 100644 recipes-bsp/rpi-u-boot-scr/files/raspberrypi/boot.cmd > delete mode 100644 recipes-bsp/rpi-u-boot-scr/files/raspberrypi0/boot.cmd > delete mode 100644 recipes-bsp/rpi-u-boot-scr/files/raspberrypi2/boot.cmd > delete mode 100644 recipes-bsp/rpi-u-boot-scr/files/raspberrypi3/boot.cmd > > diff --git a/recipes-bsp/bootfiles/rpi-config_git.bb b/recipes-bsp/bootfiles/rpi-config_git.bb > index f610718..2f4d25c 100644 > --- a/recipes-bsp/bootfiles/rpi-config_git.bb > +++ b/recipes-bsp/bootfiles/rpi-config_git.bb > @@ -76,6 +76,11 @@ do_deploy() { > echo "dispmanx_offline=1" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt > fi > > + # U-Boot Device Tree support > + if [ "${KERNEL_IMAGETYPE}" = "uImage" ]; then > + sed -i '/#device_tree_address/ c\device_tree_address=0x100' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt > + fi > + > # SPI bus support > if [ -n "${ENABLE_SPI_BUS}" ] || [ "${PITFT}" = "1" ]; then > echo "# Enable SPI bus" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt > diff --git a/recipes-bsp/rpi-u-boot-scr/files/boot.cmd b/recipes-bsp/rpi-u-boot-scr/files/boot.cmd > new file mode 100644 > index 0000000..3f7e3b6 > --- /dev/null > +++ b/recipes-bsp/rpi-u-boot-scr/files/boot.cmd > @@ -0,0 +1,3 @@ > +fdt addr ${fdt_addr_r} && fdt get value bootargs /chosen bootargs > +fatload mmc 0:1 ${kernel_addr_r} uImage > +bootm ${kernel_addr_r} - ${fdt_addr_r} > > <snip deleted files> This doesn't work for me. On RaspberryPi B+ I get no kernel messages during the boot. I do get a login prompt though and the boot is successful. On RaspberryPi 3 I don't get anything after "Starting kernel ...". https://www.raspberrypi.org/documentation/configuration/device-tree.md says: The base Device Trees are located alongside start.elf in the FAT partition (/boot from Linux), named bcm2708-rpi-b.dtb, bcm2708-rpi-b-plus.dtb, bcm2708-rpi-cm.dtb, and bcm2709-rpi-2-b.dtb. In /boot I have: bcm2708-rpi-b.dtb bcm2708-rpi-b-plus.dtb bcm2709-rpi-2-b.dtb bcm2710-rpi-3-b.dtb So my guess is that the RaspberryPi 3 isn't loading the right device tree. Is this a problem with start.elf (which we need to report upstream) or a problem with our DTB file names? I'd also say we probably have a problem with bootargs as it doesn't print out kernel messages during boot. What's the benefit of using the device tree cobbled together by start.elf instead of loading the DTB file ourselves? Thanks, Paul Barker ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [meta-raspberrypi][PATCH] u-boot: Simplify boot script 2016-11-03 20:57 ` Paul Barker @ 2016-11-03 21:55 ` Jonathan Liu 2016-11-03 22:14 ` Paul Barker 0 siblings, 1 reply; 7+ messages in thread From: Jonathan Liu @ 2016-11-03 21:55 UTC (permalink / raw) To: Paul Barker; +Cc: Yocto Project Hi Paul, On 4 November 2016 at 07:57, Paul Barker <paul@paulbarker.me.uk> wrote: > On Wed, 2 Nov 2016 00:49:11 +1100 > Jonathan Liu <net147@gmail.com> wrote: > >> device_tree_address=0x100 is set in config.txt so the firmware will >> load a patched device tree blob to 0x100 before passing control to >> U-Boot. The U-Boot script will then read the command line arguments >> generated by the firmware from the device tree and boot the kernel >> with the command line arguments and the loaded device tree. >> >> This allows things like MAC address, board revision and serial number >> to be correctly configured and options in config.txt to be used. >> >> Signed-off-by: Jonathan Liu <net147@gmail.com> >> --- >> recipes-bsp/bootfiles/rpi-config_git.bb | 5 +++++ >> recipes-bsp/rpi-u-boot-scr/files/boot.cmd | 3 +++ >> recipes-bsp/rpi-u-boot-scr/files/raspberrypi/boot.cmd | 6 ------ >> recipes-bsp/rpi-u-boot-scr/files/raspberrypi0/boot.cmd | 6 ------ >> recipes-bsp/rpi-u-boot-scr/files/raspberrypi2/boot.cmd | 6 ------ >> recipes-bsp/rpi-u-boot-scr/files/raspberrypi3/boot.cmd | 6 ------ >> 6 files changed, 8 insertions(+), 24 deletions(-) >> create mode 100644 recipes-bsp/rpi-u-boot-scr/files/boot.cmd >> delete mode 100644 recipes-bsp/rpi-u-boot-scr/files/raspberrypi/boot.cmd >> delete mode 100644 recipes-bsp/rpi-u-boot-scr/files/raspberrypi0/boot.cmd >> delete mode 100644 recipes-bsp/rpi-u-boot-scr/files/raspberrypi2/boot.cmd >> delete mode 100644 recipes-bsp/rpi-u-boot-scr/files/raspberrypi3/boot.cmd >> >> diff --git a/recipes-bsp/bootfiles/rpi-config_git.bb b/recipes-bsp/bootfiles/rpi-config_git.bb >> index f610718..2f4d25c 100644 >> --- a/recipes-bsp/bootfiles/rpi-config_git.bb >> +++ b/recipes-bsp/bootfiles/rpi-config_git.bb >> @@ -76,6 +76,11 @@ do_deploy() { >> echo "dispmanx_offline=1" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt >> fi >> >> + # U-Boot Device Tree support >> + if [ "${KERNEL_IMAGETYPE}" = "uImage" ]; then >> + sed -i '/#device_tree_address/ c\device_tree_address=0x100' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt >> + fi >> + >> # SPI bus support >> if [ -n "${ENABLE_SPI_BUS}" ] || [ "${PITFT}" = "1" ]; then >> echo "# Enable SPI bus" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt >> diff --git a/recipes-bsp/rpi-u-boot-scr/files/boot.cmd b/recipes-bsp/rpi-u-boot-scr/files/boot.cmd >> new file mode 100644 >> index 0000000..3f7e3b6 >> --- /dev/null >> +++ b/recipes-bsp/rpi-u-boot-scr/files/boot.cmd >> @@ -0,0 +1,3 @@ >> +fdt addr ${fdt_addr_r} && fdt get value bootargs /chosen bootargs >> +fatload mmc 0:1 ${kernel_addr_r} uImage >> +bootm ${kernel_addr_r} - ${fdt_addr_r} >> >> <snip deleted files> > > This doesn't work for me. > > On RaspberryPi B+ I get no kernel messages during the boot. I do get a > login prompt though and the boot is successful. > > On RaspberryPi 3 I don't get anything after "Starting kernel ...". > > https://www.raspberrypi.org/documentation/configuration/device-tree.md > says: > > The base Device Trees are located alongside start.elf in the FAT > partition (/boot from Linux), named bcm2708-rpi-b.dtb, > bcm2708-rpi-b-plus.dtb, bcm2708-rpi-cm.dtb, and > bcm2709-rpi-2-b.dtb. > > In /boot I have: > > bcm2708-rpi-b.dtb > bcm2708-rpi-b-plus.dtb > bcm2709-rpi-2-b.dtb > bcm2710-rpi-3-b.dtb > > So my guess is that the RaspberryPi 3 isn't loading the right device > tree. > > Is this a problem with start.elf (which we need to report upstream) or > a problem with our DTB file names? > > I'd also say we probably have a problem with bootargs as it doesn't > print out kernel messages during boot. > > What's the benefit of using the device tree cobbled together by > start.elf instead of loading the DTB file ourselves? As I mentioned in the commit: "This allows things like MAC address, board revision and serial number to be correctly configured and options in config.txt to be used." So: - MAC address of ethernet shown by ifconfig - Output of cat /proc/cpuinfo Looks like the config.txt option disables the board model auto detection so the device_tree= config.txt isn't automatically set properly. Probably the U-Boot binary needs to modified by mkknlimg --dtok instead of explicitly setting the device tree address in config.txt. Will look into this later if I have time. Regards, Jonathan ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [meta-raspberrypi][PATCH] u-boot: Simplify boot script 2016-11-03 21:55 ` Jonathan Liu @ 2016-11-03 22:14 ` Paul Barker 2016-11-04 12:13 ` Jonathan Liu 0 siblings, 1 reply; 7+ messages in thread From: Paul Barker @ 2016-11-03 22:14 UTC (permalink / raw) To: Jonathan Liu; +Cc: Yocto Project On Fri, 4 Nov 2016 08:55:05 +1100 Jonathan Liu <net147@gmail.com> wrote: > Hi Paul, > > On 4 November 2016 at 07:57, Paul Barker <paul@paulbarker.me.uk> wrote: > > On Wed, 2 Nov 2016 00:49:11 +1100 > > Jonathan Liu <net147@gmail.com> wrote: > > > >> device_tree_address=0x100 is set in config.txt so the firmware will > >> load a patched device tree blob to 0x100 before passing control to > >> U-Boot. The U-Boot script will then read the command line arguments > >> generated by the firmware from the device tree and boot the kernel > >> with the command line arguments and the loaded device tree. > >> > >> This allows things like MAC address, board revision and serial number > >> to be correctly configured and options in config.txt to be used. > >> > >> Signed-off-by: Jonathan Liu <net147@gmail.com> > >> --- > >> recipes-bsp/bootfiles/rpi-config_git.bb | 5 +++++ > >> recipes-bsp/rpi-u-boot-scr/files/boot.cmd | 3 +++ > >> recipes-bsp/rpi-u-boot-scr/files/raspberrypi/boot.cmd | 6 ------ > >> recipes-bsp/rpi-u-boot-scr/files/raspberrypi0/boot.cmd | 6 ------ > >> recipes-bsp/rpi-u-boot-scr/files/raspberrypi2/boot.cmd | 6 ------ > >> recipes-bsp/rpi-u-boot-scr/files/raspberrypi3/boot.cmd | 6 ------ > >> 6 files changed, 8 insertions(+), 24 deletions(-) > >> create mode 100644 recipes-bsp/rpi-u-boot-scr/files/boot.cmd > >> delete mode 100644 recipes-bsp/rpi-u-boot-scr/files/raspberrypi/boot.cmd > >> delete mode 100644 recipes-bsp/rpi-u-boot-scr/files/raspberrypi0/boot.cmd > >> delete mode 100644 recipes-bsp/rpi-u-boot-scr/files/raspberrypi2/boot.cmd > >> delete mode 100644 recipes-bsp/rpi-u-boot-scr/files/raspberrypi3/boot.cmd > >> > >> diff --git a/recipes-bsp/bootfiles/rpi-config_git.bb b/recipes-bsp/bootfiles/rpi-config_git.bb > >> index f610718..2f4d25c 100644 > >> --- a/recipes-bsp/bootfiles/rpi-config_git.bb > >> +++ b/recipes-bsp/bootfiles/rpi-config_git.bb > >> @@ -76,6 +76,11 @@ do_deploy() { > >> echo "dispmanx_offline=1" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt > >> fi > >> > >> + # U-Boot Device Tree support > >> + if [ "${KERNEL_IMAGETYPE}" = "uImage" ]; then > >> + sed -i '/#device_tree_address/ c\device_tree_address=0x100' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt > >> + fi > >> + > >> # SPI bus support > >> if [ -n "${ENABLE_SPI_BUS}" ] || [ "${PITFT}" = "1" ]; then > >> echo "# Enable SPI bus" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt > >> diff --git a/recipes-bsp/rpi-u-boot-scr/files/boot.cmd b/recipes-bsp/rpi-u-boot-scr/files/boot.cmd > >> new file mode 100644 > >> index 0000000..3f7e3b6 > >> --- /dev/null > >> +++ b/recipes-bsp/rpi-u-boot-scr/files/boot.cmd > >> @@ -0,0 +1,3 @@ > >> +fdt addr ${fdt_addr_r} && fdt get value bootargs /chosen bootargs > >> +fatload mmc 0:1 ${kernel_addr_r} uImage > >> +bootm ${kernel_addr_r} - ${fdt_addr_r} > >> > >> <snip deleted files> > > > > This doesn't work for me. > > > > On RaspberryPi B+ I get no kernel messages during the boot. I do get a > > login prompt though and the boot is successful. > > > > On RaspberryPi 3 I don't get anything after "Starting kernel ...". > > > > https://www.raspberrypi.org/documentation/configuration/device-tree.md > > says: > > > > The base Device Trees are located alongside start.elf in the FAT > > partition (/boot from Linux), named bcm2708-rpi-b.dtb, > > bcm2708-rpi-b-plus.dtb, bcm2708-rpi-cm.dtb, and > > bcm2709-rpi-2-b.dtb. > > > > In /boot I have: > > > > bcm2708-rpi-b.dtb > > bcm2708-rpi-b-plus.dtb > > bcm2709-rpi-2-b.dtb > > bcm2710-rpi-3-b.dtb > > > > So my guess is that the RaspberryPi 3 isn't loading the right device > > tree. > > > > Is this a problem with start.elf (which we need to report upstream) or > > a problem with our DTB file names? > > > > I'd also say we probably have a problem with bootargs as it doesn't > > print out kernel messages during boot. > > > > What's the benefit of using the device tree cobbled together by > > start.elf instead of loading the DTB file ourselves? > > As I mentioned in the commit: > "This allows things like MAC address, board revision and serial number > to be correctly configured and options in config.txt to be used." > > So: > - MAC address of ethernet shown by ifconfig > - Output of cat /proc/cpuinfo > > Looks like the config.txt option disables the board model auto > detection so the device_tree= config.txt isn't automatically set > properly. Probably the U-Boot binary needs to modified by mkknlimg > --dtok instead of explicitly setting the device tree address in > config.txt. Will look into this later if I have time. > Ah ok, that makes sense. I'll have a look if there's any way to check which DTB file start.elf is picking up. I thought mkknlimg wasn't required any more though (https://github.com/raspberrypi/tools/issues/58). I'm probably just hitting up against the not-well-documented bits of the RaspberryPi boot process. Thanks, Paul ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [meta-raspberrypi][PATCH] u-boot: Simplify boot script 2016-11-03 22:14 ` Paul Barker @ 2016-11-04 12:13 ` Jonathan Liu 0 siblings, 0 replies; 7+ messages in thread From: Jonathan Liu @ 2016-11-04 12:13 UTC (permalink / raw) To: Paul Barker; +Cc: Yocto Project Hi Paul, On 4 November 2016 at 09:14, Paul Barker <paul@paulbarker.me.uk> wrote: > On Fri, 4 Nov 2016 08:55:05 +1100 > Jonathan Liu <net147@gmail.com> wrote: > >> Hi Paul, >> >> On 4 November 2016 at 07:57, Paul Barker <paul@paulbarker.me.uk> wrote: >> > On Wed, 2 Nov 2016 00:49:11 +1100 >> > Jonathan Liu <net147@gmail.com> wrote: >> > >> >> device_tree_address=0x100 is set in config.txt so the firmware will >> >> load a patched device tree blob to 0x100 before passing control to >> >> U-Boot. The U-Boot script will then read the command line arguments >> >> generated by the firmware from the device tree and boot the kernel >> >> with the command line arguments and the loaded device tree. >> >> >> >> This allows things like MAC address, board revision and serial number >> >> to be correctly configured and options in config.txt to be used. >> >> >> >> Signed-off-by: Jonathan Liu <net147@gmail.com> >> >> --- >> >> recipes-bsp/bootfiles/rpi-config_git.bb | 5 +++++ >> >> recipes-bsp/rpi-u-boot-scr/files/boot.cmd | 3 +++ >> >> recipes-bsp/rpi-u-boot-scr/files/raspberrypi/boot.cmd | 6 ------ >> >> recipes-bsp/rpi-u-boot-scr/files/raspberrypi0/boot.cmd | 6 ------ >> >> recipes-bsp/rpi-u-boot-scr/files/raspberrypi2/boot.cmd | 6 ------ >> >> recipes-bsp/rpi-u-boot-scr/files/raspberrypi3/boot.cmd | 6 ------ >> >> 6 files changed, 8 insertions(+), 24 deletions(-) >> >> create mode 100644 recipes-bsp/rpi-u-boot-scr/files/boot.cmd >> >> delete mode 100644 recipes-bsp/rpi-u-boot-scr/files/raspberrypi/boot.cmd >> >> delete mode 100644 recipes-bsp/rpi-u-boot-scr/files/raspberrypi0/boot.cmd >> >> delete mode 100644 recipes-bsp/rpi-u-boot-scr/files/raspberrypi2/boot.cmd >> >> delete mode 100644 recipes-bsp/rpi-u-boot-scr/files/raspberrypi3/boot.cmd >> >> >> >> diff --git a/recipes-bsp/bootfiles/rpi-config_git.bb b/recipes-bsp/bootfiles/rpi-config_git.bb >> >> index f610718..2f4d25c 100644 >> >> --- a/recipes-bsp/bootfiles/rpi-config_git.bb >> >> +++ b/recipes-bsp/bootfiles/rpi-config_git.bb >> >> @@ -76,6 +76,11 @@ do_deploy() { >> >> echo "dispmanx_offline=1" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt >> >> fi >> >> >> >> + # U-Boot Device Tree support >> >> + if [ "${KERNEL_IMAGETYPE}" = "uImage" ]; then >> >> + sed -i '/#device_tree_address/ c\device_tree_address=0x100' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt >> >> + fi >> >> + >> >> # SPI bus support >> >> if [ -n "${ENABLE_SPI_BUS}" ] || [ "${PITFT}" = "1" ]; then >> >> echo "# Enable SPI bus" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt >> >> diff --git a/recipes-bsp/rpi-u-boot-scr/files/boot.cmd b/recipes-bsp/rpi-u-boot-scr/files/boot.cmd >> >> new file mode 100644 >> >> index 0000000..3f7e3b6 >> >> --- /dev/null >> >> +++ b/recipes-bsp/rpi-u-boot-scr/files/boot.cmd >> >> @@ -0,0 +1,3 @@ >> >> +fdt addr ${fdt_addr_r} && fdt get value bootargs /chosen bootargs >> >> +fatload mmc 0:1 ${kernel_addr_r} uImage >> >> +bootm ${kernel_addr_r} - ${fdt_addr_r} >> >> >> >> <snip deleted files> >> > >> > This doesn't work for me. >> > >> > On RaspberryPi B+ I get no kernel messages during the boot. I do get a >> > login prompt though and the boot is successful. >> > >> > On RaspberryPi 3 I don't get anything after "Starting kernel ...". >> > >> > https://www.raspberrypi.org/documentation/configuration/device-tree.md >> > says: >> > >> > The base Device Trees are located alongside start.elf in the FAT >> > partition (/boot from Linux), named bcm2708-rpi-b.dtb, >> > bcm2708-rpi-b-plus.dtb, bcm2708-rpi-cm.dtb, and >> > bcm2709-rpi-2-b.dtb. >> > >> > In /boot I have: >> > >> > bcm2708-rpi-b.dtb >> > bcm2708-rpi-b-plus.dtb >> > bcm2709-rpi-2-b.dtb >> > bcm2710-rpi-3-b.dtb >> > >> > So my guess is that the RaspberryPi 3 isn't loading the right device >> > tree. >> > >> > Is this a problem with start.elf (which we need to report upstream) or >> > a problem with our DTB file names? >> > >> > I'd also say we probably have a problem with bootargs as it doesn't >> > print out kernel messages during boot. >> > >> > What's the benefit of using the device tree cobbled together by >> > start.elf instead of loading the DTB file ourselves? >> >> As I mentioned in the commit: >> "This allows things like MAC address, board revision and serial number >> to be correctly configured and options in config.txt to be used." >> >> So: >> - MAC address of ethernet shown by ifconfig >> - Output of cat /proc/cpuinfo >> >> Looks like the config.txt option disables the board model auto >> detection so the device_tree= config.txt isn't automatically set >> properly. Probably the U-Boot binary needs to modified by mkknlimg >> --dtok instead of explicitly setting the device tree address in >> config.txt. Will look into this later if I have time. >> > > Ah ok, that makes sense. > > I'll have a look if there's any way to check which DTB file start.elf is > picking up. > > I thought mkknlimg wasn't required any more though > (https://github.com/raspberrypi/tools/issues/58). I'm probably just > hitting up against the not-well-documented bits of the RaspberryPi boot > process. You're right. It seems the firmware from 4.4 release onward will enable device tree by default if there is no trailer present. Running "vcdbg log msg" shows: 002761.625: Read command line from file 'cmdline.txt' dwc_otg.lpm_enable=0 console=serial0,115200 root=/dev/mmcblk0p2 rootfstype=ext4 rootwait 002785.056: Loading 'kernel7.img' to 0x8000 size 0x52690 002788.710: No kernel trailer (run mkknlimg to fix) - assuming DT-capable 002791.303: Loading 'bcm2709-rpi-2-b.dtb' to 0x5a690 size 0x3bfc 002869.679: dtparam: pwr_led_gpio=35 002879.048: dtparam: uart0_clkrate=48000000 002969.703: dtparam: arm_freq=900000000 003011.816: dtparam: core_freq=250000000 003022.927: dtparam: cache_line_size=64 003044.337: Device tree loaded to 0x2effbf00 (size 0x40f8) 003047.568: gpioman: gpioman_get_pin_num: pin SDCARD_CONTROL_POWER not defined 100942.791: vchiq_core: vchiq_init_state: slot_zero = 0xf6c80000, is_master = 1 100947.180: hdmi: HDMI:hdmi_get_state is deprecated, use hdmi_get_display_state instead 100952.267: TV service:host side not connected, dropping notification 0x00000002, 0x00000002, 0x00000027 I just copied downloaded https://github.com/raspberrypi/firmware/blob/master/hardfp/opt/vc/bin/vcdbg and https://github.com/raspberrypi/firmware/blob/master/hardfp/opt/vc/lib/libelftoolchain.so to my Raspberry Pi and ran "LD_LIBRARY_PATH=. ./vcdbg log msg". Note the line "002788.710: No kernel trailer (run mkknlimg to fix) - assuming DT-capable". Sometime ago the firmware used to load the patched device tree blobs to 0x100 (which is the default value of fdt_addr_r in newer versions of U-Boot for Raspberry Pi). It seems to have changed though as can be seen by the line "003044.337: Device tree loaded to 0x2effbf00 (size 0x40f8)". Something like this would fix it for Raspberry Pi 2: diff --git a/recipes-bsp/bootfiles/rpi-config_git.bb b/recipes-bsp/bootfiles/rpi-config_git.bb index 2f4d25c..f610718 100644 --- a/recipes-bsp/bootfiles/rpi-config_git.bb +++ b/recipes-bsp/bootfiles/rpi-config_git.bb @@ -76,11 +76,6 @@ do_deploy() { echo "dispmanx_offline=1" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt fi - # U-Boot Device Tree support - if [ "${KERNEL_IMAGETYPE}" = "uImage" ]; then - sed -i '/#device_tree_address/ c\device_tree_address=0x100' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt - fi - # SPI bus support if [ -n "${ENABLE_SPI_BUS}" ] || [ "${PITFT}" = "1" ]; then echo "# Enable SPI bus" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt diff --git a/recipes-bsp/rpi-u-boot-scr/files/boot.cmd b/recipes-bsp/rpi-u-boot-scr/files/boot.cmd index 3f7e3b6..201272a 100644 --- a/recipes-bsp/rpi-u-boot-scr/files/boot.cmd +++ b/recipes-bsp/rpi-u-boot-scr/files/boot.cmd @@ -1,3 +1,4 @@ +setenv fdt_addr_r 0x2effbf00 fdt addr ${fdt_addr_r} && fdt get value bootargs /chosen bootargs fatload mmc 0:1 ${kernel_addr_r} uImage bootm ${kernel_addr_r} - ${fdt_addr_r} But the device tree address may change in the future and might be different for each Raspberry Pi model. I only have Raspberry Pi 2 for development. Here are some ways to solve this: - Find out the memory address the blob is loaded to for each model and use the fdt addr command to try each one until it can parse it successfully. Likely to break in the future. - Modify U-Boot to save the device tree address from CPU register r2 in the entry point, then the U-Boot script can try reading the device tree from that address. - Get upstream Raspberry Pi firmware to support auto-detection of board and loading of associated device tree, even when device_tree_address is set in config.txt Regards, Jonathan ^ permalink raw reply related [flat|nested] 7+ messages in thread
end of thread, other threads:[~2016-11-04 12:14 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2016-11-01 13:49 [meta-raspberrypi][PATCH] u-boot: Simplify boot script Jonathan Liu 2016-11-02 7:46 ` Paul Barker 2016-11-03 5:58 ` Khem Raj 2016-11-03 20:57 ` Paul Barker 2016-11-03 21:55 ` Jonathan Liu 2016-11-03 22:14 ` Paul Barker 2016-11-04 12:13 ` Jonathan Liu
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.