1. 11 3月, 2020 1 次提交
  2. 18 10月, 2019 1 次提交
    • J
      linkage: Introduce new macros for assembler symbols · ffedeeb7
      Jiri Slaby 提交于
      Introduce new C macros for annotations of functions and data in
      assembly. There is a long-standing mess in macros like ENTRY, END,
      ENDPROC and similar. They are used in different manners and sometimes
      incorrectly.
      
      So introduce macros with clear use to annotate assembly as follows:
      
      a) Support macros for the ones below
         SYM_T_FUNC -- type used by assembler to mark functions
         SYM_T_OBJECT -- type used by assembler to mark data
         SYM_T_NONE -- type used by assembler to mark entries of unknown type
      
         They are defined as STT_FUNC, STT_OBJECT, and STT_NOTYPE
         respectively. According to the gas manual, this is the most portable
         way. I am not sure about other assemblers, so this can be switched
         back to %function and %object if this turns into a problem.
         Architectures can also override them by something like ", @function"
         if they need.
      
         SYM_A_ALIGN, SYM_A_NONE -- align the symbol?
         SYM_L_GLOBAL, SYM_L_WEAK, SYM_L_LOCAL -- linkage of symbols
      
      b) Mostly internal annotations, used by the ones below
         SYM_ENTRY -- use only if you have to (for non-paired symbols)
         SYM_START -- use only if you have to (for paired symbols)
         SYM_END -- use only if you have to (for paired symbols)
      
      c) Annotations for code
         SYM_INNER_LABEL_ALIGN -- only for labels in the middle of code
         SYM_INNER_LABEL -- only for labels in the middle of code
      
         SYM_FUNC_START_LOCAL_ALIAS -- use where there are two local names for
      	one function
         SYM_FUNC_START_ALIAS -- use where there are two global names for one
      	function
         SYM_FUNC_END_ALIAS -- the end of LOCAL_ALIASed or ALIASed function
      
         SYM_FUNC_START -- use for global functions
         SYM_FUNC_START_NOALIGN -- use for global functions, w/o alignment
         SYM_FUNC_START_LOCAL -- use for local functions
         SYM_FUNC_START_LOCAL_NOALIGN -- use for local functions, w/o
      	alignment
         SYM_FUNC_START_WEAK -- use for weak functions
         SYM_FUNC_START_WEAK_NOALIGN -- use for weak functions, w/o alignment
         SYM_FUNC_END -- the end of SYM_FUNC_START_LOCAL, SYM_FUNC_START,
      	SYM_FUNC_START_WEAK, ...
      
         For functions with special (non-C) calling conventions:
         SYM_CODE_START -- use for non-C (special) functions
         SYM_CODE_START_NOALIGN -- use for non-C (special) functions, w/o
      	alignment
         SYM_CODE_START_LOCAL -- use for local non-C (special) functions
         SYM_CODE_START_LOCAL_NOALIGN -- use for local non-C (special)
      	functions, w/o alignment
         SYM_CODE_END -- the end of SYM_CODE_START_LOCAL or SYM_CODE_START
      
      d) For data
         SYM_DATA_START -- global data symbol
         SYM_DATA_START_LOCAL -- local data symbol
         SYM_DATA_END -- the end of the SYM_DATA_START symbol
         SYM_DATA_END_LABEL -- the labeled end of SYM_DATA_START symbol
         SYM_DATA -- start+end wrapper around simple global data
         SYM_DATA_LOCAL -- start+end wrapper around simple local data
      
      ==========
      
      The macros allow to pair starts and ends of functions and mark functions
      correctly in the output ELF objects.
      
      All users of the old macros in x86 are converted to use these in further
      patches.
      Signed-off-by: NJiri Slaby <jslaby@suse.cz>
      Signed-off-by: NBorislav Petkov <bp@suse.de>
      Acked-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Andrey Ryabinin <aryabinin@virtuozzo.com>
      Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com>
      Cc: "H. Peter Anvin" <hpa@zytor.com>
      Cc: Ingo Molnar <mingo@kernel.org>
      Cc: Jonathan Corbet <corbet@lwn.net>
      Cc: Josh Poimboeuf <jpoimboe@redhat.com>
      Cc: Juergen Gross <jgross@suse.com>
      Cc: Len Brown <len.brown@intel.com>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: linux-arch@vger.kernel.org
      Cc: linux-doc@vger.kernel.org
      Cc: linux-kernel@vger.kernel.org
      Cc: linux-pm@vger.kernel.org
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Pavel Machek <pavel@ucw.cz>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Will Deacon <will@kernel.org>
      Cc: x86-ml <x86@kernel.org>
      Cc: xen-devel@lists.xenproject.org
      Link: https://lkml.kernel.org/r/20191011115108.12392-2-jslaby@suse.cz
      ffedeeb7
  3. 11 10月, 2019 1 次提交
  4. 13 8月, 2019 1 次提交
  5. 09 8月, 2019 1 次提交
    • P
      doc: Add doc for the Ingenic TCU hardware · 97689a1a
      Paul Cercueil 提交于
      Add documentation about the Timer/Counter Unit (TCU) present in the
      Ingenic JZ47xx SoCs.
      
      The Timer/Counter Unit (TCU) in Ingenic JZ47xx SoCs is a multi-function
      hardware block. It features up to to eight channels, that can be used as
      counters, timers, or PWM.
      
      - JZ4725B, JZ4750, JZ4755 only have six TCU channels. The other SoCs all
        have eight channels.
      
      - JZ4725B introduced a separate channel, called Operating System Timer
        (OST). It is a 32-bit programmable timer. On JZ4770 and above, it is
        64-bit.
      
      - Each one of the TCU channels has its own clock, which can be reparented
        to three different clocks (pclk, ext, rtc), gated, and reclocked, through
        their TCSR register.
        * The watchdog and OST hardware blocks also feature a TCSR register with
          the same format in their register space.
        * The TCU registers used to gate/ungate can also gate/ungate the watchdog
          and OST clocks.
      
      - Each TCU channel works in one of two modes:
        * mode TCU1: channels cannot work in sleep mode, but are easier to
          operate.
        * mode TCU2: channels can work in sleep mode, but the operation is a bit
          more complicated than with TCU1 channels.
      
      - The mode of each TCU channel depends on the SoC used:
        * On the oldest SoCs (up to JZ4740), all of the eight channels operate in
          TCU1 mode.
        * On JZ4725B, channel 5 operates as TCU2, the others operate as TCU1.
        * On newest SoCs (JZ4750 and above), channels 1-2 operate as TCU2, the
          others operate as TCU1.
      
      - Each channel can generate an interrupt. Some channels share an interrupt
        line, some don't, and this changes between SoC versions:
        * on older SoCs (JZ4740 and below), channel 0 and channel 1 have their
          own interrupt line; channels 2-7 share the last interrupt line.
        * On JZ4725B, channel 0 has its own interrupt; channels 1-5 share one
          interrupt line; the OST uses the last interrupt line.
        * on newer SoCs (JZ4750 and above), channel 5 has its own interrupt;
          channels 0-4 and (if eight channels) 6-7 all share one interrupt line;
          the OST uses the last interrupt line.
      Signed-off-by: NPaul Cercueil <paul@crapouillou.net>
      Tested-by: NMathieu Malaterre <malat@debian.org>
      Tested-by: NArtur Rojek <contact@artur-rojek.eu>
      Signed-off-by: NPaul Burton <paul.burton@mips.com>
      Cc: Ralf Baechle <ralf@linux-mips.org>
      Cc: James Hogan <jhogan@kernel.org>
      Cc: Jonathan Corbet <corbet@lwn.net>
      Cc: Lee Jones <lee.jones@linaro.org>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Daniel Lezcano <daniel.lezcano@linaro.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Michael Turquette <mturquette@baylibre.com>
      Cc: Stephen Boyd <sboyd@kernel.org>
      Cc: Jason Cooper <jason@lakedaemon.net>
      Cc: Marc Zyngier <marc.zyngier@arm.com>
      Cc: Rob Herring <robh+dt@kernel.org>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: devicetree@vger.kernel.org
      Cc: linux-kernel@vger.kernel.org
      Cc: linux-doc@vger.kernel.org
      Cc: linux-mips@vger.kernel.org
      Cc: linux-clk@vger.kernel.org
      Cc: od@zcrc.me
      97689a1a
  6. 01 8月, 2019 8 次提交
  7. 17 7月, 2019 3 次提交
  8. 15 7月, 2019 9 次提交
  9. 09 7月, 2019 1 次提交
  10. 20 6月, 2019 1 次提交
  11. 15 6月, 2019 1 次提交
  12. 30 5月, 2019 1 次提交
  13. 09 5月, 2019 1 次提交
  14. 26 4月, 2019 1 次提交
  15. 18 4月, 2019 1 次提交
  16. 07 3月, 2019 1 次提交
    • T
      x86/speculation/mds: Add mds_clear_cpu_buffers() · 6a9e5292
      Thomas Gleixner 提交于
      The Microarchitectural Data Sampling (MDS) vulernabilities are mitigated by
      clearing the affected CPU buffers. The mechanism for clearing the buffers
      uses the unused and obsolete VERW instruction in combination with a
      microcode update which triggers a CPU buffer clear when VERW is executed.
      
      Provide a inline function with the assembly magic. The argument of the VERW
      instruction must be a memory operand as documented:
      
        "MD_CLEAR enumerates that the memory-operand variant of VERW (for
         example, VERW m16) has been extended to also overwrite buffers affected
         by MDS. This buffer overwriting functionality is not guaranteed for the
         register operand variant of VERW."
      
      Documentation also recommends to use a writable data segment selector:
      
        "The buffer overwriting occurs regardless of the result of the VERW
         permission check, as well as when the selector is null or causes a
         descriptor load segment violation. However, for lowest latency we
         recommend using a selector that indicates a valid writable data
         segment."
      
      Add x86 specific documentation about MDS and the internal workings of the
      mitigation.
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      Reviewed-by: NBorislav Petkov <bp@suse.de>
      Reviewed-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      Reviewed-by: NFrederic Weisbecker <frederic@kernel.org>
      Reviewed-by: NJon Masters <jcm@redhat.com>
      Tested-by: NJon Masters <jcm@redhat.com>
      6a9e5292
  17. 14 1月, 2019 1 次提交
  18. 01 9月, 2018 1 次提交
    • M
      docs: tidy up TOCs and refs to license-rules.rst · 9799445a
      Markus Heiser 提交于
      The documentation and TOCs are organized in a manner of a tree. Adding a TOC to
      the root, which refers to a file which is located in a subfolder forms a
      grid. Those TOCs are a bit confusing and thats why we get additional error
      messages while building partial documentation::
      
        $ make SPHINXDIRS=process htmldocs
        ...
        checking consistency... Documentation/process/license-rules.rst: \
        WARNING: document isn't included in any toctree
      
      To fix it, the *root-license-TOC* is replaced by a reference and the
      'license-roles.txt' is added to the Documentation/process/index.rst TOC.
      
      BTW: there was an old licences remark in Documentation/process/howto.rst which
      is also updated, mentioning SPDX and pointing to the license-rules.rst
      Signed-off-by: NMarkus Heiser <markus.heiser@darmarit.de>
      Signed-off-by: NJonathan Corbet <corbet@lwn.net>
      9799445a
  19. 30 7月, 2018 2 次提交
  20. 27 7月, 2018 1 次提交
  21. 26 6月, 2018 2 次提交