From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1030211Ab3FTJbf (ORCPT ); Thu, 20 Jun 2013 05:31:35 -0400 Received: from mailout2.samsung.com ([203.254.224.25]:52267 "EHLO mailout2.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S965003Ab3FTJbb (ORCPT ); Thu, 20 Jun 2013 05:31:31 -0400 X-AuditID: cbfee691-b7fef6d000002d62-5c-51c2cbf0f8f6 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 V7 0/3] PCIe support for Samsung Exynos5440 SoC Date: Thu, 20 Jun 2013 18:31:28 +0900 Message-id: <00ca01ce6d98$f0ddb000$d2991000$@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: Ac5tmMszbUddCyhdRhyzP0M+M/GEcw== Content-language: ko X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprDKsWRmVeSWpSXmKPExsVy+t8zI90Ppw8FGkw9bmzR/H87q8XfScfY LZY0ZVgcmP2Q1eLVmY1sFpcXXmK1+H7D1KJ3wVU2i02Pr7FaXN41h83i7LzjbBYzzu9jsljR tJXRYvHF5cwWu1cuYbE4NmMJo8XTB01MDoIea+atYfT4/WsSo0fflKtsHk82XWT0WLCp1OPO tT1sHpuX1Hucn7GQ0eP7jl6ggi2rGD1+vtTx+LxJLoAnissmJTUnsyy1SN8ugSvj+9Ne9oKN 7YwVHXu2szYwrozvYuTkkBAwkZgx+xkzhC0mceHeerYuRi4OIYFljBKbrrxjgynqb9/OAmIL CSxilOi+rgtR9ItRYuG7F6wgCTYBNYkvXw6zg9giAv4S1662soAUMQtMYZVo3dMHtkJYwF7i 0aIfYEUsAqoS39fuBpvKK2Ap0d3ykBHCFpT4MfkeWJxZQEti/c7jTBC2vMTmNW+hTlWQ2HH2 NSPEMj2JzutL2CBqRCT2vXjHCLJYQuAMh8Thw1OZIZYJSHybfAhoKAdQQlZi0wGoOZISB1fc YJnAKDYLyepZSFbPQrJ6FpIVCxhZVjGKphYkFxQnpReZ6hUn5haX5qXrJefnbmKEpIyJOxjv H7A+xJgMtH4is5Rocj4w5eSVxBsamxlZmJqYGhuZW5qRJqwkzqveYh0oJJCeWJKanZpakFoU X1Sak1p8iJGJg1OqgdGVT+b+5ttJi+TCPvHPtFbfoaZusVLKxn9zRUDVjmCr6Ucm3pVunhsV 5HP5VWa09OOSaqtc5bnpi/KEuzsCUyUrJrBrizwLenmAm9fhzf71v8ODfp8R2hS2tm33ZaaC FXb1lrnea3rUrmpOOCq+TIgvsqrmzNWLWlw2Ex0zN7K7q1/eKsC2UYmlOCPRUIu5qDgRAIOV UW4vAwAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrJKsWRmVeSWpSXmKPExsVy+t9jAd0Ppw8FGtw4rm3R/H87q8XfScfY LZY0ZVgcmP2Q1eLVmY1sFpcXXmK1+H7D1KJ3wVU2i02Pr7FaXN41h83i7LzjbBYzzu9jsljR tJXRYvHF5cwWu1cuYbE4NmMJo8XTB01MDoIea+atYfT4/WsSo0fflKtsHk82XWT0WLCp1OPO tT1sHpuX1Hucn7GQ0eP7jl6ggi2rGD1+vtTx+LxJLoAnqoHRJiM1MSW1SCE1Lzk/JTMv3VbJ OzjeOd7UzMBQ19DSwlxJIS8xN9VWycUnQNctMwfoLyWFssScUqBQQGJxsZK+HaYJoSFuuhYw jRG6viFBcD1GBmggYR1jxvenvewFG9sZKzr2bGdtYFwZ38XIySEhYCLR376dBcIWk7hwbz0b iC0ksIhRovu6bhcjF5D9i1Fi4bsXrCAJNgE1iS9fDrOD2CIC/hLXrraygBQxC0xhlWjd08cM khAWsJd4tOgHWBGLgKrE97W7wTbwClhKdLc8ZISwBSV+TL4HFmcW0JJYv/M4E4QtL7F5zVtm iIsUJHacfc0IsUxPovP6EjaIGhGJfS/eMU5gFJiFZNQsJKNmIRk1C0nLAkaWVYyiqQXJBcVJ 6bmGesWJucWleel6yfm5mxjBCemZ1A7GlQ0WhxgFOBiVeHg1Lh8MFGJNLCuuzD3EKMHBrCTC mzrnUKAQb0piZVVqUX58UWlOavEhxmSgTycyS4km5wOTZV5JvKGxiZmRpZGZhZGJuTlpwkri vAdarQOFBNITS1KzU1MLUotgtjBxcEo1ME6Y/KBy92/e6TOdDtTWfPD9q6+jHRbp7/ZwWdCx +UWH/7YsZTY4Y7GNL4dZbl7S3R1ugvUCep9n7OS7MWWq/Y+nm4VuuLreE35uKRrSsNQrrXzj cYPVJxlfrV/9qXzV4eVcL2/fuKPFaHvXduFlg9VtbuGfZXR3zjAoWSt+c+kXi1qT+cGfzUOU WIozEg21mIuKEwGNVx3JjAMAAA== 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 v7 follows: * PATCH v6, sent on June, 20th 2013 * 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 v6 and v7: * Split ARM DT patch to two patches * Fixed node naming * Added Arnd's Acked-by 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-