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 


OK335xs-uboot打印.jpg


0 条评论

目前没有人发表评论

发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。
验证码