Hi Paul, On 4 November 2016 at 07:57, Paul Barker <p...@paulbarker.me.uk> wrote: > On Wed, 2 Nov 2016 00:49:11 +1100 > Jonathan Liu <net...@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 <net...@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 -- _______________________________________________ yocto mailing list yocto@yoctoproject.org https://lists.yoctoproject.org/listinfo/yocto