300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 移植u-boot.04到原子哥的alpha开发板(三)

移植u-boot.04到原子哥的alpha开发板(三)

时间:2019-05-10 10:15:23

相关推荐

移植u-boot.04到原子哥的alpha开发板(三)

前面编译了官方开发板定制的uboot,并下载到开发中,能够启动。所以我们就要借鉴这个官方开发板的配置,添加自己的开发板,然后修改开发板的驱动。所谓的借鉴就是复制官方开发板的配置。

一、添加configs文件夹中的默认配置

我们编译的官方开发板的配置是mx6ull_14x14_evk_emmc_defconfig,所以添加自己的配置就是复制一下这个文件,并修改名字,在configs文件中使用命令:

cp mx6ull_14x14_evk_emmc_defconfig mx6ull_alpha_emmc_defconfig

结果如图:

使用geditmx6ull_alpha_emmc_defconfig打开文件,修改文件中的CONFIG_SYS_EXTRA_OPTIONS、CONFIG_DEFAULT_DEVICE_TREE这两个宏,修改为自己开发板的名字,修改CONFIG_TARGET_MX6ULL_14X14_EVK为CONFIG_TARGET_MX6ULL_ALPHA_EMMC,其他的不用修改。修改后如下:

CONFIG_ARM=yCONFIG_ARCH_MX6=yCONFIG_TARGET_MX6ULL_ALPHA_EMMC=yCONFIG_ENV_SIZE=0x2000CONFIG_ENV_OFFSET=0xE0000CONFIG_DM_GPIO=yCONFIG_NR_DRAM_BANKS=1CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/freescale/mx6ull_alpha_emmc/imximage.cfg"CONFIG_BOOTDELAY=3# CONFIG_CONSOLE_MUX is not setCONFIG_SYS_CONSOLE_IS_IN_ENV=yCONFIG_SUPPORT_RAW_INITRD=yCONFIG_BOUNCE_BUFFER=yCONFIG_BOARD_EARLY_INIT_F=yCONFIG_HUSH_PARSER=yCONFIG_CMD_BOOTZ=y# CONFIG_CMD_IMLS is not setCONFIG_CMD_MEMTEST=yCONFIG_CMD_GPIO=yCONFIG_CMD_I2C=yCONFIG_CMD_MMC=yCONFIG_CMD_SF=yCONFIG_CMD_USB=yCONFIG_CMD_DHCP=yCONFIG_CMD_PING=yCONFIG_CMD_BMP=yCONFIG_CMD_CACHE=yCONFIG_CMD_NET=yCONFIG_CMD_EXT2=yCONFIG_CMD_EXT4=yCONFIG_CMD_EXT4_WRITE=yCONFIG_CMD_FAT=yCONFIG_CMD_FS_GENERIC=yCONFIG_OF_CONTROL=yCONFIG_DEFAULT_DEVICE_TREE="imx6ull-alpha-emmc"CONFIG_ENV_IS_IN_MMC=yCONFIG_SYS_RELOC_GD_ENV_ADDR=yCONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=yCONFIG_DM_74X164=yCONFIG_DM_I2C=yCONFIG_DM_MMC=yCONFIG_FSL_USDHC=yCONFIG_MTD=yCONFIG_DM_SPI_FLASH=yCONFIG_SF_DEFAULT_MODE=0CONFIG_SF_DEFAULT_SPEED=40000000CONFIG_SPI_FLASH_STMICRO=yCONFIG_PHYLIB=yCONFIG_PHY_MICREL=yCONFIG_PHY_MICREL_KSZ8XXX=yCONFIG_DM_ETH=yCONFIG_DM_ETH_PHY=yCONFIG_FEC_MXC=yCONFIG_MII=yCONFIG_PINCTRL=yCONFIG_PINCTRL_IMX6=yCONFIG_DM_REGULATOR=yCONFIG_DM_REGULATOR_FIXED=yCONFIG_DM_REGULATOR_GPIO=yCONFIG_SPI=yCONFIG_DM_SPI=yCONFIG_SOFT_SPI=yCONFIG_FSL_QSPI=yCONFIG_USB=yCONFIG_DM_USB=yCONFIG_USB_STORAGE=yCONFIG_USB_HOST_ETHER=yCONFIG_USB_ETHER_ASIX=yCONFIG_DM_VIDEO=yCONFIG_SYS_WHITE_ON_BLACK=yCONFIG_USB_GADGET=yCONFIG_USB_GADGET_DOWNLOAD=yCONFIG_USB_GADGET_MANUFACTURER="FSL"CONFIG_USB_GADGET_VENDOR_NUM=0x0525CONFIG_USB_GADGET_PRODUCT_NUM=0xa4a5CONFIG_CI_UDC=yCONFIG_CMD_FASTBOOT=yCONFIG_USB_FUNCTION_FASTBOOT=yCONFIG_FASTBOOT_UUU_SUPPORT=yCONFIG_FASTBOOT=yCONFIG_FASTBOOT_BUF_ADDR=0x83800000CONFIG_FASTBOOT_BUF_SIZE=0x40000000CONFIG_FASTBOOT_FLASH=yCONFIG_EFI_PARTITION=y

