diff options
author | Wolfram Sang <wsa+renesas@sang-engineering.com> | 2019-02-19 19:39:46 +0300 |
---|---|---|
committer | Wolfram Sang <wsa@the-dreams.de> | 2019-02-23 12:34:08 +0300 |
commit | bb6bdd51c838e8d046a84502f12619de4fd58d69 (patch) | |
tree | 45616a63ec1871c1ec0f7e22e9abd3c489a86ade /Documentation/i2c | |
parent | 63e57b6f191db99ffdd0dc6c7b9ee6b2cf7abb04 (diff) | |
download | linux-bb6bdd51c838e8d046a84502f12619de4fd58d69.tar.xz |
i2c: gpio: fault-injector: add 'inject_panic' injector
Add a fault injector simulating a Kernel panic happening after starting
a transfer. Read the docs for its usage.
Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
Diffstat (limited to 'Documentation/i2c')
-rw-r--r-- | Documentation/i2c/gpio-fault-injection | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/Documentation/i2c/gpio-fault-injection b/Documentation/i2c/gpio-fault-injection index 1f1bb96a64bd..c87f416d53dd 100644 --- a/Documentation/i2c/gpio-fault-injection +++ b/Documentation/i2c/gpio-fault-injection @@ -108,3 +108,29 @@ idle bus is: # echo 200 > lose_arbitration & # i2cget -y <bus_to_test> 0x3f + +Panic during transfer +===================== + +This fault injector will create a Kernel panic once the master under test +started a transfer. This usually means that the state machine of the bus master +driver will be ungracefully interrupted and the bus may end up in an unusual +state. Use this to check if your shutdown/reboot/boot code can handle this +scenario. + +"inject_panic" +-------------- + +This file is write only and you need to write the delay between the detected +start of a transmission and the induced Kernel panic (in µs, maximum is 100ms). +The calling process will then sleep and wait for the next bus clock. The +process is interruptible, though. + +Start of a transfer is detected by waiting for SCL going down by the master +under test. A good starting point for using this fault injector is: + +# echo 0 > inject_panic & +# i2cget -y <bus_to_test> <some_address> + +Note that there doesn't need to be a device listening to the address you are +using. Results may vary depending on that, though. |