am335x 1G nand 启动Linux qt
针对DRAM的升级,修改u-boot 的参数即可。
include/configs/ok335x.h
修改PHYS_DRAM_1_SIZE 为0x40000000 这是1G的大小。
原来512M 为上面那个参数0x20000000。
针对nandflash 的升级,作了以下修改:
在u-boot 内 include/configs/ok335x.h
#define CONFIG_SYS_NAND_ECCSIZE 2048
将这个参数设置为2048 , 原来的512M的nandflash 为512 , 原因是因为原来的29F4G08ABADA 芯片虽然说一页也是2k 但是,他分了4个子页,所以一次读写可以读写512b。
现在使用的是samsung 的K9K8G08U0E 这个1G的芯片也是一页2k , 但是和原来的芯片不同的是,这个芯片的子页也是2k ,所以他的一次读写是 2k。
所以这个参数为2048。
在kernel 中的修改:
arch/arm/mach-omap2/board-am335xevm.c
在evm_nand_init 函数中,设置 ECC 的校验方式为:
pdata->ecc_opt = OMAP_ECC_BCH4_CODE_HW;
这里面的代码跟踪是
pdata = omap_nand_init(am335x_nand_partitions,
ARRAY_SIZE(am335x_nand_partitions), , ,
//NULL);
&am335x_nand_timings);----
-
-
-
static int __init omap_nand_init(void)
{
pr_info("%s driver initializing\n", DRIVER_NAME); return platform_driver_register(&omap_nand_driver);
} |
|
|
static struct platform_driver omap_nand_driver = {
.probe = omap_nand_probe,
.remove = omap_nand_remove,
#ifdef CONFIG_PM
.suspend = omap_nand_suspend,
.resume = omap_nand_resume,
#endif
.driver = {
.name = DRIVER_NAME,
.owner = THIS_MODULE,
},
}; //omap_nand_probe
static int __devinit omap_nand_probe(struct platform_device *pdev)
{
struct omap_nand_info *info;
struct omap_nand_platform_data *pdata;
int err;
int i, offset;
......
...... /* selsect the ecc type */
if (pdata->ecc_opt == OMAP_ECC_HAMMING_CODE_DEFAULT)
info->nand.ecc.mode = NAND_ECC_SOFT;
else {
if (pdata->ecc_opt == OMAP_ECC_BCH4_CODE_HW) { -------------在这里,设置ECC 校验的模式,还是上面那个子页大小问题。
info->nand.ecc.bytes = *;
info->nand.ecc.size = *;
} else if (pdata->ecc_opt == OMAP_ECC_BCH8_CODE_HW) {
info->nand.ecc.bytes = OMAP_BCH8_ECC_SECT_BYTES;
info->nand.ecc.size = ;
info->nand.ecc.read_page = omap_read_page_bch;
} else {
info->nand.ecc.bytes = ;
info->nand.ecc.size = ;
}
......
...... return ; out_release_mem_region:
release_mem_region(info->phys_base, NAND_IO_SIZE);
out_free_info:
kfree(info); return err;
}
文件系统的设置:
文件系统本省不用作修改,修改的是制作ubi文件系统的那个参数:
//mkubiimg.sh #这里面这个 -F 必须放在最后,具体原因我也没有查清。
./mkfs.ubifs -q -r rootfs_v2 -m -e -c -o ubifs.img -F
echo mkfs.ubifs over!
./ubinize -o ubi.img -m -p 128KiB ubinize.cfg
echo ubinize over! sync cp ubi.img $DST_PATH -rf
echo make file system ok ! //ubinize.cfg
[ubifs]
mode=ubi
image=ubifs.img
vol_id=
vol_size=231MiB
vol_type=dynamic
vol_name=rootfs
vol_flags=autoresize
到此,1G的nandflash 以及1G DRAM初步升级成功。
am335x 1G nand 启动Linux qt的更多相关文章
- I.MX6 Linux Qt 启动流程跟踪
/************************************************************************** * I.MX6 Linux Qt 启动流程跟踪 ...
- 从ramdisk根文件系统启动Linux成功,及使用initramfs启动linux
下面两篇文章是ARM9论坛上的讲解ramdisk文件系统的很不错的文章 今天做了个试验,让Linux2.6.29.4从ramdisk根文件系统启动成功,总结一下. 其中涉及的内容较多,很多东西不再详述 ...
- uboot启动linux的过程
一.概述 linux内核镜像常见到的有两种形式,zImage和uImage.这两种文件的格式稍有差别,所以启动这两种格式的内核镜像也会有所不同.目前,uboot只支持启动uImage类型的镜像,对zI ...
- u-boot之NAND启动与NOR启动的区别
nand启动与nor启动的区别主要分为以下几部分说明: 1.nand flash与nor flash的最主要区别 2.s3c2440的nand启动与nor启动原理 3.nand启动与nor启动的时候u ...
- 最牛技术 1秒启动Linux的窍门
1秒启动Linux可以实现吗?我们知道Linux系统开机并不算快,最少也需要11秒,但是,现在有一个技巧,可以1秒打开linux系统,到底是什么技术这么牛?请看下文详细介绍 尽可能快的启动系统,对于自 ...
- [分享] IMX6嵌入式开发板linux QT挂载U盘及TF卡
本文转自迅为开发板:http://www.topeetboard.com 开发平台:iMX6开发板 linux QT 系统下挂载 u 盘如下图所示,qt 启动之后,在超级终端中使用命令“mknod / ...
- Linux Qt cannot find -lGL错误完美解决方案(亲测有效)
http://c.biancheng.net/view/3901.html 对于很多 Linux 发行版本,Qt 安装完成后如果直接编译或者运行项目,会出现“cannot find -lGL”错误,如 ...
- uboot学习之五-----uboot如何启动Linux内核
uboot和内核到底是什么?uboot实质就是一个复杂的裸机程序:uboot可以被配置也可以做移植: 操作系统内核本身就是一个裸机程序,和我们学的uboot和其他裸机程序没有本质的区别:区别就是我们操 ...
- 用QEMU模拟运行uboot从SD卡启动Linux
平台:Qemu + vexpress-a9 u-boot:u-boot-2019.10 Linux:linux-4.14.13 之前介绍过用Qemu模拟运行uboot,然后从网络启动lin ...
随机推荐
- 对象Clone
//================================================= // File Name : Clone_demo //-------------------- ...
- 如何在命令行模式下查看Python帮助文档---dir、help、__doc__
如何在命令行模式下查看Python帮助文档---dir.help.__doc__ 1.dir函数式可以查看对象的属性,使用方法很简单,举str类型为例,在Python命令窗口输入 dir(str) 即 ...
- MySQL-curses/termcap缺失
环境:通前篇 1.错误:缺少 /curses/temrcap checking for termcap functions library... configure: error: No curses ...
- centos 7.0 编译安装mysql 5.6.22 再次总结 成功编译安装~ 越来越熟练了~
查找php.ini文件所在位置 [root@localhost /]# find -name php.ini ./usr/etc/php/etc/php.ini mysql官网的安装说明http:// ...
- iOS静态库小结--(yoowei)
准备知识: 1.什么是库? 库是程序代码的集合,是共享程序代码的一种方式 2.根据源代码的公开情况,库可以分为2种类型 a.开源库 公开源代码,能看到具体实现 ,比如SDWebImage.AFNetw ...
- PHP数组处理函数的使用array_map(三)
/*函数array_map()函数:多数组回调函数---将回调函数作用到给定数组的单元上 * 1.语法:array array_map ( callback callback, array arr1 ...
- 总结一下安装linux系统经验-版本选择-安装ubuntu
linux版本选择: 初次接触,建议选 Ubuntu 或者 Fedora,这两个发行版都很容易上手,而且两者都有很强大的中文社区,遇到问题比较容易解决,而且都有国内的源,安装或者更新软件时体验相对会好 ...
- cmd /c和cmd /k 解释,附★CMD命令★ 大全
cmd /c和cmd /k http://leaning.javaeye.com/blog/380810 java的Runtime.getRuntime().exec(commandStr)可以调用执 ...
- linux下如何使用sftp命令【转】
linux下如何使用sftp命令 from: http://www.cnblogs.com/chen1987lei/archive/2010/11/26/1888391.html sftp 是一个 ...
- mapreduce 模板
/*** * MapReduce Module * @author nele * */ public class ModuleMapReduce extends Configured implemen ...