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 PPC_PCI_CHOICE
10	help
11	  This option enables support for the Sony PS3 game console
12	  and other platforms using the PS3 hypervisor.  Enabling this
13	  option will allow building otheros.bld, a kernel image suitable
14	  for programming into flash memory, and vmlinux, a kernel image
15	  suitable for loading via kexec.
16
17menu "PS3 Platform Options"
18	depends on PPC_PS3
19
20config PS3_ADVANCED
21	depends on PPC_PS3
22	bool "PS3 Advanced configuration options"
23	help
24	  This gives you access to some advanced options for the PS3. The
25	  defaults should be fine for most users, but these options may make
26	  it possible to better control the kernel configuration if you know
27	  what you are doing.
28
29	  Note that the answer to this question won't directly affect the
30	  kernel: saying N will just cause the configurator to skip all
31	  the questions about these options.
32
33	  Most users should say N to this question.
34
35config PS3_HTAB_SIZE
36	depends on PPC_PS3
37	int "PS3 Platform pagetable size" if PS3_ADVANCED
38	range 18 20
39	default 20
40	help
41	  This option is only for experts who may have the desire to fine
42	  tune the pagetable size on their system.  The value here is
43	  expressed as the log2 of the page table size.  Valid values are
44	  18, 19, and 20, corresponding to 256KB, 512KB and 1MB respectively.
45
46	  If unsure, choose the default (20) with the confidence that your
47	  system will have optimal runtime performance.
48
49config PS3_DYNAMIC_DMA
50	depends on PPC_PS3
51	bool "PS3 Platform dynamic DMA page table management"
52	default n
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 PS3_VUART
71	default y
72	help
73	  Include support for the PS3 AV Settings driver.
74
75	  This support is required for PS3 graphics and sound. In
76	  general, all users will say Y or M.
77
78config PS3_SYS_MANAGER
79	depends on PPC_PS3
80	tristate "PS3 System Manager driver" if PS3_ADVANCED
81	select PS3_VUART
82	default y
83	help
84	  Include support for the PS3 System Manager.
85
86	  This support is required for PS3 system control.  In
87	  general, all users will say Y or M.
88
89config PS3_REPOSITORY_WRITE
90	bool "PS3 Repository write support" if PS3_ADVANCED
91	depends on PPC_PS3
92	default n
93	help
94	  Enables support for writing to the PS3 System Repository.
95
96	  This support is intended for bootloaders that need to store data
97	  in the repository for later boot stages.
98
99	  If in doubt, say N here and reduce the size of the kernel by a
100	  small amount.
101
102config PS3_STORAGE
103	depends on PPC_PS3
104	tristate
105
106config PS3_DISK
107	tristate "PS3 Disk Storage Driver"
108	depends on PPC_PS3 && BLOCK
109	select PS3_STORAGE
110	help
111	  Include support for the PS3 Disk Storage.
112
113	  This support is required to access the PS3 hard disk.
114	  In general, all users will say Y or M.
115
116config PS3_ROM
117	tristate "PS3 BD/DVD/CD-ROM Storage Driver"
118	depends on PPC_PS3 && SCSI
119	select PS3_STORAGE
120	help
121	  Include support for the PS3 ROM Storage.
122
123	  This support is required to access the PS3 BD/DVD/CD-ROM drive.
124	  In general, all users will say Y or M.
125	  Also make sure to say Y or M to "SCSI CDROM support" later.
126
127config PS3_FLASH
128	tristate "PS3 FLASH ROM Storage Driver"
129	depends on PPC_PS3
130	select PS3_STORAGE
131	help
132	  Include support for the PS3 FLASH ROM Storage.
133
134	  This support is required to access the PS3 FLASH ROM, which
135	  contains the boot loader and some boot options.
136	  In general, PS3 OtherOS users will say Y or M.
137
138	  As this driver needs a fixed buffer of 256 KiB of memory, it can
139	  be disabled on the kernel command line using "ps3flash=off", to
140	  not allocate this fixed buffer.
141
142config PS3_VRAM
143	tristate "PS3 Video RAM Storage Driver"
144	depends on FB_PS3=y && BLOCK && m
145	help
146	  This driver allows you to use excess PS3 video RAM as volatile
147	  storage or system swap.
148
149config PS3_LPM
150	tristate "PS3 Logical Performance Monitor support"
151	depends on PPC_PS3
152	help
153	  Include support for the PS3 Logical Performance Monitor.
154
155	  This support is required to use the logical performance monitor
156	  of the PS3's LV1 hypervisor.
157
158	  If you intend to use the advanced performance monitoring and
159	  profiling support of the Cell processor with programs like
160	  oprofile and perfmon2, then say Y or M, otherwise say N.
161
162config PS3GELIC_UDBG
163	bool "PS3 udbg output via UDP broadcasts on Ethernet"
164	depends on PPC_PS3
165	help
166	  Enables udbg early debugging output by sending broadcast UDP
167	  via the Ethernet port (UDP port number 18194).
168
169	  This driver uses a trivial implementation and is independent
170	  from the main PS3 gelic network driver.
171
172	  If in doubt, say N here.
173
174endmenu
175