mtd: physmap: Add Baikal-T1 physically mapped ROM support
authorSerge Semin <Sergey.Semin@baikalelectronics.ru>
Sun, 20 Sep 2020 11:14:44 +0000 (14:14 +0300)
committerMiquel Raynal <miquel.raynal@bootlin.com>
Fri, 2 Oct 2020 07:08:22 +0000 (09:08 +0200)
commitb3e79e7682e075326df8041b826b03453acacd0a
tree8d5d0d2dc9f12adac6c8b02cdf9f9cbecefe4f56
parent6aec345ed83a834ea796220741e5d8ca94299d6e
mtd: physmap: Add Baikal-T1 physically mapped ROM support

Baikal-T1 Boot Controller provides an access to a RO storages, which are
physically mapped into the SoC MMIO space. In particularly there are
Internal ROM embedded into the SoC with a pre-installed firmware,
externally attached SPI flash (also accessed in the read-only mode) and a
memory region, which mirrors one of them in accordance with the currently
enabled system boot mode (also called Boot ROM).

This commit adds the Internal ROM support to the physmap driver of the MTD
kernel subsystem. The driver will create the Internal ROM MTD as long as
it is defined in the system dts file. The physically mapped SPI flash
region will be used to implement the SPI-mem interface. The mirroring
memory region won't be accessible directly since it's redundant due to
both bootable regions being exposed anyway.

Note we had to create a dedicated code for the ROMs since read from the
corresponding memory regions must be done via the dword-aligned addresses.

Signed-off-by: Serge Semin <Sergey.Semin@baikalelectronics.ru>
Cc: Alexey Malahov <Alexey.Malahov@baikalelectronics.ru>
Cc: Pavel Parkhomenko <Pavel.Parkhomenko@baikalelectronics.ru>
Cc: Lee Jones <lee.jones@linaro.org>
Cc: linux-mips@vger.kernel.org
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Link: https://lore.kernel.org/linux-mtd/20200920111445.21816-1-Sergey.Semin@baikalelectronics.ru
drivers/mtd/maps/Kconfig
drivers/mtd/maps/Makefile
drivers/mtd/maps/physmap-bt1-rom.c [new file with mode: 0644]
drivers/mtd/maps/physmap-bt1-rom.h [new file with mode: 0644]
drivers/mtd/maps/physmap-core.c