国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

圖解DM800 se機(jī)器NAND FLASH芯片壞塊檢測和處理方法

2014-04-29 15:57:19
衛(wèi)星電視與寬帶多媒體 2014年2期
關(guān)鍵詞:占用率固件扇區(qū)

NAND FLASH壞塊處理機(jī)制

大家都知道,機(jī)械硬盤會產(chǎn)生壞道,F(xiàn)LASH芯片也會這樣,一般我們稱此為“壞塊(Bad Block)”。在NAND FLASH中,一個塊中含有1個或多個位是壞的,就稱其為壞塊。

產(chǎn)生壞塊的原因有兩種:

(1)出廠時就有的壞塊,稱作Factory masked bad block(廠屏蔽壞塊)或Initial bad/invalid block(初始壞/無效塊),NAND FLASH器件中的壞塊是隨機(jī)分布的。以前做過消除壞塊的努力,但發(fā)現(xiàn)成品率太低,代價太高,成本不劃算。

(2)使用過程中產(chǎn)生的壞塊,稱作Worn-out bad block(破舊的壞塊)。由于使用過程時間長了,在擦除塊時出錯,說明此塊壞了,在程序運(yùn)行過程中發(fā)現(xiàn),并且標(biāo)記成壞塊。

正常的塊寫入讀出都是正常的,而壞塊的讀寫是無法保證的。在Linux系統(tǒng)中,對于NAND FLASH有壞塊管理(BBM,Bad Block Managment)機(jī)制,通過一個對應(yīng)的壞塊表(BBT,Bad Block Table)來記錄好塊,壞塊的信息,以及壞塊是出廠就有的,還是后來使用產(chǎn)生的。

在L i n u x內(nèi)核M T D(M e m o r y Technology Device,內(nèi)存技術(shù)設(shè)備)架構(gòu)和Uboot中的NAND FLASH驅(qū)動,在加載完驅(qū)動后,都會主動掃描壞塊,建立必要的BBT,以備后面壞塊管理所使用。下面是DM800 se機(jī)器在系統(tǒng)啟動過程中,通過超級終端獲取的一段進(jìn)程信息,可以看出執(zhí)行BBT和ECC管理。

[4294669.853000] BrcmNAND mfg ad 76 Hynix HY27US08121A (dream) 64MB

[4294669.854000]

[4294669.854000] Found NAND: A C C = 1 7 f f 1 0 1 0 , c f g = 0 4 0 4 2 3 0 0 , flashId=ad76ad76, tim16

[4294669.855000] BrcmNAND version= 0x0302 64MB @00000000

[ 4 2 9 4 6 6 9 . 8 5 6 0 0 0 ] B 4 : N a n d S e l e c t = 4 0 0 0 0 0 0 2 , nandConfig=04042300, chipSelect=-1

[4294669.856000] brcmnand_probe: CS-1: dev_id=ad76ad76

[ 4 2 9 4 6 6 9 . 8 5 7 0 0 0 ] A f t e r : N a n d S e l e c t = 4 0 0 0 0 0 0 2 , nandConfig=04042300

[4294669.858000] Found NAND chip on Chip Select -1, chipSize=64MB, usable size=x

[4294669.859000] brcmnand_scan: B4 nand_select = 40000002

[4294669.859000] brcmnand_scan: After nand_select = 40000002

[4294669.860000] page_shift=9, bbt_ erase_shift=14, chip_shift=26, phys_erase_ sh4

[4294669.861000] Brcm NAND controller version = 3.2 NAND flash size 64MB @1c0000

[4294669.862000] mtd->oobsize=16, mtd->eccOobSize=16

[4294669.862000] brcmnand_scan: mtd->oobsize=16

[4294669.863000] brcmnand_scan: oobavail=12, eccsize=512, writesize=512

[4294669.864000] brcmnand_scan, eccsize=512, writesize=512, eccsteps=1, eccleve3

[4294669.865000] brcmnand_default_ bbt: bbt_td = bbt_main_descr

[4294669.867000] brcmnandCET: Status -> Deferred

DM800 se NAND FLASH芯片分區(qū)

