[PATCH 4/4] arm: boards: protonic-imx8ml: Add ECC + scrubbing

Ahmad Fatoum a.fatoum at pengutronix.de
Wed Mar 4 03:34:54 PST 2026


Hi,

On 3/4/26 12:23 PM, Steffen Trumtrar wrote:

> +
> +void board_dram_ecc_scrub(void)
> +{
> +	ddrc_inline_ecc_scrub(0x00000000, 0x1bffffff);
> +	ddrc_inline_ecc_scrub(0x20000000, 0x3bffffff);
> +	ddrc_inline_ecc_scrub(0x40000000, 0x5bffffff);
> +	ddrc_inline_ecc_scrub_end(0x0, 0x5fffffff);
> +}

This is incompatible with multi-image support. The entry point will need
to pass this board-specific information along as a parameter, either:

  - as function pointer
  - or as data: could the board just pass along 0x60000000 and have the
    common code split it up into the regions above?

Cheers,
Ahmad

> diff --git a/arch/arm/dts/imx8mp-prt8ml.dts b/arch/arm/dts/imx8mp-prt8ml.dts
> index 15c3e710ae..b23d64f2d1 100644
> --- a/arch/arm/dts/imx8mp-prt8ml.dts
> +++ b/arch/arm/dts/imx8mp-prt8ml.dts
> @@ -20,8 +20,16 @@ environment-emmc {
>  			status = "disabled";
>  		};
>  	};
> -};
>  
> +	/* Minimum contiguous memory region is 1792MiB
> +	 * The probe function of the ddrc will either expand this
> +	 * to 6GiB (without ECC) or 5.25GiB (with inline ECC, in 3 regions).
> +	 */
> +	memory at 40000000 {
> +		device_type = "memory";
> +		reg = <0x0 0x40000000 0x0 0x70000000>;
> +	};
> +};
>  
>  &usdhc2 {
>  	#address-cells = <1>;
> 

-- 
Pengutronix e.K.                  |                             |
Steuerwalder Str. 21              | http://www.pengutronix.de/  |
31137 Hildesheim, Germany         | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686  | Fax:   +49-5121-206917-5555 |




More information about the barebox mailing list