On 04/07/17 15:38, Daniel Cederman wrote:


On 2017-06-30 07:11, Sebastian Huber wrote:
On 29/06/17 18:05, David Miller wrote:

From: Daniel Cederman <ceder...@gaisler.com>
Date: Thu, 29 Jun 2017 17:15:43 +0200

I'm not thrilled with this, it's undocumented, the other workaround
don't have
it and I don't think that we really need it.
The B2BST errata workaround requires more changes to assembler
routines commonly used by operating systems, such as for example
register window handling, than what the UT699 workaround needed. It
would be nice to have a way to only enable these modification when the
-mfix- flag is used. The alternative would be to provide a define
directly on the compiler command line in conjunction with -mfix
flag. But if more changes are required later on it would be good to
have the define more closely tied to the flag to minimize the number
of changes to Makefiles and etc.
Personally, I have never seen compiler based CPP defines as ever being
useful for tailoring OS assembler code.  Ever.

In most cases you will want to support several families of CPUs and
therefore sort out the individual cpu support assembler routines
internally in the kernel sources.

This depends on the operating system you use. For some embedded systems where the application and the operating system are one executable it is quite common to use compiler provided defines in assembly code.

For example:

https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;a=blob;f=newlib/libc/machine/arm/memcpy-armv7a.S;h=cd7962e075a30cb90ec073d77b177c3536429b9b;hb=HEAD

For a software development kit, the run-time libraries are built for a set of multilibs. Each assembler file may use multilib specific compiler defines, e.g. floating point unit present or not, errata XYZ present or not, etc.


We can drop the define if necessary, but we would like to keep the two flags. Would that be OK to apply?


If I read the GRLIB-TN-0009 correctly, then we have to adjust the context switch, interrupt processing and window management code in RTEMS. So, we definitely need this define.

Since this errata affects actually the GRLIB, which is used in many products, should we really start adding -mfix-some-processor options? The GRLIB affected by this errata may be used in custom designs as well. I suggest to simply add a

-mfix-leon3ft-b2bst

option which enables the workaround and adds a builtin define

#define __FIX_LEON3FT_B2BST

The documentation for this option should mention this and also reference the GRLIB-TN-0009 and maybe the affected known processors.

--
Sebastian Huber, embedded brains GmbH

Address : Dornierstr. 4, D-82178 Puchheim, Germany
Phone   : +49 89 189 47 41-16
Fax     : +49 89 189 47 41-09
E-Mail  : sebastian.hu...@embedded-brains.de
PGP     : Public key available on request.

Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.

Reply via email to