From f77b96d5160ab8043ffb72d478275dc67f1df53e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net>
Date: Thu, 19 Aug 2021 07:36:44 +0200
Subject: [PATCH] community/linux-edge: add support for MTB on riscv64

This is enabled in the config of other architectures as well, it should
allow communicating with the SPI flash of the SiFive HiFive Unmatched,
thereby allowing users to install U-Boot to it.
---
 community/linux-edge/APKBUILD            |   4 +-
 community/linux-edge/config-edge.riscv64 | 136 ++++++++++++++++++++++-
 2 files changed, 136 insertions(+), 4 deletions(-)

diff --git a/community/linux-edge/APKBUILD b/community/linux-edge/APKBUILD
index bb320eb782c1..242787495d6f 100644
--- a/community/linux-edge/APKBUILD
+++ b/community/linux-edge/APKBUILD
@@ -9,7 +9,7 @@ case $pkgver in
 	*.*.*)	_kernver=${pkgver%.*};;
 	*.*) _kernver=$pkgver;;
 esac
-pkgrel=1
+pkgrel=2
 pkgdesc="Linux latest stable kernel"
 url="https://www.kernel.org"
 depends="mkinitfs"
@@ -227,7 +227,7 @@ a8edf97e9d38a49f1be2bde1e29ad96274bb2c6f7e8a2bebaa1161dd4df9cabcbaec4ff644c45bee
 3c79ed9f25883bee1f9b5f8f8d87fc6fa3a223b3fcd7e11ebbec9cb18b2562ac3d257bddbe00e9f069d5f3d893a3e814266e78d69afb2adad4e3ff80946acddb  config-edge.aarch64
 b59815fff833ec4894f9af02589dd3aa607eba96935116131742715a3ca88d9be8f68d469ee913d68785e6a49a7b4b8b9a1b14824c60e4d69ad0de9a275f0e16  config-edge.armv7
 c975dcaa3443fda63c03d835c74a0ad816cc065fe8c406627a2acbb9abdb0406fdb45461ff0761db8fa6bebf1f415327d7d3eea08eb70d95d9f2eed7e91ef0dc  config-edge.x86_64
-ec2523666b84ca19e41bca5037bb4e9d37b5b4935e36addf1f56bc151f407a29671f6043606bcf814604f3de8b7bb868212425808dbffb5a24bf18403af7a93f  config-edge.riscv64
+2a75a073d87d4054d0f7c18e2b5b2a260a7eac7f974ff39a94f5f9cfc2a5e5b263798d83d5e625d07b3789c1bbda40b0e0292b52284de0c6f6570df2b8c5f9c9  config-edge.riscv64
 cf25943457b196ec90a1b0860489197ea36030543b3ca784f1710fa306ee0c5876dbd3ed465655e365e6b80217b00dd6a5c41d5f8e7a6fcff38d75b3d7fb1b27  config-edge-virt.aarch64
 a57a7a19ac1ae47ea71d8e0a189a5f0cd38a19a5ee463004e721978d806449a81322565dbf169a91d1e1fdb42101a5f55b30c6e30a2b0547dd5ca314bf60c35f  config-edge-virt.armv7
 1f0d02f67e87ba0af3057dc961d920713ed9dd7ebc969e2bcb48cfa14392e3160066ed40b1796529d045b4ba899d9132ed7a40047480834c7e8ace0bd0d65e85  config-edge-virt.x86_64
diff --git a/community/linux-edge/config-edge.riscv64 b/community/linux-edge/config-edge.riscv64
index e7072879fd28..160fae0fa83a 100644
--- a/community/linux-edge/config-edge.riscv64
+++ b/community/linux-edge/config-edge.riscv64
@@ -789,7 +789,134 @@ CONFIG_GENERIC_ARCH_TOPOLOGY=y
 
 # CONFIG_CONNECTOR is not set
 # CONFIG_GNSS is not set