D M 8 0 0 s e機(jī)器(包括S R 4機(jī)器)N A N D F L A S H芯片型號為HY27U518S2CTR(2011年前期采用HY27US08121B)(U703),如圖1所示。這是韓國Hynix(海力士)公司的NAND FLASH芯片,采用64M×8bit結(jié)構(gòu),容量為64MB,用于存儲接收機(jī)的系統(tǒng)軟件。

HY27U518S2CTR芯片劃分為三個分區(qū):第1分區(qū)(partition 1)為引導(dǎo)裝載程序(loader)、第2分區(qū)(partition 2)為內(nèi)核啟動系統(tǒng)(boot)、第3分區(qū)(partition 3)為根文件系統(tǒng)(root),分配容量分別為:0.25MB、3.75MB、60MB。FLASH分區(qū)地址信息可以在系統(tǒng)啟動過程中通過超級終端獲?。?/p>

[4294669.867000] numchips=1, size=4000000

[4294669.868000] Creating 4 MTD partitions on "bcm7xxx-nand.0":

[4294669.869000] 0x0000000000000000-0x0000000004000000 :"complete"

[4294669.873000] 0x0000000000000000-0x0000000000040000 :"loader" ……………………………………partition 1

[4294669.874000] 0x0000000000040000-0 x 0 0 0 0 0 0 0 0 0 0 4 0 0 0 0 0 : " b o o t p a r t i t i o n "……………………………………partition 2

[4294669.875000] 0x0000000000400000-0 x 0 0 0 0 0 0 0 0 0 4 0 0 0 0 0 0 : " r o o t p a r t i t i o n "……………………………………partition 3

如果制作過DM800 se機(jī)器的固件(IMG),就知道IMG是由第二引導(dǎo)系統(tǒng)(secondstage,main.bin.gz)、啟動(boot.jffs2)、根系統(tǒng)(root.jffs2)三個部分組成,圖2所示的是《山水評測室》制作的DM800se G3-iCVS8#84B打造版固件的內(nèi)部包,對應(yīng)于上述的三個分區(qū)。

DM800 se NAND FLASH芯片壞塊檢測

對于DM800 se機(jī)器NAND FLASH芯片壞塊檢查,可以安裝FLASH芯片檢查插件檢查出壞塊、空塊、填充塊等數(shù)量(圖3)。在FLASH芯片檢查插件主界面,提供了mtd0整片、mtd1(secondstage loader)、mtd2(boot)、mtd3(root)四項檢查內(nèi)容(圖4)。

檢查前,首先了解各個字符代碼的注釋:每一個壞塊用一個“B”表示,每一個空塊用一個“.”表示,每一個部分使用塊用一個“-”表示,每一個全部使用塊用一個“=”表示,具體如圖5所示。

下面,我們對采用DM800 se G3-iCVS8#84B打造版IMG的NAND FLASH芯片進(jìn)行檢查。

1. mtd0整片檢查

執(zhí)行mtd0檢查整片,如圖6所示。

從圖中可以看出:

(1)一個典型的NAND FLASH都是由4096塊(Block)組成,HY27U518S2CTR芯片每塊大小是16384bytes(即16kB),容量合計:16384×4096=67108864(bytes),也就是67108864÷1024÷1024=64(MB)

《山水評測室》提示:

空閑區(qū)域并非真的“空閑”,它在物理上與其它頁并沒有區(qū)別。ECC、耗損均衡(Wear Leveling)、其它軟件開銷等很多額外的功能要依托于這部分空間來實現(xiàn)。換一句話說:對于一個頁,0~511 bytes為主存儲區(qū),即通常所說的用戶可設(shè)定地址區(qū),用來存儲數(shù)據(jù);512~527共16 bytes為擴(kuò)展存儲區(qū),用來存儲頁的信息。擴(kuò)展區(qū)的16字節(jié)用于描述主存儲區(qū)的512字節(jié)。而對于壞塊,也僅僅是將這16字節(jié)的第6字節(jié)設(shè)置為不等于0xff,來標(biāo)示壞塊。

