RPi4B: modern firmware vs. Device tree loaded to 0x4000 (size 0xbe0c) [fails] vs. to 0x1f0000 (size 0xbd90) [works]?

Mark Millard marklmi at yahoo.com
Sun Oct 11 19:37:50 UTC 2020



On 2020-Oct-11, at 06:38, Robert Crowston <crowston at protonmail.com> wrote:

> After updating to the latest dtb firmware from https://github.com/raspberrypi/firmware/tree/63b192231130f1bdd074f3ae0794889d53bdeb06/boot, and flashing the eeprom to the 2020-09-03 version, my system boots just fine.
> 
> https://dmesgd.nycbug.org/index.cgi?do=view&id=5703
> 
> All I did was remove the device_tree_address=0x4000 from config.txt.
> 
> # cat config.txt
> arm_64bit=1
> armstub=armstub8-gic.bin
> dtoverlay=disable-bt
> dtoverlay=mmc
> enable_jtag_gpio=1
> enable_uart=1
> kernel=u-boot.bin
> 
> (I have not tried updating u-boot yet.)
> 
> Am I missing something here?

Yes. Below, I show debug output that I've enabled. I've
added notes in the middle based on what can happen when
device_tree_address handling is left at the default that
the example happens to show.

(Happens to eventually load the 2020.10 u-boot but the
below type of thing is also likely an example of why
the device_tree_address use was originally specified:
The problem starts before u-boot is loaded.)

. . .
Read config.txt bytes      231 hnd 0x0001379f hash '99d98fec5f158ab5'
recover4.elf not found (6)
recovery.elf not found (6)
USB3 rport 2 status 00281203 -> 00621203
USB3 rport 2 status 00281203 -> 00621203
Read start4.elf bytes  2277248 hnd 0x00012ee3 hash '8e98b15f075142da'
USB3 rport 2 status 00281203 -> 00621203
Read fixup4.dat bytes     5409 hnd 0x00013799 hash 'bdc1f053a4ad68f8'
0x00c03111 0x00000000 0x0000001f
MEM GPU: 32 ARM: 991 TOTAL: 1023
Starting start4.elf @ 0xfeb00200 partition 0

MESS:00:00:16.648461:0: bfs_xhci_retrieve 3ee76240
MESS:00:00:16.650135:0: bfs_xhci_retrieve VL805 flags 00000001
MESS:00:00:16.662962:0: brfs: File read: /mfs/sd/config.txt
MESS:00:00:16.665769:0: brfs: File read: 231 bytes
MESS:00:00:16.721692:0: brfs: File read: /mfs/sd/config.txt
MESS:00:00:16.730630:0: brfs: File read: 231 bytes
MESS:00:00:17.211387:0: gpioman: gpioman_get_pin_num: pin DISPLAY_DSI_PORT not defined
MESS:00:00:17.218634:0: *** Restart logging
MESS:00:00:17.260584:0: hdmi: HDMI:hdmi_get_state is deprecated, use hdmi_get_display_state instead
MESS:00:00:17.266525:0: HDMI0: hdmi_pixel_encoding: 300000000
MESS:00:00:17.272004:0: HDMI1: hdmi_pixel_encoding: 300000000
MESS:00:00:17.282397:0: dtb_file 'bcm2711-rpi-4-b.dtb'
MESS:00:00:17.290723:0: brfs: File read: /mfs/sd/bcm2711-rpi-4-b.dtb
MESS:00:00:17.293965:0: Loading 'bcm2711-rpi-4-b.dtb' to 0x100 size 0xb99c

NOTE: 0x100 above is inside the memory range that armstub8-gic.bin
will load to, there by turning the dtb related content to garbage.
(There might be other things in the memory range that do not have
debug messages. I'll ignore that below.)

MESS:00:00:17.377304:0: brfs: File read: 47516 bytes
MESS:00:00:17.818436:0: brfs: File read: /mfs/sd/config.txt
MESS:00:00:17.821050:0: brfs: File read: 231 bytes
MESS:00:00:17.827281:0: brfs: File read: /mfs/sd/overlays/disable-bt.dtbo
MESS:00:00:17.952373:0: Loaded overlay 'disable-bt'
MESS:00:00:18.233557:0: brfs: File read: 1073 bytes
MESS:00:00:18.238164:0: brfs: File read: /mfs/sd/overlays/mmc.dtbo
MESS:00:00:18.340392:0: Loaded overlay 'mmc'
MESS:00:00:18.652626:0: brfs: File read: 1221 bytes
MESS:00:00:18.654852:0: Failed to open command line file 'cmdline.txt'
MESS:00:00:20.241899:0: brfs: File read: /mfs/sd/armstub8-gic.bin
MESS:00:00:20.244930:0: Loading 'armstub8-gic.bin' to 0x0 size 0x1700

NOTE: The above replaces the earlier dtb related content.

In my context the rest looked like:

MESS:00:00:20.251124:0: brfs: File read: 5888 bytes
MESS:00:00:20.306880:0: brfs: File read: /mfs/sd/u-boot.bin
MESS:00:00:20.309380:0: Loading 'u-boot.bin' to 0x80000 size 0x8b9c0
MESS:00:00:20.315470:0: Device tree loaded to 0x2eff4100 (size 0xbe0c)
MESS:00:00:20.321763:0: uart: Set PL011 baud rate to 103448.300000 Hz
MESS:00:00:20.330821:0: uart: Baud rate change done...
MESS:00:00:20.332881:0: uart: Baud rate change done...
MESS:00:00:20.338282:0: bfs_xhci_stop
MESS:00:00:20.341123:0: XHCI-STOP
MESS:00:00:20.344315:0: xHC ver: 256 HCS: 05000420 fc000031 00e70004 HCC: 002841eb


U-Boot 2020.10 (Oct 09 2020 - 06:50:04 +0000)

DRAM:  3.9 GiB
RPI 4 Model B (0xc03111)
MMC:   mmc at 7e300000: 1, emmc2 at 7e340000: 0
Loading Environment from FAT... In:    serial
Out:   vidconsole
Err:   vidconsole
Net:   eth0: ethernet at 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... cannot reset port 2!?
Device NOT ready
   Request Sense returned 02 3A 00
Device NOT ready
   Request Sense returned 02 3A 00
Device NOT ready
   Request Sense returned 02 3A 00
4 USB Device(s) found
       scanning usb for storage devices... 2 Storage Device(s) found
Hit any key to stop autoboot:  2  1  0 
Card did not respond to voltage select!

Device 0: Vendor: OWC      Rev: 0    Prod: Envoy Pro mini  
            Type: Hard Disk
            Capacity: 228936.5 MB = 223.5 GB (468862128 x 512)
... is now current device
** Unrecognized filesystem type **
ethernet at 7d580000 Waiting for PHY auto negotiation to complete......... TIMEOUT !
bcmgenet: PHY startup failed: -110
missing environment variable: pxeuuid
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/01-dc-a6-32-27-c5-6a
ethernet at 7d580000 Waiting for PHY auto negotiation to complete......... TIMEOUT !
bcmgenet: PHY startup failed: -110
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/00000000
. . .

NOTE: The TIMEOUT repeats over and over (nothing plugged in).

===
Mark Millard
marklmi at yahoo.com
( dsl-only.net went
away in early 2018-Mar)



More information about the freebsd-arm mailing list