上次在網路上找檔案時,找到的檔案是 tar.zx 的檔。所以它不能用以前常用的 gzip 或 bzip 來解。上網找了一下,發現現在已經很多檔案改用 zx 格式了。
我找到的文章:tar.xz format
2013年9月28日 星期六
2013年9月23日 星期一
Cavium SDK 2.3 DDR Debug
因為有問題懷疑跟DDR有關,所以想要印些訊息,最後找到在
bootcode/u-boot/arch/mips/cpu/octeon/lib_octeon_shared.c
中的 DDR_DEBUG 可以開啟 debug message。
這是軟體工程師的習慣,先去找 code,直接改 code。實際上人家有提供簡單的方法,經過 FAE 的指點,我去 grep 所有 'getenv("ddr_' 的字串(就是程式中有用 getenv 去抓 ddr 開頭的環境變數的地方),結果找到了:
./arch/mips/cpu/octeon/lib_octeon_shared.c
"ddr_verbose" => 印出初始化的資訊
"ddr_trace_init" => trace init 過程的訊息
"ddr_safe" => 據說是將 DDR 本來一個 clock cycle 讀取兩次,改成一次。
"ddr_narrow"
"ddr_2t"
"ddr_burst8"
"ddr_rodt_ena"
"ddr_use_ecc" => 啟動 ECC 功能,但我不知道這是什麼?
"ddr_cas_latency"
"ddr_sil_mode"
"ddr_prompt"
"ddr_debug" => 印出一些 debug message(跟我直接改 code 的結果一樣)
"ddr_four_lmc"
./arch/mips/lib/board_octeon.c
"ddr_clock_hertz" => 指定 DDR 工作時脈(不是 data rate)。小心!設定差太多,就開不起來了。
"ddr_ref_hertz" => 應該是 reference clock。
./arch/mips/cpu/octeon/lib_octeon_shared.c
"ddr_verbose" => 印出初始化的資訊
"ddr_trace_init" => trace init 過程的訊息
"ddr_safe" => 據說是將 DDR 本來一個 clock cycle 讀取兩次,改成一次。
"ddr_narrow"
"ddr_2t"
"ddr_burst8"
"ddr_rodt_ena"
"ddr_use_ecc" => 啟動 ECC 功能,但我不知道這是什麼?
"ddr_cas_latency"
"ddr_sil_mode"
"ddr_prompt"
"ddr_debug" => 印出一些 debug message(跟我直接改 code 的結果一樣)
"ddr_four_lmc"
./arch/mips/lib/board_octeon.c
"ddr_clock_hertz" => 指定 DDR 工作時脈(不是 data rate)。小心!設定差太多,就開不起來了。
"ddr_ref_hertz" => 應該是 reference clock。
2013年6月26日 星期三
2013年6月20日 星期四
Cavium Octeom u-boot 設定檔
常常在找一些設定值寫在什麼檔裡面,留下來備忘一下:
bootcode environment variables:
bootloader/u-boot/include/configs/octeon_dwc2000.h
bootcode environment variables:
bootloader/u-boot/include/configs/octeon_dwc2000.h
dts設定檔:
bootloader/u-boot/board/octeon/dwc2000/dwc2000.dts
bootcode init:(本來應該不算設定檔,但有同事在這加了 env 變數)
bootloader/u-boot/arch/mips/lib/board_octeon.c
後來發現,實際上所有的 environment variables 都應該 define 在 bootloader/u-boot/include/configs/octeon_dwc2000.h 中,也許有些本來是沒有 define,像是 CONFIG_BOOTCOMMAND(bootcmd)預設是沒有 define 的,要自己加上去。不應該加在 bootloader/u-boot/arch/mips/lib/board_octeon.c 裡面。
後來發現,實際上所有的 environment variables 都應該 define 在 bootloader/u-boot/include/configs/octeon_dwc2000.h 中,也許有些本來是沒有 define,像是 CONFIG_BOOTCOMMAND(bootcmd)預設是沒有 define 的,要自己加上去。不應該加在 bootloader/u-boot/arch/mips/lib/board_octeon.c 裡面。
eMMC pre-code
之前提過 eMMC 這個以前沒摸過的東西,造成了我們的一些困擾。目前讀出 image 這個部份,還是沒辦法解決,所以轉向用其它方式,就 RD 角度來說是可以解決,但公司的生產流程上是不是能夠處理就不知道了。
現在方法有二,一個是純軟體,就是在產測的過程中去把 eMMC 切 partition、format,然後把檔案傳進去。順便測試一下 eMMC 的存取。(至於切 partition 跟 format,可以用產測程式去送指令控制,只是步驟會比較多。不然就是修改一下 fdisk 指令,讓我們帶特定的參數時,它就會直接把 eMMC 切成我們要的狀況)
另一個方法就是,廠商現在有借我們一個 SD 卡的轉接板,eMMC放在上面,就可以插到 NB 內建的 SD 卡插槽,或是讀卡機裡。透過這個方式用 PC 產生一個母片,然後拿母片去對燒。
但是用轉接板時,在 windows XP 下,並沒有辦法對 eMMC 切 partition。所以我目前是用 Linux 來處理。
現在方法有二,一個是純軟體,就是在產測的過程中去把 eMMC 切 partition、format,然後把檔案傳進去。順便測試一下 eMMC 的存取。(至於切 partition 跟 format,可以用產測程式去送指令控制,只是步驟會比較多。不然就是修改一下 fdisk 指令,讓我們帶特定的參數時,它就會直接把 eMMC 切成我們要的狀況)
另一個方法就是,廠商現在有借我們一個 SD 卡的轉接板,eMMC放在上面,就可以插到 NB 內建的 SD 卡插槽,或是讀卡機裡。透過這個方式用 PC 產生一個母片,然後拿母片去對燒。
但是用轉接板時,在 windows XP 下,並沒有辦法對 eMMC 切 partition。所以我目前是用 Linux 來處理。
2013年6月11日 星期二
eMMC
目前手上的案子,使用了 SAMSUMG 的 eMMC,但是 HW 要找一個替代用料,最後找了 Kingston 的,不過 SAMSUNG 的是 eMMC v4.41,Kingston 的是 eMMC v4.5。為了要測試是不是相容,所以就跟廠商要了幾顆,換上去試。但是 eMMC 是用 BGA (Ball Grid Array)封裝的,它沒有金屬的接腳,而是小小的錫球。(可參考WIKI - Ball Grid Array)所以一般來說不是手工焊的,不過我們少量的情況下,就先用手焊的處理。結果他弄了兩片,全部都辦法用,所以就來找我,想要我查查是兩片都沒焊好?還是我們的 Driver 要修改?
2013年6月10日 星期一
Latex 中的 "<"與">"
我們會使用 Latex 來編輯文件,不過也不知道是什麼原因,我在 build 前人留下來的 project 時,卻發生了 "<",">" 無法正常顯示的問題。不過前人也是直接使用這兩個符號,而且產出的文件是正常的。
訂閱:
文章 (Atom)