2. mtd1引導(dǎo)系統(tǒng)檢查

執(zhí)行mtd1檢查,如圖7所示??梢钥闯龇峙淞?6個塊給第二引導(dǎo)系統(tǒng)(secondstage),分配容量為16×16=256(kB),即0.25MB,其中未使用5個塊,已全部使用11個塊,容量為16×11=176(kB),和制作的main. bin.gz(即secondstage84b.bin)容量176456÷024=175.25(kB)完全符合。

3. mtd2啟動系統(tǒng)檢查

執(zhí)行mtd2檢查,如圖8所示??梢钥闯龇峙淞?40個塊給啟動系統(tǒng)(boot),分配容量容量為240×16=3840kB,即3.75MB,其中已全部使用145個塊,已部分使用1個塊,容量為16×145.5=2328(kB),和制作的boot.jffs2容量2382988÷024=2327.1(kB)完全符合。

4. mtd3根系統(tǒng)檢查

執(zhí)行mtd3檢查,如圖9所示。可以看出分配了3840個塊給根系統(tǒng)(root),分配容量為3840×16=61440(kB),即60MB,具體固件使用容量不再分析了。

5. 壞塊檢查

我們收到一個用戶的故障DM800 se機(jī)器,反映不能安裝某些插件,運(yùn)行不穩(wěn)定。我們刷寫同樣的56MB容量的DM800 se G3-iCVS8#84B打造版固件,經(jīng)過DCC-E2的【Memory Info】選項檢查,故障機(jī)(圖10a)的和《山水評測室》全新的打造版機(jī)器(圖10b)的ROOT占用率分別為92%、89%。

具體檢查對比如圖11~圖16所示,其中(a)圖為故障機(jī)界面,(b)圖為正常機(jī)界面,可見故障機(jī)有很多壞塊,而和全新打造版沒有一個壞塊(注:FLASH芯片末尾壞塊是無需作統(tǒng)計的)。

圖中的第257塊到第4096塊分配給根系統(tǒng)(root),經(jīng)統(tǒng)計,故障機(jī)一共顯示8+31+10+44+14=107壞塊,占用容量為107×16÷1024=1.7(MB),壞塊占用率為1.7÷60=2.8%,因此故障機(jī)FLASH的root占用率=89%(固件空間占用率)+2.8%(壞塊空間占用率),即顯示已占用92%。

分區(qū)壞塊導(dǎo)致DM800 se無法刷機(jī)的解決方法

1. 由于分區(qū)壞塊導(dǎo)致無法刷機(jī)

當(dāng)采用Web網(wǎng)頁RJ-45網(wǎng)口刷寫時,出現(xiàn)如圖17所示的“too much data (or bad sectors) in ……”提示,表示分區(qū)3(partition 3)有壞扇區(qū)。

當(dāng)采用DreamUp軟件USB虛擬串口在刷寫時,如果DreamUp軟件【Log】日志區(qū)域里顯示類似如下提示:

Log: +++ 006 verify failed, at 0003c000: e0. Block will be marked as bad.

Flashing failed (?。?! 005 too much data(or bad sectors) in partition 1 (end: 00040000, pos: 00040000)), box will be unusable now!!

其意是:FLASH芯片分區(qū)1(partition 1)有太多的壞扇區(qū),無法刷寫。這些都是由于NAND FLASH芯片壞塊引起的,因為壞了的塊是無法擦除和寫人數(shù)據(jù)的。

2. 刷機(jī)方法

對于NAND FLASH芯片壞塊引起的刷機(jī),如果還是想采用Web網(wǎng)頁進(jìn)行刷寫,我們可以先進(jìn)入機(jī)器的BIOS進(jìn)行設(shè)置一下。

在其中的Misc(雜項)設(shè)置界面中,顯示DM800 se機(jī)器的一些雜項設(shè)置,如圖18所示。

其中的【Flash Sector Recovery】(閃存扇區(qū)恢復(fù))選項,默認(rèn)為禁用狀態(tài),當(dāng)遇到因壞扇區(qū)而無法刷寫軟件時,可以啟用該選項來解決。有時機(jī)器無法啟動,也可以啟用該選項試一試。

