U-Boot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH] openrd: disable private arch memset, memcpy and libgcc
@ 2017-02-26 15:29 Albert ARIBAUD
  2017-02-27  1:04 ` Tom Rini
  0 siblings, 1 reply; 2+ messages in thread
From: Albert ARIBAUD @ 2017-02-26 15:29 UTC (permalink / raw)
  To: u-boot

The switch to private LIBGCC causes 'undefined instruction'
exception in at least the Open-RD Ultimate and Client, and
quite probably the Open-RD Base as well.

While debugging this issue, it appeared the switch to
architecture-optimized memset and memcpy also causes the
same exceptions.

Until a fix to private libgcc and architecture-optimized
memcpy and memset is mainlined, disable their use in all
openrd configurations.

Signed-off-by: Albert ARIBAUD <albert.u.boot@aribaud.net>
---

 configs/openrd_base_defconfig     | 4 ++++
 configs/openrd_client_defconfig   | 4 ++++
 configs/openrd_ultimate_defconfig | 4 ++++
 3 files changed, 12 insertions(+)

diff --git a/configs/openrd_base_defconfig b/configs/openrd_base_defconfig
index 067ddbc5cc..4b8c51a771 100644
--- a/configs/openrd_base_defconfig
+++ b/configs/openrd_base_defconfig
@@ -21,3 +21,7 @@ CONFIG_SYS_NS16550=y
 CONFIG_USB=y
 CONFIG_USB_STORAGE=y
 CONFIG_OF_LIBFDT=y
+# Private memcpy, memset and libgcc cause undefined instruction exceptions
+CONFIG_USE_ARCH_MEMSET=n
+CONFIG_USE_ARCH_MEMCPY=n
+CONFIG_USE_PRIVATE_LIBGCC=n
diff --git a/configs/openrd_client_defconfig b/configs/openrd_client_defconfig
index b90ead158f..04f243a57b 100644
--- a/configs/openrd_client_defconfig
+++ b/configs/openrd_client_defconfig
@@ -21,3 +21,7 @@ CONFIG_SYS_NS16550=y
 CONFIG_USB=y
 CONFIG_USB_STORAGE=y
 CONFIG_OF_LIBFDT=y
+# Private memcpy, memset and libgcc cause undefined instruction exceptions
+CONFIG_USE_ARCH_MEMSET=n
+CONFIG_USE_ARCH_MEMCPY=n
+CONFIG_USE_PRIVATE_LIBGCC=n
diff --git a/configs/openrd_ultimate_defconfig b/configs/openrd_ultimate_defconfig
index 2bc8ace8d0..c8d4c3176f 100644
--- a/configs/openrd_ultimate_defconfig
+++ b/configs/openrd_ultimate_defconfig
@@ -21,3 +21,7 @@ CONFIG_SYS_NS16550=y
 CONFIG_USB=y
 CONFIG_USB_STORAGE=y
 CONFIG_OF_LIBFDT=y
+# Private memcpy, memset and libgcc cause undefined instruction exceptions
+CONFIG_USE_ARCH_MEMSET=n
+CONFIG_USE_ARCH_MEMCPY=n
+CONFIG_USE_PRIVATE_LIBGCC=n
-- 
2.11.0

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

* [U-Boot] [PATCH] openrd: disable private arch memset, memcpy and libgcc
  2017-02-26 15:29 [U-Boot] [PATCH] openrd: disable private arch memset, memcpy and libgcc Albert ARIBAUD
@ 2017-02-27  1:04 ` Tom Rini
  0 siblings, 0 replies; 2+ messages in thread
From: Tom Rini @ 2017-02-27  1:04 UTC (permalink / raw)
  To: u-boot

On Sun, Feb 26, 2017 at 04:29:32PM +0100, Albert ARIBAUD wrote:

> The switch to private LIBGCC causes 'undefined instruction'
> exception in at least the Open-RD Ultimate and Client, and
> quite probably the Open-RD Base as well.
> 
> While debugging this issue, it appeared the switch to
> architecture-optimized memset and memcpy also causes the
> same exceptions.
> 
> Until a fix to private libgcc and architecture-optimized
> memcpy and memset is mainlined, disable their use in all
> openrd configurations.
> 
> Signed-off-by: Albert ARIBAUD <albert.u.boot@aribaud.net>

Implementation wise, there's two big problems here.  First, all of the
code we're talking about is a direct drop-in from the kernel.  So
whatever is wrong here is a problem that the kernel itself can trigger,
so needs sorting out and fixing.  Second, do you have more details on
how to recreate (or not recreate) these problems?

> ---
> 
>  configs/openrd_base_defconfig     | 4 ++++
>  configs/openrd_client_defconfig   | 4 ++++
>  configs/openrd_ultimate_defconfig | 4 ++++
>  3 files changed, 12 insertions(+)
> 
> diff --git a/configs/openrd_base_defconfig b/configs/openrd_base_defconfig
> index 067ddbc5cc..4b8c51a771 100644
> --- a/configs/openrd_base_defconfig
> +++ b/configs/openrd_base_defconfig
> @@ -21,3 +21,7 @@ CONFIG_SYS_NS16550=y
>  CONFIG_USB=y
>  CONFIG_USB_STORAGE=y
>  CONFIG_OF_LIBFDT=y
> +# Private memcpy, memset and libgcc cause undefined instruction exceptions
> +CONFIG_USE_ARCH_MEMSET=n
> +CONFIG_USE_ARCH_MEMCPY=n
> +CONFIG_USE_PRIVATE_LIBGCC=n
> diff --git a/configs/openrd_client_defconfig b/configs/openrd_client_defconfig
> index b90ead158f..04f243a57b 100644
> --- a/configs/openrd_client_defconfig
> +++ b/configs/openrd_client_defconfig
> @@ -21,3 +21,7 @@ CONFIG_SYS_NS16550=y
>  CONFIG_USB=y
>  CONFIG_USB_STORAGE=y
>  CONFIG_OF_LIBFDT=y
> +# Private memcpy, memset and libgcc cause undefined instruction exceptions
> +CONFIG_USE_ARCH_MEMSET=n
> +CONFIG_USE_ARCH_MEMCPY=n
> +CONFIG_USE_PRIVATE_LIBGCC=n
> diff --git a/configs/openrd_ultimate_defconfig b/configs/openrd_ultimate_defconfig
> index 2bc8ace8d0..c8d4c3176f 100644
> --- a/configs/openrd_ultimate_defconfig
> +++ b/configs/openrd_ultimate_defconfig
> @@ -21,3 +21,7 @@ CONFIG_SYS_NS16550=y
>  CONFIG_USB=y
>  CONFIG_USB_STORAGE=y
>  CONFIG_OF_LIBFDT=y
> +# Private memcpy, memset and libgcc cause undefined instruction exceptions
> +CONFIG_USE_ARCH_MEMSET=n
> +CONFIG_USE_ARCH_MEMCPY=n
> +CONFIG_USE_PRIVATE_LIBGCC=n

Content-wise, this is wrong.  Please run them past 'savedefconfig'.
Thanks!

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20170226/d2e3bd6c/attachment.sig>

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

end of thread, other threads:[~2017-02-27  1:04 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-02-26 15:29 [U-Boot] [PATCH] openrd: disable private arch memset, memcpy and libgcc Albert ARIBAUD
2017-02-27  1:04 ` Tom Rini

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox