All of lore.kernel.org
 help / color / mirror / Atom feed
* Re: [PATCH 2/2] PCI:designware:Fix iATU programming for cfg1, io and mem viewport
@ 2014-02-21  1:31 Jingoo Han
  2014-02-21  5:28 ` Kishon Vijay Abraham I
  0 siblings, 1 reply; 15+ messages in thread
From: Jingoo Han @ 2014-02-21  1:31 UTC (permalink / raw)
  To: Mohit KUMAR DCG, Kishon Vijay Abraham I
  Cc: Ajay KHANDELWAL, Bjorn Helgaas, spear-devel, linux-pci, Jingoo Han

T24gVGh1cnNkYXksIEZlYnJ1YXJ5IDIwLCAyMDE0IDEwOjM0IFBNLCBNb2hpdCBLVU1BUiBEQ0cg
d3JvdGU6DQo+IFRodXJzZGF5LCBGZWJydWFyeSAyMCwgMjAxNCA1OjQzIFBNLCBLaXNob24gVmlq
YXkgQWJyYWhhbSBJIHdyb3RlOg0KPiA+IE9uIFRodXJzZGF5IDIwIEZlYnJ1YXJ5IDIwMTQgMDU6
MjggUE0sIE1vaGl0IEtVTUFSIERDRyB3cm90ZToNCj4gPiA+IE9uIFRodXJzZGF5LCBGZWJydWFy
eSAyMCwgMjAxNCA1OjA4IFBNLCBLaXNob24gVmlqYXkgQWJyYWhhbSBJIHdyb3RlOg0KPiA+ID4+
IE9uIFRodXJzZGF5IDIwIEZlYnJ1YXJ5IDIwMTQgMTA6NTIgQU0sIE1vaGl0IEt1bWFyIHdyb3Rl
Og0KPiA+ID4+PiBUaGlzIHBhdGNoIGNvcnJlY3QgaUFUVSBwcm9ncmFtbWluZyBmb3IgY2ZnMSwg
aW8gYW5kIG1lbSB2aWV3cG9ydC4NCj4gPiA+Pj4gRW5hYmxlIEFUVSBvbmx5IGFmdGVyIGNvbmZp
Z3VyaW5nIGl0Lg0KPiA+ID4+DQo+ID4gPj4gRG9lcyB0aGlzIHBhdGNoIGFjdHVhbGx5IGZpeGVz
IGRldmljZSBlbnVtZXJhdGlvbiBiZWhpbmQgYSBQQ0llLXBjaQ0KPiA+ID4+IGJyaWRnZSBvciB0
aGlzIGlzIG1vcmUgb2YgY2xlYW5pbmcgdXAgdGhlIHNlcXVlbmNlPw0KPiA+ID4+DQo+ID4gPiAt
IFRoaXMgcGF0Y2ggY29ycmVjdHMgQVRVIHByb2dyYW1taW5nIHNlcXVlbmNlLiBJIGFtIG5vdCBh
d2FyZSBvZiBhbnkNCj4gPiA+IHN1Y2ggaXNzdWUgd2l0aCBjdXJyZW50IGRyaXZlci4gUGxzIHNw
ZWNpZnkgIHdoaWNoIGJyaWRnZSBkbyB5b3UgdXNlIGluIHlvdXINCj4gPiBzZXR1cCBhbmQgd2hh
dCBpcyB0aGUgcHJvYmxlbT8NCj4gPg0KPiA+IEkgdHJpZWQgd2l0aCBjYXJkIFsxXSwgaXQgaGFk
IGEgUExYIGJyaWRnZSBjaGlwLiBJdCBjb3VsZG4ndCByZWFkIHRoZSBjb25maWd1cmF0aW9uDQo+
ID4gc3BhY2Ugb2YgdGhlIGRldmljZSBjb25uZWN0ZWQgdG8gdGhlIFBDSWUtUENJIGJyaWRnZS4N
Cj4gPg0KPiAtIEkgZG9uoa90IGhhdmUgdGhlIG1lbnRpb25lZCBjYXJkIHdpdGggbWUsIGJ1dCB3
ZSBhcmUgc3VjY2Vzc2Z1bGx5IHVzaW5nIExlY3JveSBQVEMgc3dpdGNoDQo+ICBhbmQgU0lMMzEy
NC0yQ0IzNjQgUENJLVggY29tcGF0aWJsZSBSQUlEIGNhcmQuDQo+IA0KPiBNYXkgYmUgSmluZ29v
IG9yIG90aGVycyBjYW4gYWxzbyBjb21tZW50IGlmIHRoZXkgYXJlIHVzaW5nIFBDSSBicmlkZ2Ug
Y2FyZC4NCj4gDQoNCkhpIEtpc2hvbiwNCk5pY2UgdG8gc2VlIHlvdSBhZ2Fpbi4gOi0pDQoNCkkg
ZG9uJ3QgaGF2ZSBQQ0llLVBDSSBicmlkZ2UuIEN1cnJlbnRseSwgSSBjYW4gdGVzdCBFdGhlcm5l
dCBjYXJkcw0KYW5kIFNBVEEgY2FyZHMuDQoNCkJ5IHRoZSB3YXksIGFjY29yZGluZyB0byB0aGUg
RGF0YXNoZWV0LCBQQ0lFX0FUVV9DUjEgc2V0dGluZyBjYW4gYmUNCmZvbGxvd2VkIGJ5IFBDSUVf
QVRVX0NSMiBzZXR0aW5nIGFzIGJlbG93Og0KDQogIDEuIFNldHVwIHRoZSBJbmRleCBSZWdpc3Rl
ci4NCiAgMi4gU2V0dXAgdGhlIFJlZ2lvbiBCYXNlIGFuZCBMaW1pdCBBZGRyZXNzIFJlZ2lzdGVy
cy4NCiAgMy4gU2V0dXAgdGhlIFRhcmdldCBBZGRyZXNzIFJlZ2lzdGVycy4NCiAgNC4gQ29uZmln
dXJlIHRoZSByZWdpb24gdGhyb3VnaCB0aGUgUmVnaW9uIENvbnRyb2wgMSBSZWdpc3Rlci4NCiAg
NS4gRW5hYmxlIHRoZSByZWdpb24uDQoNClRodXMsIGhvdyBhYm91dCB0ZXN0aW5nIHRoZSBmb2xs
b3dpbmcgcGF0Y2g/DQpJIGFsc28gbW92ZWQgUENJRV9BVFVfQ1IxIGFzIHdlbGwgYXMgUENJRV9B
VFVfQ1IyLg0KDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvaG9zdC9wY2llLWRlc2lnbndhcmUu
YyBiL2RyaXZlcnMvcGNpL2hvc3QvcGNpZS1kZXNpZ253YXJlLmMNCmluZGV4IDZkMjNkOGMuLjQw
MTdhYmYgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL3BjaS9ob3N0L3BjaWUtZGVzaWdud2FyZS5jDQor
KysgYi9kcml2ZXJzL3BjaS9ob3N0L3BjaWUtZGVzaWdud2FyZS5jDQpAQCAtNTIxLDE0ICs1MjEs
MTQgQEAgc3RhdGljIHZvaWQgZHdfcGNpZV9wcm9nX3ZpZXdwb3J0X2NmZzEoc3RydWN0IHBjaWVf
cG9ydCAqcHAsIHUzMiBidXNkZXYpDQogICAgICAgIC8qIFByb2dyYW0gdmlld3BvcnQgMSA6IE9V
VEJPVU5EIDogQ0ZHMSAqLw0KICAgICAgICBkd19wY2llX3dyaXRlbF9yYyhwcCwgUENJRV9BVFVf
UkVHSU9OX09VVEJPVU5EIHwgUENJRV9BVFVfUkVHSU9OX0lOREVYMSwNCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgUENJRV9BVFVfVklFV1BPUlQpOw0KLSAgICAgICBkd19wY2llX3dyaXRlbF9y
YyhwcCwgUENJRV9BVFVfVFlQRV9DRkcxLCBQQ0lFX0FUVV9DUjEpOw0KLSAgICAgICBkd19wY2ll
X3dyaXRlbF9yYyhwcCwgUENJRV9BVFVfRU5BQkxFLCBQQ0lFX0FUVV9DUjIpOw0KICAgICAgICBk
d19wY2llX3dyaXRlbF9yYyhwcCwgcHAtPmNmZzFfYmFzZSwgUENJRV9BVFVfTE9XRVJfQkFTRSk7
DQogICAgICAgIGR3X3BjaWVfd3JpdGVsX3JjKHBwLCAocHAtPmNmZzFfYmFzZSA+PiAzMiksIFBD
SUVfQVRVX1VQUEVSX0JBU0UpOw0KICAgICAgICBkd19wY2llX3dyaXRlbF9yYyhwcCwgcHAtPmNm
ZzFfYmFzZSArIHBwLT5jb25maWcuY2ZnMV9zaXplIC0gMSwNCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgUENJRV9BVFVfTElNSVQpOw0KICAgICAgICBkd19wY2llX3dyaXRlbF9yYyhwcCwgYnVz
ZGV2LCBQQ0lFX0FUVV9MT1dFUl9UQVJHRVQpOw0KICAgICAgICBkd19wY2llX3dyaXRlbF9yYyhw
cCwgMCwgUENJRV9BVFVfVVBQRVJfVEFSR0VUKTsNCisgICAgICAgZHdfcGNpZV93cml0ZWxfcmMo
cHAsIFBDSUVfQVRVX1RZUEVfQ0ZHMSwgUENJRV9BVFVfQ1IxKTsNCisgICAgICAgZHdfcGNpZV93
cml0ZWxfcmMocHAsIFBDSUVfQVRVX0VOQUJMRSwgUENJRV9BVFVfQ1IyKTsNCiB9DQoNCiBzdGF0
aWMgdm9pZCBkd19wY2llX3Byb2dfdmlld3BvcnRfbWVtX291dGJvdW5kKHN0cnVjdCBwY2llX3Bv
cnQgKnBwKQ0KQEAgLTUzNiw4ICs1MzYsNiBAQCBzdGF0aWMgdm9pZCBkd19wY2llX3Byb2dfdmll
d3BvcnRfbWVtX291dGJvdW5kKHN0cnVjdCBwY2llX3BvcnQgKnBwKQ0KICAgICAgICAvKiBQcm9n
cmFtIHZpZXdwb3J0IDAgOiBPVVRCT1VORCA6IE1FTSAqLw0KKyAgICAgICBkd19wY2llX3dyaXRl
bF9yYyhwcCwgUENJRV9BVFVfRU5BQkxFLCBQQ0lFX0FUVV9DUjIpOw0KIH0NCg0KIHN0YXRpYyB2
b2lkIGR3X3BjaWVfcHJvZ192aWV3cG9ydF9tZW1fb3V0Ym91bmQoc3RydWN0IHBjaWVfcG9ydCAq
cHApDQpAQCAtNTM2LDggKzUzNiw2IEBAIHN0YXRpYyB2b2lkIGR3X3BjaWVfcHJvZ192aWV3cG9y
dF9tZW1fb3V0Ym91bmQoc3RydWN0IHBjaWVfcG9ydCAqcHApDQogICAgICAgIC8qIFByb2dyYW0g
dmlld3BvcnQgMCA6IE9VVEJPVU5EIDogTUVNICovDQogICAgICAgIGR3X3BjaWVfd3JpdGVsX3Jj
KHBwLCBQQ0lFX0FUVV9SRUdJT05fT1VUQk9VTkQgfCBQQ0lFX0FUVV9SRUdJT05fSU5ERVgwLA0K
ICAgICAgICAgICAgICAgICAgICAgICAgICBQQ0lFX0FUVV9WSUVXUE9SVCk7DQotICAgICAgIGR3
X3BjaWVfd3JpdGVsX3JjKHBwLCBQQ0lFX0FUVV9UWVBFX01FTSwgUENJRV9BVFVfQ1IxKTsNCi0g
ICAgICAgZHdfcGNpZV93cml0ZWxfcmMocHAsIFBDSUVfQVRVX0VOQUJMRSwgUENJRV9BVFVfQ1Iy
KTsNCiAgICAgICAgZHdfcGNpZV93cml0ZWxfcmMocHAsIHBwLT5tZW1fYmFzZSwgUENJRV9BVFVf
TE9XRVJfQkFTRSk7DQogICAgICAgIGR3X3BjaWVfd3JpdGVsX3JjKHBwLCAocHAtPm1lbV9iYXNl
ID4+IDMyKSwgUENJRV9BVFVfVVBQRVJfQkFTRSk7DQogICAgICAgIGR3X3BjaWVfd3JpdGVsX3Jj
KHBwLCBwcC0+bWVtX2Jhc2UgKyBwcC0+Y29uZmlnLm1lbV9zaXplIC0gMSwNCkBAIC01NDUsNiAr
NTQzLDggQEAgc3RhdGljIHZvaWQgZHdfcGNpZV9wcm9nX3ZpZXdwb3J0X21lbV9vdXRib3VuZChz
dHJ1Y3QgcGNpZV9wb3J0ICpwcCkNCiAgICAgICAgZHdfcGNpZV93cml0ZWxfcmMocHAsIHBwLT5j
b25maWcubWVtX2J1c19hZGRyLCBQQ0lFX0FUVV9MT1dFUl9UQVJHRVQpOw0KICAgICAgICBkd19w
Y2llX3dyaXRlbF9yYyhwcCwgdXBwZXJfMzJfYml0cyhwcC0+Y29uZmlnLm1lbV9idXNfYWRkciks
DQogICAgICAgICAgICAgICAgICAgICAgICAgIFBDSUVfQVRVX1VQUEVSX1RBUkdFVCk7DQorICAg
ICAgIGR3X3BjaWVfd3JpdGVsX3JjKHBwLCBQQ0lFX0FUVV9UWVBFX01FTSwgUENJRV9BVFVfQ1Ix
KTsNCisgICAgICAgZHdfcGNpZV93cml0ZWxfcmMocHAsIFBDSUVfQVRVX0VOQUJMRSwgUENJRV9B
VFVfQ1IyKTsNCiB9DQoNCiBzdGF0aWMgdm9pZCBkd19wY2llX3Byb2dfdmlld3BvcnRfaW9fb3V0
Ym91bmQoc3RydWN0IHBjaWVfcG9ydCAqcHApDQpAQCAtNTUyLDggKzU1Miw2IEBAIHN0YXRpYyB2
b2lkIGR3X3BjaWVfcHJvZ192aWV3cG9ydF9pb19vdXRib3VuZChzdHJ1Y3QgcGNpZV9wb3J0ICpw
cCkNCiAgICAgICAgLyogUHJvZ3JhbSB2aWV3cG9ydCAxIDogT1VUQk9VTkQgOiBJTyAqLw0KICAg
ICAgICBkd19wY2llX3dyaXRlbF9yYyhwcCwgUENJRV9BVFVfUkVHSU9OX09VVEJPVU5EIHwgUENJ
RV9BVFVfUkVHSU9OX0lOREVYMSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgUENJRV9BVFVf
VklFV1BPUlQpOw0KLSAgICAgICBkd19wY2llX3dyaXRlbF9yYyhwcCwgUENJRV9BVFVfVFlQRV9J
TywgUENJRV9BVFVfQ1IxKTsNCi0gICAgICAgZHdfcGNpZV93cml0ZWxfcmMocHAsIFBDSUVfQVRV
X0VOQUJMRSwgUENJRV9BVFVfQ1IyKTsNCiAgICAgICAgZHdfcGNpZV93cml0ZWxfcmMocHAsIHBw
LT5pb19iYXNlLCBQQ0lFX0FUVV9MT1dFUl9CQVNFKTsNCiAgICAgICAgZHdfcGNpZV93cml0ZWxf
cmMocHAsIChwcC0+aW9fYmFzZSA+PiAzMiksIFBDSUVfQVRVX1VQUEVSX0JBU0UpOw0KICAgICAg
ICBkd19wY2llX3dyaXRlbF9yYyhwcCwgcHAtPmlvX2Jhc2UgKyBwcC0+Y29uZmlnLmlvX3NpemUg
LSAxLA0KQEAgLTU2MSw2ICs1NTksOCBAQCBzdGF0aWMgdm9pZCBkd19wY2llX3Byb2dfdmlld3Bv
cnRfaW9fb3V0Ym91bmQoc3RydWN0IHBjaWVfcG9ydCAqcHApDQogICAgICAgIGR3X3BjaWVfd3Jp
dGVsX3JjKHBwLCBwcC0+Y29uZmlnLmlvX2J1c19hZGRyLCBQQ0lFX0FUVV9MT1dFUl9UQVJHRVQp
Ow0KICAgICAgICBkd19wY2llX3dyaXRlbF9yYyhwcCwgdXBwZXJfMzJfYml0cyhwcC0+Y29uZmln
LmlvX2J1c19hZGRyKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgUENJRV9BVFVfVVBQRVJf
VEFSR0VUKTsNCisgICAgICAgZHdfcGNpZV93cml0ZWxfcmMocHAsIFBDSUVfQVRVX1RZUEVfSU8s
IFBDSUVfQVRVX0NSMSk7DQorICAgICAgIGR3X3BjaWVfd3JpdGVsX3JjKHBwLCBQQ0lFX0FUVV9F
TkFCTEUsIFBDSUVfQVRVX0NSMik7DQogfQ0KDQogc3RhdGljIGludCBkd19wY2llX3JkX290aGVy
X2NvbmYoc3RydWN0IHBjaWVfcG9ydCAqcHAsIHN0cnVjdCBwY2lfYnVzICpidXMsDQotLQ0KMS43
LjEwLjQNCg0KQmVzdCByZWdhcmRzLA0KSmluZ29vIEhhbg0K



^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 2/2] PCI:designware:Fix iATU programming for cfg1, io and mem viewport
  2014-02-21  1:31 [PATCH 2/2] PCI:designware:Fix iATU programming for cfg1, io and mem viewport Jingoo Han
@ 2014-02-21  5:28 ` Kishon Vijay Abraham I
  2014-02-26  6:31   ` Ajay Khandelwal
  0 siblings, 1 reply; 15+ messages in thread
From: Kishon Vijay Abraham I @ 2014-02-21  5:28 UTC (permalink / raw)
  To: jg1.han, Mohit KUMAR DCG
  Cc: Ajay KHANDELWAL, Bjorn Helgaas, spear-devel, linux-pci

Hi,

On Friday 21 February 2014 07:01 AM, Jingoo Han wrote:
> On Thursday, February 20, 2014 10:34 PM, Mohit KUMAR DCG wrote:
>> Thursday, February 20, 2014 5:43 PM, Kishon Vijay Abraham I wrote:
>>> On Thursday 20 February 2014 05:28 PM, Mohit KUMAR DCG wrote:
>>>> On Thursday, February 20, 2014 5:08 PM, Kishon Vijay Abraham I wrote:
>>>>> On Thursday 20 February 2014 10:52 AM, Mohit Kumar wrote:
>>>>>> This patch correct iATU programming for cfg1, io and mem viewport.
>>>>>> Enable ATU only after configuring it.
>>>>>
>>>>> Does this patch actually fixes device enumeration behind a PCIe-pci
>>>>> bridge or this is more of cleaning up the sequence?
>>>>>
>>>> - This patch corrects ATU programming sequence. I am not aware of any
>>>> such issue with current driver. Pls specify  which bridge do you use in your
>>> setup and what is the problem?
>>>
>>> I tried with card [1], it had a PLX bridge chip. It couldn't read the configuration
>>> space of the device connected to the PCIe-PCI bridge.
>>>
>> - I don’t have the mentioned card with me, but we are successfully using Lecroy PTC switch
>>  and SIL3124-2CB364 PCI-X compatible RAID card.
>>
>> May be Jingoo or others can also comment if they are using PCI bridge card.
>>
> 
> Hi Kishon,
> Nice to see you again. :-)
> 
> I don't have PCIe-PCI bridge. Currently, I can test Ethernet cards
> and SATA cards.

The problem seems to be seen only if a device is connected after PCIe-PCI
bridge. I've tested USB and Ethernet cards but that works just fine.
> 
> By the way, according to the Datasheet, PCIE_ATU_CR1 setting can be
> followed by PCIE_ATU_CR2 setting as below:
> 
>   1. Setup the Index Register.
>   2. Setup the Region Base and Limit Address Registers.
>   3. Setup the Target Address Registers.
>   4. Configure the region through the Region Control 1 Register.
>   5. Enable the region.
> 
> Thus, how about testing the following patch?
> I also moved PCIE_ATU_CR1 as well as PCIE_ATU_CR2.

Thanks for the patch. I have just burnt my PCIE-to-PCI bridge card :-s Will
test this once I get a new card.

Thanks
Kishon

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 2/2] PCI:designware:Fix iATU programming for cfg1, io and mem viewport
  2014-02-21  5:28 ` Kishon Vijay Abraham I
