From: eduardo.valentin@nokia.com (Eduardo Valentin)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCHv4 4/4] OMAP3: export chip IDCODE, Production ID and Die ID
Date: Mon, 10 May 2010 13:37:37 +0300 [thread overview]
Message-ID: <1273487857-32281-5-git-send-email-eduardo.valentin@nokia.com> (raw)
In-Reply-To: <1273487857-32281-1-git-send-email-eduardo.valentin@nokia.com>
From: Eduardo Valentin <eduardo.valentin@nokia.com>
This patch exports the OMAP3 IDCODE and Production ID to userspace
via /proc/socinfo.
Die ID is also exported depending on what users pass as kernel
parameter. It is same protection mechanism made for x86 product
number. So, if user passes "omap3_die_id" parameter, it will append
die id code into /proc/socinfo as well. A Kconfig option has been
added as well, so it can be configurable during compilation time.
This can be used to track down silicon specific issues. The info is
exported via /proc/socinfo because then it can be possible to include this
in corematic dumps.
This is based on Peter De Schrijver patch, which export same info via sysfs.
Signed-off-by: Eduardo Valentin <eduardo.valentin@nokia.com>
---
Documentation/kernel-parameters.txt | 2 ++
arch/arm/mach-omap2/Kconfig | 10 ++++++++++
arch/arm/mach-omap2/id.c | 35 ++++++++++++++++++++++++++++++++++-
3 files changed, 46 insertions(+), 1 deletions(-)
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
index 839b21b..8010cfb 100644
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -1809,6 +1809,8 @@ and is between 256 and 4096 characters. It is defined in the file
waiting for the ACK, so if this is set too high
interrupts *may* be lost!
+ omap3_die_id [OMAP] Append DIE ID info under /proc/socinfo
+
omap_mux= [OMAP] Override bootloader pin multiplexing.
Format: <mux_mode0.mode_name=value>...
For example, to override I2C bus2:
diff --git a/arch/arm/mach-omap2/Kconfig b/arch/arm/mach-omap2/Kconfig
index 2455dcc..fb8abed 100644
--- a/arch/arm/mach-omap2/Kconfig
+++ b/arch/arm/mach-omap2/Kconfig
@@ -169,3 +169,13 @@ config OMAP3_SDRC_AC_TIMING
wish to say no. Selecting yes without understanding what is
going on could result in system crashes;
+config OMAP3_EXPORT_DIE_ID
+ bool "Export DIE ID code under /proc/socinfo"
+ depends on ARCH_OMAP3
+ default n
+ help
+ Say Y here if you need DIE ID code to be exported via /proc/socinfo
+ in production systems. You will need also to explicitly flag it by
+ appending the "omap3_die_id" parameter to your boot command line.
+
+
diff --git a/arch/arm/mach-omap2/id.c b/arch/arm/mach-omap2/id.c
index 8ecd8e2..9663066 100644
--- a/arch/arm/mach-omap2/id.c
+++ b/arch/arm/mach-omap2/id.c
@@ -77,6 +77,10 @@ EXPORT_SYMBOL(omap_type);
/*----------------------------------------------------------------------------*/
#define OMAP_TAP_IDCODE 0x0204
+#define OMAP_TAP_PROD_ID_0 0x0208
+#define OMAP_TAP_PROD_ID_1 0x020c
+#define OMAP_TAP_PROD_ID_2 0x0210
+#define OMAP_TAP_PROD_ID_3 0x0214
#define OMAP_TAP_DIE_ID_0 0x0218
#define OMAP_TAP_DIE_ID_1 0x021C
#define OMAP_TAP_DIE_ID_2 0x0220
@@ -305,6 +309,7 @@ void __init omap4_check_revision(void)
void __init omap3_cpuinfo(void)
{
+ int sz;
u8 rev = GET_OMAP_REVISION();
char cpu_name[16], cpu_rev[16];
@@ -362,7 +367,7 @@ void __init omap3_cpuinfo(void)
}
/* Print verbose information */
- snprintf(socinfo, SOCINFO_SZ, "%s ES%s", cpu_name, cpu_rev);
+ sz = snprintf(socinfo, SOCINFO_SZ, "%s ES%s", cpu_name, cpu_rev);
pr_info("%s (", socinfo);
OMAP3_SHOW_FEATURE(l2cache);
@@ -373,7 +378,35 @@ void __init omap3_cpuinfo(void)
OMAP3_SHOW_FEATURE(192mhz_clk);
printk(")\n");
+
+ /* Append OMAP3 IDCODE and Production ID to system_soc_info */
+ snprintf(socinfo + sz, SOCINFO_SZ - sz,
+ "\nIDCODE\t: %08x\nPr. ID\t: %08x %08x %08x %08x",
+ read_tap_reg(OMAP_TAP_IDCODE),
+ read_tap_reg(OMAP_TAP_PROD_ID_0),
+ read_tap_reg(OMAP_TAP_PROD_ID_1),
+ read_tap_reg(OMAP_TAP_PROD_ID_2),
+ read_tap_reg(OMAP_TAP_PROD_ID_3));
+
+}
+
+#ifdef CONFIG_OMAP3_EXPORT_DIE_ID
+static int __init omap3_die_id_setup(char *s)
+{
+ int sz;
+
+ sz = strlen(socinfo);
+ snprintf(socinfo + sz, SOCINFO_SZ - sz,
+ "\nDie ID\t: %08x %08x %08x %08x",
+ read_tap_reg(OMAP_TAP_DIE_ID_0),
+ read_tap_reg(OMAP_TAP_DIE_ID_1),
+ read_tap_reg(OMAP_TAP_DIE_ID_2),
+ read_tap_reg(OMAP_TAP_DIE_ID_3));
+
+ return 1;
}
+__setup("omap3_die_id", omap3_die_id_setup);
+#endif
/*
* Try to detect the exact revision of the omap we're running on
--
1.7.0.4.361.g8b5fe.dirty
prev parent reply other threads:[~2010-05-10 10:37 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-05-10 10:37 [PATCHv4 0/4] Introduce the /proc/socinfo and use it to export OMAP data Eduardo Valentin
2010-05-10 10:37 ` [PATCHv4 1/4] procfs: Introduce socinfo under /proc Eduardo Valentin
2010-05-10 11:13 ` Paul Mundt
2010-05-10 12:35 ` Eduardo Valentin
2010-05-10 12:39 ` Paul Mundt
2010-05-10 12:55 ` Eduardo Valentin
2010-05-11 3:14 ` Paul Mundt
2010-05-11 6:21 ` Russell King - ARM Linux
2010-05-10 12:54 ` Felipe Balbi
2010-05-10 13:08 ` Eduardo Valentin
2010-05-10 18:15 ` Felipe Balbi
2010-05-10 14:22 ` Eduardo Valentin
2010-05-11 3:11 ` Paul Mundt
2010-05-10 10:37 ` [PATCHv4 2/4] mach-omap2: export omap2 info under /proc/socinfo Eduardo Valentin
2010-05-10 10:37 ` [PATCHv4 3/4] mach-omap1: export omap1 " Eduardo Valentin
2010-05-10 10:52 ` Russell King - ARM Linux
2010-05-10 12:13 ` Eduardo Valentin
2010-05-10 10:37 ` Eduardo Valentin [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1273487857-32281-5-git-send-email-eduardo.valentin@nokia.com \
--to=eduardo.valentin@nokia.com \
--cc=linux-arm-kernel@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).