furkantokac / buildroot

Buildroot fork customized for RPI3, iMX6, TK1, Qt, FastBoot.
Other
157 stars 37 forks source link

ARM_APPENDED_DTB: Support for RPi 3B+ #30

Open AttFo-Niklas opened 3 years ago

AttFo-Niklas commented 3 years ago

HI everyone,

we are trying to make the RPi fast-boot and appreciate this effort. In our project we use the RPi 3B+ model and got problems with the attached DTB file to the kernel.

After kernel compilation, we include the DTB with cat arch/arm/boot/zImage arch/arm/boot/dts/bcm2710-rpi-3-b-plus.dtb > $KERNEL-atfo+3bpdtb.img

In addition, we have to delete both bcm2710-rpi-3-b-plus.dtb and bcm2710-rpi-3-b.dtb from the boot FS or the RPi hangs. Although the RPi boots correctly into a Qt application, several hardware modules (I2C f.i.) are not initialized correctly and the boot message schows different models detected (watch 'OF: fdt: Machine model' and 'Reserved memory'):

With DTB included:

...
[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 5.10.17-v7-atfo (usrv@buildsystem) (arm-linux-gnueabihf-gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #3 SMP Mon Oct 4 14:12:26 UTC 2021
[    0.000000] CPU: ARMv7 Processor [410fd034] revision 4 (ARMv7), cr=10c5383d
[    0.000000] CPU: div instructions available: patching division code
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] OF: fdt: Machine model: Raspberry Pi 3 Model B+
[    0.000000] Memory policy: Data cache writealloc
[    0.000000] Reserved memory: created CMA memory pool at 0x2c000000, size 64 MiB
[    0.000000] OF: reserved mem: initialized node linux,cma, compatible id shared-dma-pool
...

W/O DTB (DTB from Filesystem):

...
[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 5.10.17-v7-atfo (usrv@buildsystem) (arm-linux-gnueabihf-gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #3 SMP Mon Oct 4 14:12:26 UTC 2021
[    0.000000] CPU: ARMv7 Processor [410fd034] revision 4 (ARMv7), cr=10c5383d
[    0.000000] CPU: div instructions available: patching division code
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] OF: fdt: Machine model: Raspberry Pi 3 Model B Plus Rev 1.3
[    0.000000] Memory policy: Data cache writealloc
[    0.000000] Reserved memory: created CMA memory pool at 0x2ac00000, size 64 MiB
[    0.000000] OF: reserved mem: initialized node linux,cma, compatible id shared-dma-pool
...

Any suggestions where to dig deeper?

Best regards Niklas

VladutLP commented 2 years ago

@AttFo-Niklas

everal hardware modules (I2C f.i.) are not initialized correctly

check dev handling. You may need eudev support.

the boot message schows different models detected

Check the dtsi of your device trees. I think your are providing an old dtb when appending it to the kernel.