@ 2014-02-26  6:31   ` Ajay Khandelwal
  2014-02-26  7:47     ` Kishon Vijay Abraham I
  0 siblings, 1 reply; 15+ messages in thread
From: Ajay Khandelwal @ 2014-02-26  6:31 UTC (permalink / raw)
  To: Kishon Vijay Abraham I
  Cc: jg1.han, Mohit KUMAR DCG, Bjorn Helgaas, spear-devel, linux-pci

Hi Kishon,

On 2/21/2014 10:58 AM, Kishon Vijay Abraham I wrote:
> Thanks for the patch. I have just burnt my PCIE-to-PCI bridge card :-s Will
> test this once I get a new card.

were you able to solve issue in PCIE-to-PCI bridge.

On SPEAr I see issues with PCIe to PCI bridge and PCIe to PCIe switch.

Imprecise external abort is generated, providing hook for abort(similar
to imx6) solves this.

Thanks and Regards,
Ajay

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 2/2] PCI:designware:Fix iATU programming for cfg1, io and mem viewport
  2014-02-26  6:31   ` Ajay Khandelwal
@ 2014-02-26  7:47     ` Kishon Vijay Abraham I
  2014-02-26 10:52       ` Pratyush Anand
  0 siblings, 1 reply; 15+ messages in thread
From: Kishon Vijay Abraham I @ 2014-02-26  7:47 UTC (permalink / raw)
  To: Ajay Khandelwal
  Cc: jg1.han, Mohit KUMAR DCG, Bjorn Helgaas, spear-devel, linux-pci

On Wednesday 26 February 2014 12:01 PM, Ajay Khandelwal wrote:
> Hi Kishon,
> 
> On 2/21/2014 10:58 AM, Kishon Vijay Abraham I wrote:
>> Thanks for the patch. I have just burnt my PCIE-to-PCI bridge card :-s Will
>> test this once I get a new card.
> 
> were you able to solve issue in PCIE-to-PCI bridge.

oh yes. I was giving the total configuration space as 4k (2k for cfg0 and  2k
for cfg1). But there was some problem when I write 0x800 to
PCIE_ATU_LOWER_BASE. If I read back PCIE_ATU_LOWER_BASE after writing 0x800, it
has 0x0.

So I increased the configuration space to 8k (4k for cfg0 and  4k for cfg1).
With this I write 0x1000 to  PCIE_ATU_LOWER_BASE and able to enumerate devices
behind a PCIE-to-PCI bridge.
> 
> On SPEAr I see issues with PCIe to PCI bridge and PCIe to PCIe switch.
> 
> Imprecise external abort is generated, providing hook for abort(similar
> to imx6) solves this.

But this issue seems to be different :-s

Thanks
Kishon

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 2/2] PCI:designware:Fix iATU programming for cfg1, io and mem viewport
  2014-02-26  7:47     ` Kishon Vijay Abraham I
