Re: [SunPCI driver] need info for the PCI-PCI bridge

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 29 Nov 2011, corentin.labbe wrote:

> hello
> 
> I have some sunpci card and I want to made a driver for it.
> It is a card which includes an x86 processor, RAM, expansion ports, and an onboard graphics controller, allowing complete x86 operating environments on Sun Workstations.
> 
> My first goal is to be able to see all devices present on this card and use it under Linux.
> My second goal is to use it like we can use it under Solaris.
> 
> When plugged, I can see it with prtconf
>         Node 0xf0092a38
>             .node:  f0092a38
>             interrupt-map:
> 00010000.00000000.00000000.00000001.f0064548.00000019.00010000.00000000.00000000.00000002.f0064548.00000002.00010000.00000000.00000000.00000003.f0064548.00000018.00010000.00000000.00000000.00000004.f0064548.00000008.00010800.00000000.00000000.00000001.f0064548.0000000a.00010800.00000000.00000000.00000002.f0064548.0000001b.00010800.00000000.00000000.00000003.f0064548.0000000b.00010800.00000000.00000000.00000004.f0064548.0000001a.00011000.00000000.00000000.00000001.f0064548.00000015.00011000.00000000.00000000.00000002.f0064548.00000005.00011000.00000000.00000000.00000003.f0064548.00000014.00011000.00000000.00000000.00000004.f0064548.00000004
>             interrupt-map-mask:  00fff800.00000000.00000000.00000007
>             ranges:
>             bus-range:  00000001.00000001
>             compatible:  70636931.3031312c.32342e33.00706369.31303131.2c323400.70636963.6c617373.2c303630.34303000.70636963.6c617373.2c303630.3400
>             reg:  00002800.00000000.00000000.00000000.00000000
>             #address-cells:  00000003
>             #size-cells:  00000002
>             device_type: 'pci'
>             name: 'pci'
>             fast-back-to-back:
>             devsel-speed:  00000001
>             class-code:  00060400
>             latency-timer:  00000040
>             cache-line-size:  00000010
>             revision-id:  00000003
>             device-id:  00000024
>             vendor-id:  00001011
> 
> and lspci
> 00:05.0 PCI bridge: Digital Equipment Corporation DECchip 21152 (rev 03) (prog-if 00 [Normal decode])
> 	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> 	Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> 	Latency: 64, Cache Line Size: 64 bytes
> 	Region 0: [virtual] Memory at fffffe0100000000 (32-bit, non-prefetchable) [size=1]
> 	Region 1: [virtual] Memory at fffffe0100000000 (32-bit, non-prefetchable) [size=1]
> 	Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
> 	I/O behind bridge: 00001000-00000fff
> 	Memory behind bridge: 04000000-03ffffff
> 	Prefetchable memory behind bridge: fffffffffff00000-00000000000fffff
> 	Secondary status: 66MHz- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ <SERR- <PERR-
> 	[virtual] Expansion ROM at fffffe0100000000 [disabled] [size=1]
> 	BridgeCtl: Parity- SERR- NoISA- VGA- MAbort- >Reset- FastB2B-
> 		PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
> 	Capabilities: [dc] Power Management version 1
> 		Flags: PMEClk- DSI- D1- D2- AuxCurrent=220mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
> 		Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> 		Bridge: PM- B3+
> 
> You can see that ranges for I/O, memory and prefetchable memory are unusable.
> 
> I think this is because the value "ranges" in OF(open-firmware) is NULL.
> And so of_scan_pci_bridge() use pci_cfg_fake_ranges() for getting limits values directly from the sunpci card.
> But theses values are 0.
> 
> So I have some questions
> - Does setting manually IO/mem limits in the card (via a pci_write_config_word(dev, PCI_MEMORY_LIMIT, somevalue); for example) works ? and which values to set ? (base + 0xfff/0xfffff ?)
> - How can OpenFirmware could be aware of the IO/memory ranges of the sunpci cards ? perhaps via an OBP command at start ?
> 
> 
> Thanks in advance
> 
> --
> To unsubscribe from this list: send the line "unsubscribe sparclinux" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 

Hi,

You should probably be more specific on which version of the SunPCI-board
your are using, as there are at least 4 (?) versions.

I've been playing around with the first generation of pci-based
SunPCI-boards. And have partially enumerated the internal bus via the
DEC 21554 non-transparent PCI-PCI bridge.

I'm a bit pusseled about this Dec/Intel 21152 transparent PCI-PCI bridge
as it should in theory not be suited for this application. And since it
is transparent, the PCI devices located on the SunPCI board should
already show up in lspci, starting with 01:XX.X. Are you sure that your
looking at the correct device in lspci ?

-
Kjetil Oftedal

--
To unsubscribe from this list: send the line "unsubscribe sparclinux" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Kernel Development]     [DCCP]     [Linux ARM Development]     [Linux]     [Photo]     [Yosemite Help]     [Linux ARM Kernel]     [Linux SCSI]     [Linux x86_64]     [Linux Hams]

  Powered by Linux