• 大致介绍一下这个 nand 的基础属性

    pagesize == 4096 byte
oob == 224 byte
block size == 256 Kbyte
  • u-boot configs/xxx.h 里面配置如下参数:

    272 #define CONFIG_SYS_NAND_PAGE_SIZE   4096
273 #define CONFIG_SYS_NAND_OOBSIZE 224
274 #define CONFIG_SYS_NAND_BLOCK_SIZE (256*1024)
275 #define CONFIG_NAND_OMAP_ECCSCHEME OMAP_ECC_BCH16_CODE_HW
276 #define CONFIG_SYS_NAND_BAD_BLOCK_POS NAND_LARGE_BADBLOCK_POS
277 #define CONFIG_SYS_NAND_ECCPOS { 2, 3, 4, 5, 6, 7, 8, 9, \
278 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, \
279 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, \
280 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, \
281 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, \
282 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, \
283 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, \
284 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, \
285 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, \
286 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, \
287 100, 101, 102, 103, 104, 105, 106, 107, 108, \
288 109, 110, 111, 112, 113, 114, 115, 116, 117, \
289 118, 119, 120, 121, 122, 123, 124, 125, 126, \
290 127, 128, 129, 130, 131, 132, 133, 134, 135, \
291 136, 137, 138, 139, 140, 141, 142, 143, 144, \
292 145, 146, 147, 148, 149, 150, 151, 152, 153, \
293 154, 155, 156, 157, 158, 159, 160, 161, 162, \
294 163, 164, 165, 166, 167, 168, 169, 170, 171, \
295 172, 173, 174, 175, 176, 177, 178, 179, 180, \
296 181, 182, 183, 184, 185, 186, 187, 188, 189, \
297 190, 191, 192, 193, 194, 195, 196, 197, 198, \
298 199, 200, 201, 202, 203, 204, 205, 206, 207, \
299 208, 209, \
300 }
301
302 #define CONFIG_SYS_NAND_ECCSIZE 512
303 #define CONFIG_SYS_NAND_ECCBYTES 26 83 "nandroot=ubi0:rootfs rw ubi.mtd=4,4096\0" \
84 "nandrootfstype=ubifs rootwait=1\0" \
85 "nandboot=echo Booting from nand ...; " \
86 "run nandargs; " \
87 "nandecc hw 16; "\
88 "setenv loadaddr 0x82000000; " \
89 "setenv fdtaddr 0x88000000; "\
90 "nandecc hw 16; "\
91 "nand read ${loadaddr} 0x240000 0x480000; "\
92 "nandecc hw 16; "\
93 "nand read ${fdtaddr} 0x6C0000 0x80000; "\
94 "bootz ${loadaddr} - ${fdtaddr} ;\0"
  • 上面的参数配置就是有关 nand 224,4096,256的配置

  • 在烧写的时候,也要 nand hw 16, 在 omap_gpmc.c 里面还要添加

    935         } else if (eccstrength == 8) {
936 err = omap_select_ecc_scheme(nand,
937 OMAP_ECC_BCH8_CODE_HW,
938 mtd->writesize, mtd->oobsize);
939 } else if (eccstrength == 16) {
940 err = omap_select_ecc_scheme(nand,
941 OMAP_ECC_BCH16_CODE_HW,
942 mtd->writesize, mtd->oobsize);
943 printf("hw 16 writesize : %d oobsize :%d\n", mtd->writesize, mtd->oobsize);

u-boot2016.05 有关 4096page size , oob == 224 nand 的移植支持的更多相关文章

  1. Nand: OOB BBT ECC PEB LEB

    OBB: 例如Samsung K9F1208U0B,数据存储容量为64MB,采用块页式存储管理.8个I/O 引脚充当数据.地址.命令的复用端口.芯片内部存储布局及存储操作特点: 一片Nand flas ...

  2. Nand 的几个名词:oob,bbt,ecc

    转:http://blog.csdn.net/lanmanck/article/details/4230904 例如Samsung K9F1208U0B,数据存储容量为64MB,采用块页式存储管理.8 ...

  3. 【转】Bootloader之uBoot简介(转)

    原文网址:http://blog.csdn.net/sadamoo/article/details/8139946 来自http://blog.ednchina.com/hhuwxf/1915416/ ...

  4. Bootloader之uBoot简介

    本文转载自:http://blog.ednchina.com/hhuwxf/1915416/message.aspx 一.Bootloader的引入 从前面的硬件实验可以知道,系统上电之后,需要一段程 ...

  5. Bootloader之uBoot简介(转)

    来自http://blog.ednchina.com/hhuwxf/1915416/message.aspx,感谢作者 一.Bootloader的引入从前面的硬件实验可以知道,系统上电之后,需要一段程 ...

  6. sysadmin_basement

    基本部分 1. 系统硬件 1.1. 主板 获取序列号 $ sudo dmidecode -t system |grep -i Serial Serial Number: CNU9032T3N 获取厂商 ...

  7. AM335x(TQ335x)学习笔记——Nand&&网卡驱动移植

    移植完成声卡驱动之后本想再接再励,移植网卡驱动,但没想到的是TI维护的内核太健壮,移植网卡驱动跟之前移植按键驱动一样简单,Nand驱动也是如此,于是,本人将Nand和网卡放在同一篇文章中介绍.介绍之前 ...

  8. 移植Python3到TQ2440(一)

    平台 硬件:TQ2440  64MB内存 256MB NandFlash bootloader:U-Boot 2015.04 kernel:linux-4.9 Python: Python-3.6.0 ...

  9. AM335x(TQ335x)学习笔记——Nand&&网卡驱动移植

    移植完毕声卡驱动之后本想再接再励,移植网卡驱动,但没想到的是TI维护的内核太健壮,移植网卡驱动跟之前移植按键驱动一样简单,Nand驱动也是如此,于是,本人将Nand和网卡放在同一篇文章中介绍.介绍之前 ...

随机推荐

  1. Debian本地镜像长时间不更新

    一.执行apt-get update 使用一个长期未更新的本地源,得到错误的提示: Release file for ... is expired. Updates for this reposito ...

  2. JavaScript语言精粹--replace()与正则

    今天有人问我repalce(),他那个题目很有意思.我也不会做,于是我就去查,结果发现就是最基础的知识的延伸. 所以啊最基础的知识才是很重要的,千万不能忽略,抓起JS就写代码完全不知到所以然,只知道写 ...

  3. JavaScript监听手机物理返回键的两种解决方法

    JavaScript没有监听物理返回键的API,所以只能使用 popstate 事件监听. 有两个解决办法: 1.返回到指定的页面 pushHistory(); window.addEventList ...

  4. django -- model中只有Field类型的数据才能成为数据库中的列

    一.model的定义: from django.db import models # Create your models here. class Person(models.Model): firs ...

  5. hive splict, explode, lateral view, concat_ws

    hive> create table arrays (x array<string>) > row format delimited fields terminated by ...

  6. Android 版本对于 API

    Android版本 API 代号 官网链接 Android 2.3.3 API 10 Gingerbread 官网 Android 3.0 API 11 Android 3.1 API 12 Andr ...

  7. Android:使用 DownloadManager 进行版本更新

    app 以前的版本更新使用的自己写的代码从服务器下载,结果出现了下载完成以后,提示解析包错误的问题,但是呢,找到该 apk 点击安装是可以安装成功的,估计就是最后几秒安装包没有下载完成然后点击了安装出 ...

  8. Python 父目录获取

    # coding=utf-8import os currentPath = os.getcwd() # 当前目录parent_path = os.path.dirname(currentPath) # ...

  9. 浅析Java中的final关键字--转

    转载自:http://www.importnew.com/18586.html#comment-581628 谈到final关键字,想必很多人都不陌生,在使用匿名内部类的时候可能会经常用到final关 ...

  10. 50x页面放到本地单独目录下,进行显示

    error_page 500 502 503 504 /50x.html; location = /50x.html { root /data0/www/html; }