FreeBSD on Layerscape/QorIQ LX2160X

Dan Kotowski dan.kotowski at a9development.com
Wed Jul 1 21:38:04 UTC 2020


> Well, normally PCIe devices can address all the space, unless you have terribly quirky hardware (on the RPi4, PCIe can address 3GB only..)
>
> Also I would guess that like.. yes, even if PCIe goes through the SMMU, if the SMMU is untouched by the OS, interrupts should arrive where the OS expects it normally.
>
> > And section 4.1.6 System MMU and Device Assignment
> > """
> > If a device is assigned and passed through to an operating system under a hypervisor, then the memory
>
> We're running on bare metal, this is about VMs.

So even though that stub only returns ENXIO, it should not matter unless I intend to use bhyve or something like that?

> > I'm almost surprised that nobody has bumped into this before. How does the IORT look on the MACCHIATObin if interrupts are NOT mapped behind SMMU?
>
> There is no IORT on the mcbin.. armada8k has a GICv2 not v3 :D

I'm also interested in acquiring one of those as well at some point, but your posts indicate that the net ifaces on that are basically dead weight under FreeBSD as well :(

> Socionext SynQuacer has the PCI node pointed to the ITS node.

24x A53 cores... hmmm...

> If I'm reading the table disassembly correctly, the Ampere eMAG has PCI nodes pointing to SMMU (v1/v2). But FreeBSD works there fine!
> That means the "fallback" non-IORT calculation of RIDs works fine there. But maybe it doesn't on the NXP chip because it's buggy.
>
> But there was some way to get the interrupts (without supporting SMMU) on this NXP chip – as evidenced by NetBSD working!
>
> Again.. can you flash the firmware where PCIe was working under NetBSD, dump the IORT there and also try patched (with D25179, e.g. any of my recent builds I guess) FreeBSD there?

https://gist.github.com/agrajag9/a59b6c440365745c5a4036e0faf6e23c

With old and new firmwares:

EFI shell acpiview output
acpidump -b (tarred, gzipped, and uuencoded)
acpidump -dt

And in case you need it, here's the IORT aslc used in the old firmware build:

https://github.com/agrajag9/edk2-platforms/blob/master-lx2160a/Silicon/NXP/LX2160A/AcpiTables/Iort.aslc


More information about the freebsd-arm mailing list