@ 2014-02-26 10:52       ` Pratyush Anand
  2014-02-27  1:18         ` Jingoo Han
  0 siblings, 1 reply; 15+ messages in thread
From: Pratyush Anand @ 2014-02-26 10:52 UTC (permalink / raw)
  To: Kishon Vijay Abraham I, jg1.han
  Cc: Ajay KHANDELWAL, Mohit KUMAR DCG, Bjorn Helgaas, spear-devel, linux-pci

On Wed, Feb 26, 2014 at 03:47:27PM +0800, Kishon Vijay Abraham I wrote:
> On Wednesday 26 February 2014 12:01 PM, Ajay Khandelwal wrote:
> > Hi Kishon,
> > 
> > On 2/21/2014 10:58 AM, Kishon Vijay Abraham I wrote:
> >> Thanks for the patch. I have just burnt my PCIE-to-PCI bridge card :-s Will
> >> test this once I get a new card.
> > 
> > were you able to solve issue in PCIE-to-PCI bridge.
> 
> oh yes. I was giving the total configuration space as 4k (2k for cfg0 and  2k
> for cfg1). But there was some problem when I write 0x800 to
> PCIE_ATU_LOWER_BASE. If I read back PCIE_ATU_LOWER_BASE after writing 0x800, it
> has 0x0.
> 
> So I increased the configuration space to 8k (4k for cfg0 and  4k for cfg1).
> With this I write 0x1000 to  PCIE_ATU_LOWER_BASE and able to enumerate devices
> behind a PCIE-to-PCI bridge.

As per designware specs minimum value of CX_ATU_MIN_REGION_SIZE is 4 KB.
Depending on the SOC it can be configured from 4 to 64KB. So you can
not have an address translation unit less than 4 KB in any SOC.

I think, it would be worth to mention this information in designware pcie binding
documentation.

However I am surprised, how does it work in case of exynos. Jingoo??
Size of configuration space passed from DT is 0x1000 in exynos. As per
my understanding (and what snps specs says), this value should be
minimum 0x2000 in any SOC, as we divide this space equally for cfg0 and
cfg1 in driver.

Regards
Pratysuh

> > 
> > On SPEAr I see issues with PCIe to PCI bridge and PCIe to PCIe switch.
> > 
> > Imprecise external abort is generated, providing hook for abort(similar
> > to imx6) solves this.
> 
> But this issue seems to be different :-s
> 
> Thanks
> Kishon

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 2/2] PCI:designware:Fix iATU programming for cfg1, io and mem viewport
  2014-02-26 10:52       ` Pratyush Anand
@ 2014-02-27  1:18         ` Jingoo Han
  2014-02-27  1:37           ` Jingoo Han
  0 siblings, 1 reply; 15+ messages in thread
From: Jingoo Han @ 2014-02-27  1:18 UTC (permalink / raw)
  To: 'Pratyush Anand', 'Kishon Vijay Abraham I'
  Cc: 'Ajay KHANDELWAL', 'Mohit KUMAR DCG',
	'Bjorn Helgaas', 'spear-devel',
	linux-pci, 'Jingoo Han'

On Wednesday, February 26, 2014 7:52 PM, Pratyush Anand wrote:
> On Wed, Feb 26, 2014 at 03:47:27PM +0800, Kishon Vijay Abraham I wrote:
> > On Wednesday 26 February 2014 12:01 PM, Ajay Khandelwal wrote:
> > > Hi Kishon,
> > >
> > > On 2/21/2014 10:58 AM, Kishon Vijay Abraham I wrote:
> > >> Thanks for the patch. I have just burnt my PCIE-to-PCI bridge card :-s Will
> > >> test this once I get a new card.
> > >
> > > were you able to solve issue in PCIE-to-PCI bridge.
> >
> > oh yes. I was giving the total configuration space as 4k (2k for cfg0 and  2k
> > for cfg1). But there was some problem when I write 0x800 to
> > PCIE_ATU_LOWER_BASE. If I read back PCIE_ATU_LOWER_BASE after writing 0x800, it
> > has 0x0.
> >
> > So I increased the configuration space to 8k (4k for cfg0 and  4k for cfg1).
> > With this I write 0x1000 to  PCIE_ATU_LOWER_BASE and able to enumerate devices
> > behind a PCIE-to-PCI bridge.
> 
> As per designware specs minimum value of CX_ATU_MIN_REGION_SIZE is 4 KB.
> Depending on the SOC it can be configured from 4 to 64KB. So you can
> not have an address translation unit less than 4 KB in any SOC.

In the case of Exynos, the minimum value of CX_ATU_MIN_REGION_SIZE is 64KB.

> 
> I think, it would be worth to mention this information in designware pcie binding
> documentation.
> 
> However I am surprised, how does it work in case of exynos. Jingoo??

I don't know. However, there was no issue at my side.
Currently, I am testing only Ethernet cards & SATA cards.

> Size of configuration space passed from DT is 0x1000 in exynos. As per
> my understanding (and what snps specs says), this value should be
> minimum 0x2000 in any SOC, as we divide this space equally for cfg0 and
> cfg1 in driver.

I changed 'Size of configuration space passed from DT' from 0x1000 to
0x2000 as below:

	ranges = <0x00000800 0 0x40000000 0x40000000 0 0x00002000   /* configuration space */
		     0x81000000 0 0          0x40002000 0 0x00010000   /* downstream I/O */
   		     0x82000000 0 0x40012000 0x40012000 0 0x1ffee000>; /* non-prefetchable memory */

Then, I tested it on Exynos platform; it works properly with
Ethernet card.

Best regards,
Jingoo Han

> 
> Regards
> Pratysuh
> 
> > >
> > > On SPEAr I see issues with PCIe to PCI bridge and PCIe to PCIe switch.
> > >
> > > Imprecise external abort is generated, providing hook for abort(similar
> > > to imx6) solves this.
> >
> > But this issue seems to be different :-s
> >
> > Thanks
> > Kishon


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 2/2] PCI:designware:Fix iATU programming for cfg1, io and mem viewport
  2014-02-27  1:18         ` Jingoo Han
