Great Kerry!
Can you please let me know when this fix will be incorporated in the OS?
Thank you!
Eitan


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

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