162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0
262306a36Sopenharmony_ciconfig CPM1
362306a36Sopenharmony_ci	bool
462306a36Sopenharmony_ci	select CPM
562306a36Sopenharmony_ci
662306a36Sopenharmony_cichoice
762306a36Sopenharmony_ci	prompt "8xx Machine Type"
862306a36Sopenharmony_ci	depends on PPC_8xx
962306a36Sopenharmony_ci	default MPC885ADS
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_ciconfig MPC8XXFADS
1262306a36Sopenharmony_ci	bool "FADS"
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_ciconfig MPC86XADS
1562306a36Sopenharmony_ci	bool "MPC86XADS"
1662306a36Sopenharmony_ci	select CPM1
1762306a36Sopenharmony_ci	help
1862306a36Sopenharmony_ci	  MPC86x Application Development System by Freescale Semiconductor.
1962306a36Sopenharmony_ci	  The MPC86xADS is meant to serve as a platform for s/w and h/w
2062306a36Sopenharmony_ci	  development around the MPC86X processor families.
2162306a36Sopenharmony_ci
2262306a36Sopenharmony_ciconfig MPC885ADS
2362306a36Sopenharmony_ci	bool "MPC885ADS"
2462306a36Sopenharmony_ci	select CPM1
2562306a36Sopenharmony_ci	select OF_DYNAMIC
2662306a36Sopenharmony_ci	help
2762306a36Sopenharmony_ci	  Freescale Semiconductor MPC885 Application Development System (ADS).
2862306a36Sopenharmony_ci	  Also known as DUET.
2962306a36Sopenharmony_ci	  The MPC885ADS is meant to serve as a platform for s/w and h/w
3062306a36Sopenharmony_ci	  development around the MPC885 processor family.
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_ciconfig PPC_EP88XC
3362306a36Sopenharmony_ci	bool "Embedded Planet EP88xC (a.k.a. CWH-PPC-885XN-VE)"
3462306a36Sopenharmony_ci	select CPM1
3562306a36Sopenharmony_ci	help
3662306a36Sopenharmony_ci	  This enables support for the Embedded Planet EP88xC board.
3762306a36Sopenharmony_ci
3862306a36Sopenharmony_ci	  This board is also resold by Freescale as the QUICCStart
3962306a36Sopenharmony_ci	  MPC885 Evaluation System and/or the CWH-PPC-885XN-VE.
4062306a36Sopenharmony_ci
4162306a36Sopenharmony_ciconfig PPC_ADDER875
4262306a36Sopenharmony_ci	bool "Analogue & Micro Adder 875"
4362306a36Sopenharmony_ci	select CPM1
4462306a36Sopenharmony_ci	help
4562306a36Sopenharmony_ci	  This enables support for the Analogue & Micro Adder 875
4662306a36Sopenharmony_ci	  board.
4762306a36Sopenharmony_ci
4862306a36Sopenharmony_ciconfig TQM8XX
4962306a36Sopenharmony_ci	bool "TQM8XX"
5062306a36Sopenharmony_ci	select CPM1
5162306a36Sopenharmony_ci	help
5262306a36Sopenharmony_ci	  support for the mpc8xx based boards from TQM.
5362306a36Sopenharmony_ci
5462306a36Sopenharmony_ciendchoice
5562306a36Sopenharmony_ci
5662306a36Sopenharmony_cimenu "Freescale Ethernet driver platform-specific options"
5762306a36Sopenharmony_ci	depends on (FS_ENET && MPC885ADS)
5862306a36Sopenharmony_ci
5962306a36Sopenharmony_ci	config MPC8xx_SECOND_ETH
6062306a36Sopenharmony_ci	bool "Second Ethernet channel"
6162306a36Sopenharmony_ci	depends on MPC885ADS
6262306a36Sopenharmony_ci	default y
6362306a36Sopenharmony_ci	help
6462306a36Sopenharmony_ci	  This enables support for second Ethernet on MPC885ADS and MPC86xADS boards.
6562306a36Sopenharmony_ci	  The latter will use SCC1, for 885ADS you can select it below.
6662306a36Sopenharmony_ci
6762306a36Sopenharmony_ci	choice
6862306a36Sopenharmony_ci		prompt "Second Ethernet channel"
6962306a36Sopenharmony_ci		depends on MPC8xx_SECOND_ETH
7062306a36Sopenharmony_ci		default MPC8xx_SECOND_ETH_FEC2
7162306a36Sopenharmony_ci
7262306a36Sopenharmony_ci		config MPC8xx_SECOND_ETH_FEC2
7362306a36Sopenharmony_ci		bool "FEC2"
7462306a36Sopenharmony_ci		depends on MPC885ADS
7562306a36Sopenharmony_ci		help
7662306a36Sopenharmony_ci		  Enable FEC2 to serve as 2-nd Ethernet channel. Note that SMC2
7762306a36Sopenharmony_ci		  (often 2-nd UART) will not work if this is enabled.
7862306a36Sopenharmony_ci
7962306a36Sopenharmony_ci		config MPC8xx_SECOND_ETH_SCC3
8062306a36Sopenharmony_ci		bool "SCC3"
8162306a36Sopenharmony_ci		depends on MPC885ADS
8262306a36Sopenharmony_ci		help
8362306a36Sopenharmony_ci		  Enable SCC3 to serve as 2-nd Ethernet channel. Note that SMC1
8462306a36Sopenharmony_ci		  (often 1-nd UART) will not work if this is enabled.
8562306a36Sopenharmony_ci
8662306a36Sopenharmony_ci	endchoice
8762306a36Sopenharmony_ci
8862306a36Sopenharmony_ciendmenu
8962306a36Sopenharmony_ci
9062306a36Sopenharmony_ci#
9162306a36Sopenharmony_ci# MPC8xx Communication options
9262306a36Sopenharmony_ci#
9362306a36Sopenharmony_ci
9462306a36Sopenharmony_cimenu "MPC8xx CPM Options"
9562306a36Sopenharmony_ci	depends on PPC_8xx
9662306a36Sopenharmony_ci
9762306a36Sopenharmony_ci# This doesn't really belong here, but it is convenient to ask
9862306a36Sopenharmony_ci# 8xx specific questions.
9962306a36Sopenharmony_cicomment "Generic MPC8xx Options"
10062306a36Sopenharmony_ci
10162306a36Sopenharmony_ciconfig 8xx_GPIO
10262306a36Sopenharmony_ci	bool "GPIO API Support"
10362306a36Sopenharmony_ci	select GPIOLIB
10462306a36Sopenharmony_ci	select OF_GPIO_MM_GPIOCHIP
10562306a36Sopenharmony_ci	help
10662306a36Sopenharmony_ci	  Saying Y here will cause the ports on an MPC8xx processor to be used
10762306a36Sopenharmony_ci	  with the GPIO API.  If you say N here, the kernel needs less memory.
10862306a36Sopenharmony_ci
10962306a36Sopenharmony_ci	  If in doubt, say Y here.
11062306a36Sopenharmony_ci
11162306a36Sopenharmony_ciconfig 8xx_CPU15
11262306a36Sopenharmony_ci	bool "CPU15 Silicon Errata"
11362306a36Sopenharmony_ci	depends on !HUGETLB_PAGE
11462306a36Sopenharmony_ci	default y
11562306a36Sopenharmony_ci	help
11662306a36Sopenharmony_ci	  This enables a workaround for erratum CPU15 on MPC8xx chips.
11762306a36Sopenharmony_ci	  This bug can cause incorrect code execution under certain
11862306a36Sopenharmony_ci	  circumstances.  This workaround adds some overhead (a TLB miss
11962306a36Sopenharmony_ci	  every time execution crosses a page boundary), and you may wish
12062306a36Sopenharmony_ci	  to disable it if you have worked around the bug in the compiler
12162306a36Sopenharmony_ci	  (by not placing conditional branches or branches to LR or CTR
12262306a36Sopenharmony_ci	  in the last word of a page, with a target of the last cache
12362306a36Sopenharmony_ci	  line in the next page), or if you have used some other
12462306a36Sopenharmony_ci	  workaround.
12562306a36Sopenharmony_ci
12662306a36Sopenharmony_ci	  If in doubt, say Y here.
12762306a36Sopenharmony_ci
12862306a36Sopenharmony_cichoice
12962306a36Sopenharmony_ci	prompt "Microcode patch selection"
13062306a36Sopenharmony_ci	default NO_UCODE_PATCH
13162306a36Sopenharmony_ci	help
13262306a36Sopenharmony_ci	  Help not implemented yet, coming soon.
13362306a36Sopenharmony_ci
13462306a36Sopenharmony_ciconfig NO_UCODE_PATCH
13562306a36Sopenharmony_ci	bool "None"
13662306a36Sopenharmony_ci
13762306a36Sopenharmony_ciconfig USB_SOF_UCODE_PATCH
13862306a36Sopenharmony_ci	bool "USB SOF patch"
13962306a36Sopenharmony_ci	help
14062306a36Sopenharmony_ci	  Help not implemented yet, coming soon.
14162306a36Sopenharmony_ci
14262306a36Sopenharmony_ciconfig I2C_SPI_UCODE_PATCH
14362306a36Sopenharmony_ci	bool "I2C/SPI relocation patch"
14462306a36Sopenharmony_ci	help
14562306a36Sopenharmony_ci	  Help not implemented yet, coming soon.
14662306a36Sopenharmony_ci
14762306a36Sopenharmony_ciconfig I2C_SPI_SMC1_UCODE_PATCH
14862306a36Sopenharmony_ci	bool "I2C/SPI/SMC1 relocation patch"
14962306a36Sopenharmony_ci	help
15062306a36Sopenharmony_ci	  Help not implemented yet, coming soon.
15162306a36Sopenharmony_ci
15262306a36Sopenharmony_ciconfig SMC_UCODE_PATCH
15362306a36Sopenharmony_ci	bool "SMC relocation patch"
15462306a36Sopenharmony_ci	help
15562306a36Sopenharmony_ci	  This microcode relocates SMC1 and SMC2 parameter RAMs at
15662306a36Sopenharmony_ci	  offset 0x1ec0 and 0x1fc0 to allow extended parameter RAM
15762306a36Sopenharmony_ci	  for SCC3 and SCC4.
15862306a36Sopenharmony_ci
15962306a36Sopenharmony_ciendchoice
16062306a36Sopenharmony_ci
16162306a36Sopenharmony_ciconfig UCODE_PATCH
16262306a36Sopenharmony_ci	bool
16362306a36Sopenharmony_ci	default y
16462306a36Sopenharmony_ci	depends on !NO_UCODE_PATCH
16562306a36Sopenharmony_ci
16662306a36Sopenharmony_cimenu "8xx advanced setup"
16762306a36Sopenharmony_ci	depends on PPC_8xx
16862306a36Sopenharmony_ci
16962306a36Sopenharmony_ciconfig PIN_TLB
17062306a36Sopenharmony_ci	bool "Pinned Kernel TLBs"
17162306a36Sopenharmony_ci	depends on ADVANCED_OPTIONS
17262306a36Sopenharmony_ci	help
17362306a36Sopenharmony_ci	  On the 8xx, we have 32 instruction TLBs and 32 data TLBs. In each
17462306a36Sopenharmony_ci	  table 4 TLBs can be pinned.
17562306a36Sopenharmony_ci
17662306a36Sopenharmony_ci	  It reduces the amount of usable TLBs to 28 (ie by 12%). That's the
17762306a36Sopenharmony_ci	  reason why we make it selectable.
17862306a36Sopenharmony_ci
17962306a36Sopenharmony_ci	  This option does nothing, it just activate the selection of what
18062306a36Sopenharmony_ci	  to pin.
18162306a36Sopenharmony_ci
18262306a36Sopenharmony_ciconfig PIN_TLB_DATA
18362306a36Sopenharmony_ci	bool "Pinned TLB for DATA"
18462306a36Sopenharmony_ci	depends on PIN_TLB
18562306a36Sopenharmony_ci	default y
18662306a36Sopenharmony_ci	help
18762306a36Sopenharmony_ci	  This pins the first 32 Mbytes of memory with 8M pages.
18862306a36Sopenharmony_ci
18962306a36Sopenharmony_ciconfig PIN_TLB_IMMR
19062306a36Sopenharmony_ci	bool "Pinned TLB for IMMR"
19162306a36Sopenharmony_ci	depends on PIN_TLB
19262306a36Sopenharmony_ci	default y
19362306a36Sopenharmony_ci	help
19462306a36Sopenharmony_ci	  This pins the IMMR area with a 512kbytes page. In case
19562306a36Sopenharmony_ci	  CONFIG_PIN_TLB_DATA is also selected, it will reduce
19662306a36Sopenharmony_ci	  CONFIG_PIN_TLB_DATA to 24 Mbytes.
19762306a36Sopenharmony_ci
19862306a36Sopenharmony_ciendmenu
19962306a36Sopenharmony_ci
20062306a36Sopenharmony_ciendmenu
201