u-boot-1.1.6里面默认配置文件里面支持的nor型号是

 #if 0
#define CONFIG_AMD_LV400 1 /* uncomment this if you have a LV400 flash */
#endif
#define CONFIG_AMD_LV800 1 /* uncomment this if you have a LV800 flash */

而我们使用的nor flash不是LV400/LV800;

我们使用的芯片是MX29LV160DB,但是uboot里面没有,而有相近的AM29LV040B,这是需要借助数据手册仿写一个
MX29LV160DB特性有:
大小:2M
位数:16位
扇区数目:4个

已经有的配置: 在jedec_flash.c里面
{
  .mfr_id = (u16)AMD_MANUFACT,
  .dev_id = AM29LV040B,
  .name = "AMD AM29LV040B",
  .uaddr = {
  [0] = MTD_UADDR_0x0555_0x02AA /* x8 */
  },
  .DevSize = SIZE_512KiB,
  .CmdSet = P_ID_AMD_STD,
  .NumEraseRegions= 1,
  .regions = {
  ERASEINFO(0x10000,8),
  }
  }

以上各种参数说明:
  struct amd_flash_info {
  const __u16 mfr_id;
  const __u16 dev_id;
  const char *name;
  const int DevSize;
  const int NumEraseRegions;
  const int CmdSet;
  const __u8 uaddr[4]; /* unlock addrs for 8, 16, 32, 64 */
  const ulong regions[6];
  };

我们修改为:

 {
.mfr_id = MANUFACTURER_AMD, //制造商
.dev_id = AM29LV160DB, //型号
.name = "AMD AM29LV160DB", //名字
.uaddr = {
[] = MTD_UADDR_0x0AAA_0x0555, /* x8 */
[] = MTD_UADDR_0x0555_0x02AA /* x16 */ 输出对应指令,翻阅数据手册
},
.DevSize = SIZE_2MiB, //大小
.CmdSet = P_ID_AMD_STD,
.NumEraseRegions= , //分区数目
.regions = { //分区列表,参看nor数据手册
ERASEINFO(0x04000,),
ERASEINFO(0x02000,),
ERASEINFO(0x08000,),
ERASEINFO(0x10000,)
}
}

现在回顾nor flash的调用过程:

board.c里面调用flash_init ();

flash_init ();

  cfi_flash.c   //注意,正常情形使用flash.c,不过因为flash.c里面没有我们需要的型号,所以应该在flash.c所在目录下的Makefile里面去掉flash.o

  flash_detect_legacy

    flash_read_jedec_ids       //制造商

    jedec_flash_match

      jedec_table  //在芯片table里面匹配有无支持的NOR flash

  flash_get_size

最新文章

  1. 11.Configure Many-to-Many(配置多对多关系)【Code-First系列】
  2. Effective java笔记(十),序列化
  3. win7和Ubuntu双系统折腾记
  4. spring boot学习
  5. 用Javascript弹出div定义的消息框并往块里面填写文字
  6. yhd日志分析(一)
  7. spring中propertyplaceholderconfigurer简介
  8. 任务栏窗口和状态图标的闪动 z
  9. MODBUS协议详解
  10. 机器学习算法--Perceptron(感知机)算法
  11. Linux基本操作笔记
  12. React面试题
  13. linux上安装memcached步骤
  14. KMP算法——从入门到懵逼到了解
  15. synchronized和volatile
  16. LeetCode--404--左叶子之和
  17. 【Go命令教程】6. go doc 与 godoc
  18. 机器学习理论基础学习14.2---线性动态系统-粒子滤波 particle filter
  19. Chapter 3 Phenomenon——5
  20. Eolinker----全局变量的不同场景使用

热门文章

  1. Android之Handler
  2. 将多个网页制作成一个CHM文件
  3. 使用spool导出数据
  4. [ActionScript 3.0] AS3 ConvolutionFilter卷积滤镜的应用
  5. 查看.netframeword版本
  6. (medium)LeetCode 224.Basic Calculator
  7. docker错误
  8. Django网站直接使用supervisor部署
  9. T4 模板的调试方法,方便大家遇到问题自己快速定位和优化
  10. Unity AssetBundles and Resources指引 (三) AssetBundle基础