OK335XS-2 Uboot移植笔记
硬件平台:OK335xS-II Uboot版本:2019.01(TI官网下载SDK6.0) Ubuntu版本:18.04 64位
目标:将TI官方Uboot移植到OK335xS-II上面。
1、拷贝configs/am335x_evm_defconfig,重命名为ok335xs.defconfig,并做如下修改:
A,CONFIG_AM33XX=y下面增加CONFIG_TARGET_OK335XS=y;
B,修改设备树配置为CONFIG_DEFAULT_DEVICE_TREE="ok335xs";
C,将CONFIG_OF_LIST整个删除;
D,将CONFIG_DM_MMC=y注释或删除,如不这样做的话,会在MMC初使化时卡住;
2、对arch/arm/mach-omap2/am33xx/Kconfig做如下修改:
A,将整个config TARGET_AM335X_EVM这一段的内容拷贝粘贴到下一段,将拷贝的config TARGET_AM335X_EVM更改为config TARGET_OK335XS,将bool "Support am335x_evm"更改为bool "Support ok335xs";
B,将select TI_I2C_BOARD_DETECT删除;
C,在arch/arm/mach-omap2/Kconfig文件里面增加source "board/forlinx/ok335xs/Kconfig";
3、将include/configs/am335x_evm.h拷贝并命名为ok335xs.h,并做如下修改:
A,删除I2C读取EEPROM相关定义:
#define CONFIG_ENV_EEPROM_IS_ON_I2C,
#define CONFIG_SYS_I2C_EEPROM_ADDR,
#define CONFIG_SYS_I2C_EEPROM_ADDR_LEN
B,将环境变量设置CONFIG_EXTRA_ENV_SETTINGS后面的findfdt后面的内容修改为"findfdt=setenv fdtfile ok335xs.dtb\0";
4、拷贝arch/arm/dts/am335x-evm.dts重命名为ok335xs.dts,并做如下修改:
A,修改第一个model=后面的内容为model = "Forlinx OK335XS-2";
B,增加包含文件 included am335x-evm-u-boot.dtsi ;
C,在arch/arm/dts/Makefile文件中dtb-$(CONFIG_AM33XX)后面按现有格式增加ok335xs.dtb;
5、在Board目录下新建forlinx目录,然后将board/ti/下面的文件夹am335x复制到forlinx下,并改名为ok335xs;
6、删除README and MAINTAINERS文件,也可以根据需要将里面的信息更新为当前开发板信息;
7、board/forlinx/ok335xs/kconfig做如下更改:
A,将 if TARGET_AM335X_EVM更改为 if TARGET_OK335XS;
B,将config SYS_BOARD下面的 default "am335x" 更改为 default "ok335xs";
C,将config SYS_VENDOR下面的 default "ti" 更改为 default "forlinx";
D,将config SYS_CONFIG_NAME下面的default "am335x_evm" 更改为 default "ok335xs" ;
8、从board/forlinx/ok335xs下的board.c中删除以下内容:
A ,删除 #include "../common/board_detect.h
删除
#ifdef TI_I2C_BOARD_DETECT
与 #endif 之间的内容;
B,官方的文件中还有一些如board_is_**()的函数,这是由于官方的u-boot是适用于多个不同配置的板子,为了避免较多的改动,我们保留这些函数,在使用时会有一些if(board_is_**())这样的判断,肯定都是返回false的,所有ok335xs的代码都放在最后的else那里,判断都不是官方的那些板子后,就运行ok335xs的代码;
C,在void sdram_init(void)中,增加DDR初使化,这里可以使用官方的config_ddr(303, &ioregs_evmsk, &ddr3_data,&ddr3_cmd_ctrl_data, &ddr3_emif_reg_data, 0);
9,修改board/forlinx/ok335xs/mux.c,依据OK335XS的原理图,配置NAND,MMC和网络引脚。
10、最后通过两个命令完成编译,将编译出来的MLO和U-boot.img放入TF卡,把开发板设置从SD卡启动,上电后就能看到uboot打印了。
make ok335xs_defconfig
make CROSS_COMPILE=arm-linux-gnueabihf- ARCH=arm
0 条评论