@ 2014-02-27  1:37           ` Jingoo Han
  2014-02-27  4:10             ` Pratyush Anand
  0 siblings, 1 reply; 15+ messages in thread
From: Jingoo Han @ 2014-02-27  1:37 UTC (permalink / raw)
  To: 'Pratyush Anand', 'Kishon Vijay Abraham I'
  Cc: 'Ajay KHANDELWAL', 'Mohit KUMAR DCG',
	'Bjorn Helgaas', 'spear-devel',
	linux-pci, 'Jingoo Han'

On Thursday, February 27, 2014 10:18 AM, Jingoo Han wrote:
> On Wednesday, February 26, 2014 7:52 PM, Pratyush Anand wrote:
> > On Wed, Feb 26, 2014 at 03:47:27PM +0800, Kishon Vijay Abraham I wrote:
> > > On Wednesday 26 February 2014 12:01 PM, Ajay Khandelwal wrote:
> > > > Hi Kishon,
> > > >
> > > > On 2/21/2014 10:58 AM, Kishon Vijay Abraham I wrote:
> > > >> Thanks for the patch. I have just burnt my PCIE-to-PCI bridge card :-s Will
> > > >> test this once I get a new card.
> > > >
> > > > were you able to solve issue in PCIE-to-PCI bridge.
> > >
> > > oh yes. I was giving the total configuration space as 4k (2k for cfg0 and  2k
> > > for cfg1). But there was some problem when I write 0x800 to
> > > PCIE_ATU_LOWER_BASE. If I read back PCIE_ATU_LOWER_BASE after writing 0x800, it
> > > has 0x0.
> > >
> > > So I increased the configuration space to 8k (4k for cfg0 and  4k for cfg1).
> > > With this I write 0x1000 to  PCIE_ATU_LOWER_BASE and able to enumerate devices
> > > behind a PCIE-to-PCI bridge.
> >
> > As per designware specs minimum value of CX_ATU_MIN_REGION_SIZE is 4 KB.
> > Depending on the SOC it can be configured from 4 to 64KB. So you can
> > not have an address translation unit less than 4 KB in any SOC.
> 
> In the case of Exynos, the minimum value of CX_ATU_MIN_REGION_SIZE is 64KB.

Oh! Sorry.

I got the response from one of our hardware engineers
about 'CX_ATU_MIN_REGION_SIZE'. The minimum value of
CX_ATU_MIN_REGION_SIZE is 4KB.

Sorry for confusing you. :-(

Best regards,
Jingoo Han

> 
> >
> > I think, it would be worth to mention this information in designware pcie binding
> > documentation.
> >
> > However I am surprised, how does it work in case of exynos. Jingoo??
> 
> I don't know. However, there was no issue at my side.
> Currently, I am testing only Ethernet cards & SATA cards.
> 
> > Size of configuration space passed from DT is 0x1000 in exynos. As per
> > my understanding (and what snps specs says), this value should be
> > minimum 0x2000 in any SOC, as we divide this space equally for cfg0 and
> > cfg1 in driver.
> 
> I changed 'Size of configuration space passed from DT' from 0x1000 to
> 0x2000 as below:
> 
> 	ranges = <0x00000800 0 0x40000000 0x40000000 0 0x00002000   /* configuration space */
> 		     0x81000000 0 0          0x40002000 0 0x00010000   /* downstream I/O */
>    		     0x82000000 0 0x40012000 0x40012000 0 0x1ffee000>; /* non-prefetchable memory */
> 
> Then, I tested it on Exynos platform; it works properly with
> Ethernet card.
> 
> Best regards,
> Jingoo Han
> 
> >
> > Regards
> > Pratysuh
> >
> > > >
> > > > On SPEAr I see issues with PCIe to PCI bridge and PCIe to PCIe switch.
> > > >
> > > > Imprecise external abort is generated, providing hook for abort(similar
> > > > to imx6) solves this.
> > >
> > > But this issue seems to be different :-s
> > >
> > > Thanks
> > > Kishon


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 2/2] PCI:designware:Fix iATU programming for cfg1, io and mem viewport
  2014-02-27  1:37           ` Jingoo Han
@ 2014-02-27  4:10             ` Pratyush Anand
  0 siblings, 0 replies; 15+ messages in thread
From: Pratyush Anand @ 2014-02-27  4:10 UTC (permalink / raw)
  To: Jingoo Han
  Cc: 'Kishon Vijay Abraham I',
	Ajay KHANDELWAL, Mohit KUMAR DCG, 'Bjorn Helgaas',
	spear-devel, linux-pci

On Thu, Feb 27, 2014 at 09:37:05AM +0800, Jingoo Han wrote:
> On Thursday, February 27, 2014 10:18 AM, Jingoo Han wrote:
> > On Wednesday, February 26, 2014 7:52 PM, Pratyush Anand wrote:
> > > On Wed, Feb 26, 2014 at 03:47:27PM +0800, Kishon Vijay Abraham I wrote:
> > > > On Wednesday 26 February 2014 12:01 PM, Ajay Khandelwal wrote:
> > > > > Hi Kishon,
> > > > >
> > > > > On 2/21/2014 10:58 AM, Kishon Vijay Abraham I wrote:
> > > > >> Thanks for the patch. I have just burnt my PCIE-to-PCI bridge card :-s Will
> > > > >> test this once I get a new card.
> > > > >
> > > > > were you able to solve issue in PCIE-to-PCI bridge.
> > > >
> > > > oh yes. I was giving the total configuration space as 4k (2k for cfg0 and  2k
> > > > for cfg1). But there was some problem when I write 0x800 to
> > > > PCIE_ATU_LOWER_BASE. If I read back PCIE_ATU_LOWER_BASE after writing 0x800, it
> > > > has 0x0.
> > > >
> > > > So I increased the configuration space to 8k (4k for cfg0 and  4k for cfg1).
> > > > With this I write 0x1000 to  PCIE_ATU_LOWER_BASE and able to enumerate devices
> > > > behind a PCIE-to-PCI bridge.
> > >
> > > As per designware specs minimum value of CX_ATU_MIN_REGION_SIZE is 4 KB.
> > > Depending on the SOC it can be configured from 4 to 64KB. So you can
> > > not have an address translation unit less than 4 KB in any SOC.
> > 
> > In the case of Exynos, the minimum value of CX_ATU_MIN_REGION_SIZE is 64KB.
> 
> Oh! Sorry.
> 
> I got the response from one of our hardware engineers
> about 'CX_ATU_MIN_REGION_SIZE'. The minimum value of
> CX_ATU_MIN_REGION_SIZE is 4KB.

In case of 4 KB, you should keep configuration space size in DT as
0x2000.

With the current value (0x1000) you will not have any problem in cfg0
transfer, however you will not be able to execute cfg1. To test cfg1
transaction you will need a PICe card having multiple EP below a bridge.

Regards
Pratyush
> 
> Sorry for confusing you. :-(
> 
> Best regards,
> Jingoo Han
> 
> > 
> > >
> > > I think, it would be worth to mention this information in designware pcie binding
> > > documentation.
> > >
> > > However I am surprised, how does it work in case of exynos. Jingoo??
> > 
> > I don't know. However, there was no issue at my side.
> > Currently, I am testing only Ethernet cards & SATA cards.
> > 
> > > Size of configuration space passed from DT is 0x1000 in exynos. As per
> > > my understanding (and what snps specs says), this value should be
> > > minimum 0x2000 in any SOC, as we divide this space equally for cfg0 and
> > > cfg1 in driver.
> > 
> > I changed 'Size of configuration space passed from DT' from 0x1000 to
> > 0x2000 as below:
> > 
> > 	ranges = <0x00000800 0 0x40000000 0x40000000 0 0x00002000   /* configuration space */
> > 		     0x81000000 0 0          0x40002000 0 0x00010000   /* downstream I/O */
> >    		     0x82000000 0 0x40012000 0x40012000 0 0x1ffee000>; /* non-prefetchable memory */
> > 
> > Then, I tested it on Exynos platform; it works properly with
> > Ethernet card.
> > 
> > Best regards,
> > Jingoo Han
> > 
> > >
> > > Regards
> > > Pratysuh
> > >
> > > > >
> > > > > On SPEAr I see issues with PCIe to PCI bridge and PCIe to PCIe switch.
> > > > >
> > > > > Imprecise external abort is generated, providing hook for abort(similar
> > > > > to imx6) solves this.
> > > >
> > > > But this issue seems to be different :-s
> > > >
> > > > Thanks
> > > > Kishon

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 2/2] PCI:designware:Fix iATU programming for cfg1, io and mem viewport
  2014-02-20 12:13       ` Kishon Vijay Abraham I
  2014-02-20 13:33         ` Mohit KUMAR DCG
