Date: Tue, 09 Jun 2020 23:16:42 +0000 From: Robert Crowston <crowston@protonmail.com> Cc: freebsd-arm <freebsd-arm@freebsd.org> Subject: Re: Report: FreeBSD on Rpi4 8 GB model Message-ID: <vZ3qJTOGzo9Cg-9N3Y3BJXsbSXiMQ57DZXJsK7j-T7Xp7xH9ItIua8vcHu2qQj992QAIDfN19Opz0gPRYRgXStldvEslmQL4_OENaE0uyDQ=@protonmail.com> In-Reply-To: <kb9ZDoXeXjZQGaI_pHItcwGDLz9nl5FzAe-_mxkI1N9MAFSkDpvFbwt-JUy-YmoOg-3C9bFyiNYgUoGvAnJZvsxbbGVHP4ZlUC84EgCd6A0=@protonmail.com> References: <kb9ZDoXeXjZQGaI_pHItcwGDLz9nl5FzAe-_mxkI1N9MAFSkDpvFbwt-JUy-YmoOg-3C9bFyiNYgUoGvAnJZvsxbbGVHP4ZlUC84EgCd6A0=@protonmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
I figured out how to start the xhci driver. The snag is, it seems the message to the VC to reinstall the xhci firmware = has to be delivered *after* the bridge memory window is configured on the c= ontroller by the pci_pci bridge, and *before* the xhci controller is starte= d. That kind of ordering is not straightforward to arrange, as far as I can se= e: I cannot hack the message onto the end of the pcie attach function, sinc= e we need the bridge child to have attached, but not the xhci grandchild. I think the best way then is to create a shim driver for the xhci controlle= r whose probe() is designed only to succeed on the Rpi4. The shim's attach(= ) will instruct the VC to load the xhci firmware, and then defer to the gen= eric xhci_pci_attach(). All other methods will be inherited from the xhci_p= ci driver. Another idea is to put the logic directly in the xhci_pci.c file, but I thi= nk creating a dependency out to the Rpi4 mailbox API from the generic XHCI = framework is quite a hack. Anyone have any thoughts? =E2=80=90=E2=80=90=E2=80=90=E2=80=90=E2=80=90=E2=80=90=E2=80=90 Original Me= ssage =E2=80=90=E2=80=90=E2=80=90=E2=80=90=E2=80=90=E2=80=90=E2=80=90 On Saturday, 6 June 2020 19:15, Robert Crowston via freebsd-arm <freebsd-ar= m@freebsd.org> wrote: > What works: > > - FreeBSD SMP (see below) > - All 8 GB of memory (less video RAM). > > What does not work on the 8 GB model (but does work on the 4 GB model= ): > > - xhci (with my driver, there has been a change in the way the firmware= is loaded) > - ethernet (genet0 is detected fine, appears to be up, but no packets g= o over the interface) > - JTAG debugging (urgh) > > dmesg: https://dmesgd.nycbug.org/index.cgi?do=3Dview&id=3D5534 > > You will need the latest u-boot. The one in pkg doesn't work. I compi= led from head: https://github.com/u-boot/u-boot.git > > For SMP, you need also need to tell u-boot not to clobber over our pr= ocessor start up function set up by armstub8-gic.bin. > > Edit board/raspberrypi/rpi/Kconfig, set RPI_EFI_NR_SPIN_PAGES to a la= rger number (I picked 10, probably too big, but it was easier than doing th= e arithmetic). > > $ CROSS_COMPILE=3Daarch64-none-elf- gmake rpi_4_defconfig > $ CROSS_COMPILE=3Daarch64-none-elf- gmake > > Overwrite the u-boot.bin file on your sdcard with the one just built. > > You will also need the latest versions of the pi4 firmware files on y= our MSDOS partition, bcm2711-rpi-4-b.dtb, fixup4.dat, start4.elf, and the o= verlays/ directory. > > > freebsd-arm@freebsd.org mailing list > https://lists.freebsd.org/mailman/listinfo/freebsd-arm > To unsubscribe, send any mail to "freebsd-arm-unsubscribe@freebsd.org"
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?vZ3qJTOGzo9Cg-9N3Y3BJXsbSXiMQ57DZXJsK7j-T7Xp7xH9ItIua8vcHu2qQj992QAIDfN19Opz0gPRYRgXStldvEslmQL4_OENaE0uyDQ=>