|
|
@@ -0,0 +1,41 @@
|
|
|
+From fd057aba83aea8458986e11c81dbb75a69468b84 Mon Sep 17 00:00:00 2001
|
|
|
+From: Mikhail Zhilkin <[email protected]>
|
|
|
+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 <[email protected]>
|
|
|
+---
|
|
|
+
|
|
|
+--- 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;
|