On Sat, 18 Nov 2023 20:14:32 +0100 BERTRAND Joël <joel.bertr...@systella.fr> wrote:
> Maybe something is broken in recent changes in > src/sys/dev/pci/pci_resource.c, pcidevs_data.h or pcidevs.h. Since the attach function runs it does not seems to be a pcidevs problem. pci_resource.c is only used on ARM platforms. You can find the equivalent x86 code in pci_map.c. It has not been changed recently from what I can tell. > pci_mem_find: expected mem type 00000004, found 00000000 This error means we expected a 64-bit mem range assigned to the card by the ACPI firmware but found a 32-bit range. It is a strange error to get in this context because the card according to the config space dump clearly only has a 32-bit BAR so it has to use 32-bit bus space. We can reach that situation if the re driver incorrectly tried to map the BAR with PCI_MAPREG_MEM_TYPE_64BIT. I suspect the regression originates with an acpica update and some firmware bug might be a prerequisite to trigger it. You'll need to figure out why the expected mem type check fires. A good place to start digging is to dissect this code and find out what the value retured by pci_mapreg_type is: https://github.com/NetBSD/src/blob/d7465f61f231e4328d26a5628c5ccb266f168f3a/sys/dev/pci/if_re_pci.c#L210 Since you mentioned you have lots of other network adapters it might also be that the system has ran out of 32-bit bus space and is attempting to use 64-bit as a last resort.