2.4. IC 配置
M4X 是一 IC 系列, 是不同的引脚数和不同的 ddr 容量的组合,因此在进行 Bringup 的时候要确保配置的正确
2.4.1. 内存配置
目前 SDK 可以自动 turning ddr 的型号并进行初始化,但在 board.dts 中有对应用层容量进行配置的地方需要注意
memory@40000000 {
device_type = "memory";
reg = <0x0 0x40000000 0x0 0x4000000>; //0x4000000 为64M,0x8000000 为128M
};
2.4.2. Pin脚检查
SDK 有自动的 Pin 脚配置检查,可以检查 pin 脚设置是否正确,不同模块是否有 pin 脚配置冲突等
2.4.2.1. 设置Pin数目
IC的 pin 数目在 board.dts 中设置,该设置只是辅助检查,不会产生功能性影响,但原则上应该要解决所有的告警
compatible = "zx,m4";
package = "QFN88";
2.4.2.2. Pin脚配置
如下告警的意思是 sdmc0 的 pinctrl 配置为8线,但 QFN88 只能支持4线 .. code-block:
Pinmux check ...
No conflict in pinmux
Package check ...
QFN88 not support the following modules:
sdmc@10440000 only support 4 lines
定义在 package/boot/uboot-m4/src/arch/riscv/dts/m4-pinctrl.dtsi 中, 解决方案是可以删掉不需要的引脚配置, 也可以重新定义一组引脚
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>;
};
}
2.4.2.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 ...