mini6410移植全攻略(3)--uboot移植之支持nand flansh启动(上)
此篇文章是本人muge0913在上篇文章的基础上继续移植的,文章仅供技术交流请勿商用,转载请注明出处:
http://blog.csdn.net/muge0913/article/details/7168315
一、在include/configs/th6410.h添加宏定义
#define CONFIG_MEMORY_UPPER_CODE /*uboot首先打印的信息*/ #define CONFIG_IDENT_STRING " for th6410" /*配置串口频率*/ #define CONFIG_UART_66 /*配置nand,使支持nand中的代码拷贝*/ #define CFG_MAX_NAND_DEVICE 1 #define CFG_NAND_BASE (0x70200010) #define NAND_MAX_CHIPS 1 #define NAND_DISABLE_CE() (NFCONT_REG |= (1 << 1)) #define NAND_ENABLE_CE() (NFCONT_REG &= ~(1 << 1)) #define NF_TRANSRnB() do { while(!(NFSTAT_REG & (1 <<0))); } while(0) /*配置串口频率*/ #define CONFIG_UART_66 /*启动显示开发板信息*/ #define CONFIG_DISPLAY_BOARDINFO /*启动显示cpu信息*/ #define CONFIG_DISPLAY_CPUINFO /*启动cpu初始化*/ #define CONFIG_ARCH_CPU_INIT /*终端提示信息*/ #define CONFIG_SYS_PROMPT "muge0913-张同浩# " /* Monitor Command Prompt */
二、添加nand flash拷贝函数(在nand_cp.c文件中),下面我们会有详细的代码分析
1、拷贝nand_cp.c文件到arch/arm/cpu/arm1176/中
2、修改链接文件
1)、arch/arm/cpu/arm1176/u-boot.lds
(为添加其他功能需要修改时,可再次修改):
2)、board/samsung/th6410/u-boot-nand.lds
(为添加其他功能需要修改时,可再次修改):
3、同时还要修改相应的makefile文件(在此不再叙述)
三、nand flash拷贝代码如下:
#include <common.h> #ifdef CONFIG_S3C64XX #include <asm/io.h> #include <linux/mtd/nand.h> #include <asm/arch/s3c6400.h> static int nandll_read_page (uchar *buf, ulong addr, int large_block) { int i; int page_size = 512; if (large_block) page_size = 2048; /*使能芯片*/ NAND_ENABLE_CE(); NFCMD_REG = NAND_CMD_READ0; /* Write Address */ NFADDR_REG = 0; if (large_block) NFADDR_REG = 0; NFADDR_REG = (addr) & 0xff; NFADDR_REG = (addr >> 8) & 0xff; NFADDR_REG = (addr >> 16) & 0xff; if (large_block) NFCMD_REG = NAND_CMD_READSTART; NF_TRANSRnB(); /* for compatibility(2460). u32 cannot be used. by scsuh */ for(i=0; i < page_size; i++) { *buf++ = NFDATA8_REG; } NAND_DISABLE_CE(); return 0; } static int nandll_read_blocks (ulong dst_addr, ulong size, int large_block) { uchar *buf = (uchar *)dst_addr; int i; uint page_shift = 9;//512 if (large_block) page_shift = 11;//2048 /* Read pages */ for (i = 0; i < (0x3c000>>page_shift); i++, buf+=(1<<page_shift)) { nandll_read_page(buf, i, large_block); } return 0; } int copy_uboot_to_ram (void) { int large_block = 0; int i; vu_char id; /*使能芯片*/ NAND_ENABLE_CE(); /*读取ID*/ NFCMD_REG = NAND_CMD_READID; NFADDR_REG = 0x00; /* 等待一会 */ for (i=0; i<200; i++); id = NFDATA8_REG; id = NFDATA8_REG; /*id>0x80则为大页*/ if (id > 0x80) large_block = 1; /*CONFIG_SYS_PHY_UBOOT_BASE拷贝地址,0x3c000为大小240K*/ return nandll_read_blocks(CONFIG_SYS_PHY_UBOOT_BASE, 0x3c000, large_block); } #endif
此篇文章是本人muge0913在上篇文章的基础上继续移植的,文章仅供技术交流请勿商用,转载请注明出处:
http://blog.csdn.net/muge0913/article/details/7168315
mini6410移植全攻略(3)--uboot移植之支持nand flansh启动(上)相关推荐
- mini6410移植全攻略(5)--uboot移植之支持nand flansh启动(下)
六.首先运行的程序 在这我也进行的大量的代码修改,进行了详细的注释,希望给大家一些帮助 本文章由muge0913编写,文章仅供技术交流,转载请注明出处: http://blog.csdn.net/mu ...
- mini6410移植全攻略(4)--uboot移植之支持nand flansh启动(中)
四.修改有关的信息: 本文章由muge0913编写,仅供技术交流转载请注明出处: http://blog.csdn.net/muge0913/article/details/7168325 1. 串口 ...
- 嵌入式Linux全攻略 ACE程序移植过程详细讲解
2019独角兽企业重金招聘Python工程师标准>>> 1.在安装有Linux操作系统的PC上安装交叉编译器,笔者使用的是Moxa tool chain for DA66x,(其它的 ...
- OK6410之uboot移植(4)——uboot启动代码植及支持nand flansh启动
参考自 http://wenku.baidu.com/view/ae78a00390c69ec3d5bb75ce.html?st=1 http://zhengxianqing1986.blog.163 ...
- USB WIFI网卡在S5PV210上的移植和使用最全攻略(2)
目录 一.在自己制作的rootfs中移植网卡 1.确认自己制作的rootfs可正常工作并启动 2.需要的工具集确认 3.交叉编译iwconfig 二.移植wpa_supplicant并制作镜像 1.交 ...
- Davinci DM6446开发攻略-UBOOT-2009.03移植2 nand flash的烧写
很长一段时间没有更新博客了,是因为要推出新开发方案和做好客户服务工作,忙得不易乐乎.有关DAVINCI U-BOOT的移植,以前写过一篇u-boot-1.3.4(2008年的),其实和这个u-boot ...
- 图像识别DM8127开发攻略——KERNEL的移植说明
图像识别DM8127开发攻略--KERNEL的移植说明 接上一篇<图像识别DM8127开发攻略--UBOOT的移植说明>的步伐,DM8127开发攻略最后一篇文章是有关Kernel的裁剪移植 ...
- wifi软件linux版本,[转载]Wii安装运行可用WIFI的Linux系统全攻略
Wii运行Linux的优势: 低功耗,Wii玩3D游戏的平均功耗在18W,而运行linux的功耗更低,连续运行50天才耗一度电(甚至不到).如果用Wii来下电驴.如果给wii-linux装上图形界面来 ...
- Lattice ddr3教程全攻略之仿真篇
Lattice ddr3教程全攻略之仿真篇 对于这部分,首先建议安装好diamond3.1,modelsim se 10.1a这两个软件,如果想仔细分析DDR3的IP部分,可仔细阅读DDR3 SDRA ...
最新文章
- DWS和各异构数据库的差异对比
- unity3d api 中文文档_接口文档系统-showdoc安装部署
- node.js 学习笔记三:路由url
- centos7 locale 区域语言设置
- 【Groovy】使用 Groovy 语言开发服务器 Server 和客户端 Client 套接字程序 ( 服务器客户端完整代码示例 | 运行服务器端与客户端效果及过程分析 )
- 火狐谷歌浏览器油猴安装过程,扩展一个看付费视频脚本为例,学习通,云课堂等软件辅助学习也能做
- ufs3.0和ufs2.1的区别体现在哪些方面?
- 开发者应当熟知的 C# 序列化和反序列化
- 安装cifs 访问windows的共享文件
- Java为什么不允许覆盖静态方法?
- vmstat命令 查看内存、CPU占用
- c语言及程序设计基础 pdf,c语言程序设计基础.pdf
- 联想拯救者Y7000P win10+ubuntu20.04 双系统安装
- django 文件下载到本地
- MSM8937系统启动流程【转】
- 开发转测试? Yes or No
- zoj3869 Ace of Aces zoj3880 Demacia of the Ancients(水)
- linux 翻录cd,Linux下一个CD翻录 创CUE 压缩flac攻略
- 学习逆向某风控id分析
- ubuntu 截图工具flameshot(火焰截图)