跳到主要内容

Kernel 和设备树

Kernel defconfig

在 yocto 环境下执行

devtool menuconfig linux-mthreads

MTT E300 SoC 相关配置路径:

  1. Platform selection > MTT E300 SoC Family
  2. Device Drivers > SOC (System On Chip) specific Drivers > Moore Threads 64-bit ARM SoCs drivers > Moore Threads MTT E300 SoC & MTT E300 PWM support
  3. 其他驱动配置由相关章节描述;

建立 defconfig 文件

  1. 进入 arch/arm64/configs 目录,输入:

    cp aimodule_defconfig boardx_defconfig
  2. 修改 yocto meta 文件(meta/meta-m1000/recipes-kernel/linux/linux- mthreads_6.6.bbappend)以关联 kernel 和 boardx_defconfig,如图所示:

    E300 025 图示


设备树

以下列出相关设备树文件(设备树源文件格式为 .dts,设备树包含文件格式为 .dtsi

$ls arch/arm64/boot/dts/m1000/
m1000-main.dtsi m1000-aimodule.dts m1000-aimodule.dtsi
m1000-isp.dtsi m1000-videv.dtsi m1000-pmu.dtsi
m1000-smmu.dtsi

步骤 1:建立设备树文件

  1. 进入 arch/arm64/boot/dts/m1000/目录,输入:
    cp m1000-aimodule.dts boardx.dts
    cp m1000-aimodule.dtsi boardx.dtsi
  2. 修改 Makefile 文件增加:
    dtb-$(CONFIG_ARCH_M1000_SOC) += boardx.dtb

步骤 2:配置设备树

MTT E300 的设备树文件分为 .dtsi(设备树包含文件)和 .dts(设备树源文件)两种。.dts 文件中 include.dtsi 文件。其中主要的配置在 m1000-main.dtsi/m1000-aimodule.dts 文件中,管脚相关的配置在 m1000-aimodule.dtsi 等其他文件中。用户自己的设备树文件(如上一节中的 boardx.dts 文件)中应包含这两个文件,如下图所示:

E300 026 图示

一般情况下,用户无需修改 m1000-main.dtsi/m1000-aimodule.dtsi。如果确实需要修改其中的某个配置项,不建议直接修改该文件,而是在 m1000- aimodule.dts 文件中重新定义这个配置项。

步骤 3:编译设备树 dtb

  1. 修改 yocto meta 文件(meta/meta-m1000/conf/machine/aimodule.conf)以关联 kernel 和 boardx.dtb,如图所示:

    E300 027 图示

  2. 执行编译 kernel 命令即可同时生成 boardx.dtb