19 Jun, 2019

1 commit

  • Based on 2 normalized pattern(s):

    this program is free software you can redistribute it and or modify
    it under the terms of the gnu general public license version 2 as
    published by the free software foundation

    this program is free software you can redistribute it and or modify
    it under the terms of the gnu general public license version 2 as
    published by the free software foundation #

    extracted by the scancode license scanner the SPDX license identifier

    GPL-2.0-only

    has been chosen to replace the boilerplate/reference in 4122 file(s).

    Signed-off-by: Thomas Gleixner
    Reviewed-by: Enrico Weigelt
    Reviewed-by: Kate Stewart
    Reviewed-by: Allison Randal
    Cc: linux-spdx@vger.kernel.org
    Link: https://lkml.kernel.org/r/20190604081206.933168790@linutronix.de
    Signed-off-by: Greg Kroah-Hartman

    Thomas Gleixner
     

25 Jan, 2017

3 commits

  • Introduce a new "protect-exec" reserved sram area type which is
    makes use of the the existing functionality provided for the "pool"
    sram region type for use with the genalloc framework and with the
    added requirement that it be maintained as read-only and executable
    while allowing for an arbitrary number of drivers to share the space.

    This introduces a common way to maintain a region of sram as read-only
    and executable and also introduces a helper function, sram_exec_copy,
    which allows for copying data to this protected region while maintaining
    locking to avoid conflicts between multiple users of the same space. A
    region of memory that is marked with the "protect-exec" flag in the
    device tree also has the requirement of providing a page aligned block
    of memory so that the page attribute manipulation does not affect
    surrounding regions.

    Also, selectively enable this only for builds that support set_memory_*
    calls, for now just ARM, through the use of Kconfig.

    Signed-off-by: Dave Gerlach
    Acked-by: Tony Lindgren
    Signed-off-by: Greg Kroah-Hartman

    Dave Gerlach
     
  • Some platforms, like many ARM SoCs, require the ability to run code from
    on-chip memory like SRAM for tasks like reconfiguring the SDRAM
    controller or entering low-power sleep modes. In order to do this we
    must be able to allocate memory that the code can be copied to but then
    change the mapping to be read-only and executable so that no memory is
    both writable and executable at the same time to avoid opening any
    unneccesary security holes.

    By using the existing "pool" partition type that the SRAM driver allows
    we can create a memory space that will already be exposed by the
    genalloc framework to allow for allocating memory but we must extend
    this to meet the executable requirements. By making use of various
    set_memory_* APIs we can change the attributes of pages to make them
    writable for code upload but then read-only and executable when we want
    to actually run code. Because SRAM is a shared resource we need a
    centralized manager of these set memory calls. Because the SRAM driver
    itself is responsible for allocating the memory we can introduce a
    sram_copy_exec API for the driver that works like memcpy but also
    manages the page attributes and locking to allow multiple users of the
    same SRAM space to all copy their code over independent of other each
    before starting execution.

    It is maintained in a separate file from the core SRAM driver to allow
    it to be selectively built depending on whether or not a platform has
    the appropriate set_memory_* APIs. A future patch will integrate it with
    the core SRAM driver.

    Signed-off-by: Dave Gerlach
    Acked-by: Tony Lindgren
    Signed-off-by: Greg Kroah-Hartman

    Dave Gerlach
     
  • In preparation of a coming file split of the sram driver, move the
    common data structures into a local header file that can be shared
    between files related to the sram driver.

    Signed-off-by: Dave Gerlach
    Acked-by: Tony Lindgren
    Signed-off-by: Greg Kroah-Hartman

    Dave Gerlach