From mboxrd@z Thu Jan 1 00:00:00 1970 From: Miquel Raynal Subject: [PATCH v3 00/17] Add System Error Interrupt support to Armada SoCs Date: Fri, 22 Jun 2018 17:14:15 +0200 Message-ID: <20180622151432.1566-1-miquel.raynal@bootlin.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=m.gmane.org@lists.infradead.org To: Thomas Gleixner , Jason Cooper , Marc Zyngier , Catalin Marinas , Will Deacon , Andrew Lunn , Gregory Clement , Sebastian Hesselbarth Cc: Mark Rutland , devicetree@vger.kernel.org, Haim Boot , Antoine Tenart , Hanna Hawa , Maxime Chevallier , Nadav Haklai , Rob Herring , Thomas Petazzoni , Miquel Raynal , linux-arm-kernel@lists.infradead.org List-Id: devicetree@vger.kernel.org VGhlIElDVSBpcyBhbiBJUlEgY2hpcCBmb3VuZCBpbiBBcm1hZGEgQ1AxMTAuIEl0IGN1cnJlbnRs eSBoYXMgMjA3IHdpcmVkCmlucHV0cy4gSXRzIHB1cnBvc2UgaXMgdG8gYWdncmVnYXRlIGFsbCBD UCBpbnRlcnJ1cHRzIGFuZCByZXBvcnQgdGhlbSB0bwp0aGUgQVAgdGhyb3VnaCBNU0lzLiBUaGUg SUNVIHdyaXRlcyBpbnRvIEdJQyByZWdpc3RlcnMgKEFQIHNpZGUpIGJ5IHdheQpvZiB0aGUgaW50 ZXJjb25uZWN0LiBUaGVzZSBpbnRlcnJ1cHRzIGNhbiBiZSBvZiBzZXZlcmFsIGdyb3VwczoKLSBT ZWN1UmUgKFNSKTsKLSBOb24tU2VjdVJlIChOU1IpOwotIFN5c3RlbSBFcnJvciBJbnRlcnJ1cHRz IChTRUkpOwotIFJBTSBFcnJvciBJbnRlcnJ1cHRzIChSRUkpOwotIC4uLgpFYWNoIElDVSB3aXJl ZCBpbnRlcnJ1cHQgY2FuIGJlIG9mIGFueSBvZiB0aGVzZSBncm91cHMuIFRoZSBncm91cCBpcwpl bmNvZGVkIGluIHRoZSBNU0kgcGF5bG9hZC4KClVudGlsIG5vdywgb25seSB0aGUgbm9uLXNlY3Vy ZSBpbnRlcnJ1cHRzIChOU1IpIHdlcmUgaGFuZGxlZCBieSB0aGUgSUNVCmRyaXZlci4gSW50ZXJy dXB0cyBvZiBhbm90aGVyIGdyb3VwIGNvdWxkIHdvcmsgYnkgY2hhbmNlIGJlY2F1c2UgdGhlCklD VSBkcml2ZXIgZG9lcyBub3QgZXJhc2UgYWxsIEFURiBjb25maWd1cmF0aW9uOyBpdCBvbmx5IGVy YXNlcyB0aGUKY29uZmlndXJhdGlvbiBmb3IgTlNSIGludGVycnVwdHMuCgpUaGlzIHNlcmllcyBh aW1zIGF0IGFkZGluZyBzdXBwb3J0IGZvciB0aGUgU3lzdGVtIEVycm9yIEludGVycnVwdHMKKFNF SSkuIEZvciB0aGlzIHB1cnBvc2UsIHRoZSBJQ1UgZHJpdmVyIGlzIGEgYml0IHJld29ya2VkIHRv IHNlcGFyYXRlCnRoZSBJQ1UgJ2dlbmVyaWMnIGNvbmZpZ3VyYXRpb24gZnJvbSB0aGUgTlNSLXJl bGF0ZWQgaGFuZGxpbmcuIFRoZW4sCnRoZSBTRUkgZHJpdmVyIChwYXJ0IG9mIHRoZSBHSUMpIGlz IGludHJvZHVjZWQgYW5kIGZpbmFsbHksIHN1cHBvcnQgZm9yClNFSSBpbnRlcnJ1cHRzIGFyZSBh bHNvIGFkZGVkIHRvIHRoZSBJQ1UgZHJpdmVyLgoKVGhlIFNFSSBkcml2ZXIgaXMgYSBiaXQgZGlm ZmVyZW50IHRoYW4gaXRzIGNvdXNpbiB0aGUgR0lDUCBiZWNhdXNlIGl0Cm11c3QgaGFuZGxlIE1T SXMgZnJvbSB0aGUgQ1BzLCBhcyB3ZWxsIGFzIHdpcmVkIGludGVycnVwdHMgZnJvbSB0aGUgQVAK aXRzZWxmLiBNU0lzIGFuZCB3aXJlZCBpbnRlcnJ1cHRzIHdpbGwgYXV0b21hdGljYWxseSB1cGRh dGUgdHdvCnJlZ2lzdGVycyAoR0lDUF9TRUNSMC9HSUNQX1NFQ1IxKSB0aGF0IHdpbGwgdHJpZ2dl ciBhIHNpbmdsZSB0b3AtbGV2ZWwKaW50ZXJydXB0IChTUEkgIzMyKS4KCkFzIHRoaXMgaXMgbXkg Zmlyc3QgY29udHJpYnV0aW9uIGluIHRoZSBJUlEgc3Vic3lzdGVtIEkgbWlnaHQgaGF2ZQptaXNz ZWQgc29tZSBzcGVjaWZpY2l0aWVzIG9yIG1pc3VuZGVyc3Rvb2QgdGhlIEFQSSwgcGxlYXNlIGRv IG5vdApoZXNpdGF0ZSB0byBjb3JyZWN0IG1lIGlmIEknbSB3cm9uZy4KCkFsc28sIGZvciB0aGUg c2FrZSBvZiB1bmRlcnN0YW5kYWJpbGl0eSAoYW5kIGJlY2F1c2UgSSBsb3ZlIEFTQ0lJIGFydCks CnRoaXMgaXMgYSB0cnkgdG8gZXhwbGFpbiB0aGUgSUNVL1NFSSBhcmNoaXRlY3R1cmU6CgoKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rCnwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCAgICAgU1BJYSBT UEliICAgICAgICBTUEl6ICAgICAgICAgICAgICAgICAgICBTUEkgMzIgICAgICAgICAgICAgICAg ICB8CnwgICAgICAgXiAgICBeICAgICAgICAgICBeICAgICAgICAgICAgICAgICAgICAgICBeICAg ICAgICAgICAgICAgICAgICAgfAp8ICAgICAgIHwgICAgfCAgIC4gLiAuICAgfCAgICAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgIHwKfCAgICAgICB8ICAgIHwgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICB8CnwgICAg ICAgfCAgICB8ICAgLiAuIC4gICB8ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgICAgfAp8ICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsgICArLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKyAgIHwKfCAgIHwgICB8ICAgIHwgICAgICAgICAgIHwgICB8 ICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgIHwgICB8CnwgICB8ICAgfCAgICB8 ICAgICAgICAgICB8ICAgfCAgIHwgICBTRUkgICAgICAgICB8ICAgICAgICAgICAgICAgICB8ICAg fAp8ICAgfCAgIHwgICAgfCAgIC4gLiAuICAgfCAgIHwgICB8ICAgICAgIF9fX19fX19ffF9fX19f X18gICAgICAgICAgfCAgIHwKfCAgIHwgICB8ICAgIHwgICAgICAgICAgIHwgICB8ICAgfCAgICAg IC9fX19TRUlfU0VDUl9fX19fXCAgICAgICAgIHwgICB8CnwgICB8ICAgfF9fX198X19fX19fX19f X198ICAgfCAgIHwgICAgIC8gICAgICAgfCAgICAgICAgIFxcICAgICAgICB8ICAgfAp8ICAgfCAg ICBcX0dJQ1BfU0VUU1BJIF8vICAgIHwgICB8ICAgIC8gICAgICAgIHwgICAgICAgICAgXFwgICAg ICAgfCAgIHwKfCAgIHwgICAgICAgICAgICAgICAgfHwgICAgICB8ICAgfCAgIC8gICAuLi4gICB8 ICAgICAgICAgICBcXCAgICAgIHwgICB8CnwgICB8ICBHSUNQICAgICAgICAgIHx8ICAgICAgfCAg IHwgIHwgICAgICAgICAgfCAgICAgICAgICAgIFxcICAgICB8ICAgfAp8ICAgKy0tLS0tLS0tLS0t LS0tLS18fC0tLS0tLSsgICArLS18LS0tLS0tLS0tLXwtLS0tLS0tLS0tLS18fC0tLS0tKyAgIHwK fCAgICAgICAgICAgICAgICAgICAgfHwgICAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAgICAg ICAgfHwgICAgICAgICB8CnwgICAgICAgICAgICAgICAgICAgIHx8ICAgICAgICAgICAgIHwgICAg Li4uICAgfCAgICAgICAgICAgIHx8ICAgICAgICAgfAp8ICAgICAgICAgICAgICAgICAgICB8fCAg ICAgICAgICAgICB8ICAgICAgICAgIHwgICAgICAgICAgICB8fCAgICAgICAgIHwKfCAgICAgICAg ICAgICAgICAgICAgfHwgICAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAgICAgICAgfHwgICAg ICAgICB8CnwgICAgICAgICAgICAgICAgICAgICBcXF9fX19fX18gICBpbnQgMCAgLi4uIGludCAy MCAgICAgICAgLy8gICAgICAgICAgfAp8ICAgICAgICAgICAgICAgICAgICAgIFxfTlNSX18gXCAg ICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgICAgICAgIHwKfCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFxcICAgIF9fX19fX19fX19fX19fX19fX19fLy8gICAgICAgICAgICB8Cnwg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXFwgIC9fX19fX19fX1NFSV9fX19fX19fXy8g ICAgICAgICAgICAgfAp8ICAgQVAgODA2ICAgICAgICAgICAgICAgICAgICAgICBcXC8vICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHx8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18fC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHx8IEludGVyY29ubmVjdAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfHxcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fFxcX19f X19fCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCBcX19fX19fIDwtLS0+IE90 aGVycyBDUCAxMTAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8CistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18fC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKwp8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwKfCAgIENQIDExMCAgICAgICAgICAgICAgICAgICAgICAg IHx8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8fCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8 ICAgICAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rICAgICAgICAgIHwKfCAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgIHx8IE1TSSAg ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICB8CnwgICAgICAgfCAgIElDVSAgICAgICAgICAg ICAgICAgICB8fCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgfAp8ICAgICAgIHwg ICAgICAgICAvLS0tLS0tLS0tLS0tLS0vICBcLS0tLS0tXCAgICAgICAgICAgICAgICB8ICAgICAg ICAgIHwKfCAgICAgICB8ICAgICAgICAvICAgICAgLy0tLS0tLS0vICAgICAgICAgICBcICAgICAg ICAgICAgICAgfCAgICAgICAgICB8CnwgICAgICAgfCAgICAgICAvICAgICAgLyAgICAgICAvICAg ICAgICAgICAgIFwgICAgICAgICAgICAgIHwgICAgICAgICAgfAp8ICAgICAgIHwgICAgICAvICAg ICAgLyAgICAgICAvICAgICAuIC4gLiAgICAgXCAgICAgICAgICAgICB8ICAgICAgICAgIHwKfCAg ICAgICB8ICAgICAvICAgICAgLyAgICAgICAvICAgICAgICAgICAgICAgICBcICAgICAgICAgICAg fCAgICAgICAgICB8CnwgICAgICAgfCAgIE5TUiAgICAgTlNSICAgICBTRUkgICAgICAgICAgICAg ICBOU1IgICAgICAgICAgIHwgICAgICAgICAgfAp8ICAgICAgIHwgICAgfCAgICAgICB8ICAgICAg IHwgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAgICAgIHwKfCAgICAgICArLS0t LV4tLS0tLS0tXi0tLS0tLS1eLS0tLS0tLS0tLS0tLS0tLS1eLS0tLS0tLS0tLS0tKyAgICAgICAg ICB8CnwgICAgICAgICAgICB8ICAgICAgIHwgICAgICAgfCAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICAgICAgfAp8ICAgICAgICAgICAgfCAgICAgICB8ICAgICAgIHwgICAgICAu IC4gLiAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHwKfCAgICAgICAgICAgIHwgICAgICAg fCAgICAgICB8ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8CnwgICAg ICAgICBpbnQgMCAgIGludCAxICAgaW50IDIgICAgICAgICAgICAgaW50IDIwNiAgICAgICAgICAg ICAgICAgICAgfAp8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwKfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t KwoKClRoYW5rIHlvdSwKTWlxdcOobAoKQ2hhbmdlcyBzaW5jZSB2MjoKPT09PT09PT09PT09PT09 PT0KKiBSZWJhc2VkIG9uIHRvcCBvZiB2NC4xOC1yYzEKCnBsYXRmb3JtLW1zaToKLS0tLS0tLS0t LS0tLQoqIE5ldyBwYXRjaCB0byBhbGxvdyB1c2luZyBNU0kgdHJlZSBkb21haW5zLgoKaXJxY2hp cC9pcnEtbXZlYnUtc2VpOiBhZGQgbmV3IGRyaXZlciBmb3IgIE1hcnZlbGwgU0VJCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoqIFVwZGF0ZWQg Y29tbWl0IG1lc3NhZ2Ugd2l0aCBNYXJjIGNvbW1lbnRzCiogV3JvdGUgdHdvIGZ1bmN0aW9ucyB0 byBmaWxsIC0+aXJxX3NldF90eXBlKCkgaW4gdGhlIGlycV9jaGlwCiAgc3RydWN0dXJlcywgb25l IGFjY2VwdGluZyBvbmx5IHJpc2luZyBlZGdlIGludGVycnVwdHMgKGZvciBNU0kpLAogIGFub3Ro ZXIgb25lIGFjY2VwdGluZyBvbmx5IGhpZ2ggbGV2ZWwgaW50ZXJydXB0cyAoZm9yIHdpcmVkIElS USkuCiogQ2hhbmdlZCB0aGUgc3BpbiBsb2NrIHByb3RlY3RpbmcgdGhlIGFsbG9jYXRlZCBTRUlz IGJpdG1hcCBpbnRvIGEKICBtdXRleC4KKiBDaGFuZ2VkIHRoZSBiaXRtYXAgYWxsb2NhdGlvbiBs aW5lIHRvIHJlc3BlY3QgdGhlIGFjdHVhbCBudW1iZXIgb2YKICBNU0lzIGluc3RlYWQgb2YgcHJl dGVuZGluZyBoYXZpbmcgU0VJX0lSUV9DT1VOVCAoNjQpIE1TSSBhdmFpbGFibGUuCiogSSBkaWQg bm90IHNwbGl0IHRoZSBjb2RlIHRvIGhhdmUgb25lIGZ1bmN0aW9uIHBlciBkb21haW4gYmVjYXVz ZSBpdAogIHdvdWxkIGR1cGxpY2F0ZSBhIF9sb3RfIG9mIGNvZGUuIFJlcXVlc3RlZCBzb21lIGFk dmljZXMgaW5zdGVhZC4KKiBTdG9wcGVkIHVzaW5nIHRoZSBmd25vZGUgd2hlbiBjcmVhdGluZyB0 aGUgQVAgKHdpcmVkKSBJUlEgZG9tYWluLgoqIEltcGxlbWVudGVkIHRoZSBBUCBJUlEgZG9tYWlu IC0+bWF0Y2goKSBob29rLgoqIFVzZWQgbWFydmVsbCxzZWkteHgtcmFuZ2VzIHByb3BlcnRpZXMg dG8gZ2V0IHRoZSByZWxldmFudCBJUlEgbnVtYmVycwogIGZyb20gRFQuICd4eCcgaXMgZWl0aGVy ICdhcCcgb3IgJ2NwJy4KCmlycWNoaXAvaXJxLW12ZWJ1LWljdTogYWRkIHN1cHBvcnQgZm9yIFN5 c3RlbSAgRXJyb3IgSW50ZXJydXB0cyAoU0VJKQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKiBBZGRlZCBhIHBhdGNo IHRvIGVhc2UgdGhlIGNyZWF0aW9uIG9mIHRyZWUgZG9tYWlucyAoY2hhbmdlcyBpbiB0aGUKICBj b3JlKS4KKiBDaGFuZ2VkIHRoZSBjb2RlIGFjY29yZGluZ2x5IHRvIHVzZSB0cmVlIGRvbWFpbnMu CiogQ3JlYXRlZCBhIGNvdXBsZSBvZiBoZWxwZXJzIHRvIGRvIHRoZSBiaXRtYXAgYWxsb2NhdGlv bi9yZWxlYXNlLgoqIFJlbW92ZWQgdGhlIC5vZmZzZXRfY2xyX2FbaGxdIGVudHJpZXMgb2YgdGhl IHNlaV9zdWJzZXRfZGF0YQogIHN0cnVjdHVyZSB0byBhdm9pZCBjb25mdXNpb24uIFRoZXNlIHJl Z2lzdGVycyBhY3R1YWxseSBleGlzdCwgYnV0CiAgYXJlIG5vdCB1c2VkIGhlcmUgYmVjYXVzZSB0 aGUgdXBwZXIgYmxvY2sgKFNFSSkgb25seSBzdXBwb3J0cwogIGVkZ2UtTVNJIGFuZCBub3QgbGV2 ZWwtTVNJIGxpa2UgdGhlIE5TUiBvbmUuCgpkdC1iaW5kaW5ncy9pbnRlcnJ1cHQtY29udHJvbGxl cjogdXBkYXRlICBNYXJ2ZWxsIElDVSBiaW5kaW5ncwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoqIEV4cGxhaW5lZCBiZXR0ZXIg aW4gdGhlIGNvbW1pdCBtZXNzYWdlIHRoYXQgYmFja3dhcmQgY29tcGF0aWJpbGl0eQogIGlzIG5v dCBicm9rZW4uCiogQ2hhbmdlZCBzdWJub2RlcyBuYW1lcyB0byBiZSAnaW50ZXJydXB0LWNvbnRy b2xsZXInIGFzIHJlcXVlc3RlZC4KKiBBZGRlZCBhIHJhbmdlIGFzc29jaWF0ZWQgdG8gZWFjaCBz dWItbm9kZSAoYXMgd2VsbCBhcyBpbiB0aGUgRFQpLgoqIFJlcGxhY2VkIHNwYWNlcyBieSB0YWJz LgoqIE1lcmdlZCB0aGUgU0VJJ3Mgc3Vibm9kZXMgc28gdGhhdCB0aGVyZSBpcyBvbmx5IG9uZSBT RUkgbm9kZSBhbmQgbm8KICBzdWJub2RlcyBhbnltb3JlLgoKQ2hhbmdlcyBzaW5jZSB2MToKPT09 PT09PT09PT09PT09PT0KR2VuZXJhbAotLS0tLS0tCiogU3BlbGxpbmcvZnVuY3Rpb24gbmFtZXMv Y29tbWVudHMuCiogQWRkZWQgUmV2aWV3ZWQtYnkgdGFncy4KKiBSZWJhc2VkIG9uIHRvcCBvZiBN YXJjIFp5bmdpZXIgbGV2ZWwtTVNJIHNlcmllcyAodGlwOmlycS9jb3JlKS4KClNFSQotLS0KKiBD aGFuZ2UgdGhlIGxpY2Vuc2UgZm9yIEdQTC0yLjAgb25seSBpbiBpcnEtbXZlYnUtc2VpLmMgQyBm aWxlLgoqIFVzZWQgYWxwaGFiZXRpYyBvcmRlcmluZyB3aGVuIGFkZGluZyBTRUkgZHJpdmVyIGlu IE1ha2VmaWxlLgoqIFJlLW9yZGVyZWQgcmVnaXN0ZXIgZGVmaW5pdGlvbnMgYnkgaW5jcmVhc2lu ZyBvZmZzZXQuCiogcy9OQi9DT1VOVC8gaW4gcmVnaXN0ZXIgZGVmaW5pdGlvbnMuCiogYXZvaWQg ZW5hYmxpbmcgYWxsIGludGVycnVwdCBieSBkZWZhdWx0LgoqIGZpeGVkIG1hc2svdW5tYXNrIGZ1 bmN0aW9ucyB1c2luZyB0aGUgd3JvbmcgaHdpcnEgbnVtYmVyLgoqIHJlbW92ZWQgaGFja2lzaCBk b29yYmVsbCBtZWNoYW5pc20uCiogUmVtb3ZlZCB0aGUgLT54bGF0ZSBob29rIGFzc2lnbmVkIGZv ciBDUCBNU0lzLgoqIFVzZWQgZGV2bV8qKCkgaGVscGVycy4KKiBzL3RvcF9sZXZlbF9zcGkvcGFy ZW50X2lycS8gaW4gcHJvYmUuCiogQWRkZWQgZm9yZ290dGVuIG9mX25vZGVfcHV0KGNoaWxkKS4K KiBSZXNldCB0aGUgU0VJIHJlZ2lzdGVycyBiZWZvcmUgcmVnaXN0ZXJpbmcgdGhlIElSUSBkb21h aW5zLgoqIEludHJvZHVjZWQgbmV3IERUIHByb3BlcnR5ICJtYXJ2ZWxsLHNlaS1yYW5nZXMiIGlu c3RlYWQgb2YgdXNpbmcKICAicmVnIiB0byBkZWNsYXJlIHRoZSByYW5nZSBvZiBNU0kgaW50ZXJy dXB0cyB2cy4gd2lyZWQgaW50ZXJydXB0cyBpbgogIHRoZSBTRUkgc3Vibm9kZXMuCiogRmluYWxs eSBkaWQgbm90IGNoYW5nZSB0aGUgLT5hbGxvYygpIGFib3V0IHRoZSBmd3NwZWMtPnBhcmFtWzFd CiAgbGluZSAodG8gYmUgY2hlY2tlZCBieSBNYXJjKS4KCklDVQotLS0KKiBVcGRhdGVkIHRoZSBJ Q1UgZG9jdW1lbnRhdGlvbiBzbyB0aGUgbGVnYWN5IGJpbmRpbmdzIGFyZSBzdGlsbAogIGRvY3Vt ZW50ZWQgc29tZXdoZXJlLgoqIEFkZGVkIHN0YWJsZSB0YWdzIG9uIHRoZSBjb21taXQgZml4aW5n IHRoZSBDUDExMCBJQ1Ugbm9kZSBzaXplLgoqIFJlbW92ZWQgdGhlICJzeXNjb24iIGNvbXBhdGli bGUgZnJvbSB0aGUgSUNVIG5vZGUsIGluc3RlYWQgdGhlCiAgc3lzY29uIGlzIGNyZWF0ZWQgYXQg cHJvYmUgdGltZS4KKiBzL3VzZXIgZGF0YS9wcml2YXRlIGRhdGEvIGluIHRoZSB0aXRsZSBvZiBj b21taXQKICAiaXJxY2hpcC9pcnEtbXZlYnUtaWN1OiBmaXggd3JvbmcgdXNlciBkYXRhIHJldHJp ZXZhbCIKCgpNaXF1ZWwgUmF5bmFsICgxNyk6CiAgcGxhdGZvcm0tbXNpOiBhbGxvdyBjcmVhdGlv biBvZiBNU0kgZG9tYWluIHdpdGhvdXQgaW50ZXJydXB0IG51bWJlcgogIGR0LWJpbmRpbmdzL2lu dGVycnVwdC1jb250cm9sbGVyOiBmaXggTWFydmVsbCBJQ1UgbGVuZ3RoIGluIHRoZQogICAgZXhh bXBsZQogIGFybTY0OiBkdHM6IG1hcnZlbGw6IGZpeCBDUDExMCBJQ1Ugbm9kZSBzaXplCiAgaXJx Y2hpcC9pcnEtbXZlYnUtaWN1OiBmaXggd3JvbmcgcHJpdmF0ZSBkYXRhIHJldHJpZXZhbAogIGly cWNoaXAvaXJxLW12ZWJ1LWljdTogY2xhcmlmeSB0aGUgcmVzZXQgb3BlcmF0aW9uIG9mIGNvbmZp Z3VyZWQKICAgIGludGVycnVwdHMKICBpcnFjaGlwL2lycS1tdmVidS1pY3U6IHN3aXRjaCB0byBy ZWdtYXAKICBpcnFjaGlwL2lycS1tdmVidS1pY3U6IG1ha2UgaXJxX2RvbWFpbiBsb2NhbAogIGly cWNoaXAvaXJxLW12ZWJ1LWljdTogZGlzb2NpYXRlIElDVSBhbmQgTlNSCiAgaXJxY2hpcC9pcnEt bXZlYnUtaWN1OiBzdXBwb3J0IElDVSBzdWJub2RlcwogIGlycWNoaXAvaXJxLW12ZWJ1LXNlaTog YWRkIG5ldyBkcml2ZXIgZm9yIE1hcnZlbGwgU0VJCiAgYXJtNjQ6IG1hcnZlbGw6IGVuYWJsZSBT RUkgZHJpdmVyCiAgaXJxY2hpcC9pcnEtbXZlYnUtaWN1OiBhZGQgc3VwcG9ydCBmb3IgU3lzdGVt IEVycm9yIEludGVycnVwdHMgKFNFSSkKICBkdC1iaW5kaW5ncy9pbnRlcnJ1cHQtY29udHJvbGxl cjogdXBkYXRlIE1hcnZlbGwgSUNVIGJpbmRpbmdzCiAgZHQtYmluZGluZ3MvaW50ZXJydXB0LWNv bnRyb2xsZXI6IGFkZCBkb2N1bWVudGF0aW9uIGZvciBNYXJ2ZWxsIFNFSQogICAgY29udHJvbGxl cgogIGFybTY0OiBkdHM6IG1hcnZlbGw6IGFkZCBBUDgwNiBTRUkgc3Vibm9kZQogIGFybTY0OiBk dHM6IG1hcnZlbGw6IHVzZSBuZXcgYmluZGluZ3MgZm9yIENQMTEwIGludGVycnVwdHMKICBhcm02 NDogZHRzOiBtYXJ2ZWxsOiBhZGQgQ1AxMTAgSUNVIFNFSSBzdWJub2RlCgogLi4uL2JpbmRpbmdz L2ludGVycnVwdC1jb250cm9sbGVyL21hcnZlbGwsaWN1LnR4dCAgfCAgODUgKysrLQogLi4uL2Jp bmRpbmdzL2ludGVycnVwdC1jb250cm9sbGVyL21hcnZlbGwsc2VpLnR4dCAgfCAgMzkgKysKIGFy Y2gvYXJtNjQvS2NvbmZpZy5wbGF0Zm9ybXMgICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsK IGFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtYXA4MDYuZHRzaSAgICAgIHwgIDEx ICsKIGFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtY3AxMTAuZHRzaSAgICAgIHwg MTI3ICsrKy0tLQogZHJpdmVycy9iYXNlL3BsYXRmb3JtLW1zaS5jICAgICAgICAgICAgICAgICAg ICAgICAgfCAgIDIgKy0KIGRyaXZlcnMvaXJxY2hpcC9LY29uZmlnICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgICAzICsKIGRyaXZlcnMvaXJxY2hpcC9NYWtlZmlsZSAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgICAxICsKIGRyaXZlcnMvaXJxY2hpcC9pcnEtbXZlYnUtaWN1LmMgICAg ICAgICAgICAgICAgICAgIHwgMzE5ICsrKysrKysrKysrKy0tLQogZHJpdmVycy9pcnFjaGlwL2ly cS1tdmVidS1zZWkuYyAgICAgICAgICAgICAgICAgICAgfCA0NDQgKysrKysrKysrKysrKysrKysr KysrCiAxMCBmaWxlcyBjaGFuZ2VkLCA4OTkgaW5zZXJ0aW9ucygrKSwgMTMzIGRlbGV0aW9ucygt KQogY3JlYXRlIG1vZGUgMTAwNjQ0IERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9p bnRlcnJ1cHQtY29udHJvbGxlci9tYXJ2ZWxsLHNlaS50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBk cml2ZXJzL2lycWNoaXAvaXJxLW12ZWJ1LXNlaS5jCgotLSAKMi4xNC4xCgoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWls aW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0 cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo= From mboxrd@z Thu Jan 1 00:00:00 1970 From: miquel.raynal@bootlin.com (Miquel Raynal) Date: Fri, 22 Jun 2018 17:14:15 +0200 Subject: [PATCH v3 00/17] Add System Error Interrupt support to Armada SoCs Message-ID: <20180622151432.1566-1-miquel.raynal@bootlin.com> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org The ICU is an IRQ chip found in Armada CP110. It currently has 207 wired inputs. Its purpose is to aggregate all CP interrupts and report them to the AP through MSIs. The ICU writes into GIC registers (AP side) by way of the interconnect. These interrupts can be of several groups: - SecuRe (SR); - Non-SecuRe (NSR); - System Error Interrupts (SEI); - RAM Error Interrupts (REI); - ... Each ICU wired interrupt can be of any of these groups. The group is encoded in the MSI payload. Until now, only the non-secure interrupts (NSR) were handled by the ICU driver. Interrupts of another group could work by chance because the ICU driver does not erase all ATF configuration; it only erases the configuration for NSR interrupts. This series aims at adding support for the System Error Interrupts (SEI). For this purpose, the ICU driver is a bit reworked to separate the ICU 'generic' configuration from the NSR-related handling. Then, the SEI driver (part of the GIC) is introduced and finally, support for SEI interrupts are also added to the ICU driver. The SEI driver is a bit different than its cousin the GICP because it must handle MSIs from the CPs, as well as wired interrupts from the AP itself. MSIs and wired interrupts will automatically update two registers (GICP_SECR0/GICP_SECR1) that will trigger a single top-level interrupt (SPI #32). As this is my first contribution in the IRQ subsystem I might have missed some specificities or misunderstood the API, please do not hesitate to correct me if I'm wrong. Also, for the sake of understandability (and because I love ASCII art), this is a try to explain the ICU/SEI architecture: +----------------------------------------------------------------------+ | | | | | SPIa SPIb SPIz SPI 32 | | ^ ^ ^ ^ | | | | . . . | | | | | | | | | | | | . . . | | | | +------------------------+ +---------------------------------+ | | | | | | | | | | | | | | | | | | SEI | | | | | | | . . . | | | ________|_______ | | | | | | | | | /___SEI_SECR_____\ | | | | |____|___________| | | / | \\ | | | | \_GICP_SETSPI _/ | | / | \\ | | | | || | | / ... | \\ | | | | GICP || | | | | \\ | | | +----------------||------+ +--|----------|------------||-----+ | | || | | || | | || | ... | || | | || | | || | | || | | || | | \\_______ int 0 ... int 20 // | | \_NSR__ \ // | | \\ ____________________// | | \\ /________SEI_________/ | | AP 806 \\// | | || | +---------------------------------||-----------------------------------+ || || Interconnect ||\ ||\\______ || \______ <---> Others CP 110 || +---------------------------------||-----------------------------------+ | || | | CP 110 || | | || | | +-------------------------||------------------------+ | | | || MSI | | | | ICU || | | | | /--------------/ \------\ | | | | / /-------/ \ | | | | / / / \ | | | | / / / . . . \ | | | | / / / \ | | | | NSR NSR SEI NSR | | | | | | | | | | | +----^-------^-------^-----------------^------------+ | | | | | | | | | | | . . . | | | | | | | | | int 0 int 1 int 2 int 206 | | | | | +----------------------------------------------------------------------+ Thank you, Miqu?l Changes since v2: ================= * Rebased on top of v4.18-rc1 platform-msi: ------------- * New patch to allow using MSI tree domains. irqchip/irq-mvebu-sei: add new driver for Marvell SEI ------------------------------------------------------ * Updated commit message with Marc comments * Wrote two functions to fill ->irq_set_type() in the irq_chip structures, one accepting only rising edge interrupts (for MSI), another one accepting only high level interrupts (for wired IRQ). * Changed the spin lock protecting the allocated SEIs bitmap into a mutex. * Changed the bitmap allocation line to respect the actual number of MSIs instead of pretending having SEI_IRQ_COUNT (64) MSI available. * I did not split the code to have one function per domain because it would duplicate a _lot_ of code. Requested some advices instead. * Stopped using the fwnode when creating the AP (wired) IRQ domain. * Implemented the AP IRQ domain ->match() hook. * Used marvell,sei-xx-ranges properties to get the relevant IRQ numbers from DT. 'xx' is either 'ap' or 'cp'. irqchip/irq-mvebu-icu: add support for System Error Interrupts (SEI) --------------------------------------------------------------------- * Added a patch to ease the creation of tree domains (changes in the core). * Changed the code accordingly to use tree domains. * Created a couple of helpers to do the bitmap allocation/release. * Removed the .offset_clr_a[hl] entries of the sei_subset_data structure to avoid confusion. These registers actually exist, but are not used here because the upper block (SEI) only supports edge-MSI and not level-MSI like the NSR one. dt-bindings/interrupt-controller: update Marvell ICU bindings -------------------------------------------------------------- * Explained better in the commit message that backward compatibility is not broken. * Changed subnodes names to be 'interrupt-controller' as requested. * Added a range associated to each sub-node (as well as in the DT). * Replaced spaces by tabs. * Merged the SEI's subnodes so that there is only one SEI node and no subnodes anymore. Changes since v1: ================= General ------- * Spelling/function names/comments. * Added Reviewed-by tags. * Rebased on top of Marc Zyngier level-MSI series (tip:irq/core). SEI --- * Change the license for GPL-2.0 only in irq-mvebu-sei.c C file. * Used alphabetic ordering when adding SEI driver in Makefile. * Re-ordered register definitions by increasing offset. * s/NB/COUNT/ in register definitions. * avoid enabling all interrupt by default. * fixed mask/unmask functions using the wrong hwirq number. * removed hackish doorbell mechanism. * Removed the ->xlate hook assigned for CP MSIs. * Used devm_*() helpers. * s/top_level_spi/parent_irq/ in probe. * Added forgotten of_node_put(child). * Reset the SEI registers before registering the IRQ domains. * Introduced new DT property "marvell,sei-ranges" instead of using "reg" to declare the range of MSI interrupts vs. wired interrupts in the SEI subnodes. * Finally did not change the ->alloc() about the fwspec->param[1] line (to be checked by Marc). ICU --- * Updated the ICU documentation so the legacy bindings are still documented somewhere. * Added stable tags on the commit fixing the CP110 ICU node size. * Removed the "syscon" compatible from the ICU node, instead the syscon is created at probe time. * s/user data/private data/ in the title of commit "irqchip/irq-mvebu-icu: fix wrong user data retrieval" Miquel Raynal (17): platform-msi: allow creation of MSI domain without interrupt number dt-bindings/interrupt-controller: fix Marvell ICU length in the example arm64: dts: marvell: fix CP110 ICU node size irqchip/irq-mvebu-icu: fix wrong private data retrieval irqchip/irq-mvebu-icu: clarify the reset operation of configured interrupts irqchip/irq-mvebu-icu: switch to regmap irqchip/irq-mvebu-icu: make irq_domain local irqchip/irq-mvebu-icu: disociate ICU and NSR irqchip/irq-mvebu-icu: support ICU subnodes irqchip/irq-mvebu-sei: add new driver for Marvell SEI arm64: marvell: enable SEI driver irqchip/irq-mvebu-icu: add support for System Error Interrupts (SEI) dt-bindings/interrupt-controller: update Marvell ICU bindings dt-bindings/interrupt-controller: add documentation for Marvell SEI controller arm64: dts: marvell: add AP806 SEI subnode arm64: dts: marvell: use new bindings for CP110 interrupts arm64: dts: marvell: add CP110 ICU SEI subnode .../bindings/interrupt-controller/marvell,icu.txt | 85 +++- .../bindings/interrupt-controller/marvell,sei.txt | 39 ++ arch/arm64/Kconfig.platforms | 1 + arch/arm64/boot/dts/marvell/armada-ap806.dtsi | 11 + arch/arm64/boot/dts/marvell/armada-cp110.dtsi | 127 +++--- drivers/base/platform-msi.c | 2 +- drivers/irqchip/Kconfig | 3 + drivers/irqchip/Makefile | 1 + drivers/irqchip/irq-mvebu-icu.c | 319 ++++++++++++--- drivers/irqchip/irq-mvebu-sei.c | 444 +++++++++++++++++++++ 10 files changed, 899 insertions(+), 133 deletions(-) create mode 100644 Documentation/devicetree/bindings/interrupt-controller/marvell,sei.txt create mode 100644 drivers/irqchip/irq-mvebu-sei.c -- 2.14.1