1. 04 Oct, 2016 4 commits
    • Nicholas Piggin's avatar
      powerpc: Use gas sections for arranging exception vectors · 57f26649
      Nicholas Piggin authored
      Use assembler sections of fixed size and location to arrange the 64-bit
      Book3S exception vector code (64-bit Book3E also uses it in head_64.S
      for 0x0..0x100).
      
      This allows better flexibility in arranging exception code and hiding
      unimportant details behind macros.
      
      Gas sections can be a bit painful to use this way, mainly because the
      assembler does not know where they will be finally linked. Taking
      absolute addresses requires a bit of trickery for example, but it can
      be hidden behind macros for the most part.
      
      Generated code is mostly the same except locations, offsets, alignments.
      
      The "+ 0x2" is only required for the trap number / kvm exit number,
      which gets loaded as a constant into a register.
      
      Previously, code also used + 0x2 for label names, but we changed to
      using "H" to distinguish HV case for that. Remove the last vestiges
      of that.
      
      __after_prom_start is taking absolute address of a label in another
      fixed section. Newer toolchains seemed to compile this okay, but older
      ones do not. FIXED_SYMBOL_ABS_ADDR is more foolproof, it just takes an
      additional line to define.
      Signed-off-by: default avatarNicholas Piggin <npiggin@gmail.com>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      57f26649
    • Nicholas Piggin's avatar
      powerpc/64: Change the way relocation copy is calculated · 573819e3
      Nicholas Piggin authored
      With a subsequent patch to put text into different sections,
      (_end - _stext) can no longer be computed at link time to determine
      the end of the copy. Instead, calculate it at runtime with
      (copy_to_here - _stext) + (_end - copy_to_here).
      Signed-off-by: default avatarNicholas Piggin <npiggin@gmail.com>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      573819e3
    • Nicholas Piggin's avatar
      powerpc/64s: Consolidate exception handler alignment · be642c34
      Nicholas Piggin authored
      Move exception handler alignment directives into the head-64.h macros,
      beause they will no longer work in-place after the next patch. This
      slightly changes functions that have alignments applied and therefore
      code generation, which is why it was not done initially (see earlier
      patch).
      Signed-off-by: default avatarNicholas Piggin <npiggin@gmail.com>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      be642c34
    • Michael Ellerman's avatar
      powerpc/64s: Add new exception vector macros · da2bc464
      Michael Ellerman authored
      Create arch/powerpc/include/asm/head-64.h with macros that specify
      an exception vector (name, type, location), which will be used to
      label and lay out exceptions into the object file.
      
      Naming is moved out of exception-64s.h, which is used to specify the
      implementation of exception handlers.
      
      objdump of generated code in exception vectors is unchanged except for
      names. Alignment directives scattered around are annoying, but done
      this way so that disassembly can verify identical instruction
      generation before and after patch. These get cleaned up in future
      patch.
      
      We change the way KVMTEST works, explicitly passing EXC_HV or EXC_STD
      rather than overloading the trap number. This removes the need to have
      SOFTEN values for the overloaded trap numbers, eg. 0x502.
      Signed-off-by: default avatarNicholas Piggin <npiggin@gmail.com>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      da2bc464
  2. 29 Sep, 2016 9 commits
  3. 28 Sep, 2016 6 commits
  4. 23 Sep, 2016 1 commit
  5. 22 Sep, 2016 15 commits
  6. 20 Sep, 2016 5 commits