u-boot2010.06移植阶段三--norflash驱动
2011-03-20 23:06:24
学习笔记:

效果图:

参考步骤:
一,把smdk2410 # 改成apple2440 #
1,在board/samsung/apple2440/apple2440.c中修改
if(gpio->GSTATUS1==0x32440001)
/* arch number of SMDK2410-Board */
gd->bd->bi_arch_number = MACH_TYPE_APPLE2440;
else
gd->bd->bi_arch_number = MACH_TYPE_SMDK2410;
2,在arch/arm/include/asm/mach-types.h中修改
#define CONFIG_SYS_PROMPT "APPLE2440 # "
二,增加EN29LV160AB norflash驱动
1,修改include/configs/apple2440.h
#if 0 //注释掉下面两个类型的Nor Flash设置,因为不是我们所使用的型号
#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
//第175行添加如下内容
#define CONFIG_EON_29LV160AB
1 //添加TQ2440开发板Nor Flash设置
#define
PHYS_FLASH_SIZE
0x200000 //我们开发板的Nor Flash是2M
#define CONFIG_SYS_MAX_FLASH_SECT (35) //根据EN29LV160AB的芯片手册描述,共35个扇区
#define
CONFIG_ENV_ADDR
(CONFIG_SYS_FLASH_BASE + 0xF0000) //暂设置环境变量的首地址为0xF0000 //在此处放uboot参数
2,在include/flash.h添加
在181行添加
#define EON_ID_LV160AB 0x22492249
3,在board/samsung/smdk2440/flash.c中修改
#define MAIN_SECT_SIZE 0x8000 //定义为32k,主要扇区的大小
============================================================
由数据手册可知EN29LV160AB第0扇区大小为8K,第1、2为4K,第3为16K,后面31扇区为32K。前面4个扇区加起来刚好是主要扇区的大小 = 32K, 所以修改87行下如下
for (j = 0; j < flash_info[i].sector_count; j++)
{
if (j <= 3)
{
/* 1st one is 8 KB */
if (j == 0)
{
flash_info[i].start[j] = flashbase + 0;
}
/* 2nd and 3rd are both 4 KB */
if ((j == 1) || (j == 2))
{
flash_info[i].start[j] = flashbase + 0x2000 + (j - 1) * 0x1000;
}
/* 4th 16 KB */
if (j == 3)
{
flash_info[i].start[j] = flashbase + 0x4000;
}
}
else
{
flash_info[i].start[j] = flashbase + (j -
3) * MAIN_SECT_SIZE;
}
}
size += flash_info[i].size;
==========================================================
修改flash_print_info,添加EN29LV160AB相关信息如下:
switch (info->flash_id & FLASH_VENDMASK) {
case (AMD_MANUFACT & FLASH_VENDMASK):
printf ("AMD: ");
break;
case (EON_MANUFACT & FLASH_VENDMASK):
printf ("EON: ");
break;
default:
printf ("Unknown Vendor ");
break;
}
switch (info->flash_id & FLASH_TYPEMASK) {
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 (EON_ID_LV160AB & FLASH_TYPEMASK):
printf ("1x EN29LV160AB (16Mbit)\n");
break;
default:
printf ("Unknown Chip Type\n");
goto Done;
break;
}
================================================
修改int flash_erase (flash_info_t * info, int s_first, int s_last)
if ((info->flash_id & FLASH_VENDMASK) !=
(EON_MANUFACT & FLASH_VENDMASK)) {
return ERR_UNKNOWN_FLASH_VENDOR;
=========================================
添加
#elif defined(CONFIG_EON_29LV160AB) //在CONFIG_AMD_LV800后面添加EON_ID_LV160AB
(EON_MANUFACT & FLASH_VENDMASK) |
(EON_ID_LV160AB & FLASH_TYPEMASK);
4,至此,uboot关于Norflash已经移植好
make distclean
make smdk2440_config
make即可生成u-boot.bin
u-boot2010.06移植阶段三--norflash驱动的更多相关文章
- U-boot2010.06移植--阶段一
2011-02-24 23:14:57 我今天的移植将分如下3步.加上写记录文档,预计时间3小时. 一,不改变源码,完成编译. 二,修改源码,搭建一个U-boot的框架,完成编译. 三,修改源码,完成 ...
- Android系统如何移植wpa_supplicant及wifi驱动
一.WPA_SUPPLICANT简介 1. 什么是wpa_supplicant wpa_supplicant is a WPA Supplicant for Linux, BSD, Mac OS X, ...
- 实践作业4---DAY4阶段三。
阶段三:给出结论 这一阶段,我们首先列表从核心功能.细节.用户体验.辅助功能差异化功能.软件的适应性和成长性展开.我们得结论前参考了权威网站数据.并自己也做了相应分析. 结论:经过这么多工作,这个软件 ...
- Linux I2C驱动分析(三)----i2c_dev驱动和应用层分析 【转】
本文转载自:http://blog.chinaunix.net/uid-21558711-id-3959287.html 分类: LINUX 原文地址:Linux I2C驱动分析(三)----i2c_ ...
- MySQL数据库企业集群项目实战(阶段三)
MySQL数据库企业集群项目实战(阶段三) 作者 刘畅 时间 2020-10-25 目录 1 架构拓扑图 1 1.1 方案一 1 1.2 方案二 2 ...
- mysql的三种驱动类型
http://862123204-qq-com.iteye.com/blog/1566581 1. Class.forName("com.mysql.jdbc.Driver");/ ...
- 浅谈Android系统移植、Linux设备驱动
一.Android系统架构 第一层:Linux内核 包括驱动程序,管理内存.进程.电源等资源的程序 第二层:C/C++代码库 包括Linux的.so文件以及嵌入到APK程序中的NDK代码 第三层:An ...
- 基于FPGA的DW8051移植(三)
总结一下问题: 1) http://www.cnblogs.com/sepeng/p/4137405.html 基于FPGA的DW8051移植(一)里面用modelsim观测波形发现程序进入了ida ...
- 移植Linux Kernel SM750 驱动到VxWorks 7
一.SM750简介 SM750 是SiliconMotion 推出的一款适合嵌入式设备的显卡(Embedded GPU),采用PCIe接口与CPU连接,内部集成16MB DDR SDRAM显存,产品具 ...
随机推荐
- MySql 查询银行卡号打码
),")) end as card_number from das.staff_base; case 函数 CASE WHEN 条件1 THEN 结果1 WHEN 条件2 THE ...
- Windows补丁更新Tips
1.Windows 2012 R2 MS14-066补丁安装失败 现象:下载对应版本的补丁,提示“此更新不适用于你的计算机” 解决:使用命令行可成功安装 @echo off expand –F:* d ...
- dbeaver导出MySQL的架构提示"IO Error: Utility 'mysqldump.exe' not found in client home 'MySQL Connector/Net"解决方案
今天想到用dbeaver的Dump dabase功能导出MySQL的架构脚本,到最后一步生成的时候提示以下错误信息: IO Error: Utility 'mysqldump.exe' not fou ...
- MySQL 5.7新特性之generated column
MySQL 5.7引入了generated column,这篇文章简单地介绍了generated column的使用方法和注意事项,为读者了解MySQL 5.7提供一个快速的.完整的教程.这篇文章围绕 ...
- Git查看两个版本之间修改了哪些文件
gdiff 63e3b647d55fcc643e793e650c893be8601719b1 548cdaf01dbc2f08d1ca0b697a24afe512b75a2f --stat git l ...
- 【python】——三级菜单
作业需求: 打印三级菜单 可返回上一级 可随时退出程序 #!/usr/bin/env python # -*- coding:utf-8 -*- #Author: __Json.Zzgx__ menu ...
- mysql数据库数据的 备份以及还原
数据库备份的3种方式: 例如:mysqldump -uzx_root -p test>/root/test1.sql
- 关于maven的CoreException: Could not get the value for parameter compilerId for plugin 。。的错误
在Eclipse中使用 Alt+F5 快捷键,在弹出的Update Maven Project对话框中选择报错的Maven工程,勾选下图中的 Force Update of Snapshots/Rel ...
- jQuery 中的 39 个技巧【申明:来源于网络】
jQuery 中的 39 个技巧[申明:来源于网络] 地址:http://blog.csdn.net/zhongqi2513/article/details/53704812?ref=myread
- Hyper-v带宽限制以及验证工具
最近在做项目的性能测试时,需要模拟网络的带宽来控制文件的上传速度.按照以前的方式方法,我们一般会使用工具 softperfect bandwidth manager 来模拟上下行的带宽. 官网地址 h ...