用户需要根据自己的底板适配自己的dt.img文件。Hboot2根据Atlas 200I A2 加速模块的adc_board_id和底板的adc_board_id在dt.img中选择匹配的DTB加载,当无匹配的DTB时会加载默认DTB文件。本节讲述了默认支持最小集启动的DTB文件的步骤。
制作default dts和制作adc_board_id的LSADC[7:6]设置为实际底板的值的dts。
su - root
cd /opt
tar -xzvf Ascend310B-source.tar.gz
cd Ascend310B-source/dtb/dts/hi1910b/hi1910BL/
/ { compatible = "hisilicon,hi1910B-evb", "hisilicon,ascend610"; hisi,boardid = <0x0 0x0 0x0 0x0>; #address-cells = <0x2>; #size-cells = <0x2>; interrupt-parent = <0x1>; model = "Hisilicon PhosphorHi1910B evb"; /include/ "base/hi1910B-asic-kernel-rc.dtsi" /include/ "base/hi1910B-commmon-smmu.dtsi" /include/ "base/hi1910B-mpam.dtsi" /include/ "base/hi1910B-lp-pm.dtsi" /include/ "base/hi1910B-lp-devmng.dtsi" /include/ "base/hi1910B-mbigen-ao.dtsi" /include/ "base/hi1910B-gpio.dtsi" /include/ "base/hi1910B-i2c.dtsi" /include/ "base/hi1910B-spi.dtsi" // /include/ "base/hi1910B-bindcore.dtsi" // /include/ "base/hi1910B-can.dtsi" /include/ "base/hi1910B-emmc.dtsi" /include/ "base/hi1910B-ipcdrv.dtsi" /include/ "base/hi1910B-ts-drv.dtsi" /include/ "base/hi1910B-tsdrv.dtsi" /include/ "base/hi1910B-network-M100-B51.dtsi" /include/ "base/hi1910B-hidvpp.dtsi" /include/ "base/hi1910B-hdmi.dtsi" /include/ "base/hi1910B-audio.dtsi" /include/ "base/hi1910B-mipitx.dtsi" /include/ "base/hi1910B-vdp.dtsi" /include/ "base/hi1910B-isp.dtsi" /include/ "base/hi1910B-hilink.dtsi" /include/ "base/hi1910B-mntn-milanr3.dtsi" /include/ "base/hi1910B-gpu.dtsi" /include/ "base/hi1910B-ctl.dtsi" /include/ "base/hi1910B-itrustee.dtsi" /include/ "base/hi1910B-sata.dtsi" // /include/ "product/hi1910B-pcie-rc-M100-B51.dtsi" /include/ "product/hi1910B-pinctrl-M100-B51.dtsi" /include/ "product/hi1910B-hiusbc-B51.dtsi" /include/ "product/hi1910B-usb-B51.dtsi" poweroff { compatible = "hisi,power_off"; reg = <0x0 0xc4060000 0x0 0x10000>; pinctrl-names = "default", "idle"; pinctrl-0 = <&poweroff_pmx_func>; pinctrl-1 = <&poweroff_pmx_idle>; };
cd base
sdhci1: sdhci1@82010000 { // sd compatible = "hisilicon,sdhci_sd"; reg = <0x0 0x82010000 0x0 0x10000>; interrupt-parent = <&mbigen_sd>; interrupts = <917 4>; bus-width = <4>; host_id = <0>; no-sdio; no-mmc; max-frequency =<200000000>; clock-frequency = <1200000000>; non-removable; // cd-gpio = <&gpio3 8 0>; // cd-inverted; wp-inverted; /*sd卡需要配置这个 否则会被设置为只读*/ timing_0_cfg = <4000000 0x6 0x6 0x0 0x0 4000000 0 0x23 0x0 0x44 0x42 0x1 0x1 0x2 0x8>; timing_1_cfg = <200000000 0x7 0x6 0xf 0x0 200000000 1 0x23 0x1 0x44 0x44 0x2 0x0 0x0 0x20>; timing_2_cfg = <1200000000 0x7 0x6 0x5 0x0 200000000 1 0x23 0x1 0x44 0x44 0x2 0x0 0x0 0x20>;: timing_3_cfg = <1200000000 0x7 0x6 0x5 0x0 200000000 1 0x23 0x1 0x44 0x44 0x2 0x0 0x0 0x20>; timing_4_cfg = <1200000000 0x7 0x6 0x5 0x0 200000000 1 0x23 0x1 0x44 0x44 0x2 0x0 0x0 0x20>; timing_5_cfg = <1200000000 0x6 0x6 0x5 0x1 200000000 0 0x25 0x4 0x48 0x42 0x4 0x0 0x0 0x20>;
cd /opt/Ascend310B-source/dtb/dts/hi1910b/hi1910BL/
/ { compatible = "hisilicon,hi1910B-evb", "hisilicon,ascend610"; hisi,boardid = <0x0 0x0 0x0 0x0>; #address-cells = <0x2>; #size-cells = <0x2>; interrupt-parent = <0x1>; model = "Hisilicon PhosphorHi1910B evb"; /include/ "base/hi1910B-asic-kernel-rc.dtsi" /include/ "base/hi1910B-commmon-smmu.dtsi" /include/ "base/hi1910B-mpam.dtsi" /include/ "base/hi1910B-lp-pm.dtsi" /include/ "base/hi1910B-lp-devmng.dtsi" /include/ "base/hi1910B-mbigen-ao.dtsi" /include/ "base/hi1910B-gpio.dtsi" /include/ "base/hi1910B-i2c.dtsi" /include/ "base/hi1910B-spi.dtsi" // /include/ "base/hi1910B-bindcore.dtsi" // /include/ "base/hi1910B-can.dtsi" // /include/ "base/hi1910B-emmc.dtsi" /include/ "base/hi1910B-emmc-default.dtsi" /include/ "base/hi1910B-ipcdrv.dtsi" /include/ "base/hi1910B-ts-drv.dtsi" /include/ "base/hi1910B-tsdrv.dtsi" /include/ "base/hi1910B-network-M100-B51.dtsi" /include/ "base/hi1910B-hidvpp.dtsi" /include/ "base/hi1910B-hdmi.dtsi" /include/ "base/hi1910B-audio.dtsi" /include/ "base/hi1910B-mipitx.dtsi" /include/ "base/hi1910B-vdp.dtsi" /include/ "base/hi1910B-isp.dtsi" /include/ "base/hi1910B-hilink.dtsi" /include/ "base/hi1910B-mntn-milanr3.dtsi" /include/ "base/hi1910B-gpu.dtsi" /include/ "base/hi1910B-ctl.dtsi" /include/ "base/hi1910B-itrustee.dtsi" /include/ "base/hi1910B-sata.dtsi" ///include/ "product/hi1910B-pcie-rc-M100-B51.dtsi" /include/ "product/hi1910B-pinctrl-M100-B51.dtsi" /include/ "product/hi1910B-hiusbc-B51.dtsi" /include/ "product/hi1910B-usb-B51.dtsi"
系统正常启动后,用户可根据需求自行修改适配产品boardid的dts文件。
以boardid是33150为例,添加适配产品boardid的dts文件。
/ { compatible = "hisilicon,hi1910B-evb", "hisilicon,ascend610"; hisi,boardid = <0x0 0x3 0x3 0x1 0x5 0x0>; #address-cells = <0x2>; #size-cells = <0x2>; interrupt-parent = <0x1>; model = "Hisilicon PhosphorHi1910B evb"; /include/ "base/hi1910B-asic-kernel-rc.dtsi" /include/ "base/hi1910B-commmon-smmu.dtsi" /include/ "base/hi1910B-mpam.dtsi" /include/ "base/hi1910B-lp-pm.dtsi" /include/ "base/hi1910B-lp-devmng.dtsi" /include/ "base/hi1910B-mbigen-ao.dtsi" /include/ "base/hi1910B-gpio.dtsi" /include/ "base/hi1910B-i2c.dtsi" /include/ "base/hi1910B-spi.dtsi" // /include/ "base/hi1910B-bindcore.dtsi" // /include/ "base/hi1910B-can.dtsi" // /include/ "base/hi1910B-emmc.dtsi" /include/ "base/hi1910B-emmc-default.dtsi" /include/ "base/hi1910B-ipcdrv.dtsi" /include/ "base/hi1910B-ts-drv.dtsi" /include/ "base/hi1910B-tsdrv.dtsi" /include/ "base/hi1910B-network-M100-B51.dtsi" /include/ "base/hi1910B-hidvpp.dtsi" /include/ "base/hi1910B-hdmi.dtsi" /include/ "base/hi1910B-audio.dtsi" /include/ "base/hi1910B-mipitx.dtsi" /include/ "base/hi1910B-vdp.dtsi" /include/ "base/hi1910B-isp.dtsi" /include/ "base/hi1910B-hilink.dtsi" /include/ "base/hi1910B-mntn-milanr3.dtsi" /include/ "base/hi1910B-gpu.dtsi" /include/ "base/hi1910B-ctl.dtsi" /include/ "base/hi1910B-itrustee.dtsi" /include/ "base/hi1910B-sata.dtsi" // /include/ "product/hi1910B-pcie-rc-M100-B51.dtsi" /include/ "product/hi1910B-pinctrl-M100-B51.dtsi" /include/ "product/hi1910B-hiusbc-B51.dtsi" /include/ "product/hi1910B-usb-B51.dtsi" poweroff { compatible = "hisi,power_off"; reg = <0x0 0xc4060000 0x0 0x10000>; pinctrl-names = "default", "idle"; pinctrl-0 = <&poweroff_pmx_func>; pinctrl-1 = <&poweroff_pmx_idle>; };
cd /opt/Ascend310B-source/dtb/dtbtool/
vim CMakeLists.txt
set(DTS_BASE_DIR ${TOP_DIR}/tools/customize/dts) if(PRODUCT STREQUAL "ascend310Besl" OR PRODUCT STREQUAL "ascend310B" OR PRODUCT STREQUAL "ascend310Bemu" OR PRODUCT STREQUAL "ascend310Brc" OR PRODUCT STREQUAL "ascend310Brcesl" OR PRODUCT STREQUAL "ascend310Brcemu") # 当前driver跟esl用相同的dts,后期需要更新到单独的目录 set(DTS_SRC_DIR ${DTS_BASE_DIR}/hi1910b/hi1910BL) set(DTS_FILE_LIST hi1910B-default.dts hi1910B-evb-900.dts hi1910B-evb-901.dts hi1910B-evb-902.dts hi1910B-evb-903.dts hi1910B-evb-905.dts hi1910B-asic-M150-B50.dts hi1910B-asic-M100-B51.dts hi1910B-asic-M150-B51.dts hi1910B-asic-M151-B50.dts hi1910B-asic-M101-B51.dts hi1910B-asic-M150-B33.dts) set(OUT_DT_IMAGE dt.img) elseif(PRODUCT STREQUAL "helper310p") set(DTS_SRC_DIR ${DTS_BASE_DIR}/helper) set(DTS_FILE_LIST helper-evb-925-1p.dts helper-evb-949-1p.dts helper-asic-450-1p.dts helper-asic-455-1p.dts helper-asic-475-2p.dts helper-evb-900-2p.dts)
默认dts要添加在第一个编译的位置,在加粗字体段落末尾添加对应产品的dts。
:wq!
cd /opt/Ascend310B-source
出现如下回显,且生成“dt.img”文件表示编译内核dtb文件成功。
generate /opt/Ascend310B-source/output/dt.img success! sign /opt/Ascend310B-source/output/dt.img success!
编译后的dt.img文件会自动存放于“Ascend310B-source/output”目录下。
把编译生成dt.img文件重构入驱动run包,具体请参见重构驱动run包。