From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Pali=20Roh=C3=A1r?= Subject: [PATCH 1/5] arm: devtree: Set system_rev from DT "/revision" Date: Mon, 6 Jul 2015 22:26:09 +0200 Message-ID: <1436214373-12969-2-git-send-email-pali.rohar@gmail.com> References: <1436214373-12969-1-git-send-email-pali.rohar@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1436214373-12969-1-git-send-email-pali.rohar@gmail.com> 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: Russell King , Laura Abbott , Grant Likely , Rob Herring , Will Deacon , Ivaylo Dimitrov , Sebastian Reichel , Pavel Machek , Tony Lindgren , =?UTF-8?q?Andreas=20F=C3=A4rber?= Cc: linux-omap@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, =?UTF-8?q?Pali=20Roh=C3=A1r?= List-Id: linux-omap@vger.kernel.org V2l0aCB0aGlzIHBhdGNoICIvcmV2aXNpb24iIERUIGVudHJ5IGlzIHVzZWQgdG8gc2V0IGdsb2Jh bCBzeXN0ZW1fcmV2CnZhcmlhYmxlLiBEVCAiL3JldmlzaW9uIiBpcyBleHBlY3RlZCB0byBiZSB1 MzIgbnVtZXJpYyB2YWx1ZS4KClRPRE86IGFkZCBkb2N1bWVudGF0aW9uCgpTaWduZWQtb2ZmLWJ5 OiBQYWxpIFJvaMOhciA8cGFsaS5yb2hhckBnbWFpbC5jb20+Ci0tLQogYXJjaC9hcm0va2VybmVs L2RldnRyZWUuYyB8ICAgMTIgKysrKysrKysrKy0tCiAxIGZpbGUgY2hhbmdlZCwgMTAgaW5zZXJ0 aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9hcmNoL2FybS9rZXJuZWwvZGV2 dHJlZS5jIGIvYXJjaC9hcm0va2VybmVsL2RldnRyZWUuYwppbmRleCAxMWM1NGRlLi43ZDgyNzQ5 IDEwMDY0NAotLS0gYS9hcmNoL2FybS9rZXJuZWwvZGV2dHJlZS5jCisrKyBiL2FyY2gvYXJtL2tl cm5lbC9kZXZ0cmVlLmMKQEAgLTE5LDYgKzE5LDcgQEAKICNpbmNsdWRlIDxsaW51eC9vZl9pcnEu aD4KICNpbmNsdWRlIDxsaW51eC9vZl9wbGF0Zm9ybS5oPgogI2luY2x1ZGUgPGxpbnV4L3NtcC5o PgorI2luY2x1ZGUgPGxpbnV4L2xpYmZkdF9lbnYuaD4KIAogI2luY2x1ZGUgPGFzbS9jcHV0eXBl Lmg+CiAjaW5jbHVkZSA8YXNtL3NldHVwLmg+CkBAIC0yNiw2ICsyNyw3IEBACiAjaW5jbHVkZSA8 YXNtL3NtcF9wbGF0Lmg+CiAjaW5jbHVkZSA8YXNtL21hY2gvYXJjaC5oPgogI2luY2x1ZGUgPGFz bS9tYWNoLXR5cGVzLmg+CisjaW5jbHVkZSA8YXNtL3N5c3RlbV9pbmZvLmg+CiAKIAogI2lmZGVm IENPTkZJR19TTVAKQEAgLTIwNCw2ICsyMDYsOCBAQCBzdGF0aWMgY29uc3Qgdm9pZCAqIF9faW5p dCBhcmNoX2dldF9uZXh0X21hY2goY29uc3QgY2hhciAqY29uc3QgKiptYXRjaCkKIGNvbnN0IHN0 cnVjdCBtYWNoaW5lX2Rlc2MgKiBfX2luaXQgc2V0dXBfbWFjaGluZV9mZHQodW5zaWduZWQgaW50 IGR0X3BoeXMpCiB7CiAJY29uc3Qgc3RydWN0IG1hY2hpbmVfZGVzYyAqbWRlc2MsICptZGVzY19i ZXN0ID0gTlVMTDsKKwl1bnNpZ25lZCBsb25nIGR0X3Jvb3Q7CisJY29uc3QgdTMyICpyZXY7CiAK ICNpZmRlZiBDT05GSUdfQVJDSF9NVUxUSVBMQVRGT1JNCiAJRFRfTUFDSElORV9TVEFSVChHRU5F UklDX0RULCAiR2VuZXJpYyBEVCBiYXNlZCBzeXN0ZW0iKQpAQCAtMjE1LDE3ICsyMTksMTYgQEAg Y29uc3Qgc3RydWN0IG1hY2hpbmVfZGVzYyAqIF9faW5pdCBzZXR1cF9tYWNoaW5lX2ZkdCh1bnNp Z25lZCBpbnQgZHRfcGh5cykKIAlpZiAoIWR0X3BoeXMgfHwgIWVhcmx5X2luaXRfZHRfdmVyaWZ5 KHBoeXNfdG9fdmlydChkdF9waHlzKSkpCiAJCXJldHVybiBOVUxMOwogCisJZHRfcm9vdCA9IG9m X2dldF9mbGF0X2R0X3Jvb3QoKTsKIAltZGVzYyA9IG9mX2ZsYXRfZHRfbWF0Y2hfbWFjaGluZSht ZGVzY19iZXN0LCBhcmNoX2dldF9uZXh0X21hY2gpOwogCiAJaWYgKCFtZGVzYykgewogCQljb25z dCBjaGFyICpwcm9wOwogCQlpbnQgc2l6ZTsKLQkJdW5zaWduZWQgbG9uZyBkdF9yb290OwogCiAJ CWVhcmx5X3ByaW50KCJcbkVycm9yOiB1bnJlY29nbml6ZWQvdW5zdXBwb3J0ZWQgIgogCQkJICAg ICJkZXZpY2UgdHJlZSBjb21wYXRpYmxlIGxpc3Q6XG5bICIpOwogCi0JCWR0X3Jvb3QgPSBvZl9n ZXRfZmxhdF9kdF9yb290KCk7CiAJCXByb3AgPSBvZl9nZXRfZmxhdF9kdF9wcm9wKGR0X3Jvb3Qs ICJjb21wYXRpYmxlIiwgJnNpemUpOwogCQl3aGlsZSAoc2l6ZSA+IDApIHsKIAkJCWVhcmx5X3By aW50KCInJXMnICIsIHByb3ApOwpAQCAtMjQ2LDUgKzI0OSwxMCBAQCBjb25zdCBzdHJ1Y3QgbWFj aGluZV9kZXNjICogX19pbml0IHNldHVwX21hY2hpbmVfZmR0KHVuc2lnbmVkIGludCBkdF9waHlz KQogCS8qIENoYW5nZSBtYWNoaW5lIG51bWJlciB0byBtYXRjaCB0aGUgbWRlc2Mgd2UncmUgdXNp bmcgKi8KIAlfX21hY2hpbmVfYXJjaF90eXBlID0gbWRlc2MtPm5yOwogCisJLyogU2V0IHN5c3Rl bSByZXZpc2lvbiBmcm9tIERUICovCisJcmV2ID0gb2ZfZ2V0X2ZsYXRfZHRfcHJvcChkdF9yb290 LCAicmV2aXNpb24iLCBOVUxMKTsKKwlpZiAocmV2KQorCQlzeXN0ZW1fcmV2ID0gZmR0MzJfdG9f Y3B1KCpyZXYpOworCiAJcmV0dXJuIG1kZXNjOwogfQotLSAKMS43LjkuNQoKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFp bGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlz dHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK From mboxrd@z Thu Jan 1 00:00:00 1970 From: pali.rohar@gmail.com (=?UTF-8?q?Pali=20Roh=C3=A1r?=) Date: Mon, 6 Jul 2015 22:26:09 +0200 Subject: [PATCH 1/5] arm: devtree: Set system_rev from DT "/revision" In-Reply-To: <1436214373-12969-1-git-send-email-pali.rohar@gmail.com> References: <1436214373-12969-1-git-send-email-pali.rohar@gmail.com> Message-ID: <1436214373-12969-2-git-send-email-pali.rohar@gmail.com> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org With this patch "/revision" DT entry is used to set global system_rev variable. DT "/revision" is expected to be u32 numeric value. TODO: add documentation Signed-off-by: Pali Roh?r --- arch/arm/kernel/devtree.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/arch/arm/kernel/devtree.c b/arch/arm/kernel/devtree.c index 11c54de..7d82749 100644 --- a/arch/arm/kernel/devtree.c +++ b/arch/arm/kernel/devtree.c @@ -19,6 +19,7 @@ #include #include #include +#include #include #include @@ -26,6 +27,7 @@ #include #include #include +#include #ifdef CONFIG_SMP @@ -204,6 +206,8 @@ static const void * __init arch_get_next_mach(const char *const **match) const struct machine_desc * __init setup_machine_fdt(unsigned int dt_phys) { const struct machine_desc *mdesc, *mdesc_best = NULL; + unsigned long dt_root; + const u32 *rev; #ifdef CONFIG_ARCH_MULTIPLATFORM DT_MACHINE_START(GENERIC_DT, "Generic DT based system") @@ -215,17 +219,16 @@ const struct machine_desc * __init setup_machine_fdt(unsigned int dt_phys) if (!dt_phys || !early_init_dt_verify(phys_to_virt(dt_phys))) return NULL; + dt_root = of_get_flat_dt_root(); mdesc = of_flat_dt_match_machine(mdesc_best, arch_get_next_mach); if (!mdesc) { const char *prop; int size; - unsigned long dt_root; early_print("\nError: unrecognized/unsupported " "device tree compatible list:\n[ "); - dt_root = of_get_flat_dt_root(); prop = of_get_flat_dt_prop(dt_root, "compatible", &size); while (size > 0) { early_print("'%s' ", prop); @@ -246,5 +249,10 @@ const struct machine_desc * __init setup_machine_fdt(unsigned int dt_phys) /* Change machine number to match the mdesc we're using */ __machine_arch_type = mdesc->nr; + /* Set system revision from DT */ + rev = of_get_flat_dt_prop(dt_root, "revision", NULL); + if (rev) + system_rev = fdt32_to_cpu(*rev); + return mdesc; } -- 1.7.9.5 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756003AbbGFU1t (ORCPT ); Mon, 6 Jul 2015 16:27:49 -0400 Received: from mail-wi0-f179.google.com ([209.85.212.179]:33656 "EHLO mail-wi0-f179.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753484AbbGFU0o (ORCPT ); Mon, 6 Jul 2015 16:26:44 -0400 From: =?UTF-8?q?Pali=20Roh=C3=A1r?= To: Russell King , Laura Abbott , Grant Likely , Rob Herring , Will Deacon , Ivaylo Dimitrov , Sebastian Reichel , Pavel Machek , Tony Lindgren , =?UTF-8?q?Andreas=20F=C3=A4rber?= Cc: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-omap@vger.kernel.org, =?UTF-8?q?Pali=20Roh=C3=A1r?= Subject: [PATCH 1/5] arm: devtree: Set system_rev from DT "/revision" Date: Mon, 6 Jul 2015 22:26:09 +0200 Message-Id: <1436214373-12969-2-git-send-email-pali.rohar@gmail.com> X-Mailer: git-send-email 1.7.9.5 In-Reply-To: <1436214373-12969-1-git-send-email-pali.rohar@gmail.com> References: <1436214373-12969-1-git-send-email-pali.rohar@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org With this patch "/revision" DT entry is used to set global system_rev variable. DT "/revision" is expected to be u32 numeric value. TODO: add documentation Signed-off-by: Pali Rohár --- arch/arm/kernel/devtree.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/arch/arm/kernel/devtree.c b/arch/arm/kernel/devtree.c index 11c54de..7d82749 100644 --- a/arch/arm/kernel/devtree.c +++ b/arch/arm/kernel/devtree.c @@ -19,6 +19,7 @@ #include #include #include +#include #include #include @@ -26,6 +27,7 @@ #include #include #include +#include #ifdef CONFIG_SMP @@ -204,6 +206,8 @@ static const void * __init arch_get_next_mach(const char *const **match) const struct machine_desc * __init setup_machine_fdt(unsigned int dt_phys) { const struct machine_desc *mdesc, *mdesc_best = NULL; + unsigned long dt_root; + const u32 *rev; #ifdef CONFIG_ARCH_MULTIPLATFORM DT_MACHINE_START(GENERIC_DT, "Generic DT based system") @@ -215,17 +219,16 @@ const struct machine_desc * __init setup_machine_fdt(unsigned int dt_phys) if (!dt_phys || !early_init_dt_verify(phys_to_virt(dt_phys))) return NULL; + dt_root = of_get_flat_dt_root(); mdesc = of_flat_dt_match_machine(mdesc_best, arch_get_next_mach); if (!mdesc) { const char *prop; int size; - unsigned long dt_root; early_print("\nError: unrecognized/unsupported " "device tree compatible list:\n[ "); - dt_root = of_get_flat_dt_root(); prop = of_get_flat_dt_prop(dt_root, "compatible", &size); while (size > 0) { early_print("'%s' ", prop); @@ -246,5 +249,10 @@ const struct machine_desc * __init setup_machine_fdt(unsigned int dt_phys) /* Change machine number to match the mdesc we're using */ __machine_arch_type = mdesc->nr; + /* Set system revision from DT */ + rev = of_get_flat_dt_prop(dt_root, "revision", NULL); + if (rev) + system_rev = fdt32_to_cpu(*rev); + return mdesc; } -- 1.7.9.5