All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] vexpress64: semi_defconfig: disable CRC32 support
@ 2022-01-21 16:36 Andre Przywara
  2022-01-21 16:53 ` Marek Vasut
  2022-01-24 16:54 ` Tom Rini
  0 siblings, 2 replies; 3+ messages in thread
From: Andre Przywara @ 2022-01-21 16:36 UTC (permalink / raw)
  To: Linus Walleij, Liviu Dudau
  Cc: Tom Rini, Simon Glass, Marek Vasut, Ross Burton, u-boot

Commit 270f8710f92f ("crc32: Add crc32 implementation using
__builtin_aarch64_crc32b") enabled the usage of ARMv8 CRC instructions
by default, for all arm64 builds. And indeed all Arm Ltd. v8 Cortex-A
cores support the instructions, and they are mandatory starting with
architecture revision v8.1, so realistically every known hardware
implementation should support them.

The Arm Fastmodel however defaults to the bare minimum ARMv8 feature set
by default, which means v8.0 without the CRC instructions, so U-Boot
hangs very early at the moment, without any output (the boot-wrapper or
TF-A printing the last visible lines).

Support for those instructions can be enabled on the model command line
by either:
-C cluster0.cpu0.enable_crc32=1		(for each core)
or by using a higher architecture revision by default:
-C cluster0.has_arm_v8-1=1		(for each cluster)
Of course any arch revision higher than v8.1 would work as well.

But for the sake of a smooth out-of-the-box experience, let's just
disable the usage of those instructions in the defconfig, to avoid
random hangs without any clues.

Reported-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
---
 configs/vexpress_aemv8a_semi_defconfig | 1 +
 1 file changed, 1 insertion(+)

diff --git a/configs/vexpress_aemv8a_semi_defconfig b/configs/vexpress_aemv8a_semi_defconfig
index f9abf29b26..8e6a87c99f 100644
--- a/configs/vexpress_aemv8a_semi_defconfig
+++ b/configs/vexpress_aemv8a_semi_defconfig
@@ -11,6 +11,7 @@ CONFIG_ENV_SECT_SIZE=0x40000
 CONFIG_IDENT_STRING=" vexpress_aemv8a"
 CONFIG_DISTRO_DEFAULTS=y
 CONFIG_SYS_LOAD_ADDR=0x90000000
+# CONFIG_ARM64_CRC32 is not set
 CONFIG_ANDROID_BOOT_IMAGE=y
 CONFIG_BOOTDELAY=1
 CONFIG_USE_BOOTARGS=y
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] vexpress64: semi_defconfig: disable CRC32 support
  2022-01-21 16:36 [PATCH] vexpress64: semi_defconfig: disable CRC32 support Andre Przywara
@ 2022-01-21 16:53 ` Marek Vasut
  2022-01-24 16:54 ` Tom Rini
  1 sibling, 0 replies; 3+ messages in thread
From: Marek Vasut @ 2022-01-21 16:53 UTC (permalink / raw)
  To: Andre Przywara, Linus Walleij, Liviu Dudau
  Cc: Tom Rini, Simon Glass, Ross Burton, u-boot

On 1/21/22 17:36, Andre Przywara wrote:
> Commit 270f8710f92f ("crc32: Add crc32 implementation using
> __builtin_aarch64_crc32b") enabled the usage of ARMv8 CRC instructions
> by default, for all arm64 builds. And indeed all Arm Ltd. v8 Cortex-A
> cores support the instructions, and they are mandatory starting with
> architecture revision v8.1, so realistically every known hardware
> implementation should support them.
> 
> The Arm Fastmodel however defaults to the bare minimum ARMv8 feature set
> by default, which means v8.0 without the CRC instructions, so U-Boot
> hangs very early at the moment, without any output (the boot-wrapper or
> TF-A printing the last visible lines).
> 
> Support for those instructions can be enabled on the model command line
> by either:
> -C cluster0.cpu0.enable_crc32=1		(for each core)
> or by using a higher architecture revision by default:
> -C cluster0.has_arm_v8-1=1		(for each cluster)
> Of course any arch revision higher than v8.1 would work as well.
> 
> But for the sake of a smooth out-of-the-box experience, let's just
> disable the usage of those instructions in the defconfig, to avoid
> random hangs without any clues.
> 
> Reported-by: Ross Burton <ross.burton@arm.com>
> Signed-off-by: Andre Przywara <andre.przywara@arm.com>

Acked-by: Marek Vasut <marex@denx.de>

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] vexpress64: semi_defconfig: disable CRC32 support
  2022-01-21 16:36 [PATCH] vexpress64: semi_defconfig: disable CRC32 support Andre Przywara
  2022-01-21 16:53 ` Marek Vasut
@ 2022-01-24 16:54 ` Tom Rini
  1 sibling, 0 replies; 3+ messages in thread
From: Tom Rini @ 2022-01-24 16:54 UTC (permalink / raw)
  To: Andre Przywara
  Cc: Linus Walleij, Liviu Dudau, Simon Glass, Marek Vasut,
	Ross Burton, u-boot

[-- Attachment #1: Type: text/plain, Size: 1428 bytes --]

On Fri, Jan 21, 2022 at 04:36:04PM +0000, Andre Przywara wrote:

> Commit 270f8710f92f ("crc32: Add crc32 implementation using
> __builtin_aarch64_crc32b") enabled the usage of ARMv8 CRC instructions
> by default, for all arm64 builds. And indeed all Arm Ltd. v8 Cortex-A
> cores support the instructions, and they are mandatory starting with
> architecture revision v8.1, so realistically every known hardware
> implementation should support them.
> 
> The Arm Fastmodel however defaults to the bare minimum ARMv8 feature set
> by default, which means v8.0 without the CRC instructions, so U-Boot
> hangs very early at the moment, without any output (the boot-wrapper or
> TF-A printing the last visible lines).
> 
> Support for those instructions can be enabled on the model command line
> by either:
> -C cluster0.cpu0.enable_crc32=1		(for each core)
> or by using a higher architecture revision by default:
> -C cluster0.has_arm_v8-1=1		(for each cluster)
> Of course any arch revision higher than v8.1 would work as well.
> 
> But for the sake of a smooth out-of-the-box experience, let's just
> disable the usage of those instructions in the defconfig, to avoid
> random hangs without any clues.
> 
> Reported-by: Ross Burton <ross.burton@arm.com>
> Signed-off-by: Andre Przywara <andre.przywara@arm.com>
> Acked-by: Marek Vasut <marex@denx.de>

Applied to u-boot/master, thanks!

-- 
Tom

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 659 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2022-01-24 16:54 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-01-21 16:36 [PATCH] vexpress64: semi_defconfig: disable CRC32 support Andre Przywara
2022-01-21 16:53 ` Marek Vasut
2022-01-24 16:54 ` Tom Rini

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.