• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

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

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

      NAND FLASH壞塊處理機制

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

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

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

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

      正常的塊寫入讀出都是正常的,而壞塊的讀寫是無法保證的。在Linux系統(tǒng)中,對于NAND FLASH有壞塊管理(BBM,Bad Block Managment)機制,通過一個對應的壞塊表(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)存技術設備)架構和Uboot中的NAND FLASH驅(qū)動,在加載完驅(qū)動后,都會主動掃描壞塊,建立必要的BBT,以備后面壞塊管理所使用。下面是DM800 se機器在系統(tǒng)啟動過程中,通過超級終端獲取的一段進程信息,可以看出執(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機器(包括S R 4機器)N A N D F L A S H芯片型號為HY27U518S2CTR(2011年前期采用HY27US08121B)(U703),如圖1所示。這是韓國Hynix(海力士)公司的NAND FLASH芯片,采用64M×8bit結(jié)構,容量為64MB,用于存儲接收機的系統(tǒng)軟件。

      HY27U518S2CTR芯片劃分為三個分區(qū):第1分區(qū)(partition 1)為引導裝載程序(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機器的固件(IMG),就知道IMG是由第二引導系統(tǒng)(secondstage,main.bin.gz)、啟動(boot.jffs2)、根系統(tǒng)(root.jffs2)三個部分組成,圖2所示的是《山水評測室》制作的DM800se G3-iCVS8#84B打造版固件的內(nèi)部包,對應于上述的三個分區(qū)。

      DM800 se NAND FLASH芯片壞塊檢測

      對于DM800 se機器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芯片進行檢查。

      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ū),即通常所說的用戶可設定地址區(qū),用來存儲數(shù)據(jù);512~527共16 bytes為擴展存儲區(qū),用來存儲頁的信息。擴展區(qū)的16字節(jié)用于描述主存儲區(qū)的512字節(jié)。而對于壞塊,也僅僅是將這16字節(jié)的第6字節(jié)設置為不等于0xff,來標示壞塊。

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

      執(zhí)行mtd1檢查,如圖7所示??梢钥闯龇峙淞?6個塊給第二引導系統(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所示。可以看出分配了240個塊給啟動系統(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所示??梢钥闯龇峙淞?840個塊給根系統(tǒng)(root),分配容量為3840×16=61440(kB),即60MB,具體固件使用容量不再分析了。

      5. 壞塊檢查

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

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

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

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

      1. 由于分區(qū)壞塊導致無法刷機

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

      當采用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?。?/p>

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

      2. 刷機方法

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

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

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

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

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

      DM800 se NAND FLASH芯片更換

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

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

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

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

      猜你喜歡
      占用率固件扇區(qū)
      分階段調(diào)整增加扇區(qū)通行能力策略
      南北橋(2022年2期)2022-05-31 04:28:07
      降低CE設備子接口占用率的研究與應用
      魅力中國(2019年6期)2019-07-21 07:12:10
      U盤故障排除經(jīng)驗談
      基于貝葉斯估計的短時空域扇區(qū)交通流量預測
      基于固件的遠程身份認證
      重建分區(qū)表與FAT32_DBR研究與實現(xiàn)
      基于排隊論的區(qū)域路內(nèi)停車最優(yōu)泊位占用率研究
      提取ROM固件中的APP
      電腦愛好者(2015年7期)2015-04-09 08:54:02
      一種通過USB接口的可靠固件升級技術
      奧林巴斯XZ—2新固件升級
      中國攝影(2014年1期)2014-02-24 01:50:23
      舒城县| 若羌县| 湖北省| 蒲江县| 鲁山县| 浠水县| 惠来县| 萨嘎县| 海南省| 鄂托克前旗| 宁河县| 同心县| 萍乡市| 南靖县| 新田县| 台北市| 金华市| 宁乡县| 德惠市| 天门市| 元朗区| 青州市| 福建省| 蛟河市| 宣汉县| 镇康县| 鸡泽县| 宁波市| 花莲县| 南开区| 乌拉特中旗| 文昌市| 商都县| 桑植县| 衡水市| 东安县| 宣汉县| 西安市| 泽库县| 泰宁县| 常州市|