如果采用DreamUp軟件刷機(jī),在刷寫前,先點(diǎn)擊DreamUp軟件菜單欄的【Extras】(附加)功能,勾選“recover bad sectors”(恢復(fù)壞扇區(qū))功能,如圖19所示,再重新刷寫一次就可解決。

所謂“恢復(fù)壞扇區(qū)”,實際上就是使用相同的地址可以屏蔽掉壞了的塊,而指針指向好塊,也就是地址重映射,跳過壞塊。

DM800 se NAND FLASH芯片更換

對于Dreambox高清機(jī)來講,NAND FLASH芯片產(chǎn)生壞塊的原因有多種,主要有以下一些因素:① NAND FLASH芯片質(zhì)量差,壽命短,一些機(jī)器甚至采用二手的舊芯;②不正確的機(jī)器操作,如不正確的開關(guān)機(jī),頻繁地刷寫有問題的固件,導(dǎo)致NAND FLASH芯片一些扇區(qū)或塊的過分磨損、出現(xiàn)壞塊;③芯片自然老化、接近生命周期規(guī)定的讀寫次數(shù)。

對于NAND FLASH芯片出現(xiàn)少量的壞塊,用戶不必?fù)?dān)心,因為DM800機(jī)器驅(qū)動在讀寫NAND FLASH芯片時,通常檢測壞塊,同時還在NAND驅(qū)動中加入壞塊管理的功能,使得機(jī)器完全能夠正常工作。

不過NAND FLASH芯片過多的壞塊,除了由此引發(fā)的數(shù)據(jù)丟失而工作不正常外,還會導(dǎo)致剩余容量減小,機(jī)器不能正常安裝一些稍大容量的插件。一般機(jī)器運(yùn)行時,ROOT占用率不能超過93%,即FLASH芯片剩余容量不低于4MB,否則,機(jī)器運(yùn)行可能不穩(wěn)定,易死機(jī)。對于FLASH芯片剩余容量,可以在【藍(lán)色面板】下進(jìn)入山水插件服務(wù)器,從下載頁面左上角查看,如圖20所示。

壞塊過多的NAND FLASH芯片建議更換,找到機(jī)器主板的NAND FLASH芯片(U703),用熱風(fēng)槍將它拆下(圖21),更換一片全新的、帶有DM800 se機(jī)器底層驅(qū)動的NAND FLASH芯片,更換完成后,需要重新刷寫IMG。

猜你喜歡
占用率固件扇區(qū)
分階段調(diào)整增加扇區(qū)通行能力策略
南北橋(2022年2期)2022-05-31 04:28:07
降低CE設(shè)備子接口占用率的研究與應(yīng)用
魅力中國(2019年6期)2019-07-21 07:12:10
U盤故障排除經(jīng)驗談
基于貝葉斯估計的短時空域扇區(qū)交通流量預(yù)測
基于固件的遠(yuǎn)程身份認(rèn)證
重建分區(qū)表與FAT32_DBR研究與實現(xiàn)
基于排隊論的區(qū)域路內(nèi)停車最優(yōu)泊位占用率研究
提取ROM固件中的APP
電腦愛好者(2015年7期)2015-04-09 08:54:02
一種通過USB接口的可靠固件升級技術(shù)
奧林巴斯XZ—2新固件升級
中國攝影(2014年1期)2014-02-24 01:50:23
宁城县| 岳阳县| 呼图壁县| 乌兰浩特市| 都匀市| 岱山县| 通道| 德格县| 财经| 太湖县| 吐鲁番市| 阳春市| 安康市| 江华| 皮山县| 喀喇沁旗| 蚌埠市| 宁城县| 河间市| 巴林右旗| 太原市| 新和县| 东兴市| 确山县| 太仆寺旗| 如皋市| 麻栗坡县| 山东省| 上饶市| 东港市| 射洪县| 庐江县| 三河市| 奉节县| 乌拉特前旗| 汉中市| 调兵山市| 沈丘县| 昌乐县| 宁晋县| 乳山市|