From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754051Ab3FTHJV (ORCPT ); Thu, 20 Jun 2013 03:09:21 -0400 Received: from mailout4.samsung.com ([203.254.224.34]:59211 "EHLO mailout4.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753707Ab3FTHJR (ORCPT ); Thu, 20 Jun 2013 03:09:17 -0400 X-AuditID: cbfee690-b7f6f6d00000740c-72-51c2aa9bb70a From: Jingoo Han To: "'Kukjin Kim'" , "'Bjorn Helgaas'" Cc: linux-samsung-soc@vger.kernel.org, linux-pci@vger.kernel.org, devicetree-discuss@lists.ozlabs.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, "'Grant Likely'" , "'Andrew Murray'" , "'Thomas Petazzoni'" , "'Thierry Reding'" , "'Jason Gunthorpe'" , Arnd Bergmann , "'Surendranath Gurivireddy Balla'" , "'Siva Reddy Kallam'" , "'Thomas Abraham'" , "'Jingoo Han'" Subject: [PATCH V6 0/3] PCIe support for Samsung Exynos5440 SoC Date: Thu, 20 Jun 2013 16:09:15 +0900 Message-id: <00bf01ce6d85$12b542b0$381fc810$@samsung.com> MIME-version: 1.0 Content-type: text/plain; charset=us-ascii Content-transfer-encoding: 7bit X-Mailer: Microsoft Outlook 14.0 Thread-index: Ac5thLiOuZGscBLpS5alA3yFFEV14Q== Content-language: ko X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprLKsWRmVeSWpSXmKPExsVy+t8zQ93Zqw4FGkxYqmnR/H87q8XfScfY LZY0ZVgcmP2Q1eLVmY1sFpcXXmK1+H7D1KJ3wVU2i02Pr7FaXN41h83i7LzjbBYzzu9jsljR tJXRYvHF5cwWu1cuYbE4NmMJo8XTB01MDoIea+atYfT4/WsSo0fflKtsHk82XWT0WLCp1OPO tT1sHpuX1Hucn7GQ0eP7jl6ggi2rGD1+vtTx+LxJLoAnissmJTUnsyy1SN8ugStjw/MG1oKp bYwVbWeWsjcwbo/rYuTkkBAwkejY/Z8JwhaTuHBvPVsXIxeHkMAyRomJ964zwhT9PrKGGSIx nVHi0KGbjBDOL0aJ2Us/sYBUsQmoSXz5cpgdxBYR8Je4drWVBaSIWWAKq0Trnj5mkISwgL1E z7NGMJtFQFVi+d6pYA28ApYSuzfOYoKwBSV+TL4HNpRZQEti/c7jTBC2vMTmNW+ZIU5SkNhx 9jUjxDI9iTdzdrJD1IhI7HvxDuw6CYETHBJ/Xh1lh1gmIPFt8iGgoRxACVmJTQeg5khKHFxx g2UCo9gsJKtnIVk9C8nqWUhWLGBkWcUomlqQXFCclF5kolecmFtcmpeul5yfu4kRkjQm7GC8 d8D6EGMy0PqJzFKiyfnApJNXEm9obGZkYWpiamxkbmlGmrCSOK96i3WgkEB6YklqdmpqQWpR fFFpTmrxIUYmDk6pBsbulXGBflKLTz+YuDJy7uOFrc8CHxp7qs8vanryyCvifO2ntDlyLFeb OyRaH1xjlQqaHq3zrOLVt+P65feENoa6F+vc/ZFWnr5Q36Pn37pLSVdbvxZXTk7K5H4a5DrN ev3SvHKppJv18vocN57Kd01UltFk/GbF/dDo+4rD7/dc1f07ofjvwlglluKMREMt5qLiRADJ AGsnMAMAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrFKsWRmVeSWpSXmKPExsVy+t9jQd3Zqw4FGtz4oGDR/H87q8XfScfY LZY0ZVgcmP2Q1eLVmY1sFpcXXmK1+H7D1KJ3wVU2i02Pr7FaXN41h83i7LzjbBYzzu9jsljR tJXRYvHF5cwWu1cuYbE4NmMJo8XTB01MDoIea+atYfT4/WsSo0fflKtsHk82XWT0WLCp1OPO tT1sHpuX1Hucn7GQ0eP7jl6ggi2rGD1+vtTx+LxJLoAnqoHRJiM1MSW1SCE1Lzk/JTMv3VbJ OzjeOd7UzMBQ19DSwlxJIS8xN9VWycUnQNctMwfoLyWFssScUqBQQGJxsZK+HaYJoSFuuhYw jRG6viFBcD1GBmggYR1jxobnDawFU9sYK9rOLGVvYNwe18XIySEhYCLx+8gaZghbTOLCvfVs XYxcHEIC0xklDh26yQjh/GKUmL30EwtIFZuAmsSXL4fZQWwRAX+Ja1dbWUCKmAWmsEq07ukD GyUsYC/R86wRzGYRUJVYvncqWAOvgKXE7o2zmCBsQYkfk++BDWUW0JJYv/M4E4QtL7F5zVuo kxQkdpx9zQixTE/izZyd7BA1IhL7XrxjnMAoMAvJqFlIRs1CMmoWkpYFjCyrGEVTC5ILipPS cw31ihNzi0vz0vWS83M3MYJT0jOpHYwrGywOMQpwMCrx8GpcPhgoxJpYVlyZe4hRgoNZSYQ3 dc6hQCHelMTKqtSi/Pii0pzU4kOMyUCfTmSWEk3OB6bLvJJ4Q2MTMyNLIzMLIxNzc9KElcR5 D7RaBwoJpCeWpGanphakFsFsYeLglGpgDOGwC9mtubMq4OsswcdBpZssuPWOOim5dD8psFRz e8F069ql/qndfJndS953nGSbbCoceGPeildXxaMbOl9U/3Jq5PIXf5Hn8qbF28p81a+Ub7fb Y05ul3Bt3WKQb80jtWZC/Pc4r5vbL/3fLGDnyxY6qTl8zeeLNiWyuec/55ambGhYKR6hxFKc kWioxVxUnAgAq1oCZY0DAAA= DLP-Filter: Pass X-MTR: 20000000000000000@CPGS X-CFilter-Loop: Reflected Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi, This series of patches introduces PCIe support for Samsung Exynos5440, and is based on the latest 'linux-next' tree (20130619). These patches was tested with Intel e1000e LAN card on Exynos5440. This PATCH v6 follows: * PATCH v5, sent on June, 13th 2013 * PATCH v4, sent on June, 12th 2013 * PATCH v3, sent on June, 6th 2013 * PATCH v2, sent on March, 23rd 2013 * PATCH v1, sent on March, 4th 2013 Changes between v5 and v6: * Replaced phys_addr_t with u64 for physical addresses of regions * Removed unnecessary inbound functions * Added handling of io_offset, mem_offset as Arnd Bergmann guided * Fixed calculating 'io' resource * Removed module_exit() in order not to allow module unload Changes between v4 and v5: * Used gpio binding in DT * Increased the size of MEM region to 512 MB including CFG and IO regions in DT * Reduced the size of CFG region to 4096 byte in DT * Used the size of MEM region instead of hard-coded in_mem_size * Fixed exynos_pcie_prog_viewport_{mem/io}_{outbound/inbound} functions to use both translated addresses and untranslated addresses * Replaced pci_add_resource_offset() with pci_add_resource() * Added values from the DT individually to io_base, mem_base Changes between v3 and v4: * Added support for multi domains as reviewed by Jason Gunthorpe, and Arnd Bergmann. * Fixed both MEM space and I/O space in DT. * Removed redundant physical addresses from struct pcie_port, added devm_ioremap_resource() to make add_pcie_port() simpler. * Added clock names and clock enable/disable. Changes between v2 and v3: * Rebased on the top of 3.10-rc4 * Updated names of PCIe PHY registers Changes between v1 and v2: * Moved Exynos PCIe driver from arch/arm to drivers/pci/host. * Added DT properties of PCI DT standard. Here is the lspci -vv output. 0000:00:00.0 PCI bridge: Samsung Electronics Co Ltd Device a549 (rev 01) (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=fast >TAbort- SERR- TAbort- Reset- FastB2B- PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn- Capabilities: [40] Power Management version 3 Flags: PMEClk- DSI- D1+ D2- AuxCurrent=375mA PME(D0+,D1+,D2-,D3hot+,D3cold-) Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME- Capabilities: [50] MSI: Enable- Count=1/1 Maskable- 64bit+ Address: 0000000000000000 Data: 0000 Capabilities: [70] Express (v2) Root Port (Slot-), MSI 00 DevCap: MaxPayload 512 bytes, PhantFunc 0, Latency L0s <64ns, L1 <1us ExtTag+ RBE+ FLReset- DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported- RlxdOrd+ ExtTag+ PhantFunc- AuxPwr- NoSnoop- MaxPayload 128 bytes, MaxReadReq 512 bytes DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend- LnkCap: Port #0, Speed 5GT/s, Width x4, ASPM L0s L1, Latency L0 <64ns, L1 <2us ClockPM- Surprise- LLActRep+ BwNot+ LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk- ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt- LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk- DLActive+ BWMgmt+ ABWMgmt- RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna- CRSVisible- RootCap: CRSVisible- RootSta: PME ReqID 0000, PMEStatus- PMEPending- DevCap2: Completion Timeout: Range ABCD, TimeoutDis+ ARIFwd- DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis- ARIFwd- LnkCtl2: Target Link Speed: 5GT/s, EnterCompliance- SpeedDis-, Selectable De-emphasis: -6dB Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS- Compliance De-emphasis: -6dB LnkSta2: Current De-emphasis Level: -3.5dB, EqualizationComplete-, EqualizationPhase1- EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest- Capabilities: [100 v2] Advanced Error Reporting UESta: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol- UEMsk: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol- UESvrt: DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol- CESta: RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr- CEMsk: RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+ AERCap: First Error Pointer: 00, GenCap+ CGenEn- ChkCap+ ChkEn- Capabilities: [148 v1] Virtual Channel Caps: LPEVC=0 RefClk=100ns PATEntryBits=1 Arb: Fixed- WRR32- WRR64- WRR128- Ctrl: ArbSelect=Fixed Status: InProgress- VC0: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans- Arb: Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256- Ctrl: Enable+ ID=0 ArbSelect=Fixed TC/VC=ff Status: NegoPending- InProgress- Kernel driver in use: pcieport 0000:01:00.0 Ethernet controller: Intel Corporation 82574L Gigabit Network Connection Subsystem: Intel Corporation Gigabit CT Desktop Adapter Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr+ Stepping- SERR+ FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- SERR- TAbort- SERR- TAbort- Reset- FastB2B- PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn- Capabilities: [40] Power Management version 3 Flags: PMEClk- DSI- D1+ D2- AuxCurrent=375mA PME(D0+,D1+,D2-,D3hot+,D3cold-) Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME- Capabilities: [50] MSI: Enable- Count=1/1 Maskable- 64bit+ Address: 0000000000000000 Data: 0000 Capabilities: [70] Express (v2) Root Port (Slot-), MSI 00 DevCap: MaxPayload 512 bytes, PhantFunc 0, Latency L0s <64ns, L1 <1us ExtTag+ RBE+ FLReset- DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported- RlxdOrd+ ExtTag+ PhantFunc- AuxPwr- NoSnoop- MaxPayload 128 bytes, MaxReadReq 512 bytes DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend- LnkCap: Port #0, Speed 5GT/s, Width x4, ASPM L0s L1, Latency L0 <64ns, L1 <2us ClockPM- Surprise- LLActRep+ BwNot+ LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk- ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt- LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk- DLActive+ BWMgmt+ ABWMgmt- RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna- CRSVisible- RootCap: CRSVisible- RootSta: PME ReqID 0000, PMEStatus- PMEPending- DevCap2: Completion Timeout: Range ABCD, TimeoutDis+ ARIFwd- DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis- ARIFwd- LnkCtl2: Target Link Speed: 5GT/s, EnterCompliance- SpeedDis-, Selectable De-emphasis: -6dB Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS- Compliance De-emphasis: -6dB LnkSta2: Current De-emphasis Level: -3.5dB, EqualizationComplete-, EqualizationPhase1- EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest- Capabilities: [100 v2] Advanced Error Reporting UESta: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol- UEMsk: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol- UESvrt: DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol- CESta: RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr- CEMsk: RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+ AERCap: First Error Pointer: 00, GenCap+ CGenEn- ChkCap+ ChkEn- Capabilities: [148 v1] Virtual Channel Caps: LPEVC=0 RefClk=100ns PATEntryBits=1 Arb: Fixed- WRR32- WRR64- WRR128- Ctrl: ArbSelect=Fixed Status: InProgress- VC0: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans- Arb: Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256- Ctrl: Enable+ ID=0 ArbSelect=Fixed TC/VC=ff Status: NegoPending- InProgress- Kernel driver in use: pcieport 0001:01:00.0 Ethernet controller: Intel Corporation 82574L Gigabit Network Connection Subsystem: Intel Corporation Gigabit CT Desktop Adapter Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr+ Stepping- SERR+ FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- SERR-