1.配置

首先要支持IDE需要在CONFIG_COMMANDS中添加CFG_CMD_IDE命令,然后要添加IDE的相关配置信息。不看代码就不知道需要哪些信息,可以先编译一下试试,如果出错就会提示哪些宏没有定义,直接定义就行了,而且在u-boot的README文件中没有相关信息,这一点也感觉有点儿不解,为什么没有IDE的相关配置说明?

我是搜索/include/configs文件夹中的配置文件,支持IDE的配置文件有几个,但多是PPC的,ARM的只有shannon.h而且CPU用的是sa1100,其它ARM的开发板好像都不支持IDE,或者说没有把u-boot的IDE移植过去。又看了几个支持IDE的配置文件,大概需要以下几个配置:

#define CFG_ATA_BASE_ADDR 0x04000000 /* Offset for data I/O */  
#define CFG_ATA_IDE0_OFFSET 0x0000

#define CFG_ATA_REG_OFFSET 0 /* Offset for alternate registers */  
#define CFG_ATA_DATA_OFFSET 0 /* Offset for normal register accesses */   
#define CFG_ATA_ALT_OFFSET 0

#define CFG_IDE_MAXBUS 1 /* max. 1 IDE bus */  
#define CFG_IDE_MAXDEVICE 1 /* max. 1 drive per IDE bus */

配置完了,一编译又出现新的错误,说有些函数没有定义,如inb, outb, inw, outw, insw, outsw等,查看了一下cmd_ide.c文件,发现里面相关的配置信息里有一个关于IO操作的配置,不同的板子引用了不同的IO操作的头文件,这些头文件都在/include/asm-xxx目录里,当然s3c44b0的就应该在/include/asm-arm里。打开io.h,发现里面已经有这几个函数的宏定义了,但被一个宏__io给控制着,可能这个宏没有定义,也不知道这个宏应该在哪儿定义,看形状像是编译器的一个选项,但又没地儿去查,于是就在下面重新定义了那些IO的操作宏

2006-09-1  
今天开始调试,都是超时,没有反应,后来看IDE的寄存器地址发现板上的地址线居然连得都是乱的,导致硬盘的寄存器地址在配置时很麻烦,就在ata.h中重新定义了宏。

感觉地址应该没问题,但编译后仍然无法识别硬盘,考虑到是不是数据线宽度不同,于时就查看low_level_init.s,发现nGCS2是16位,应该没有问题;又想到是不是时序有问题,就改了nGCS2 的配置,把所有的时间参数都调到最大,然后判断WAIT,结果不超时了,但是仍然不能识别设备。由于还没弄清楚WAIT有多大影响,试试不就行了,于是去掉了WAIT判断,结果可以识别设备,但识别为Removable Harddisk,提示信息如下:

Device 0: Model: Firm: 02 0 Ser#:

Type: Removable Hard Disk

Capacity: 101791.1 MB = 99.4 GB (208468288 x 512)  
而我的硬盘是80G的,那么这些数据应该读得不正确!

2006-9-1  
查了一下信号,又发现DMACK-应该是从主机向设备方向的信号,原来在IO初始化程序中DMACK-被初始化为输入,而输入可能导致设备处信号为低电平,而该信号又刚好是低电平有效,有可能导致数据的读写被忽略!后将PG3配置为输出,高电平。   
结果读出来的是不一样了,但也不对啊容量还是不对,提示信息   
OK

Device 0: Model: Firm: 082 Ser#:

Type: Removable Hard Disk

Capacity: 101791.1 MB = 99.4 GB (208468288 x 512)

ide_read dev 0 start 0, blocks 1 buffer at C6CF8C0

Powersaving FF

这是第一次,以后的就成了  
OK

Device 0: Model: Firm: 082 Ser#:

Type: Removable Hard Disk

Capacity: 101791.1 MB = 99.4 GB (208468288 x 512)

ide_read dev 0 start 0, blocks 1 buffer at C6CF8C0

Powersaving FF  
Firm成了082

