sss22213
Posts: 10
Joined: Fri May 14, 2021 8:59 am

Kernel and uboot building on raspberry pi 4b

Mon Sep 06, 2021 1:41 pm

HI Here,

When I build a custom system by kernel and u-boot, can not boot.

Use the latest kernel branch and u-boot.

https://github.com/raspberrypi/linux/tree/rpi-5.10.y

https://github.com/u-boot/u-boot/tree/master

Uboot success works, but happen some errors after starting the kernel.

Uboot log:

Code: Select all

U-Boot 2021.10-rc3-00025-gecd6e0ce5a (Sep 05 2021 - 20:50:07 +0800)

DRAM:  3.9 GiB
RPI 4 Model B (0xc03114)
MMC:   sdhci_setup_cfg: Hardware doesn't specify base clock frequency
sdhci_setup_cfg: Hardware doesn't specify base clock frequency
mmcnr@7e300000 - probe failed: -22
sdhci_setup_cfg: Hardware doesn't specify base clock frequency

Loading Environment from FAT... Unable to read "uboot.env" from mmc0:1... In:    serial
Out:   serial
Err:   serial
Net:   eth0: ethernet@7d580000
PCIe BRCM: link up, 5.0 Gbps x1 (SSC)
starting USB...
Bus xhci_pci: Register 5000420 NbrPorts 5
Starting the controller
USB XHCI 1.00
scanning bus xhci_pci for devices... 2 USB Device(s) found
       scanning usb for storage devices... 0 Storage Device(s) found
Hit any key to stop autoboot:  0 
U-Boot> 
U-Boot> 
U-Boot> 
U-Boot> 
U-Boot> 
U-Boot> 
U-Boot> 
U-Boot> setenv bootargs 8250.nr_uarts=1 console=ttyS0,115200 root=/dev/mmcblk0p2 rootwait rw
U-Boot> fatload mmc 0:1 ${kernel_addr_r} Image
21522944 bytes read in 1131 ms (18.1 MiB/s)
U-Boot> fatload mmc 0:1 ${fdt_addr} bcm2711-rpi-4-b.dtb
49833 bytes read in 22 ms (2.2 MiB/s)
Error:

Code: Select all

[    1.463707] fe201000.serial: ttyAMA0 at MMIO 0xfe201000 (irq = 21, base_baud = 0) is a PL011 rev2
[    1.470062] bcm2835-aux-uart fe215040.serial: there is not valid maps for state default
[    1.470717] printk: console [ttyS0] disabled
[    1.470833] fe215040.serial: ttyS0 at MMIO 0xfe215040 (irq = 22, base_baud = 62500000) is a 16550
[    1.684414] usb 1-1: new high-speed USB device number 2 using xhci_hcd
[    1.689344] printk: console [ttyS0] enabled
[    1.843078] usb 1-1: New USB device found, idVendor=2109, idProduct=3431, bcdDevice= 4.21
[    1.848248] bcm2835-power bcm2835-power: Broadcom BCM2835 power domains driver
[    1.854236] usb 1-1: New USB device strings: Mfr=0, Product=1, SerialNumber=0
[    1.854248] usb 1-1: Product: USB2.0 Hub
[    1.859382] mmc-bcm2835 fe300000.mmcnr: mmc_debug:0 mmc_debug2:0
[    1.869887] hub 1-1:1.0: USB hub found
[    1.873675] mmc-bcm2835 fe300000.mmcnr: DMA channel allocated
[    1.902844] of_cfs_init
[    1.909980] hub 1-1:1.0: 4 ports detected
[    1.915422] of_cfs_init: OK
[    1.923370] mmc1: queuing unknown CIS tuple 0x80 (2 bytes)
[    1.954298] mmc0: SDHCI controller on fe340000.mmc [fe340000.mmc] using ADMA
[    1.959235] mmc1: queuing unknown CIS tuple 0x80 (3 bytes)
[    2.015693] mmc0: invalid bus width
[    2.018827] mmc1: queuing unknown CIS tuple 0x80 (3 bytes)
[    2.024177] mmc0: error -22 whilst initialising SD card
[    2.029887] mmc1: queuing unknown CIS tuple 0x80 (7 bytes)
[    2.203272] mmc0: invalid bus width
[    2.206902] mmc1: queuing unknown CIS tuple 0x80 (3 bytes)
[    2.210393] mmc0: error -22 whilst initialising SD card
[    2.225777] random: fast init done
[    2.881465] Waiting for root device /dev/mmcblk0p2...
[    2.934455] mmc1: new high speed SDIO card at address 0001
[    3.067131] mmc0: invalid bus width
[    3.070710] mmc0: error -22 whilst initialising SD card
Thanks a lot.

PhilE
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 5283
Joined: Mon Sep 29, 2014 1:07 pm
Location: Cambridge

Re: Kernel and uboot building on raspberry pi 4b

Mon Sep 06, 2021 1:58 pm

Try without the line that fatloads the dtb - the firmware has passed U-boot a pointer to the FDT it loaded, and the address should already be in "${fdt_addr}".

sss22213
Posts: 10
Joined: Fri May 14, 2021 8:59 am

Re: Kernel and uboot building on raspberry pi 4b

Tue Sep 07, 2021 2:02 pm

PhilE wrote:
Mon Sep 06, 2021 1:58 pm
Try without the line that fatloads the dtb - the firmware has passed U-boot a pointer to the FDT it loaded, and the address should already be in "${fdt_addr}".
Thank your solution. It works.

Return to “Linux Kernel”