编译工具:gcc-linaro-13.0.0-2022.09-x86_64_arm-linux-gnueabihf
build.sh
export ARCH=arm
#exprot CROSS_COMPILE=/opt/gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-
export CROSS_COMPILE=/opt/gcc-linaro-13.0.0-2022.09-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-
make -j8 $1
修改board/freescale/mx6sabresd/mx6sabresd.c相关配置,对SPL启动有效
static iomux_v3_cfg_t const usdhc2_pads[] = {
IOMUX_PADS(PAD_SD2_CLK__SD2_CLK | MUX_PAD_CTRL(USDHC_PAD_CTRL)),
IOMUX_PADS(PAD_SD2_CMD__SD2_CMD | MUX_PAD_CTRL(USDHC_PAD_CTRL)),
IOMUX_PADS(PAD_SD2_DAT0__SD2_DATA0 | MUX_PAD_CTRL(USDHC_PAD_CTRL)),
IOMUX_PADS(PAD_SD2_DAT1__SD2_DATA1 | MUX_PAD_CTRL(USDHC_PAD_CTRL)),
IOMUX_PADS(PAD_SD2_DAT2__SD2_DATA2 | MUX_PAD_CTRL(USDHC_PAD_CTRL)),
IOMUX_PADS(PAD_SD2_DAT3__SD2_DATA3 | MUX_PAD_CTRL(USDHC_PAD_CTRL)),
// IOMUX_PADS(PAD_NANDF_D4__SD2_DATA7 | MUX_PAD_CTRL(USDHC_PAD_CTRL)),
// IOMUX_PADS(PAD_NANDF_D5__SD2_DATA5 | MUX_PAD_CTRL(USDHC_PAD_CTRL)),
// IOMUX_PADS(PAD_NANDF_D6__SD2_DATA6 | MUX_PAD_CTRL(USDHC_PAD_CTRL)),
// IOMUX_PADS(PAD_NANDF_D7__SD2_DATA7 | MUX_PAD_CTRL(USDHC_PAD_CTRL)),
// IOMUX_PADS(PAD_NANDF_D2__GPIO2_IO02 | MUX_PAD_CTRL(NO_PAD_CTRL)), /* CD */
IOMUX_PADS(PAD_GPIO_4__GPIO1_IO04 | MUX_PAD_CTRL(USDHC_PAD_CTRL)),//CD
};
注意,在修改board/freescale/mx6sabresd/mx6sabresd.c的时候同时修改设备树,对u-boot启动配置有效。
mx6sabresd的设备树包括:
imx6q-sabresd.dts (主文件)
"imx6qdl-sabresd.dtsi"
"imx6q.dtsi"
imx6qdl.dtsi
修改mmc:(tq_eq_imx6q板子没有用到usdhc1,usdhc2(对应sd卡),usdhc3(没有用到),usdhc4对应flash)
i2c1 = &i2c2;
i2c2 = &i2c3;
ipu0 = &ipu1;
//mmc0 = &usdhc1;
//mmc1 = &usdhc2;
//mmc2 = &usdhc3;
//mmc3 = &usdhc4;
mmc0 = &usdhc2; /*SD card*/
mmc1 = &usdhc3; /*none*/
mmc2 = &usdhc4; /*Flash*/
serial0 = &uart1; /*console*/
erial1 = &uart2;
第一天修改UART1
修改board/freescale/mx6sabresd/mx6sabresd.c,
1. uart1引脚对应错误。
2. usdhc3(未使用)占用uart1引脚,DAT6_RX、DAT7_TX
static iomux_v3_cfg_t const uart1_pads[] = {
// IOMUX_PADS(PAD_CSI0_DAT10__UART1_TX_DATA | MUX_PAD_CTRL(UART_PAD_CTRL)),
// IOMUX_PADS(PAD_CSI0_DAT11__UART1_RX_DATA | MUX_PAD_CTRL(UART_PAD_CTRL)),
IOMUX_PADS(PAD_SD3_DAT6__UART1_TX_DATA | MUX_PAD_CTRL(UART_PAD_CTRL)),
IOMUX_PADS(PAD_SD3_DAT7__UART1_RX_DATA | MUX_PAD_CTRL(UART_PAD_CTRL)),
};
static iomux_v3_cfg_t const usdhc3_pads[] = {
IOMUX_PADS(PAD_SD3_CLK__SD3_CLK | MUX_PAD_CTRL(USDHC_PAD_CTRL)),
IOMUX_PADS(PAD_SD3_CMD__SD3_CMD | MUX_PAD_CTRL(USDHC_PAD_CTRL)),
IOMUX_PADS(PAD_SD3_DAT0__SD3_DATA0 | MUX_PAD_CTRL(USDHC_PAD_CTRL)),
IOMUX_PADS(PAD_S