1# SPDX-License-Identifier: GPL-2.0
2config PPC_PS3
3	bool "Sony PS3"
4	depends on PPC64 && PPC_BOOK3S && CPU_BIG_ENDIAN
5	select PPC_CELL
6	select USB_OHCI_LITTLE_ENDIAN
7	select USB_OHCI_BIG_ENDIAN_MMIO
8	select USB_EHCI_BIG_ENDIAN_MMIO
9	select HAVE_PCI
10	select IRQ_DOMAIN_NOMAP
11	help
12	  This option enables support for the Sony PS3 game console
13	  and other platforms using the PS3 hypervisor.  Enabling this
14	  option will allow building otheros.bld, a kernel image suitable
15	  for programming into flash memory, and vmlinux, a kernel image
16	  suitable for loading via kexec.
17
18menu "PS3 Platform Options"
19	depends on PPC_PS3
20
21config PS3_ADVANCED
22	depends on PPC_PS3
23	bool "PS3 Advanced configuration options"
24	help
25	  This gives you access to some advanced options for the PS3. The
26	  defaults should be fine for most users, but these options may make
27	  it possible to better control the kernel configuration if you know
28	  what you are doing.
29
30	  Note that the answer to this question won't directly affect the
31	  kernel: saying N will just cause the configurator to skip all
32	  the questions about these options.
33
34	  Most users should say N to this question.
35
36config PS3_HTAB_SIZE
37	depends on PPC_PS3
38	int "PS3 Platform pagetable size" if PS3_ADVANCED
39	range 18 20
40	default 20
41	help
42	  This option is only for experts who may have the desire to fine
43	  tune the pagetable size on their system.  The value here is
44	  expressed as the log2 of the page table size.  Valid values are
45	  18, 19, and 20, corresponding to 256KB, 512KB and 1MB respectively.
46
47	  If unsure, choose the default (20) with the confidence that your
48	  system will have optimal runtime performance.
49
50config PS3_DYNAMIC_DMA
51	depends on PPC_PS3
52	bool "PS3 Platform dynamic DMA page table management"
53	help
54	  This option will enable kernel support to take advantage of the
55	  per device dynamic DMA page table management provided by the Cell
56	  processor's IO Controller.  This support incurs some runtime
57	  overhead and also slightly increases kernel memory usage.  The
58	  current implementation should be considered experimental.
59
60	  This support is mainly for Linux kernel development.  If unsure,
61	  say N.
62
63config PS3_VUART
64	depends on PPC_PS3
65	tristate
66
67config PS3_PS3AV
68	depends on PPC_PS3
69	tristate "PS3 AV settings driver" if PS3_ADVANCED
70	select VIDEO
71	select PS3_VUART
72	default y
73	help
74	  Include support for the PS3 AV Settings driver.
75
76	  This support is required for PS3 graphics and sound. In
77	  general, all users will say Y or M.
78
79config PS3_SYS_MANAGER
80	depends on PPC_PS3
81	tristate "PS3 System Manager driver" if PS3_ADVANCED
82	select PS3_VUART
83	default y
84	help
85	  Include support for the PS3 System Manager.
86
87	  This support is required for PS3 system control.  In
88	  general, all users will say Y or M.
89
90config PS3_VERBOSE_RESULT
91	bool "PS3 Verbose LV1 hypercall results" if PS3_ADVANCED
92	depends on PPC_PS3
93	help
94	  Enables more verbose log messages for LV1 hypercall results.
95
96	  If in doubt, say N here and reduce the size of the kernel by a
97	  small amount.
98
99config PS3_REPOSITORY_WRITE
100	bool "PS3 Repository write support" if PS3_ADVANCED
101	depends on PPC_PS3
102	help
103	  Enables support for writing to the PS3 System Repository.
104
105	  This support is intended for bootloaders that need to store data
106	  in the repository for later boot stages.
107
108	  If in doubt, say N here and reduce the size of the kernel by a
109	  small amount.
110
111config PS3_STORAGE
112	depends on PPC_PS3
113	tristate
114
115config PS3_DISK
116	tristate "PS3 Disk Storage Driver"
117	depends on PPC_PS3 && BLOCK
118	select PS3_STORAGE
119	help
120	  Include support for the PS3 Disk Storage.
121
122	  This support is required to access the PS3 hard disk.
123	  In general, all users will say Y or M.
124
125config PS3_ROM
126	tristate "PS3 BD/DVD/CD-ROM Storage Driver"
127	depends on PPC_PS3 && SCSI
128	select PS3_STORAGE
129	help
130	  Include support for the PS3 ROM Storage.
131
132	  This support is required to access the PS3 BD/DVD/CD-ROM drive.
133	  In general, all users will say Y or M.
134	  Also make sure to say Y or M to "SCSI CDROM support" later.
135
136config PS3_FLASH
137	tristate "PS3 FLASH ROM Storage Driver"
138	depends on PPC_PS3
139	select PS3_STORAGE
140	help
141	  Include support for the PS3 FLASH ROM Storage.
142
143	  This support is required to access the PS3 FLASH ROM, which
144	  contains the boot loader and some boot options.
145	  In general, PS3 OtherOS users will say Y or M.
146
147	  As this driver needs a fixed buffer of 256 KiB of memory, it can
148	  be disabled on the kernel command line using "ps3flash=off", to
149	  not allocate this fixed buffer.
150
151config PS3_VRAM
152	tristate "PS3 Video RAM Storage Driver"
153	depends on FB_PS3=y && BLOCK && m
154	help
155	  This driver allows you to use excess PS3 video RAM as volatile
156	  storage or system swap.
157
158config PS3_LPM
159	tristate "PS3 Logical Performance Monitor support"
160	depends on PPC_PS3
161	help
162	  Include support for the PS3 Logical Performance Monitor.
163
164	  This support is required to use the logical performance monitor
165	  of the PS3's LV1 hypervisor.
166
167	  If you intend to use the advanced performance monitoring and
168	  profiling support of the Cell processor with programs like
169	  perfmon2, then say Y or M, otherwise say N.
170
171endmenu
172