适配新的 nand flash

以芯存 XCSP4AXPK-IT为例

1. 修改两个路径的 ID 表

T153/brandy/brandy-2.0/u-boot-bsp/drivers/mtd/awnand/spinand/physic/id.c
T153/bsp/drivers/mtd/awnand/spinand/physic/id.c
添加结构体定义

struct aw_spinand_phy_info xincun[] = {
    {
        .Model          = "XCSP4AXPK-IT",
        .NandID         = {0x6C, 0xB1, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00},
        .DieCntPerChip  = 1,
        .SectCntPerPage = 8,  
        .PageCntPerBlk  = 64,  
        .BlkCntPerDie   = 2048,  
        .OobSizePerPage = 256, 
        .OperationOpt   = SPINAND_QUAD_READ | SPINAND_QUAD_PROGRAM | SPINAND_DUAL_READ,
        .MaxEraseTimes  = 100000,
        .EccType        = BIT2_LIMIT1_ERR2_LIMIT3, 
        .EccProtectedType = SIZE16_OFF0_LEN16,
        .BadBlockFlag   = BAD_BLK_FLAG_FIRST_2_PAGE,
        .ecc_status_shift = ECC_STATUS_SHIFT_4,
    },
    {
        .Model      = "XCSP2AAPK-IT",
        .NandID     = {0x6c, 0xb0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
        .DieCntPerChip  = 1,
        .SectCntPerPage = 8,  
        .PageCntPerBlk  = 64,  
        .BlkCntPerDie   = 2048,  
        .OobSizePerPage = 256, 
        .OperationOpt   = SPINAND_QUAD_READ | SPINAND_QUAD_PROGRAM | SPINAND_DUAL_READ,
        .MaxEraseTimes  = 100000,
        .EccType        = BIT2_LIMIT1_ERR2_LIMIT3, 
        .EccProtectedType = SIZE16_OFF0_LEN16,
        .BadBlockFlag   = BAD_BLK_FLAG_FIRST_2_PAGE,
        .ecc_status_shift = ECC_STATUS_SHIFT_4,
    },
};
static struct spinand_manufacture spinand_factory[] = {
SPINAND_FACTORY_INFO(XINCUN_MANUFACTURE, "XinCun", xincun),
};
...
    case XINCUN_MANUFACTURE:
        *m = "XinCun";
    break;
...

2. ubi 打包参数

由于 XCSP4AXPK-IT 硬件规格 Page Size 为 4096,ubi 打包参数需要严格匹配,否则无法烧录。
在根目录修改构建配置 .buildconfig

export LICHEE_NAND_PAGE_SIZE=4096

修改后需要重新运行 ./yz_build.sh config 配置编译参数

  • ypt153evb 512MB flash 使用 XCSP4AXPK-IT ,256MB 使用 XCSP2AAPK-IT,会在 yz_build.sh 自动修改这个参数
作者:林晓燕  创建时间:2026-10-14 17:58
最后编辑:林晓燕  更新时间:2026-10-15 15:11