Re: RPi4B: u-boot printenv shows: fdt_addr=4000 (input to u-boot) vs. fdt_addr_r=0x02600000 (output from u-boot): 4000 is used by FreeBSD?

Mark Millard via freebsd-arm <[email protected]>
Newsgroups gmane.os.freebsd.devel.arm
Message-ID <[email protected]>

On 2020-Oct-12, at 00:41, Mark Millard <[email protected]> wrote:

> The fdt_addr=4000 is from:
> 
> MESS:00:00:06.171732:0: dtb_file 'bcm2711-rpi-4-b.dtb'
> MESS:00:00:06.173753:0: Trying Device Tree file 'bcm2711-rpi-4-b.dtb'
> MESS:00:00:06.186642:0: brfs: File read: /mfs/sd/bcm2711-rpi-4-b.dtb
> 
> The fdt_addr_r=0x02600000 is from u-boot doing its own modifications
> to a copy it makes.
> 
> But that is not what the debug output indicates is being used after
> u-boot produces its "output" fdt:
> 
> MESS:00:00:09.631802:0: brfs: File read: /mfs/sd/armstub8-gic.bin
> MESS:00:00:09.634830:0: Loading 'armstub8-gic.bin' to 0x0 size 0x1700
> MESS:00:00:09.641023:0: brfs: File read: 5888 bytes
> MESS:00:00:09.762872:0: brfs: File read: /mfs/sd/u-boot.bin
> MESS:00:00:09.765376:0: Loading 'u-boot.bin' to 0x80000 size 0x8b9c0
> MESS:00:00:09.771462:0: Device tree loaded to 0x4000 (size 0xbe0c)
> 
> The following points out that the reporting 0x4000 just above is
> odd. Other contexts are reporting addresses closer to what
> fdt_addr_r has above (0x02600000) after u-boot.bin load (and based
> on the default 0x100 for the input to u-boot).
> 
> 
> For operating systems contexts where device_tree_address is not forced
> (and no armstub8*.bin is in use), I've noted that the debug messages
> track this sort of staging and use the u-boot output:
> 
> MESS:00:00:08.861956:0: brfs: File read: /mfs/sd/bcm2711-rpi-4-b.dtb
> MESS:00:00:08.865197:0: Loading 'bcm2711-rpi-4-b.dtb' to 0x100 size 0xb99c
> . . .
> MESS:00:00:10.443307:0: Loading 'rpi4-u-boot.bin' to 0x80000 size 0x8bb60
> MESS:00:00:10.449832:0: Device tree loaded to 0x2eff4000 (size 0xbf18)
> 
> That example is from the Fedora 33 branch, recently enough to be
> using u-boot 2020.10 .
> 
> RaspiOS64 (debian variant) does the same sort of thing:
> 
> MESS:00:00:06.029224:0: brfs: File read: /mfs/sd/bcm2711-rpi-4-b.dtb
> MESS:00:00:06.032473:0: Loading 'bcm2711-rpi-4-b.dtb' to 0x100 size 0xb99c
> . . .
> MESS:00:00:08.552427:0: brfs: File read: /mfs/sd/kernel8.img
> MESS:00:00:08.554979:0: Loading 'kernel8.img' to 0x80000 size 0xee6200
> MESS:00:00:08.561240:0: Device tree loaded to 0x2eff4100 (size 0xbea2)
> 
> (Note the lack of an explicit u-boot. This might be a u-boot
> "Falcon-Mode" context for all I know.)
> 
> Ubuntu 2020.04.1 LTS is older and uses an older u-boot and older
> firmware but also reports an address similar to the prior two
> examples:
> 
> ## Flattened Device Tree blob at 02600000
>   Booting using the fdt blob at 0x2600000
>   Using Device Tree in place at 0000000002600000, end 000000000260ea4f
> 
> (The older firmware does not have the same debug output.)
> 
> 
> FreeBSD seems to be the odd one out for what fdt address it is likely
> given.

Well, I decided was going to fdt print / for fdt_addr vs. fdt_addr_r
but got the following from the fdt addr commands:

U-Boot> fdt addr 0x02600000
libfdt fdt_check_header(): FDT_ERR_BADMAGIC
U-Boot> fdt addr 4000
U-Boot> 

where the earlier printenv showed:

fdt_addr=4000
fdt_addr_r=0x02600000

So, may be it is the 0x02600000 figure itself that is what is
wrong and the content for 4000 has the u-boot output? (I'm
unsure.)


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

_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-arm
To unsubscribe, send any mail to "[email protected]"
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.