ipq4019 識別板卡型號的過程

openwrt系統啓動後,會在/tmp/sysinfo/生成兩個文件。其中保存了板卡型號的信息。如下日誌。
[root@Abloomy:sysinfo]# pwd
/tmp/sysinfo
[root@Abloomy:sysinfo]# ls
board_name model
[root@Abloomy:sysinfo]# # cat board_name
ap-dk01.1-c1
[root@Abloomy:sysinfo]# cat model
Qualcomm Technologies, Inc. IPQ40xx/AP-DK01.1-C1

在一些配置的腳本中,讀取板卡類型信息,對不同的板卡做出不同的配置,如配置LED和network等。
在實際開發中,我們會在一個基本板卡上如(ap-dk01.1-c1)做出多個產品,每個產品的硬件配置略有一些區別。
此時就需要自定義我們自己的板卡型號。和相應的配置腳本。

1.生成/tmp/sysinfo/board_name的過程

mxs類型在編譯時,在rootfs/lib/mxs.sh文件。
在ipq類型,則在rootfs/lib中有是ipq806x.sh

在ipq806x.sh爲例, 先是在ipq806x_board_detect函數中 machine=$(cat /proc/device-tree/model)
從 /proc/device-tree/model讀取model信息,然後由此信息再生成board_name,
最後輸出到/tmp/sysinfo/board_name
例:
cat /proc/device-tree/model
Qualcomm Technologies, Inc. IPQ40xx/AP-DK01.1-C1

ipq806x_board_detect函數由/lib/preinit/03_preinit_do_ipq806x.sh中被調用。
2.按板卡型號來配置network
在/etc/uci-default/network的腳本中,則從/tmp/sysinfo/board_name中讀出boar_name,而後再配置。
3.編譯時如何選擇model或是設備樹呢?
board_name的選擇是由/proc/device-tree/model來決定的。
則dev-tree/model信息則是由dts機制來決定的。
其中在ipq系統中,在編譯時會把多個dev tree編譯到bin中,由uboot根據machid來做出選擇。

dev tree地址信息.以上的信息是由Uboot傳給kernel的參數

4.uboot如何選擇 devtree呢?


uboot在查找的過程。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章