-
Notifications
You must be signed in to change notification settings - Fork 9
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ACPI PCIe doesn't work with most devices #11
Comments
Aha! it is the ECAM shift (?) After changing
to
(and after changing that, it's recongized, though there are problems with interrupts and stuff, and so far it seems that on the NIC, only TX works but not RX (because of the interrupt? UPD yes, I fixed MSI-X and it works!! yay)
|
Hi Greg, Indeed it's the ecam shift :/ Because the HW multiplies device 0 on each 32 positions of bus 0, a special handling must be added. This is not a problem in DT world (please check "marvell,armada8k-pcie-ecam" compatible in Linux drivers/pci/controller/pci-host-generic.c). However with ACPI, community does not allow to do it. As a result we are able to use endpoints that are enumerated on bdf 0:0:0 in the OS. This is problem for some cards like you mentioned. Regarding above in FreeBSD:
|
What's interesting is that only the "legacy endpoint" card was successfully duplicated by the HW into the last position (I assume the shift is meant to only expose the last position to the OS?) and literally all other cards I have weren't duplicated..
You mean the current HID and CID?
..yeah, I doubt that any OS would support legacy PCI on aarch64 but not Express :D |
You can't actually use an ECAM accessor, because you need to filter devices on bus 0. Did anyone test this before? *crickets* Verified with a 1b21:1182 combo xHCI + AHCI card that has a total of _3_ PBPs. Signed-off-by: Andrei Warkentin <[email protected]>
Under both FreeBSD -CURRENT and Fedora 30 with
acpi=force
, the only device that was recognized by the OS is the ASMedia SATA controller (1B21:0612
). All the other things I've tried — Intel igb NIC, Mellanox CX2 NIC, LSI SAS HBA, AMD Radeon GPU — are completely invisible to the OS in ACPI mode (adding debug prints to FreeBSD revealed that vendor/device ID registers come out asffff
).Linux with devicetree (with
host-generic
) does recognize the igb NIC.EFI
pci
command output: https://gist.github.com/myfreeweb/8b09f1c93ee9572aef01513ba9bf756f — only the assmedia card shows a non-zero command register, and for some reason it's a "Legacy PCI Express Endpoint".I've tried different firmware: my own upstream build, both upstream and 18.09.4 from wiki, same results.
@semihalf-wojtas-marcin
The text was updated successfully, but these errors were encountered: