aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-tegra/fuse.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-tegra/fuse.c')
-rw-r--r--arch/arm/mach-tegra/fuse.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/arch/arm/mach-tegra/fuse.c b/arch/arm/mach-tegra/fuse.c
index b1895c53ed60..17fdd4086e6f 100644
--- a/arch/arm/mach-tegra/fuse.c
+++ b/arch/arm/mach-tegra/fuse.c
@@ -35,6 +35,17 @@ int tegra_cpu_process_id;
35int tegra_core_process_id; 35int tegra_core_process_id;
36enum tegra_revision tegra_revision; 36enum tegra_revision tegra_revision;
37 37
38/* The BCT to use at boot is specified by board straps that can be read
39 * through a APB misc register and decoded. 2 bits, i.e. 4 possible BCTs.
40 */
41int tegra_bct_strapping;
42
43#define STRAP_OPT 0x008
44#define GMI_AD0 (1 << 4)
45#define GMI_AD1 (1 << 5)
46#define RAM_ID_MASK (GMI_AD0 | GMI_AD1)
47#define RAM_CODE_SHIFT 4
48
38static const char *tegra_revision_name[TEGRA_REVISION_MAX] = { 49static const char *tegra_revision_name[TEGRA_REVISION_MAX] = {
39 [TEGRA_REVISION_UNKNOWN] = "unknown", 50 [TEGRA_REVISION_UNKNOWN] = "unknown",
40 [TEGRA_REVISION_A01] = "A01", 51 [TEGRA_REVISION_A01] = "A01",
@@ -93,6 +104,9 @@ void tegra_init_fuse(void)
93 reg = tegra_fuse_readl(FUSE_SPARE_BIT); 104 reg = tegra_fuse_readl(FUSE_SPARE_BIT);
94 tegra_core_process_id = (reg >> 12) & 3; 105 tegra_core_process_id = (reg >> 12) & 3;
95 106
107 reg = tegra_apb_readl(TEGRA_APB_MISC_BASE + STRAP_OPT);
108 tegra_bct_strapping = (reg & RAM_ID_MASK) >> RAM_CODE_SHIFT;
109
96 tegra_revision = tegra_get_revision(); 110 tegra_revision = tegra_get_revision();
97 111
98 pr_info("Tegra Revision: %s SKU: %d CPU Process: %d Core Process: %d\n", 112 pr_info("Tegra Revision: %s SKU: %d CPU Process: %d Core Process: %d\n",