今天打給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月5日 星期三
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 ...要哭了~
可以讀寫 但...找不到可以弄 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 ...要哭了~
標籤:
Boot loader,
SMDK6410
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)
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
2008年10月27日 星期一
[Web] TextMate Theme For Visual Studio
這裡頭的Theme蠻適合長時間programming的工程師
白色背景看久了太傷眼
所以裝好 visual studio 就來裝這套theme囉

可參考這個blog:
http://blog.wekeroad.com/2007/10/17/textmate-theme-for-visual-studio-take-2/
白色背景看久了太傷眼
所以裝好 visual studio 就來裝這套theme囉
可參考這個blog:
http://blog.wekeroad.com/2007/10/17/textmate-theme-for-visual-studio-take-2/
WIN32 API 高階的Copy檔案以及 Delete檔案
這兩個API蠻適合拿來做軟體的備份還有回復的功能
就把資料庫檔案或是設定檔 用COPY的方式備份到另外的地方或改檔名
Delete
BOOL DeleteFile(LPCTSTR lpFileName);
Example:
DeleteFile("c:\\Test.txt");
Copy
BOOL CopyFile(
LPCTSTR lpExistingFileName, // pointer to name of an existing file
LPCTSTR lpNewFileName, // pointer to filename to copy to
BOOL bFailIfExists // flag for operation if file exists
);
Example:
CopyFile("c:\\Test.txt", "d:\\Test.txt", false);
就把資料庫檔案或是設定檔 用COPY的方式備份到另外的地方或改檔名
Delete
BOOL DeleteFile(LPCTSTR lpFileName);
Example:
DeleteFile("c:\\Test.txt");
Copy
BOOL CopyFile(
LPCTSTR lpExistingFileName, // pointer to name of an existing file
LPCTSTR lpNewFileName, // pointer to filename to copy to
BOOL bFailIfExists // flag for operation if file exists
);
Example:
CopyFile("c:\\Test.txt", "d:\\Test.txt", false);
Samsung 的 Stepldr
Samsung SMDK 6410X5D 跟 SMDK2442一樣
用NAND開機時(switch 設定成NAND開機)
Processor 就會將NAND的前4KB COPY到CPU內部的SRAM (稱為Stepping stone, 8KB)
去執行 .. 而這前4KB的區域 就是 Stepldr囉 (Stepping loader)
這塊記憶體做的就是, 簡單的記憶體硬體位置初始化 Memory mapping,
重要的就是要導入 EBoot 作接下來的開機動作 大致上就這樣子
而怎麼把這塊東西寫入到NAND記憶體, 就得靠JTAG介面 將Stepldr.nb0 寫入NAND前4KB囉
JTAG寫入的方式 我們是用Printer port模擬成JTAG 慢慢的寫入NAND第0個page
之後再重開電源 看看UART的訊息會不會吐出來就成功了 (這是Simon學長搞定的, 要學起來)
用NAND開機時(switch 設定成NAND開機)
Processor 就會將NAND的前4KB COPY到CPU內部的SRAM (稱為Stepping stone, 8KB)
去執行 .. 而這前4KB的區域 就是 Stepldr囉 (Stepping loader)
這塊記憶體做的就是, 簡單的記憶體硬體位置初始化 Memory mapping,
重要的就是要導入 EBoot 作接下來的開機動作 大致上就這樣子
而怎麼把這塊東西寫入到NAND記憶體, 就得靠JTAG介面 將Stepldr.nb0 寫入NAND前4KB囉
JTAG寫入的方式 我們是用Printer port模擬成JTAG 慢慢的寫入NAND第0個page
之後再重開電源 看看UART的訊息會不會吐出來就成功了 (這是Simon學長搞定的, 要學起來)
2008年10月23日 星期四
訂閱:
文章 (Atom)