Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ceb720c7 authored by Cédric Le Goater's avatar Cédric Le Goater Committed by Cyrille Pitchen
Browse files

mtd: spi-nor: add memory controllers for the Aspeed AST2500 SoC



This driver adds mtd support for the Aspeed AST2500 SoC static memory
controllers :

 * Firmware SPI Memory Controller (FMC)
   . BMC firmware
   . 3 chip select pins (CE0 ~ CE2)
   . supports SPI type flash memory (CE0-CE1)
   . CE2 can be of NOR type flash but this is not supported by the
     driver

 * SPI Flash Controller (SPI1 and SPI2)
   . host firmware
   . 2 chip select pins (CE0 ~ CE1)
   . supports SPI type flash memory

Each controller has a memory range on which it maps its flash module
slaves. Each slave is assigned a memory window for its mapping that
can be changed at bootime with the Segment Address Register.

Each SPI flash slave can then be accessed in two modes: Command and
User. When in User mode, accesses to the memory segment of the slaves
are translated in SPI transfers. When in Command mode, the HW
generates the SPI commands automatically and the memory segment is
accessed as if doing a MMIO.

Currently, only the User mode is supported. Command mode needs a
little more work to check that the memory window on the AHB bus fits
the module size.

Based on previous work from Milton D. Miller II <miltonm@us.ibm.com>

Signed-off-by: default avatarCédric Le Goater <clg@kaod.org>
Reviewed-by: default avatarJoel Stanley <joel@jms.id.au>
Reviewed-by: default avatarMarek Vasut <marek.vasut@gmail.com>
Signed-off-by: default avatarCyrille Pitchen <cyrille.pitchen@atmel.com>
parent bc0e1515
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -29,6 +29,16 @@ config MTD_SPI_NOR_USE_4K_SECTORS
	  Please note that some tools/drivers/filesystems may not work with
	  4096 B erase size (e.g. UBIFS requires 15 KiB as a minimum).

config SPI_ASPEED_SMC
	tristate "Aspeed flash controllers in SPI mode"
	depends on ARCH_ASPEED || COMPILE_TEST
	depends on HAS_IOMEM && OF
	help
	  This enables support for the Firmware Memory controller (FMC)
	  in the Aspeed AST2500 SoC when attached to SPI NOR chips,
	  and support for the SPI flash memory controller (SPI) for
	  the host firmware. The implementation only supports SPI NOR.

config SPI_ATMEL_QUADSPI
	tristate "Atmel Quad SPI Controller"
	depends on ARCH_AT91 || (ARM && COMPILE_TEST)
+1 −0
Original line number Diff line number Diff line
obj-$(CONFIG_MTD_SPI_NOR)	+= spi-nor.o
obj-$(CONFIG_SPI_ASPEED_SMC)	+= aspeed-smc.o
obj-$(CONFIG_SPI_ATMEL_QUADSPI)	+= atmel-quadspi.o
obj-$(CONFIG_SPI_CADENCE_QUADSPI)	+= cadence-quadspi.o
obj-$(CONFIG_SPI_FSL_QUADSPI)	+= fsl-quadspi.o
+726 −0

File added.

Preview size limit exceeded, changes collapsed.