@ 2014-02-21  3:54         ` Pratyush Anand
  1 sibling, 0 replies; 15+ messages in thread
From: Pratyush Anand @ 2014-02-21  3:54 UTC (permalink / raw)
  To: Kishon Vijay Abraham I
  Cc: Mohit KUMAR DCG, jg1.han, Ajay KHANDELWAL, Bjorn Helgaas,
	spear-devel, linux-pci

On Thu, Feb 20, 2014 at 08:13:08PM +0800, Kishon Vijay Abraham I wrote:
> Hi Mohit,
> 
> On Thursday 20 February 2014 05:28 PM, Mohit KUMAR DCG wrote:
> > Hello Kishon,
> > 
> >> -----Original Message-----
> >> From: Kishon Vijay Abraham I [mailto:kishon@ti.com]
> >> Sent: Thursday, February 20, 2014 5:08 PM
> >> To: Mohit KUMAR DCG; jg1.han@samsung.com
> >> Cc: Ajay KHANDELWAL; Bjorn Helgaas; spear-devel; linux-
> >> pci@vger.kernel.org
> >> Subject: Re: [PATCH 2/2] PCI:designware:Fix iATU programming for cfg1, io
> >> and mem viewport
> >>
> >> Hi,
> >>
> >> On Thursday 20 February 2014 10:52 AM, Mohit Kumar wrote:
> >>> This patch correct iATU programming for cfg1, io and mem viewport.
> >>> Enable ATU only after configuring it.
> >>
> >> Does this patch actually fixes device enumeration behind a PCIe-pci bridge or
> >> this is more of cleaning up the sequence?
> >>
> > - This patch corrects ATU programming sequence. I am not aware of any such issue with
> > current driver. Pls specify  which bridge do you use in your setup and what is the problem?
> 
> I tried with card [1], it had a PLX bridge chip. It couldn't read the
> configuration space of the device connected to the PCIe-PCI bridge.

So do you see abort while reading config space of device connected to
the PCIe-PCI bridge?

Do you see "received master abort" bit set in your RC's cfg register
after you try to read?

Regards
Pratyush

> 
> Thanks
> Kishon
> 
> [1] -> http://ratetorate.in/products/Wiretech-PCIe%252dto%252dPCI-Bridge-Card.
> 
> > 
> > Regards
> > Mohit
> > 
> 

^ permalink raw reply	[flat|nested] 15+ messages in thread

* RE: [PATCH 2/2] PCI:designware:Fix iATU programming for cfg1, io and mem viewport
  2014-02-20 12:13       ` Kishon Vijay Abraham I
@ 2014-02-20 13:33         ` Mohit KUMAR DCG
  2014-02-21  3:54         ` Pratyush Anand
  1 sibling, 0 replies; 15+ messages in thread
From: Mohit KUMAR DCG @ 2014-02-20 13:33 UTC (permalink / raw)
  To: Kishon Vijay Abraham I, jg1.han
  Cc: Ajay KHANDELWAL, Bjorn Helgaas, spear-devel, linux-pci

SGVsbG8gS2lzaG9uLA0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IEtp
c2hvbiBWaWpheSBBYnJhaGFtIEkgW21haWx0bzpraXNob25AdGkuY29tXQ0KPiBTZW50OiBUaHVy
c2RheSwgRmVicnVhcnkgMjAsIDIwMTQgNTo0MyBQTQ0KPiBUbzogTW9oaXQgS1VNQVIgRENHOyBq
ZzEuaGFuQHNhbXN1bmcuY29tDQo+IENjOiBBamF5IEtIQU5ERUxXQUw7IEJqb3JuIEhlbGdhYXM7
IHNwZWFyLWRldmVsOyBsaW51eC0NCj4gcGNpQHZnZXIua2VybmVsLm9yZw0KPiBTdWJqZWN0OiBS
ZTogW1BBVENIIDIvMl0gUENJOmRlc2lnbndhcmU6Rml4IGlBVFUgcHJvZ3JhbW1pbmcgZm9yIGNm
ZzEsIGlvDQo+IGFuZCBtZW0gdmlld3BvcnQNCj4gDQo+IEhpIE1vaGl0LA0KPiANCj4gT24gVGh1
cnNkYXkgMjAgRmVicnVhcnkgMjAxNCAwNToyOCBQTSwgTW9oaXQgS1VNQVIgRENHIHdyb3RlOg0K
PiA+IEhlbGxvIEtpc2hvbiwNCj4gPg0KPiA+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0K
PiA+PiBGcm9tOiBLaXNob24gVmlqYXkgQWJyYWhhbSBJIFttYWlsdG86a2lzaG9uQHRpLmNvbV0N
Cj4gPj4gU2VudDogVGh1cnNkYXksIEZlYnJ1YXJ5IDIwLCAyMDE0IDU6MDggUE0NCj4gPj4gVG86
IE1vaGl0IEtVTUFSIERDRzsgamcxLmhhbkBzYW1zdW5nLmNvbQ0KPiA+PiBDYzogQWpheSBLSEFO
REVMV0FMOyBCam9ybiBIZWxnYWFzOyBzcGVhci1kZXZlbDsgbGludXgtDQo+ID4+IHBjaUB2Z2Vy
Lmtlcm5lbC5vcmcNCj4gPj4gU3ViamVjdDogUmU6IFtQQVRDSCAyLzJdIFBDSTpkZXNpZ253YXJl
OkZpeCBpQVRVIHByb2dyYW1taW5nIGZvcg0KPiA+PiBjZmcxLCBpbyBhbmQgbWVtIHZpZXdwb3J0
DQo+ID4+DQo+ID4+IEhpLA0KPiA+Pg0KPiA+PiBPbiBUaHVyc2RheSAyMCBGZWJydWFyeSAyMDE0
IDEwOjUyIEFNLCBNb2hpdCBLdW1hciB3cm90ZToNCj4gPj4+IFRoaXMgcGF0Y2ggY29ycmVjdCBp
QVRVIHByb2dyYW1taW5nIGZvciBjZmcxLCBpbyBhbmQgbWVtIHZpZXdwb3J0Lg0KPiA+Pj4gRW5h
YmxlIEFUVSBvbmx5IGFmdGVyIGNvbmZpZ3VyaW5nIGl0Lg0KPiA+Pg0KPiA+PiBEb2VzIHRoaXMg
cGF0Y2ggYWN0dWFsbHkgZml4ZXMgZGV2aWNlIGVudW1lcmF0aW9uIGJlaGluZCBhIFBDSWUtcGNp
DQo+ID4+IGJyaWRnZSBvciB0aGlzIGlzIG1vcmUgb2YgY2xlYW5pbmcgdXAgdGhlIHNlcXVlbmNl
Pw0KPiA+Pg0KPiA+IC0gVGhpcyBwYXRjaCBjb3JyZWN0cyBBVFUgcHJvZ3JhbW1pbmcgc2VxdWVu
Y2UuIEkgYW0gbm90IGF3YXJlIG9mIGFueQ0KPiA+IHN1Y2ggaXNzdWUgd2l0aCBjdXJyZW50IGRy
aXZlci4gUGxzIHNwZWNpZnkgIHdoaWNoIGJyaWRnZSBkbyB5b3UgdXNlIGluIHlvdXINCj4gc2V0
dXAgYW5kIHdoYXQgaXMgdGhlIHByb2JsZW0/DQo+IA0KPiBJIHRyaWVkIHdpdGggY2FyZCBbMV0s
IGl0IGhhZCBhIFBMWCBicmlkZ2UgY2hpcC4gSXQgY291bGRuJ3QgcmVhZCB0aGUgY29uZmlndXJh
dGlvbg0KPiBzcGFjZSBvZiB0aGUgZGV2aWNlIGNvbm5lY3RlZCB0byB0aGUgUENJZS1QQ0kgYnJp
ZGdlLg0KPiANCi0gSSBkb27igJl0IGhhdmUgdGhlIG1lbnRpb25lZCBjYXJkIHdpdGggbWUsIGJ1
dCB3ZSBhcmUgc3VjY2Vzc2Z1bGx5IHVzaW5nIExlY3JveSBQVEMgc3dpdGNoDQogYW5kIFNJTDMx
MjQtMkNCMzY0IFBDSS1YIGNvbXBhdGlibGUgUkFJRCBjYXJkLg0KDQpNYXkgYmUgSmluZ29vIG9y
IG90aGVycyBjYW4gYWxzbyBjb21tZW50IGlmIHRoZXkgYXJlIHVzaW5nIFBDSSBicmlkZ2UgY2Fy
ZC4NCg0KVGhhbmtzDQpNb2hpdA0KDQo=

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 2/2] PCI:designware:Fix iATU programming for cfg1, io and mem viewport
  2014-02-20 11:58     ` Mohit KUMAR DCG
@ 2014-02-20 12:13       ` Kishon Vijay Abraham I
  2014-02-20 13:33         ` Mohit KUMAR DCG
  2014-02-21  3:54         ` Pratyush Anand
  0 siblings, 2 replies; 15+ messages in thread
From: Kishon Vijay Abraham I @ 2014-02-20 12:13 UTC (permalink / raw)
  To: Mohit KUMAR DCG, jg1.han
  Cc: Ajay KHANDELWAL, Bjorn Helgaas, spear-devel, linux-pci

Hi Mohit,

On Thursday 20 February 2014 05:28 PM, Mohit KUMAR DCG wrote:
> Hello Kishon,
> 
>> -----Original Message-----
>> From: Kishon Vijay Abraham I [mailto:kishon@ti.com]
>> Sent: Thursday, February 20, 2014 5:08 PM
>> To: Mohit KUMAR DCG; jg1.han@samsung.com
>> Cc: Ajay KHANDELWAL; Bjorn Helgaas; spear-devel; linux-
>> pci@vger.kernel.org
>> Subject: Re: [PATCH 2/2] PCI:designware:Fix iATU programming for cfg1, io
>> and mem viewport
>>
>> Hi,
>>
>> On Thursday 20 February 2014 10:52 AM, Mohit Kumar wrote:
>>> This patch correct iATU programming for cfg1, io and mem viewport.
>>> Enable ATU only after configuring it.
>>
>> Does this patch actually fixes device enumeration behind a PCIe-pci bridge or
>> this is more of cleaning up the sequence?
>>
> - This patch corrects ATU programming sequence. I am not aware of any such issue with
> current driver. Pls specify  which bridge do you use in your setup and what is the problem?

I tried with card [1], it had a PLX bridge chip. It couldn't read the
configuration space of the device connected to the PCIe-PCI bridge.

Thanks
Kishon

[1] -> http://ratetorate.in/products/Wiretech-PCIe%252dto%252dPCI-Bridge-Card.

> 
> Regards
> Mohit
> 


^ permalink raw reply	[flat|nested] 15+ messages in thread

