2008年11月7日 星期五

BootPart library of WINCE

Bootpart 這套在wince public底下的full source code library
功能是能夠利用底下 FMD driver 來做 partition 的規畫 將FMD physical的nand block讀寫
轉換成 logical 的 partition 讀寫對應.
看來我們要先看熟這套了 因為之後的 partition 規畫會用這套library來做

重要的 function 如下

BP_Init
BP_OpenPartition
BP_ReadData
BP_SetDataPointer
BP_WriteData

這應該是我們會用到的..function 詳細用法請見 MSDN吧


2008年11月5日 星期三

SLC NAND在EBoot下不用作wear leavling

今天打給Samsung代理商以及Samsung FAE
我們用的NAND是SLC type的 相對於 MLC type 壽命長多了
也因為SLC (Single level Cell) 一個cell 表示 0或1 一種電位而
MLC (Multi level Cell) 一個 cell 表示 00, 01, 10,11 四種電位
所以當常常在使用的時候會因為電位偏移造成MLC儲存的電位不對而造成寫入的資料錯誤
所以 MLC比SLC更需要做Wear leveling 技術的保護機制
但 MLC雖然壽命沒SLC長 但也大概能R/W一萬次以上, 且容量可以做得更大
SLC缺點就是 讀取速度沒那麼快 以及容量沒辦法做那麼大 大概就這樣吧

而目前project用的是 SLC type的 所以在EBoot download image的部分 我們就"暫時"先不做
block-protection 的機制(要做其實也可以 只要把block/sector使用的次數記錄在 sectorInfo的欄位裡頭就行囉) 只是為了趕schedule所以先"暫時"不弄囉

接下來要先看懂 MS public裡頭的 bootpart這個library來對NAND作 partition的方法了
加油

2008年11月4日 星期二

Pure NAND的Wear leavling

這幾天研究 Samsung MCP上的NAND
可以讀寫 但...找不到可以弄 wear leavling 的library
在EBoot下link "Fallite.lib" 這個輕巧的 Flash Abstract Layer 來針對 NAND block重複寫入會造成block損壞的技術 .. 但, 在AKU public下的code ...天呀
出現這一句 // write is not currently supported
重點就是 sector的 write, 他竟然沒實做 看來要自己弄了...

而在 OS mode的 FMD driver 跟 fal.lib 會合成 nandflash.dll 供OS調用
可惜的是.. fal.lib 沒 source code...

唉 看來只剩下兩個解法
1. 請 Samsung 提供一下library (實作於 EBoot)
2. 自己補足 writeSector function at fallite.lib ...要哭了~

2008年11月3日 星期一

目前分配工作及未來blog更新事項

目前新案子開始 分配到的工作如下: 
1. NAND controller 
2. 燒寫images 到 NAND, parition (steldr/EBoot/OS/OEM/others... 等分區)
3. MicroSD 要在EBoot 能Access/Read/Write
4. SD/SDIO under EBoot and OS driver
5. 開機動畫 (read from Nand parition and Show on LCD)

紀錄一下

未來會把之前做過的寫上來
1. FAT32 under EBoot
2. NDIS: Wifi Driver
3. Booting Animation under EBoot
4. Encrypt/Decrypt ROM image