uboot移植(二)
来源:互联网 发布:大数据安全问题 编辑:程序博客网 时间:2024/06/06 08:58
二、修改NorFlash驱动支持
现在检测到的Flash容量是512kB的,因为uboot默认的NorFlash配置是AM29LV400,nuaa2440上使用的NorFlash型号为S29AL016J(容量2M),我们需要修改成2M NorFlash的配置
注意:以下仅仅是修改了NorFlash的Size和Sectors Number的定义,驱动都是一样的。我们可以定义NorFlash型号为AM29LV160。
修改include/configs/nuaa2440.h
注释掉AM29LV400和AM29LV800的定义,加入AM29LV160的定义:
#if 0
#define CONFIG_AMD_LV400 1 /* uncomment this if you have a LV400 flash */
#define CONFIG_AMD_LV800 1 /* uncomment this if you have a LV800 flash */
#endif
#define CONFIG_AMD_LV160 1
#ifdef CONFIG_AMD_LV160
#define PHYS_FLASH_SIZE 0x00200000 /* 2MB */
#define CONFIG_SYS_MAX_FLASH_SECT (35) /* max number of sectors on one chip */
#define CONFIG_ENV_ADDR (CONFIG_SYS_FLASH_BASE + CONFIG_ENV_OFFSET) /* addr of environment */
#endif
修改board/nuaa2440/flash.c
74行处加入:
#if defined(CONFIG_AMD_LV400)
(AMD_MANUFACT & FLASH_VENDMASK) | (AMD_ID_LV400B & FLASH_TYPEMASK);
#elif defined(CONFIG_AMD_LV800)
(AMD_MANUFACT & FLASH_VENDMASK) | (AMD_ID_LV800B & FLASH_TYPEMASK);
#elif defined(CONFIG_AMD_LV160)
(AMD_MANUFACT & FLASH_VENDMASK) | (AMD_ID_LV160B & FLASH_TYPEMASK);
#else
150行处加入:
case (AMD_ID_LV400B & FLASH_TYPEMASK):
printf ("1x Amd29LV400BB (4Mbit)\n");
break;
case (AMD_ID_LV800B & FLASH_TYPEMASK):
printf ("1x Amd29LV800BB (8Mbit)\n");
break;
case (AMD_ID_LV160B & FLASH_TYPEMASK):
printf ("1x Amd29LV160B (2M)\n");
break;
default:
printf ("Unknown Chip Type\n");
195加入:
#define CONFIG_ENV_OFFSET 0x10000
查看NorFlash信息,输入命令#flinfo,信息如下:
Bank # 1: AMD: 1x Amd29LV160B (2M)
Size: 2 MB in 35 Sectors
Sector Start Addresses:
00000000 (RO) 00004000 (RO) 00006000 (RO) 00008000 (RO) 00010000 (RO)
00020000 (RO)00030000 00040000 00050000 00060000
00070000 00080000 00090000 000A0000 000B0000
000C0000 000D0000 000E0000 000F0000 00100000 (RO)
00110000 (RO) 00120000 00130000 00140000 00150000
00160000 00170000 00180000 00190000 001A0000
001B0000 001C0000 001D0000 001E0000 001F0000
RO表示该扇区处于写保护状态,只读
在对该扇区擦除、写入之前,要先解除写保护,命令为:“#protect off all”
擦除命令:
#erase all 擦除整片Flash
#erase start end 擦除sectors 如:#erase 0x20000 0x2ffff
#erase start +len 擦除指定大小 如:#erase 0x40000 +0x12345
写入命令:
#cp.b 内存地址 Flash地址 文件大小
如:#cp.b 0x30000000 0 0x12345
- uboot移植(二)
- OK335XD uboot移植(二)logo显示
- (二)uboot移植
- uboot移植准备工作二
- uboot移植记录之二
- uboot移植记录之二
- uboot的2440移植 二
- MPC5125 uboot移植记录(二)
- UBOOT-2010.06 移植 建立自己的demo板 (二)
- Uboot移植(smart210)
- UBOOT-2012-10在OK6410平台的移植(二)uboot 2012.10启动流程
- Exynos4412 Uboot 移植(二)—— Uboot 启动流程分析
- Exynos4412 Uboot 移植(二)—— Uboot 启动流程分析
- Exynos4412 Uboot 移植(二)—— Uboot 启动流程分析
- 嵌入式linux开发uboot移植(二)——uboot工程源码目录分析
- Exynos4412 Uboot 移植(二)—— Uboot 启动流程分析
- mini2440 uboot-2012-07移植(二)
- Exynos4412 Uboot 移植(五)—— Uboot 移植过程
- UpdateData 使用心得
- 对Java语言中的日期处理大全
- 设计模式学习C(一、外观模式)
- android 中管理短信
- Nv关于Tegra开发介绍@CGDC4
- uboot移植(二)
- 手机游戏 面试
- Too many open files 问题的解决
- asp.net (C#) RTX(腾讯通) 接口应用 能实现与OA接口
- Android中与外部进程通信和调用外部程序
- LGPL、Mozilla、GPL、BSD、MIT and Apache(一张图说明白)
- centos 下用 date -set 设置时间不起作用的解决/ scp 限制网速的问题
- 《算法导论》学习总结——第三部分1基本数据结构
- Nginx HTTP负载均衡/反向代理的相关参数测试