-# CONFIG_MTD is not set
+CONFIG_MTD=m
+CONFIG_MTD_TESTS=m
+
+#
+# Partition parsers
+#
+# CONFIG_MTD_AR7_PARTS is not set
+# CONFIG_MTD_CMDLINE_PARTS is not set
+CONFIG_MTD_OF_PARTS=m
+# CONFIG_MTD_REDBOOT_PARTS is not set
+# end of Partition parsers
+
+#
+# User Modules And Translation Layers
+#
+CONFIG_MTD_BLKDEVS=m
+CONFIG_MTD_BLOCK=m
+CONFIG_MTD_BLOCK_RO=m
+CONFIG_FTL=m
+CONFIG_NFTL=m
+CONFIG_NFTL_RW=y
+CONFIG_INFTL=m
+CONFIG_RFD_FTL=m
+CONFIG_SSFDC=m
+CONFIG_SM_FTL=m
+CONFIG_MTD_OOPS=m
+CONFIG_MTD_SWAP=m
+# CONFIG_MTD_PARTITIONED_MASTER is not set
+
+#
+# RAM/ROM/Flash chip drivers
+#
+CONFIG_MTD_CFI=m
+CONFIG_MTD_JEDECPROBE=m
+CONFIG_MTD_GEN_PROBE=m
+# CONFIG_MTD_CFI_ADV_OPTIONS is not set
+CONFIG_MTD_MAP_BANK_WIDTH_1=y
+CONFIG_MTD_MAP_BANK_WIDTH_2=y
+CONFIG_MTD_MAP_BANK_WIDTH_4=y
+CONFIG_MTD_CFI_I1=y
+CONFIG_MTD_CFI_I2=y
+CONFIG_MTD_CFI_INTELEXT=m
+CONFIG_MTD_CFI_AMDSTD=m
+CONFIG_MTD_CFI_STAA=m
+CONFIG_MTD_CFI_UTIL=m
+CONFIG_MTD_RAM=m
+CONFIG_MTD_ROM=m
+CONFIG_MTD_ABSENT=m
+# end of RAM/ROM/Flash chip drivers
+
+#
+# Mapping drivers for chip access
+#
+CONFIG_MTD_COMPLEX_MAPPINGS=y
+CONFIG_MTD_PHYSMAP=m
+# CONFIG_MTD_PHYSMAP_COMPAT is not set
+# CONFIG_MTD_PHYSMAP_OF is not set
+# CONFIG_MTD_PHYSMAP_GPIO_ADDR is not set
+CONFIG_MTD_PCI=m
+CONFIG_MTD_INTEL_VR_NOR=m
+CONFIG_MTD_PLATRAM=m
+# end of Mapping drivers for chip access
+
+#
+# Self-contained MTD device drivers
+#
+CONFIG_MTD_PMC551=m
+CONFIG_MTD_PMC551_BUGFIX=y
+# CONFIG_MTD_PMC551_DEBUG is not set
+CONFIG_MTD_DATAFLASH=m
+# CONFIG_MTD_DATAFLASH_WRITE_VERIFY is not set
+# CONFIG_MTD_DATAFLASH_OTP is not set
+# CONFIG_MTD_MCHP23K256 is not set
+# CONFIG_MTD_SST25L is not set
+CONFIG_MTD_SLRAM=m
+CONFIG_MTD_PHRAM=m
+CONFIG_MTD_MTDRAM=m
+CONFIG_MTDRAM_TOTAL_SIZE=4096
+CONFIG_MTDRAM_ERASE_SIZE=128
+CONFIG_MTD_BLOCK2MTD=m
+
+#
+# Disk-On-Chip Device Drivers
+#
+# CONFIG_MTD_DOCG3 is not set
+# end of Self-contained MTD device drivers
+
+#
+# NAND
+#
+CONFIG_MTD_NAND_CORE=m
+CONFIG_MTD_ONENAND=m
+# CONFIG_MTD_ONENAND_VERIFY_WRITE is not set
+# CONFIG_MTD_ONENAND_GENERIC is not set
+# CONFIG_MTD_ONENAND_OTP is not set
+# CONFIG_MTD_ONENAND_2X_PROGRAM is not set
+# CONFIG_MTD_RAW_NAND is not set
+CONFIG_MTD_SPI_NAND=m
+
+#
+# ECC engine support
+#
+CONFIG_MTD_NAND_ECC=y
+CONFIG_MTD_NAND_ECC_SW_HAMMING=y
+CONFIG_MTD_NAND_ECC_SW_HAMMING_SMC=y
+CONFIG_MTD_NAND_ECC_SW_BCH=y
+# end of ECC engine support
+# end of NAND
+
+#
+# LPDDR & LPDDR2 PCM memory drivers
+#
+CONFIG_MTD_LPDDR=m
+CONFIG_MTD_QINFO_PROBE=m
+# end of LPDDR & LPDDR2 PCM memory drivers
+
+CONFIG_MTD_SPI_NOR=m
+CONFIG_MTD_SPI_NOR_USE_4K_SECTORS=y
+# CONFIG_MTD_SPI_NOR_SWP_DISABLE is not set
+CONFIG_MTD_SPI_NOR_SWP_DISABLE_ON_VOLATILE=y
+# CONFIG_MTD_SPI_NOR_SWP_KEEP is not set
+CONFIG_MTD_UBI=m
+CONFIG_MTD_UBI_WL_THRESHOLD=4096
+CONFIG_MTD_UBI_BEB_LIMIT=20
+# CONFIG_MTD_UBI_FASTMAP is not set
+# CONFIG_MTD_UBI_GLUEBI is not set
+# CONFIG_MTD_UBI_BLOCK is not set
+# CONFIG_MTD_HYPERBUS is not set
 CONFIG_DTC=y
 CONFIG_OF=y
 # CONFIG_OF_UNITTEST is not set