CONFIG_SYS_EXTRA_OPTIONS从新指定了,开发板的信息的路径,但是现在uboot的工程中并没有我们的开发板的文件,所以需要添加,进入board/freescale/这个文件夹,复制mx6ullevk文件夹(mx6ull_14x14_evk_defconfig中指定的是这个文件夹),并修改名字为mx6ull_alpha_emmc。

进入mx6ull_alpha_emmc文件夹,内容如图:

先修改mx6ullevk.c的名字为mx6ull_alpha_emmc.c

修改Makefile如下:

obj-y := mx6ull_alpha_emmc.o

修改imximage.cfg的第34行如下

PLUGIN board/freescale/mx6ull_alpha_emmc/plugin.bin 0x00907000

修改imximage_lpddr2.cfg的第35行如下

PLUGIN board/freescale/mx6ull_alpha_emmc/plugin.bin 0x00907000

修改Kconfig如下:

if TARGET_MX6ULL_ALPHA_EMMCconfig SYS_BOARDdefault "mx6ull_alpha_emmc"config SYS_VENDORdefault "freescale"config SYS_CONFIG_NAMEdefault "mx6ull_alpha_emmc"config SYS_TEXT_BASEdefault 0x87800000endif

修改MAINTAINERS如下

1 MX6ULL_ALPHA_EMMC BOARD2 M: Peng Fan <peng.fan@>3 S: Maintained4 F: board/freescale/mx6ull_alpha_emmc/5 F: include/configs/mx6ull_alpha_emmc.h6 F: configs/mx6ull_14x14_evk_defconfig7 F: configs/mx6ull_14x14_evk_plugin_defconfig8 F: configs/mx6ulz_14x14_evk_defconfig

mx6ull_alpha_emmc_defconfig文件中CONFIG_DEFAULT_DEVICE_TREE配置是设备树。所以我们还需要去arch/arm/dts中,复制imx6ull14x14-evk-emmc.dts,修改名字为imx6ull-alpha-emmc.dts(名字是CONFIG_DEFAULT_DEVICE_TREE)

cp imx6ull-14x14-evk-emmc.dts imx6ull-alpha-emmc.dts

并修改arch/arm/dts/Makefile文件,添加编译imx6ull-alpha_emmc.dtb,修改后如下

711 dtb-$(CONFIG_MX6ULL) += \712imx6ull-14x14-ddr3-val.dtb \713imx6ull-14x14-ddr3-val-epdc.dtb \714imx6ull-14x14-ddr3-val-emmc.dtb \715imx6ull-14x14-ddr3-val-gpmi-weim.dtb \716imx6ull-14x14-ddr3-val-tsc.dtb \717imx6ull-14x14-evk.dtb \718imx6ull-14x14-evk-emmc.dtb \719imx6ull-alpha-emmc.dtb \720imx6ull-14x14-evk-gpmi-weim.dtb \721imx6ull-9x9-evk.dtb \722imx6ull-colibri.dtb \723imx6ull-phytec-segin-ff-rdk-emmc.dtb \724imx6ull-dart-6ul.dtb \725imx6ull-somlabs-visionsom.dtb \726imx6ulz-14x14-evk.dtb \727imx6ulz-14x14-evk-emmc.dtb \728imx6ulz-14x14-evk-gpmi-weim.dtb729

从board/freescale/mx6ull_alpha_emmc/MAINTAINERS文件中的第5行可知,我们还需要include/configs中的有文件。所以进入include/configs中,复制mx6ullevk.h,修改名字为mx6ull_alpha_emmc.h

cp mx6ullevk.h mx6ull_alpha_emmc.h

看起来准备工作差不多了,现在要使CPU支持我们的开发板就把我们的板子添加进去了。

进入arch/arm/mach-imx/mx6文件夹,修改Kconfig,添加一下内容

config TARGET_MX6ULL_ALPHA_EMMCbool "Support mx6ull_alpha_emmc"select BOARD_LATE_INITselect DMselect DM_THERMALselect MX6ULLimply CMD_DM

source "board/freescale/mx6ull_alpha_emmc/Kconfig"

接下来就编译一下试一试:

make distcleanmake mx6ull_alpha_emmc_defconfigmake

编译顺利通过,复制到TF卡,启动开发板试一试。

和使用官方的配置结果是一样的,当然一样,应为我们只是添加了自己的板子,是从官方复制过来的,没有做任何修改。接下来就是该修改修改,适配我们自己的板子了。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。