* RE: [PATCH 2/2] PCI:designware:Fix iATU programming for cfg1, io and mem viewport
  2014-02-20 11:38   ` Kishon Vijay Abraham I
@ 2014-02-20 11:58     ` Mohit KUMAR DCG
  2014-02-20 12:13       ` Kishon Vijay Abraham I
  0 siblings, 1 reply; 15+ messages in thread
From: Mohit KUMAR DCG @ 2014-02-20 11:58 UTC (permalink / raw)
  To: Kishon Vijay Abraham I, jg1.han
  Cc: Ajay KHANDELWAL, Bjorn Helgaas, spear-devel, linux-pci

SGVsbG8gS2lzaG9uLA0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IEtp
c2hvbiBWaWpheSBBYnJhaGFtIEkgW21haWx0bzpraXNob25AdGkuY29tXQ0KPiBTZW50OiBUaHVy
c2RheSwgRmVicnVhcnkgMjAsIDIwMTQgNTowOCBQTQ0KPiBUbzogTW9oaXQgS1VNQVIgRENHOyBq
ZzEuaGFuQHNhbXN1bmcuY29tDQo+IENjOiBBamF5IEtIQU5ERUxXQUw7IEJqb3JuIEhlbGdhYXM7
IHNwZWFyLWRldmVsOyBsaW51eC0NCj4gcGNpQHZnZXIua2VybmVsLm9yZw0KPiBTdWJqZWN0OiBS
ZTogW1BBVENIIDIvMl0gUENJOmRlc2lnbndhcmU6Rml4IGlBVFUgcHJvZ3JhbW1pbmcgZm9yIGNm
ZzEsIGlvDQo+IGFuZCBtZW0gdmlld3BvcnQNCj4gDQo+IEhpLA0KPiANCj4gT24gVGh1cnNkYXkg
MjAgRmVicnVhcnkgMjAxNCAxMDo1MiBBTSwgTW9oaXQgS3VtYXIgd3JvdGU6DQo+ID4gVGhpcyBw
YXRjaCBjb3JyZWN0IGlBVFUgcHJvZ3JhbW1pbmcgZm9yIGNmZzEsIGlvIGFuZCBtZW0gdmlld3Bv
cnQuDQo+ID4gRW5hYmxlIEFUVSBvbmx5IGFmdGVyIGNvbmZpZ3VyaW5nIGl0Lg0KPiANCj4gRG9l
cyB0aGlzIHBhdGNoIGFjdHVhbGx5IGZpeGVzIGRldmljZSBlbnVtZXJhdGlvbiBiZWhpbmQgYSBQ
Q0llLXBjaSBicmlkZ2Ugb3INCj4gdGhpcyBpcyBtb3JlIG9mIGNsZWFuaW5nIHVwIHRoZSBzZXF1
ZW5jZT8NCj4gDQotIFRoaXMgcGF0Y2ggY29ycmVjdHMgQVRVIHByb2dyYW1taW5nIHNlcXVlbmNl
LiBJIGFtIG5vdCBhd2FyZSBvZiBhbnkgc3VjaCBpc3N1ZSB3aXRoDQpjdXJyZW50IGRyaXZlci4g
UGxzIHNwZWNpZnkgIHdoaWNoIGJyaWRnZSBkbyB5b3UgdXNlIGluIHlvdXIgc2V0dXAgYW5kIHdo
YXQgaXMgdGhlIHByb2JsZW0/DQoNClJlZ2FyZHMNCk1vaGl0DQo=

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 2/2] PCI:designware:Fix iATU programming for cfg1, io and mem viewport
  2014-02-20  5:22 ` [PATCH 2/2] PCI:designware:Fix iATU programming for cfg1, io and mem viewport Mohit Kumar
  2014-02-20  6:45   ` Mohit KUMAR DCG
@ 2014-02-20 11:38   ` Kishon Vijay Abraham I
  2014-02-20 11:58     ` Mohit KUMAR DCG
  1 sibling, 1 reply; 15+ messages in thread
From: Kishon Vijay Abraham I @ 2014-02-20 11:38 UTC (permalink / raw)
  To: Mohit Kumar, jg1.han
  Cc: Ajay Khandelwal, Bjorn Helgaas, spear-devel, linux-pci

Hi,

On Thursday 20 February 2014 10:52 AM, Mohit Kumar wrote:
> This patch correct iATU programming for cfg1, io and mem viewport.
> Enable ATU only after configuring it.

Does this patch actually fixes device enumeration behind a PCIe-pci bridge or
this is more of cleaning up the sequence?

Thanks
Kishon

> 
> Signed-off-by: Mohit Kumar <mohit.kumar@st.com>
> Signed-off-by: Ajay Khandelwal <ajay.khandelwal@st.com>
> Cc: Jingoo Han <jg1.han@samsung.com>
> Cc: Bjorn Helgaas <bhelgass@google.com>
> Cc: spear-devel@list.st.com
> Cc: linux-pci@vger.kernel.org
> ---
>  drivers/pci/host/pcie-designware.c |    6 +++---
>  1 files changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/pci/host/pcie-designware.c b/drivers/pci/host/pcie-designware.c
> index 391966f..46f4a19 100644
> --- a/drivers/pci/host/pcie-designware.c
> +++ b/drivers/pci/host/pcie-designware.c
> @@ -522,13 +522,13 @@ static void dw_pcie_prog_viewport_cfg1(struct pcie_port *pp, u32 busdev)
>  	dw_pcie_writel_rc(pp, PCIE_ATU_REGION_OUTBOUND | PCIE_ATU_REGION_INDEX1,
>  			  PCIE_ATU_VIEWPORT);
>  	dw_pcie_writel_rc(pp, PCIE_ATU_TYPE_CFG1, PCIE_ATU_CR1);
> -	dw_pcie_writel_rc(pp, PCIE_ATU_ENABLE, PCIE_ATU_CR2);
>  	dw_pcie_writel_rc(pp, pp->cfg1_base, PCIE_ATU_LOWER_BASE);
>  	dw_pcie_writel_rc(pp, (pp->cfg1_base >> 32), PCIE_ATU_UPPER_BASE);
>  	dw_pcie_writel_rc(pp, pp->cfg1_base + pp->config.cfg1_size - 1,
>  			  PCIE_ATU_LIMIT);
>  	dw_pcie_writel_rc(pp, busdev, PCIE_ATU_LOWER_TARGET);
>  	dw_pcie_writel_rc(pp, 0, PCIE_ATU_UPPER_TARGET);
> +	dw_pcie_writel_rc(pp, PCIE_ATU_ENABLE, PCIE_ATU_CR2);
>  }
>  
>  static void dw_pcie_prog_viewport_mem_outbound(struct pcie_port *pp)
> @@ -537,7 +537,6 @@ static void dw_pcie_prog_viewport_mem_outbound(struct pcie_port *pp)
>  	dw_pcie_writel_rc(pp, PCIE_ATU_REGION_OUTBOUND | PCIE_ATU_REGION_INDEX0,
>  			  PCIE_ATU_VIEWPORT);
>  	dw_pcie_writel_rc(pp, PCIE_ATU_TYPE_MEM, PCIE_ATU_CR1);
> -	dw_pcie_writel_rc(pp, PCIE_ATU_ENABLE, PCIE_ATU_CR2);
>  	dw_pcie_writel_rc(pp, pp->mem_base, PCIE_ATU_LOWER_BASE);
>  	dw_pcie_writel_rc(pp, (pp->mem_base >> 32), PCIE_ATU_UPPER_BASE);
>  	dw_pcie_writel_rc(pp, pp->mem_base + pp->config.mem_size - 1,
> @@ -545,6 +544,7 @@ static void dw_pcie_prog_viewport_mem_outbound(struct pcie_port *pp)
>  	dw_pcie_writel_rc(pp, pp->config.mem_bus_addr, PCIE_ATU_LOWER_TARGET);
>  	dw_pcie_writel_rc(pp, upper_32_bits(pp->config.mem_bus_addr),
>  			  PCIE_ATU_UPPER_TARGET);
> +	dw_pcie_writel_rc(pp, PCIE_ATU_ENABLE, PCIE_ATU_CR2);
>  }
>  
>  static void dw_pcie_prog_viewport_io_outbound(struct pcie_port *pp)
> @@ -553,7 +553,6 @@ static void dw_pcie_prog_viewport_io_outbound(struct pcie_port *pp)
>  	dw_pcie_writel_rc(pp, PCIE_ATU_REGION_OUTBOUND | PCIE_ATU_REGION_INDEX1,
>  			  PCIE_ATU_VIEWPORT);
>  	dw_pcie_writel_rc(pp, PCIE_ATU_TYPE_IO, PCIE_ATU_CR1);
> -	dw_pcie_writel_rc(pp, PCIE_ATU_ENABLE, PCIE_ATU_CR2);
>  	dw_pcie_writel_rc(pp, pp->io_base, PCIE_ATU_LOWER_BASE);
>  	dw_pcie_writel_rc(pp, (pp->io_base >> 32), PCIE_ATU_UPPER_BASE);
>  	dw_pcie_writel_rc(pp, pp->io_base + pp->config.io_size - 1,
> @@ -561,6 +560,7 @@ static void dw_pcie_prog_viewport_io_outbound(struct pcie_port *pp)
>  	dw_pcie_writel_rc(pp, pp->config.io_bus_addr, PCIE_ATU_LOWER_TARGET);
>  	dw_pcie_writel_rc(pp, upper_32_bits(pp->config.io_bus_addr),
>  			  PCIE_ATU_UPPER_TARGET);
> +	dw_pcie_writel_rc(pp, PCIE_ATU_ENABLE, PCIE_ATU_CR2);
>  }
>  
>  static int dw_pcie_rd_other_conf(struct pcie_port *pp, struct pci_bus *bus,
> 


^ permalink raw reply	[flat|nested] 15+ messages in thread

* RE: [PATCH 2/2] PCI:designware:Fix iATU programming for cfg1, io and mem viewport
  2014-02-20  5:22 ` [PATCH 2/2] PCI:designware:Fix iATU programming for cfg1, io and mem viewport Mohit Kumar
@ 2014-02-20  6:45   ` Mohit KUMAR DCG
  2014-02-20 11:38   ` Kishon Vijay Abraham I
  1 sibling, 0 replies; 15+ messages in thread
From: Mohit KUMAR DCG @ 2014-02-20  6:45 UTC (permalink / raw)
  To: jg1.han; +Cc: Ajay KHANDELWAL, Bjorn Helgaas, spear-devel, linux-pci, stable

K2NjIHN0YWJsZUB2Z2VyLmtlcm5lLm9yZw0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0t
DQo+IEZyb206IE1vaGl0IEtVTUFSIERDRw0KPiBTZW50OiBUaHVyc2RheSwgRmVicnVhcnkgMjAs
IDIwMTQgMTA6NTMgQU0NCj4gVG86IGpnMS5oYW5Ac2Ftc3VuZy5jb20NCj4gQ2M6IE1vaGl0IEtV
TUFSIERDRzsgQWpheSBLSEFOREVMV0FMOyBCam9ybiBIZWxnYWFzOyBzcGVhci1kZXZlbDsNCj4g
bGludXgtcGNpQHZnZXIua2VybmVsLm9yZw0KPiBTdWJqZWN0OiBbUEFUQ0ggMi8yXSBQQ0k6ZGVz
aWdud2FyZTpGaXggaUFUVSBwcm9ncmFtbWluZyBmb3IgY2ZnMSwgaW8gYW5kDQo+IG1lbSB2aWV3
cG9ydA0KPiANCj4gVGhpcyBwYXRjaCBjb3JyZWN0IGlBVFUgcHJvZ3JhbW1pbmcgZm9yIGNmZzEs
IGlvIGFuZCBtZW0gdmlld3BvcnQuDQo+IEVuYWJsZSBBVFUgb25seSBhZnRlciBjb25maWd1cmlu
ZyBpdC4NCj4gDQo+IFNpZ25lZC1vZmYtYnk6IE1vaGl0IEt1bWFyIDxtb2hpdC5rdW1hckBzdC5j
b20+DQo+IFNpZ25lZC1vZmYtYnk6IEFqYXkgS2hhbmRlbHdhbCA8YWpheS5raGFuZGVsd2FsQHN0
LmNvbT4NCj4gQ2M6IEppbmdvbyBIYW4gPGpnMS5oYW5Ac2Ftc3VuZy5jb20+DQo+IENjOiBCam9y
biBIZWxnYWFzIDxiaGVsZ2Fzc0Bnb29nbGUuY29tPg0KPiBDYzogc3BlYXItZGV2ZWxAbGlzdC5z
dC5jb20NCj4gQ2M6IGxpbnV4LXBjaUB2Z2VyLmtlcm5lbC5vcmcNCj4gLS0tDQo+ICBkcml2ZXJz
L3BjaS9ob3N0L3BjaWUtZGVzaWdud2FyZS5jIHwgICAgNiArKystLS0NCj4gIDEgZmlsZXMgY2hh
bmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQ0KPiANCj4gZGlmZiAtLWdpdCBh
L2RyaXZlcnMvcGNpL2hvc3QvcGNpZS1kZXNpZ253YXJlLmMgYi9kcml2ZXJzL3BjaS9ob3N0L3Bj
aWUtDQo+IGRlc2lnbndhcmUuYw0KPiBpbmRleCAzOTE5NjZmLi40NmY0YTE5IDEwMDY0NA0KPiAt
LS0gYS9kcml2ZXJzL3BjaS9ob3N0L3BjaWUtZGVzaWdud2FyZS5jDQo+ICsrKyBiL2RyaXZlcnMv
cGNpL2hvc3QvcGNpZS1kZXNpZ253YXJlLmMNCj4gQEAgLTUyMiwxMyArNTIyLDEzIEBAIHN0YXRp
YyB2b2lkIGR3X3BjaWVfcHJvZ192aWV3cG9ydF9jZmcxKHN0cnVjdA0KPiBwY2llX3BvcnQgKnBw
LCB1MzIgYnVzZGV2KQ0KPiAgCWR3X3BjaWVfd3JpdGVsX3JjKHBwLCBQQ0lFX0FUVV9SRUdJT05f
T1VUQk9VTkQgfA0KPiBQQ0lFX0FUVV9SRUdJT05fSU5ERVgxLA0KPiAgCQkJICBQQ0lFX0FUVV9W
SUVXUE9SVCk7DQo+ICAJZHdfcGNpZV93cml0ZWxfcmMocHAsIFBDSUVfQVRVX1RZUEVfQ0ZHMSwg
UENJRV9BVFVfQ1IxKTsNCj4gLQlkd19wY2llX3dyaXRlbF9yYyhwcCwgUENJRV9BVFVfRU5BQkxF
LCBQQ0lFX0FUVV9DUjIpOw0KPiAgCWR3X3BjaWVfd3JpdGVsX3JjKHBwLCBwcC0+Y2ZnMV9iYXNl
LCBQQ0lFX0FUVV9MT1dFUl9CQVNFKTsNCj4gIAlkd19wY2llX3dyaXRlbF9yYyhwcCwgKHBwLT5j
ZmcxX2Jhc2UgPj4gMzIpLA0KPiBQQ0lFX0FUVV9VUFBFUl9CQVNFKTsNCj4gIAlkd19wY2llX3dy
aXRlbF9yYyhwcCwgcHAtPmNmZzFfYmFzZSArIHBwLT5jb25maWcuY2ZnMV9zaXplIC0gMSwNCj4g
IAkJCSAgUENJRV9BVFVfTElNSVQpOw0KPiAgCWR3X3BjaWVfd3JpdGVsX3JjKHBwLCBidXNkZXYs
IFBDSUVfQVRVX0xPV0VSX1RBUkdFVCk7DQo+ICAJZHdfcGNpZV93cml0ZWxfcmMocHAsIDAsIFBD
SUVfQVRVX1VQUEVSX1RBUkdFVCk7DQo+ICsJZHdfcGNpZV93cml0ZWxfcmMocHAsIFBDSUVfQVRV
X0VOQUJMRSwgUENJRV9BVFVfQ1IyKTsNCj4gIH0NCj4gDQo+ICBzdGF0aWMgdm9pZCBkd19wY2ll
X3Byb2dfdmlld3BvcnRfbWVtX291dGJvdW5kKHN0cnVjdCBwY2llX3BvcnQgKnBwKQ0KPiBAQCAt
NTM3LDcgKzUzNyw2IEBAIHN0YXRpYyB2b2lkDQo+IGR3X3BjaWVfcHJvZ192aWV3cG9ydF9tZW1f
b3V0Ym91bmQoc3RydWN0IHBjaWVfcG9ydCAqcHApDQo+ICAJZHdfcGNpZV93cml0ZWxfcmMocHAs
IFBDSUVfQVRVX1JFR0lPTl9PVVRCT1VORCB8DQo+IFBDSUVfQVRVX1JFR0lPTl9JTkRFWDAsDQo+
ICAJCQkgIFBDSUVfQVRVX1ZJRVdQT1JUKTsNCj4gIAlkd19wY2llX3dyaXRlbF9yYyhwcCwgUENJ
RV9BVFVfVFlQRV9NRU0sIFBDSUVfQVRVX0NSMSk7DQo+IC0JZHdfcGNpZV93cml0ZWxfcmMocHAs
IFBDSUVfQVRVX0VOQUJMRSwgUENJRV9BVFVfQ1IyKTsNCj4gIAlkd19wY2llX3dyaXRlbF9yYyhw
cCwgcHAtPm1lbV9iYXNlLCBQQ0lFX0FUVV9MT1dFUl9CQVNFKTsNCj4gIAlkd19wY2llX3dyaXRl
bF9yYyhwcCwgKHBwLT5tZW1fYmFzZSA+PiAzMiksDQo+IFBDSUVfQVRVX1VQUEVSX0JBU0UpOw0K
PiAgCWR3X3BjaWVfd3JpdGVsX3JjKHBwLCBwcC0+bWVtX2Jhc2UgKyBwcC0+Y29uZmlnLm1lbV9z
aXplIC0gMSwNCj4gQEAgLTU0NSw2ICs1NDQsNyBAQCBzdGF0aWMgdm9pZA0KPiBkd19wY2llX3By
b2dfdmlld3BvcnRfbWVtX291dGJvdW5kKHN0cnVjdCBwY2llX3BvcnQgKnBwKQ0KPiAgCWR3X3Bj
aWVfd3JpdGVsX3JjKHBwLCBwcC0+Y29uZmlnLm1lbV9idXNfYWRkciwNCj4gUENJRV9BVFVfTE9X
RVJfVEFSR0VUKTsNCj4gIAlkd19wY2llX3dyaXRlbF9yYyhwcCwgdXBwZXJfMzJfYml0cyhwcC0+
Y29uZmlnLm1lbV9idXNfYWRkciksDQo+ICAJCQkgIFBDSUVfQVRVX1VQUEVSX1RBUkdFVCk7DQo+
ICsJZHdfcGNpZV93cml0ZWxfcmMocHAsIFBDSUVfQVRVX0VOQUJMRSwgUENJRV9BVFVfQ1IyKTsN
Cj4gIH0NCj4gDQo+ICBzdGF0aWMgdm9pZCBkd19wY2llX3Byb2dfdmlld3BvcnRfaW9fb3V0Ym91
bmQoc3RydWN0IHBjaWVfcG9ydCAqcHApIEBADQo+IC01NTMsNyArNTUzLDYgQEAgc3RhdGljIHZv
aWQgZHdfcGNpZV9wcm9nX3ZpZXdwb3J0X2lvX291dGJvdW5kKHN0cnVjdA0KPiBwY2llX3BvcnQg
KnBwKQ0KPiAgCWR3X3BjaWVfd3JpdGVsX3JjKHBwLCBQQ0lFX0FUVV9SRUdJT05fT1VUQk9VTkQg
fA0KPiBQQ0lFX0FUVV9SRUdJT05fSU5ERVgxLA0KPiAgCQkJICBQQ0lFX0FUVV9WSUVXUE9SVCk7
DQo+ICAJZHdfcGNpZV93cml0ZWxfcmMocHAsIFBDSUVfQVRVX1RZUEVfSU8sIFBDSUVfQVRVX0NS
MSk7DQo+IC0JZHdfcGNpZV93cml0ZWxfcmMocHAsIFBDSUVfQVRVX0VOQUJMRSwgUENJRV9BVFVf
Q1IyKTsNCj4gIAlkd19wY2llX3dyaXRlbF9yYyhwcCwgcHAtPmlvX2Jhc2UsIFBDSUVfQVRVX0xP
V0VSX0JBU0UpOw0KPiAgCWR3X3BjaWVfd3JpdGVsX3JjKHBwLCAocHAtPmlvX2Jhc2UgPj4gMzIp
LA0KPiBQQ0lFX0FUVV9VUFBFUl9CQVNFKTsNCj4gIAlkd19wY2llX3dyaXRlbF9yYyhwcCwgcHAt
PmlvX2Jhc2UgKyBwcC0+Y29uZmlnLmlvX3NpemUgLSAxLCBAQCAtDQo+IDU2MSw2ICs1NjAsNyBA
QCBzdGF0aWMgdm9pZCBkd19wY2llX3Byb2dfdmlld3BvcnRfaW9fb3V0Ym91bmQoc3RydWN0DQo+
IHBjaWVfcG9ydCAqcHApDQo+ICAJZHdfcGNpZV93cml0ZWxfcmMocHAsIHBwLT5jb25maWcuaW9f
YnVzX2FkZHIsDQo+IFBDSUVfQVRVX0xPV0VSX1RBUkdFVCk7DQo+ICAJZHdfcGNpZV93cml0ZWxf
cmMocHAsIHVwcGVyXzMyX2JpdHMocHAtPmNvbmZpZy5pb19idXNfYWRkciksDQo+ICAJCQkgIFBD
SUVfQVRVX1VQUEVSX1RBUkdFVCk7DQo+ICsJZHdfcGNpZV93cml0ZWxfcmMocHAsIFBDSUVfQVRV
X0VOQUJMRSwgUENJRV9BVFVfQ1IyKTsNCj4gIH0NCj4gDQo+ICBzdGF0aWMgaW50IGR3X3BjaWVf
cmRfb3RoZXJfY29uZihzdHJ1Y3QgcGNpZV9wb3J0ICpwcCwgc3RydWN0IHBjaV9idXMgKmJ1cywN
Cj4gLS0NCj4gMS43LjAuMQ0KDQo=

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [PATCH 2/2] PCI:designware:Fix iATU programming for cfg1, io and mem viewport
  2014-02-20  5:22 [PATCH 1/2] PCI:designware:Fix comment for setting number of lanes Mohit Kumar
@ 2014-02-20  5:22 ` Mohit Kumar
  2014-02-20  6:45   ` Mohit KUMAR DCG
  2014-02-20 11:38   ` Kishon Vijay Abraham I
  0 siblings, 2 replies; 15+ messages in thread
From: Mohit Kumar @ 2014-02-20  5:22 UTC (permalink / raw)
  To: jg1.han
  Cc: Mohit Kumar, Ajay Khandelwal, Bjorn Helgaas, spear-devel, linux-pci

This patch correct iATU programming for cfg1, io and mem viewport.
Enable ATU only after configuring it.

Signed-off-by: Mohit Kumar <mohit.kumar@st.com>
Signed-off-by: Ajay Khandelwal <ajay.khandelwal@st.com>
Cc: Jingoo Han <jg1.han@samsung.com>
Cc: Bjorn Helgaas <bhelgass@google.com>
Cc: spear-devel@list.st.com
Cc: linux-pci@vger.kernel.org
---
 drivers/pci/host/pcie-designware.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/pci/host/pcie-designware.c b/drivers/pci/host/pcie-designware.c
index 391966f..46f4a19 100644
--- a/drivers/pci/host/pcie-designware.c
+++ b/drivers/pci/host/pcie-designware.c
@@ -522,13 +522,13 @@ static void dw_pcie_prog_viewport_cfg1(struct pcie_port *pp, u32 busdev)
 	dw_pcie_writel_rc(pp, PCIE_ATU_REGION_OUTBOUND | PCIE_ATU_REGION_INDEX1,
 			  PCIE_ATU_VIEWPORT);
 	dw_pcie_writel_rc(pp, PCIE_ATU_TYPE_CFG1, PCIE_ATU_CR1);
-	dw_pcie_writel_rc(pp, PCIE_ATU_ENABLE, PCIE_ATU_CR2);
 	dw_pcie_writel_rc(pp, pp->cfg1_base, PCIE_ATU_LOWER_BASE);
 	dw_pcie_writel_rc(pp, (pp->cfg1_base >> 32), PCIE_ATU_UPPER_BASE);
 	dw_pcie_writel_rc(pp, pp->cfg1_base + pp->config.cfg1_size - 1,
 			  PCIE_ATU_LIMIT);
 	dw_pcie_writel_rc(pp, busdev, PCIE_ATU_LOWER_TARGET);
 	dw_pcie_writel_rc(pp, 0, PCIE_ATU_UPPER_TARGET);
+	dw_pcie_writel_rc(pp, PCIE_ATU_ENABLE, PCIE_ATU_CR2);
 }
 
 static void dw_pcie_prog_viewport_mem_outbound(struct pcie_port *pp)
@@ -537,7 +537,6 @@ static void dw_pcie_prog_viewport_mem_outbound(struct pcie_port *pp)
 	dw_pcie_writel_rc(pp, PCIE_ATU_REGION_OUTBOUND | PCIE_ATU_REGION_INDEX0,
 			  PCIE_ATU_VIEWPORT);
 	dw_pcie_writel_rc(pp, PCIE_ATU_TYPE_MEM, PCIE_ATU_CR1);
-	dw_pcie_writel_rc(pp, PCIE_ATU_ENABLE, PCIE_ATU_CR2);
 	dw_pcie_writel_rc(pp, pp->mem_base, PCIE_ATU_LOWER_BASE);
 	dw_pcie_writel_rc(pp, (pp->mem_base >> 32), PCIE_ATU_UPPER_BASE);
 	dw_pcie_writel_rc(pp, pp->mem_base + pp->config.mem_size - 1,
@@ -545,6 +544,7 @@ static void dw_pcie_prog_viewport_mem_outbound(struct pcie_port *pp)
 	dw_pcie_writel_rc(pp, pp->config.mem_bus_addr, PCIE_ATU_LOWER_TARGET);
 	dw_pcie_writel_rc(pp, upper_32_bits(pp->config.mem_bus_addr),
 			  PCIE_ATU_UPPER_TARGET);
+	dw_pcie_writel_rc(pp, PCIE_ATU_ENABLE, PCIE_ATU_CR2);
 }
 
 static void dw_pcie_prog_viewport_io_outbound(struct pcie_port *pp)
@@ -553,7 +553,6 @@ static void dw_pcie_prog_viewport_io_outbound(struct pcie_port *pp)
 	dw_pcie_writel_rc(pp, PCIE_ATU_REGION_OUTBOUND | PCIE_ATU_REGION_INDEX1,
 			  PCIE_ATU_VIEWPORT);
 	dw_pcie_writel_rc(pp, PCIE_ATU_TYPE_IO, PCIE_ATU_CR1);
-	dw_pcie_writel_rc(pp, PCIE_ATU_ENABLE, PCIE_ATU_CR2);
 	dw_pcie_writel_rc(pp, pp->io_base, PCIE_ATU_LOWER_BASE);
 	dw_pcie_writel_rc(pp, (pp->io_base >> 32), PCIE_ATU_UPPER_BASE);
 	dw_pcie_writel_rc(pp, pp->io_base + pp->config.io_size - 1,
@@ -561,6 +560,7 @@ static void dw_pcie_prog_viewport_io_outbound(struct pcie_port *pp)
 	dw_pcie_writel_rc(pp, pp->config.io_bus_addr, PCIE_ATU_LOWER_TARGET);
 	dw_pcie_writel_rc(pp, upper_32_bits(pp->config.io_bus_addr),
 			  PCIE_ATU_UPPER_TARGET);
+	dw_pcie_writel_rc(pp, PCIE_ATU_ENABLE, PCIE_ATU_CR2);
 }
 
 static int dw_pcie_rd_other_conf(struct pcie_port *pp, struct pci_bus *bus,
-- 
1.7.0.1


^ permalink raw reply related	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2014-02-27  4:11 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-02-21  1:31 [PATCH 2/2] PCI:designware:Fix iATU programming for cfg1, io and mem viewport Jingoo Han
2014-02-21  5:28 ` Kishon Vijay Abraham I
2014-02-26  6:31   ` Ajay Khandelwal
2014-02-26  7:47     ` Kishon Vijay Abraham I
2014-02-26 10:52       ` Pratyush Anand
2014-02-27  1:18         ` Jingoo Han
2014-02-27  1:37           ` Jingoo Han
2014-02-27  4:10             ` Pratyush Anand
  -- strict thread matches above, loose matches on Subject: below --
2014-02-20  5:22 [PATCH 1/2] PCI:designware:Fix comment for setting number of lanes Mohit Kumar
2014-02-20  5:22 ` [PATCH 2/2] PCI:designware:Fix iATU programming for cfg1, io and mem viewport Mohit Kumar
2014-02-20  6:45   ` Mohit KUMAR DCG
2014-02-20 11:38   ` Kishon Vijay Abraham I
2014-02-20 11:58     ` Mohit KUMAR DCG
2014-02-20 12:13       ` Kishon Vijay Abraham I
2014-02-20 13:33         ` Mohit KUMAR DCG
2014-02-21  3:54         ` Pratyush Anand

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.