mirror of
https://github.com/torvalds/linux.git
synced 2024-11-12 07:01:57 +00:00
e9b7086b80
Commita66cb3454f
(ARM: OMAP: Map SRAM later on with ioremap_exec()) moved the SRAM init to happen later to remove a dependency to early SoC detection for map_io. This broke booting on some boards not using Kconfig option for OMAP_CLOCKS_SET_BY_BOOTLOADER as the dpll1 reprogramming would cause the following error: kernel BUG at arch/arm/plat-omap/sram.c:226! Internal error: Oops - undefined instruction: 0 [#1] PREEMPT Modules linked in: CPU: 0 Not tainted (3.2.0-rc1-e3 #9) PC is at omap_sram_reprogram_clock+0x28/0x30 LR is at omap1_select_table_rate+0x88/0xb4 pc : [<c001b0c4>] lr : [<c0019f54>] psr: 600000d3 sp : c035bf10 ip : c035bf20 fp : c035bf1c r10: c035bfd4 r9 : 54029252 r8 : c03f8120 r7 : c0362b50 r6 : 00b71b00 r5 : c03873cc r4 : c0362b40 r3 : 00000000 r2 : c0362b40 r1 : 0000010a r0 : 00002cb0 Flags: nZCv IRQs off FIQs off Mode SVC_32 ISA ARM Segment kernel Control: 0000317f Table: 10004000 DAC: 00000017 Process swapper (pid: 0, stack limit = 0xc035a270) Stack: (0xc035bf10 to 0xc035c000) bf00: c035bf3c c035bf20 c0019f54 c001b0ac bf20: 00001000 00002cb3 00000004 c035ed4c c035bf74 c035bf40 c033ea24 c0019edc bf40: c02f526c 00000002 00000015 bc058c9b 93111a16 c035335c 02000000 c035ed4c bf60: c035ed4c c03f8120 c035bf84 c035bf78 c00194c4 c033e8ec c035bfc4 c035bf88 bf80: c033bc24 c00194a0 c035bf90 c035bf98 00000000 00000000 00000000 00000000 bfa0: 00000001 00000000 c0354678 c035ece4 10004000 103532f4 c035bff4 c035bfc8 bfc0: c0338574 c033b598 00000000 00000000 00000000 c035467c 0000317d c035c03c bfe0: c0354678 c035ece4 00000000 c035bff8 10008040c0338508
00000000 00000000 Backtrace: [<c001b09c>] (omap_sram_reprogram_clock+0x0/0x30) from [<c0019f54>] (omap1_select_table_rate+0x88/0xb4) [<c0019ecc>] (omap1_select_table_rate+0x0/0xb4) from [<c033ea24>] (omap1_clk_init+0x148/0x334) r7:c035ed4c r6:00000004 r5:00002cb3 r4:00001000 [<c033e8dc>] (omap1_clk_init+0x0/0x334) from [<c00194c4>] (omap1_init_early+0x34/0x48) r8:c03f8120 r7:c035ed4c r6:c035ed4c r5:02000000 r4:c035335c [<c0019490>] (omap1_init_early+0x0/0x48) from [<c033bc24>] (setup_arch+0x69c/0x79c) [<c033b588>] (setup_arch+0x0/0x79c) from [<c0338574>] (start_kernel+0x7c/0x2f4) [<c03384f8>] (start_kernel+0x0/0x2f4) from [<10008040>] (0x10008040) r7:c035ece4 r6:c0354678 r5:c035c03c r4:0000317d Code: 0a000002 e1a0e00f e12fff13 e89da800 (e7f001f2) Fix this by adding omap1_clk_late_init() that only reprograms dpll1 if the bootloader rate is less than 60MHz. This also allows removing of the OMAP_CLOCKS_SET_BY_BOOTLOADER option. Reported-by: Aaro Koskinen <aaro.koskinen@iki.fi> Tested-by: Aaro Koskinen <aaro.koskinen@iki.fi> Signed-off-by: Tony Lindgren <tony@atomide.com>
238 lines
6.4 KiB
Plaintext
238 lines
6.4 KiB
Plaintext
if ARCH_OMAP1
|
|
|
|
menu "TI OMAP1 specific features"
|
|
|
|
comment "OMAP Core Type"
|
|
depends on ARCH_OMAP1
|
|
|
|
config ARCH_OMAP730
|
|
depends on ARCH_OMAP1
|
|
bool "OMAP730 Based System"
|
|
select CPU_ARM926T
|
|
select OMAP_MPU_TIMER
|
|
select ARCH_OMAP_OTG
|
|
|
|
config ARCH_OMAP850
|
|
depends on ARCH_OMAP1
|
|
bool "OMAP850 Based System"
|
|
select CPU_ARM926T
|
|
select ARCH_OMAP_OTG
|
|
|
|
config ARCH_OMAP15XX
|
|
depends on ARCH_OMAP1
|
|
default y
|
|
bool "OMAP15xx Based System"
|
|
select CPU_ARM925T
|
|
select OMAP_MPU_TIMER
|
|
|
|
config ARCH_OMAP16XX
|
|
depends on ARCH_OMAP1
|
|
bool "OMAP16xx Based System"
|
|
select CPU_ARM926T
|
|
select ARCH_OMAP_OTG
|
|
|
|
comment "OMAP Board Type"
|
|
depends on ARCH_OMAP1
|
|
|
|
config MACH_OMAP_INNOVATOR
|
|
bool "TI Innovator"
|
|
depends on ARCH_OMAP1 && (ARCH_OMAP15XX || ARCH_OMAP16XX)
|
|
select OMAP_MCBSP
|
|
help
|
|
TI OMAP 1510 or 1610 Innovator board support. Say Y here if you
|
|
have such a board.
|
|
|
|
config MACH_OMAP_H2
|
|
bool "TI H2 Support"
|
|
depends on ARCH_OMAP1 && ARCH_OMAP16XX
|
|
select OMAP_MCBSP
|
|
help
|
|
TI OMAP 1610/1611B H2 board support. Say Y here if you have such
|
|
a board.
|
|
|
|
config MACH_OMAP_H3
|
|
bool "TI H3 Support"
|
|
depends on ARCH_OMAP1 && ARCH_OMAP16XX
|
|
help
|
|
TI OMAP 1710 H3 board support. Say Y here if you have such
|
|
a board.
|
|
|
|
config MACH_OMAP_HTCWIZARD
|
|
bool "HTC Wizard"
|
|
depends on ARCH_OMAP850
|
|
help
|
|
HTC Wizard smartphone support (AKA QTEK 9100, ...)
|
|
|
|
config MACH_HERALD
|
|
bool "HTC Herald"
|
|
depends on ARCH_OMAP850
|
|
help
|
|
HTC Herald smartphone support (AKA T-Mobile Wing, ...)
|
|
|
|
config MACH_OMAP_OSK
|
|
bool "TI OSK Support"
|
|
depends on ARCH_OMAP1 && ARCH_OMAP16XX
|
|
select OMAP_MCBSP
|
|
help
|
|
TI OMAP 5912 OSK (OMAP Starter Kit) board support. Say Y here
|
|
if you have such a board.
|
|
|
|
config OMAP_OSK_MISTRAL
|
|
bool "Mistral QVGA board Support"
|
|
depends on MACH_OMAP_OSK
|
|
help
|
|
The OSK supports an optional add-on board with a Quarter-VGA
|
|
touchscreen, PDA-ish buttons, a resume button, bicolor LED,
|
|
and camera connector. Say Y here if you have this board.
|
|
|
|
config MACH_OMAP_PERSEUS2
|
|
bool "TI Perseus2"
|
|
depends on ARCH_OMAP1 && ARCH_OMAP730
|
|
help
|
|
Support for TI OMAP 730 Perseus2 board. Say Y here if you have such
|
|
a board.
|
|
|
|
config MACH_OMAP_FSAMPLE
|
|
bool "TI F-Sample"
|
|
depends on ARCH_OMAP1 && ARCH_OMAP730
|
|
help
|
|
Support for TI OMAP 850 F-Sample board. Say Y here if you have such
|
|
a board.
|
|
|
|
config MACH_VOICEBLUE
|
|
bool "Voiceblue"
|
|
depends on ARCH_OMAP1 && ARCH_OMAP15XX
|
|
help
|
|
Support for Voiceblue GSM/VoIP gateway. Say Y here if you have
|
|
such a board.
|
|
|
|
config MACH_OMAP_PALMTE
|
|
bool "Palm Tungsten E"
|
|
depends on ARCH_OMAP1 && ARCH_OMAP15XX
|
|
help
|
|
Support for the Palm Tungsten E PDA. To boot the kernel, you'll
|
|
need a PalmOS compatible bootloader; check out
|
|
http://palmtelinux.sourceforge.net/ for more information.
|
|
Say Y here if you have this PDA model, say N otherwise.
|
|
|
|
config MACH_OMAP_PALMZ71
|
|
bool "Palm Zire71"
|
|
depends on ARCH_OMAP1 && ARCH_OMAP15XX
|
|
help
|
|
Support for the Palm Zire71 PDA. To boot the kernel,
|
|
you'll need a PalmOS compatible bootloader; check out
|
|
http://hackndev.com/palm/z71 for more information.
|
|
Say Y here if you have such a PDA, say N otherwise.
|
|
|
|
config MACH_OMAP_PALMTT
|
|
bool "Palm Tungsten|T"
|
|
depends on ARCH_OMAP1 && ARCH_OMAP15XX
|
|
help
|
|
Support for the Palm Tungsten|T PDA. To boot the kernel, you'll
|
|
need a PalmOS compatible bootloader (Garux); check out
|
|
http://garux.sourceforge.net/ for more information.
|
|
Say Y here if you have this PDA model, say N otherwise.
|
|
|
|
config MACH_SX1
|
|
bool "Siemens SX1"
|
|
depends on ARCH_OMAP1 && ARCH_OMAP15XX
|
|
help
|
|
Support for the Siemens SX1 phone. To boot the kernel,
|
|
you'll need a SX1 compatible bootloader; check out
|
|
http://forum.oslik.ru and
|
|
http://www.handhelds.org/moin/moin.cgi/SiemensSX1
|
|
for more information.
|
|
Say Y here if you have such a phone, say NO otherwise.
|
|
|
|
config MACH_NOKIA770
|
|
bool "Nokia 770"
|
|
depends on ARCH_OMAP1 && ARCH_OMAP16XX
|
|
help
|
|
Support for the Nokia 770 Internet Tablet. Say Y here if you
|
|
have such a device.
|
|
|
|
config MACH_AMS_DELTA
|
|
bool "Amstrad E3 (Delta)"
|
|
depends on ARCH_OMAP1 && ARCH_OMAP15XX
|
|
select FIQ
|
|
help
|
|
Support for the Amstrad E3 (codename Delta) videophone. Say Y here
|
|
if you have such a device.
|
|
|
|
config MACH_OMAP_GENERIC
|
|
bool "Generic OMAP board"
|
|
depends on ARCH_OMAP1 && (ARCH_OMAP15XX || ARCH_OMAP16XX)
|
|
help
|
|
Support for generic OMAP-1510, 1610 or 1710 board with
|
|
no FPGA. Can be used as template for porting Linux to
|
|
custom OMAP boards. Say Y here if you have a custom
|
|
board.
|
|
|
|
comment "OMAP CPU Speed"
|
|
depends on ARCH_OMAP1
|
|
|
|
config OMAP_ARM_216MHZ
|
|
bool "OMAP ARM 216 MHz CPU (1710 only)"
|
|
depends on ARCH_OMAP1 && ARCH_OMAP16XX
|
|
help
|
|
Enable 216 MHz clock for OMAP1710 CPU. If unsure, say N.
|
|
|
|
config OMAP_ARM_195MHZ
|
|
bool "OMAP ARM 195 MHz CPU"
|
|
depends on ARCH_OMAP1 && (ARCH_OMAP730 || ARCH_OMAP850)
|
|
help
|
|
Enable 195MHz clock for OMAP CPU. If unsure, say N.
|
|
|
|
config OMAP_ARM_192MHZ
|
|
bool "OMAP ARM 192 MHz CPU"
|
|
depends on ARCH_OMAP1 && ARCH_OMAP16XX
|
|
help
|
|
Enable 192MHz clock for OMAP CPU. If unsure, say N.
|
|
|
|
config OMAP_ARM_182MHZ
|
|
bool "OMAP ARM 182 MHz CPU"
|
|
depends on ARCH_OMAP1 && (ARCH_OMAP730 || ARCH_OMAP850)
|
|
help
|
|
Enable 182MHz clock for OMAP CPU. If unsure, say N.
|
|
|
|
config OMAP_ARM_168MHZ
|
|
bool "OMAP ARM 168 MHz CPU"
|
|
depends on ARCH_OMAP1 && (ARCH_OMAP15XX || ARCH_OMAP16XX || ARCH_OMAP730 || ARCH_OMAP850)
|
|
help
|
|
Enable 168MHz clock for OMAP CPU. If unsure, say N.
|
|
|
|
config OMAP_ARM_150MHZ
|
|
bool "OMAP ARM 150 MHz CPU"
|
|
depends on ARCH_OMAP1 && ARCH_OMAP15XX
|
|
help
|
|
Enable 150MHz clock for OMAP CPU. If unsure, say N.
|
|
|
|
config OMAP_ARM_120MHZ
|
|
bool "OMAP ARM 120 MHz CPU"
|
|
depends on ARCH_OMAP1 && (ARCH_OMAP15XX || ARCH_OMAP16XX || ARCH_OMAP730 || ARCH_OMAP850)
|
|
help
|
|
Enable 120MHz clock for OMAP CPU. If unsure, say N.
|
|
|
|
config OMAP_ARM_96MHZ
|
|
bool "OMAP ARM 96 MHz CPU"
|
|
depends on ARCH_OMAP1 && (ARCH_OMAP15XX || ARCH_OMAP16XX || ARCH_OMAP730 || ARCH_OMAP850)
|
|
help
|
|
Enable 96MHz clock for OMAP CPU. If unsure, say N.
|
|
|
|
config OMAP_ARM_60MHZ
|
|
bool "OMAP ARM 60 MHz CPU"
|
|
depends on ARCH_OMAP1 && (ARCH_OMAP15XX || ARCH_OMAP16XX || ARCH_OMAP730 || ARCH_OMAP850)
|
|
default y
|
|
help
|
|
Enable 60MHz clock for OMAP CPU. If unsure, say Y.
|
|
|
|
config OMAP_ARM_30MHZ
|
|
bool "OMAP ARM 30 MHz CPU"
|
|
depends on ARCH_OMAP1 && (ARCH_OMAP15XX || ARCH_OMAP16XX || ARCH_OMAP730 || ARCH_OMAP850)
|
|
help
|
|
Enable 30MHz clock for OMAP CPU. If unsure, say N.
|
|
|
|
endmenu
|
|
|
|
endif
|