日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

flash芯片替换SAMSUNG K9K8G08U0E替换K9K8G08U0B

發布時間:2024/1/1 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 flash芯片替换SAMSUNG K9K8G08U0E替换K9K8G08U0B 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

首先拜謝一下這幾位作者

具體解決辦法

http://www.61ic.com/Article/DaVinci/TMS320DM3x/201307/49496.html

遇到類似問題?K9K8G08U0E替換K9K8G08U0B的blog

http://blog.csdn.net/daidi1989/article/details/32335331

如何編寫linux下nand flash驅動(具體講解)

http://www.crifan.com/files/doc/docbook/linux_nand_driver/release/html/linux_nand_driver.html#nand_flash_page


本文主要講述flash的替換SAMSUNG K9K8G08U0E替換K9K8G08U0B中遇到的問題

一、出現的問題

主要是兩點

1.boot能夠燒入,但是kernel,rootfs燒不進去,使用nand read/write 會報-74錯,校驗錯誤

2.使用ubi文件系統,同樣會報錯

UBI error: ubi_io_read: error -74 while reading 64 bytes from PEB 0:0, read 64 bytes


二、解決辦法

下面說一下解決辦法

我的u-boot版本:u-boot-2009.11-rc1

linux kernel版本:2.6.29.6

前面改法作廢。

?

1.????代碼修改

?

u-boot,kernel都需要改,改法相同,如下:

?

/drivers/mtd/nand/nand_base.c???修改函數nand_get_flash_type

?

???????/* Get chip options, preserve non chip based options */

???????chip->options &= ~NAND_CHIPOPTIONS_MSK;

?

???????/*Add by zhangjj 2015-8-6*/

????????chip->options |= NAND_NO_SUBPAGE_WRITE; ??????/*close subpage write mode to compatibale K9K8G08U0B with K9K8G08U0E*/

???????/*add end*/

???????chip->options |= type->options & NAND_CHIPOPTIONS_MSK;

?

2.????修改mkfs.ubifs ?-e參數

?

例如:

mkfs.ubifs -r ./bin -m 2048 -e 129024 -c 300 -o kernel.img

改為:

mkfs.ubifs -r ./bin -m 2048 -e 126976 -c 300 -o kernel.img

?

說明:

1步是將小頁模式關閉,使同時兼容兩種芯片

2步是因為大頁模式下,UBI可擦除邏輯塊大小少了2page2048),(64-2*2KiB=124KiB


?K9K8G08U0D應該是與?K9K8G08U0B差不多,所以改法應該一樣


三、問題解決過程

1.原廠咨詢

? ? ? 1)?新芯片不支持小頁模式寫入,驅動里面的讀寫方式需要修改

(老芯片一個塊為2048,可以分多次寫入,新芯片一個塊為2048+64,只能一次寫入)

? ? ? 2)?Device id不同

2.通過對比datasheet,兩flash的功能塊表和 陣列組織相同,如下



3.繼續對比手冊,如下不同:


4.Program/Erase Characteristics Nop有差異


對比參考上面鏈接

三星原廠就K9K8G08U0D升級為K9K8G08U0E的回信:


?1.?please?check?the?below?timing?first.
K9F1G08U0E?vs?K9F1G08U0D?Timing?difference
  tR tPROG tBERS NOP
K9F1G08U0E Max.?40us Max.?900us Max.?16ms 1
K9F1G08U0D Max.?40us Max.?750us Max.?10ms 4
?
2.?if?timing?is?OK,?please?kindly?know?the?21nm?SLC?NOP=1?,?not?4
????it?means?every?NAND?page?you?can?just??write?one?time,
?????if?you?want?to?write?the?data?in?the?same?page?again,?you?need?to?erase?first
?
3.?please?note?:?
???due?to?21nm?SLC?NOP=1,?it?means?you?can?not?use?"Partial?Program"??for?it
???if?you?use?this?function?in?our?42?nm?SLC?and?want?to?change?to?21nm?SLC
????the?way?to?solve?it?is?modify?host?FTL?algorithm?
?????
?there?is?FTL?(flash?transfer?layer)?between?file-system?and?raw?NAND
?(?FTL?:?flash?transfer?layer?;?such?as?bad?blocks,?page?size?write?/read,?ECC?,?wearleveling.....)
?in?solution?base?such?as?eMMC?or?SSD,?the?inside?controller?handle?FTL
?but?for?Raw?NAND,?it?has?NO?controller?inside?and?needs?host?to?handle?this?algorithm?
?
4.???image-partition?FAT?table?error
?????please?kindly?check?the?physcial?to?logical?table
?????in?logical,?you?can?write?the?data?in?the?same?area
?????but,?in?physical,?when?you?want?to?write?or?update?the?new?data?to?the?same?page
?????you?can?not?write?directly?in?the?same?page?due?to?NOP=1
?????you?need?to?write?to?another?page ?

總共就這幾點差異,1.讀寫的時鐘,2.nop差異導致小頁模式失效(這一點與當初技術支持的溝通相同)

關于時鐘,網上大神修改過,還是不行,基本就定位在第二點

相對于以前版本0D版本來說,時序變寬, NOP由以前的4個變成一個NOP,好像是512的子頁操作取消了: 以前的一個頁面可以分成4個子頁來寫,每個子頁就是512,但是U0E的NOP是1,所以應該說就不支持子頁操作了。 ?

關于子頁操作


后來遇到這篇文章:http://www.61ic.com/Article/DaVinci/TMS320DM3x/201307/49496.html

按照他的步驟以及nand操作過程http://www.cnblogs.com/dyllove98/archive/2013/07/16/3194139.html

修改后已基本跑起來了,中間遇到需要調整ubi的問題,將在《ubi問題匯總》進行總結。

具體步驟參照如下鏈接

http://blog.csdn.net/davion_zhang/article/details/47400419







總結

以上是生活随笔為你收集整理的flash芯片替换SAMSUNG K9K8G08U0E替换K9K8G08U0B的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。