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) HPSA - Hewlett Packard Smart Array driver
^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) This file describes the hpsa SCSI driver for HP Smart Array controllers.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   8) The hpsa driver is intended to supplant the cciss driver for newer
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   9) Smart Array controllers.  The hpsa driver is a SCSI driver, while the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  10) cciss driver is a "block" driver.  Actually cciss is both a block
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  11) driver (for logical drives) AND a SCSI driver (for tape drives). This
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  12) "split-brained" design of the cciss driver is a source of excess
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  13) complexity and eliminating that complexity is one of the reasons
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  14) for hpsa to exist.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  15) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  16) Supported devices
^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) - Smart Array P212
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  20) - Smart Array P410
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  21) - Smart Array P410i
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  22) - Smart Array P411
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  23) - Smart Array P812
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  24) - Smart Array P712m
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  25) - Smart Array P711m
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  26) - StorageWorks P1210m
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  27) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  28) Additionally, older Smart Arrays may work with the hpsa driver if the kernel
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  29) boot parameter "hpsa_allow_any=1" is specified, however these are not tested
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  30) nor supported by HP with this driver.  For older Smart Arrays, the cciss
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  31) driver should still be used.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  32) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  33) The "hpsa_simple_mode=1" boot parameter may be used to prevent the driver from
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  34) putting the controller into "performant" mode.  The difference is that with simple
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  35) mode, each command completion requires an interrupt, while with "performant mode"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  36) (the default, and ordinarily better performing) it is possible to have multiple
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  37) command completions indicated by a single interrupt.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  38) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  39) HPSA specific entries in /sys
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  40) =============================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  41) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  42)   In addition to the generic SCSI attributes available in /sys, hpsa supports
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  43)   the following attributes:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  44) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  45) HPSA specific host attributes
^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)   ::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  49) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  50)     /sys/class/scsi_host/host*/rescan
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  51)     /sys/class/scsi_host/host*/firmware_revision
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  52)     /sys/class/scsi_host/host*/resettable
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  53)     /sys/class/scsi_host/host*/transport_mode
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  54) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  55)   the host "rescan" attribute is a write only attribute.  Writing to this
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  56)   attribute will cause the driver to scan for new, changed, or removed devices
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  57)   (e.g. hot-plugged tape drives, or newly configured or deleted logical drives,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  58)   etc.) and notify the SCSI midlayer of any changes detected.  Normally this is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  59)   triggered automatically by HP's Array Configuration Utility (either the GUI or
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  60)   command line variety) so for logical drive changes, the user should not
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  61)   normally have to use this.  It may be useful when hot plugging devices like
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  62)   tape drives, or entire storage boxes containing pre-configured logical drives.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  63) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  64)   The "firmware_revision" attribute contains the firmware version of the Smart Array.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  65)   For example::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  66) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  67) 	root@host:/sys/class/scsi_host/host4# cat firmware_revision
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  68) 	7.14
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  69) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  70)   The transport_mode indicates whether the controller is in "performant"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  71)   or "simple" mode.  This is controlled by the "hpsa_simple_mode" module
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  72)   parameter.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  73) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  74)   The "resettable" read-only attribute indicates whether a particular
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  75)   controller is able to honor the "reset_devices" kernel parameter.  If the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  76)   device is resettable, this file will contain a "1", otherwise, a "0".  This
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  77)   parameter is used by kdump, for example, to reset the controller at driver
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  78)   load time to eliminate any outstanding commands on the controller and get the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  79)   controller into a known state so that the kdump initiated i/o will work right
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  80)   and not be disrupted in any way by stale commands or other stale state
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  81)   remaining on the controller from the previous kernel.  This attribute enables
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  82)   kexec tools to warn the user if they attempt to designate a device which is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  83)   unable to honor the reset_devices kernel parameter as a dump device.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  84) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  85) HPSA specific disk attributes
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  86) -----------------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  87) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  88)   ::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  89) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  90)     /sys/class/scsi_disk/c:b:t:l/device/unique_id
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  91)     /sys/class/scsi_disk/c:b:t:l/device/raid_level
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  92)     /sys/class/scsi_disk/c:b:t:l/device/lunid
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  93) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  94)   (where c:b:t:l are the controller, bus, target and lun of the device)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  95) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  96)   For example::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  97) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  98) 	root@host:/sys/class/scsi_disk/4:0:0:0/device# cat unique_id
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  99) 	600508B1001044395355323037570F77
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) 	root@host:/sys/class/scsi_disk/4:0:0:0/device# cat lunid
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) 	0x0000004000000000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) 	root@host:/sys/class/scsi_disk/4:0:0:0/device# cat raid_level
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) 	RAID 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) HPSA specific ioctls
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) ====================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108)   For compatibility with applications written for the cciss driver, many, but
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109)   not all of the ioctls supported by the cciss driver are also supported by the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110)   hpsa driver.  The data structures used by these are described in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111)   include/linux/cciss_ioctl.h
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113)   CCISS_DEREGDISK, CCISS_REGNEWDISK, CCISS_REGNEWD
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) 	The above three ioctls all do exactly the same thing, which is to cause the driver
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) 	to rescan for new devices.  This does exactly the same thing as writing to the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) 	hpsa specific host "rescan" attribute.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118)   CCISS_GETPCIINFO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) 	Returns PCI domain, bus, device and function and "board ID" (PCI subsystem ID).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121)   CCISS_GETDRIVVER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122) 	Returns driver version in three bytes encoded as::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124) 		(major_version << 16) | (minor_version << 8) | (subminor_version)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126)   CCISS_PASSTHRU, CCISS_BIG_PASSTHRU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127) 	Allows "BMIC" and "CISS" commands to be passed through to the Smart Array.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128) 	These are used extensively by the HP Array Configuration Utility, SNMP storage
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129) 	agents, etc.  See cciss_vol_status at http://cciss.sf.net for some examples.