sunxi: disable Pine A64 model detection code on other boards
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@aosc.io> Reviewed-by: Andre Przywara <andre.przywara@arm.com> Acked-by: Maxime Ripard <maxime.ripard@bootlin.com> Reviewed-by: Jagan Teki <jagan@openedev.com>
This commit is contained in:
parent
3d99a0b33a
commit
c6c2c85e4b
@ -970,4 +970,14 @@ config SPL_SPI_SUNXI
|
|||||||
sunxi SPI Flash. It uses the same method as the boot ROM, so does
|
sunxi SPI Flash. It uses the same method as the boot ROM, so does
|
||||||
not need any extra configuration.
|
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
|
endif
|
||||||
|
@ -820,6 +820,7 @@ int board_fit_config_name_match(const char *name)
|
|||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#ifdef CONFIG_PINE64_DT_SELECTION
|
||||||
/* Differentiate the two Pine64 board DTs by their DRAM size. */
|
/* Differentiate the two Pine64 board DTs by their DRAM size. */
|
||||||
if (strstr(name, "-pine64") && strstr(cmp_str, "-pine64")) {
|
if (strstr(name, "-pine64") && strstr(cmp_str, "-pine64")) {
|
||||||
if ((gd->ram_size > 512 * 1024 * 1024))
|
if ((gd->ram_size > 512 * 1024 * 1024))
|
||||||
@ -829,5 +830,7 @@ int board_fit_config_name_match(const char *name)
|
|||||||
} else {
|
} else {
|
||||||
return strcmp(name, cmp_str);
|
return strcmp(name, cmp_str);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
return strcmp(name, cmp_str);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -3,6 +3,7 @@ CONFIG_ARCH_SUNXI=y
|
|||||||
CONFIG_SPL=y
|
CONFIG_SPL=y
|
||||||
CONFIG_MACH_SUN50I=y
|
CONFIG_MACH_SUN50I=y
|
||||||
CONFIG_RESERVE_ALLWINNER_BOOT0_HEADER=y
|
CONFIG_RESERVE_ALLWINNER_BOOT0_HEADER=y
|
||||||
|
CONFIG_PINE64_DT_SELECTION=y
|
||||||
CONFIG_NR_DRAM_BANKS=1
|
CONFIG_NR_DRAM_BANKS=1
|
||||||
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
|
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
|
||||||
# CONFIG_CMD_FLASH is not set
|
# CONFIG_CMD_FLASH is not set
|
||||||
|
Loading…
Reference in New Issue
Block a user