xref: /linux/Documentation/firmware-guide/acpi/chromeos-acpi-device.rst (revision a1c613ae4c322ddd58d5a8539dbfba2a0380a8c0)
10a4cad9cSEnric Balletbo i Serra.. SPDX-License-Identifier: GPL-2.0
20a4cad9cSEnric Balletbo i Serra
30a4cad9cSEnric Balletbo i Serra=====================
40a4cad9cSEnric Balletbo i SerraChrome OS ACPI Device
50a4cad9cSEnric Balletbo i Serra=====================
60a4cad9cSEnric Balletbo i Serra
70a4cad9cSEnric Balletbo i SerraHardware functionality specific to Chrome OS is exposed through a Chrome OS ACPI device.
8*703e7713STzung-Bi ShihThe plug and play ID of a Chrome OS ACPI device is GGL0001 and the hardware ID is
9*703e7713STzung-Bi ShihGOOG0016.  The following ACPI objects are supported:
100a4cad9cSEnric Balletbo i Serra
110a4cad9cSEnric Balletbo i Serra.. flat-table:: Supported ACPI Objects
120a4cad9cSEnric Balletbo i Serra   :widths: 1 2
130a4cad9cSEnric Balletbo i Serra   :header-rows: 1
140a4cad9cSEnric Balletbo i Serra
150a4cad9cSEnric Balletbo i Serra   * - Object
160a4cad9cSEnric Balletbo i Serra     - Description
170a4cad9cSEnric Balletbo i Serra
180a4cad9cSEnric Balletbo i Serra   * - CHSW
190a4cad9cSEnric Balletbo i Serra     - Chrome OS switch positions
200a4cad9cSEnric Balletbo i Serra
210a4cad9cSEnric Balletbo i Serra   * - HWID
220a4cad9cSEnric Balletbo i Serra     - Chrome OS hardware ID
230a4cad9cSEnric Balletbo i Serra
240a4cad9cSEnric Balletbo i Serra   * - FWID
250a4cad9cSEnric Balletbo i Serra     - Chrome OS firmware version
260a4cad9cSEnric Balletbo i Serra
270a4cad9cSEnric Balletbo i Serra   * - FRID
280a4cad9cSEnric Balletbo i Serra     - Chrome OS read-only firmware version
290a4cad9cSEnric Balletbo i Serra
300a4cad9cSEnric Balletbo i Serra   * - BINF
310a4cad9cSEnric Balletbo i Serra     - Chrome OS boot information
320a4cad9cSEnric Balletbo i Serra
330a4cad9cSEnric Balletbo i Serra   * - GPIO
340a4cad9cSEnric Balletbo i Serra     - Chrome OS GPIO assignments
350a4cad9cSEnric Balletbo i Serra
360a4cad9cSEnric Balletbo i Serra   * - VBNV
370a4cad9cSEnric Balletbo i Serra     - Chrome OS NVRAM locations
380a4cad9cSEnric Balletbo i Serra
390a4cad9cSEnric Balletbo i Serra   * - VDTA
400a4cad9cSEnric Balletbo i Serra     - Chrome OS verified boot data
410a4cad9cSEnric Balletbo i Serra
420a4cad9cSEnric Balletbo i Serra   * - FMAP
430a4cad9cSEnric Balletbo i Serra     - Chrome OS flashmap base address
440a4cad9cSEnric Balletbo i Serra
450a4cad9cSEnric Balletbo i Serra   * - MLST
460a4cad9cSEnric Balletbo i Serra     - Chrome OS method list
470a4cad9cSEnric Balletbo i Serra
480a4cad9cSEnric Balletbo i SerraCHSW (Chrome OS switch positions)
490a4cad9cSEnric Balletbo i Serra=================================
500a4cad9cSEnric Balletbo i SerraThis control method returns the switch positions for Chrome OS specific hardware switches.
510a4cad9cSEnric Balletbo i Serra
520a4cad9cSEnric Balletbo i SerraArguments:
530a4cad9cSEnric Balletbo i Serra----------
540a4cad9cSEnric Balletbo i SerraNone
550a4cad9cSEnric Balletbo i Serra
560a4cad9cSEnric Balletbo i SerraResult code:
570a4cad9cSEnric Balletbo i Serra------------
580a4cad9cSEnric Balletbo i SerraAn integer containing the switch positions as bitfields:
590a4cad9cSEnric Balletbo i Serra
600a4cad9cSEnric Balletbo i Serra.. flat-table::
610a4cad9cSEnric Balletbo i Serra   :widths: 1 2
620a4cad9cSEnric Balletbo i Serra
630a4cad9cSEnric Balletbo i Serra   * - 0x00000002
640a4cad9cSEnric Balletbo i Serra     - Recovery button was pressed when x86 firmware booted.
650a4cad9cSEnric Balletbo i Serra
660a4cad9cSEnric Balletbo i Serra   * - 0x00000004
670a4cad9cSEnric Balletbo i Serra     - Recovery button was pressed when EC firmware booted. (required if EC EEPROM is
680a4cad9cSEnric Balletbo i Serra       rewritable; otherwise optional)
690a4cad9cSEnric Balletbo i Serra
700a4cad9cSEnric Balletbo i Serra   * - 0x00000020
710a4cad9cSEnric Balletbo i Serra     - Developer switch was enabled when x86 firmware booted.
720a4cad9cSEnric Balletbo i Serra
730a4cad9cSEnric Balletbo i Serra   * - 0x00000200
740a4cad9cSEnric Balletbo i Serra     - Firmware write protection was disabled when x86 firmware booted. (required if
750a4cad9cSEnric Balletbo i Serra       firmware write protection is controlled through x86 BIOS; otherwise optional)
760a4cad9cSEnric Balletbo i Serra
770a4cad9cSEnric Balletbo i SerraAll other bits are reserved and should be set to 0.
780a4cad9cSEnric Balletbo i Serra
790a4cad9cSEnric Balletbo i SerraHWID (Chrome OS hardware ID)
800a4cad9cSEnric Balletbo i Serra============================
810a4cad9cSEnric Balletbo i SerraThis control method returns the hardware ID for the Chromebook.
820a4cad9cSEnric Balletbo i Serra
830a4cad9cSEnric Balletbo i SerraArguments:
840a4cad9cSEnric Balletbo i Serra----------
850a4cad9cSEnric Balletbo i SerraNone
860a4cad9cSEnric Balletbo i Serra
870a4cad9cSEnric Balletbo i SerraResult code:
880a4cad9cSEnric Balletbo i Serra------------
890a4cad9cSEnric Balletbo i SerraA null-terminated ASCII string containing the hardware ID from the Model-Specific Data area of
900a4cad9cSEnric Balletbo i SerraEEPROM.
910a4cad9cSEnric Balletbo i Serra
920a4cad9cSEnric Balletbo i SerraNote that the hardware ID can be up to 256 characters long, including the terminating null.
930a4cad9cSEnric Balletbo i Serra
940a4cad9cSEnric Balletbo i SerraFWID (Chrome OS firmware version)
950a4cad9cSEnric Balletbo i Serra=================================
960a4cad9cSEnric Balletbo i SerraThis control method returns the firmware version for the rewritable portion of the main
970a4cad9cSEnric Balletbo i Serraprocessor firmware.
980a4cad9cSEnric Balletbo i Serra
990a4cad9cSEnric Balletbo i SerraArguments:
1000a4cad9cSEnric Balletbo i Serra----------
1010a4cad9cSEnric Balletbo i SerraNone
1020a4cad9cSEnric Balletbo i Serra
1030a4cad9cSEnric Balletbo i SerraResult code:
1040a4cad9cSEnric Balletbo i Serra------------
1050a4cad9cSEnric Balletbo i SerraA null-terminated ASCII string containing the complete firmware version for the rewritable
1060a4cad9cSEnric Balletbo i Serraportion of the main processor firmware.
1070a4cad9cSEnric Balletbo i Serra
1080a4cad9cSEnric Balletbo i SerraFRID (Chrome OS read-only firmware version)
1090a4cad9cSEnric Balletbo i Serra===========================================
1100a4cad9cSEnric Balletbo i SerraThis control method returns the firmware version for the read-only portion of the main
1110a4cad9cSEnric Balletbo i Serraprocessor firmware.
1120a4cad9cSEnric Balletbo i Serra
1130a4cad9cSEnric Balletbo i SerraArguments:
1140a4cad9cSEnric Balletbo i Serra----------
1150a4cad9cSEnric Balletbo i SerraNone
1160a4cad9cSEnric Balletbo i Serra
1170a4cad9cSEnric Balletbo i SerraResult code:
1180a4cad9cSEnric Balletbo i Serra------------
1190a4cad9cSEnric Balletbo i SerraA null-terminated ASCII string containing the complete firmware version for the read-only
1200a4cad9cSEnric Balletbo i Serra(bootstrap + recovery ) portion of the main processor firmware.
1210a4cad9cSEnric Balletbo i Serra
1220a4cad9cSEnric Balletbo i SerraBINF (Chrome OS boot information)
1230a4cad9cSEnric Balletbo i Serra=================================
1240a4cad9cSEnric Balletbo i SerraThis control method returns information about the current boot.
1250a4cad9cSEnric Balletbo i Serra
1260a4cad9cSEnric Balletbo i SerraArguments:
1270a4cad9cSEnric Balletbo i Serra----------
1280a4cad9cSEnric Balletbo i SerraNone
1290a4cad9cSEnric Balletbo i Serra
1300a4cad9cSEnric Balletbo i SerraResult code:
1310a4cad9cSEnric Balletbo i Serra------------
1320a4cad9cSEnric Balletbo i Serra
1330a4cad9cSEnric Balletbo i Serra.. code-block::
1340a4cad9cSEnric Balletbo i Serra
1350a4cad9cSEnric Balletbo i Serra   Package {
1360a4cad9cSEnric Balletbo i Serra           Reserved1
1370a4cad9cSEnric Balletbo i Serra           Reserved2
1380a4cad9cSEnric Balletbo i Serra           Active EC Firmware
1390a4cad9cSEnric Balletbo i Serra           Active Main Firmware Type
1400a4cad9cSEnric Balletbo i Serra           Reserved5
1410a4cad9cSEnric Balletbo i Serra   }
1420a4cad9cSEnric Balletbo i Serra
1430a4cad9cSEnric Balletbo i Serra.. flat-table::
1440a4cad9cSEnric Balletbo i Serra   :widths: 1 1 2
1450a4cad9cSEnric Balletbo i Serra   :header-rows: 1
1460a4cad9cSEnric Balletbo i Serra
1470a4cad9cSEnric Balletbo i Serra   * - Field
1480a4cad9cSEnric Balletbo i Serra     - Format
1490a4cad9cSEnric Balletbo i Serra     - Description
1500a4cad9cSEnric Balletbo i Serra
1510a4cad9cSEnric Balletbo i Serra   * - Reserved1
1520a4cad9cSEnric Balletbo i Serra     - DWORD
1530a4cad9cSEnric Balletbo i Serra     - Set to 256 (0x100). This indicates this field is no longer used.
1540a4cad9cSEnric Balletbo i Serra
1550a4cad9cSEnric Balletbo i Serra   * - Reserved2
1560a4cad9cSEnric Balletbo i Serra     - DWORD
1570a4cad9cSEnric Balletbo i Serra     - Set to 256 (0x100). This indicates this field is no longer used.
1580a4cad9cSEnric Balletbo i Serra
1590a4cad9cSEnric Balletbo i Serra   * - Active EC firmware
1600a4cad9cSEnric Balletbo i Serra     - DWORD
1610a4cad9cSEnric Balletbo i Serra     - The EC firmware which was used during boot.
1620a4cad9cSEnric Balletbo i Serra
1630a4cad9cSEnric Balletbo i Serra       - 0 - Read-only (recovery) firmware
1640a4cad9cSEnric Balletbo i Serra       - 1 - Rewritable firmware.
1650a4cad9cSEnric Balletbo i Serra
1660a4cad9cSEnric Balletbo i Serra       Set to 0 if EC firmware is always read-only.
1670a4cad9cSEnric Balletbo i Serra
1680a4cad9cSEnric Balletbo i Serra   * - Active Main Firmware Type
1690a4cad9cSEnric Balletbo i Serra     - DWORD
1700a4cad9cSEnric Balletbo i Serra     - The main firmware type which was used during boot.
1710a4cad9cSEnric Balletbo i Serra
1720a4cad9cSEnric Balletbo i Serra       - 0 - Recovery
1730a4cad9cSEnric Balletbo i Serra       - 1 - Normal
1740a4cad9cSEnric Balletbo i Serra       - 2 - Developer
1750a4cad9cSEnric Balletbo i Serra       - 3 - netboot (factory installation only)
1760a4cad9cSEnric Balletbo i Serra
1770a4cad9cSEnric Balletbo i Serra       Other values are reserved.
1780a4cad9cSEnric Balletbo i Serra
1790a4cad9cSEnric Balletbo i Serra   * - Reserved5
1800a4cad9cSEnric Balletbo i Serra     - DWORD
1810a4cad9cSEnric Balletbo i Serra     - Set to 256 (0x100). This indicates this field is no longer used.
1820a4cad9cSEnric Balletbo i Serra
1830a4cad9cSEnric Balletbo i SerraGPIO (Chrome OS GPIO assignments)
1840a4cad9cSEnric Balletbo i Serra=================================
1850a4cad9cSEnric Balletbo i SerraThis control method returns information about Chrome OS specific GPIO assignments for
1860a4cad9cSEnric Balletbo i SerraChrome OS hardware, so the kernel can directly control that hardware.
1870a4cad9cSEnric Balletbo i Serra
1880a4cad9cSEnric Balletbo i SerraArguments:
1890a4cad9cSEnric Balletbo i Serra----------
1900a4cad9cSEnric Balletbo i SerraNone
1910a4cad9cSEnric Balletbo i Serra
1920a4cad9cSEnric Balletbo i SerraResult code:
1930a4cad9cSEnric Balletbo i Serra------------
1940a4cad9cSEnric Balletbo i Serra.. code-block::
1950a4cad9cSEnric Balletbo i Serra
1960a4cad9cSEnric Balletbo i Serra        Package {
1970a4cad9cSEnric Balletbo i Serra                Package {
1980a4cad9cSEnric Balletbo i Serra                        // First GPIO assignment
1990a4cad9cSEnric Balletbo i Serra                        Signal Type        //DWORD
2000a4cad9cSEnric Balletbo i Serra                        Attributes         //DWORD
2010a4cad9cSEnric Balletbo i Serra                        Controller Offset  //DWORD
2020a4cad9cSEnric Balletbo i Serra                        Controller Name    //ASCIIZ
2030a4cad9cSEnric Balletbo i Serra                },
2040a4cad9cSEnric Balletbo i Serra                ...
2050a4cad9cSEnric Balletbo i Serra                Package {
2060a4cad9cSEnric Balletbo i Serra                        // Last GPIO assignment
2070a4cad9cSEnric Balletbo i Serra                        Signal Type        //DWORD
2080a4cad9cSEnric Balletbo i Serra                        Attributes         //DWORD
2090a4cad9cSEnric Balletbo i Serra                        Controller Offset  //DWORD
2100a4cad9cSEnric Balletbo i Serra                        Controller Name    //ASCIIZ
2110a4cad9cSEnric Balletbo i Serra                }
2120a4cad9cSEnric Balletbo i Serra        }
2130a4cad9cSEnric Balletbo i Serra
2140a4cad9cSEnric Balletbo i SerraWhere ASCIIZ means a null-terminated ASCII string.
2150a4cad9cSEnric Balletbo i Serra
2160a4cad9cSEnric Balletbo i Serra.. flat-table::
2170a4cad9cSEnric Balletbo i Serra   :widths: 1 1 2
2180a4cad9cSEnric Balletbo i Serra   :header-rows: 1
2190a4cad9cSEnric Balletbo i Serra
2200a4cad9cSEnric Balletbo i Serra   * - Field
2210a4cad9cSEnric Balletbo i Serra     - Format
2220a4cad9cSEnric Balletbo i Serra     - Description
2230a4cad9cSEnric Balletbo i Serra
2240a4cad9cSEnric Balletbo i Serra   * - Signal Type
2250a4cad9cSEnric Balletbo i Serra     - DWORD
2260a4cad9cSEnric Balletbo i Serra     - Type of GPIO signal
2270a4cad9cSEnric Balletbo i Serra
2280a4cad9cSEnric Balletbo i Serra       - 0x00000001 - Recovery button
2290a4cad9cSEnric Balletbo i Serra       - 0x00000002 - Developer mode switch
2300a4cad9cSEnric Balletbo i Serra       - 0x00000003 - Firmware write protection switch
2310a4cad9cSEnric Balletbo i Serra       - 0x00000100 - Debug header GPIO 0
2320a4cad9cSEnric Balletbo i Serra       - ...
2330a4cad9cSEnric Balletbo i Serra       - 0x000001FF - Debug header GPIO 255
2340a4cad9cSEnric Balletbo i Serra
2350a4cad9cSEnric Balletbo i Serra       Other values are reserved.
2360a4cad9cSEnric Balletbo i Serra
2370a4cad9cSEnric Balletbo i Serra   * - Attributes
2380a4cad9cSEnric Balletbo i Serra     - DWORD
2390a4cad9cSEnric Balletbo i Serra     - Signal attributes as bitfields:
2400a4cad9cSEnric Balletbo i Serra
2410a4cad9cSEnric Balletbo i Serra       - 0x00000001 - Signal is active-high (for button, a GPIO value
2420a4cad9cSEnric Balletbo i Serra         of 1 means the button is pressed; for switches, a GPIO value
2430a4cad9cSEnric Balletbo i Serra         of 1 means the switch is enabled). If this bit is 0, the signal
2440a4cad9cSEnric Balletbo i Serra         is active low. Set to 0 for debug header GPIOs.
2450a4cad9cSEnric Balletbo i Serra
2460a4cad9cSEnric Balletbo i Serra   * - Controller Offset
2470a4cad9cSEnric Balletbo i Serra     - DWORD
2480a4cad9cSEnric Balletbo i Serra     - GPIO number on the specified controller.
2490a4cad9cSEnric Balletbo i Serra
2500a4cad9cSEnric Balletbo i Serra   * - Controller Name
2510a4cad9cSEnric Balletbo i Serra     - ASCIIZ
2520a4cad9cSEnric Balletbo i Serra     - Name of the controller for the GPIO.
2530a4cad9cSEnric Balletbo i Serra       Currently supported names:
2540a4cad9cSEnric Balletbo i Serra       "NM10" - Intel NM10 chip
2550a4cad9cSEnric Balletbo i Serra
2560a4cad9cSEnric Balletbo i SerraVBNV (Chrome OS NVRAM locations)
2570a4cad9cSEnric Balletbo i Serra================================
2580a4cad9cSEnric Balletbo i SerraThis control method returns information about the NVRAM (CMOS) locations used to
2590a4cad9cSEnric Balletbo i Serracommunicate with the BIOS.
2600a4cad9cSEnric Balletbo i Serra
2610a4cad9cSEnric Balletbo i SerraArguments:
2620a4cad9cSEnric Balletbo i Serra----------
2630a4cad9cSEnric Balletbo i SerraNone
2640a4cad9cSEnric Balletbo i Serra
2650a4cad9cSEnric Balletbo i SerraResult code:
2660a4cad9cSEnric Balletbo i Serra------------
2670a4cad9cSEnric Balletbo i Serra.. code-block::
2680a4cad9cSEnric Balletbo i Serra
2690a4cad9cSEnric Balletbo i Serra        Package {
2700a4cad9cSEnric Balletbo i Serra                NV Storage Block Offset  //DWORD
2710a4cad9cSEnric Balletbo i Serra                NV Storage Block Size    //DWORD
2720a4cad9cSEnric Balletbo i Serra        }
2730a4cad9cSEnric Balletbo i Serra
2740a4cad9cSEnric Balletbo i Serra.. flat-table::
2750a4cad9cSEnric Balletbo i Serra   :widths: 1 1 2
2760a4cad9cSEnric Balletbo i Serra   :header-rows: 1
2770a4cad9cSEnric Balletbo i Serra
2780a4cad9cSEnric Balletbo i Serra   * - Field
2790a4cad9cSEnric Balletbo i Serra     - Format
2800a4cad9cSEnric Balletbo i Serra     - Description
2810a4cad9cSEnric Balletbo i Serra
2820a4cad9cSEnric Balletbo i Serra   * - NV Storage Block Offset
2830a4cad9cSEnric Balletbo i Serra     - DWORD
2840a4cad9cSEnric Balletbo i Serra     - Offset in CMOS bank 0 of the verified boot non-volatile storage block, counting from
2850a4cad9cSEnric Balletbo i Serra       the first writable CMOS byte (that is, offset=0 is the byte following the 14 bytes of
2860a4cad9cSEnric Balletbo i Serra       clock data).
2870a4cad9cSEnric Balletbo i Serra
2880a4cad9cSEnric Balletbo i Serra   * - NV Storage Block Size
2890a4cad9cSEnric Balletbo i Serra     - DWORD
2900a4cad9cSEnric Balletbo i Serra     - Size in bytes of the verified boot non-volatile storage block.
2910a4cad9cSEnric Balletbo i Serra
2920a4cad9cSEnric Balletbo i SerraFMAP (Chrome OS flashmap address)
2930a4cad9cSEnric Balletbo i Serra=================================
2940a4cad9cSEnric Balletbo i SerraThis control method returns the physical memory address of the start of the main processor
2950a4cad9cSEnric Balletbo i Serrafirmware flashmap.
2960a4cad9cSEnric Balletbo i Serra
2970a4cad9cSEnric Balletbo i SerraArguments:
2980a4cad9cSEnric Balletbo i Serra----------
2990a4cad9cSEnric Balletbo i SerraNone
3000a4cad9cSEnric Balletbo i Serra
3010a4cad9cSEnric Balletbo i SerraNoneResult code:
3020a4cad9cSEnric Balletbo i Serra----------------
3030a4cad9cSEnric Balletbo i SerraA DWORD containing the physical memory address of the start of the main processor firmware
3040a4cad9cSEnric Balletbo i Serraflashmap.
3050a4cad9cSEnric Balletbo i Serra
3060a4cad9cSEnric Balletbo i SerraVDTA (Chrome OS verified boot data)
3070a4cad9cSEnric Balletbo i Serra===================================
3080a4cad9cSEnric Balletbo i SerraThis control method returns the verified boot data block shared between the firmware
3090a4cad9cSEnric Balletbo i Serraverification step and the kernel verification step.
3100a4cad9cSEnric Balletbo i Serra
3110a4cad9cSEnric Balletbo i SerraArguments:
3120a4cad9cSEnric Balletbo i Serra----------
3130a4cad9cSEnric Balletbo i SerraNone
3140a4cad9cSEnric Balletbo i Serra
3150a4cad9cSEnric Balletbo i SerraResult code:
3160a4cad9cSEnric Balletbo i Serra------------
3170a4cad9cSEnric Balletbo i SerraA buffer containing the verified boot data block.
3180a4cad9cSEnric Balletbo i Serra
3190a4cad9cSEnric Balletbo i SerraMECK (Management Engine Checksum)
3200a4cad9cSEnric Balletbo i Serra=================================
3210a4cad9cSEnric Balletbo i SerraThis control method returns the SHA-1 or SHA-256 hash that is read out of the Management
3220a4cad9cSEnric Balletbo i SerraEngine extended registers during boot. The hash is exported via ACPI so the OS can verify that
3230a4cad9cSEnric Balletbo i Serrathe ME firmware has not changed. If Management Engine is not present, or if the firmware was
3240a4cad9cSEnric Balletbo i Serraunable to read the extended registers, this buffer can be zero.
3250a4cad9cSEnric Balletbo i Serra
3260a4cad9cSEnric Balletbo i SerraArguments:
3270a4cad9cSEnric Balletbo i Serra----------
3280a4cad9cSEnric Balletbo i SerraNone
3290a4cad9cSEnric Balletbo i Serra
3300a4cad9cSEnric Balletbo i SerraResult code:
3310a4cad9cSEnric Balletbo i Serra------------
3320a4cad9cSEnric Balletbo i SerraA buffer containing the ME hash.
3330a4cad9cSEnric Balletbo i Serra
3340a4cad9cSEnric Balletbo i SerraMLST (Chrome OS method list)
3350a4cad9cSEnric Balletbo i Serra============================
3360a4cad9cSEnric Balletbo i SerraThis control method returns a list of the other control methods supported by the Chrome OS
3370a4cad9cSEnric Balletbo i Serrahardware device.
3380a4cad9cSEnric Balletbo i Serra
3390a4cad9cSEnric Balletbo i SerraArguments:
3400a4cad9cSEnric Balletbo i Serra----------
3410a4cad9cSEnric Balletbo i SerraNone
3420a4cad9cSEnric Balletbo i Serra
3430a4cad9cSEnric Balletbo i SerraResult code:
3440a4cad9cSEnric Balletbo i Serra------------
3450a4cad9cSEnric Balletbo i SerraA package containing a list of null-terminated ASCII strings, one for each control method
3460a4cad9cSEnric Balletbo i Serrasupported by the Chrome OS hardware device, not including the MLST method itself.
3470a4cad9cSEnric Balletbo i SerraFor this version of the specification, the result is:
3480a4cad9cSEnric Balletbo i Serra
3490a4cad9cSEnric Balletbo i Serra.. code-block::
3500a4cad9cSEnric Balletbo i Serra
3510a4cad9cSEnric Balletbo i Serra        Package {
3520a4cad9cSEnric Balletbo i Serra                "CHSW",
3530a4cad9cSEnric Balletbo i Serra                "FWID",
3540a4cad9cSEnric Balletbo i Serra                "HWID",
3550a4cad9cSEnric Balletbo i Serra                "FRID",
3560a4cad9cSEnric Balletbo i Serra                "BINF",
3570a4cad9cSEnric Balletbo i Serra                "GPIO",
3580a4cad9cSEnric Balletbo i Serra                "VBNV",
3590a4cad9cSEnric Balletbo i Serra                "FMAP",
3600a4cad9cSEnric Balletbo i Serra                "VDTA",
3610a4cad9cSEnric Balletbo i Serra                "MECK"
3620a4cad9cSEnric Balletbo i Serra        }
363