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) What:		/dev/wmi/dell-smbios
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  2) Date:		November 2017
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  3) KernelVersion:	4.15
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  4) Contact:	"Mario Limonciello" <mario.limonciello@dell.com>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  5) Description:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  6) 		Perform SMBIOS calls on supported Dell machines.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  7) 		through the Dell ACPI-WMI interface.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  8) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  9) 		IOCTL's and buffer formats are defined in:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) 		<uapi/linux/wmi.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) 		1) To perform an SMBIOS call from userspace, you'll need to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) 		   first determine the minimum size of the calling interface
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) 		   buffer for your machine.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) 		   Platforms that contain larger buffers can return larger
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) 		   objects from the system firmware.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) 		   Commonly this size is either 4k or 32k.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) 		   To determine the size of the buffer read() a u64 dword from
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) 		   the WMI character device /dev/wmi/dell-smbios.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) 		2) After you've determined the minimum size of the calling
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) 		   interface buffer, you can allocate a structure that represents
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) 		   the structure documented above.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) 		3) In the 'length' object store the size of the buffer you
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) 		   determined above and allocated.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) 		4) In this buffer object, prepare as necessary for the SMBIOS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) 		   call you're interested in.  Typically SMBIOS buffers have
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) 		   "class", "select", and "input" defined to values that coincide
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) 		   with the data you are interested in.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) 		   Documenting class/select/input values is outside of the scope
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) 		   of this documentation. Check with the libsmbios project for
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) 		   further documentation on these values.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) 		6) Run the call by using ioctl() as described in the header.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) 		7) The output will be returned in the buffer object.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) 		8) Be sure to free up your allocated object.