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: [4/5] EDAC/amd64: Support more than two Controllers for Chip Select handling From: Yazen Ghannam Message-Id: <20190219202536.15462-4-Yazen.Ghannam@amd.com> Date: Tue, 19 Feb 2019 20:26:09 +0000 To: "linux-edac@vger.kernel.org" Cc: "Ghannam, Yazen" , "linux-kernel@vger.kernel.org" , "bp@alien8.de" List-ID: RnJvbTogWWF6ZW4gR2hhbm5hbSA8eWF6ZW4uZ2hhbm5hbUBhbWQuY29tPgoKVGhlIHN0cnVjdCBj aGlwX3NlbGVjdCBhcnJheSB0aGF0J3MgdXNlZCBmb3Igc2F2aW5nIENoaXAgU2VsZWN0IGJhc2Vz CmFuZCBtYXNrcyBpcyBmaXhlZCBhdCBsZW5ndGggb2YgdHdvLiBUaGVyZSBzaG91bGQgYmUgb25l IHN0cnVjdApjaGlwX3NlbGVjdCBmb3IgZWFjaCBjb250cm9sbGVyLCBzbyB0aGlzIGFycmF5IHNo b3VsZCBiZSBpbmNyZWFzZWQgdG8Kc3VwcG9ydCBzeXN0ZW1zIHRoYXQgbWF5IGhhdmUgbW9yZSB0 aGFuIHR3byBjb250cm9sbGVycy4KCkluY3JlYXNlIHRoZSBzaXplIG9mIHRoZSBzdHJ1Y3QgY2hp cF9zZWxlY3QgYXJyYXkgdG8gZWlnaHQsIHdoaWNoIGlzIHRoZQpsYXJnZXN0IG51bWJlciBvZiBj b250cm9sbGVycyBwZXIgZGllIGN1cnJlbnRseSBzdXBwb3J0ZWQgb24gQU1ECnN5c3RlbXMuCgpB bHNvLCBjYXJ2ZSBvdXQgdGhlIEZhbTE3aCsgcmVhZGluZyBvZiB0aGUgYmFzZXMvbWFza3MgaW50 byBhIHNlcGFyYXRlCmZ1bmN0aW9uLiBUaGlzIGVmZmVjdGl2ZWx5IHJldmVydHMgdGhlIG9yaWdp bmFsIGJhc2VzL21hc2tzIHJlYWRpbmcgY29kZQp0byBwcmUtRmFtMTdoIHN1cHBvcnQuCgpTaWdu ZWQtb2ZmLWJ5OiBZYXplbiBHaGFubmFtIDx5YXplbi5naGFubmFtQGFtZC5jb20+Ci0tLQogZHJp dmVycy9lZGFjL2FtZDY0X2VkYWMuYyB8IDExMyArKysrKysrKysrKysrKysrKysrKy0tLS0tLS0t LS0tLS0tLS0tLQogZHJpdmVycy9lZGFjL2FtZDY0X2VkYWMuaCB8ICAgNSArLQogMiBmaWxlcyBj aGFuZ2VkLCA2MiBpbnNlcnRpb25zKCspLCA1NiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9k cml2ZXJzL2VkYWMvYW1kNjRfZWRhYy5jIGIvZHJpdmVycy9lZGFjL2FtZDY0X2VkYWMuYwppbmRl eCBiYWNkMmNiMjJmMjkuLjY1Njc4ODY5OWM2NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9lZGFjL2Ft ZDY0X2VkYWMuYworKysgYi9kcml2ZXJzL2VkYWMvYW1kNjRfZWRhYy5jCkBAIC05MTEsODkgKzkx MSw5NCBAQCBzdGF0aWMgdm9pZCBwcmVwX2NoaXBfc2VsZWN0cyhzdHJ1Y3QgYW1kNjRfcHZ0ICpw dnQpCiAJfSBlbHNlIGlmIChwdnQtPmZhbSA9PSAweDE1ICYmIHB2dC0+bW9kZWwgPT0gMHgzMCkg ewogCQlwdnQtPmNzZWxzWzBdLmJfY250ID0gcHZ0LT5jc2Vsc1sxXS5iX2NudCA9IDQ7CiAJCXB2 dC0+Y3NlbHNbMF0ubV9jbnQgPSBwdnQtPmNzZWxzWzFdLm1fY250ID0gMjsKKwl9IGVsc2UgaWYg KHB2dC0+ZmFtID49IDB4MTcpIHsKKwkJaW50IHVtYzsKKworCQlmb3JfZWFjaF91bWModW1jKSB7 CisJCQlwdnQtPmNzZWxzW3VtY10uYl9jbnQgPSA4OworCQkJcHZ0LT5jc2Vsc1t1bWNdLm1fY250 ID0gNDsKKwkJfQorCiAJfSBlbHNlIHsKIAkJcHZ0LT5jc2Vsc1swXS5iX2NudCA9IHB2dC0+Y3Nl bHNbMV0uYl9jbnQgPSA4OwogCQlwdnQtPmNzZWxzWzBdLm1fY250ID0gcHZ0LT5jc2Vsc1sxXS5t X2NudCA9IDQ7CiAJfQogfQogCitzdGF0aWMgdm9pZCByZWFkX3VtY19iYXNlX21hc2soc3RydWN0 IGFtZDY0X3B2dCAqcHZ0KQoreworCWludCBjcywgdW1jOworCisJZm9yX2VhY2hfdW1jKHVtYykg eworCQl1MzIgdW1jX2Jhc2VfcmVnID0gZ2V0X3VtY19iYXNlKHVtYykgKyBVTUNDSF9CQVNFX0FE RFI7CisJCXUzMiB1bWNfbWFza19yZWcgPSBnZXRfdW1jX2Jhc2UodW1jKSArIFVNQ0NIX0FERFJf TUFTSzsKKworCQlmb3JfZWFjaF9jaGlwX3NlbGVjdChjcywgMCwgcHZ0KSB7CisJCQl1MzIgKmJh c2UgPSAmcHZ0LT5jc2Vsc1t1bWNdLmNzYmFzZXNbY3NdOworCQkJdTMyICptYXNrID0gJnB2dC0+ Y3NlbHNbdW1jXS5jc21hc2tzW2NzXTsKKworCQkJdTMyIGJhc2VfcmVnID0gdW1jX2Jhc2VfcmVn ICsgKGNzICogNCk7CisJCQl1MzIgbWFza19yZWcgPSB1bWNfbWFza19yZWcgKyAoKGNzID4+IDEp ICogNCk7CisKKwkJCWlmICghYW1kX3Ntbl9yZWFkKHB2dC0+bWNfbm9kZV9pZCwgYmFzZV9yZWcs IGJhc2UpKQorCQkJCWVkYWNfZGJnKDAsICIgIERDU0IlZFslZF09MHglMDh4IHJlZzogMHgleFxu IiwKKwkJCQkJIHVtYywgY3MsICpiYXNlLCBiYXNlX3JlZyk7CisKKwkJCWlmICghYW1kX3Ntbl9y ZWFkKHB2dC0+bWNfbm9kZV9pZCwgbWFza19yZWcsIG1hc2spKQorCQkJCWVkYWNfZGJnKDAsICIg ICAgRENTTSVkWyVkXT0weCUwOHggcmVnOiAweCV4XG4iLAorCQkJCQkgdW1jLCBjcywgKm1hc2ss IG1hc2tfcmVnKTsKKwkJfQorCX0KK30KKwogLyoKICAqIEZ1bmN0aW9uIDIgT2Zmc2V0IEYxMF9E Q1NCMDsgcmVhZCBpbiB0aGUgRENTIEJhc2UgYW5kIERDUyBNYXNrIHJlZ2lzdGVycwogICovCiBz dGF0aWMgdm9pZCByZWFkX2RjdF9iYXNlX21hc2soc3RydWN0IGFtZDY0X3B2dCAqcHZ0KQogewot CWludCBiYXNlX3JlZzAsIGJhc2VfcmVnMSwgbWFza19yZWcwLCBtYXNrX3JlZzEsIGNzOworCWlu dCBjczsKIAogCXByZXBfY2hpcF9zZWxlY3RzKHB2dCk7CiAKLQlpZiAocHZ0LT51bWMpIHsKLQkJ YmFzZV9yZWcwID0gZ2V0X3VtY19iYXNlKDApICsgVU1DQ0hfQkFTRV9BRERSOwotCQliYXNlX3Jl ZzEgPSBnZXRfdW1jX2Jhc2UoMSkgKyBVTUNDSF9CQVNFX0FERFI7Ci0JCW1hc2tfcmVnMCA9IGdl dF91bWNfYmFzZSgwKSArIFVNQ0NIX0FERFJfTUFTSzsKLQkJbWFza19yZWcxID0gZ2V0X3VtY19i YXNlKDEpICsgVU1DQ0hfQUREUl9NQVNLOwotCX0gZWxzZSB7Ci0JCWJhc2VfcmVnMCA9IERDU0Iw OwotCQliYXNlX3JlZzEgPSBEQ1NCMTsKLQkJbWFza19yZWcwID0gRENTTTA7Ci0JCW1hc2tfcmVn MSA9IERDU00xOwotCX0KKwlpZiAocHZ0LT51bWMpCisJCXJldHVybiByZWFkX3VtY19iYXNlX21h c2socHZ0KTsKIAogCWZvcl9lYWNoX2NoaXBfc2VsZWN0KGNzLCAwLCBwdnQpIHsKLQkJaW50IHJl ZzAgICA9IGJhc2VfcmVnMCArIChjcyAqIDQpOwotCQlpbnQgcmVnMSAgID0gYmFzZV9yZWcxICsg KGNzICogNCk7CisJCWludCByZWcwICAgPSBEQ1NCMCArIChjcyAqIDQpOworCQlpbnQgcmVnMSAg ID0gRENTQjEgKyAoY3MgKiA0KTsKIAkJdTMyICpiYXNlMCA9ICZwdnQtPmNzZWxzWzBdLmNzYmFz ZXNbY3NdOwogCQl1MzIgKmJhc2UxID0gJnB2dC0+Y3NlbHNbMV0uY3NiYXNlc1tjc107CiAKLQkJ aWYgKHB2dC0+dW1jKSB7Ci0JCQlpZiAoIWFtZF9zbW5fcmVhZChwdnQtPm1jX25vZGVfaWQsIHJl ZzAsIGJhc2UwKSkKLQkJCQllZGFjX2RiZygwLCAiICBEQ1NCMFslZF09MHglMDh4IHJlZzogMHgl eFxuIiwKLQkJCQkJIGNzLCAqYmFzZTAsIHJlZzApOworCQlpZiAoIWFtZDY0X3JlYWRfZGN0X3Bj aV9jZmcocHZ0LCAwLCByZWcwLCBiYXNlMCkpCisJCQllZGFjX2RiZygwLCAiICBEQ1NCMFslZF09 MHglMDh4IHJlZzogRjJ4JXhcbiIsCisJCQkJIGNzLCAqYmFzZTAsIHJlZzApOwogCi0JCQlpZiAo IWFtZF9zbW5fcmVhZChwdnQtPm1jX25vZGVfaWQsIHJlZzEsIGJhc2UxKSkKLQkJCQllZGFjX2Ri ZygwLCAiICBEQ1NCMVslZF09MHglMDh4IHJlZzogMHgleFxuIiwKLQkJCQkJIGNzLCAqYmFzZTEs IHJlZzEpOwotCQl9IGVsc2UgewotCQkJaWYgKCFhbWQ2NF9yZWFkX2RjdF9wY2lfY2ZnKHB2dCwg MCwgcmVnMCwgYmFzZTApKQotCQkJCWVkYWNfZGJnKDAsICIgIERDU0IwWyVkXT0weCUwOHggcmVn OiBGMngleFxuIiwKLQkJCQkJIGNzLCAqYmFzZTAsIHJlZzApOwotCi0JCQlpZiAocHZ0LT5mYW0g PT0gMHhmKQotCQkJCWNvbnRpbnVlOworCQlpZiAocHZ0LT5mYW0gPT0gMHhmKQorCQkJY29udGlu dWU7CiAKLQkJCWlmICghYW1kNjRfcmVhZF9kY3RfcGNpX2NmZyhwdnQsIDEsIHJlZzAsIGJhc2Ux KSkKLQkJCQllZGFjX2RiZygwLCAiICBEQ1NCMVslZF09MHglMDh4IHJlZzogRjJ4JXhcbiIsCi0J CQkJCSBjcywgKmJhc2UxLCAocHZ0LT5mYW0gPT0gMHgxMCkgPyByZWcxCi0JCQkJCQkJCTogcmVn MCk7Ci0JCX0KKwkJaWYgKCFhbWQ2NF9yZWFkX2RjdF9wY2lfY2ZnKHB2dCwgMSwgcmVnMCwgYmFz ZTEpKQorCQkJZWRhY19kYmcoMCwgIiAgRENTQjFbJWRdPTB4JTA4eCByZWc6IEYyeCV4XG4iLAor CQkJCSBjcywgKmJhc2UxLCAocHZ0LT5mYW0gPT0gMHgxMCkgPyByZWcxCisJCQkJCQkJOiByZWcw KTsKIAl9CiAKIAlmb3JfZWFjaF9jaGlwX3NlbGVjdF9tYXNrKGNzLCAwLCBwdnQpIHsKLQkJaW50 IHJlZzAgICA9IG1hc2tfcmVnMCArIChjcyAqIDQpOwotCQlpbnQgcmVnMSAgID0gbWFza19yZWcx ICsgKGNzICogNCk7CisJCWludCByZWcwICAgPSBEQ1NNMCArIChjcyAqIDQpOworCQlpbnQgcmVn MSAgID0gRENTTTEgKyAoY3MgKiA0KTsKIAkJdTMyICptYXNrMCA9ICZwdnQtPmNzZWxzWzBdLmNz bWFza3NbY3NdOwogCQl1MzIgKm1hc2sxID0gJnB2dC0+Y3NlbHNbMV0uY3NtYXNrc1tjc107CiAK LQkJaWYgKHB2dC0+dW1jKSB7Ci0JCQlpZiAoIWFtZF9zbW5fcmVhZChwdnQtPm1jX25vZGVfaWQs IHJlZzAsIG1hc2swKSkKLQkJCQllZGFjX2RiZygwLCAiICAgIERDU00wWyVkXT0weCUwOHggcmVn OiAweCV4XG4iLAotCQkJCQkgY3MsICptYXNrMCwgcmVnMCk7Ci0KLQkJCWlmICghYW1kX3Ntbl9y ZWFkKHB2dC0+bWNfbm9kZV9pZCwgcmVnMSwgbWFzazEpKQotCQkJCWVkYWNfZGJnKDAsICIgICAg RENTTTFbJWRdPTB4JTA4eCByZWc6IDB4JXhcbiIsCi0JCQkJCSBjcywgKm1hc2sxLCByZWcxKTsK LQkJfSBlbHNlIHsKLQkJCWlmICghYW1kNjRfcmVhZF9kY3RfcGNpX2NmZyhwdnQsIDAsIHJlZzAs IG1hc2swKSkKLQkJCQllZGFjX2RiZygwLCAiICAgIERDU00wWyVkXT0weCUwOHggcmVnOiBGMngl eFxuIiwKLQkJCQkJIGNzLCAqbWFzazAsIHJlZzApOworCQlpZiAoIWFtZDY0X3JlYWRfZGN0X3Bj aV9jZmcocHZ0LCAwLCByZWcwLCBtYXNrMCkpCisJCQllZGFjX2RiZygwLCAiICAgIERDU00wWyVk XT0weCUwOHggcmVnOiBGMngleFxuIiwKKwkJCQkgY3MsICptYXNrMCwgcmVnMCk7CiAKLQkJCWlm IChwdnQtPmZhbSA9PSAweGYpCi0JCQkJY29udGludWU7CisJCWlmIChwdnQtPmZhbSA9PSAweGYp CisJCQljb250aW51ZTsKIAotCQkJaWYgKCFhbWQ2NF9yZWFkX2RjdF9wY2lfY2ZnKHB2dCwgMSwg cmVnMCwgbWFzazEpKQotCQkJCWVkYWNfZGJnKDAsICIgICAgRENTTTFbJWRdPTB4JTA4eCByZWc6 IEYyeCV4XG4iLAotCQkJCQkgY3MsICptYXNrMSwgKHB2dC0+ZmFtID09IDB4MTApID8gcmVnMQot CQkJCQkJCQk6IHJlZzApOwotCQl9CisJCWlmICghYW1kNjRfcmVhZF9kY3RfcGNpX2NmZyhwdnQs IDEsIHJlZzAsIG1hc2sxKSkKKwkJCWVkYWNfZGJnKDAsICIgICAgRENTTTFbJWRdPTB4JTA4eCBy ZWc6IEYyeCV4XG4iLAorCQkJCSBjcywgKm1hc2sxLCAocHZ0LT5mYW0gPT0gMHgxMCkgPyByZWcx CisJCQkJCQkJOiByZWcwKTsKIAl9CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZWRhYy9hbWQ2 NF9lZGFjLmggYi9kcml2ZXJzL2VkYWMvYW1kNjRfZWRhYy5oCmluZGV4IDZjNmNlNzgzMjA4YS4u ZjY3MmVkMzMyNWRiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2VkYWMvYW1kNjRfZWRhYy5oCisrKyBi L2RyaXZlcnMvZWRhYy9hbWQ2NF9lZGFjLmgKQEAgLTk2LDYgKzk2LDcgQEAKIC8qIEhhcmR3YXJl IGxpbWl0IG9uIENoaXBTZWxlY3Qgcm93cyBwZXIgTUMgYW5kIHByb2Nlc3NvcnMgcGVyIHN5c3Rl bSAqLwogI2RlZmluZSBOVU1fQ0hJUFNFTEVDVFMJCQk4CiAjZGVmaW5lIERSQU1fUkFOR0VTCQkJ OAorI2RlZmluZSBOVU1fQ09OVFJPTExFUlMJCQk4CiAKICNkZWZpbmUgT04gdHJ1ZQogI2RlZmlu ZSBPRkYgZmFsc2UKQEAgLTM1MSw4ICszNTIsOCBAQCBzdHJ1Y3QgYW1kNjRfcHZ0IHsKIAl1MzIg ZGJhbTA7CQkvKiBEUkFNIEJhc2UgQWRkcmVzcyBNYXBwaW5nIHJlZyBmb3IgRENUMCAqLwogCXUz MiBkYmFtMTsJCS8qIERSQU0gQmFzZSBBZGRyZXNzIE1hcHBpbmcgcmVnIGZvciBEQ1QxICovCiAK LQkvKiBvbmUgZm9yIGVhY2ggRENUICovCi0Jc3RydWN0IGNoaXBfc2VsZWN0IGNzZWxzWzJdOwor CS8qIG9uZSBmb3IgZWFjaCBEQ1QvVU1DICovCisJc3RydWN0IGNoaXBfc2VsZWN0IGNzZWxzW05V TV9DT05UUk9MTEVSU107CiAKIAkvKiBEUkFNIGJhc2UgYW5kIGxpbWl0IHBhaXJzIEYxeFs3OCw3 MCw2OCw2MCw1OCw1MCw0OCw0MF0gKi8KIAlzdHJ1Y3QgZHJhbV9yYW5nZSByYW5nZXNbRFJBTV9S QU5HRVNdOwo=