This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [AArch64] Workaround for cortex-a53 erratum 843419


On 30/03/15 15:40, Marcus Shawcroft wrote:
On 30/03/15 15:23, Marcus Shawcroft wrote:
Hi,

Some early revisions of the Cortex-A53 have an erratum (843419).  The
details of the erratum are quite complex and involve dynamic conditions.
   For the purposes of the workaround we have simplified the static
conditions to an ADRP in the last two instructions of a 4KByte page,
followed within four instructions by a load/store dependent on the ADRP.

In order to apply this patch to a binutils-2.25 tree the following
prerequisite patches from trunk are also required (git hash, title, mail
link):

Hi,

This set of patches applies to 2.24 with some minor tweaking. In response to an off list request I thought it would be useful to share the runes for 2.24.

The following back ported patches are required, in order:

  8ef229f [AArch64] Removing unused functions.
  https://sourceware.org/ml/binutils/2015-03/msg00033.html

  e2cdef4 Remove dead code.
  https://sourceware.org/ml/binutils/2015-03/msg00294.html

  4c77202 [AArch64] Drop unused argument to
  elf_aarch64_create_or_find_stub_sec
  https://sourceware.org/ml/binutils/2015-03/msg00296.html

  2144188 [AArch64] Flip sense of erratum_835769_scan.
  https://sourceware.org/ml/binutils/2015-03/msg00297.html

  ef85752 [AArch64] Factor out common behaviour between
  elf_aarch64_create_or_find_stub_sec and elfNN_aarch64_add_stub
  https://sourceware.org/ml/binutils/2015-03/msg00298.html

  6658567 [AArch64] Factor stub creation code into
  _bfd_aarch64_create_stub_section.
  https://sourceware.org/ml/binutils/2015-03/msg00299.html

  13f622e [AArch64] Factor out _bfd_aarch64_resize_stubs()
  https://sourceware.org/ml/binutils/2015-03/msg00300.html

  35fee8b Factor out _bfd_aarch64_erratum_835769_stub_name
  https://sourceware.org/ml/binutils/2015-03/msg00302.html

  c53ed7c [OBV] Fix build -- missing ';'
  https://sourceware.org/ml/binutils/2015-03/msg00304.html

  e572930 [AArch64] Use _bfd_aarch64_add_stub_entry_in_group.
  https://sourceware.org/ml/binutils/2015-03/msg00323.html


The follow patch is required but requires some minor adjustment to cope with a change in the representation of section linked lists made between 2.24 and 2.25. A revised version of commit 5421cc5 is attached as patch-1.txt.

  5421cc6 [AArch64] Refactor generation of 835769 workaround stubs.
  https://sourceware.org/ml/binutils/2015-03/msg00324.html


  30068a6 [AArch64] Refactor section_group[] representation.
  https://sourceware.org/ml/binutils/2015-03/msg00327.html

  fc6d53b [AArch64] Factor out _bfd_aarch64_get_stub_for_link_section.
  https://sourceware.org/ml/binutils/2015-03/msg00328.html

  357d152 [AArch64] Adjust veneer count.
  https://sourceware.org/ml/binutils/2015-03/msg00341.html

  d9ced15 [AArch64] Remove padding before stub sections.
  https://sourceware.org/ml/binutils/2015-03/msg00343.html

  6186551 [AArch64] Implement branch over stub section.
  https://sourceware.org/ml/binutils/2015-03/msg00344.html

The 843419 workaround patch itself requires some minor adjustment to reflect the same linked list representation issue as above. A revised version of the patch is attached as patch-2.txt.

The ChangeLog entries for the two revised patches remain unchanged from the original submissions.

Cheers
/Marcus





Attachment: patch-1.txt
Description: Text document

Attachment: patch-2.txt
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]