]> git.ipfire.org Git - thirdparty/openwrt.git/commitdiff
arm-trusted-firmware-mediatek: add FudanMicro manufacturer
authorMikhail Zhilkin <csharper2005@gmail.com>
Wed, 13 Aug 2025 19:46:54 +0000 (22:46 +0300)
committerHauke Mehrtens <hauke@hauke-m.de>
Mon, 8 Sep 2025 12:02:52 +0000 (14:02 +0200)
Add FudanMicro manufacturer.

Signed-off-by: Mikhail Zhilkin <csharper2005@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19760
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
package/boot/arm-trusted-firmware-mediatek/patches/0004-mediatek-snfi-add-FudanMicro-manufacturer.patch [new file with mode: 0644]

diff --git a/package/boot/arm-trusted-firmware-mediatek/patches/0004-mediatek-snfi-add-FudanMicro-manufacturer.patch b/package/boot/arm-trusted-firmware-mediatek/patches/0004-mediatek-snfi-add-FudanMicro-manufacturer.patch
new file mode 100644 (file)
index 0000000..7900cfe
--- /dev/null
@@ -0,0 +1,41 @@
+From fd057aba83aea8458986e11c81dbb75a69468b84 Mon Sep 17 00:00:00 2001
+From: Mikhail Zhilkin <csharper2005@gmail.com>
+Date: Wed, 13 Aug 2025 22:46:54 +0300
+Subject: arm-trusted-firmware-mediatek: add FudanMicro manufacturer
+
+Add FudanMicro manufacturer.
+
+Signed-off-by: Mikhail Zhilkin <csharper2005@gmail.com>
+---
+
+--- a/plat/mediatek/apsoc_common/drivers/spi_nand/mtk_spi_nand.c
++++ b/plat/mediatek/apsoc_common/drivers/spi_nand/mtk_spi_nand.c
+@@ -21,6 +21,7 @@
+ #define SPI_NAND_MAX_ID_LEN           4U
+ #define DELAY_US_400MS                        400000U
+ #define ETRON_ID                      0xD5U
++#define FUDAN_ID                      0xA1U
+ #define GIGADEVICE_ID                 0xC8U
+ #define MACRONIX_ID                   0xC2U
+ #define MICRON_ID                     0x2CU
+@@ -146,7 +147,8 @@ static int spi_nand_quad_enable(uint8_t
+       if (manufacturer_id != MACRONIX_ID &&
+           manufacturer_id != GIGADEVICE_ID &&
+           manufacturer_id != ETRON_ID &&
+-          manufacturer_id != FORESEE_ID) {
++          manufacturer_id != FORESEE_ID &&
++          manufacturer_id != FUDAN_ID) {
+               return 0;
+       }
+@@ -543,6 +545,10 @@ static int spi_nand_check_pp(struct para
+               INFO("PP COPY %d CRC read: 0x%x, compute: 0x%x\n",
+                    i, crc, crc_compute);
++              // FUDAN integrity CRC (bytes 254-255) is reversed
++              if (crc != crc_compute)
++                      crc = htobe16(pp->integrity_crc);
++
+               if (crc != crc_compute) {
+                       ret = -EBADMSG;
+                       continue;