Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

3 Commits   0 Branches   0 Tags
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   1) .. SPDX-License-Identifier: GPL-2.0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   2) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   3) =========
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   4) S/390 PCI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   5) =========
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   6) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   7) Authors:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   8)         - Pierre Morel
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   9) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  10) Copyright, IBM Corp. 2020
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  11) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  12) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  13) Command line parameters and debugfs entries
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  14) ===========================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  15) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  16) Command line parameters
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  17) -----------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  18) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  19) * nomio
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  20) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  21)   Do not use PCI Mapped I/O (MIO) instructions.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  22) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  23) * norid
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  24) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  25)   Ignore the RID field and force use of one PCI domain per PCI function.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  26) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  27) debugfs entries
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  28) ---------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  29) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  30) The S/390 debug feature (s390dbf) generates views to hold various debug results in sysfs directories of the form:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  31) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  32)  * /sys/kernel/debug/s390dbf/pci_*/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  33) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  34) For example:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  35) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  36)   - /sys/kernel/debug/s390dbf/pci_msg/sprintf
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  37)     Holds messages from the processing of PCI events, like machine check handling
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  38)     and setting of global functionality, like UID checking.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  39) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  40)   Change the level of logging to be more or less verbose by piping
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  41)   a number between 0 and 6 to  /sys/kernel/debug/s390dbf/pci_*/level. For
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  42)   details, see the documentation on the S/390 debug feature at
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  43)   Documentation/s390/s390dbf.rst.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  44) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  45) Sysfs entries
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  46) =============
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  47) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  48) Entries specific to zPCI functions and entries that hold zPCI information.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  49) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  50) * /sys/bus/pci/slots/XXXXXXXX
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  51) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  52)   The slot entries are set up using the function identifier (FID) of the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  53)   PCI function.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  54) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  55)   - /sys/bus/pci/slots/XXXXXXXX/power
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  56) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  57)   A physical function that currently supports a virtual function cannot be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  58)   powered off until all virtual functions are removed with:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  59)   echo 0 > /sys/bus/pci/devices/XXXX:XX:XX.X/sriov_numvf
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  60) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  61) * /sys/bus/pci/devices/XXXX:XX:XX.X/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  62) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  63)   - function_id
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  64)     A zPCI function identifier that uniquely identifies the function in the Z server.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  65) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  66)   - function_handle
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  67)     Low-level identifier used for a configured PCI function.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  68)     It might be useful for debuging.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  69) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  70)   - pchid
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  71)     Model-dependent location of the I/O adapter.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  72) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  73)   - pfgid
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  74)     PCI function group ID, functions that share identical functionality
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  75)     use a common identifier.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  76)     A PCI group defines interrupts, IOMMU, IOTLB, and DMA specifics.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  77) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  78)   - vfn
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  79)     The virtual function number, from 1 to N for virtual functions,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  80)     0 for physical functions.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  81) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  82)   - pft
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  83)     The PCI function type
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  84) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  85)   - port
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  86)     The port corresponds to the physical port the function is attached to.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  87)     It also gives an indication of the physical function a virtual function
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  88)     is attached to.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  89) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  90)   - uid
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  91)     The unique identifier (UID) is defined when configuring an LPAR and is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  92)     unique in the LPAR.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  93) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  94)   - pfip/segmentX
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  95)     The segments determine the isolation of a function.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  96)     They correspond to the physical path to the function.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  97)     The more the segments are different, the more the functions are isolated.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  98) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  99) Enumeration and hotplug
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) =======================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) The PCI address consists of four parts: domain, bus, device and function,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) and is of this form: DDDD:BB:dd.f
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) * When not using multi-functions (norid is set, or the firmware does not
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106)   support multi-functions):
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108)   - There is only one function per domain.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110)   - The domain is set from the zPCI function's UID as defined during the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111)     LPAR creation.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) * When using multi-functions (norid parameter is not set),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114)   zPCI functions are addressed differently:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116)   - There is still only one bus per domain.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118)   - There can be up to 256 functions per bus.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120)   - The domain part of the address of all functions for
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121)     a multi-Function device is set from the zPCI function's UID as defined
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122)     in the LPAR creation for the function zero.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124)   - New functions will only be ready for use after the function zero
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125)     (the function with devfn 0) has been enumerated.