顯示具有 SMDK6410 標籤的文章。 顯示所有文章
顯示具有 SMDK6410 標籤的文章。 顯示所有文章

2008年11月11日 星期二

工作紀錄:

11/11 今天將fat32 function porting 到 EBOOT下, sdmmc 的控制以及傳輸目前是空的
download function 大致上是8成了, 只差 bin格式的decoder還沒寫而已

11/12 Todo: .bin decoder 寫完

花了一天trace DownloadImage function

11/10 花了一天trace整個原本的EBOOT download流程以及使用EVM來看下載流程中的log檔

當EVM開機後, 用 Samsung 6410附的 Dnw.exe, connect to uart, 跳出一個download選單, 這時候先下載EBOOT.nb0, 讓mainmenu可以出現 這時候選 6 (NAND writable) 然後用他內附的 usb driver 去下載 flash.bin (by UBoot, means usb boot).

而看程式碼的過程中, main function 會先讓blcommon呼叫一些OEM該要implement的function (OEM_開頭的), 過程簡單來說 這pc端下載軟體會先將 flash.bin 下載到SDRAM中, 然後在EBOOT中
解開 bin 格式的(hdr: B00FF\x0A) 然後在一段一段(record) 寫到 nand中(by block)

DownloadImage@blcommon.c 就是在解開bin格式檔案 一段一段寫到SDRAM中
OEM_Launch@main.c 就是將這些解開來的raw檔案 一個一個 block寫到NAND上

簡化來說就這樣子

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年10月27日 星期一

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學長搞定的, 要學起來)

2008年10月23日 星期四

SMDK 6410X5D

最近的新平台 Samsung 6410 POP 的產品
CPU跟MCP疊在一起 先看電路圖和Spec再來好好研究要怎麼讓他開機

得來好好請教學長學這塊了~