diff options
Diffstat (limited to 'arch/arm/mach-tegra/fuse.c')
-rw-r--r-- | arch/arm/mach-tegra/fuse.c | 14 |
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; | |||
35 | int tegra_core_process_id; | 35 | int tegra_core_process_id; |
36 | enum tegra_revision tegra_revision; | 36 | enum 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 | */ | ||
41 | int 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 | |||
38 | static const char *tegra_revision_name[TEGRA_REVISION_MAX] = { | 49 | static 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", |