--- /dev/null
+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;