Date: Sat, 3 Oct 2020 15:20:37 -0700 From: Mark Millard <marklmi@yahoo.com> To: Robert Crowston <crowston@protonmail.com>, freebsd-arm <freebsd-arm@freebsd.org> Subject: rpi4 FreeBSD vs. ubuntu u-boot fdt print / memereserve difference (lack of reserve in FreeBSD context), 0x3b400000 vs. DMA_HIGH_LIMIT being 0x3c000000 Message-ID: <1A13F7B5-F8C3-4022-939C-2992E53D1DF1@yahoo.com> References: <1A13F7B5-F8C3-4022-939C-2992E53D1DF1.ref@yahoo.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Another FreeBSD vs. ubuntu context difference, this time in the fdt print / output . . . The ubuntu u-boot has (fdt print / output): memreserve =3D <0x3b400000 0x04c00000>; . . . (Note: 0x3b400000+0x04c00000 =3D=3D 0x40000000) . . . =20 #address-cells =3D <0x00000002>; #size-cells =3D <0x00000001>; . . . axi { vc_mem { reg =3D <0x3ec00000 0x40000000 0xc0000000>; }; Note: "vc_mem is solely used as a mechanism for passing a couple of parameters through from the firmware to vcdbg" End note }; . . . ( boot args has: vc_mem.mem_base=3D0x3ec00000 = vc_mem.mem_size=3D0x40000000 ) . . . reserved-memory { #address-cells =3D <0x00000002>; #size-cells =3D <0x00000001>; ranges; phandle =3D <0x0000003d>; linux,cma { compatible =3D "shared-dma-pool"; size =3D <0x04000000>; reusable; linux,cma-default; alloc-ranges =3D <0x00000000 0x00000000 = 0x30000000>; phandle =3D <0x0000003e>; }; }; . . . (I split the reg into lines below) . . . memory@0 { device_type =3D "memory"; reg =3D <0x00000000 0x00000000 0x3b400000 0x00000000 0x40000000 0xbc000000 0x00000001 0x00000000 0x80000000 0x00000001 0x80000000 0x80000000>; }; . . . (Note: 0x40000000+0xbc000000 =3D=3D 0xFC000000) . . . (I've ignored gpiomem above and below.) It appears to be that the memreserve may be important to have. The above may also suggest that FreeBSD's: #define DMA_HIGH_LIMIT 0x3c000000 may be a little too large (< or <=3D 0x3b400000 ?). FreeBSD u-boot reports just: /memreserve/ 0x0 0x1000; . . . memory@0 { =20 device_type =3D "memory"; reg =3D <0x0 0x0 0x0>; }; And so does not indicate anything special for either of (showing begin/end points): 0x3b400000..0x3FFFFFFF (in use by the vc?) 0xFC000000..0xFFFFFFFF (I/O peripheral area and such?) The context is an 8 GiByte RPi4 in both examples. Various details would vary on 1 GiByte and 2 GiByte RPi4Bs and some in memory@0 on the 4 GiBYTe RPi4B. =3D=3D=3D Mark Millard marklmi at yahoo.com ( dsl-only.net went away in early 2018-Mar)
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1A13F7B5-F8C3-4022-939C-2992E53D1DF1>