cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

gpio-mockup.rst (2097B)


      1.. SPDX-License-Identifier: GPL-2.0-only
      2
      3GPIO Testing Driver
      4===================
      5
      6The GPIO Testing Driver (gpio-mockup) provides a way to create simulated GPIO
      7chips for testing purposes. The lines exposed by these chips can be accessed
      8using the standard GPIO character device interface as well as manipulated
      9using the dedicated debugfs directory structure.
     10
     11Creating simulated chips using module params
     12--------------------------------------------
     13
     14When loading the gpio-mockup driver a number of parameters can be passed to the
     15module.
     16
     17    gpio_mockup_ranges
     18
     19        This parameter takes an argument in the form of an array of integer
     20        pairs. Each pair defines the base GPIO number (non-negative integer)
     21        and the first number after the last of this chip. If the base GPIO
     22        is -1, the gpiolib will assign it automatically. while the following
     23        parameter is the number of lines exposed by the chip.
     24
     25        Example: gpio_mockup_ranges=-1,8,-1,16,405,409
     26
     27        The line above creates three chips. The first one will expose 8 lines,
     28        the second 16 and the third 4. The base GPIO for the third chip is set
     29        to 405 while for two first chips it will be assigned automatically.
     30
     31    gpio_mockup_named_lines
     32
     33        This parameter doesn't take any arguments. It lets the driver know that
     34        GPIO lines exposed by it should be named.
     35
     36        The name format is: gpio-mockup-X-Y where X is mockup chip's ID
     37        and Y is the line offset.
     38
     39Manipulating simulated lines
     40----------------------------
     41
     42Each mockup chip creates its own subdirectory in /sys/kernel/debug/gpio-mockup/.
     43The directory is named after the chip's label. A symlink is also created, named
     44after the chip's name, which points to the label directory.
     45
     46Inside each subdirectory, there's a separate attribute for each GPIO line. The
     47name of the attribute represents the line's offset in the chip.
     48
     49Reading from a line attribute returns the current value. Writing to it (0 or 1)
     50changes the configuration of the simulated pull-up/pull-down resistor
     51(1 - pull-up, 0 - pull-down).