public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* getting u-boot to work on raspi 3b (32bit)
@ 2023-07-25 15:35 Robert Wenisch
  2023-07-25 21:28 ` Simon Glass
  0 siblings, 1 reply; 4+ messages in thread
From: Robert Wenisch @ 2023-07-25 15:35 UTC (permalink / raw)
  To: u-boot@lists.denx.de

Hello,

in order to study the boot process of embedded ARM systems, I decided to start with something well documented: booting as raspi 3b using u-boot.
I downloaded kernel sources and u-boot sources. I built the kernel with

CROSS_COMPILE=arm-linux-gnueabihf- ARCH=arm make bcmrpi_defconfig
CROSS_COMPILE=arm-linux-gnueabihf- ARCH=arm make -j6 zImage dtbs modules
cp arch/arm/boot/zImage /path/to/sdcard-boot-partition
cp arch/arm/boot/dts/bcm2710-rpi-3-b.dtb /path/to/sdcard-boot-partition
CROSS_COMPILE=arm-linux-gnueabihf- ARCH=arm INSTALL_MOD_PATH make modules_install

Further I compiled and setup u-boot:

CROSS_COMPILE=arm-linux-gnueabihf- ARCH=arm make rpi_3_32b_defconfig
CROSS_COMPILE=arm-linux-gnueabihf- ARCH=arm make -j6

cp u-boot.bin /path/to/ sdcard-boot-partition

I then went on to edit the config.txt:

kernel=u-boot-bin
enable_uart=1
arm_64bit=0
device_tree=bcm2710-rpi-3-b.dtb

and boot.txt goes

fatload mmc 0:1 ${fdt_addr_r} bcm2710-rpi-3-b.dtb
fatload mmc 0:1 $kernel_addr_r} zImage
setenv bootargs console=ttyS0,115200 root=/dev/mmcblk0p2 rootfstype=ext4 rootwait rw earlyprintk
bootz ${kernel_addr_r} - {fdt_addr_r}

I produced an image of boot.txt

mkimage -A arm -O linux -T script -d boot.txt boot.scr

Frustratingly, it didn't go as smoothly as expected.

With these setting I got up to state "Starting Kernel ..." over the serial port, then it freezes (or at least doesn't log anything on the tty).
I can't post the whole log as I only have it on my dev-machine.
However some interesting bits for now:
I'm booting on u-boot 2023-07-0967-g94e7cb181a
1 - Pretty much at the beginning it says "Loading Environment from FAT... *** warning - bad CRC, using default environment"
I suppose this only means we're not providing a .env file?

2 - Upon "Scanning bus usb@7e980000 for devices... it's logging a lot of garbage (as in misinterpreted character codes), what might be going on there?

3 - A bit further down it states "Found U-Boot script /boot.scr"
 [...]
"## Executing script at 02400000"
As this changes when I edit around the boot.txt and mkimage, I infer u-boot is indeed loading my boot instructions not just some default values.

Then follow some info on kernel image flatted device tree blob and their respective memory addresses.
It the tries to load the kernel to little apparent success :/

This procedure is what I gathered from a plethora of tutorial and howtos. Most of these are quite old, have there been breaking changes in u-boot's development in the meanwhile?
For example some sources state the kernel is launched via booti ${kernel_addr_r} - {fdt_addr_r}, however the booti command seem to be absent in my u-boot version.

Is there anything else I#m doing wrong?

I'll be grateful for any hints at this point...

Cheers Robert

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2023-08-09  2:06 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-07-25 15:35 getting u-boot to work on raspi 3b (32bit) Robert Wenisch
2023-07-25 21:28 ` Simon Glass
2023-07-28 13:39   ` AW: " Robert Wenisch
2023-08-09  2:03     ` Simon Glass

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox