xref: /openbmc/linux/arch/powerpc/platforms/Kconfig (revision a72594ca)
1# SPDX-License-Identifier: GPL-2.0
2menu "Platform support"
3
4source "arch/powerpc/platforms/powernv/Kconfig"
5source "arch/powerpc/platforms/pseries/Kconfig"
6source "arch/powerpc/platforms/chrp/Kconfig"
7source "arch/powerpc/platforms/512x/Kconfig"
8source "arch/powerpc/platforms/52xx/Kconfig"
9source "arch/powerpc/platforms/powermac/Kconfig"
10source "arch/powerpc/platforms/maple/Kconfig"
11source "arch/powerpc/platforms/pasemi/Kconfig"
12source "arch/powerpc/platforms/ps3/Kconfig"
13source "arch/powerpc/platforms/cell/Kconfig"
14source "arch/powerpc/platforms/8xx/Kconfig"
15source "arch/powerpc/platforms/82xx/Kconfig"
16source "arch/powerpc/platforms/83xx/Kconfig"
17source "arch/powerpc/platforms/85xx/Kconfig"
18source "arch/powerpc/platforms/86xx/Kconfig"
19source "arch/powerpc/platforms/embedded6xx/Kconfig"
20source "arch/powerpc/platforms/44x/Kconfig"
21source "arch/powerpc/platforms/40x/Kconfig"
22source "arch/powerpc/platforms/amigaone/Kconfig"
23
24config KVM_GUEST
25	bool "KVM Guest support"
26	default n
27	select EPAPR_PARAVIRT
28	---help---
29	  This option enables various optimizations for running under the KVM
30	  hypervisor. Overhead for the kernel when not running inside KVM should
31	  be minimal.
32
33	  In case of doubt, say Y
34
35config EPAPR_PARAVIRT
36	bool "ePAPR para-virtualization support"
37	default n
38	help
39	  Enables ePAPR para-virtualization support for guests.
40
41	  In case of doubt, say Y
42
43config PPC_NATIVE
44	bool
45	depends on 6xx || PPC64
46	help
47	  Support for running natively on the hardware, i.e. without
48	  a hypervisor. This option is not user-selectable but should
49	  be selected by all platforms that need it.
50
51config PPC_OF_BOOT_TRAMPOLINE
52	bool "Support booting from Open Firmware or yaboot"
53	depends on 6xx || PPC64
54	default y
55	help
56	  Support from booting from Open Firmware or yaboot using an
57	  Open Firmware client interface. This enables the kernel to
58	  communicate with open firmware to retrieve system information
59	  such as the device tree.
60
61	  In case of doubt, say Y
62
63config PPC_DT_CPU_FTRS
64	bool "Device-tree based CPU feature discovery & setup"
65	depends on PPC_BOOK3S_64
66	default y
67	help
68	  This enables code to use a new device tree binding for describing CPU
69	  compatibility and features. Saying Y here will attempt to use the new
70	  binding if the firmware provides it. Currently only the skiboot
71	  firmware provides this binding.
72	  If you're not sure say Y.
73
74config UDBG_RTAS_CONSOLE
75	bool "RTAS based debug console"
76	depends on PPC_RTAS
77	default n
78
79config PPC_SMP_MUXED_IPI
80	bool
81	help
82	  Select this option if your platform supports SMP and your
83	  interrupt controller provides less than 4 interrupts to each
84	  cpu.	This will enable the generic code to multiplex the 4
85	  messages on to one ipi.
86
87config IPIC
88	bool
89	default n
90
91config MPIC
92	bool
93	default n
94
95config MPIC_TIMER
96	bool "MPIC Global Timer"
97	depends on MPIC && FSL_SOC
98	default n
99	help
100	  The MPIC global timer is a hardware timer inside the
101	  Freescale PIC complying with OpenPIC standard. When the
102	  specified interval times out, the hardware timer generates
103	  an interrupt. The driver currently is only tested on fsl
104	  chip, but it can potentially support other global timers
105	  complying with the OpenPIC standard.
106
107config FSL_MPIC_TIMER_WAKEUP
108	tristate "Freescale MPIC global timer wakeup driver"
109	depends on FSL_SOC &&  MPIC_TIMER && PM
110	default n
111	help
112	  The driver provides a way to wake up the system by MPIC
113	  timer.
114	  e.g. "echo 5 > /sys/devices/system/mpic/timer_wakeup"
115
116config PPC_EPAPR_HV_PIC
117	bool
118	default n
119	select EPAPR_PARAVIRT
120
121config MPIC_WEIRD
122	bool
123	default n
124
125config MPIC_MSGR
126	bool "MPIC message register support"
127	depends on MPIC
128	default n
129	help
130	  Enables support for the MPIC message registers.  These
131	  registers are used for inter-processor communication.
132
133config PPC_I8259
134	bool
135	default n
136
137config U3_DART
138	bool
139	depends on PPC64
140	default n
141
142config PPC_RTAS
143	bool
144	default n
145
146config RTAS_ERROR_LOGGING
147	bool
148	depends on PPC_RTAS
149	default n
150
151config PPC_RTAS_DAEMON
152	bool
153	depends on PPC_RTAS
154	default n
155
156config RTAS_PROC
157	bool "Proc interface to RTAS"
158	depends on PPC_RTAS && PROC_FS
159	default y
160
161config RTAS_FLASH
162	tristate "Firmware flash interface"
163	depends on PPC64 && RTAS_PROC
164
165config MMIO_NVRAM
166	bool
167	default n
168
169config MPIC_U3_HT_IRQS
170	bool
171	default n
172
173config MPIC_BROKEN_REGREAD
174	bool
175	depends on MPIC
176	help
177	  This option enables a MPIC driver workaround for some chips
178	  that have a bug that causes some interrupt source information
179	  to not read back properly. It is safe to use on other chips as
180	  well, but enabling it uses about 8KB of memory to keep copies
181	  of the register contents in software.
182
183config EEH
184	bool
185	depends on (PPC_POWERNV || PPC_PSERIES) && PCI
186	default y
187
188config PPC_MPC106
189	bool
190	default n
191
192config PPC_970_NAP
193	bool
194	default n
195
196config PPC_P7_NAP
197	bool
198	default n
199
200config PPC_INDIRECT_PIO
201	bool
202	select GENERIC_IOMAP
203
204config PPC_INDIRECT_MMIO
205	bool
206
207config PPC_IO_WORKAROUNDS
208	bool
209
210source "drivers/cpufreq/Kconfig"
211
212menu "CPUIdle driver"
213
214source "drivers/cpuidle/Kconfig"
215
216endmenu
217
218config PPC601_SYNC_FIX
219	bool "Workarounds for PPC601 bugs"
220	depends on 6xx && PPC_PMAC
221	help
222	  Some versions of the PPC601 (the first PowerPC chip) have bugs which
223	  mean that extra synchronization instructions are required near
224	  certain instructions, typically those that make major changes to the
225	  CPU state.  These extra instructions reduce performance slightly.
226	  If you say N here, these extra instructions will not be included,
227	  resulting in a kernel which will run faster but may not run at all
228	  on some systems with the PPC601 chip.
229
230	  If in doubt, say Y here.
231
232config TAU
233	bool "On-chip CPU temperature sensor support"
234	depends on 6xx
235	help
236	  G3 and G4 processors have an on-chip temperature sensor called the
237	  'Thermal Assist Unit (TAU)', which, in theory, can measure the on-die
238	  temperature within 2-4 degrees Celsius. This option shows the current
239	  on-die temperature in /proc/cpuinfo if the cpu supports it.
240
241	  Unfortunately, on some chip revisions, this sensor is very inaccurate
242	  and in many cases, does not work at all, so don't assume the cpu
243	  temp is actually what /proc/cpuinfo says it is.
244
245config TAU_INT
246	bool "Interrupt driven TAU driver (DANGEROUS)"
247	depends on TAU
248	---help---
249	  The TAU supports an interrupt driven mode which causes an interrupt
250	  whenever the temperature goes out of range. This is the fastest way
251	  to get notified the temp has exceeded a range. With this option off,
252	  a timer is used to re-check the temperature periodically.
253
254	  However, on some cpus it appears that the TAU interrupt hardware
255	  is buggy and can cause a situation which would lead unexplained hard
256	  lockups.
257
258	  Unless you are extending the TAU driver, or enjoy kernel/hardware
259	  debugging, leave this option off.
260
261config TAU_AVERAGE
262	bool "Average high and low temp"
263	depends on TAU
264	---help---
265	  The TAU hardware can compare the temperature to an upper and lower
266	  bound.  The default behavior is to show both the upper and lower
267	  bound in /proc/cpuinfo. If the range is large, the temperature is
268	  either changing a lot, or the TAU hardware is broken (likely on some
269	  G4's). If the range is small (around 4 degrees), the temperature is
270	  relatively stable.  If you say Y here, a single temperature value,
271	  halfway between the upper and lower bounds, will be reported in
272	  /proc/cpuinfo.
273
274	  If in doubt, say N here.
275
276config QE_GPIO
277	bool "QE GPIO support"
278	depends on QUICC_ENGINE
279	select GPIOLIB
280	help
281	  Say Y here if you're going to use hardware that connects to the
282	  QE GPIOs.
283
284config CPM2
285	bool "Enable support for the CPM2 (Communications Processor Module)"
286	depends on (FSL_SOC_BOOKE && PPC32) || 8260
287	select CPM
288	select PPC_PCI_CHOICE
289	select GPIOLIB
290	help
291	  The CPM2 (Communications Processor Module) is a coprocessor on
292	  embedded CPUs made by Freescale.  Selecting this option means that
293	  you wish to build a kernel for a machine with a CPM2 coprocessor
294	  on it (826x, 827x, 8560).
295
296config AXON_RAM
297	tristate "Axon DDR2 memory device driver"
298	depends on PPC_IBM_CELL_BLADE && BLOCK
299	select DAX
300	default m
301	help
302	  It registers one block device per Axon's DDR2 memory bank found
303	  on a system. Block devices are called axonram?, their major and
304	  minor numbers are available in /proc/devices, /proc/partitions or
305	  in /sys/block/axonram?/dev.
306
307config FSL_ULI1575
308	bool
309	default n
310	select GENERIC_ISA_DMA
311	help
312	  Supports for the ULI1575 PCIe south bridge that exists on some
313	  Freescale reference boards. The boards all use the ULI in pretty
314	  much the same way.
315
316config CPM
317	bool
318	select GENERIC_ALLOCATOR
319
320config OF_RTC
321	bool
322	help
323	  Uses information from the OF or flattened device tree to instantiate
324	  platform devices for direct mapped RTC chips like the DS1742 or DS1743.
325
326config GEN_RTC
327	bool "Use the platform RTC operations from user space"
328	select RTC_CLASS
329	select RTC_DRV_GENERIC
330	help
331	  This option provides backwards compatibility with the old gen_rtc.ko
332	  module that was traditionally used for old PowerPC machines.
333	  Platforms should migrate to enabling the RTC_DRV_GENERIC by hand
334	  replacing their get_rtc_time/set_rtc_time callbacks with
335	  a proper RTC device driver.
336
337config SIMPLE_GPIO
338	bool "Support for simple, memory-mapped GPIO controllers"
339	depends on PPC
340	select GPIOLIB
341	help
342	  Say Y here to support simple, memory-mapped GPIO controllers.
343	  These are usually BCSRs used to control board's switches, LEDs,
344	  chip-selects, Ethernet/USB PHY's power and various other small
345	  on-board peripherals.
346
347config MCU_MPC8349EMITX
348	bool "MPC8349E-mITX MCU driver"
349	depends on I2C=y && PPC_83xx
350	select GPIOLIB
351	help
352	  Say Y here to enable soft power-off functionality on the Freescale
353	  boards with the MPC8349E-mITX-compatible MCU chips. This driver will
354	  also register MCU GPIOs with the generic GPIO API, so you'll able
355	  to use MCU pins as GPIOs.
356
357config XILINX_PCI
358	bool "Xilinx PCI host bridge support"
359	depends on PCI && XILINX_VIRTEX
360
361endmenu
362