驱动适配
- LCD驱动修改
- 通过查看官方的原理图对比发现,LCDIO接口都是一样的,只是使用的屏幕大小不一样,我们这里使用的1024x600的7寸屏所以需要适配。
- 打开borad/freescale/mx6ull_emmc_alientek_myself/mx6ull_emmc_alientek_myself.c文件,修改为如下图所示,其中pixclok需要注意,屏幕要求的像素时钟为51.2MHz,所以pixclokd = (1 / 51200000) * 10^12 = 19531
- 保存文件重新编译即可
- 网络驱动修改
- 通过原理图可以发现ENET2_RST接在IMX6ULL的SNVS_TAMPER8上,而PHY芯片使用的是LAN8720,其中PHY的期间地址为0X1,所以修改RST硬件IO口配置,和匹配芯片驱动
- 打开include/configs/mx6ull_emmc_alientek_myself.h修改如下图
- 删除原来PHY74LV595驱动代码,并添加REST硬件定义打开borad/freescale/mx6ull_emmc_alientek_myself/mx6ull_emmc_alientek_myself.c文件修改如下
- 添加复位引脚驱动
- 修改phy驱动文件,在drivers/net/phy/phy.c,
#ifdef CONFIG_PHY_SMSC static int lan8720_flag = 0; int bmcr_reg = 0; if (lan8720_flag == 0) { bmcr_reg = phy_read(phydev, MDIO_DEVAD_NONE, MII_BMCR); phy_write(phydev, MDIO_DEVAD_NONE, MII_BMCR, BMCR_RESET); while(phy_read(phydev, MDIO_DEVAD_NONE, MII_BMCR) & 0X8000) { udelay(100); } phy_write(phydev, MDIO_DEVAD_NONE, MII_BMCR, bmcr_reg); lan8720_flag = 1; } #endif
- 修改完成,重新编译即可,如果下载进入板子还是异常,重新设置环境IP等数据
- 修改名字
- 打开borad/freescale/mx6ull_emmc_alientek_myself/mx6ull_emmc_alientek_myself.c文件把板子的名字修改为自己板子的名字如下图
- 总结
- 确定板子硬件设备和蓝本EVK板子哪些有差异。
- 修改硬件有差异部分,一般就是IO口是否正确或者使用的外设芯片是否正确。
- 最后修改自己的板子名字,至此完成整个u-boot的自己板子移植。