[PATCH v2 2/2] ARM: imx: Add Support for Webasto ccbv2

Rouven Czerwinski r.czerwinski at pengutronix.de
Fri Oct 9 03:43:26 EDT 2020


On Fri, 2020-10-09 at 09:14 +0200, Sascha Hauer wrote:
> On Wed, Oct 07, 2020 at 03:07:58PM +0200, Rouven Czerwinski wrote:
> > +device_initcall(ccbv2_device_init);
> > +
> > +static int ccbv2_apply_overlay(void)
> > +{
> > +	struct device_node *overlay;
> > +	struct fdt_header *fdt;
> > +	int ret;
> > +
> > +	if(!IS_ENABLED(CONFIG_FIRMWARE_CCBV2_OPTEE)
> > +	   || !of_machine_is_compatible("webasto,imx6ul-ccbv2"))
> > +		return 0;
> > +
> > +	fdt = (void*)OPTEE_OVERLAY_LOCATION;
> > +	overlay = of_unflatten_dtb(fdt);
> > +
> > +	if (IS_ERR(overlay))
> > +		return PTR_ERR(overlay);
> > +
> > +	ret = of_register_overlay(overlay);
> > +	if (ret) {
> > +		printf("cannot apply oftree overlay: %s\n", strerror(-
> > ret));
> > +		goto err;
> > +	}
> > +
> > +	return 0;
> > +err:
> > +	of_delete_node(overlay);
> > +	return ret;
> > +}
> > +device_initcall(ccbv2_apply_overlay);
> 
> No need for two initcalls, please combine into one. Also, you could try
> Oleksijs new way of registering board code as a driver, see 5e1fc532538.

Right, will do.

> > +static void configure_uart(void)
> > +{
> > +	void __iomem *iomuxbase = (void *)MX6_IOMUXC_BASE_ADDR;
> > +
> > +	imx6_ungate_all_peripherals();
> > +
> > +	imx_setup_pad(iomuxbase, MX6_PAD_LCD_DATA16__UART7_DCE_TX);
> > +	imx_setup_pad(iomuxbase, MX6_PAD_LCD_DATA17__UART7_DCE_RX);
> > +
> > +	imx6_uart_setup((void *)MX6_UART7_BASE_ADDR);
> > +
> > +	if (IS_ENABLED(CONFIG_DEBUG_LL))
> > +		putc_ll('>');
> 
> No need to put that in a IS_ENABLED(CONFIG_DEBUG_LL), without it
> putc_ll() is a no-op anyway.

Great, will fix.

> > diff --git a/firmware/Kconfig b/firmware/Kconfig
> > index 97b7b3c2ee..c2ff51b911 100644
> > --- a/firmware/Kconfig
> > +++ b/firmware/Kconfig
> > @@ -16,4 +16,9 @@ config FIRMWARE_IMX8MP_ATF
> >  config FIRMWARE_IMX8MQ_ATF
> >          bool
> >  
> > +config FIRMWARE_CCBV2_OPTEE
> > +	bool
> > +	depends on MACH_WEBASTO_CCBV2 && PBL_OPTEE
> > +	default y
> 
> This makes the firmware mandatory for compiling this board, right? Can
> we make this optional so that we can enable the board in
> imx_v7_defconfig?

The firmware is only mandatory if OP-TEE early loading is enabled,
which AFAIK isn't the case for the defconfig, so we should be fine
there.
I'll add it to the defconfig.

Regards,
Rouven




More information about the barebox mailing list