[RTEMS Project] #3747: Address Cortex-M3 Errata 602117
RTEMS trac
trac at rtems.org
Mon May 13 13:23:15 UTC 2019
#3747: Address Cortex-M3 Errata 602117
------------------------------+-----------------------------
Reporter: Sebastian Huber | Owner: Sebastian Huber
Type: defect | Status: assigned
Priority: normal | Milestone: 5.1
Component: arch/arm | Version: 5
Severity: normal | Keywords:
Blocked By: | Blocking:
------------------------------+-----------------------------
While testing on a NXP LPC1788 it found that this chip is affected by the
Cortex-M3 Errata 602117. NXP didn't bother to document this in their
errata sheet for the chip:
https://www.nxp.com/docs/en/errata/ES_LPC177X_8X.pdf
To avoid the issues, you have to compile everything with -mfix-
cortex-m3-ldrd. This option is enabled by default, if you use
-mcpu=cortex-m3.
I think we have to change our GCC multilibs to account for this errata.
For example:
{{{
diff --git a/gcc/config/arm/t-rtems b/gcc/config/arm/t-rtems
index 026a5895662..e276b4f3e57 100644
--- a/gcc/config/arm/t-rtems
+++ b/gcc/config/arm/t-rtems
@@ -1,7 +1,7 @@
# Custom RTEMS multilibs for ARM
-MULTILIB_OPTIONS = mbig-endian mthumb
march=armv6-m/march=armv7-a/march=armv7-r/march=armv7-m/mcpu=cortex-m7
mfpu=neon/mfpu=vfp/mfpu=vfpv3-d16/mfpu=fpv4-sp-d16/mfpu=fpv5-d16 mfloat-
abi=hard
-MULTILIB_DIRNAMES = eb thumb armv6-m armv7-a armv7-r armv7-m cortex-m7
neon vfp vfpv3-d16 fpv4-sp-d16 fpv5-d16 hard
+MULTILIB_OPTIONS = mbig-endian mthumb
march=armv6-m/march=armv7-a/march=armv7-r/mcpu=cortex-m3/mcpu=cortex-m4/mcpu=cortex-m7
mfpu=neon/mfpu=vfp/mfpu=vfpv3-d16/mfpu=fpv4-sp-d16/mfpu=fpv5-d16 mfloat-
abi=hard
+MULTILIB_DIRNAMES = eb thumb armv6-m armv7-a armv7-r cortex-m3 cortex-m4
cortex-m7 neon vfp vfpv3-d16 fpv4-sp-d16 fpv5-d16 hard
# Enumeration of multilibs
@@ -16,7 +16,8 @@ MULTILIB_REQUIRED += mthumb/march=armv7-a/mfpu=neon
/mfloat-abi=hard
MULTILIB_REQUIRED += mthumb/march=armv7-a
MULTILIB_REQUIRED += mthumb/march=armv7-r/mfpu=vfpv3-d16/mfloat-abi=hard
MULTILIB_REQUIRED += mthumb/march=armv7-r
-MULTILIB_REQUIRED += mthumb/march=armv7-m/mfpu=fpv4-sp-d16/mfloat-
abi=hard
+MULTILIB_REQUIRED += mthumb/mcpu=cortex-m3
+MULTILIB_REQUIRED += mthumb/mcpu=cortex-m4
+MULTILIB_REQUIRED += mthumb/mcpu=cortex-m4/mfpu=fpv4-sp-d16/mfloat-
abi=hard
MULTILIB_REQUIRED += mthumb/mcpu=cortex-m7/mfpu=fpv5-d16/mfloat-abi=hard
-MULTILIB_REQUIRED += mthumb/march=armv7-m
MULTILIB_REQUIRED += mthumb
}}}
--
Ticket URL: <http://devel.rtems.org/ticket/3747>
RTEMS Project <http://www.rtems.org/>
RTEMS Project
More information about the bugs
mailing list