Ⅰ arm linux dts鎬庝箞閰嶇疆ddr3
FDT鏄疉RM Linux鏈鏂扮殑璁懼囬┍鍔ㄧ▼搴忎俊鎮琛錛屼嬌鐢‵DT鐨勫唴鏍革紝灝變笉鐢ㄥ儚榪囧幓鐨勫唴鏍擱偅鏍鳳紝涓涓鏉垮瓙鍔犱竴涓猰ach鐨凜鏂囦歡錛屾墍鏈夌殑璁懼囦俊鎮鍙浠ヨ板綍鍦ㄤ竴涓鏍戠姸淇℃伅鏂囦歡閲岄潰銆 鐩鍓嶈繖鏂歸潰璧勬枡姣旇緝灝戱紝鎴戜互AM335x澶勭悊鍣ㄤ負渚嬫傛嫭涓涓婩DT鐨勪嬌鐢錛 FDT浠呬粎鏄涓涓淇℃伅鐨勭洰褰曞拰鍙傛暟琛錛岃佷嬌鐢ㄦ煇涓鍔熻兘鍐呮牳涓榪樺繀欏繪湁鐩稿簲鐨勯┍鍔ㄧ▼搴忎唬鐮 FDT鐨勬簮鏂囦歡浣嶇疆鍦錛歛rch/arm/boot/dts錛屼緥濡傦紝TI鐨凚eagle bone black錛屾簮鏂囦歡鏄痑rch/arm/boot/dts/am335x_boneblack.dts FDT鍦╩ake ARCH=arm鐨勬椂鍊欏氨浼氳嚜鍔ㄧ敓鎴愶紝涔熷彲鐢╩ake ARCH=arm dtbs鏉ョ敓鎴愶紝渚嬪俆I鐨凚eagle bone black鐢熸垚鐨勬枃浠舵槸arch/arm/boot/dts/am335x_boneblack.dtb錛岃繖鏄涓涓浜岃繘鍒舵枃浠 瑕佹兂鏂板炰綘鑷瀹氫箟鐨凢DT錛岃蜂慨鏀筧rch/arm/boot/dts/Makefile錛屽苟鍦ㄧ浉搴旂殑Kconfig涓澧炲姞config閫夐」錛屼緥濡
Ⅱ uboot怎麼查找ddr的配置文件
如果因為uboot或者內核有錯誤而導致啟動失敗,出現卡死狀態等,那麼需要判斷問題是出在uboot階段還是linux階段,這可以通過觀察啟動過程中的debug信息來判斷,
如果uboot出現問題是比較麻煩的,因為這需要有一個裝有正確的uboot/bootloader的flash晶元作為引導,
將系統重新引導至uboot界面中,之後再重新燒寫uboot到系統本身的flash中,進而燒寫內核(如有必要)。
一,重新燒寫uboot
首先需要一個特定的PCLL(flash晶元),這個PCLL上固化了一個正確的bootloader, 通過這個bootloader可以成功進入bootloader界面, 在此條件下重新燒寫uboot/bootloader。
使用此PLCC的步驟是:
在系統下電情況下, 使用跳線/撥碼開關等將此系統的啟動方式變從外部flash(即PLCC)引導,
之後將系統上電, 這時會從PLCC 啟動。
啟動成功後,進入uboot界面, 即命令行顯示Dream 5220# #(類似命令行提示符)
此時將版卡的啟動方式變為 從 nor flash 啟動。 之後重新燒寫uboot到此nor flash 上。
再用 kermit 來操作。
Kermit是一個串口服務工具,類似與minicom ,功能比minicom 多。
//kermit/usb0.cfg 是kermit 的配置文件, 在其中可以配置 /dev/ttyUSB0 等路徑
kermit -y kermit/usb0.cfg
-y kermit/usb0.cfg 指定配置文件。
該文件內容如下:
/*
set line /dev/ttyUSB0
set speed 115200
set carrier-watch off
set hardshake none
set flow-control none
robust
set file type bin
set file name lit
set rec pack 1000
set send pack 1000
set window 5
*/
將此文件保存在主目錄下, 命名為:kermit/usb0.cfg(可自定義)
執行後進入kermit 界面, 按 c
進入 串口界面(就是設備的界面)
切換回kermit 界面快捷鍵:Ctrl + \ , 之後再按 c 。
執行:
Dream 5220# # detect
顯示:
Checking for NOR flash...
Flash detect 33554432Mb
這說明flash狀態良好。
//讓串口進入接受狀態。
Dream 5220# # loadb
進入kermit 界面: ctrl + \ 按 c
執行:
send uboot.bin
就是將當前目錄下的uboot.bin 文件發送給串口。
完成後,進入串口界面。
執行:
Dream 5220# # upgrade 0x20000000 0x1dc00000 +0xe0000
0x20000000 是 kermit 執行 send 後 將文件send 到的默認地址。
再將文件寫到nor flash 的首地址:0x1dc00000 +0xe0000為寫的長度。
執行:reset。讓系統重啟。
/*
至此,新的uboot燒寫完成,reset後, 如果還是不成功的話,那麼問題肯定出在linux的的啟動階段或者新的uboot還是有問題,這可以通過啟動過程中的debug信息看出來
一,如果內核有問題,導致linux沒有進入shell界面,要重新進入Uboot環境,就是在reset 之後,一直按 ctrl + c ,這樣在uboot啟動完成後, 不會進入kernel的啟動階段,而是停留在uboot的命令行中,
在這個uboot 環境下,燒寫新內核, 配置ipaddr,serverip等,同最開始的例子中操作是一樣的。
//本機uboot 的ip地址
setenv ipaddr 10.10.167.10
//伺服器ip地址
setenv serverip 10.10.167.249
//下載linux內核vmlinux52
// 在伺服器的tftpboot目錄下存在相應文件,搭建到tftp服務環境
tftpboot 0 vmlinux52
// 燒寫到flash 上。
// 0x20000000 是vmlinux52的存貯位置。
// 0x1dd00000 是系統內核的起始位置(每個設備位置不同),
// +0x600000是文件長度
upgrade 0x20000000 0x1dd00000 +0x600000
在reset 之前,一般還要設置一下環境變數。
比如
setenv linux_args mtdparts=octeon_nor0:1m(BOOT),7m(LINUX),21m(CONFIG),3m(MD)
setenv bootcmd 'bootoctlinux 0x1dd00000 coremask=0x3 mem=700'
//保存
saveenv
bootoctliux
二 ,如果新燒寫的uboot本身有問題,那麼修改uboot代碼,編譯通過後, 使用PLCC重復上述燒寫過程。
Ⅲ linux下如何查卡cpu的頻率
在linux查看cpu信息步驟如下:
1、linux的cpu信息可以從文件中cpuinfo讀取。
執行命令: # cat /proc/cpuinfo
這樣就能查到CPU的相關信息了。
參考資料來源:網路-linux