找回密码
 立即注册
搜索
热搜: 星闪 最新 活动
查看: 299|回复: 0

flash适配

[复制链接]

17

主题

0

回帖

101

积分

注册会员

积分
101
发表于 2025-1-7 11:45:26 | 显示全部楼层 |阅读模式
SDK中IDS表存储着U-Boot的Flash驱动对其支持的所有Flash芯片的硬件信息。当新增Flash
芯片时,U-Boot的Flash驱动需要在IDS表增加其对应的Flash信息,才能完成该Flash
芯片的初始化
1、patch-u-boot-2020.01\drivers\mtd\nand\raw\nand_ids.c在该文件中的IDS表增加对应flash信息。
2、示例:       
Nandflash适配:
{"S34ML02G1",        //Flash的名称
{ .id = {0x01, 0xDA, 0x90, 0x95, 0x44} },  //Flash芯片手册对应ID
.pagesize = SZ_2K, .chipsize = SZ_256, .erasesize = SZ_128K,  //页大小、flash大小、可擦除大小
.options = 0, .id_len = 5, .oobsize = 64, NAND_ECC_INFO(8, SZ_1K),         //UBoot配置、flash芯片ID长度、OOB大小、ECC配置
.nand_flash_type = HI_NAND_E }         //flash类型
}
SPI Nandflash适配:
        {"GD5F2GM7UEYIGR",
                { .id = { 0xC8, 0x92, 0xC8, 0x92, 0xC8, 0xFF, 0xFF, 0xFF } },
                .pagesize = SZ_2K, .chipsize = SZ_256, .erasesize = SZ_128K,
                .options = 0, .id_len = 5, .oobsize = 128, NAND_ECC_INFO(8, SZ_1K),
                .nand_flash_type = HI_SPI_NAND_E,
                .read_addr_cycle = HI_NAND_ADDR_CYCLE_5_E,  //读指令操作的地址字节数
                .write_addr_cycle = HI_NAND_ADDR_CYCLE_5_E,  //写指令操作的地址字节数
                .erase_addr_cycle = HI_NAND_ADDR_CYCLE_3_E,  //擦除指令操作的地址字节数
                .spi_nand_rw_cfg = {                          //SPI Nand读写模式、指
令、空周期的配置
                        HI_SPI_NAND_QUADIN_QUADOUT_E,
                        HI_SPI_NAND_CMD_READ_QUAD,
                        HI_SPI_NAND_STD_READ_DUMMY_NUM,
                        HI_SPI_NAND_QUADIN_QUADOUT_E,
                        HI_SPI_NAND_CMD_WRITE_QUAD,
                        HI_SPI_NAND_WRITE_DUMMY_NUM,
                        {0}
                },
                .hi_options = HI_NAND_INNER_ECC_DIS,  //是否开启Flash芯片内置ECC的配置
                .hi_protect_feature_reg = 0x0,    //flash芯片对应的PROTECT寄存器,在初始化阶段进行配置
                .hi_config_feature_reg = 0x1, //Flash芯片对应的CONFIG寄存器,在初始化阶段进行配置
                .hi_status_feature_reg = 0x0, //Flash芯片对应的STATUS寄存器,在初始化阶段进行配置
                {0}
        }
3、适配完,如果flash大小有改变则需修改文件/home/locad/trunkey/chip/luofu/dts/luofu.h中#define HI_MTD_SIZE        SZ_256M大小,然后编译即可。
4、查看分区表
  U-Boot下查看Flash分区:
mtd list
内核下查看Flash分区:
cat /proc/mtd
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|【淇诺科技】技术论坛 ( 粤ICP备14010465号-1|粤ICP备14010465号-1 )

GMT+8, 2026-4-2 15:59 , Processed in 0.123308 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表