diff options
Diffstat (limited to 'arch/arm/mach-tegra/include/mach/lowlevel.h')
-rw-r--r-- | arch/arm/mach-tegra/include/mach/lowlevel.h | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/arch/arm/mach-tegra/include/mach/lowlevel.h b/arch/arm/mach-tegra/include/mach/lowlevel.h index f1fea86cf6..0c76b8883c 100644 --- a/arch/arm/mach-tegra/include/mach/lowlevel.h +++ b/arch/arm/mach-tegra/include/mach/lowlevel.h @@ -111,9 +111,9 @@ u32 tegra_get_odmdata(void) return 0; } - bctptr = cpu_readl(TEGRA_IRAM_BASE + bctptr_offset); + bctptr = __raw_readl(TEGRA_IRAM_BASE + bctptr_offset); - return cpu_readl(bctptr + odmdata_offset); + return __raw_readl(bctptr + odmdata_offset); } static __always_inline @@ -243,11 +243,20 @@ void tegra_ll_delay_usec(int delay) while ((int)readl(TEGRA_TMRUS_BASE + TIMER_CNTR_1US) - timeout < 0); } +/* reset vector for the AVP, to be called from board reset vector */ +void tegra_avp_reset_vector(uint32_t boarddata); + +/* reset vector for the main CPU complex */ +void tegra_maincomplex_entry(void); + static __always_inline void tegra_cpu_lowlevel_setup(void) { uint32_t r; + if (tegra_cpu_is_maincomplex()) + tegra_maincomplex_entry(); + /* set the cpu to SVC32 mode */ __asm__ __volatile__("mrs %0, cpsr":"=r"(r)); r &= ~0x1f; @@ -258,10 +267,4 @@ void tegra_cpu_lowlevel_setup(void) tegra_ll_delay_setup(); } -/* reset vector for the AVP, to be called from board reset vector */ -void tegra_avp_reset_vector(uint32_t boarddata); - -/* reset vector for the main CPU complex */ -void tegra_maincomplex_entry(void); - #endif /* __TEGRA_LOWLEVEL_H */ |