From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tom Rini Date: Sun, 26 Feb 2017 20:04:28 -0500 Subject: [U-Boot] [PATCH] openrd: disable private arch memset, memcpy and libgcc In-Reply-To: <20170226152932.5628-1-albert.u.boot@aribaud.net> References: <20170226152932.5628-1-albert.u.boot@aribaud.net> Message-ID: <20170227010428.GG20531@bill-the-cat> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de 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 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: