From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: [v9,4/6] edac: synopsys: Add EDAC ECC support for ZynqMP DDRC From: Borislav Petkov Message-Id: <20181017163026.GF22535@zn.tnic> Date: Wed, 17 Oct 2018 18:30:26 +0200 To: Manish Narani Cc: robh+dt@kernel.org, mark.rutland@arm.com, michal.simek@xilinx.com, mchehab@kernel.org, amit.kucheria@linaro.org, sudeep.holla@arm.com, olof@lixom.net, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-edac@vger.kernel.org List-ID: T24gTW9uLCBPY3QgMTUsIDIwMTggYXQgMTA6NTk6NDZBTSArMDUzMCwgTWFuaXNoIE5hcmFuaSB3 cm90ZToKPiBBZGQgRURBQyBFQ0Mgc3VwcG9ydCBmb3IgWnlucU1QIEREUkMgSVAuIFRoZSBJUCBz dXBwb3J0cyBpbnRlcnJ1cHRzIGZvcgo+IGNvcnJlY3RlZCBhbmQgdW5jb3JyZWN0ZWQgZXJyb3Jz LiBBZGQgaW50ZXJydXB0IGhhbmRsZXJzIGZvciB0aGUgc2FtZS4KPiAKPiBTaWduZWQtb2ZmLWJ5 OiBNYW5pc2ggTmFyYW5pIDxtYW5pc2gubmFyYW5pQHhpbGlueC5jb20+Cj4gLS0tCj4gIGRyaXZl cnMvZWRhYy9LY29uZmlnICAgICAgICAgfCAgIDIgKy0KPiAgZHJpdmVycy9lZGFjL3N5bm9wc3lz X2VkYWMuYyB8IDMyNCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0t Cj4gIDIgZmlsZXMgY2hhbmdlZCwgMzA4IGluc2VydGlvbnMoKyksIDE4IGRlbGV0aW9ucygtKQo+ IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2VkYWMvS2NvbmZpZyBiL2RyaXZlcnMvZWRhYy9LY29u ZmlnCj4gaW5kZXggNTczMDRiMi4uN2M0MGViMiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2VkYWMv S2NvbmZpZwo+ICsrKyBiL2RyaXZlcnMvZWRhYy9LY29uZmlnCj4gQEAgLTQ0MSw3ICs0NDEsNyBA QCBjb25maWcgRURBQ19BTFRFUkFfU0RNTUMKPiAgCj4gIGNvbmZpZyBFREFDX1NZTk9QU1lTCj4g IAl0cmlzdGF0ZSAiU3lub3BzeXMgRERSIE1lbW9yeSBDb250cm9sbGVyIgo+IC0JZGVwZW5kcyBv biBBUkNIX1pZTlEKPiArCWRlcGVuZHMgb24gQVJDSF9aWU5RIHx8IEFSQ0hfWllOUU1QCj4gIAlo ZWxwCj4gIAkgIFN1cHBvcnQgZm9yIGVycm9yIGRldGVjdGlvbiBhbmQgY29ycmVjdGlvbiBvbiB0 aGUgU3lub3BzeXMgRERSCj4gIAkgIG1lbW9yeSBjb250cm9sbGVyLgo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2VkYWMvc3lub3BzeXNfZWRhYy5jIGIvZHJpdmVycy9lZGFjL3N5bm9wc3lzX2VkYWMu Ywo+IGluZGV4IGQxOTk5ZTAuLjYwM2M0YmQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9lZGFjL3N5 bm9wc3lzX2VkYWMuYwo+ICsrKyBiL2RyaXZlcnMvZWRhYy9zeW5vcHN5c19lZGFjLmMKPiBAQCAt MjIsNiArMjIsNyBAQAo+ICAjaW5jbHVkZSA8bGludXgvZWRhYy5oPgo+ICAjaW5jbHVkZSA8bGlu dXgvbW9kdWxlLmg+Cj4gICNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KPiArI2lu Y2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgo+ICAjaW5jbHVkZSA8bGludXgvb2YuaD4KPiAgI2lu Y2x1ZGUgPGxpbnV4L29mX2RldmljZS5oPgo+ICAKPiBAQCAtMjcyLDYgKzI3Myw4IEBACj4gICAq IEBiYW5rOglCYW5rIG51bWJlci4KPiAgICogQGJpdHBvczoJQml0IHBvc2l0aW9uLgo+ICAgKiBA ZGF0YToJRGF0YSBjYXVzaW5nIHRoZSBlcnJvci4KPiArICogQGJhbmtncnBucjoJQmFuayBncm91 cCBudW1iZXIuCj4gKyAqIEBibGtucjoJQmxvY2sgbnVtYmVyLgo+ICAgKi8KPiAgc3RydWN0IGVj Y19lcnJvcl9pbmZvIHsKPiAgCXUzMiByb3c7Cj4gQEAgLTI3OSw2ICsyODIsOCBAQCBzdHJ1Y3Qg ZWNjX2Vycm9yX2luZm8gewo+ICAJdTMyIGJhbms7Cj4gIAl1MzIgYml0cG9zOwo+ICAJdTMyIGRh dGE7Cj4gKwl1MzIgYmFua2dycG5yOwo+ICsJdTMyIGJsa25yOwo+ICB9Owo+ICAKPiAgLyoqCj4g QEAgLTM4NSw2ICszOTAsNjYgQEAgc3RhdGljIGludCB6eW5xX2dldF9lcnJvcl9pbmZvKHN0cnVj dCBzeW5wc19lZGFjX3ByaXYgKnByaXYpCj4gIH0KPiAgCj4gIC8qKgo+ICsgKiB6eW5xbXBfZ2V0 X2Vycm9yX2luZm8gLSBHZXQgdGhlIGN1cnJlbnQgRUNDIGVycm9yIGluZm8uCj4gKyAqIEBwcml2 OglERFIgbWVtb3J5IGNvbnRyb2xsZXIgcHJpdmF0ZSBpbnN0YW5jZSBkYXRhLgo+ICsgKgo+ICsg KiBSZXR1cm46IG9uZSBpZiB0aGVyZSBpcyBubyBlcnJvciBvdGhlcndpc2UgcmV0dXJucyB6ZXJv Lgo+ICsgKi8KPiArc3RhdGljIGludCB6eW5xbXBfZ2V0X2Vycm9yX2luZm8oc3RydWN0IHN5bnBz X2VkYWNfcHJpdiAqcHJpdikKPiArewo+ICsJc3RydWN0IHN5bnBzX2VjY19zdGF0dXMgKnA7Cj4g Kwl1MzIgcmVndmFsLCBjbGVhcnZhbCA9IDA7Cj4gKwl2b2lkIF9faW9tZW0gKmJhc2U7Cj4gKwo+ ICsJYmFzZSA9IHByaXYtPmJhc2VhZGRyOwo+ICsJcCA9ICZwcml2LT5zdGF0Owo+ICsKPiArCXJl Z3ZhbCA9IHJlYWRsKGJhc2UgKyBFQ0NfU1RBVF9PRlNUKTsKPiArCWlmICghcmVndmFsKQo+ICsJ CXJldHVybiAxOwo+ICsKPiArCXAtPmNlX2NudCA9IChyZWd2YWwgJiBFQ0NfU1RBVF9DRUNOVF9N QVNLKSA+PiBFQ0NfU1RBVF9DRUNOVF9TSElGVDsKPiArCXAtPnVlX2NudCA9IChyZWd2YWwgJiBF Q0NfU1RBVF9VRUNOVF9NQVNLKSA+PiBFQ0NfU1RBVF9VRUNOVF9TSElGVDsKPiArCXAtPmNlaW5m by5iaXRwb3MgPSAocmVndmFsICYgRUNDX1NUQVRfQklUTlVNX01BU0spOwo+ICsKPiArCXJlZ3Zh bCA9IHJlYWRsKGJhc2UgKyBFQ0NfQ0VBRERSMF9PRlNUKTsKPiArCWlmICghcC0+Y2VfY250KQo+ ICsJCWdvdG8gdWVfZXJyOwoKVGhpcyBjaGVjayBzaG91bGQgaGFwcGVuIHJpZ2h0IHVuZGVyIHRo ZSBwLT5jZV9jbnQgYXNzaWdubWVudCBhIGNvdXBsZQpvZiBsaW5lcyBhYm92ZSBpdC4gT3RoZXJ3 aXNlIHRoZSByZWFkbCgpIGlzIHVzZWxlc3MgaWYgeW91IGp1bXAgdG8gdGhlCnVlX2VyciBsYWJl bC4KCklPVywgdGhvc2UgdHdvIHJlYWRsKCkncyBzaG91bGQgaGFwcGVuICphZnRlciogdGhlIGNl L3VlX2NudCBjaGVja3MuCgo+ICsKPiArCXAtPmNlaW5mby5yb3cgPSAocmVndmFsICYgRUNDX0NF QUREUjBfUldfTUFTSyk7Cj4gKwlyZWd2YWwgPSByZWFkbChiYXNlICsgRUNDX0NFQUREUjFfT0ZT VCk7Cj4gKwlwLT5jZWluZm8uYmFuayA9IChyZWd2YWwgJiBFQ0NfQ0VBRERSMV9CTktOUl9NQVNL KSA+Pgo+ICsJCQkJCUVDQ19DRUFERFIxX0JOS05SX1NISUZUOwo+ICsJcC0+Y2VpbmZvLmJhbmtn cnBuciA9IChyZWd2YWwgJglFQ0NfQ0VBRERSMV9CTktHUlBfTUFTSykgPj4KPiArCQkJCQlFQ0Nf Q0VBRERSMV9CTktHUlBfU0hJRlQ7Cj4gKwlwLT5jZWluZm8uYmxrbnIgPSAocmVndmFsICYgRUND X0NFQUREUjFfQkxLTlJfTUFTSyk7Cj4gKwlwLT5jZWluZm8uZGF0YSA9IHJlYWRsKGJhc2UgKyBF Q0NfQ1NZTkQwX09GU1QpOwo+ICsJZWRhY19kYmcoMiwgIkVDQ0NTWU4wOiAweCUwOFggRUNDQ1NZ TjE6IDB4JTA4WCBFQ0NDU1lOMjogMHglMDhYXG4iLAo+ICsJCSByZWFkbChiYXNlICsgRUNDX0NT WU5EMF9PRlNUKSwgcmVhZGwoYmFzZSArIEVDQ19DU1lORDFfT0ZTVCksCj4gKwkJIHJlYWRsKGJh c2UgKyBFQ0NfQ1NZTkQyX09GU1QpKTsKPiArdWVfZXJyOgo+ICsJcmVndmFsID0gcmVhZGwoYmFz ZSArIEVDQ19VRUFERFIwX09GU1QpOwo+ICsJaWYgKCFwLT51ZV9jbnQpCj4gKwkJZ290byBvdXQ7 Cj4gKwo+ICsJcC0+dWVpbmZvLnJvdyA9IChyZWd2YWwgJiBFQ0NfQ0VBRERSMF9SV19NQVNLKTsK PiArCXJlZ3ZhbCA9IHJlYWRsKGJhc2UgKyBFQ0NfVUVBRERSMV9PRlNUKTsKPiArCXAtPnVlaW5m by5iYW5rZ3JwbnIgPSAocmVndmFsICYgRUNDX0NFQUREUjFfQk5LR1JQX01BU0spID4+Cj4gKwkJ CQkJRUNDX0NFQUREUjFfQk5LR1JQX1NISUZUOwo+ICsJcC0+dWVpbmZvLmJhbmsgPSAocmVndmFs ICYgRUNDX0NFQUREUjFfQk5LTlJfTUFTSykgPj4KPiArCQkJCQlFQ0NfQ0VBRERSMV9CTktOUl9T SElGVDsKPiArCXAtPnVlaW5mby5ibGtuciA9IChyZWd2YWwgJiBFQ0NfQ0VBRERSMV9CTEtOUl9N QVNLKTsKPiArCXAtPnVlaW5mby5kYXRhID0gcmVhZGwoYmFzZSArIEVDQ19VRVNZTkQwX09GU1Qp Owo+ICtvdXQ6Cj4gKwljbGVhcnZhbCA9IEVDQ19DVFJMX0NMUl9DRV9FUlIgfCBFQ0NfQ1RSTF9D TFJfQ0VfRVJSQ05UOwo+ICsJY2xlYXJ2YWwgfD0gRUNDX0NUUkxfQ0xSX1VFX0VSUiB8IEVDQ19D VFJMX0NMUl9VRV9FUlJDTlQ7Cj4gKwl3cml0ZWwoY2xlYXJ2YWwsIGJhc2UgKyBFQ0NfQ0xSX09G U1QpOwo+ICsJd3JpdGVsKDB4MCwgYmFzZSArIEVDQ19DTFJfT0ZTVCk7Cj4gKwo+ICsJcmV0dXJu IDA7Cj4gK30KPiArCgouLi4KCj4gK3N0YXRpYyBpbnQgc2V0dXBfaXJxKHN0cnVjdCBtZW1fY3Rs X2luZm8gKm1jaSwKPiArCQkJICBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoKQWxpZ24g YXJndW1lbnRzIG9uIHRoZSBvcGVuaW5nIGJyYWNlLgoKPiArewo+ICsJc3RydWN0IHN5bnBzX2Vk YWNfcHJpdiAqcHJpdiA9IG1jaS0+cHZ0X2luZm87Cj4gKwlpbnQgcmV0LCBpcnE7Cj4gKwo+ICsJ aXJxID0gcGxhdGZvcm1fZ2V0X2lycShwZGV2LCAwKTsKPiArCWlmIChpcnEgPCAwKSB7Cj4gKwkJ ZWRhY19wcmludGsoS0VSTl9FUlIsIEVEQUNfTUMsCj4gKwkJCSAgICAiTm8gSVJRICVkIGluIERU XG4iLCBpcnEpOwo+ICsJCXJldHVybiBpcnE7Cj4gKwl9Cj4gKwo+ICsJcmV0ID0gZGV2bV9yZXF1 ZXN0X2lycSgmcGRldi0+ZGV2LCBpcnEsIGludHJfaGFuZGxlciwKPiArCQkJICAgICAgIDAsIGRl dl9uYW1lKCZwZGV2LT5kZXYpLCBtY2kpOwo+ICsJaWYgKHJldCA8IDApIHsKPiArCQllZGFjX3By aW50ayhLRVJOX0VSUiwgRURBQ19NQywgIkZhaWxlZCB0byByZXF1ZXN0IElSUVxuIik7Cj4gKwkJ cmV0dXJuIHJldDsKPiArCX0KPiArCj4gKwllbmFibGVfaW50cihwcml2KTsKPiArCj4gKwlyZXR1 cm4gMDsKPiArfQo+ICsKPiAgc3RhdGljIGNvbnN0IHN0cnVjdCBzeW5wc19wbGF0Zm9ybV9kYXRh IHp5bnFfZWRhY19kZWYgPSB7Cj4gIAkuZ2V0X2Vycm9yX2luZm8JPSB6eW5xX2dldF9lcnJvcl9p bmZvLAo+ICAJLmdldF9tdHlwZQk9IHp5bnFfZ2V0X210eXBlLAo+IEBAIC02MTMsOSArODcyLDI2 IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3lucHNfcGxhdGZvcm1fZGF0YSB6eW5xX2VkYWNfZGVm ID0gewo+ICAJLnF1aXJrcwkJPSAwLAo+ICB9Owo+ICAKPiArc3RhdGljIGNvbnN0IHN0cnVjdCBz eW5wc19wbGF0Zm9ybV9kYXRhIHp5bnFtcF9lZGFjX2RlZiA9IHsKPiArCS5nZXRfZXJyb3JfaW5m bwk9IHp5bnFtcF9nZXRfZXJyb3JfaW5mbywKPiArCS5nZXRfbXR5cGUJPSB6eW5xbXBfZ2V0X210 eXBlLAo+ICsJLmdldF9kdHlwZQk9IHp5bnFtcF9nZXRfZHR5cGUsCj4gKwkuZ2V0X2VjY19zdGF0 ZQk9IHp5bnFtcF9nZXRfZWNjX3N0YXRlLAo+ICsJLnF1aXJrcwkJPSBERFJfRUNDX0lOVFJfU1VQ UE9SVCwKPiArfTsKPiArCj4gIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHN5bnBz X2VkYWNfbWF0Y2hbXSA9IHsKPiAtCXsgLmNvbXBhdGlibGUgPSAieGxueCx6eW5xLWRkcmMtYTA1 IiwgLmRhdGEgPSAodm9pZCAqKSZ6eW5xX2VkYWNfZGVmIH0sCj4gLQl7IC8qIGVuZCBvZiB0YWJs ZSAqLyB9Cj4gKwl7Cj4gKwkJLmNvbXBhdGlibGUgPSAieGxueCx6eW5xLWRkcmMtYTA1IiwKPiAr CQkuZGF0YSA9ICh2b2lkICopJnp5bnFfZWRhY19kZWYKPiArCX0sCj4gKwl7Cj4gKwkJLmNvbXBh dGlibGUgPSAieGxueCx6eW5xbXAtZGRyYy0yLjQwYSIsCj4gKwkJLmRhdGEgPSAodm9pZCAqKSZ6 eW5xbXBfZWRhY19kZWYKPiArCX0sCj4gKwl7Cj4gKwkJLyogZW5kIG9mIHRhYmxlICovCj4gKwl9 Cj4gIH07Cj4gIAo+ICBNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBzeW5wc19lZGFjX21hdGNoKTsK PiBAQCAtNjc0LDYgKzk1MCwxMiBAQCBzdGF0aWMgaW50IG1jX3Byb2JlKHN0cnVjdCBwbGF0Zm9y bV9kZXZpY2UgKnBkZXYpCj4gIAo+ICAJbWNfaW5pdChtY2ksIHBkZXYpOwo+ICAKPiArCWlmIChw cml2LT5wX2RhdGEtPnF1aXJrcyAmIEREUl9FQ0NfSU5UUl9TVVBQT1JUKSB7Cj4gKwkJcmMgPSBz ZXR1cF9pcnEobWNpLCBwZGV2KTsKPiArCQlpZiAocmMpCj4gKwkJCWdvdG8gZnJlZV9lZGFjX21j Owo+ICsJfQo+ICsKPiAgCXJjID0gZWRhY19tY19hZGRfbWMobWNpKTsKPiAgCWlmIChyYykgewo+ ICAJCWVkYWNfcHJpbnRrKEtFUk5fRVJSLCBFREFDX01DLAo+IEBAIC02ODUsNyArOTY3LDkgQEAg c3RhdGljIGludCBtY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ICAJICog U3RhcnQgY2FwdHVyaW5nIHRoZSBjb3JyZWN0YWJsZSBhbmQgdW5jb3JyZWN0YWJsZSBlcnJvcnMu IEEgd3JpdGUgb2YKPiAgCSAqIDAgc3RhcnRzIHRoZSBjb3VudGVycy4KPiAgCSAqLwo+IC0Jd3Jp dGVsKDB4MCwgYmFzZWFkZHIgKyBFQ0NfQ1RSTF9PRlNUKTsKPiArCWlmICghKHByaXYtPnBfZGF0 YS0+cXVpcmtzICYgRERSX0VDQ19JTlRSX1NVUFBPUlQpKQo+ICsJCXdyaXRlbCgweDAsIGJhc2Vh ZGRyICsgRUNDX0NUUkxfT0ZTVCk7Cj4gKwo+ICAJcmV0dXJuIHJjOwo+ICAKPiAgZnJlZV9lZGFj X21jOgo+IEBAIC03MDMsNiArOTg3LDEyIEBAIHN0YXRpYyBpbnQgbWNfcHJvYmUoc3RydWN0IHBs YXRmb3JtX2RldmljZSAqcGRldikKPiAgc3RhdGljIGludCBtY19yZW1vdmUoc3RydWN0IHBsYXRm b3JtX2RldmljZSAqcGRldikKPiAgewo+ICAJc3RydWN0IG1lbV9jdGxfaW5mbyAqbWNpID0gcGxh dGZvcm1fZ2V0X2RydmRhdGEocGRldik7Cj4gKwlzdHJ1Y3Qgc3lucHNfZWRhY19wcml2ICpwcml2 Owo+ICsKPiArCXByaXYgPSBtY2ktPnB2dF9pbmZvOwoKT3Igc2ltcGx5OgoKCXN0cnVjdCBzeW5w c19lZGFjX3ByaXYgKnByaXYgPSBtY2ktPnB2dF9pbmZvOwoKPiArCWlmIChwcml2LT5wX2RhdGEt PnF1aXJrcyAmIEREUl9FQ0NfSU5UUl9TVVBQT1JUKQo+ICsJCWRpc2FibGVfaW50cihwcml2KTsK PiAgCj4gIAllZGFjX21jX2RlbF9tYygmcGRldi0+ZGV2KTsKPiAgCWVkYWNfbWNfZnJlZShtY2kp Owo+IC0tIAo+IDIuMS4xCj4K