Hello,

in drivers/pci/pci-uclass.c there is an optimization introduced with
commit fbde868 that breaks discovery of the second network device on a
88W9098 Murata 1XL module.

int pci_bind_bus_devices(struct udevice *bus)
{
...
if (only_one_child(bus) && (PCI_DEV(bdf) > 0))
  continue;

With this check active device 1.0.1 is never reached.

=> pci 1 long
Scanning PCI devices on bus 1

Found PCI device 01.00.00:
  vendor ID =                   0x1b4b
  device ID =                   0x2b43
  command register ID =         0x0006
  status register =             0x0010
  revision ID =                 0x03
  class code =                  0x02 (Network controller)
  sub class code =              0x00
  programming interface =       0x00
  cache line =                  0x08
  latency time =                0x00
  header type =                 0x80
  BIST =                        0x00
  base address 0 =              0x4000000c
  base address 1 =              0x00000000
  base address 2 =              0x4010000c
  base address 3 =              0x00000000
  base address 4 =              0x4012000c
  base address 5 =              0x00000000
  cardBus CIS pointer =         0x00000000
  sub system vendor ID =        0x1b4b
  sub system ID =               0x2b43
  expansion ROM base address =  0x00000000
  interrupt line =              0xff
  interrupt pin =               0x01
  min Grant =                   0x00
  max Latency =                 0x00

Found PCI device 01.00.01:
  vendor ID =                   0x1b4b
  device ID =                   0x2b44
  command register ID =         0x0006
  status register =             0x0010
  revision ID =                 0x03
  class code =                  0x02 (Network controller)
  sub class code =              0x00
  programming interface =       0x00
  cache line =                  0x08
  latency time =                0x00
  header type =                 0x80
  BIST =                        0x00
  base address 0 =              0x4020000c
  base address 1 =              0x00000000
  base address 2 =              0x40300004
  base address 3 =              0x00000000
  base address 4 =              0x4032000c
  base address 5 =              0x00000000
  cardBus CIS pointer =         0x00000000
  sub system vendor ID =        0x1b4b
  sub system ID =               0x2b44
  expansion ROM base address =  0x00000000
  interrupt line =              0xff
  interrupt pin =               0x02
  min Grant =                   0x00
  max Latency =                 0x00

Without preparation in u-boot the Linux kernel will detect the device, but
the driver fails to create the network interfaces.

The wifi card is using a M2 slot on a Layerscape LS1028a based board.

Best regards,
Jacco Braat

Reply via email to