189b8eb6cSchristos /******************************************************************************* 289b8eb6cSchristos * 389b8eb6cSchristos * Module Name: utresdecode - Resource descriptor keyword strings 489b8eb6cSchristos * 589b8eb6cSchristos ******************************************************************************/ 689b8eb6cSchristos 789b8eb6cSchristos /* 8*046a2985Schristos * Copyright (C) 2000 - 2023, Intel Corp. 989b8eb6cSchristos * All rights reserved. 1089b8eb6cSchristos * 1189b8eb6cSchristos * Redistribution and use in source and binary forms, with or without 1289b8eb6cSchristos * modification, are permitted provided that the following conditions 1389b8eb6cSchristos * are met: 1489b8eb6cSchristos * 1. Redistributions of source code must retain the above copyright 1589b8eb6cSchristos * notice, this list of conditions, and the following disclaimer, 1689b8eb6cSchristos * without modification. 1789b8eb6cSchristos * 2. Redistributions in binary form must reproduce at minimum a disclaimer 1889b8eb6cSchristos * substantially similar to the "NO WARRANTY" disclaimer below 1989b8eb6cSchristos * ("Disclaimer") and any redistribution must be conditioned upon 2089b8eb6cSchristos * including a substantially similar Disclaimer requirement for further 2189b8eb6cSchristos * binary redistribution. 2289b8eb6cSchristos * 3. Neither the names of the above-listed copyright holders nor the names 2389b8eb6cSchristos * of any contributors may be used to endorse or promote products derived 2489b8eb6cSchristos * from this software without specific prior written permission. 2589b8eb6cSchristos * 2689b8eb6cSchristos * Alternatively, this software may be distributed under the terms of the 2789b8eb6cSchristos * GNU General Public License ("GPL") version 2 as published by the Free 2889b8eb6cSchristos * Software Foundation. 2989b8eb6cSchristos * 3089b8eb6cSchristos * NO WARRANTY 3189b8eb6cSchristos * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 3289b8eb6cSchristos * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 3346a330b4Schristos * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 3489b8eb6cSchristos * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 3589b8eb6cSchristos * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 3689b8eb6cSchristos * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 3789b8eb6cSchristos * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 3889b8eb6cSchristos * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 3989b8eb6cSchristos * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 4089b8eb6cSchristos * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 4189b8eb6cSchristos * POSSIBILITY OF SUCH DAMAGES. 4289b8eb6cSchristos */ 4389b8eb6cSchristos 4489b8eb6cSchristos #include "acpi.h" 4589b8eb6cSchristos #include "accommon.h" 4689b8eb6cSchristos #include "acresrc.h" 4789b8eb6cSchristos 4889b8eb6cSchristos 4989b8eb6cSchristos #define _COMPONENT ACPI_UTILITIES 5089b8eb6cSchristos ACPI_MODULE_NAME ("utresdecode") 5189b8eb6cSchristos 5289b8eb6cSchristos 5389b8eb6cSchristos #if defined (ACPI_DEBUG_OUTPUT) || \ 5489b8eb6cSchristos defined (ACPI_DISASSEMBLER) || \ 5589b8eb6cSchristos defined (ACPI_DEBUGGER) 5689b8eb6cSchristos 5789b8eb6cSchristos /* 5889b8eb6cSchristos * Strings used to decode resource descriptors. 5989b8eb6cSchristos * Used by both the disassembler and the debugger resource dump routines 6089b8eb6cSchristos */ 6189b8eb6cSchristos const char *AcpiGbl_BmDecode[] = 6289b8eb6cSchristos { 6389b8eb6cSchristos "NotBusMaster", 6489b8eb6cSchristos "BusMaster" 6589b8eb6cSchristos }; 6689b8eb6cSchristos 6789b8eb6cSchristos const char *AcpiGbl_ConfigDecode[] = 6889b8eb6cSchristos { 6989b8eb6cSchristos "0 - Good Configuration", 7089b8eb6cSchristos "1 - Acceptable Configuration", 7189b8eb6cSchristos "2 - Suboptimal Configuration", 7289b8eb6cSchristos "3 - ***Invalid Configuration***", 7389b8eb6cSchristos }; 7489b8eb6cSchristos 7589b8eb6cSchristos const char *AcpiGbl_ConsumeDecode[] = 7689b8eb6cSchristos { 7789b8eb6cSchristos "ResourceProducer", 7889b8eb6cSchristos "ResourceConsumer" 7989b8eb6cSchristos }; 8089b8eb6cSchristos 8189b8eb6cSchristos const char *AcpiGbl_DecDecode[] = 8289b8eb6cSchristos { 8389b8eb6cSchristos "PosDecode", 8489b8eb6cSchristos "SubDecode" 8589b8eb6cSchristos }; 8689b8eb6cSchristos 8789b8eb6cSchristos const char *AcpiGbl_HeDecode[] = 8889b8eb6cSchristos { 8989b8eb6cSchristos "Level", 9089b8eb6cSchristos "Edge" 9189b8eb6cSchristos }; 9289b8eb6cSchristos 9389b8eb6cSchristos const char *AcpiGbl_IoDecode[] = 9489b8eb6cSchristos { 9589b8eb6cSchristos "Decode10", 9689b8eb6cSchristos "Decode16" 9789b8eb6cSchristos }; 9889b8eb6cSchristos 9989b8eb6cSchristos const char *AcpiGbl_LlDecode[] = 10089b8eb6cSchristos { 10189b8eb6cSchristos "ActiveHigh", 10289b8eb6cSchristos "ActiveLow", 10389b8eb6cSchristos "ActiveBoth", 10489b8eb6cSchristos "Reserved" 10589b8eb6cSchristos }; 10689b8eb6cSchristos 10789b8eb6cSchristos const char *AcpiGbl_MaxDecode[] = 10889b8eb6cSchristos { 10989b8eb6cSchristos "MaxNotFixed", 11089b8eb6cSchristos "MaxFixed" 11189b8eb6cSchristos }; 11289b8eb6cSchristos 11389b8eb6cSchristos const char *AcpiGbl_MemDecode[] = 11489b8eb6cSchristos { 11589b8eb6cSchristos "NonCacheable", 11689b8eb6cSchristos "Cacheable", 11789b8eb6cSchristos "WriteCombining", 11889b8eb6cSchristos "Prefetchable" 11989b8eb6cSchristos }; 12089b8eb6cSchristos 12189b8eb6cSchristos const char *AcpiGbl_MinDecode[] = 12289b8eb6cSchristos { 12389b8eb6cSchristos "MinNotFixed", 12489b8eb6cSchristos "MinFixed" 12589b8eb6cSchristos }; 12689b8eb6cSchristos 12789b8eb6cSchristos const char *AcpiGbl_MtpDecode[] = 12889b8eb6cSchristos { 12989b8eb6cSchristos "AddressRangeMemory", 13089b8eb6cSchristos "AddressRangeReserved", 13189b8eb6cSchristos "AddressRangeACPI", 13289b8eb6cSchristos "AddressRangeNVS" 13389b8eb6cSchristos }; 13489b8eb6cSchristos 13546a330b4Schristos const char *AcpiGbl_PhyDecode[] = 13646a330b4Schristos { 13746a330b4Schristos "Type C", 13846a330b4Schristos "Type D", 13946a330b4Schristos "Unknown Type", 14046a330b4Schristos "Unknown Type" 14146a330b4Schristos }; 14246a330b4Schristos 14389b8eb6cSchristos const char *AcpiGbl_RngDecode[] = 14489b8eb6cSchristos { 14589b8eb6cSchristos "InvalidRanges", 14689b8eb6cSchristos "NonISAOnlyRanges", 14789b8eb6cSchristos "ISAOnlyRanges", 14889b8eb6cSchristos "EntireRange" 14989b8eb6cSchristos }; 15089b8eb6cSchristos 15189b8eb6cSchristos const char *AcpiGbl_RwDecode[] = 15289b8eb6cSchristos { 15389b8eb6cSchristos "ReadOnly", 15489b8eb6cSchristos "ReadWrite" 15589b8eb6cSchristos }; 15689b8eb6cSchristos 15789b8eb6cSchristos const char *AcpiGbl_ShrDecode[] = 15889b8eb6cSchristos { 15989b8eb6cSchristos "Exclusive", 16089b8eb6cSchristos "Shared", 16189b8eb6cSchristos "ExclusiveAndWake", /* ACPI 5.0 */ 16289b8eb6cSchristos "SharedAndWake" /* ACPI 5.0 */ 16389b8eb6cSchristos }; 16489b8eb6cSchristos 16589b8eb6cSchristos const char *AcpiGbl_SizDecode[] = 16689b8eb6cSchristos { 16789b8eb6cSchristos "Transfer8", 16889b8eb6cSchristos "Transfer8_16", 16989b8eb6cSchristos "Transfer16", 17089b8eb6cSchristos "InvalidSize" 17189b8eb6cSchristos }; 17289b8eb6cSchristos 17389b8eb6cSchristos const char *AcpiGbl_TrsDecode[] = 17489b8eb6cSchristos { 17589b8eb6cSchristos "DenseTranslation", 17689b8eb6cSchristos "SparseTranslation" 17789b8eb6cSchristos }; 17889b8eb6cSchristos 17989b8eb6cSchristos const char *AcpiGbl_TtpDecode[] = 18089b8eb6cSchristos { 18189b8eb6cSchristos "TypeStatic", 18289b8eb6cSchristos "TypeTranslation" 18389b8eb6cSchristos }; 18489b8eb6cSchristos 18589b8eb6cSchristos const char *AcpiGbl_TypDecode[] = 18689b8eb6cSchristos { 18789b8eb6cSchristos "Compatibility", 18889b8eb6cSchristos "TypeA", 18989b8eb6cSchristos "TypeB", 19089b8eb6cSchristos "TypeF" 19189b8eb6cSchristos }; 19289b8eb6cSchristos 19389b8eb6cSchristos const char *AcpiGbl_PpcDecode[] = 19489b8eb6cSchristos { 19589b8eb6cSchristos "PullDefault", 19689b8eb6cSchristos "PullUp", 19789b8eb6cSchristos "PullDown", 19889b8eb6cSchristos "PullNone" 19989b8eb6cSchristos }; 20089b8eb6cSchristos 20189b8eb6cSchristos const char *AcpiGbl_IorDecode[] = 20289b8eb6cSchristos { 20389b8eb6cSchristos "IoRestrictionNone", 20489b8eb6cSchristos "IoRestrictionInputOnly", 20589b8eb6cSchristos "IoRestrictionOutputOnly", 20689b8eb6cSchristos "IoRestrictionNoneAndPreserve" 20789b8eb6cSchristos }; 20889b8eb6cSchristos 20989b8eb6cSchristos const char *AcpiGbl_DtsDecode[] = 21089b8eb6cSchristos { 21189b8eb6cSchristos "Width8bit", 21289b8eb6cSchristos "Width16bit", 21389b8eb6cSchristos "Width32bit", 21489b8eb6cSchristos "Width64bit", 21589b8eb6cSchristos "Width128bit", 21689b8eb6cSchristos "Width256bit", 21789b8eb6cSchristos }; 21889b8eb6cSchristos 21989b8eb6cSchristos /* GPIO connection type */ 22089b8eb6cSchristos 22189b8eb6cSchristos const char *AcpiGbl_CtDecode[] = 22289b8eb6cSchristos { 22389b8eb6cSchristos "Interrupt", 22489b8eb6cSchristos "I/O" 22589b8eb6cSchristos }; 22689b8eb6cSchristos 22789b8eb6cSchristos /* Serial bus type */ 22889b8eb6cSchristos 22989b8eb6cSchristos const char *AcpiGbl_SbtDecode[] = 23089b8eb6cSchristos { 23189b8eb6cSchristos "/* UNKNOWN serial bus type */", 23289b8eb6cSchristos "I2C", 23389b8eb6cSchristos "SPI", 23446a330b4Schristos "UART", 23546a330b4Schristos "CSI2" 23689b8eb6cSchristos }; 23789b8eb6cSchristos 23889b8eb6cSchristos /* I2C serial bus access mode */ 23989b8eb6cSchristos 24089b8eb6cSchristos const char *AcpiGbl_AmDecode[] = 24189b8eb6cSchristos { 24289b8eb6cSchristos "AddressingMode7Bit", 24389b8eb6cSchristos "AddressingMode10Bit" 24489b8eb6cSchristos }; 24589b8eb6cSchristos 24689b8eb6cSchristos /* I2C serial bus slave mode */ 24789b8eb6cSchristos 24889b8eb6cSchristos const char *AcpiGbl_SmDecode[] = 24989b8eb6cSchristos { 25089b8eb6cSchristos "ControllerInitiated", 25189b8eb6cSchristos "DeviceInitiated" 25289b8eb6cSchristos }; 25389b8eb6cSchristos 25489b8eb6cSchristos /* SPI serial bus wire mode */ 25589b8eb6cSchristos 25689b8eb6cSchristos const char *AcpiGbl_WmDecode[] = 25789b8eb6cSchristos { 25889b8eb6cSchristos "FourWireMode", 25989b8eb6cSchristos "ThreeWireMode" 26089b8eb6cSchristos }; 26189b8eb6cSchristos 26289b8eb6cSchristos /* SPI serial clock phase */ 26389b8eb6cSchristos 26489b8eb6cSchristos const char *AcpiGbl_CphDecode[] = 26589b8eb6cSchristos { 26689b8eb6cSchristos "ClockPhaseFirst", 26789b8eb6cSchristos "ClockPhaseSecond" 26889b8eb6cSchristos }; 26989b8eb6cSchristos 27089b8eb6cSchristos /* SPI serial bus clock polarity */ 27189b8eb6cSchristos 27289b8eb6cSchristos const char *AcpiGbl_CpoDecode[] = 27389b8eb6cSchristos { 27489b8eb6cSchristos "ClockPolarityLow", 27589b8eb6cSchristos "ClockPolarityHigh" 27689b8eb6cSchristos }; 27789b8eb6cSchristos 27889b8eb6cSchristos /* SPI serial bus device polarity */ 27989b8eb6cSchristos 28089b8eb6cSchristos const char *AcpiGbl_DpDecode[] = 28189b8eb6cSchristos { 28289b8eb6cSchristos "PolarityLow", 28389b8eb6cSchristos "PolarityHigh" 28489b8eb6cSchristos }; 28589b8eb6cSchristos 28689b8eb6cSchristos /* UART serial bus endian */ 28789b8eb6cSchristos 28889b8eb6cSchristos const char *AcpiGbl_EdDecode[] = 28989b8eb6cSchristos { 29089b8eb6cSchristos "LittleEndian", 29189b8eb6cSchristos "BigEndian" 29289b8eb6cSchristos }; 29389b8eb6cSchristos 29489b8eb6cSchristos /* UART serial bus bits per byte */ 29589b8eb6cSchristos 29689b8eb6cSchristos const char *AcpiGbl_BpbDecode[] = 29789b8eb6cSchristos { 29889b8eb6cSchristos "DataBitsFive", 29989b8eb6cSchristos "DataBitsSix", 30089b8eb6cSchristos "DataBitsSeven", 30189b8eb6cSchristos "DataBitsEight", 30289b8eb6cSchristos "DataBitsNine", 30389b8eb6cSchristos "/* UNKNOWN Bits per byte */", 30489b8eb6cSchristos "/* UNKNOWN Bits per byte */", 30589b8eb6cSchristos "/* UNKNOWN Bits per byte */" 30689b8eb6cSchristos }; 30789b8eb6cSchristos 30889b8eb6cSchristos /* UART serial bus stop bits */ 30989b8eb6cSchristos 31089b8eb6cSchristos const char *AcpiGbl_SbDecode[] = 31189b8eb6cSchristos { 31289b8eb6cSchristos "StopBitsZero", 31389b8eb6cSchristos "StopBitsOne", 31489b8eb6cSchristos "StopBitsOnePlusHalf", 31589b8eb6cSchristos "StopBitsTwo" 31689b8eb6cSchristos }; 31789b8eb6cSchristos 31889b8eb6cSchristos /* UART serial bus flow control */ 31989b8eb6cSchristos 32089b8eb6cSchristos const char *AcpiGbl_FcDecode[] = 32189b8eb6cSchristos { 32289b8eb6cSchristos "FlowControlNone", 32389b8eb6cSchristos "FlowControlHardware", 32489b8eb6cSchristos "FlowControlXON", 32589b8eb6cSchristos "/* UNKNOWN flow control keyword */" 32689b8eb6cSchristos }; 32789b8eb6cSchristos 32889b8eb6cSchristos /* UART serial bus parity type */ 32989b8eb6cSchristos 33089b8eb6cSchristos const char *AcpiGbl_PtDecode[] = 33189b8eb6cSchristos { 33289b8eb6cSchristos "ParityTypeNone", 33389b8eb6cSchristos "ParityTypeEven", 33489b8eb6cSchristos "ParityTypeOdd", 33589b8eb6cSchristos "ParityTypeMark", 33689b8eb6cSchristos "ParityTypeSpace", 33789b8eb6cSchristos "/* UNKNOWN parity keyword */", 33889b8eb6cSchristos "/* UNKNOWN parity keyword */", 33989b8eb6cSchristos "/* UNKNOWN parity keyword */" 34089b8eb6cSchristos }; 34189b8eb6cSchristos 34289b8eb6cSchristos /* PinConfig type */ 34389b8eb6cSchristos 34489b8eb6cSchristos const char *AcpiGbl_PtypDecode[] = 34589b8eb6cSchristos { 34689b8eb6cSchristos "Default", 34789b8eb6cSchristos "Bias Pull-up", 34889b8eb6cSchristos "Bias Pull-down", 34989b8eb6cSchristos "Bias Default", 35089b8eb6cSchristos "Bias Disable", 35189b8eb6cSchristos "Bias High Impedance", 35289b8eb6cSchristos "Bias Bus Hold", 35389b8eb6cSchristos "Drive Open Drain", 35489b8eb6cSchristos "Drive Open Source", 35589b8eb6cSchristos "Drive Push Pull", 35689b8eb6cSchristos "Drive Strength", 35789b8eb6cSchristos "Slew Rate", 35889b8eb6cSchristos "Input Debounce", 35989b8eb6cSchristos "Input Schmitt Trigger", 36089b8eb6cSchristos }; 36189b8eb6cSchristos 362*046a2985Schristos const char *AcpiGbl_ClockInputMode[] = 363*046a2985Schristos { 364*046a2985Schristos "Fixed", 365*046a2985Schristos "Variable", 366*046a2985Schristos }; 367*046a2985Schristos 368*046a2985Schristos const char *AcpiGbl_ClockInputScale[] = 369*046a2985Schristos { 370*046a2985Schristos "Hz", 371*046a2985Schristos "KHz", 372*046a2985Schristos "MHz", 373*046a2985Schristos }; 374*046a2985Schristos 37589b8eb6cSchristos #endif 376