162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0
262306a36Sopenharmony_ciconfig PPC_PS3
362306a36Sopenharmony_ci	bool "Sony PS3"
462306a36Sopenharmony_ci	depends on PPC64 && PPC_BOOK3S && CPU_BIG_ENDIAN
562306a36Sopenharmony_ci	select PPC_CELL
662306a36Sopenharmony_ci	select USB_OHCI_LITTLE_ENDIAN
762306a36Sopenharmony_ci	select USB_OHCI_BIG_ENDIAN_MMIO
862306a36Sopenharmony_ci	select USB_EHCI_BIG_ENDIAN_MMIO
962306a36Sopenharmony_ci	select HAVE_PCI
1062306a36Sopenharmony_ci	select IRQ_DOMAIN_NOMAP
1162306a36Sopenharmony_ci	help
1262306a36Sopenharmony_ci	  This option enables support for the Sony PS3 game console
1362306a36Sopenharmony_ci	  and other platforms using the PS3 hypervisor.  Enabling this
1462306a36Sopenharmony_ci	  option will allow building otheros.bld, a kernel image suitable
1562306a36Sopenharmony_ci	  for programming into flash memory, and vmlinux, a kernel image
1662306a36Sopenharmony_ci	  suitable for loading via kexec.
1762306a36Sopenharmony_ci
1862306a36Sopenharmony_cimenu "PS3 Platform Options"
1962306a36Sopenharmony_ci	depends on PPC_PS3
2062306a36Sopenharmony_ci
2162306a36Sopenharmony_ciconfig PS3_ADVANCED
2262306a36Sopenharmony_ci	depends on PPC_PS3
2362306a36Sopenharmony_ci	bool "PS3 Advanced configuration options"
2462306a36Sopenharmony_ci	help
2562306a36Sopenharmony_ci	  This gives you access to some advanced options for the PS3. The
2662306a36Sopenharmony_ci	  defaults should be fine for most users, but these options may make
2762306a36Sopenharmony_ci	  it possible to better control the kernel configuration if you know
2862306a36Sopenharmony_ci	  what you are doing.
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_ci	  Note that the answer to this question won't directly affect the
3162306a36Sopenharmony_ci	  kernel: saying N will just cause the configurator to skip all
3262306a36Sopenharmony_ci	  the questions about these options.
3362306a36Sopenharmony_ci
3462306a36Sopenharmony_ci	  Most users should say N to this question.
3562306a36Sopenharmony_ci
3662306a36Sopenharmony_ciconfig PS3_HTAB_SIZE
3762306a36Sopenharmony_ci	depends on PPC_PS3
3862306a36Sopenharmony_ci	int "PS3 Platform pagetable size" if PS3_ADVANCED
3962306a36Sopenharmony_ci	range 18 20
4062306a36Sopenharmony_ci	default 20
4162306a36Sopenharmony_ci	help
4262306a36Sopenharmony_ci	  This option is only for experts who may have the desire to fine
4362306a36Sopenharmony_ci	  tune the pagetable size on their system.  The value here is
4462306a36Sopenharmony_ci	  expressed as the log2 of the page table size.  Valid values are
4562306a36Sopenharmony_ci	  18, 19, and 20, corresponding to 256KB, 512KB and 1MB respectively.
4662306a36Sopenharmony_ci
4762306a36Sopenharmony_ci	  If unsure, choose the default (20) with the confidence that your
4862306a36Sopenharmony_ci	  system will have optimal runtime performance.
4962306a36Sopenharmony_ci
5062306a36Sopenharmony_ciconfig PS3_DYNAMIC_DMA
5162306a36Sopenharmony_ci	depends on PPC_PS3
5262306a36Sopenharmony_ci	bool "PS3 Platform dynamic DMA page table management"
5362306a36Sopenharmony_ci	help
5462306a36Sopenharmony_ci	  This option will enable kernel support to take advantage of the
5562306a36Sopenharmony_ci	  per device dynamic DMA page table management provided by the Cell
5662306a36Sopenharmony_ci	  processor's IO Controller.  This support incurs some runtime
5762306a36Sopenharmony_ci	  overhead and also slightly increases kernel memory usage.  The
5862306a36Sopenharmony_ci	  current implementation should be considered experimental.
5962306a36Sopenharmony_ci
6062306a36Sopenharmony_ci	  This support is mainly for Linux kernel development.  If unsure,
6162306a36Sopenharmony_ci	  say N.
6262306a36Sopenharmony_ci
6362306a36Sopenharmony_ciconfig PS3_VUART
6462306a36Sopenharmony_ci	depends on PPC_PS3
6562306a36Sopenharmony_ci	tristate
6662306a36Sopenharmony_ci
6762306a36Sopenharmony_ciconfig PS3_PS3AV
6862306a36Sopenharmony_ci	depends on PPC_PS3
6962306a36Sopenharmony_ci	tristate "PS3 AV settings driver" if PS3_ADVANCED
7062306a36Sopenharmony_ci	select VIDEO
7162306a36Sopenharmony_ci	select PS3_VUART
7262306a36Sopenharmony_ci	default y
7362306a36Sopenharmony_ci	help
7462306a36Sopenharmony_ci	  Include support for the PS3 AV Settings driver.
7562306a36Sopenharmony_ci
7662306a36Sopenharmony_ci	  This support is required for PS3 graphics and sound. In
7762306a36Sopenharmony_ci	  general, all users will say Y or M.
7862306a36Sopenharmony_ci
7962306a36Sopenharmony_ciconfig PS3_SYS_MANAGER
8062306a36Sopenharmony_ci	depends on PPC_PS3
8162306a36Sopenharmony_ci	tristate "PS3 System Manager driver" if PS3_ADVANCED
8262306a36Sopenharmony_ci	select PS3_VUART
8362306a36Sopenharmony_ci	default y
8462306a36Sopenharmony_ci	help
8562306a36Sopenharmony_ci	  Include support for the PS3 System Manager.
8662306a36Sopenharmony_ci
8762306a36Sopenharmony_ci	  This support is required for PS3 system control.  In
8862306a36Sopenharmony_ci	  general, all users will say Y or M.
8962306a36Sopenharmony_ci
9062306a36Sopenharmony_ciconfig PS3_VERBOSE_RESULT
9162306a36Sopenharmony_ci	bool "PS3 Verbose LV1 hypercall results" if PS3_ADVANCED
9262306a36Sopenharmony_ci	depends on PPC_PS3
9362306a36Sopenharmony_ci	help
9462306a36Sopenharmony_ci	  Enables more verbose log messages for LV1 hypercall results.
9562306a36Sopenharmony_ci
9662306a36Sopenharmony_ci	  If in doubt, say N here and reduce the size of the kernel by a
9762306a36Sopenharmony_ci	  small amount.
9862306a36Sopenharmony_ci
9962306a36Sopenharmony_ciconfig PS3_REPOSITORY_WRITE
10062306a36Sopenharmony_ci	bool "PS3 Repository write support" if PS3_ADVANCED
10162306a36Sopenharmony_ci	depends on PPC_PS3
10262306a36Sopenharmony_ci	help
10362306a36Sopenharmony_ci	  Enables support for writing to the PS3 System Repository.
10462306a36Sopenharmony_ci
10562306a36Sopenharmony_ci	  This support is intended for bootloaders that need to store data
10662306a36Sopenharmony_ci	  in the repository for later boot stages.
10762306a36Sopenharmony_ci
10862306a36Sopenharmony_ci	  If in doubt, say N here and reduce the size of the kernel by a
10962306a36Sopenharmony_ci	  small amount.
11062306a36Sopenharmony_ci
11162306a36Sopenharmony_ciconfig PS3_STORAGE
11262306a36Sopenharmony_ci	depends on PPC_PS3
11362306a36Sopenharmony_ci	tristate
11462306a36Sopenharmony_ci
11562306a36Sopenharmony_ciconfig PS3_DISK
11662306a36Sopenharmony_ci	tristate "PS3 Disk Storage Driver"
11762306a36Sopenharmony_ci	depends on PPC_PS3 && BLOCK
11862306a36Sopenharmony_ci	select PS3_STORAGE
11962306a36Sopenharmony_ci	help
12062306a36Sopenharmony_ci	  Include support for the PS3 Disk Storage.
12162306a36Sopenharmony_ci
12262306a36Sopenharmony_ci	  This support is required to access the PS3 hard disk.
12362306a36Sopenharmony_ci	  In general, all users will say Y or M.
12462306a36Sopenharmony_ci
12562306a36Sopenharmony_ciconfig PS3_ROM
12662306a36Sopenharmony_ci	tristate "PS3 BD/DVD/CD-ROM Storage Driver"
12762306a36Sopenharmony_ci	depends on PPC_PS3 && SCSI
12862306a36Sopenharmony_ci	select PS3_STORAGE
12962306a36Sopenharmony_ci	help
13062306a36Sopenharmony_ci	  Include support for the PS3 ROM Storage.
13162306a36Sopenharmony_ci
13262306a36Sopenharmony_ci	  This support is required to access the PS3 BD/DVD/CD-ROM drive.
13362306a36Sopenharmony_ci	  In general, all users will say Y or M.
13462306a36Sopenharmony_ci	  Also make sure to say Y or M to "SCSI CDROM support" later.
13562306a36Sopenharmony_ci
13662306a36Sopenharmony_ciconfig PS3_FLASH
13762306a36Sopenharmony_ci	tristate "PS3 FLASH ROM Storage Driver"
13862306a36Sopenharmony_ci	depends on PPC_PS3
13962306a36Sopenharmony_ci	select PS3_STORAGE
14062306a36Sopenharmony_ci	help
14162306a36Sopenharmony_ci	  Include support for the PS3 FLASH ROM Storage.
14262306a36Sopenharmony_ci
14362306a36Sopenharmony_ci	  This support is required to access the PS3 FLASH ROM, which
14462306a36Sopenharmony_ci	  contains the boot loader and some boot options.
14562306a36Sopenharmony_ci	  In general, PS3 OtherOS users will say Y or M.
14662306a36Sopenharmony_ci
14762306a36Sopenharmony_ci	  As this driver needs a fixed buffer of 256 KiB of memory, it can
14862306a36Sopenharmony_ci	  be disabled on the kernel command line using "ps3flash=off", to
14962306a36Sopenharmony_ci	  not allocate this fixed buffer.
15062306a36Sopenharmony_ci
15162306a36Sopenharmony_ciconfig PS3_VRAM
15262306a36Sopenharmony_ci	tristate "PS3 Video RAM Storage Driver"
15362306a36Sopenharmony_ci	depends on FB_PS3=y && BLOCK && m
15462306a36Sopenharmony_ci	help
15562306a36Sopenharmony_ci	  This driver allows you to use excess PS3 video RAM as volatile
15662306a36Sopenharmony_ci	  storage or system swap.
15762306a36Sopenharmony_ci
15862306a36Sopenharmony_ciconfig PS3_LPM
15962306a36Sopenharmony_ci	tristate "PS3 Logical Performance Monitor support"
16062306a36Sopenharmony_ci	depends on PPC_PS3
16162306a36Sopenharmony_ci	help
16262306a36Sopenharmony_ci	  Include support for the PS3 Logical Performance Monitor.
16362306a36Sopenharmony_ci
16462306a36Sopenharmony_ci	  This support is required to use the logical performance monitor
16562306a36Sopenharmony_ci	  of the PS3's LV1 hypervisor.
16662306a36Sopenharmony_ci
16762306a36Sopenharmony_ci	  If you intend to use the advanced performance monitoring and
16862306a36Sopenharmony_ci	  profiling support of the Cell processor with programs like
16962306a36Sopenharmony_ci	  perfmon2, then say Y or M, otherwise say N.
17062306a36Sopenharmony_ci
17162306a36Sopenharmony_ciconfig PS3GELIC_UDBG
17262306a36Sopenharmony_ci	bool "PS3 udbg output via UDP broadcasts on Ethernet"
17362306a36Sopenharmony_ci	depends on PPC_PS3
17462306a36Sopenharmony_ci	help
17562306a36Sopenharmony_ci	  Enables udbg early debugging output by sending broadcast UDP
17662306a36Sopenharmony_ci	  via the Ethernet port (UDP port number 18194).
17762306a36Sopenharmony_ci
17862306a36Sopenharmony_ci	  This driver uses a trivial implementation and is independent
17962306a36Sopenharmony_ci	  from the main PS3 gelic network driver.
18062306a36Sopenharmony_ci
18162306a36Sopenharmony_ci	  If in doubt, say N here.
18262306a36Sopenharmony_ci
18362306a36Sopenharmony_ciendmenu
184