@@ -1577,7 +1704,7 @@ CONFIG_I2C_ALGOBIT=m
 # CONFIG_I3C is not set
 CONFIG_SPI=y
 CONFIG_SPI_MASTER=y
-# CONFIG_SPI_MEM is not set
+CONFIG_SPI_MEM=y
 
 #
 # SPI Master Controller Drivers
@@ -2965,6 +3092,8 @@ CONFIG_MISC_FILESYSTEMS=y
 # CONFIG_BEFS_FS is not set
 # CONFIG_BFS_FS is not set
 # CONFIG_EFS_FS is not set
+# CONFIG_JFFS2_FS is not set
+# CONFIG_UBIFS_FS is not set
 # CONFIG_CRAMFS is not set
 CONFIG_SQUASHFS=m
 CONFIG_SQUASHFS_FILE_CACHE=y
@@ -3379,6 +3508,7 @@ CONFIG_DECOMPRESS_XZ=y
 CONFIG_DECOMPRESS_LZ4=y
 CONFIG_DECOMPRESS_ZSTD=y
 CONFIG_GENERIC_ALLOCATOR=y
+CONFIG_BCH=m
 CONFIG_ASSOCIATIVE_ARRAY=y
 CONFIG_HAS_IOMEM=y
 CONFIG_HAS_IOPORT_MAP=y
@@ -3475,7 +3605,9 @@ CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y
 CONFIG_DEBUG_MEMORY_INIT=y
 CONFIG_HAVE_ARCH_KASAN=y
 CONFIG_HAVE_ARCH_KASAN_VMALLOC=y
+CONFIG_CC_HAS_KASAN_GENERIC=y
 CONFIG_CC_HAS_WORKING_NOSANITIZE_ADDRESS=y
+# CONFIG_KASAN is not set
 # end of Memory Debugging
 
 #
-- 
GitLab