Hi Eitan,

I know the root cause for this issue now. The parent bridge is also
re-programed in pci_autoconfig, but is just assigned with 1M MEM space
by default which is less than the requesting 8M MEM size from child
[4/0/0]. So [4/0/0] is failed to be reprogrammed.

  Apr 14 13:58:05 Sol-232 pci_autoconfig: [ID 596873 kern.info] NOTICE:
  reprogram mem-range on ppb[0/e/0]: 0x80000000 ~ 0x800fffff
  Apr 14 13:58:05 Sol-232 pci_autoconfig: [ID 516285 kern.warning]
  WARNING: failed to program mem space [4/0/0] b...@0x10 length 0x800000

I'll sent you a binary to try and file CR accordingly. Stay tuned.

Regards,
Kerry

Eitan Eliahu wrote:
I don't know why the scanpci names these bars as BAR2 and 4.
Attached is the full output of the scanpci command. It looks like one of
the BARs is missing (BAR0 with size of 0x7fffff). BASE4 is the MSI-X
vector.

Here the configuration space for this device on the Windows OS:
Common Header:
00: VendorID 17d5 02: DeviceID 5833
    04: Command        0546 MemSpaceEn BusInitiate PERREn SERREn
InterruptDis 06: Status 0010 CapList 08: RevisionID 01
    09: ProgIF         00
    0a: SubClass       00 Ethernet Controller
    0b: BaseClass      02 Network Controller
0c: CacheLineSize 0010 BurstDisabled 0d: LatencyTimer 00
    0e: HeaderType     00
    0f: BIST           80
    10: BAR0           d880000c
    14: BAR1           00000000
    18: BAR2           d87ff00c
    1c: BAR3           00000000
    20: BAR4           d87fec0c
    24: BAR5           00000000
    28: CBCISPtr       00000000
    2c: SubSysVenID    17d5
    2e: SubSysID       6031
    30: ROMBAR         00000000
    34: CapPtr         40
    3c: IntLine        00
    3d: IntPin         01
    3e: MinGnt         00
    3f: MaxLat         00
Device Private:
    40: 7e237001 00000000 00000000 00000000
    50: 01860005 00000000 00000000 00000000
    60: 00000000 0000000f 00000000 00000000
    70: 1001a010 10008345 00002034 00112c81
    80: 30810000 00000000 00000000 00000000
    90: 00000000 0000001f 00000000 00000000
    a0: 8043c011 00000002 00000802 00000000
    b0: 00000000 00000000 00000000 00000000
    c0: 807c5003 00000000 00000000 00000000
    d0: 00000000 00000000 00000000 00000000
    e0: 00000000 00000000 00000000 00000000
    f0: 00000000 00000000 00000000 00000000

Thanks,
Eitan

-----Original Message-----
From: [email protected] [mailto:[email protected]] Sent: Wednesday, April 22, 2009 10:42 AM
To: Eitan Eliahu
Cc: Gireesh Nagabhushana; [email protected]
Subject: Re: [driver-discuss] OpenSOlaris build 110 - problem with
ddi_regs_map_setup() on x86

I also need the info of other devices, pls sent me the *whole*
result of the "scanpci -v" result. Since [4/0/0] are requesting
8M size MEM space, I want to make sure if such size is available at
its parent bridge or not.
BTW, I saw the device's BASE2/BASE4 are assigned with valid value.
What's the difference between BASE0 and BASE2/BASE4 in the device h/w
spec.

Regards,
Kerry

Eitan Eliahu wrote:
Please consider only this warning message:
WARNING: failed to program mem space [4/0/0] b...@0x10 length 0x800000
For the device 0x5833, bus=0, dev=0 and func=0.
Thanks,
Eitan

-----Original Message-----
From: Eitan Eliahu Sent: Wednesday, April 22, 2009 10:26 AM
To: '[email protected]'; Gireesh Nagabhushana
Cc: [email protected]
Subject: RE: [driver-discuss] OpenSOlaris build 110 - problem with
ddi_regs_map_setup() on x86


Hi Kerry,
Yes, Girresh and I dealing with the same issue.
Here is the output for the scanpci command on this device:
pci bus 0x0004 cardnum 0x00 function 0x00: vendor 0x17d5 device 0x5833
 S2io Inc. Device unknown
 CardVendor 0x17d5 card 0x6030 (S2io Inc., Card unknown)
  STATUS    0x0010  COMMAND 0x0046
  CLASS     0x02 0x00 0x00  REVISION 0x01
  BIST      0x80  HEADER 0x00  LATENCY 0x00  CACHE 0x10
  BASE2     0xd8002000 SIZE 4096  MEM PREFETCHABLE
  BASE4     0xd8000100 SIZE 256  MEM PREFETCHABLE
  BASEROM   0x00000000  addr 0x00000000
  MAX_LAT   0x00  MIN_GNT 0x00  INT_PIN 0x01  INT_LINE 0x0b
Thank you,
Eitan

-----Original Message-----
From: [email protected] [mailto:[email protected]] Sent: Wednesday, April 22, 2009 10:23 AM
To: Eitan Eliahu; Gireesh Nagabhushana
Cc: [email protected]
Subject: Re: [driver-discuss] OpenSOlaris build 110 - problem with
ddi_regs_map_setup() on x86

Could you post the '/usr/X11/bin/scanpci -v' result? And what is your
device ID?

I saw you mentioned:
   WARNING: failed to program mem space [0/31/3] b...@0x10 length 0x100
While Gireesh mentioned:
   WARNING: failed to program mem space [4/0/0] b...@0x10 length
0x800000
Are you two talking about same issue or not?

Regards,
Kerry


Eitan Eliahu wrote:
We found that whenever the following message is displayed the driver
fails to read the mapped memory for the first BAR.
"WARNING: failed to program mem space [0/31/3] b...@0x10 length 0x100"


This warning message is output here:

http://src.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/uts/intel/
io/pci/pci_boot.c#2159
2027 base = (uint_t)memlist_find(io_res, len, len);
2028 if (base != 0) {
2029    memlist_insert(io_res_used, base, len);
2030    /* XXX need to worry about 64-bit? */
2031    pci_putl(bus, dev, func, offset,
2032        base | type);
2033    base = pci_getl(bus, dev, func, offset);
2034    base &= PCI_BASE_IO_ADDR_M;
2035 }
2036 if (base == 0) {
2037    cmn_err(CE_WARN, "failed to program"
2038        " IO space [%d/%d/%d] b...@0x%x"
2039        " length 0x%x",
2040        bus, dev, func, offset, len);

Thanks,
Eitan
_______________________________________________
driver-discuss mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/driver-discuss

Reply via email to