mirror of
https://github.com/torvalds/linux.git
synced 2024-11-22 04:38:03 +00:00
1a736d98c8
This reverts commitbccc58986a
. When STRICT_KERNEL_RWX is selected, EXEC memory must stop where RW memory start. When pinning iTLBs it means an 8M alignment for RW data start. That may be acceptable on boards with a lot of memory but one of my supported boards only has 32 Mbytes and this forced alignment leads to a waste of almost 4 Mbytes with is more than 10% of the total memory. So revert commitbccc58986a
("powerpc/8xx: Always pin kernel text TLB") but don't restore previous behaviour in ITLB miss handler as now kernel PGD entries are copied into each process PGDIR. Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Link: https://msgid.link/01b6780b860c8043b51a1ba9d83acfc6f2dde910.1724173828.git.christophe.leroy@csgroup.eu
208 lines
4.8 KiB
Plaintext
208 lines
4.8 KiB
Plaintext
# SPDX-License-Identifier: GPL-2.0
|
|
config CPM1
|
|
bool
|
|
select CPM
|
|
|
|
choice
|
|
prompt "8xx Machine Type"
|
|
depends on PPC_8xx
|
|
default MPC885ADS
|
|
|
|
config MPC8XXFADS
|
|
bool "FADS"
|
|
|
|
config MPC86XADS
|
|
bool "MPC86XADS"
|
|
select CPM1
|
|
help
|
|
MPC86x Application Development System by Freescale Semiconductor.
|
|
The MPC86xADS is meant to serve as a platform for s/w and h/w
|
|
development around the MPC86X processor families.
|
|
|
|
config MPC885ADS
|
|
bool "MPC885ADS"
|
|
select CPM1
|
|
select OF_DYNAMIC
|
|
help
|
|
Freescale Semiconductor MPC885 Application Development System (ADS).
|
|
Also known as DUET.
|
|
The MPC885ADS is meant to serve as a platform for s/w and h/w
|
|
development around the MPC885 processor family.
|
|
|
|
config PPC_EP88XC
|
|
bool "Embedded Planet EP88xC (a.k.a. CWH-PPC-885XN-VE)"
|
|
select CPM1
|
|
help
|
|
This enables support for the Embedded Planet EP88xC board.
|
|
|
|
This board is also resold by Freescale as the QUICCStart
|
|
MPC885 Evaluation System and/or the CWH-PPC-885XN-VE.
|
|
|
|
config PPC_ADDER875
|
|
bool "Analogue & Micro Adder 875"
|
|
select CPM1
|
|
help
|
|
This enables support for the Analogue & Micro Adder 875
|
|
board.
|
|
|
|
config TQM8XX
|
|
bool "TQM8XX"
|
|
select CPM1
|
|
help
|
|
support for the mpc8xx based boards from TQM.
|
|
|
|
endchoice
|
|
|
|
menu "Freescale Ethernet driver platform-specific options"
|
|
depends on (FS_ENET && MPC885ADS)
|
|
|
|
config MPC8xx_SECOND_ETH
|
|
bool "Second Ethernet channel"
|
|
depends on MPC885ADS
|
|
default y
|
|
help
|
|
This enables support for second Ethernet on MPC885ADS and MPC86xADS boards.
|
|
The latter will use SCC1, for 885ADS you can select it below.
|
|
|
|
choice
|
|
prompt "Second Ethernet channel"
|
|
depends on MPC8xx_SECOND_ETH
|
|
default MPC8xx_SECOND_ETH_FEC2
|
|
|
|
config MPC8xx_SECOND_ETH_FEC2
|
|
bool "FEC2"
|
|
depends on MPC885ADS
|
|
help
|
|
Enable FEC2 to serve as 2-nd Ethernet channel. Note that SMC2
|
|
(often 2-nd UART) will not work if this is enabled.
|
|
|
|
config MPC8xx_SECOND_ETH_SCC3
|
|
bool "SCC3"
|
|
depends on MPC885ADS
|
|
help
|
|
Enable SCC3 to serve as 2-nd Ethernet channel. Note that SMC1
|
|
(often 1-nd UART) will not work if this is enabled.
|
|
|
|
endchoice
|
|
|
|
endmenu
|
|
|
|
#
|
|
# MPC8xx Communication options
|
|
#
|
|
|
|
menu "MPC8xx CPM Options"
|
|
depends on PPC_8xx
|
|
|
|
# This doesn't really belong here, but it is convenient to ask
|
|
# 8xx specific questions.
|
|
comment "Generic MPC8xx Options"
|
|
|
|
config 8xx_GPIO
|
|
bool "GPIO API Support"
|
|
select GPIOLIB
|
|
select OF_GPIO_MM_GPIOCHIP
|
|
help
|
|
Saying Y here will cause the ports on an MPC8xx processor to be used
|
|
with the GPIO API. If you say N here, the kernel needs less memory.
|
|
|
|
If in doubt, say Y here.
|
|
|
|
config 8xx_CPU15
|
|
bool "CPU15 Silicon Errata"
|
|
depends on !HUGETLB_PAGE
|
|
default y
|
|
help
|
|
This enables a workaround for erratum CPU15 on MPC8xx chips.
|
|
This bug can cause incorrect code execution under certain
|
|
circumstances. This workaround adds some overhead (a TLB miss
|
|
every time execution crosses a page boundary), and you may wish
|
|
to disable it if you have worked around the bug in the compiler
|
|
(by not placing conditional branches or branches to LR or CTR
|
|
in the last word of a page, with a target of the last cache
|
|
line in the next page), or if you have used some other
|
|
workaround.
|
|
|
|
If in doubt, say Y here.
|
|
|
|
choice
|
|
prompt "Microcode patch selection"
|
|
default NO_UCODE_PATCH
|
|
help
|
|
Help not implemented yet, coming soon.
|
|
|
|
config NO_UCODE_PATCH
|
|
bool "None"
|
|
|
|
config USB_SOF_UCODE_PATCH
|
|
bool "USB SOF patch"
|
|
help
|
|
Help not implemented yet, coming soon.
|
|
|
|
config I2C_SPI_UCODE_PATCH
|
|
bool "I2C/SPI relocation patch"
|
|
help
|
|
Help not implemented yet, coming soon.
|
|
|
|
config I2C_SPI_SMC1_UCODE_PATCH
|
|
bool "I2C/SPI/SMC1 relocation patch"
|
|
help
|
|
Help not implemented yet, coming soon.
|
|
|
|
config SMC_UCODE_PATCH
|
|
bool "SMC relocation patch"
|
|
help
|
|
This microcode relocates SMC1 and SMC2 parameter RAMs at
|
|
offset 0x1ec0 and 0x1fc0 to allow extended parameter RAM
|
|
for SCC3 and SCC4.
|
|
|
|
endchoice
|
|
|
|
config UCODE_PATCH
|
|
bool
|
|
default y
|
|
depends on !NO_UCODE_PATCH
|
|
|
|
menu "8xx advanced setup"
|
|
depends on PPC_8xx
|
|
|
|
config PIN_TLB
|
|
bool "Pinned Kernel TLBs"
|
|
depends on ADVANCED_OPTIONS
|
|
help
|
|
On the 8xx, we have 32 instruction TLBs and 32 data TLBs. In each
|
|
table 4 TLBs can be pinned.
|
|
|
|
It reduces the amount of usable TLBs to 28 (ie by 12%). That's the
|
|
reason why we make it selectable.
|
|
|
|
This option does nothing, it just activate the selection of what
|
|
to pin.
|
|
|
|
config PIN_TLB_DATA
|
|
bool "Pinned TLB for DATA"
|
|
depends on PIN_TLB
|
|
default y
|
|
help
|
|
This pins the first 32 Mbytes of memory with 8M pages.
|
|
|
|
config PIN_TLB_IMMR
|
|
bool "Pinned TLB for IMMR"
|
|
depends on PIN_TLB
|
|
default y
|
|
help
|
|
This pins the IMMR area with a 512kbytes page. In case
|
|
CONFIG_PIN_TLB_DATA is also selected, it will reduce
|
|
CONFIG_PIN_TLB_DATA to 24 Mbytes.
|
|
|
|
config PIN_TLB_TEXT
|
|
bool "Pinned TLB for TEXT"
|
|
depends on PIN_TLB
|
|
default y
|
|
help
|
|
This pins kernel text with 8M pages.
|
|
|
|
endmenu
|
|
|
|
endmenu
|