Home | History | Annotate | Line # | Download | only in utilities
utresdecode.c revision 1.1.1.4.4.1
      1          1.1  christos /*******************************************************************************
      2          1.1  christos  *
      3          1.1  christos  * Module Name: utresdecode - Resource descriptor keyword strings
      4          1.1  christos  *
      5          1.1  christos  ******************************************************************************/
      6          1.1  christos 
      7          1.1  christos /*
      8  1.1.1.4.4.1   thorpej  * Copyright (C) 2000 - 2021, Intel Corp.
      9          1.1  christos  * All rights reserved.
     10          1.1  christos  *
     11          1.1  christos  * Redistribution and use in source and binary forms, with or without
     12          1.1  christos  * modification, are permitted provided that the following conditions
     13          1.1  christos  * are met:
     14          1.1  christos  * 1. Redistributions of source code must retain the above copyright
     15          1.1  christos  *    notice, this list of conditions, and the following disclaimer,
     16          1.1  christos  *    without modification.
     17          1.1  christos  * 2. Redistributions in binary form must reproduce at minimum a disclaimer
     18          1.1  christos  *    substantially similar to the "NO WARRANTY" disclaimer below
     19          1.1  christos  *    ("Disclaimer") and any redistribution must be conditioned upon
     20          1.1  christos  *    including a substantially similar Disclaimer requirement for further
     21          1.1  christos  *    binary redistribution.
     22          1.1  christos  * 3. Neither the names of the above-listed copyright holders nor the names
     23          1.1  christos  *    of any contributors may be used to endorse or promote products derived
     24          1.1  christos  *    from this software without specific prior written permission.
     25          1.1  christos  *
     26          1.1  christos  * Alternatively, this software may be distributed under the terms of the
     27          1.1  christos  * GNU General Public License ("GPL") version 2 as published by the Free
     28          1.1  christos  * Software Foundation.
     29          1.1  christos  *
     30          1.1  christos  * NO WARRANTY
     31          1.1  christos  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
     32          1.1  christos  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
     33  1.1.1.4.4.1   thorpej  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
     34          1.1  christos  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
     35          1.1  christos  * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
     36          1.1  christos  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
     37          1.1  christos  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
     38          1.1  christos  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
     39          1.1  christos  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
     40          1.1  christos  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
     41          1.1  christos  * POSSIBILITY OF SUCH DAMAGES.
     42          1.1  christos  */
     43          1.1  christos 
     44          1.1  christos #include "acpi.h"
     45          1.1  christos #include "accommon.h"
     46          1.1  christos #include "acresrc.h"
     47          1.1  christos 
     48          1.1  christos 
     49          1.1  christos #define _COMPONENT          ACPI_UTILITIES
     50          1.1  christos         ACPI_MODULE_NAME    ("utresdecode")
     51          1.1  christos 
     52          1.1  christos 
     53          1.1  christos #if defined (ACPI_DEBUG_OUTPUT) || \
     54          1.1  christos     defined (ACPI_DISASSEMBLER) || \
     55          1.1  christos     defined (ACPI_DEBUGGER)
     56          1.1  christos 
     57          1.1  christos /*
     58          1.1  christos  * Strings used to decode resource descriptors.
     59          1.1  christos  * Used by both the disassembler and the debugger resource dump routines
     60          1.1  christos  */
     61          1.1  christos const char                      *AcpiGbl_BmDecode[] =
     62          1.1  christos {
     63          1.1  christos     "NotBusMaster",
     64          1.1  christos     "BusMaster"
     65          1.1  christos };
     66          1.1  christos 
     67          1.1  christos const char                      *AcpiGbl_ConfigDecode[] =
     68          1.1  christos {
     69          1.1  christos     "0 - Good Configuration",
     70          1.1  christos     "1 - Acceptable Configuration",
     71          1.1  christos     "2 - Suboptimal Configuration",
     72          1.1  christos     "3 - ***Invalid Configuration***",
     73          1.1  christos };
     74          1.1  christos 
     75          1.1  christos const char                      *AcpiGbl_ConsumeDecode[] =
     76          1.1  christos {
     77          1.1  christos     "ResourceProducer",
     78          1.1  christos     "ResourceConsumer"
     79          1.1  christos };
     80          1.1  christos 
     81          1.1  christos const char                      *AcpiGbl_DecDecode[] =
     82          1.1  christos {
     83          1.1  christos     "PosDecode",
     84          1.1  christos     "SubDecode"
     85          1.1  christos };
     86          1.1  christos 
     87          1.1  christos const char                      *AcpiGbl_HeDecode[] =
     88          1.1  christos {
     89          1.1  christos     "Level",
     90          1.1  christos     "Edge"
     91          1.1  christos };
     92          1.1  christos 
     93          1.1  christos const char                      *AcpiGbl_IoDecode[] =
     94          1.1  christos {
     95          1.1  christos     "Decode10",
     96          1.1  christos     "Decode16"
     97          1.1  christos };
     98          1.1  christos 
     99          1.1  christos const char                      *AcpiGbl_LlDecode[] =
    100          1.1  christos {
    101          1.1  christos     "ActiveHigh",
    102          1.1  christos     "ActiveLow",
    103          1.1  christos     "ActiveBoth",
    104          1.1  christos     "Reserved"
    105          1.1  christos };
    106          1.1  christos 
    107          1.1  christos const char                      *AcpiGbl_MaxDecode[] =
    108          1.1  christos {
    109          1.1  christos     "MaxNotFixed",
    110          1.1  christos     "MaxFixed"
    111          1.1  christos };
    112          1.1  christos 
    113          1.1  christos const char                      *AcpiGbl_MemDecode[] =
    114          1.1  christos {
    115          1.1  christos     "NonCacheable",
    116          1.1  christos     "Cacheable",
    117          1.1  christos     "WriteCombining",
    118          1.1  christos     "Prefetchable"
    119          1.1  christos };
    120          1.1  christos 
    121          1.1  christos const char                      *AcpiGbl_MinDecode[] =
    122          1.1  christos {
    123          1.1  christos     "MinNotFixed",
    124          1.1  christos     "MinFixed"
    125          1.1  christos };
    126          1.1  christos 
    127          1.1  christos const char                      *AcpiGbl_MtpDecode[] =
    128          1.1  christos {
    129          1.1  christos     "AddressRangeMemory",
    130          1.1  christos     "AddressRangeReserved",
    131          1.1  christos     "AddressRangeACPI",
    132          1.1  christos     "AddressRangeNVS"
    133          1.1  christos };
    134          1.1  christos 
    135  1.1.1.4.4.1   thorpej const char                      *AcpiGbl_PhyDecode[] =
    136  1.1.1.4.4.1   thorpej {
    137  1.1.1.4.4.1   thorpej     "Type C",
    138  1.1.1.4.4.1   thorpej     "Type D",
    139  1.1.1.4.4.1   thorpej     "Unknown Type",
    140  1.1.1.4.4.1   thorpej     "Unknown Type"
    141  1.1.1.4.4.1   thorpej };
    142  1.1.1.4.4.1   thorpej 
    143          1.1  christos const char                      *AcpiGbl_RngDecode[] =
    144          1.1  christos {
    145          1.1  christos     "InvalidRanges",
    146          1.1  christos     "NonISAOnlyRanges",
    147          1.1  christos     "ISAOnlyRanges",
    148          1.1  christos     "EntireRange"
    149          1.1  christos };
    150          1.1  christos 
    151          1.1  christos const char                      *AcpiGbl_RwDecode[] =
    152          1.1  christos {
    153          1.1  christos     "ReadOnly",
    154          1.1  christos     "ReadWrite"
    155          1.1  christos };
    156          1.1  christos 
    157          1.1  christos const char                      *AcpiGbl_ShrDecode[] =
    158          1.1  christos {
    159          1.1  christos     "Exclusive",
    160          1.1  christos     "Shared",
    161          1.1  christos     "ExclusiveAndWake",         /* ACPI 5.0 */
    162          1.1  christos     "SharedAndWake"             /* ACPI 5.0 */
    163          1.1  christos };
    164          1.1  christos 
    165          1.1  christos const char                      *AcpiGbl_SizDecode[] =
    166          1.1  christos {
    167          1.1  christos     "Transfer8",
    168          1.1  christos     "Transfer8_16",
    169          1.1  christos     "Transfer16",
    170          1.1  christos     "InvalidSize"
    171          1.1  christos };
    172          1.1  christos 
    173          1.1  christos const char                      *AcpiGbl_TrsDecode[] =
    174          1.1  christos {
    175          1.1  christos     "DenseTranslation",
    176          1.1  christos     "SparseTranslation"
    177          1.1  christos };
    178          1.1  christos 
    179          1.1  christos const char                      *AcpiGbl_TtpDecode[] =
    180          1.1  christos {
    181          1.1  christos     "TypeStatic",
    182          1.1  christos     "TypeTranslation"
    183          1.1  christos };
    184          1.1  christos 
    185          1.1  christos const char                      *AcpiGbl_TypDecode[] =
    186          1.1  christos {
    187          1.1  christos     "Compatibility",
    188          1.1  christos     "TypeA",
    189          1.1  christos     "TypeB",
    190          1.1  christos     "TypeF"
    191          1.1  christos };
    192          1.1  christos 
    193          1.1  christos const char                      *AcpiGbl_PpcDecode[] =
    194          1.1  christos {
    195          1.1  christos     "PullDefault",
    196          1.1  christos     "PullUp",
    197          1.1  christos     "PullDown",
    198          1.1  christos     "PullNone"
    199          1.1  christos };
    200          1.1  christos 
    201          1.1  christos const char                      *AcpiGbl_IorDecode[] =
    202          1.1  christos {
    203          1.1  christos     "IoRestrictionNone",
    204          1.1  christos     "IoRestrictionInputOnly",
    205          1.1  christos     "IoRestrictionOutputOnly",
    206          1.1  christos     "IoRestrictionNoneAndPreserve"
    207          1.1  christos };
    208          1.1  christos 
    209          1.1  christos const char                      *AcpiGbl_DtsDecode[] =
    210          1.1  christos {
    211          1.1  christos     "Width8bit",
    212          1.1  christos     "Width16bit",
    213          1.1  christos     "Width32bit",
    214          1.1  christos     "Width64bit",
    215          1.1  christos     "Width128bit",
    216          1.1  christos     "Width256bit",
    217          1.1  christos };
    218          1.1  christos 
    219          1.1  christos /* GPIO connection type */
    220          1.1  christos 
    221          1.1  christos const char                      *AcpiGbl_CtDecode[] =
    222          1.1  christos {
    223          1.1  christos     "Interrupt",
    224          1.1  christos     "I/O"
    225          1.1  christos };
    226          1.1  christos 
    227          1.1  christos /* Serial bus type */
    228          1.1  christos 
    229          1.1  christos const char                      *AcpiGbl_SbtDecode[] =
    230          1.1  christos {
    231          1.1  christos     "/* UNKNOWN serial bus type */",
    232          1.1  christos     "I2C",
    233          1.1  christos     "SPI",
    234  1.1.1.4.4.1   thorpej     "UART",
    235  1.1.1.4.4.1   thorpej     "CSI2"
    236          1.1  christos };
    237          1.1  christos 
    238          1.1  christos /* I2C serial bus access mode */
    239          1.1  christos 
    240          1.1  christos const char                      *AcpiGbl_AmDecode[] =
    241          1.1  christos {
    242          1.1  christos     "AddressingMode7Bit",
    243          1.1  christos     "AddressingMode10Bit"
    244          1.1  christos };
    245          1.1  christos 
    246          1.1  christos /* I2C serial bus slave mode */
    247          1.1  christos 
    248          1.1  christos const char                      *AcpiGbl_SmDecode[] =
    249          1.1  christos {
    250          1.1  christos     "ControllerInitiated",
    251          1.1  christos     "DeviceInitiated"
    252          1.1  christos };
    253          1.1  christos 
    254          1.1  christos /* SPI serial bus wire mode */
    255          1.1  christos 
    256          1.1  christos const char                      *AcpiGbl_WmDecode[] =
    257          1.1  christos {
    258          1.1  christos     "FourWireMode",
    259          1.1  christos     "ThreeWireMode"
    260          1.1  christos };
    261          1.1  christos 
    262          1.1  christos /* SPI serial clock phase */
    263          1.1  christos 
    264          1.1  christos const char                      *AcpiGbl_CphDecode[] =
    265          1.1  christos {
    266          1.1  christos     "ClockPhaseFirst",
    267          1.1  christos     "ClockPhaseSecond"
    268          1.1  christos };
    269          1.1  christos 
    270          1.1  christos /* SPI serial bus clock polarity */
    271          1.1  christos 
    272          1.1  christos const char                      *AcpiGbl_CpoDecode[] =
    273          1.1  christos {
    274          1.1  christos     "ClockPolarityLow",
    275          1.1  christos     "ClockPolarityHigh"
    276          1.1  christos };
    277          1.1  christos 
    278          1.1  christos /* SPI serial bus device polarity */
    279          1.1  christos 
    280          1.1  christos const char                      *AcpiGbl_DpDecode[] =
    281          1.1  christos {
    282          1.1  christos     "PolarityLow",
    283          1.1  christos     "PolarityHigh"
    284          1.1  christos };
    285          1.1  christos 
    286          1.1  christos /* UART serial bus endian */
    287          1.1  christos 
    288          1.1  christos const char                      *AcpiGbl_EdDecode[] =
    289          1.1  christos {
    290          1.1  christos     "LittleEndian",
    291          1.1  christos     "BigEndian"
    292          1.1  christos };
    293          1.1  christos 
    294          1.1  christos /* UART serial bus bits per byte */
    295          1.1  christos 
    296          1.1  christos const char                      *AcpiGbl_BpbDecode[] =
    297          1.1  christos {
    298          1.1  christos     "DataBitsFive",
    299          1.1  christos     "DataBitsSix",
    300          1.1  christos     "DataBitsSeven",
    301          1.1  christos     "DataBitsEight",
    302          1.1  christos     "DataBitsNine",
    303          1.1  christos     "/* UNKNOWN Bits per byte */",
    304          1.1  christos     "/* UNKNOWN Bits per byte */",
    305          1.1  christos     "/* UNKNOWN Bits per byte */"
    306          1.1  christos };
    307          1.1  christos 
    308          1.1  christos /* UART serial bus stop bits */
    309          1.1  christos 
    310          1.1  christos const char                      *AcpiGbl_SbDecode[] =
    311          1.1  christos {
    312          1.1  christos     "StopBitsZero",
    313          1.1  christos     "StopBitsOne",
    314          1.1  christos     "StopBitsOnePlusHalf",
    315          1.1  christos     "StopBitsTwo"
    316          1.1  christos };
    317          1.1  christos 
    318          1.1  christos /* UART serial bus flow control */
    319          1.1  christos 
    320          1.1  christos const char                      *AcpiGbl_FcDecode[] =
    321          1.1  christos {
    322          1.1  christos     "FlowControlNone",
    323          1.1  christos     "FlowControlHardware",
    324          1.1  christos     "FlowControlXON",
    325          1.1  christos     "/* UNKNOWN flow control keyword */"
    326          1.1  christos };
    327          1.1  christos 
    328          1.1  christos /* UART serial bus parity type */
    329          1.1  christos 
    330          1.1  christos const char                      *AcpiGbl_PtDecode[] =
    331          1.1  christos {
    332          1.1  christos     "ParityTypeNone",
    333          1.1  christos     "ParityTypeEven",
    334          1.1  christos     "ParityTypeOdd",
    335          1.1  christos     "ParityTypeMark",
    336          1.1  christos     "ParityTypeSpace",
    337          1.1  christos     "/* UNKNOWN parity keyword */",
    338          1.1  christos     "/* UNKNOWN parity keyword */",
    339          1.1  christos     "/* UNKNOWN parity keyword */"
    340          1.1  christos };
    341          1.1  christos 
    342          1.1  christos /* PinConfig type */
    343          1.1  christos 
    344          1.1  christos const char                      *AcpiGbl_PtypDecode[] =
    345          1.1  christos {
    346          1.1  christos     "Default",
    347          1.1  christos     "Bias Pull-up",
    348          1.1  christos     "Bias Pull-down",
    349          1.1  christos     "Bias Default",
    350          1.1  christos     "Bias Disable",
    351          1.1  christos     "Bias High Impedance",
    352          1.1  christos     "Bias Bus Hold",
    353          1.1  christos     "Drive Open Drain",
    354          1.1  christos     "Drive Open Source",
    355          1.1  christos     "Drive Push Pull",
    356          1.1  christos     "Drive Strength",
    357          1.1  christos     "Slew Rate",
    358          1.1  christos     "Input Debounce",
    359          1.1  christos     "Input Schmitt Trigger",
    360          1.1  christos };
    361          1.1  christos 
    362          1.1  christos #endif
    363