uboot中IDE移植相关推荐

  1. x210:uboot和系统移植

    注:本文是对朱老师uboot和系统移植课程的备忘引导性笔记,主要是为了能够在学完后快速回忆起相关内容.本文主要记录了一些关键易忘性知识点并包含少量理解性内容,遵循尽量精简的原则,以尽量少的篇幅概括整个 ...

  2. uboot 下spinand 驱动移植 ———1.驱动接口的添加到uboot中

    前面有篇文章谈到:https://blog.csdn.net/clam_zxf/article/details/108834541 平台驱动和单片机驱动异同,同样可以将uboot 除去它的引导加载:所 ...

  3. 关于NAND flash的MTD分区与uboot中分区的理解 .

    今天做内核移植,准备添加NAND flash的驱动,做到MTD分区时,想起在一本书上看到的一句话,说的是分区时每个区之间没有间隙,前一个区的结束地址是后一个区的起始地址.可是当我看我的开发板的教程时, ...

  4. MTD和 uboot中的bootargs 下属 mtdparts

    MTD 设备是象闪存芯片.小型闪存卡.记忆棒等之类的设备,它们在嵌入式设备中的使用正在不断增长. MTD 驱动程序是在 Linux 下专门为嵌入式环境开发的新的一类驱动程序.相对于常规块设备驱动程序, ...

  5. u-boot,linux,文件系统移植笔记1

    今天把u-boot,linux,yaffs2文件系统的移植全部搞定了,在我的mini2440板子上跑起来了,呵呵,兴奋啊!现在回头看看自己花了这么长时间所作的工作,结论就是,只要坚持下去就一定会成功的 ...

  6. S5PV210 Uboot开发与移植01:Uboot概述

    目录 1. uboot概述 1.1 uboot的版本 1.1.1 官方版本 1.1.2 SoC厂商版本 1.1.3 开发板厂商版本 1.2 uboot功能框架 1.3 uboot生命周期 2. ubo ...

  7. S5PV210 Uboot开发与移植02:Uboot配置与编译

    目录 1. uboot源码目录简介 2. uboot编译原理引入 2.1 功能模块配置 2.1.1 在.c文件中不编译相应的功能语句 2.1.2 在make时不编译相应的功能模块 2.2 跨平台编译环 ...

  8. S5PV210 Uboot开发与移植03:Uboot启动流程详解

    目录 1. start.S解析 1.1 uboot入口分析 1.2 头文件包含 1.2.1 config.h 1.2.2 version.h 1.2.3 asm/proc/domain.h 1.2.4 ...

  9. 关于Yaffs2在u-boot中的支持

    开发板是一块2G的MLC的NandFlash,页大小8k+512,为其移植u-boot到yaffs2这了.以前在Mini2440上移植过2k+64的slc的NandFlash的Yaffs2支持,当然也 ...

最新文章

  1. 我还没考试,算法就说我的物理一定挂科
  2. 错误:无法作为数据库主体执行,因为主体 dbo 不存在、无法模拟这种类型的主体,或您没有所需的权限...
  3. Oracle-11g 从表空间删除数据文件
  4. 使用Degraph管理软件包依赖关系
  5. 如何让Sublime Text2支持GBK编码
  6. BUPT复试专题—C翻转(2010)
  7. 了解 sourceMap 配置
  8. java中关于时间的格式化
  9. 在中国搞技术只能混碗饭吃,没有太大希望
  10. Simple-RTMP-Server 服务器搭建
  11. 【信号与系统|吴大正】2:连续系统的时域分析
  12. IsPostBack介绍
  13. 机器视觉运动控制一体机应用例程|橡胶密封圈检测
  14. 名企真题-警察抓小偷游戏——数学
  15. excel中的相对引用、绝对引用和混合引用
  16. php7.0项目在本地完美运行上传至服务器手机app不显示数据
  17. 初学者学Python必看的几个练手小项目,轻松不枯燥哦
  18. 双耳节拍 枕头_枕头的故事
  19. robots.txt漏洞
  20. Windows 10 Conda 更换清华大学的镜像源

热门文章

  1. Asp.Net Core 之 appsettings.json
  2. 自动生成get,set方法
  3. Java Web学习路线
  4. UTF-8 BOM
  5. FZU 2171(线段树的延迟标记)
  6. 心疼啊今天在四季青买衣服的时候在试衣服的时候,竟然有个小偷把我的n73手机给偷去了,...
  7. 详解Linux2.6内核中基于platform机制的驱动模型 (经典)
  8. python注释_Python的注释用法
  9. SVN服务器从Windows迁移到Linux
  10. python 之 append extend