[U-Boot] [PATCH 1/2] spl: dm: Add SPL_DM_SEQ_ALIAS config option

Marek Vasut marex at denx.de
Fri Dec 11 16:07:56 CET 2015


On Friday, December 11, 2015 at 03:48:09 PM, Nathan Rossi wrote:
> The Device Model sequence alias feature is required by some Uclasses.
> Instead of disabling the feature for all SPL targets allow it to be
> configured.
> 
> The config option is disabled by default to reduce code size for targets
> that are not interested or do not require this feature.
> 
> Signed-off-by: Nathan Rossi <nathan at nathanrossi.com>
> Cc: Simon Glass <sjg at chromium.org>
> Cc: Masahiro Yamada <yamada.masahiro at socionext.com>
> Cc: Linus Walleij <linus.walleij at linaro.org>
> Cc: Marek Vasut <marex at denx.de>
> Cc: Michal Simek <michal.simek at xilinx.com>
> ---
> Based on a small amount of inspection for the Zynq platform, enabling
> this config option adds ~1KB of code size.
> 
> Also on a side note, this might affect the socfpga target as it forcibly
> overrides the #undef from config_uncmd_spl.h in its common header. I
> have Cc'd the respective maintainer for this reason.

The fix for SoCFPGA is easy -- enable the SPL_DM_SEQ_ALIAS in configs/socfpga*.
It is needed for booting from QSPI NOR.

> ---
>  drivers/core/Kconfig       | 9 +++++++++
>  drivers/core/device.c      | 2 +-
>  include/config_uncmd_spl.h | 1 -
>  3 files changed, 10 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/core/Kconfig b/drivers/core/Kconfig
> index 53acee0..97aa01e 100644
> --- a/drivers/core/Kconfig
> +++ b/drivers/core/Kconfig
> @@ -60,6 +60,15 @@ config DM_SEQ_ALIAS
>  	help
>  	  Most boards will have a '/aliases' node containing the path to
>  	  numbered devices (e.g. serial0 = &serial0). This feature can be
> +	  disabled if it is not required.
> +
> +config SPL_DM_SEQ_ALIAS
> +	bool "Support numbered aliases in device tree in SPL"
> +	depends on DM
> +	default n
> +	help
> +	  Most boards will have a '/aliases' node containing the path to
> +	  numbered devices (e.g. serial0 = &serial0). This feature can be
>  	  disabled if it is not required, to save code space in SPL.
> 
>  config REGMAP
> diff --git a/drivers/core/device.c b/drivers/core/device.c
> index 758f390..b237b88 100644
> --- a/drivers/core/device.c
> +++ b/drivers/core/device.c
> @@ -64,7 +64,7 @@ int device_bind(struct udevice *parent, const struct
> driver *drv,
> 
>  	dev->seq = -1;
>  	dev->req_seq = -1;
> -	if (CONFIG_IS_ENABLED(OF_CONTROL) && IS_ENABLED(CONFIG_DM_SEQ_ALIAS)) {
> +	if (CONFIG_IS_ENABLED(OF_CONTROL) && CONFIG_IS_ENABLED(DM_SEQ_ALIAS)) {
>  		/*
>  		* Some devices, such as a SPI bus, I2C bus and serial ports
>  		* are numbered using aliases.
> diff --git a/include/config_uncmd_spl.h b/include/config_uncmd_spl.h
> index 6e299f6..3b198ae 100644
> --- a/include/config_uncmd_spl.h
> +++ b/include/config_uncmd_spl.h
> @@ -29,7 +29,6 @@
>  #endif
> 
>  #undef CONFIG_DM_WARN
> -#undef CONFIG_DM_SEQ_ALIAS
>  #undef CONFIG_DM_STDIO
> 
>  #endif /* CONFIG_SPL_BUILD */


More information about the U-Boot mailing list