Edit online

IC 配置

14 Nov 2024
Read time: 3 minute(s)
D21x 是一个 IC 系列, 是不同的引脚数和不同的 ddr 容量的组合,因此在进行 Bringup 的时候要确保配置的正确。
  1. 内存配置
    型号区分
    • D21XXB:64M ddr2,譬如 D211BB

    • D21XXC:128M ddr3, 譬如 D211BC, D213EC

    注: 目前 SDK 可以自动 turning ddr 的型号并进行初始化,但在 board.dts 中有对应用层容量进行配置的地方需要注意
    memory@40000000 {
        device_type = "memory";
        reg = <0x0 0x40000000 0x0 0x4000000>;  //0x4000000 为 64M,0x8000000 为 128M
    };
  2. 检查 pin 脚。SDK 有自动的 Pin 脚配置检查,可以检查 pin 脚设置是否正确,不同模块是否有 pin 脚配置冲突等。
    1. 设置 pin 数目
      IC 的 pin 数目在 board.dts 中设置,该设置只是辅助检查,不会产生功能性影响,但原则上应该要解决所有的告警
      compatible = "artinchip,d211";
      package = "QFN88";
    2. 配置 pin 脚
      如下告警的意思是 sdmc0 的 pinctrl 配置为 8 线,但 QFN88 只能支持 4 线
      Pinmux check ...
          No conflict in pinmux
        Package check ...
          QFN88 not support the following modules:
                  sdmc@10440000 only support 4 lines
      定义在 target/common/d211-pinctrl.dtsi 中, 解决方案是可以删掉不需要的引脚配置, 也可以仿照 demo88_nand/board.dtsgmac0_local_pins 的方式重新定义一组引脚。
      sdmc0_pins: sdmc0-0 {
          pins {
              pinmux = <AIC_PINMUX('B', 0, 2)>,
                   <AIC_PINMUX('B', 1, 2)>,
                   <AIC_PINMUX('B', 2, 2)>,
                   <AIC_PINMUX('B', 3, 2)>,
                   <AIC_PINMUX('B', 4, 2)>,
                   <AIC_PINMUX('B', 5, 2)>,
                   <AIC_PINMUX('B', 6, 2)>,
                   <AIC_PINMUX('B', 7, 2)>,
                   <AIC_PINMUX('B', 8, 2)>,
                   <AIC_PINMUX('B', 9, 2)>,
                   <AIC_PINMUX('B', 10, 2)>,
                   <AIC_PINMUX('B', 11, 2)>;
                   bias-pull-up;
                   drive-strength = <3>;
          };
      }
  3. 解决 pin 脚冲突,如有。
    如果同一引脚在不同的功能块中被使用,则会告警有冲突,解决方案是按原理图重新厘定功能
    Pinmux check ...
        phy-reset-gpios pinmux conflicts with /soc/dvp@18830000
            The conflicting pin: PE6
        ethernet@10280000 pinmux conflicts with /soc/dvp@18830000
            The conflicting pin: PE0
        ethernet@10280000 pinmux conflicts with /soc/dvp@18830000
            The conflicting pin: PE1
        ethernet@10280000 pinmux conflicts with /soc/dvp@18830000
            The conflicting pin: PE2
        ethernet@10280000 pinmux conflicts with /soc/dvp@18830000
            The conflicting pin: PE3
        ethernet@10280000 pinmux conflicts with /soc/dvp@18830000
            The conflicting pin: PE4
        ethernet@10280000 pinmux conflicts with /soc/dvp@18830000
            The conflicting pin: PE5
        ethernet@10280000 pinmux conflicts with /soc/dvp@18830000
            The conflicting pin: PE7
        ethernet@10280000 pinmux conflicts with /soc/dvp@18830000
            The conflicting pin: PE8
        ethernet@10280000 pinmux conflicts with /soc/dvp@18830000
            The conflicting pin: PE9
        ethernet@10280000 pinmux conflicts with /soc/dvp@18830000
            The conflicting pin: PE10
        Package check ...