mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-21 13:18:46 +07:00
2aba2f2a70
In order to support device tree probing of IXP4xx NOR flash chips, a certain big-endian or mixed-endian memory access pattern need to be used. I have opted to use the pattern set by previous plug-ins to physmap for Gemini and Versatile, just override some functions and reuse most of the physmap core code as it is to minimize maintenance. Parts of drivers/mtd/ixp4xx.c are copied into this file. After we have IXP4xx converted fully to device tree, the drivers/mtd/ixp4xx.c file will be deleted and this will be the only access pattern to the IXP4xx flash. I did not keep the quirk in the flash write function after probe, where the old code for a while checks for access to odd addresses, fails and assigns a "faster" write function once it has convinced probe to only use 2-byte accesses. As we mandate that this device should be using bank-width = <2> this should not be a problem unless misconfigured. Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
416 lines
14 KiB
Plaintext
416 lines
14 KiB
Plaintext
# SPDX-License-Identifier: GPL-2.0-only
|
|
menu "Mapping drivers for chip access"
|
|
depends on MTD!=n
|
|
depends on HAS_IOMEM
|
|
|
|
config MTD_COMPLEX_MAPPINGS
|
|
bool "Support non-linear mappings of flash chips"
|
|
help
|
|
This causes the chip drivers to allow for complicated
|
|
paged mappings of flash chips.
|
|
|
|
config MTD_PHYSMAP
|
|
tristate "Flash device in physical memory map"
|
|
depends on MTD_CFI || MTD_JEDECPROBE || MTD_ROM || MTD_RAM || MTD_LPDDR
|
|
help
|
|
This provides a 'mapping' driver which allows the NOR Flash and
|
|
ROM driver code to communicate with chips which are mapped
|
|
physically into the CPU's memory. You will need to configure
|
|
the physical address and size of the flash chips on your
|
|
particular board as well as the bus width, either statically
|
|
with config options or at run-time.
|
|
|
|
To compile this driver as a module, choose M here: the
|
|
module will be called physmap.
|
|
|
|
config MTD_PHYSMAP_COMPAT
|
|
bool "Physmap compat support"
|
|
depends on MTD_PHYSMAP
|
|
default n
|
|
help
|
|
Setup a simple mapping via the Kconfig options. Normally the
|
|
physmap configuration options are done via your board's
|
|
resource file.
|
|
|
|
If unsure, say N here.
|
|
|
|
config MTD_PHYSMAP_START
|
|
hex "Physical start address of flash mapping"
|
|
depends on MTD_PHYSMAP_COMPAT
|
|
default "0x8000000"
|
|
help
|
|
This is the physical memory location at which the flash chips
|
|
are mapped on your particular target board. Refer to the
|
|
memory map which should hopefully be in the documentation for
|
|
your board.
|
|
|
|
config MTD_PHYSMAP_LEN
|
|
hex "Physical length of flash mapping"
|
|
depends on MTD_PHYSMAP_COMPAT
|
|
default "0"
|
|
help
|
|
This is the total length of the mapping of the flash chips on
|
|
your particular board. If there is space, or aliases, in the
|
|
physical memory map between the chips, this could be larger
|
|
than the total amount of flash present. Refer to the memory
|
|
map which should hopefully be in the documentation for your
|
|
board.
|
|
|
|
config MTD_PHYSMAP_BANKWIDTH
|
|
int "Bank width in octets"
|
|
depends on MTD_PHYSMAP_COMPAT
|
|
default "2"
|
|
help
|
|
This is the total width of the data bus of the flash devices
|
|
in octets. For example, if you have a data bus width of 32
|
|
bits, you would set the bus width octet value to 4. This is
|
|
used internally by the CFI drivers.
|
|
|
|
config MTD_PHYSMAP_OF
|
|
bool "Memory device in physical memory map based on OF description"
|
|
depends on OF && MTD_PHYSMAP
|
|
help
|
|
This provides a 'mapping' driver which allows the NOR Flash, ROM
|
|
and RAM driver code to communicate with chips which are mapped
|
|
physically into the CPU's memory. The mapping description here is
|
|
taken from OF device tree.
|
|
|
|
config MTD_PHYSMAP_VERSATILE
|
|
bool "ARM Versatile OF-based physical memory map handling"
|
|
depends on MTD_PHYSMAP_OF
|
|
depends on MFD_SYSCON
|
|
default y if (ARCH_INTEGRATOR || ARCH_VERSATILE || ARCH_REALVIEW)
|
|
help
|
|
This provides some extra DT physmap parsing for the ARM Versatile
|
|
platforms, basically to add a VPP (write protection) callback so
|
|
the flash can be taken out of write protection.
|
|
|
|
config MTD_PHYSMAP_GEMINI
|
|
bool "Cortina Gemini OF-based physical memory map handling"
|
|
depends on MTD_PHYSMAP_OF
|
|
depends on MFD_SYSCON
|
|
select MTD_COMPLEX_MAPPINGS
|
|
default ARCH_GEMINI
|
|
help
|
|
This provides some extra DT physmap parsing for the Gemini
|
|
platforms, some detection and setting up parallel mode on the
|
|
external interface.
|
|
|
|
config MTD_PHYSMAP_IXP4XX
|
|
bool "Intel IXP4xx OF-based physical memory map handling"
|
|
depends on MTD_PHYSMAP_OF
|
|
depends on ARM
|
|
select MTD_COMPLEX_MAPPINGS
|
|
select MTD_CFI_BE_BYTE_SWAP if CPU_BIG_ENDIAN
|
|
default ARCH_IXP4XX
|
|
help
|
|
This provides some extra DT physmap parsing for the Intel IXP4xx
|
|
platforms, some elaborate endianness handling in particular.
|
|
|
|
config MTD_PHYSMAP_GPIO_ADDR
|
|
bool "GPIO-assisted Flash Chip Support"
|
|
depends on MTD_PHYSMAP
|
|
depends on GPIOLIB || COMPILE_TEST
|
|
depends on MTD_COMPLEX_MAPPINGS
|
|
help
|
|
Extend the physmap driver to allow flashes to be partially
|
|
physically addressed and assisted by GPIOs.
|
|
|
|
config MTD_PMC_MSP_EVM
|
|
tristate "CFI Flash device mapped on PMC-Sierra MSP"
|
|
depends on PMC_MSP && MTD_CFI
|
|
help
|
|
This provides a 'mapping' driver which supports the way
|
|
in which user-programmable flash chips are connected on the
|
|
PMC-Sierra MSP eval/demo boards.
|
|
|
|
choice
|
|
prompt "Maximum mappable memory available for flash IO"
|
|
depends on MTD_PMC_MSP_EVM
|
|
default MSP_FLASH_MAP_LIMIT_32M
|
|
|
|
config MSP_FLASH_MAP_LIMIT_32M
|
|
bool "32M"
|
|
|
|
endchoice
|
|
|
|
config MSP_FLASH_MAP_LIMIT
|
|
hex
|
|
default "0x02000000"
|
|
depends on MSP_FLASH_MAP_LIMIT_32M
|
|
|
|
config MTD_SUN_UFLASH
|
|
tristate "Sun Microsystems userflash support"
|
|
depends on SPARC && MTD_CFI && PCI
|
|
help
|
|
This provides a 'mapping' driver which supports the way in
|
|
which user-programmable flash chips are connected on various
|
|
Sun Microsystems boardsets. This driver will require CFI support
|
|
in the kernel, so if you did not enable CFI previously, do that now.
|
|
|
|
config MTD_SC520CDP
|
|
tristate "CFI Flash device mapped on AMD SC520 CDP"
|
|
depends on (MELAN || COMPILE_TEST) && MTD_CFI
|
|
help
|
|
The SC520 CDP board has two banks of CFI-compliant chips and one
|
|
Dual-in-line JEDEC chip. This 'mapping' driver supports that
|
|
arrangement, implementing three MTD devices.
|
|
|
|
config MTD_NETSC520
|
|
tristate "CFI Flash device mapped on AMD NetSc520"
|
|
depends on (MELAN || COMPILE_TEST) && MTD_CFI
|
|
help
|
|
This enables access routines for the flash chips on the AMD NetSc520
|
|
demonstration board. If you have one of these boards and would like
|
|
to use the flash chips on it, say 'Y'.
|
|
|
|
config MTD_TS5500
|
|
tristate "JEDEC Flash device mapped on Technologic Systems TS-5500"
|
|
depends on TS5500 || COMPILE_TEST
|
|
select MTD_JEDECPROBE
|
|
select MTD_CFI_AMDSTD
|
|
help
|
|
This provides a driver for the on-board flash of the Technologic
|
|
System's TS-5500 board. The 2MB flash is split into 3 partitions
|
|
which are accessed as separate MTD devices.
|
|
|
|
mtd0 and mtd2 are the two BIOS drives, which use the resident
|
|
flash disk (RFD) flash translation layer.
|
|
|
|
mtd1 allows you to reprogram your BIOS. BE VERY CAREFUL.
|
|
|
|
Note that jumper 3 ("Write Enable Drive A") must be set
|
|
otherwise detection won't succeed.
|
|
|
|
config MTD_SBC_GXX
|
|
tristate "CFI Flash device mapped on Arcom SBC-GXx boards"
|
|
depends on X86 && MTD_CFI_INTELEXT && MTD_COMPLEX_MAPPINGS
|
|
help
|
|
This provides a driver for the on-board flash of Arcom Control
|
|
Systems' SBC-GXn family of boards, formerly known as SBC-MediaGX.
|
|
By default the flash is split into 3 partitions which are accessed
|
|
as separate MTD devices. This board utilizes Intel StrataFlash.
|
|
More info at
|
|
<http://www.arcomcontrols.com/products/icp/pc104/processors/SBC_GX1.htm>.
|
|
|
|
config MTD_PXA2XX
|
|
tristate "CFI Flash device mapped on Intel XScale PXA2xx based boards"
|
|
depends on (PXA25x || PXA27x) && MTD_CFI_INTELEXT
|
|
help
|
|
This provides a driver for the NOR flash attached to a PXA2xx chip.
|
|
|
|
config MTD_SCx200_DOCFLASH
|
|
tristate "Flash device mapped with DOCCS on NatSemi SCx200"
|
|
depends on SCx200 && MTD_CFI
|
|
help
|
|
Enable support for a flash chip mapped using the DOCCS signal on a
|
|
National Semiconductor SCx200 processor.
|
|
|
|
If you don't know what to do here, say N.
|
|
|
|
If compiled as a module, it will be called scx200_docflash.
|
|
|
|
config MTD_AMD76XROM
|
|
tristate "BIOS flash chip on AMD76x southbridge"
|
|
depends on X86 && MTD_JEDECPROBE
|
|
help
|
|
Support for treating the BIOS flash chip on AMD76x motherboards
|
|
as an MTD device - with this you can reprogram your BIOS.
|
|
|
|
BE VERY CAREFUL.
|
|
|
|
config MTD_ICHXROM
|
|
tristate "BIOS flash chip on Intel Controller Hub 2/3/4/5"
|
|
depends on X86 && MTD_JEDECPROBE
|
|
help
|
|
Support for treating the BIOS flash chip on ICHX motherboards
|
|
as an MTD device - with this you can reprogram your BIOS.
|
|
|
|
BE VERY CAREFUL.
|
|
|
|
config MTD_ESB2ROM
|
|
tristate "BIOS flash chip on Intel ESB Controller Hub 2"
|
|
depends on X86 && MTD_JEDECPROBE && PCI
|
|
help
|
|
Support for treating the BIOS flash chip on ESB2 motherboards
|
|
as an MTD device - with this you can reprogram your BIOS.
|
|
|
|
BE VERY CAREFUL.
|
|
|
|
config MTD_CK804XROM
|
|
tristate "BIOS flash chip on Nvidia CK804"
|
|
depends on X86 && MTD_JEDECPROBE && PCI
|
|
help
|
|
Support for treating the BIOS flash chip on nvidia motherboards
|
|
as an MTD device - with this you can reprogram your BIOS.
|
|
|
|
BE VERY CAREFUL.
|
|
|
|
config MTD_SCB2_FLASH
|
|
tristate "BIOS flash chip on Intel SCB2 boards"
|
|
depends on X86 && MTD_JEDECPROBE && PCI
|
|
help
|
|
Support for treating the BIOS flash chip on Intel SCB2 boards
|
|
as an MTD device - with this you can reprogram your BIOS.
|
|
|
|
BE VERY CAREFUL.
|
|
|
|
config MTD_TSUNAMI
|
|
tristate "Flash chips on Tsunami TIG bus"
|
|
depends on ALPHA_TSUNAMI && MTD_COMPLEX_MAPPINGS
|
|
help
|
|
Support for the flash chip on Tsunami TIG bus.
|
|
|
|
config MTD_NETtel
|
|
tristate "CFI flash device on SnapGear/SecureEdge"
|
|
depends on X86 && MTD_JEDECPROBE
|
|
help
|
|
Support for flash chips on NETtel/SecureEdge/SnapGear boards.
|
|
|
|
config MTD_LANTIQ
|
|
tristate "Lantiq SoC NOR support"
|
|
depends on LANTIQ
|
|
help
|
|
Support for NOR flash attached to the Lantiq SoC's External Bus Unit.
|
|
|
|
config MTD_L440GX
|
|
tristate "BIOS flash chip on Intel L440GX boards"
|
|
depends on X86 && MTD_JEDECPROBE
|
|
help
|
|
Support for treating the BIOS flash chip on Intel L440GX motherboards
|
|
as an MTD device - with this you can reprogram your BIOS.
|
|
|
|
BE VERY CAREFUL.
|
|
|
|
config MTD_CFI_FLAGADM
|
|
tristate "CFI Flash device mapping on FlagaDM"
|
|
depends on PPC_8xx && MTD_CFI
|
|
help
|
|
Mapping for the Flaga digital module. If you don't have one, ignore
|
|
this setting.
|
|
|
|
config MTD_SOLUTIONENGINE
|
|
tristate "CFI Flash device mapped on Hitachi SolutionEngine"
|
|
depends on SOLUTION_ENGINE && MTD_CFI && MTD_REDBOOT_PARTS
|
|
help
|
|
This enables access to the flash chips on the Hitachi SolutionEngine and
|
|
similar boards. Say 'Y' if you are building a kernel for such a board.
|
|
|
|
config MTD_SA1100
|
|
tristate "CFI Flash device mapped on StrongARM SA11x0"
|
|
depends on MTD_CFI && ARCH_SA1100
|
|
help
|
|
This enables access to the flash chips on most platforms based on
|
|
the SA1100 and SA1110, including the Assabet and the Compaq iPAQ.
|
|
If you have such a board, say 'Y'.
|
|
|
|
config MTD_DC21285
|
|
tristate "CFI Flash device mapped on DC21285 Footbridge"
|
|
depends on MTD_CFI && ARCH_FOOTBRIDGE && MTD_COMPLEX_MAPPINGS
|
|
help
|
|
This provides a driver for the flash accessed using Intel's
|
|
21285 bridge used with Intel's StrongARM processors. More info at
|
|
<http://www.intel.com/design/bridge/docs/21285_documentation.htm>.
|
|
|
|
config MTD_IXP4XX
|
|
tristate "CFI Flash device mapped on Intel IXP4xx based systems"
|
|
depends on MTD_CFI && MTD_COMPLEX_MAPPINGS && ARCH_IXP4XX
|
|
help
|
|
This enables MTD access to flash devices on platforms based
|
|
on Intel's IXP4xx family of network processors such as the
|
|
IXDP425 and Coyote. If you have an IXP4xx based board and
|
|
would like to use the flash chips on it, say 'Y'.
|
|
|
|
config MTD_IMPA7
|
|
tristate "JEDEC Flash device mapped on impA7"
|
|
depends on ARM && MTD_JEDECPROBE
|
|
help
|
|
This enables access to the NOR Flash on the impA7 board of
|
|
implementa GmbH. If you have such a board, say 'Y' here.
|
|
|
|
# This needs CFI or JEDEC, depending on the cards found.
|
|
config MTD_PCI
|
|
tristate "PCI MTD driver"
|
|
depends on PCI && MTD_COMPLEX_MAPPINGS
|
|
help
|
|
Mapping for accessing flash devices on add-in cards like the Intel XScale
|
|
IQ80310 card, and the Intel EBSA285 card in blank ROM programming mode
|
|
(please see the manual for the link settings).
|
|
|
|
If you are not sure, say N.
|
|
|
|
config MTD_PCMCIA
|
|
tristate "PCMCIA MTD driver"
|
|
depends on PCMCIA && MTD_COMPLEX_MAPPINGS
|
|
help
|
|
Map driver for accessing PCMCIA linear flash memory cards. These
|
|
cards are usually around 4-16MiB in size. This does not include
|
|
Compact Flash cards which are treated as IDE devices.
|
|
|
|
config MTD_PCMCIA_ANONYMOUS
|
|
bool "Use PCMCIA MTD drivers for anonymous PCMCIA cards"
|
|
depends on MTD_PCMCIA
|
|
help
|
|
If this option is enabled, PCMCIA cards which do not report
|
|
anything about themselves are assumed to be MTD cards.
|
|
|
|
If unsure, say N.
|
|
|
|
config MTD_UCLINUX
|
|
bool "Generic uClinux RAM/ROM filesystem support"
|
|
depends on (MTD_RAM=y || MTD_ROM=y) && (!MMU || COLDFIRE)
|
|
help
|
|
Map driver to support image based filesystems for uClinux.
|
|
|
|
config MTD_INTEL_VR_NOR
|
|
tristate "NOR flash on Intel Vermilion Range Expansion Bus CS0"
|
|
depends on PCI
|
|
help
|
|
Map driver for a NOR flash bank located on the Expansion Bus of the
|
|
Intel Vermilion Range chipset.
|
|
|
|
config MTD_RBTX4939
|
|
tristate "Map driver for RBTX4939 board"
|
|
depends on TOSHIBA_RBTX4939 && MTD_CFI && MTD_COMPLEX_MAPPINGS
|
|
help
|
|
Map driver for NOR flash chips on RBTX4939 board.
|
|
|
|
config MTD_PLATRAM
|
|
tristate "Map driver for platform device RAM (mtd-ram)"
|
|
select MTD_RAM
|
|
help
|
|
Map driver for RAM areas described via the platform device
|
|
system.
|
|
|
|
This selection automatically selects the map_ram driver.
|
|
|
|
config MTD_VMU
|
|
tristate "Map driver for Dreamcast VMU"
|
|
depends on MAPLE
|
|
help
|
|
This driver enables access to the Dreamcast Visual Memory Unit (VMU).
|
|
|
|
Most Dreamcast users will want to say Y here.
|
|
|
|
To build this as a module select M here, the module will be called
|
|
vmu-flash.
|
|
|
|
config MTD_PISMO
|
|
tristate "MTD discovery driver for PISMO modules"
|
|
depends on I2C
|
|
depends on ARCH_VERSATILE
|
|
help
|
|
This driver allows for discovery of PISMO modules - see
|
|
<http://www.pismoworld.org/>. These are small modules containing
|
|
up to five memory devices (eg, SRAM, flash, DOC) described by an
|
|
I2C EEPROM.
|
|
|
|
This driver does not create any MTD maps itself; instead it
|
|
creates MTD physmap and MTD SRAM platform devices. If you
|
|
enable this option, you should consider enabling MTD_PHYSMAP
|
|
and/or MTD_PLATRAM according to the devices on your module.
|
|
|
|
When built as a module, it will be called pismo.ko
|
|
|
|
endmenu
|