[Buildroot] [PATCH 3/3] add support for iMX8MQ-evk board

Baruch Siach baruch at tkos.co.il
Sun Feb 18 14:47:09 UTC 2018


Hi Erik,

On Sun, Feb 18, 2018 at 02:28:31PM +0100, Erik Larsson wrote:
> +gen_imx8_boot()
> +{
> +	objcopy -I binary -O binary --pad-to 0x8000 --gap-fill=0x0 ${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_1d_imem.bin ${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_1d_imem_pad.bin
> +	objcopy -I binary -O binary --pad-to 0x4000 --gap-fill=0x0 ${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_1d_dmem.bin ${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_1d_dmem_pad.bin
> +	objcopy -I binary -O binary --pad-to 0x8000 --gap-fill=0x0 ${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_2d_imem.bin ${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_2d_imem_pad.bin
> +	cat ${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_1d_imem_pad.bin ${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_1d_dmem_pad.bin > ${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_1d_fw.bin
> +	cat ${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_2d_imem_pad.bin ${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_2d_dmem.bin > ${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_2d_fw.bin
> +	cat ${BINARIES_DIR}/u-boot-spl.bin ${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_1d_fw.bin ${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_2d_fw.bin > ${BINARIES_DIR}/u-boot-spl-ddr.bin
> +	rm -f ${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_1d_fw.bin ${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_2d_fw.bin ${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_1d_imem_pad.bin ${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_1d_dmem_pad.bin ${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_2d_imem_pad.bin
> +
> +	BL31=${BINARIES_DIR}/imx-boot/bl31.bin BL33=${BINARIES_DIR}/u-boot.bin mkimage_fit_atf.sh ${BINARIES_DIR}/fsl-imx8mq-evk.dtb > ${BINARIES_DIR}/imx-boot/u-boot.its
> +	pushd ${BINARIES_DIR}
> +	mkimage -E -p 0x3000 -f ${BINARIES_DIR}/imx-boot/u-boot.its ${BINARIES_DIR}/u-boot.itb
> +	popd
> +        rm -f ${BINARIES_DIR}/imx-boot/u-boot.its
> +
> +	mkimage_imx8 -fit -loader ${BINARIES_DIR}/u-boot-spl-ddr.bin 0x7E1000 -second_loader ${BINARIES_DIR}/u-boot.itb 0x40200000 0x60000 -out ${BINARIES_DIR}/imx-boot-imx8mqevk-sd.bin
> +}

Instead of reproducing the convoluted way of generating the i.MX8 boot image, 
can't you just copy the files into the iMX8M/ subdirectory of imx-mkimage, and 
run there 'make SOC=iMX8M flash_spl_uboot'?

[...]

> diff --git a/package/freescale-imx/Config.in b/package/freescale-imx/Config.in
> index 2535caa..adda403 100644
> --- a/package/freescale-imx/Config.in
> +++ b/package/freescale-imx/Config.in
> @@ -1,6 +1,6 @@
>  menuconfig BR2_PACKAGE_FREESCALE_IMX
>  	bool "Freescale i.MX libraries"
> -	depends on BR2_arm
> +	depends on BR2_arm || BR2_aarch64
>  	help
>  	  Those packages provide hardware acceleration for GPU or VPU,
>  	  hardware optimization or some hardware tools for Freescale
> @@ -40,6 +40,8 @@ config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6UL
>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7
>  	bool "imx7d/imx7ulp"
>  
> +config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M
> +	bool "imx8m"
>  endchoice
>  
>  config BR2_PACKAGE_FREESCALE_IMX_PLATFORM
> diff --git a/package/freescale-imx/firmware-imx/Config.in b/package/freescale-imx/firmware-imx/Config.in
> index fca280a..56d5b80 100644
> --- a/package/freescale-imx/firmware-imx/Config.in
> +++ b/package/freescale-imx/firmware-imx/Config.in
> @@ -1,6 +1,6 @@
>  config BR2_PACKAGE_FIRMWARE_IMX
>  	bool "firmware-imx"
> -	depends on BR2_arm # Only relevant for i.MX
> +	depends on BR2_arm || BR2_aarch64 # Only relevant for i.MX
>  	help
>  	  Firmware blobs for the Freescale i.MX SoCs.
>  
> diff --git a/package/freescale-imx/firmware-imx/firmware-imx.mk b/package/freescale-imx/firmware-imx/firmware-imx.mk
> index 630afca..040a088 100644
> --- a/package/freescale-imx/firmware-imx/firmware-imx.mk
> +++ b/package/freescale-imx/firmware-imx/firmware-imx.mk
> @@ -18,6 +18,13 @@ define FIRMWARE_IMX_EXTRACT_CMDS
>  	$(call FREESCALE_IMX_EXTRACT_HELPER,$(DL_DIR)/$(FIRMWARE_IMX_SOURCE))
>  endef
>  
> +ifeq ($(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M),y)
> +define FIRMWARE_IMX_INSTALL_TARGET_CMDS
> +	mkdir -p $(BINARIES_DIR)/imx-boot
> +	cp $(@D)/firmware/ddr/synopsys/lpddr4_pmu_train_*.bin $(BINARIES_DIR)/imx-boot
> +	cp $(@D)/firmware/hdmi/cadence/signed_hdmi_imx8m.bin $(BINARIES_DIR)/imx-boot
> +endef
> +else
>  define FIRMWARE_IMX_INSTALL_TARGET_CMDS
>  	mkdir -p $(TARGET_DIR)/lib/firmware/imx
>  	for blobdir in $(FIRMWARE_IMX_BLOBS); do \
> @@ -27,5 +34,6 @@ define FIRMWARE_IMX_INSTALL_TARGET_CMDS
>  	mv $(TARGET_DIR)/lib/firmware/imx/epdc/epdc_ED060XH2C1.fw.nonrestricted \
>  		$(TARGET_DIR)/lib/firmware/imx/epdc/epdc_ED060XH2C1.fw
>  endef
> +endif

These changes should be in a separate patch to firmware-imx.

baruch

-- 
     http://baruch.siach.name/blog/                  ~. .~   Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
   - baruch at tkos.co.il - tel: +972.2.679.5364, http://www.tkos.co.il -



More information about the buildroot mailing list