[U-Boot] [PATCH v2 1/6] sunxi: disable Pine A64 model detection code on other boards
André Przywara
andre.przywara at arm.com
Thu Oct 25 10:21:01 UTC 2018
On 10/25/18 10:23 AM, Icenowy Zheng wrote:
> The Pine A64 Plus/non-Plus model detection code is now built on all
> 64-bit ARM SoCs, even if the code cannot be triggered when H5/H6 is in
> use.
>
> Disable them when the board is Pine A64 by adding a Kconfig option that
> is only selected on Pine A64.
>
> On GCC 7.3.1 this makes the size of the function reduces 184 bytes, and
> saves a 104 byte strstr() function, then makes SPL on H6 succeed to
> build.
>
> Signed-off-by: Icenowy Zheng <icenowy at aosc.io>
Reviewed-by: Andre Przywara <andre.przywara at arm.com>
Thanks!
Andre.
> ---
> This used to be a independently sent patch.
>
> Changes in v2:
> - Added a Kconfig option to restrict the code on only Pine A64.
>
> arch/arm/mach-sunxi/Kconfig | 10 ++++++++++
> board/sunxi/board.c | 5 ++++-
> configs/pine64_plus_defconfig | 1 +
> 3 files changed, 15 insertions(+), 1 deletion(-)
>
> diff --git a/arch/arm/mach-sunxi/Kconfig b/arch/arm/mach-sunxi/Kconfig
> index 686f38fec4..764337c643 100644
> --- a/arch/arm/mach-sunxi/Kconfig
> +++ b/arch/arm/mach-sunxi/Kconfig
> @@ -970,4 +970,14 @@ config SPL_SPI_SUNXI
> sunxi SPI Flash. It uses the same method as the boot ROM, so does
> not need any extra configuration.
>
> +config PINE64_DT_SELECTION
> + bool "Enable Pine64 device tree selection code"
> + depends on MACH_SUN50I
> + help
> + The original Pine A64 and Pine A64+ are similar but different
> + boards and can be differed by the DRAM size. Pine A64 has
> + 512MiB DRAM, and Pine A64+ has 1GiB or 2GiB. By selecting this
> + option, the device tree selection code specific to Pine64 which
> + utilizes the DRAM size will be enabled.
> +
> endif
> diff --git a/board/sunxi/board.c b/board/sunxi/board.c
> index d1d7f9f400..49f5695566 100644
> --- a/board/sunxi/board.c
> +++ b/board/sunxi/board.c
> @@ -820,6 +820,7 @@ int board_fit_config_name_match(const char *name)
> #endif
> };
>
> +#ifdef CONFIG_PINE64_DT_SELECTION
> /* Differentiate the two Pine64 board DTs by their DRAM size. */
> if (strstr(name, "-pine64") && strstr(cmp_str, "-pine64")) {
> if ((gd->ram_size > 512 * 1024 * 1024))
> @@ -829,5 +830,7 @@ int board_fit_config_name_match(const char *name)
> } else {
> return strcmp(name, cmp_str);
> }
> -}
> #endif
> + return strcmp(name, cmp_str);
> +#endif
> +}
> diff --git a/configs/pine64_plus_defconfig b/configs/pine64_plus_defconfig
> index 14ccc9ba05..a5b87b9063 100644
> --- a/configs/pine64_plus_defconfig
> +++ b/configs/pine64_plus_defconfig
> @@ -3,6 +3,7 @@ CONFIG_ARCH_SUNXI=y
> CONFIG_SPL=y
> CONFIG_MACH_SUN50I=y
> CONFIG_RESERVE_ALLWINNER_BOOT0_HEADER=y
> +CONFIG_PINE64_DT_SELECTION=y
> CONFIG_NR_DRAM_BANKS=1
> # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
> # CONFIG_CMD_FLASH is not set
>
More information about the U-Boot
mailing list