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

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。

2013年6月20日 星期四

Cavium Octeom u-boot 設定檔

常常在找一些設定值寫在什麼檔裡面,留下來備忘一下:

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 裡面。