uboot中IDE移植
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移植相关推荐
- x210:uboot和系统移植
注:本文是对朱老师uboot和系统移植课程的备忘引导性笔记,主要是为了能够在学完后快速回忆起相关内容.本文主要记录了一些关键易忘性知识点并包含少量理解性内容,遵循尽量精简的原则,以尽量少的篇幅概括整个 ...
- uboot 下spinand 驱动移植 ———1.驱动接口的添加到uboot中
前面有篇文章谈到:https://blog.csdn.net/clam_zxf/article/details/108834541 平台驱动和单片机驱动异同,同样可以将uboot 除去它的引导加载:所 ...
- 关于NAND flash的MTD分区与uboot中分区的理解 .
今天做内核移植,准备添加NAND flash的驱动,做到MTD分区时,想起在一本书上看到的一句话,说的是分区时每个区之间没有间隙,前一个区的结束地址是后一个区的起始地址.可是当我看我的开发板的教程时, ...
- MTD和 uboot中的bootargs 下属 mtdparts
MTD 设备是象闪存芯片.小型闪存卡.记忆棒等之类的设备,它们在嵌入式设备中的使用正在不断增长. MTD 驱动程序是在 Linux 下专门为嵌入式环境开发的新的一类驱动程序.相对于常规块设备驱动程序, ...
- u-boot,linux,文件系统移植笔记1
今天把u-boot,linux,yaffs2文件系统的移植全部搞定了,在我的mini2440板子上跑起来了,呵呵,兴奋啊!现在回头看看自己花了这么长时间所作的工作,结论就是,只要坚持下去就一定会成功的 ...
- 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 ...
- S5PV210 Uboot开发与移植02:Uboot配置与编译
目录 1. uboot源码目录简介 2. uboot编译原理引入 2.1 功能模块配置 2.1.1 在.c文件中不编译相应的功能语句 2.1.2 在make时不编译相应的功能模块 2.2 跨平台编译环 ...
- 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 ...
- 关于Yaffs2在u-boot中的支持
开发板是一块2G的MLC的NandFlash,页大小8k+512,为其移植u-boot到yaffs2这了.以前在Mini2440上移植过2k+64的slc的NandFlash的Yaffs2支持,当然也 ...
最新文章
- 我还没考试,算法就说我的物理一定挂科
- 错误:无法作为数据库主体执行,因为主体 dbo 不存在、无法模拟这种类型的主体,或您没有所需的权限...
- Oracle-11g 从表空间删除数据文件
- 使用Degraph管理软件包依赖关系
- 如何让Sublime Text2支持GBK编码
- BUPT复试专题—C翻转(2010)
- 了解 sourceMap 配置
- java中关于时间的格式化
- 在中国搞技术只能混碗饭吃,没有太大希望
- Simple-RTMP-Server 服务器搭建
- 【信号与系统|吴大正】2:连续系统的时域分析
- IsPostBack介绍
- 机器视觉运动控制一体机应用例程|橡胶密封圈检测
- 名企真题-警察抓小偷游戏——数学
- excel中的相对引用、绝对引用和混合引用
- php7.0项目在本地完美运行上传至服务器手机app不显示数据
- 初学者学Python必看的几个练手小项目,轻松不枯燥哦
- 双耳节拍 枕头_枕头的故事
- robots.txt漏洞
- Windows 10 Conda 更换清华大学的镜像源
热门文章
- Asp.Net Core 之 appsettings.json
- 自动生成get,set方法
- Java Web学习路线
- UTF-8 BOM
- FZU 2171(线段树的延迟标记)
- 心疼啊今天在四季青买衣服的时候在试衣服的时候,竟然有个小偷把我的n73手机给偷去了,...
- 详解Linux2.6内核中基于platform机制的驱动模型 (经典)
- python注释_Python的注释用法
- SVN服务器从Windows迁移到Linux
- python 之 append extend