commit 39e0cdde44714bbfa873613b82ccb0c7c77fcccc Author: Paul Grimes <70298761+pbgrimes@users.noreply.github.com> Date: Sun Jun 11 23:02:27 2023 -0700 Initial commit. Signed-off-by: Paul Grimes diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..86d756a --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +AMD_Simnow/0ACQT007.FD filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..83f60bd --- /dev/null +++ b/.gitignore @@ -0,0 +1,19 @@ +docs/Code-html/ +docs/Api-html/ +Documentation/CodeSpec/build/ +Documentation/ApiSpec/build/ +Build +*/Build +util/kconfig/lib/__pycache__/ +cscope.files +cscope.in.out +cscope.out +cscope.po.out +tags +*.swp +flist-SilCfg-AllYes.txt +reserved.txt +xUSL/NBIO/FLI/NbioPcieStraps.h.MOVETORESRV +xUSL/NBIO/FLI/NbioPcieStraps.h.BAK +xUSL/Mpio/Rs/MpioPcieStrapsRs.h.BAK +xUSL/Mpio/Rs/MpioPcieStrapsRs.h.MOVETORESRV diff --git a/CODEOWNERS b/CODEOWNERS new file mode 100644 index 0000000..817647f --- /dev/null +++ b/CODEOWNERS @@ -0,0 +1,10 @@ +# openSIL CODEOWNERS +# +# Code owners are automatically requested for review when someone opens a pull request that modifies code that they own +# +# Default Reviewers +# +# Internal Members: Include everyone in the "AMD Developers" team +# External Collaborators: From organizations who have signed the CLA and part of the development team +# +# @TODO: add CODEOWNERS diff --git a/Documentation/readme.md b/Documentation/readme.md new file mode 100644 index 0000000..dc97160 --- /dev/null +++ b/Documentation/readme.md @@ -0,0 +1 @@ +Formal documentation is in final review and will be uploaded to this directory when available. \ No newline at end of file diff --git a/Include/Sil-api.h b/Include/Sil-api.h new file mode 100644 index 0000000..a368b6a --- /dev/null +++ b/Include/Sil-api.h @@ -0,0 +1,82 @@ +/* Copyright 2021-2023 Advanced Micro Devices, Inc. All rights reserved. */ +// SPDX-License-Identifier: MIT + +/** + * @file Sil-api.h + * @brief + * This file is used to declare the Host-API functions, variables, + * common definitions, constants and macros available to the Host and + * openSIL modules. + * + * + */ +/** + * @cond API_Doc + * + * @defgroup MODULES_IP IP Modules Interfacing + * + * @endcond + * + * + * @cond FullCode_Doc + * @defgroup Host_group Hostgroup: top level page for openSIL. + * + * @endcond + */ + +#pragma once +#include + +/** HOST_DEBUG_SERVICE + * @brief This is the description for the Host provided debug output function. + */ + typedef void (*HOST_DEBUG_SERVICE) ( + size_t MsgLevel, + const char *SilPrefix, + const char *Message, + const char *Function, + size_t Line, + ... + ); + +/** @brief Return values + * + * @details The openSIL routines will never 'hang'. They will always return with a + * code or value indicating the state of the outcome of the operation. For + * functions returning status, these are the defined status codes for + * all openSIL code. + * Starting from value 0xF0, this enum defines reset request types from openSIL IPs. + */ +typedef enum { + SilPass = 0, ///< Success, function finished without error. + SilUnsupportedHardware, ///< Fail, SoC does not support the function. + SilUnsupported, ///< Fail, the request is not supported. + SilInvalidParameter, ///< Fail, the function was called with an + ///< invalid parameter. + SilAborted, ///< Fail, the processing incurred an error + ///< causing the processing to be aborted. + ///< Host should take action. + SilOutOfResources, ///< Fail, assignment of memory block failed, + ///< due to depletion of available resources + SilNotFound, ///< Fail, The element was not found. Recheck + ///< the ID unique identifier used. + SilOutOfBounds, ///< Fail, there is an out of bounds condition + SilDeviceError, ///< Fail, device being initialized reported + ///< an error. Check if the IP output block + ///< has more information. + + SilResetRequestColdImm = 0xF0, ///< The following values indicate a special + ///< condition requiring the Host to perform + ///< a system reset + ///< requesting Host do immediate cold reset + SilResetRequestColdDef, ///< requesting Host do deferred cold reset + SilResetRequestWarmImm, ///< requesting Host do immediate warm reset + SilResetRequestWarmDef, ///< requesting Host do deferred warm reset +} SIL_STATUS; + +/* ********************************************************************************************************************* + * Declare common variables here + */ + + + diff --git a/Include/xPRF-api.h b/Include/xPRF-api.h new file mode 100644 index 0000000..ec25c5f --- /dev/null +++ b/Include/xPRF-api.h @@ -0,0 +1,962 @@ +/* Copyright 2023 Advanced Micro Devices, Inc. All rights reserved. */ +// SPDX-License-Identifier: MIT +/** + * @file xPRF-api.h + * @brief This file is used to declare the API functions used by the Host for + * initialization of platform specific content. + * + * @details This file is used to declare the API functions, variables and + * macros needed by the Host to perform the platform initialization + * of the AMD silicon. + */ +/** + * @cond API_Doc + * @page TopXprf Platform Reference Firmware (xPRF) + * + * 'xPRF' is the AMD x86 Platform Configuration Module. + * This module is responsible for providing features to the Host + * for selecting and configuring conditions specific to the platform. + * While xSIM establishes base operation of the silicon, xPRF + * 'fine tunes' the silicon capabilities to the needs of the platform. + * + * xPRF is a collection of service routines used to accomplish a goal, + * directed by the Host. + * + * See the 'Files - @ref xprf-api.h' section of this document for + * further details. + * + * @endcond + */ +#pragma once + +#include +#include // needed for declarations later in this file +#include +#include +#include + +/// Low voltage support +typedef enum { + SIL_VOLT_INITIAL, ///< Initial value for VDDIO + SIL_VOLT1_5, ///< 1.5 Volt + SIL_VOLT1_35, ///< 1.35 Volt + SIL_VOLT1_25, ///< 1.25 Volt + SIL_VOLT_DDR4_RANGE_START, ///< Start of DDR4 Voltage Range + SIL_VOLT1_2 = SIL_VOLT_DDR4_RANGE_START, ///< 1.2 Volt + SIL_VOLT_TBD1, ///< TBD1 Voltage + SIL_VOLT_TBD2, ///< TBD2 Voltage + SIL_VOLT_UNSUPPORTED = 0xFF ///< No common voltage found +} SIL_DIMM_VOLTAGE; + +/// UMA Mode +typedef enum { + SIL_UMA_NONE = 0, ///< UMA None + SIL_UMA_SPECIFIED = 1, ///< UMA Specified + SIL_UMA_AUTO = 2, ///< UMA Auto + SIL_UMA_GAME_OPTIMIZED = 3 ///< UMA Game Optimized mode +} SIL_UMA_MODE; + +/** + * @brief Amd Memory UMA Info + */ +typedef struct _SIL_AMD_MEMORY_UMA_INFO { + SIL_UMA_MODE UmaMode; ///< Uma Mode + ///< 0 = None + ///< 1 = Specified + ///< 2 = Auto + uint32_t UmaSize; ///< The size of shared graphics dram (16-bits) + ///< NV_UMA_Size[31:0]=Addr[47:16] + uint32_t UmaBase; +} SIL_AMD_MEMORY_UMA_INFO; + +/** + * @brief Status union for boolean or value status + */ +typedef union { + bool Enabled; ///< Status.Enabled - TRUE: Enabled. + uint16_t Value; ///< Status.Value - Configured value. +} MEM_CFG_STATUS; + +/// VDDP_VDDR Voltage Info for Low Power DIMM +typedef struct _SIL_VDDP_VDDR_VOLTAGE { + bool IsValid; ///< Indicates if data is valid + uint8_t Voltage; ///< VDDP VDDR Voltage Value +} SIL_VDDP_VDDR_VOLTAGE; + +/** + * @brief Memory Config Info + */ +typedef struct _SIL_MEM_CFG_INFO { + MEM_CFG_STATUS Status; ///< Status: Enable/disable or configured status value + uint16_t StatusCode; ///< Status Code: MEM_STATUS_CODE_GENERAL_INFO +} SIL_MEM_CFG_INFO; + +/** + * @brief Amd Memory Summary + */ +typedef struct _AMD_MEMORY_SUMMARY { + uint32_t Revision; ///< revision + uint16_t AmdBottomIo; ///< Bottom IO + uint32_t AmdMemoryBelow4gb; ///< Memory below 4G + uint32_t AmdMemoryAbove4gb; ///< Memory above 4G + uint32_t AmdMemoryBelow1Tb; ///< Memory below 1T + uint32_t AmdTotalMemorySize; ///< Total Memory Size + uint32_t AmdMemoryFrequency; ///< Memory Frequency + SIL_DIMM_VOLTAGE AmdMemoryVddIo; ///< Memory Vddio + SIL_VDDP_VDDR_VOLTAGE AmdMemoryVddpVddr; ///< Memory Vddp Vddr + SIL_AMD_MEMORY_UMA_INFO AmdGetUmaInfo; ///< AMD UMA Info + uint32_t DdrMaxRate; ///< DdrMaxRate + uint32_t Reserved; + uint32_t Reserved1; + uint32_t Reserved2; + uint8_t MaxSocketSupported; ///< Indicates max. socket supported + uint8_t MaxDiePerSocket; ///< Indicates max. die per socket + uint8_t MaxChannelPerDie; ///< Indicates max. channel per die + uint8_t MaxDimmPerChannel; ///< Indicates max. dimm per channel + + /// Dynamic data + uint32_t *DimmPresentMap; ///< DimmPresentMap[MaxSocketSupported * MaxDiePerSocket] + ///< Bit[1:0] - Dimm[1:0] of Channel0, .. , Bit[15:14]-Dimm[1:0] of Channel7 + SIL_MEM_CFG_INFO *ChipselIntlv; ///< ChipselIntlv[MaxSocketSupported * MaxDiePerSocket * MaxChannelPerDie] + SIL_MEM_CFG_INFO *DramEcc; ///< DramEcc[MaxSocketSupported * MaxDiePerSocket] + SIL_MEM_CFG_INFO *DramParity; ///< DramParity[MaxSocketSupported * MaxDiePerSocket] + SIL_MEM_CFG_INFO *AutoRefFineGranMode; ///< AutoRefFineGranMode[MaxSocketSupported * MaxDiePerSocket] + /// Fixed data + /// Status reporting stuff + SIL_MEM_CFG_INFO MbistTestEnable; ///< MbistTestEnable + SIL_MEM_CFG_INFO MbistAggressorEnable; ///< MbistAggressorEnable + SIL_MEM_CFG_INFO MbistPerBitSecondaryDieReport; ///< MbistPerBitSecondaryDieReport + SIL_MEM_CFG_INFO DramTempControlledRefreshEn; ///< DramTempControlledRefreshEn + SIL_MEM_CFG_INFO UserTimingMode; ///< UserTimingMode + SIL_MEM_CFG_INFO UserTimingValue; ///< UserTimingValue + SIL_MEM_CFG_INFO MemBusFreqLimit; ///< MemBusFreqLimit + SIL_MEM_CFG_INFO EnablePowerDown; ///< EnablePowerDown + SIL_MEM_CFG_INFO DramDoubleRefreshRate; ///< DramDoubleRefreshRate + SIL_MEM_CFG_INFO PmuTrainMode; ///< PmuTrainMode + SIL_MEM_CFG_INFO EccSymbolSize; ///< EccSymbolSize + SIL_MEM_CFG_INFO UEccRetry; ///< UEccRetry + SIL_MEM_CFG_INFO IgnoreSpdChecksum; ///< IgnoreSpdChecksum + SIL_MEM_CFG_INFO EnableBankGroupSwapAlt;///< EnableBankGroupSwapAlt + SIL_MEM_CFG_INFO EnableBankGroupSwap; ///< EnableBankGroupSwap + SIL_MEM_CFG_INFO DdrRouteBalancedTee; ///< DdrRouteBalancedTee + SIL_MEM_CFG_INFO NvdimmPowerSource; ///< NvdimmPowerSource + SIL_MEM_CFG_INFO OdtsCmdThrotEn; ///< OdtsCmdThrotEn + SIL_MEM_CFG_INFO OdtsCmdThrotCyc; ///< OdtsCmdThrotCyc +} AMD_MEMORY_SUMMARY; + +/// DMI Type 16 offset 04h - Location +typedef enum { + OtherLocation = 0x01, ///< Assign 01 to Other + UnknownLocation, ///< Assign 02 to Unknown + SystemboardOrMotherboard, ///< Assign 03 to systemboard or motherboard + IsaAddonCard, ///< Assign 04 to ISA add-on card + EisaAddonCard, ///< Assign 05 to EISA add-on card + PciAddonCard, ///< Assign 06 to PCI add-on card + McaAddonCard, ///< Assign 07 to MCA add-on card + PcmciaAddonCard, ///< Assign 08 to PCMCIA add-on card + ProprietaryAddonCard, ///< Assign 09 to proprietary add-on card + NuBus, ///< Assign 0A to NuBus + Pc98C20AddonCard, ///< Assign 0A0 to PC-98/C20 add-on card + Pc98C24AddonCard, ///< Assign 0A1 to PC-98/C24 add-on card + Pc98EAddoncard, ///< Assign 0A2 to PC-98/E add-on card + Pc98LocalBusAddonCard ///< Assign 0A3 to PC-98/Local bus add-on card +} DMI_T16_LOCATION; + +/// DMI Type 16 offset 05h - Memory Error Correction +typedef enum { + OtherUse = 0x01, /// Assign 01 to Other + UnknownUse, /// Assign 02 to Unknown + SystemMemory, /// Assign 03 to system memory + VideoMemory, /// Assign 04 to video memory + FlashMemory, /// Assign 05 to flash memory + NonvolatileRam, /// Assign 06 to non-volatile RAM + CacheMemory /// Assign 07 to cache memory +} DMI_T16_USE; + +/// DMI Type 16 offset 07h - Maximum Capacity +typedef enum { + Dmi16OtherErrCorrection = 0x01, /// Assign 01 to Other + Dmi16UnknownErrCorrection, /// Assign 02 to Unknown + Dmi16NoneErrCorrection, /// Assign 03 to None + Dmi16Parity, /// Assign 04 to parity + Dmi16SingleBitEcc, /// Assign 05 to Single-bit ECC + Dmi16MultiBitEcc, /// Assign 06 to Multi-bit ECC + Dmi16Crc /// Assign 07 to CRC +} DMI_T16_ERROR_CORRECTION; + +/// DMI Type 16 - Physical Memory Array +typedef struct { + DMI_T16_LOCATION Location; ///< The physical location of the Memory Array, + ///< whether on the system board or an add-in board. + DMI_T16_USE Use; ///< Identifies the function for which the array + ///< is used. + DMI_T16_ERROR_CORRECTION MemoryErrorCorrection; ///< The primary hardware error correction or + ///< detection method supported by this memory array. + uint16_t NumberOfMemoryDevices; ///< The number of slots or sockets available + ///< for memory devices in this array. +} SIL_TYPE16_DMI_INFO; + +/// DMI Type 17 offset 0Eh - Form Factor +typedef enum { + OtherFormFactor = 0x01, /// Assign 01 to Other + UnknowFormFactor, /// Assign 02 to Unknown + SimmFormFactor, /// Assign 03 to SIMM + SipFormFactor, /// Assign 04 to SIP + ChipFormFactor, /// Assign 05 to Chip + DipFormFactor, /// Assign 06 to DIP + ZipFormFactor, /// Assign 07 to ZIP + ProprietaryCardFormFactor, /// Assign 08 to Proprietary Card + DimmFormFactorFormFactor, /// Assign 09 to DIMM + TsopFormFactor, /// Assign 10 to TSOP + RowOfChipsFormFactor, /// Assign 11 to Row of chips + RimmFormFactor, /// Assign 12 to RIMM + SodimmFormFactor, /// Assign 13 to SODIMM + SrimmFormFactor, /// Assign 14 to SRIMM + FbDimmFormFactor /// Assign 15 to FB-DIMM +} DMI_T17_FORM_FACTOR; + +/// Memory DMI Type 17 - for memory use +typedef struct { + uint8_t Socket:3; ///< Socket ID + uint8_t Channel:2; ///< Channel ID + uint8_t Dimm:2; ///< DIMM ID + uint8_t DimmPresent:1; ///< Dimm Present + uint16_t Handle; ///< The temporary handle, or instance number, associated with + ///< the structure + uint16_t TotalWidth; ///< Total Width, in bits, of this memory device, including any + ///< check or error-correction bits. + uint16_t DataWidth; ///< Data Width, in bits, of this memory device. + uint16_t MemorySize; ///< The size of the memory device. + DMI_T17_FORM_FACTOR FormFactor; ///< The implementation form factor for this memory device. + uint8_t DeviceLocator; ///< The string number of the string that identifies the + ///< physically labeled socket or board position where the memory + ///< device is located. + uint8_t BankLocator; ///< The string number of the string that identifies the + ///< physically labeled bank where the memory device is located. + uint16_t Speed; ///< Identifies the speed of the device, in megahertz (MHz). + uint64_t ManufacturerIdCode; ///< Manufacturer ID code. + uint8_t SerialNumber[9]; ///< Serial Number. + uint8_t PartNumber[21]; ///< Part Number. + uint8_t Attributes; ///< Bits 7-4: Reserved, Bits 3-0: rank. + uint32_t ExtSize; ///< Extended Size. + uint16_t ConfigSpeed; ///< Configured memory clock speed + uint16_t MinimumVoltage; ///< Minimum operating voltage for this device, in millivolts + uint16_t MaximumVoltage; ///< Maximum operating voltage for this device, in millivolts + uint16_t ConfiguredVoltage; ///< Configured voltage for this device, in millivolts +} MEM_DMI_PHYSICAL_DIMM_INFO; + +/// DMI Type 17 offset 12h - Memory Type +typedef enum { + OtherMemType = 0x01, ///< Assign 01 to Other + UnknownMemType, ///< Assign 02 to Unknown + DramMemType, ///< Assign 03 to DRAM + Ddr5MemType = 0x22, ///< Assign 34 to DDR5 +} DMI_T17_MEMORY_TYPE; + +/// DMI Type 17 offset 13h - Type Detail +typedef struct { + uint16_t Reserved1:1; ///< Reserved + uint16_t Other:1; ///< Other + uint16_t Unknown:1; ///< Unknown + uint16_t FastPaged:1; ///< Fast-Paged + uint16_t StaticColumn:1; ///< Static column + uint16_t PseudoStatic:1; ///< Pseudo-static + uint16_t Rambus:1; ///< RAMBUS + uint16_t Synchronous:1; ///< Synchronous + uint16_t Cmos:1; ///< CMOS + uint16_t Edo:1; ///< EDO + uint16_t WindowDram:1; ///< Window DRAM + uint16_t CacheDram:1; ///< Cache Dram + uint16_t NonVolatile:1; ///< Non-volatile + uint16_t Registered:1; ///< Registered (Buffered) + uint16_t Unbuffered:1; ///< Unbuffered (Unregistered) + uint16_t LRDIMM:1; ///< LRDIMM +} DMI_T17_TYPE_DETAIL; + +/// DMI Type 17 offset 28h - Memory Technology +typedef enum { + OtherType = 0x01, ///< Assign 01 to Other + UnknownType = 0x02, ///< Assign 02 to Unknown + DramType = 0x03, ///< Assign 03 to DRAM + NvDimmNType = 0x04, ///< Assign 04 to NVDIMM-N + NvDimmFType = 0x05, ///< Assign 05 to NVDIMM-F + NvDimmPType = 0x06, ///< Assign 06 to NVDIMM-P + IntelPersistentMemoryType = 0x07, ///< Assign 07 to Intel persistent memory +} DMI_T17_MEMORY_TECHNOLOGY; + +/// DMI Type 17 offset 29h - Memory Operating Mode Capability +typedef struct { + uint16_t Reserved1:1; ///< Reserved, set to 0 + uint16_t Other:1; ///< Other + uint16_t Unknown:1; ///< Unknown + uint16_t VolatileMemory:1; ///< Volatile memory + uint16_t ByteAccessiblePersistentMemory:1; ///< Byte-accessible persistent memory + uint16_t BlockAccessiblePersistentMemory:1; ///< Block-accessible persistent memory + uint16_t Reserved2:10; ///< Reserved, set to 0 +} DMI_T17_MEMORY_OPERATING_MODE_CAPABILITY; + +typedef union { + DMI_T17_MEMORY_OPERATING_MODE_CAPABILITY AsBitmap; + uint16_t AsUint16; +} DMI_T17_MEMORY_OPERATING_MODE_CAPABILITY_VAR; + +/// DMI Type 17 - Memory Device +typedef struct { + uint16_t Handle; ///< The temporary handle, or instance number, associated with the structure + uint16_t TotalWidth; ///< Total Width, in bits, of this memory device, + ///< including any check or error-correction bits. + uint16_t DataWidth; ///< Data Width, in bits, of this memory device. + uint16_t MemorySize; ///< The size of the memory device. + DMI_T17_FORM_FACTOR FormFactor; ///< The implementation form factor for this memory device. + uint8_t DeviceSet; ///< Identifies when the Memory Device is one of a set of + ///< Memory Devices that must be populated with all devices of + ///< the same type and size, and the set to which this device + ///< belongs. + char DeviceLocator[8]; ///< The string number of the string that identifies the physically + ///< labeled socket or board position where the memory device is + ///< located. + char BankLocator[13]; ///< The string number of the string that identifies the physically + ///< labeled bank where the memory device is located. + DMI_T17_MEMORY_TYPE MemoryType; ///< The type of memory used in this device. + DMI_T17_TYPE_DETAIL TypeDetail; ///< Additional detail on the memory device type + uint16_t Speed; ///< Identifies the speed of the device, in megahertz (MHz). + uint64_t ManufacturerIdCode; ///< Manufacturer ID code. + char SerialNumber[9]; ///< Serial Number. + char PartNumber[21]; ///< Part Number. + uint8_t Attributes; ///< Bits 7-4: Reserved, Bits 3-0: rank. + uint32_t ExtSize; ///< Extended Size. + uint16_t ConfigSpeed; ///< Configured memory clock speed + uint16_t MinimumVoltage; ///< Minimum operating voltage for this device, in millivolts + uint16_t MaximumVoltage; ///< Maximum operating voltage for this device, in millivolts + uint16_t ConfiguredVoltage; ///< Configured voltage for this device, in millivolts + // SMBIOS 3.2 + uint8_t MemoryTechnology; ///< Memory technology type for this memory device + DMI_T17_MEMORY_OPERATING_MODE_CAPABILITY_VAR MemoryOperatingModeCapability; ///< The operating modes + ///< supported by this memory device + char FirmwareVersion[10]; ///< String number for the firmware version of this memory device + uint16_t ModuleManufacturerId; ///< The two-byte module manufacturer ID found in the SPD + ///< of this memory device; LSB first. + uint16_t ModuleProductId; ///< The two-byte module product ID found in the SPD of this + ///< memory device; LSB first + uint16_t MemorySubsystemControllerManufacturerId; ///< The two-byte memory subsystem controller + ///< manufacturer ID found in the SPD of this + ///< memory device; LSB first + uint16_t MemorySubsystemControllerProductId; ///< The 2-byte memory subsystem controller productID + uint64_t NonvolatileSize; ///< Size of the Non-volatile portion of the + uint64_t VolatileSize; ///< Size of the Volatile portion of the memory + uint64_t CacheSize; ///< Size of the Cache portion of the memory device in Bytes + uint64_t LogicalSize; ///< Size of the Logical memory device in Bytes. + // SMBIOS 3.3 + uint32_t ExtendedSpeed; ///< Extended Speed + uint32_t ExtendedConfiguredMemorySpeed; ///< Extended Configured memory speed +} SIL_TYPE17_DMI_INFO; + +/// DMI Type 19 - Memory Array Mapped Address +typedef struct { + uint32_t StartingAddr; ///< The physical address, in kilobytes, + ///< of a range of memory mapped to the + ///< specified physical memory array. + uint32_t EndingAddr; ///< The physical ending address of the + ///< last kilobyte of a range of addresses + ///< mapped to the specified physical memory array. + uint16_t MemoryArrayHandle; ///< The handle, or instance number, associated + ///< with the physical memory array to which this + ///< address range is mapped. + uint8_t PartitionWidth; ///< Identifies the number of memory devices that + ///< form a single row of memory for the address + ///< partition defined by this structure. + uint64_t ExtStartingAddr; ///< The physical address, in bytes, of a range of + ///< memory mapped to the specified Physical Memory Array. + uint64_t ExtEndingAddr; ///< The physical address, in bytes, of a range of + ///< memory mapped to the specified Physical Memory Array. +} SIL_TYPE19_DMI_INFO; + +///DMI Type 20 - Memory Device Mapped Address +typedef struct { + uint32_t StartingAddr; ///< The physical address, in kilobytes, of a range + ///< of memory mapped to the referenced Memory Device. + uint32_t EndingAddr; ///< The handle, or instance number, associated with + ///< the Memory Device structure to which this address + ///< range is mapped. + uint16_t MemoryDeviceHandle; ///< The handle, or instance number, associated with + ///< the Memory Device structure to which this address + ///< range is mapped. + uint16_t MemoryArrayMappedAddressHandle; ///< The handle, or instance number, associated + ///< with the Memory Array Mapped Address structure to + ///< which this device address range is mapped. + uint8_t PartitionRowPosition; ///< Identifies the position of the referenced Memory + ///< Device in a row of the address partition. + uint8_t InterleavePosition; ///< The position of the referenced Memory Device in + ///< an interleave. + uint8_t InterleavedDataDepth; ///< The maximum number of consecutive rows from the + ///< referenced Memory Device that are accessed in a + ///< single interleaved transfer. + uint64_t ExtStartingAddr; ///< The physical address, in bytes, of a range of + ///< memory mapped to the referenced Memory Device. + uint64_t ExtEndingAddr; ///< The physical ending address, in bytes, of the last of + ///< a range of addresses mapped to the referenced Memory Device. +} SIL_TYPE20_DMI_INFO; + +/** + * @brief MAXIMIUM VALUES + * + * These Max values are used to define array sizes and associated loop + * counts in the code. + */ +#define SIL_MAX_SOCKETS_SUPPORTED 2 /// Max number of sockets supported +#define SIL_MAX_CHANNELS_PER_SOCKET 12 /// Max Channels per sockets supported +#define SIL_MAX_DIMMS_PER_CHANNEL 2 /// Max DIMMs on a memory channel supported +#define SIL_MAX_T19_REGION_SUPPORTED 3 /// Max SMBIOS T19 Memory Region count + +/// Collection of pointers to the DMI records +typedef struct { + SIL_TYPE16_DMI_INFO T16; + SIL_TYPE17_DMI_INFO T17[SIL_MAX_SOCKETS_SUPPORTED][SIL_MAX_CHANNELS_PER_SOCKET][SIL_MAX_DIMMS_PER_CHANNEL]; + SIL_TYPE19_DMI_INFO T19[SIL_MAX_T19_REGION_SUPPORTED]; + SIL_TYPE20_DMI_INFO T20[SIL_MAX_SOCKETS_SUPPORTED][SIL_MAX_CHANNELS_PER_SOCKET][SIL_MAX_DIMMS_PER_CHANNEL]; +} SIL_DMI_INFO; + + +/********************************************************************* + * API Function prototypes + *********************************************************************/ +SIL_STATUS DummyXprfFunction (void); + +/** + * xPrfSetSnpRmp + * + * @brief Program Snp Rmp table MSRs + * + * @details This function will program the SNP RMP table base and size MSRs + * with the base and size provided by Host-FW. + * + * @param SnpRmpTableBase Base address of the SNP RMP buffer allocated by + * host firmware + * @param SnpRmpTableSize The size of the SNP RMP buffer allocated by host + * firmware. + * + */ +void +xPrfSetSnpRmp ( + uint64_t SnpRmpTableBase, + uint64_t SnpRmpTableSize + ); + +/** + * xPrfGetSystemMemoryMap + * @brief Get top of memory (Tom2) for the Host along with + * memory map, and number of holes + * + * @param[out] NumberOfHoles Number of memory holes + * @param[out] TopOfSystemMemory Top of memory address + * @param[out] MemHoleDescPtr Memory descriptor structure + * + * @retval SilPass Info extracted successfully. + * @retval SilInvalidParameter Failure. + **/ +SIL_STATUS +xPrfGetSystemMemoryMap ( + uint32_t *NumberOfHoles, + uint64_t *TopOfSystemMemory, + void **MemHoleDescPtr +); + +/** + * xPrfGetLowUsableDramAddress + * + * @brief Get top of low(<4Gb) usable DRAM accounting for pre-assigned + * buffers for system use. + * This is used by the host firmware to locate low usable + * DRAM top. The ApobBaseAddress is optional if set in kconfig + * properly. + * + * @param[in] ApobBaseAddress location of the APOB + * + * @retval uint32_t Top address of available DRAM region below 4GB + * @retval 0 Failure. + **/ +uint32_t +xPrfGetLowUsableDramAddress ( + uint32_t ApobBaseAddress + ); + +/* + * Prototypes for RAS xPRF services + */ +/** + * xPrfCollectDimmMap + * + * @brief Populate the DimmMap buffer input from the Host. + * + * @param DimmMap Input buffer for the Dimm Map. The Host is responsible + * for ensuring the buffer size is sufficient to contain + * SIL_ADDR_DATA (defined in RasClass-api.h). + * On output, the buffer is populated with SIL_ADDR_DATA. + * + * @return SIL_STATUS + * + * @retval SilPass The Dimm Map was successfully populated. + * @retval SilOutOfBounds The Dimm Map input buffer size was not sufficient. + */ +SIL_STATUS +xPrfCollectDimmMap ( + SIL_ADDR_DATA *DimmMap +); + +/** + * xPrfGetMaxCpus + * + * @brief Returns the maximum possible number of CPUs. The maximum here + * represents the absolute maximum supported by any SoC in openSIL. + * This value is used to allocate memory for the Cpu map. + * + * When the Host allocate memory for the RasCpuMap buffer, this + * function should be used to determine the number of SIL_CPU_INFO + * structures that need to be allocated. + * + * @return The maximum number of cpus including logical CPUs (threads). + */ +uint32_t +xPrfGetMaxCpus (void); + +/** + * xPrfCollectCpuMap + * + * @brief This function is responsible for building the CPU map used by the host + * RAS driver. + * + * @param RasCpuMap On input, the pointer to the CPU map structure. The structure contains a SIL_CPU_INFO for + * every processor (thread) in the system. It is the responsibility of the host to allocate + * sufficient memory for this structure. + * On output, the buffer is filled with instances of + * SIL_CPU_INFO (defined in RasClass-api.h) for each CPU. + * @param CpuMapSize The size of the buffer RasCpuMap. + * @param TotalCpus Return the total number of CPUs. + * + * @details This function has dependencies on the following openSIL + * Services/IPs: + * + * Df->GetSystemInfo() + * Nbio->GetCoreTopologyOnDie() + * + * @retval SilPass CPU map created successfully + * @retval SilInvalidParameter GetProcessorInfo failed + * @retval SilInvalidParameter GetCoreTopologyOnDie failed + * @retval SilNotFound Info for current ccd, complex, or core not found + * @retval SilOutOfBounds The input buffer is not sufficient for all CPUs + */ +SIL_STATUS +xPrfCollectCpuMap ( + SIL_CPU_INFO *RasCpuMap, + uint32_t CpuMapSize, + uint32_t *TotalCpus + ); + +/** + * xPrfCollectCoreMcaInfo + * + */ +void +xPrfCollectCoreMcaInfo ( + void *Buffer +); + +/** + * xPrfCollectMcaErrorInfo + * + * @brief Function for performing a search for MCA errors through all banks on + * a specific thread. + * + * @details It is the responsibility of the Host to ensure the input buffer is + * sufficient to contain the SIL_RAS_MCA_ERROR_INFO_V2 (defined in + * RasClass-api.h). + * + * @note ***This function is executed on all processors by the Host in a + * multi-processor environment. + * + * @param Buffer Input pointer to a buffer that will be populated with + * SIL_RAS_MCA_ERROR_INFO_V2 + */ +void +xPrfCollectMcaErrorInfo ( + void *Buffer +); + +/** + * xPrfMcaErrorAddrTranslate + * + * @brief Translate Unified Memory Controller (UMC) local address into + * specific memory DIMM information and system address. + * + * @param SystemMemoryAddress Pointer to return the calculated system address + * @param NormalizedAddress UMC memory address Information passed in from + * Host. + * @param DimmInfo Point to a buffer to populate translated + * normalized address data. Host is responsible + * for ensuring the buffer size is sufficient to + * contain SIL_DIMM_INFO (defined in + * RasClass-api.h). + * @param AddrData Dimm information map, created by Host call to + * xPrfCollectDimmMap, used in address translation + * + * @return SIL_STATUS + * + */ +SIL_STATUS +xPrfMcaErrorAddrTranslate ( + uint64_t *SystemMemoryAddress, + SIL_NORMALIZED_ADDRESS *NormalizedAddress, + SIL_DIMM_INFO *DimmInfo, + SIL_ADDR_DATA *AddrData +); + +/** + * xPrfTranslateSysAddrToCS + * + * @brief Translate system address into specific memory DIMM information and + * normalized address information + * + * @param SystemMemoryAddress System Address + * @param NormalizedAddress UMC memory address Information + * @param DimmInfo DIMM information + * @param AddrData Dimm information map used in address translation + * + * @return SIL_STATUS + * + */ +SIL_STATUS +xPrfTranslateSysAddrToCS ( + uint64_t *SystemMemoryAddress, + SIL_NORMALIZED_ADDRESS *NormalizedAddress, + SIL_DIMM_INFO *DimmInfo, + SIL_ADDR_DATA *AddrData +); + +/** + * xPrfTranslateSysAddrToDpa + * + * @brief System Address Translate to DIMM Physical Address (DPA) + * + * @details Translate system address into specific memory DIMM information and + * normalized address information + * + * @param SystemMemoryAddress System Address input + * @param Dpa DIMM Physical Address to output + * @param AddrData Dimm information map input used in address + * translation + * + * @return SIL_STATUS + * + * @retval SilNotFound RAS API was not found in the API list + * @retval SilPass Address translated successfully + */ +SIL_STATUS +xPrfTranslateSysAddrToDpa ( + uint64_t *SystemMemoryAddress, + uint64_t *Dpa, + SIL_ADDR_DATA *AddrData + ); + +/** + * xPrfMcaIpIdInstanceIdInit + * + * @brief Program the Core MCA_IPID MSR Instance ID values for the CPU specified in RasCpuInfo. + * + * @param RasCpuInfo The CPU info structure for the core to program (RasClass-api.h) + * + * @return SIL_STATUS + * @retval SilPass If the function completed normally + * @retval SilNotFound If RAS API was not found in the API list + */ +SIL_STATUS +xPrfMcaIpIdInstanceIdInit ( + SIL_CPU_INFO *RasCpuInfo + ); + +/** + * xPrfProgramCoreMcaConfigUmc + * + * @brief This function will enable/disable FRU text in MCA based on the input flag. + * + * @details When enabled the FRU text is reported in McaSynd1/McaSynd2 MSRs. + * + * @param EnableFruText Input flag to enable/disable FRU text in MCA. + * + * @return SIL_STATUS + * @retval SilPass If the function completed normally + * @retval SilNotFound If RAS API was not found in the API list + */ +SIL_STATUS +xPrfProgramCoreMcaConfigUmc ( + bool EnableFruText + ); + +/** + * xPrfSetIpMcaCtlMask + * + * @brief Set the MCA_CTL_MASK for a given IP. + * + * @param HardwareId Hardware ID input to match with MCA Bank MCA IP ID. + * @param McaType MCA Type input to match with MCA Bank MCA IP ID. + * @param IpMcaPolicyCfg Host firmware input containing platform policy information + * that is used to configure MCA Control mask settings. The structure is a union + * of all supported IP RAS policy structure. The host is responsible for populating the + * appropriate IP structure with valid policy information. Currently supported IP structures: + * + * - SIL_NBIO_RAS_POLICY + * + * @returns SIL_STATUS + * @retval SilNotFound If RAS API was not found in the API list + * @retval SilPass Function completed normally + * + */ +SIL_STATUS +xPrfSetIpMcaCtlMask ( + uint16_t HardwareId, + uint16_t McaType, + SIL_IP_RAS_POLICY *IpMcaPolicyCfg + ); + +/** + * xPrfUpdateDimmFruTextToMca + * + * @brief This function provides the service to add Field Replaceable Unit + * (FRU) text to UMC MCA bank + * + * @details This function has dependencies on the following openSIL + * Services/IPs: + * + * Df->DfGetSystemInfo() + * Df->DfGetProcessorInfo() + * Df->DfGetRootBridgeInfo() + * + * @param DimmFruTextTable Input of the Dimm Fru Text table. Host is expected + * to provide the table in a format compatible with + * SIL_DIMM_FRUTEXT_TABLE (defined in RasClass-api.h) + * @return SIL_STATUS + * + * @retval SilNotFound The RAS IP Api was not found + * @retval SilInvalidParameter An invalid parameter was passed to + * RasApi->UpdateFruTextToUmc + * @retval SilPass FRU text successfully updated + */ +SIL_STATUS +xPrfUpdateDimmFruTextToMca ( + SIL_DIMM_FRUTEXT_TABLE *DimmFruTextTable + ); + +/** + * xPrfGetLocalSmiStatus + * + * @brief Get the Local Smi Status from the SMM save state area. + * + * @details The top 512 bytes (FE00h to FFFFh) of SMRAM memory space are the + * default SMM state-save area. When an SMI occurs, the processor saves + * its state in the 512-byte SMRAM state-save area during the control + * transfer into SMM. + * + * @note ***This function is expected to be executed on a specific processor + * by the Host in a multi-processor environment. + * + * @return uint32_t The local SMI status for the processor + */ +uint32_t +xPrfGetLocalSmiStatus ( + void + ); + +/** + * xPrfGetSmbiosMemInfo + * + * Description: + * This routine gets DMI Type 16, Type 17, Type 19 and Type 20 related information. + * + * @details This routine gets DMI Type 16, Type 17, + * Type 19 and Type 20 related information. + * + * @param DmiInfoTable - DMI records + * + * @retval SIL_STATUS + */ +SIL_STATUS +xPrfGetSmbiosMemInfo( + SIL_DMI_INFO *DmiInfoTable + ); + +/** + * xPrfGetMemInfo + * + * @brief populate AMD_MEMORY_SUMMARY + * + * @details This function populate AMD_MEMORY_SUMMARY + * structure which is used to report DRAM info + * to the Host + * + * @param *MemSummaryTable - Pointer to AMD_MEMORY_SUMMARY + * + * @retval SIL_STATUS + */ +SIL_STATUS +xPrfGetMemInfo ( + AMD_MEMORY_SUMMARY *MemSummaryTable + ); + +/** + * xPrfGetThreadsPerCore + * + * @brief This Function is responsible to provide the threads per core values. + * Threads per core read from the MSR Register CPUID Fn0x8000001E_EBX + * xPRF wrapper function call xPrfGetThreadsPerCore to + * get the threads per core values + * + * @return uint8_t Threads per Core values + */ +uint8_t +xPrfGetThreadsPerCore (void); + +/** + * xPrfGetPStatePower + * + * @brief This Function is responsible to provide the Power in mW of the specified PState. + * GetPstateInfo take input has current PState value and provide the Power in mW. + * xPRF wrapper function call xPrfGetPStatePower to + * get Power in mW of the specified PState. + * + * @return uint32_t Power in mW of the specified PState + */ +uint32_t +xPrfGetPStatePower(void); + +/* + * xPrfGetNbiotopologyStructure + * + * @brief Returns the base address of Pcie Topology Structure + * + */ +void* xPrfGetNbiotopologyStructure(void); + +/** + * xPrfCreateSratApicEntry + * + * @brief create SRAT Local APIC structure + * + * @param SratApic Input buffer for the SRAT Local APIC structure. The Host is responsible + * for ensuring the buffer size is sufficient to contain + * SIL_SRAT_APIC or SIL_SRAT_x2APIC structure. + * On output, the buffer is populated with SIL_SRAT_APIC or SIL_SRAT_x2APIC. + * @param SratApicSize The size of the SratApicSize input buffer from the Host. This + * is used by openSIL to ensure the input buffer size is + * sufficient to contain SIL_SRAT_APIC or SIL_SRAT_x2APIC. + * + * @param ApicModeValue APIC operation modes. Options are: + * ApicMode - Small systems (< 128 cores). + * x2ApicMode - Large systems. + * ApicCompatibilityMode - Allow the code to choose depending on the quantity + * of cores present. X2 mode is preferred. + * + * @param SratTableLength xPrfCreateSratApicEntry xPrf Service update Total SRAT Table Length into + * "SratTableLength" variable. + * + * @return SIL_STATUS + * + * @retval SilPass The SRAT APIC Entry was successfully populated. + * @retval SilOutOfBounds The SRAT APIC Entry input buffer size was not sufficient. + */ +SIL_STATUS +xPrfCreateSratApicEntry( + uint8_t *SratApic, + uint32_t SratApicSize, + uint8_t ApicModeValue, + uint32_t *SratTableLength); + +/** + * xPrfPStateGatherData + * + * @brief This xPrf Service Provide the PState information. + * + * @details This function will collect all PState information from the MSRs and fill up the + * Ouput Buffer. + * PState Informations are : Physical socket number + * Logical core number in this socket + * Pstate enable status + * Core Frequency in MHz + * Power in MilliWatts + * Software P-state number + * + * @param PStateData Input buffer for the PState System Info structure. The Host is responsible + * for ensuring the buffer size is sufficient to contain + * PSTATE_SYS_INFO structure. + * On output, the buffer is populated with PSTATE_SYS_INFO. + * @param PStateDataSize The size of the PStateDataSize input buffer from the Host. This + * is used by openSIL to ensure the input buffer size is + * sufficient to contain PSTATE_SYS_INFO . + * + * @return SIL_STATUS + * + * @retval SilPass The PState System Info was successfully populated. + * @retval SilOutOfBounds The PState System Info input buffer size was not sufficient. + */ +SIL_STATUS +xPrfPStateGatherData ( + PSTATE_SYS_INFO *PStateData, + uint32_t PStateDataSize + ); + +/** + * xPrfGetCratHsaProcInfo + * + * @brief This xPrf Service Provide the CRAT information about the HSA. + * + * @details This function will collect CRAT information about the HSA and fill up the + * Ouput Buffer. + * CRAT Informations are : proximity node + * logical processor included in this HSA proximity domain + * count of execution units present in the APU node. + * + * @param CratHsaProcData Input buffer for the CRAT Info structure about the HSA. The + * Host is responsible for ensuring the buffer size is + * sufficient to contain SIL_CRAT_HSA_PROC_INFO structure. + * On output, the buffer is populated with SIL_CRAT_HSA_PROC_INFO. + * @param CratHsaProcDataSize The size of the CratHsaProcDataSize input buffer from the Host. + * This is used by openSIL to ensure the input buffer size is + * sufficient to contain SIL_CRAT_HSA_PROC_INFO . + * + * @return SIL_STATUS + * + * @retval SilPass The PState System Info was successfully populated. + * @retval SilOutOfBounds The PState System Info input buffer size was not sufficient. + */ +SIL_STATUS +xPrfGetCratHsaProcInfo ( + uint8_t *CratHsaProcData, + uint32_t CratHsaProcDataSize + ); + +/** + * xPrfCratCacheEntry + * + * @brief This xPrf Service Provide the CRAT Cache information . + * + * @details This function will collect CRAT Cache information and fill up the + * Ouput Buffer. + * CRAT Cache Informations are : Low value of a logical processor + * which includes this component + * + * @param CratCacheEntry Input buffer for the CRAT Cache Info structure. The + * Host is responsible for ensuring the buffer size is + * sufficient to contain SIL_CRAT_CACHE structure. + * On output, the buffer is populated with SIL_CRAT_CACHE. + * @param CratCacheEntrySize The size of the CratCacheEntrySize input buffer from the Host. + * This is used by openSIL to ensure the input buffer size is + * sufficient to contain SIL_CRAT_CACHE . + * + * @return SIL_STATUS + * + * @retval SilPass The PState System Info was successfully populated. + * @retval SilOutOfBounds The PState System Info input buffer size was not sufficient. + */ +SIL_STATUS +xPrfCratCacheEntry ( + uint8_t *CratCacheEntry, + uint32_t CratCacheEntrySize + ); diff --git a/Include/xSIM-api.h b/Include/xSIM-api.h new file mode 100644 index 0000000..e0b3fa5 --- /dev/null +++ b/Include/xSIM-api.h @@ -0,0 +1,395 @@ +/* Copyright 2023 Advanced Micro Devices, Inc. All rights reserved. */ +// SPDX-License-Identifier: MIT +/** + * @file + * @brief xSIM-Host API definitions + * + * @details This file is used to declare the API functions, variables and + * macros needed by the Host to perform the early initialization + * of the AMD silicon. + */ +/** + * @cond API_Doc + * @page TopXsim Silicon Initialization Module (xSIM) + * 'xSIM' is the AMD x86 Silicon Initialization Module. + * This module is responsible for the very early (basic) Si initialization + * comming off of reset. It places the silicon into a state where more + * general activities can be performed. + * + * The xSIM folder contains the general infrastructure functions, + * the early initialization functions and is also the central translation + * point for 'SoC' to list of 'IP's. Actual IP programming is done by the xUSL. + * + * See the 'Files - @ref xsim-api.h' section of this document for + * further details. + * + * SocList - The platform maysupport one or more SoC's in it socket(s). This + * is a list of the SoC's to be supported. + * IpBlkList - Each SoC is comprised of several IP blocks. This is a list of + * the IP blocks contained within the SoC. There is one list per SoC. + * This list contains pointers to the IP support routines in the xUSL. + * + * @endcond + */ +#pragma once + +#include +#include // needed for declarations later in this file +#include +#include + +/* + Warning C4200: nonstandard extension used : zero-sized array in struct/union + This warning is generated by 'uint8_t InfoBlockData[]' field in SIL_INFO_BLOCK_HEADER +*/ +#pragma warning(disable:4200) + +/** @brief Data Block Identifiers + * + * @details These are unique identifiers used by the xSIM and the Host + * sides to locate an IPblock Input or Output data structure. See @ref SilFindStructure. + * Each block type must have a unique identifier, so an IP may have several + * block IDs defined for the sections of memory it uses (input, output, private) + * and each may have multiple instances. For example, a UART port may use one + * ID for 'UART Port' but have several instances, one per port. + */ +typedef enum { + SilId_SocCommon = 0, + SilId_DfClass, + SilId_CcxClass, + SilId_FchClass, + SilId_MultiFchClass, + SilId_FchHwAcpiP, + SilId_FchAb, + SilId_FchSpi, + SilId_FchHwAcpi, + SilId_FchSata, + SilId_FchEspi, + SilId_FchUsb, + SilId_MemClass, + SilId_MultiFch, + SilId_NorthBridgePcie, + SilId_NbioClass, + SilId_XmpClass, + SilId_RcManager, + SilId_SmuClass, + SilId_MpioClass, + SilId_SdciClass, + SilId_CxlClass, + SilId_RasClass, + // Add new elements above this line ^^^ + SilId_ListEnd ///< Value to bound the list +} SIL_DATA_BLOCK_ID; + + +/** @brief Header structure for openSIL Input & Output Blocks + * + * @details This header is included at the front of each block assigned. It is + * used to manage the space and locate the assigned blocks, + * see @ref SilFindStructure. + */ +typedef struct { + uint32_t Id; ///< Information block identifier, see @ref SIL_DATA_BLOCK_ID + uint16_t Instance; ///< Instance # of this ID (0..N) Instance '0' + ///< is reserved for the top level (class level) + ///< and values 1..N are for the ports. + uint8_t RevMajor; ///< Structure Major revision number. This is + ///< incremented when a non-backward compatible + ///< change is made. + uint8_t RevMinor; ///< Structure Minor revision number. This is + ///< is incremented for every change. + uint32_t InfoBlockDataSize; ///< Information block size. This is the + ///< size of block assigned, including the header, + ///< rounded up to the next full DWORD. + uint8_t InfoBlockData[]; ///< start of the IP input block data struct. + ///< Cast this point to the IP structure type to + ///< reference the structure elements. +} SIL_INFO_BLOCK_HEADER; + +typedef enum { + SIL_TP1, ///< In TP1 openSIL assign the memory to the Each IPs + SIL_TP2, ///< In TP2 Each Ips get the address of the memory + ///< location which was assign in the TP1 + SIL_TP3 ///< In TP3 Each Ips get the address of the memory + ///< location which was assign in the TP1 +} SIL_TIMEPOINT; +/********************************************************************* + * API Function prototypes + *********************************************************************/ + +/** @brief Gather Memory Requirements + * + * @anchor HostSIL_Mem + * @details This is the Host's request to xSIM for the amount of memory needed. + * The function body will collect information from all of its + * sub-modules as to the size they need. The aggregated total will be + * returned to the Host caller. + * + * @return The return value is the minimum size, in bytes, + * needed by all xSIM components to complete their job. + */ +size_t +xSimQueryMemoryRequirements ( void ); + + +/** + * xSimAssignMemoryTp1 + * + * @brief Assign The Host Supplied Memory for timepoint 1 + * + * @anchor HostSIL_Assign1 + * @details Host informs xSIM of the allocated memory; gets defaults. + * The xUSL layer may record this base address for reference. + * The function body will call sub-modules (dependent upon the Soc design) + * to initialize IP related structures. Each sub module will assign the next + * piece of the buffer by instantiating its input block and any needed output + * blocks. Each instance contains the IP module identifier (a unique structure ID), + * information about the instance and the configuration data (structure) + * for that block. + * + * Multiple instances (both input and output) can/will be assigned per the + * SoC design. Each instance must have access information for that instance + * (e.g. register base). + * The sub-module is also responsible for filling the configuration data + * section of the input block(s) with the defaults predefined at build time. + * The output blocks must be initialized and all response values filled with 0s. + * These will be updated when the IP module initializes the silicon. + * + * During TimePoint 1, openSIL is responsible for: + * + * 1. Initializing the global pointer to the Host allocated openSIL + * memory block. + * 2. Initializing its internal APIs + * 3. Assigning necessary memory to each IP block. + * + * @param BaseAddress Starting address of the block + * allocated by the Host FW. + * @param MemorySize Value containing the size of the + * allocated block (size in bytes). + * + * @return This routine provides two responses, + * 1. {memory block}: filled with IP sub-modules structures and default values. + * 2. Completion status: + * @retval OK function completed successfully + * @retval ResourceError the block provided was insufficient for + * the quantity requested by the sub-modules. + */ +SIL_STATUS +xSimAssignMemoryTp1 ( + void* BaseAddress, + size_t MemorySize + ); + +/** + * xSimAssignMemoryTp2 + * + * @brief Assign The Host Supplied Memory for timepoint 2 + * + * @anchor HostSIL_Assign2 + * @details Host informs xSIM of the allocated memory; gets defaults. + * The xUSL layer may record this base address for reference. + * The function body will call sub-modules (dependent upon the Soc design) + * to initialize IP related structures. Each sub module will assign the next + * piece of the buffer by instantiating its input block and any needed output + * blocks. Each instance contains the IP module identifier (a unique structure ID), + * information about the instance and the configuration data (structure) + * for that block. + * + * Multiple instances (both input and output) can/will be assigned per the + * SoC design. Each instance must have access information for that instance + * (e.g. register base). + * The sub-module is also responsible for filling the configuration data + * section of the input block(s) with the defaults predefined at build time. + * The output blocks must be initialized and all response values filled with 0s. + * These will be updated when the IP module initializes the silicon. + * + * During TimePoint 2, openSIL is responsible for: + * + * 1. Initializing the global pointer to the Host allocated openSIL + * memory block. + * 2. Initializing its internal APIs + * + * @param BaseAddress Starting address of the block + * allocated by the Host FW. + * @param MemorySize Value containing the size of the + * allocated block (size in bytes). + * + * @return This routine provides two responses, + * 1. {memory block}: filled with IP sub-modules structures and default values. + * 2. Completion status: + * @retval OK function completed successfully + * @retval ResourceError the block provided was insufficient for + * the quantity requested by the sub-modules. + */ +SIL_STATUS +xSimAssignMemoryTp2 ( + void* BaseAddress, + size_t MemorySize + ); + +/** + * xSimAssignMemoryTp3 + * + * @brief Assign The Host Supplied Memory for timepoint 3 + * + * @anchor HostSIL_Assign3 + * @details Host informs xSIM of the allocated memory; gets defaults. + * The xUSL layer may record this base address for reference. + * The function body will call sub-modules (dependent upon the Soc design) + * to initialize IP related structures. Each sub module will assign the next + * piece of the buffer by instantiating its input block and any needed output + * blocks. Each instance contains the IP module identifier (a unique structure ID), + * information about the instance and the configuration data (structure) + * for that block. + * + * Multiple instances (both input and output) can/will be assigned per the + * SoC design. Each instance must have access information for that instance + * (e.g. register base). + * The sub-module is also responsible for filling the configuration data + * section of the input block(s) with the defaults predefined at build time. + * The output blocks must be initialized and all response values filled with 0s. + * These will be updated when the IP module initializes the silicon. + * + * During TimePoint 2, openSIL is responsible for: + * + * 1. Initializing the global pointer to the Host allocated openSIL + * memory block. + * 2. Initializing its internal APIs + * + * @param BaseAddress Starting address of the block + * allocated by the Host FW. + * @param MemorySize Value containing the size of the + * allocated block (size in bytes). + * + * @return This routine provides two responses, + * 1. {memory block}: filled with IP sub-modules structures and default values. + * 2. Completion status: + * @retval OK function completed successfully + * @retval ResourceError the block provided was insufficient for + * the quantity requested by the sub-modules. + */ +SIL_STATUS +xSimAssignMemoryTp3 ( + void* BaseAddress, + size_t MemorySize + ); + +/** @brief Find a structure + * + * @anchor HostSIL_Find + * @details Locate an assigned modules data block. Once the allocated + * memory block has been assigned to the IP blocks and filled with + * structure data, the Host will use this function to locate a structure + * within the memory block that was assigned by an IP block. + * + * The Host firmware may then inspect default settings and make any desired + * configuration content changes. + * + * @param StructureID value obtained from an enum list in the + * API.H file which identifies the specific IP block to + * be targeted. + * @param InstanceNum Always starting with 0, this value indicates which + * one of many possible instances of an IP block is to be located. + * + * @return A pointer to the address of the data block + * requested. The address is within the Host allocated + * memory block; e.g. writable area. + * @retval 0x0000 indicates the requested block was not found. + */ +void* +SilFindStructure ( + SIL_DATA_BLOCK_ID StructureID, + uint16_t InstanceNum + ); + +/**-------------------------------------------------------------------- + * SilDebugSetup + * + * @anchor HostSIL_Debug + * @brief Record pointer to host debug service routine + * @details The Host provides all debug output services. The openSIL code + * uses macros to implement tracing functions and call the Host service + * routine. + * + * The routine provided by the host must fit the prototype + * defined here: @ref xUslTracePoint . + * This is the fuction definition called by the macros. + * + * @param HostDbgService Pointer to the host debug service routine + * + * @returns SilPass The process completed successfully + * @returns SilInvalidParameter The HostDbgService pointer was invalid + **/ +SIL_STATUS +SilDebugSetup ( + HOST_DEBUG_SERVICE HostDbgService + ); + +/** + * InitializeSiTp1 + * + * @brief Initialize the Silicon at timepoint 1 + * + * @details This is the primary Host API call to initialize all of the AMD silicon. + * The input parameter block(s) have been allocated and assigned to IP + * blocks. Input parameters that need dynamic adjustment have been modified; now + * is it time to say "GO". This call starts the IP block initializations. + * This function proceeds through each sub-module of the SoC to initialize + * it's related silicon modules and all instances (port) thereunder. + * + * @return This routine provides two responses, + * 1. {IP output block} each IPs output block will provide extended result information. + * 2. Completion status indicates the general outcome of the process: + * @retval OK The process completed successfully + * @retval Error One or more of the sub-modules reported an error in + * their initialization process. Please inspect the IP block + * output blocks for information. + */ +SIL_STATUS +InitializeSiTp1 (void); + +/** + * InitializeSiTp2 + * + * @brief Initialize the Silicon at timepoint 2 + * + * @details This is the primary Host API call to initialize all of the AMD silicon. + * The input parameter block(s) have been allocated and assigned to IP + * blocks. Input parameters that need dynamic adjustment have been modified; now + * is it time to say "GO". This call starts the IP block initializations. + * This function proceeds through each sub-module of the SoC to initialize + * it's related silicon modules and all instances (port) thereunder. + * + * @return This routine provides two responses, + * 1. {IP output block} each IPs output block will provide extended result information. + * 2. Completion status indicates the general outcome of the process: + * @retval OK The process completed successfully + * @retval Error One or more of the sub-modules reported an error in + * their initialization process. Please inspect the IP block + * output blocks for information. + */ +SIL_STATUS +InitializeSiTp2 (void); + +/** + * InitializeSiTp3 + * + * @brief Initialize the Silicon at timepoint 3 + * + * @details This is the primary Host API call to initialize all of the AMD silicon. + * The input parameter block(s) have been allocated and assigned to IP + * blocks. Input parameters that need dynamic adjustment have been modified; now + * is it time to say "GO". This call starts the IP block initializations. + * This function proceeds through each sub-module of the SoC to initialize + * it's related silicon modules and all instances (port) thereunder. + * + * @return This routine provides two responses, + * 1. {IP output block} each IPs output block will provide extended result information. + * 2. Completion status indicates the general outcome of the process: + * @retval OK The process completed successfully + * @retval Error One or more of the sub-modules reported an error in + * their initialization process. Please inspect the IP block + * output blocks for information. + */ +SIL_STATUS +InitializeSiTp3 (void); diff --git a/Kconfig b/Kconfig new file mode 100644 index 0000000..c65f5d5 --- /dev/null +++ b/Kconfig @@ -0,0 +1,29 @@ +# Config for openSIL +# Copyright 2022-2023 Advanced Micro Devices, Inc. All rights reserved. +# SPDX-License-Identifier: MIT +# +# top level - selecting the Platform settings, SoC(s) to be included +# and IP device settings +# Nomemclature: +# * All config elements will be prefixed with "CONFIG_" by Kconfig +# * Elements with names that start with "HAVE_" are code inclusion control +# elements. These will be used in the Meson build files to select which +# code modules will be included. +# + +mainmenu "AMD openSIL project" +comment " " +comment " AMD open Silicon Initialization Library " +comment " " + +source "Kconfig.Plat" +source "Kconfig.SoC" +source "Kconfig.IP" + +## Special selection for including the Example (XMP) device +config HAVE_EXAMPLE + bool "Do you want to include the Example (XMP) Device?" + default n + + + diff --git a/Kconfig.IP b/Kconfig.IP new file mode 100644 index 0000000..45a10fd --- /dev/null +++ b/Kconfig.IP @@ -0,0 +1,36 @@ +# Config for openSIL +# Copyright 2022-2023 Advanced Micro Devices, Inc. All rights reserved. +# SPDX-License-Identifier: MIT +# +# top level - selecting the SoC(s) to be included +# Nomemclature: +# * All config elements will be prefixed with "CONFIG_" by Kconfig +# * Elements with names that start with "HAVE_" are code inclusion control +# elements. These will be used in the Meson build files to select which +# code modules will be included. +# * Elements with names that start with "PLAT_" are platform description +# elements. +# + +menu "AMD Silicon Feature Settings" +comment " " +comment " The available silicon devices and features are dependent upon " +comment " which AMD processor(s) have been selected for inclusion into " +comment " the platform build. " +comment " " +# + + + +source "xUSL/XMP/Kconfig" ## temporary, remove when xUSL tree enabled +source "xUSL/CCX/Kconfig" +#source "xUSL/DF/Kconfig" +source "xUSL/NBIO/Kconfig" +source "xUSL/Mpio/Kconfig" +source "xUSL/Sdci/Kconfig" +#source "xUSL/FCH/Kconfig" +#source "xUSL/SMU/Kconfig" +#source "xUSL/RAS/Kconfig" +#source "xUSL/MEM/Kconfig" + +endmenu diff --git a/Kconfig.Plat b/Kconfig.Plat new file mode 100644 index 0000000..91b8508 --- /dev/null +++ b/Kconfig.Plat @@ -0,0 +1,62 @@ +# Config for opoenSIL +# Platform level - set the platform values needed by openSIL +# +# Copyright 2022-2023 Advanced Micro Devices, Inc. All rights reserved. +# SPDX-License-Identifier: MIT +# +# These are the patform descriptors needed by the openSIL code base. These +# must be defined for the platform. +# These values are 'static' in nature - once set, they are not changed by code. +# + +menu "PLATFORM Description Settings" + +comment "The following items are placed in the platform address map by the " +comment "porting Engineer. These locations must be propogated into openSIL." +comment " " + +config PLAT_APOB_ADDRESS + hex "AMD Platform Output Block (APOB) location (32bit Hex address)" + default 0x75BA0000 + help + Location (32bit Hex address) in the platform memory address + allocation map where you have the APOB. (platform dependent) + The APOB is the AMD embedded firmware data block describing the + topology for the processor found during early power-on. The platform + must allocate a space in the memory map to accomodate the data. + + +config PSP_BIOS_BIN_BASE + hex "Base of the initial bootblock" + default 0x75CA0000 + help + Location (32bit Hex address) in the platform memory address + allocation map where the initial bootblock is placed. + +config PSP_BIOS_BIN_SIZE + hex "Size of initial bootblock" + default 0x360000 + help + Size of the initial bootblock placed in memroy by the PSP. + + +config PLAT_CPU_MICROCODE_LOCATION + hex "CPU uCode buffer location (32bit Hex address)" + default 0x003FFF00 + help + Location (32bit Hex address) in the platform memory address + allocation map where you have located the buffer containing + the CPU core Micro-code patch. + + +config PLAT_NUMBER_SOCKETS + int "Motherboard has N sockets." + range 1 2 + default 1 + help + The SoC may support 1 or 2 sockets, but the motherboard may + implement fewer than the SoC max. This is a design decision and + is present here to inform the openSIL code. + +endmenu + diff --git a/Kconfig.Skt b/Kconfig.Skt new file mode 100644 index 0000000..1a18fa8 --- /dev/null +++ b/Kconfig.Skt @@ -0,0 +1,55 @@ +# Config for opoenSIL +# Platform level - set the platform values needed by openSIL +# +# Copyright 2022-2023 Advanced Micro Devices, Inc. All rights reserved. +# SPDX-License-Identifier: MIT +# +# These are config fields used to select the Market Segment +# and Socket type for the platform. These will then be used to further +# select the group of SoC available in those sockets. +# These values are 'static' in nature - once set, they are not changed by code. +# + +choice MARKET_SEGMENT + prompt "Market segment for this plaform" + default MKT_SEG_SERVER + help + The AMD processors are grouped and sold by these market classes. + This field is used to limit the SoC choice list to those sold + in the selected market group/segment. + +config MKT_SEG_SERVER + bool "Server" + help + Larger towers or rack mount systems possibly multi-socket + + +endchoice + +## optionally define a string for the Market Segment name for use in messages +config PLAT_MARKET_SEGMENT_NAME + string + default "Data Center" if MKT_SEG_SERVER + + +##------------------------------------------------------------- +# Select the Socket type +# +choice PLAT_SOCKET_TYPE + prompt "Motherboard socket(s) type:" + default SKT_TYPE_SP5 + +config SKT_TYPE_SP5 + bool "SP5" + depends on MKT_SEG_SERVER + help + Server + + +endchoice + +## optionally define a string for the socket name for use in messages +config PLAT_SOCKET_TYPE_NAME + string + default "SP5" if SKT_TYPE_SP5 + diff --git a/Kconfig.SoC b/Kconfig.SoC new file mode 100644 index 0000000..9c1a2c1 --- /dev/null +++ b/Kconfig.SoC @@ -0,0 +1,44 @@ +# Config for openSIL +# Copyright 2022-2023 Advanced Micro Devices, Inc. All rights reserved. +# SPDX-License-Identifier: MIT +# +# top level - selecting the SoC(s) to be included +# Nomemclature: +# * All config elements will be prefixed with "CONFIG_" by Kconfig +# * Elements with names that start with "HAVE_" are code inclusion control +# elements. These will be used in the Meson build files to select which +# code modules will be included. +# * Elements with names that start with "PLAT_" are platform description +# elements. +# + +menu "AMD Processor(s) Selection" +comment " This is the list of supported AMD processors for openSIL. Please " +comment " select the Socket and processor designed into your motherboard. " +comment " " + +source "Kconfig.Skt" + +# This is where the SoC(s) are determined for the build +# The select statements define which IP-Version are used in each SoC +# Several SoCs may use the same IP-version + +##if (PLAT_SOCKET_TYPE = "SP5") +if (SKT_TYPE_SP5) +config SOC_F19M10 + boolean "F19M10 (Genoa) Support" + select HAVE_SOC_COMMON + select HAVE_DF_DFX + select HAVE_CCX_ZEN4 + select HAVE_MPIO + select HAVE_SDCI + select HAVE_NBIO_IOD + select HAVE_FCH_9004 + select HAVE_SMU_V13 + select HAVE_XMP_VER_B if HAVE_EXAMPLE + help + Does your project use a Family 19h Model 10h + Choose 'y' to include the Genoa support code +endif + +endmenu diff --git a/LICENSE/MIT-License.txt b/LICENSE/MIT-License.txt new file mode 100644 index 0000000..4ed0732 --- /dev/null +++ b/LICENSE/MIT-License.txt @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2023 Advanced Micro Devices, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and +associated documentation files (the "Software"), to deal in the Software without restriction, +including without limitation the rights to use, copy, modify, merge, publish, distribute, +sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice (including the next paragraph) shall be included in all copies +or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..b6592ce --- /dev/null +++ b/README.md @@ -0,0 +1,70 @@ +# AMD openSIL: Proof-of-Concept (POC) + + +## About the project: + +The AMD open Silicon Initialization Library (openSIL) is a collection of C libraries which can be integrated into an x86 host firmware, by directly compiling source or by linking with static libraries. + +AMD openSIL consists of three statically linked libraries; xSIM (x86 Silicon Initialization Libraries), xPRF (x86 Platform Reference Library), and xUSL (x86 Utilities & Services Library). These libraries can be statically linked to a host firmware during compile/link time. + +Source for the libraries resides under [xSIM](xSIM), [xPRF](xPRF), and [xUSL](xUSL). + +Formal documentation is in final review and will be uploaded to the [GitHub project page](https://github.com/openSIL/openSIL/tree/master/Documentation) when available.
+The AMD blog "[Empowering The Industry with Open System Firmware - AMD openSIL](https://community.amd.com/t5/business/empowering-the-industry-with-open-system-firmware-amd-opensil/ba-p/599644)" provides a starting point to grasp the openSIL design goals.

+ +## AMD openSIL open-source projected roadmap: + ### Evaluation Only Phases (no support for production implementations): + 1. Phase I - Internal POC (complete). + 2. Phase II - AMD openSIL POC open-sourced for evaluation on AMD 4th Gen EPYC™ based CRB (complete: this source). + 3. Phase III - POC openSIL POC open-sourced, trending Q4 2024. + ### Production Phase: + 4. Phase IV: - AMD openSIL POR with UEFI Host FW trending 2026.

+## Getting Started: + +1. Clone Repository: + 1. Establish your GitHub user account and your SSH keys (details are beyond this doc) + 2. Open a command/terminal window + 3. Run git to obtain the project: + ```> git clone git@github.com:openSIL/openSIL.git```

+ +2. Establish the project environment variables. + + * You will find a shell/cmd file (SetSilEnv) in the 'util' directory for this purpose.

+ +3. Configure your project + * This release of the AMD openSIL libraries supports AMD 4th Gen EPYC™ on the Onyx CRB only. + + * The openSIL project uses the python version of the Kconfig tool for this purpose. (See GitHub Kconfiglib). + + * Run the interactive configuration UI: + ```> python %PYTHONPATH%\menuconfig.py Kconfig```

+ +4. Build openSIL Libraries: + * The AMD openSIL library build is performed using 'Meson build', an open source python tool (see GitHub). Several targets allow a focused build for xUSL, xSIM, xPRF or openSIL(xUSL + xSIM + XPRF) static libraries. AMD openSIL specific Meson build documentation is not yet available. + * The project can be built for 32bit and/or 64bit compilation and static libraries. + * The project supports both the GNU/GCC or LLVM/clang tool chain and the Microsoft Visual C tool chain. Generally it is recommended to use the latest versions of these tool chains.
+ Specific versions being used today (June 2023) are: + * GCC - v10.2.0 + * llvm/clang - v10.0 + * MSVC v19.00.24210 (Visual Studio 2015)
+ +5. Integrate with Host Firmware: + + * AMD has a separate repository ("opensil-uefi-interface" ) for helping customers integrate openSIL with previous UEFI-AGESA installations. Please contact your AMD representative for more information.

+ +6. Test Host Firmware on reference platform + + * All AMD openSIL testing has been performed on AMD an AMD reference platform (Onyx CRB). + * Present list of supported reference platforms is shown in the following table. + + | Market
Segment | AMD Processor
Family Model | Firmware | Reference Platform
Name | + | ------------------- | -------------------------------- | -------- | ----------------------------- | + | Server | F19M10 | UEFI | Onyx | + +## Forthcoming items: + * Formal documentation to be publishd to this repository. + * Continuous integration (CI) tools will be implemented as a pre-requisite to merging pull requests. + +## License: + +The MIT License (MIT): https://rem.mit-license.org diff --git a/amd-checkers.txt b/amd-checkers.txt new file mode 100644 index 0000000..2a995d5 --- /dev/null +++ b/amd-checkers.txt @@ -0,0 +1,70 @@ +-en +BUFFER_SIZE +-en +CHECKED_RETURN +-en +CONSTANT_EXPRESSION_RESULT +-en +DC.STRING_BUFFER +-en +DEADCODE +-en +ENUM_AS_BOOLEAN +-en +FORWARD_NULL +-en +HARDCODED_CREDENTIALS +-en +HFA +-en +IDENTICAL_BRANCHES +-en +INCOMPATIBLE_CAST +-en +INTEGER_OVERFLOW +-en +MISSING_BREAK +-en +MISSING_COMMA +-en +MIXED_ENUMS +-en +NEGATIVE_RETURNS +-en +NO_EFFECT +-en +NULL_RETURNS +-en +OVERRUN +-en +PARSE_ERROR +-en +PASS_BY_VALUE +-en +REVERSE_INULL +-en +SIZEOF_MISMATCH +-en +STRING_OVERFLOW +-en +UNENCRYPTED_SENSITIVE_DATA +-en +UNINIT +-en +UNUSED_VALUE +-en +USER_POINTER +-en +WEAK_GUARD +-en +WEAK_PASSWORD_HASH +-en +OVERRUN +--all +--enable-constraint-fpp +--enable-fnptr +--enable-virtual +--enable-callgraph-metrics +--enable-parse-warnings +-j +auto diff --git a/cert-c-all.config b/cert-c-all.config new file mode 100644 index 0000000..f23c77c --- /dev/null +++ b/cert-c-all.config @@ -0,0 +1,8 @@ +// Do not edit this file! Make a copy and edit it to produce your own configuration +// Configuration for CERT, rule categories: L1, L2, L3 +{ + "version": "2.0", + "standard": "cert-c", + "title": "CERT C All Rules", + "deviations": [] +} diff --git a/configs/Onyx_SilCfg b/configs/Onyx_SilCfg new file mode 100644 index 0000000..dca9ff1 --- /dev/null +++ b/configs/Onyx_SilCfg @@ -0,0 +1,251 @@ +# Copyright 2022-2023 Advanced Micro Devices, Inc. All rights reserved. +# SPDX-License-Identifier: MIT + +# +# AMD open Silicon Initialization Library +# +# +# PLATFORM Description Settings +# +# +# The following items are placed in the platform address map by the +# porting Engineer. These locations must be propogated into openSIL. +# +CONFIG_PLAT_APOB_ADDRESS=0x4000000 +CONFIG_PSP_BIOS_BIN_BASE=0x76D00000 +CONFIG_PSP_BIOS_BIN_SIZE=0x300000 +CONFIG_PLAT_CPU_MICROCODE_LOCATION=0x003FFF00 +CONFIG_PLAT_NUMBER_SOCKETS=1 +# end of PLATFORM Description Settings + +# +# AMD Processor(s) Selection +# + +# +# This is the list of supported AMD processors for openSIL. Please +# select the Socket and processor designed into your motherboard. +# +CONFIG_MKT_SEG_SERVER=y +CONFIG_PLAT_MARKET_SEGMENT_NAME="Data Center" +CONFIG_SKT_TYPE_SP5=y +# CONFIG_SKT_TYPE_SP5 is set +CONFIG_PLAT_SOCKET_TYPE_NAME="SP5" +# CONFIG_SOC_F19M10 is set +CONFIG_SOC_F19M10=y +# end of AMD Processor(s) Selection + +# +# AMD Silicon Feature Settings +# +# The available silicon devices and features are dependent upon +# which AMD processor(s) have been selected for inclusion into +# the platform build. +# +CONFIG_HAVE_CCX_ZEN4=y + +# +# Compute Core Complex (CCX) Device +# +CONFIG_CHOICE_APIC_AUTO=y +CONFIG_CCX_APIC_MODE=0xFF +CONFIG_CHOICE_NUMCCD_AUTO=y +CONFIG_CCX_CCD_MODE=0 +CONFIG_CCX_SMT_MODE=1 +CONFIG_CCX_CSTATE_ENABLE=1 +CONFIG_CCX_CSTATE_IO_ADDR=0x0813 +CONFIG_CCX_CSTATE_CC6_ENABLE=1 +CONFIG_CCX_CPB_ENABLE=1 +CONFIG_CCX_SMEE_ENABLE=0 + +# end of Compute Core Complex (CCX) Device + +CONFIG_HAVE_NBIO_IOD=y + +# +# IOAPIC settings +# +CONFIG_IOAPIC_MMIO_ADDRESS_RESERVED_ENABLE=1 +CONFIG_IOAPIC_ID_PREDEFINE_EN=0 +CONFIG_IOAPIC_ID_BASE=0xF1 +# end of IOAPIC settings + +CONFIG_CHOICE_AUTO=y +# CONFIG_CHOICE_DISABLED is not set +CONFIG_NBIO_GLOBAL_CG_OVERRIDE=0x0f +CONFIG_SSTUNL_CLK_GATING=1 +CONFIG_NBIF_MGCG_CLK_GATING=1 +CONFIG_NBIF_MGCG_HYSTERESIS=0 +CONFIG_SYSHUB_MGCG_CLK_GATING=0 +CONFIG_SYSHUB_MGCG_HYSTERESIS=0 +CONFIG_IOHC_CLK_GATING_SUPPORT=1 +CONFIG_NTB_CLOCK_GATING_ENABLE=1 +CONFIG_IOHC_PG_ENABLE=1 +CONFIG_IOHC_NONPCI_BAR_INIT_DBG=0 +CONFIG_IOHC_NONPCI_BAR_INIT_FAST_REG=0 +CONFIG_IOHC_NONPCI_BAR_INIT_FAST_REGCTL=0 +# end of NBIO PMM - General + +# +# NBIO common Options +# +CONFIG_IOMMU_SUPPORT=1 +CONFIG_IOMMU_L1_CLOCK_GATING_EN=1 +CONFIG_IOMMU_L2_CLOCK_GATING_EN=1 +CONFIG_IOMMU_AVIC_SUPPORT=0 +CONFIG_IOMMU_MMIO_ADDRESS_RESERVED_ENABLE=1 +CONFIG_PCIE_ECRC_ENABLEMENT=1 +CONFIG_AUTO_SPEED_CHANGE_EN=0 +CONFIG_PCIE_ARI_SUPPORT=1 +CONFIG_RX_MARGIN_PERSISTENCE_MODE=1 +# end of NBIO common Options + +# +# Advanced Error Reporting +# +CONFIG_AER_ENABLE=1 +CONFIG_ACS_ENABLE=1 +CONFIG_PCIE_LTR_ENABLE=1 +CONFIG_TPH_COMPLETER_ENABLE=1 +CONFIG_SRIOV_EN_DEV0F1=0 +CONFIG_ARI_EN_DEV0F1=0 +CONFIG_AER_EN_DEV0F1=0 +CONFIG_ACS_EN_DEV0F1=0 +CONFIG_ATS_EN_DEV0F1=0 +CONFIG_PASID_EN_DEV0F1=0 +CONFIG_RTR_EN_DEV0F1=0 +CONFIG_PRI_EN_DEV0F1=0 +CONFIG_ATC_ENABLE=0 +CONFIG_ACS_EN_RCC_DEV0=0 +CONFIG_AER_EN_RCC_DEV0=0 +CONFIG_ACS_SOURCE_VAL_STRAP5=1 +CONFIG_ACS_TRANSLATIONAL_BLOCKING_STRAP5=1 +CONFIG_ACS_P2P_REQ_STRAP5=1 +CONFIG_ACS_P2P_COMP_STRAP5=1 +CONFIG_ACS_UPSTREAM_FWD_STRAP5=1 +CONFIG_ACS_P2P_EGRESS_STRAP5=0 +CONFIG_ACS_DIRECT_TRANSLATED_STRAP5=1 +CONFIG_ACS_SSID_EN_STRAP5=1 +CONFIG_DLF_EN_STRAP1=1 +CONFIG_PHY_16GT_STRAP1=1 +CONFIG_MARGIN_EN_STRAP1=1 +CONFIG_PRI_EN_PAGE_REQ=1 +CONFIG_PRI_RESET_PAGE_REQ=1 +CONFIG_ACS_SOURCE_VAL=1 +CONFIG_ACS_TRANSLATIONAL_BLOCKING=0 +CONFIG_ACS_P2P_REQ=1 +CONFIG_ACS_P2P_COMP=1 +CONFIG_ACS_UPSTREAM_FWD=1 +CONFIG_ACS_P2P_EGRESS=0 +CONFIG_AMD_MASK_DPC_CAPABILITY=0 +# end of Advanced Error Reporting + +CONFIG_CHOICE_PCIE_SPEEDCTRL_AUTO=y +CONFIG_PCIE_SPEED_CONTROL=0x0F +CONFIG_PWR_EN_DEV0F1=0 +CONFIG_TLP_PREFIX_SETTING=0 +CONFIG_RCC_DEV0_EXTENDED_FMT_SUPPORTED=0 +CONFIG_DLF_CAP_EN=1 +CONFIG_DL_FEX_EN=1 +CONFIG_PRE_CODE_REQUEST_ENABLE=0 +CONFIG_ADVERTISE_EQ_TO_HIGH_RATE_SUPPORT=0 +CONFIG_FABRIC_SDCI=0 +CONFIG_ESM_EN_ALL_ROOT_PORTS=0 +# end of Northbridge IO (NBIO) Device + +CONFIG_HAVE_MPIO=y + +# +# MicroProcessor Input Output (MPIO) +# +CONFIG_MPIO_CLOCKGATING_ENABLE=1 +CONFIG_MPIO_TIMINGCTRL_ENABLE=0 +CONFIG_PCIE_LINK_RECEIVER_DETECT_TIMEOUT=0 +CONFIG_PCIE_LINK_RESET_TO_TRAINING_TIMEOUT=0 +CONFIG_PCIE_LINK_L0_STATE_TIMEOUT=0 +CONFIG_MPIO_EXACT_MATCH_ENABLE=0 +CONFIG_MPIO_PHY_VALID=1 +CONFIG_MPIO_PHY_PROGRAMMING=1 +CONFIG_MPIO_SKIP_PSP_MSG=1 +CONFIG_CHOICE_SAVE_RESTORE_MODE_DEFAULT=y +CONFIG_MPIO_SAVE_RESTORE_MODE=0xFF +CONFIG_CHOICE_ENABLE_PCIE_POLLING=y +CONFIG_MPIO_ALLOW_PCIE_POLLING=0x00 +CONFIG_CHOICE_HOT_PLUG_AUTO=y +CONFIG_MPIO_HOT_PLUG_MODE=0xFF +CONFIG_CHOICE_PCIE_SRIS_AUTO=y +CONFIG_MPIO_PCIE_SRIS_CONTROL=0xFF +CONFIG_CHOICE_PCIE_SRIS_SKIP_INTERVAL_0=y +CONFIG_MPIO_PCIE_SRIS_SKIP_INTERVAL=0x00 +CONFIG_MPIO_SRIS_SKIP_INTERVAL_SELECT=1 +CONFIG_MPIO_SRIS_CONFIG_TYPE=0 +CONFIG_CHOICE_SRIS_AUTO_DETECT_MODE_AUTO=y +CONFIG_MPIO_SRIS_AUTO_DETECT_MODE=0x0F +CONFIG_MPIO_SRIS_AUTODETECT_FACTOR=0 +CONFIG_CHOICE_SRIS_SKP_TRANSMISSION_UNSUPPORTED=y +CONFIG_MPIO_PCIE_SRIS_SKP_TRANSMISSION_CONTROL=0x00 +CONFIG_CHOICE_SRIS_SKP_RECEPTION_UNSUPPORTED=y +CONFIG_MPIO_PCIE_SRIS_SKP_RECEPTION_CONTROL=0x00 +CONFIG_MPIO_CXL_PORT_CONTROL=1 +CONFIG_MPIO_CXL_CORRECTABLE_ERROR_LOGGING=1 +CONFIG_MPIO_CXL_UNCORRECTABLE_ERROR_LOGGING=1 +CONFIG_MPIO_ADVANCED_ERROR_REPORTING_ENABLE=1 +CONFIG_MPIO_PCIE_MULTICAST_ENABLE=0 +CONFIG_MPIO_RECEIVE_ERROR_ENABLE=0 +CONFIG_MPIO_EARLY_BMC_LINK_TRAIN_ENABLE=1 +CONFIG_CHOICE_SOCKET_NUM_0=y +CONFIG_MPIO_EARLY_BMC_LINK_SOCKET=0x00 +CONFIG_MPIO_EARLY_BMC_LINK_LANE=134 +CONFIG_CHOICE_LANE_0_TO_31=y +CONFIG_MPIO_EARLY_BMC_LINK_DIE=0x00 +CONFIG_MPIO_SURPRISE_DOWN_ENABLE=1 +CONFIG_MPIO_PCIE_LINK_TRAINING_SPEED=0 +CONFIG_MPIO_RX_MARGIN_ENABLE=1 +CONFIG_MPIO_PCIE_CV_TEST_CONFIG=1 +CONFIG_MPIO_PCIE_ARI_SUPPORT=1 +CONFIG_MPIO_TOGGLE_NBIO_TO_SC=0 +CONFIG_MPIO_TOGGLE_NBIO_IGNORE_CTO_ERROR=1 +CONFIG_NBIO_CONTROLLER_SSID=0 +CONFIG_IOMMU_CONTROLLER_SSID=0 +CONFIG_PSP_CCP_CONTROLLER_SSID=0 +CONFIG_NTB_CCP_CONTROLLER_SSID=0 +CONFIG_NBIF0_CONTROLLER_SSID=0 +CONFIG_NTB_CONTROLLER_SSID=0 +CONFIG_PCIE_SUBSYSTEM_DEVICE_ID=0 +CONFIG_PCIE_SUBSYSTEM_VENDOR_ID=0 +CONFIG_MPIO_GPP_ATOMIC_OPS=1 +CONFIG_MPIO_GPFXATOMIC_OPS=1 +CONFIG_MPIO_EDB_ERROR_REPORTING_ENABLE=0 +CONFIG_MPIO_OPN_SPARE=0 +CONFIG_AMD_PRE_SIL_CONTROL=0 +CONFIG_MPIO_ANCILLARY_DATA_SUPPORT_ENABLE=0 +CONFIG_MPIO_AFTER_RESET_DELAY=0 +CONFIG_MPIO_EARLY_LINK_TRAINING_ENABLE=0 +CONFIG_CHOICE_USE_PLATFORM_CONFIG_DEFAULT=y +CONFIG_MPIO_EXPOSE_UNUSED_PCIE_PORTS=0xFF +CONFIG_CHOICE_NO_LINK_SPEED_LIMIT=y +CONFIG_MPIO_MAX_PCIE_LINK_SPEED=0 +CONFIG_MPIO_SATA_PHY_TUNING=0 +CONFIG_PCIE_LINK_COMPILANCE_MODE_ENABLE=1 +CONFIG_MPIO_MCTP_SUPPORT_ENABLE=0 +CONFIG_SBR_BROKEN_LANE_AVOIDANCE_ENABLE=1 +CONFIG_AUTO_FULL_MARGINING_SUPPORT_ENABLE=1 +CONFIG_GEN3_PCIE_PRESET_MASK=0xFFFFFFFF +CONFIG_GEN4_PCIE_PRESET_MASK=0xFFFFFFFF +CONFIG_GEN5_PCIE_PRESET_MASK=0xFFFFFFFF +CONFIG_CHOICE_ACTIVE_STATE_PWR_MGMT_AUTO=y +CONFIG_PCIE_LINK_ACTIVE_STATE_PWR_MGMT=0xFF +CONFIG_MCTP_MASTER_PCI_ADDR_SEGMENT=0 +CONFIG_MCTP_MASTER_PCI_ADDR=0 +# end of MicroProcessor Input Output (MPIO) + +CONFIG_HAVE_SDCI=y + +# +# Smart Data Cache Injection (SDCI) +# +CONFIG_SDCI_SMART_DATA_CACHE_INJECTION_ENABLE=0 +# end of Smart Data Cache Injection (SDCI) +# end of AMD Silicon Feature Settings + +# CONFIG_HAVE_EXAMPLE is not set diff --git a/configs/Onyx_SilCfg.h b/configs/Onyx_SilCfg.h new file mode 100644 index 0000000..d139272 --- /dev/null +++ b/configs/Onyx_SilCfg.h @@ -0,0 +1,177 @@ +/* Copyright 2022-2023 Advanced Micro Devices, Inc. All rights reserved. */ +// SPDX-License-Identifier: MIT +#define CONFIG_PLAT_APOB_ADDRESS 0x4000000 +#define CONFIG_PSP_BIOS_BIN_BASE 0x76D00000 +#define CONFIG_PSP_BIOS_BIN_SIZE 0x300000 +#define CONFIG_PLAT_CPU_MICROCODE_LOCATION 0x003FFF00 +#define CONFIG_PLAT_NUMBER_SOCKETS 1 +#define CONFIG_MKT_SEG_SERVER 1 +#define CONFIG_PLAT_MARKET_SEGMENT_NAME "Data Center" +#define CONFIG_SKT_TYPE_SP5 1 +#define CONFIG_PLAT_SOCKET_TYPE_NAME "SP5" +#define CONFIG_SOC_F19M10 1 +#define CONFIG_HAVE_CCX_ZEN4 1 +#define CONFIG_CHOICE_APIC_AUTO 1 +#define CONFIG_CCX_APIC_MODE 0xFF +#define CONFIG_CHOICE_NUMCCD_AUTO 1 +#define CONFIG_CCX_CCD_MODE 0 +#define CONFIG_CCX_SMT_MODE 1 +#define CONFIG_CCX_CSTATE_ENABLE 1 +#define CONFIG_CCX_CSTATE_IO_ADDR 0x0813 +#define CONFIG_CCX_CSTATE_CC6_ENABLE 1 +#define CONFIG_CCX_CPB_ENABLE 1 +#define CONFIG_CCX_SMEE_ENABLE 0 +#define CONFIG_HAVE_NBIO_IOD 1 +#define CONFIG_IOAPIC_MMIO_ADDRESS_RESERVED_ENABLE 1 +#define CONFIG_IOAPIC_ID_PREDEFINE_EN 0 +#define CONFIG_IOAPIC_ID_BASE 0xF1 +#define CONFIG_CHOICE_AUTO 1 +#define CONFIG_NBIO_GLOBAL_CG_OVERRIDE 0x0f +#define CONFIG_SSTUNL_CLK_GATING 1 +#define CONFIG_NBIF_MGCG_CLK_GATING 1 +#define CONFIG_NBIF_MGCG_HYSTERESIS 0 +#define CONFIG_SYSHUB_MGCG_CLK_GATING 0 +#define CONFIG_SYSHUB_MGCG_HYSTERESIS 0 +#define CONFIG_IOHC_CLK_GATING_SUPPORT 1 +#define CONFIG_NTB_CLOCK_GATING_ENABLE 1 +#define CONFIG_IOHC_PG_ENABLE 1 +#define CONFIG_IOHC_NONPCI_BAR_INIT_DBG 0 +#define CONFIG_IOHC_NONPCI_BAR_INIT_FAST_REG 0 +#define CONFIG_IOHC_NONPCI_BAR_INIT_FAST_REGCTL 0 +#define CONFIG_IOMMU_SUPPORT 1 +#define CONFIG_IOMMU_L1_CLOCK_GATING_EN 1 +#define CONFIG_IOMMU_L2_CLOCK_GATING_EN 1 +#define CONFIG_IOMMU_AVIC_SUPPORT 0 +#define CONFIG_IOMMU_MMIO_ADDRESS_RESERVED_ENABLE 1 +#define CONFIG_PCIE_ECRC_ENABLEMENT 1 +#define CONFIG_AUTO_SPEED_CHANGE_EN 0x0 +#define CONFIG_PCIE_ARI_SUPPORT 1 +#define CONFIG_RX_MARGIN_PERSISTENCE_MODE 1 +#define CONFIG_AER_ENABLE 1 +#define CONFIG_ACS_ENABLE 1 +#define CONFIG_PCIE_LTR_ENABLE 1 +#define CONFIG_TPH_COMPLETER_ENABLE 1 +#define CONFIG_SRIOV_EN_DEV0F1 0 +#define CONFIG_ARI_EN_DEV0F1 0 +#define CONFIG_AER_EN_DEV0F1 0 +#define CONFIG_ACS_EN_DEV0F1 0 +#define CONFIG_ATS_EN_DEV0F1 0 +#define CONFIG_PASID_EN_DEV0F1 0 +#define CONFIG_RTR_EN_DEV0F1 0 +#define CONFIG_PRI_EN_DEV0F1 0 +#define CONFIG_ATC_ENABLE 0 +#define CONFIG_ACS_EN_RCC_DEV0 0 +#define CONFIG_AER_EN_RCC_DEV0 0 +#define CONFIG_ACS_SOURCE_VAL_STRAP5 1 +#define CONFIG_ACS_TRANSLATIONAL_BLOCKING_STRAP5 1 +#define CONFIG_ACS_P2P_REQ_STRAP5 1 +#define CONFIG_ACS_P2P_COMP_STRAP5 1 +#define CONFIG_ACS_UPSTREAM_FWD_STRAP5 1 +#define CONFIG_ACS_P2P_EGRESS_STRAP5 0 +#define CONFIG_ACS_DIRECT_TRANSLATED_STRAP5 1 +#define CONFIG_ACS_SSID_EN_STRAP5 1 +#define CONFIG_DLF_EN_STRAP1 1 +#define CONFIG_PHY_16GT_STRAP1 1 +#define CONFIG_MARGIN_EN_STRAP1 1 +#define CONFIG_PRI_EN_PAGE_REQ 1 +#define CONFIG_PRI_RESET_PAGE_REQ 1 +#define CONFIG_ACS_SOURCE_VAL 1 +#define CONFIG_ACS_TRANSLATIONAL_BLOCKING 0 +#define CONFIG_ACS_P2P_REQ 1 +#define CONFIG_ACS_P2P_COMP 1 +#define CONFIG_ACS_UPSTREAM_FWD 1 +#define CONFIG_ACS_P2P_EGRESS 0 +#define CONFIG_AMD_MASK_DPC_CAPABILITY 0 +#define CONFIG_CHOICE_PCIE_SPEEDCTRL_AUTO 1 +#define CONFIG_PCIE_SPEED_CONTROL 0x0F +#define CONFIG_PWR_EN_DEV0F1 0 +#define CONFIG_TLP_PREFIX_SETTING 0 +#define CONFIG_RCC_DEV0_EXTENDED_FMT_SUPPORTED 0 +#define CONFIG_DLF_CAP_EN 1 +#define CONFIG_DL_FEX_EN 1 +#define CONFIG_PRE_CODE_REQUEST_ENABLE 0 +#define CONFIG_ADVERTISE_EQ_TO_HIGH_RATE_SUPPORT 0 +#define CONFIG_FABRIC_SDCI 0 +#define CONFIG_ESM_EN_ALL_ROOT_PORTS 0 +#define CONFIG_HAVE_MPIO 1 +#define CONFIG_MPIO_CLOCKGATING_ENABLE 1 +#define CONFIG_MPIO_TIMINGCTRL_ENABLE 0 +#define CONFIG_PCIE_LINK_RECEIVER_DETECT_TIMEOUT 0 +#define CONFIG_PCIE_LINK_RESET_TO_TRAINING_TIMEOUT 0 +#define CONFIG_PCIE_LINK_L0_STATE_TIMEOUT 0 +#define CONFIG_MPIO_EXACT_MATCH_ENABLE 0 +#define CONFIG_MPIO_PHY_VALID 1 +#define CONFIG_MPIO_PHY_PROGRAMMING 1 +#define CONFIG_MPIO_SKIP_PSP_MSG 1 +#define CONFIG_CHOICE_SAVE_RESTORE_MODE_DEFAULT 1 +#define CONFIG_MPIO_SAVE_RESTORE_MODE 0xFF +#define CONFIG_CHOICE_ENABLE_PCIE_POLLING 1 +#define CONFIG_MPIO_ALLOW_PCIE_POLLING 0x00 +#define CONFIG_CHOICE_HOT_PLUG_AUTO 1 +#define CONFIG_MPIO_HOT_PLUG_MODE 0xFF +#define CONFIG_CHOICE_PCIE_SRIS_AUTO 1 +#define CONFIG_MPIO_PCIE_SRIS_CONTROL 0xFF +#define CONFIG_CHOICE_PCIE_SRIS_SKIP_INTERVAL_0 1 +#define CONFIG_MPIO_PCIE_SRIS_SKIP_INTERVAL 0x00 +#define CONFIG_MPIO_SRIS_SKIP_INTERVAL_SELECT 1 +#define CONFIG_MPIO_SRIS_CONFIG_TYPE 0 +#define CONFIG_CHOICE_SRIS_AUTO_DETECT_MODE_AUTO 1 +#define CONFIG_MPIO_SRIS_AUTO_DETECT_MODE 0x0F +#define CONFIG_MPIO_SRIS_AUTODETECT_FACTOR 0 +#define CONFIG_CHOICE_SRIS_SKP_TRANSMISSION_UNSUPPORTED 1 +#define CONFIG_MPIO_PCIE_SRIS_SKP_TRANSMISSION_CONTROL 0x00 +#define CONFIG_CHOICE_SRIS_SKP_RECEPTION_UNSUPPORTED 1 +#define CONFIG_MPIO_PCIE_SRIS_SKP_RECEPTION_CONTROL 0x00 +#define CONFIG_MPIO_CXL_PORT_CONTROL 1 +#define CONFIG_MPIO_CXL_CORRECTABLE_ERROR_LOGGING 1 +#define CONFIG_MPIO_CXL_UNCORRECTABLE_ERROR_LOGGING 1 +#define CONFIG_MPIO_ADVANCED_ERROR_REPORTING_ENABLE 1 +#define CONFIG_MPIO_PCIE_MULTICAST_ENABLE 0 +#define CONFIG_MPIO_RECEIVE_ERROR_ENABLE 0 +#define CONFIG_MPIO_EARLY_BMC_LINK_TRAIN_ENABLE 1 +#define CONFIG_CHOICE_SOCKET_NUM_0 1 +#define CONFIG_MPIO_EARLY_BMC_LINK_SOCKET 0x00 +#define CONFIG_MPIO_EARLY_BMC_LINK_LANE 134 +#define CONFIG_CHOICE_LANE_0_TO_31 1 +#define CONFIG_MPIO_EARLY_BMC_LINK_DIE 0x00 +#define CONFIG_MPIO_SURPRISE_DOWN_ENABLE 1 +#define CONFIG_MPIO_PCIE_LINK_TRAINING_SPEED 0 +#define CONFIG_MPIO_RX_MARGIN_ENABLE 1 +#define CONFIG_MPIO_PCIE_CV_TEST_CONFIG 1 +#define CONFIG_MPIO_PCIE_ARI_SUPPORT 1 +#define CONFIG_MPIO_TOGGLE_NBIO_TO_SC 0 +#define CONFIG_MPIO_TOGGLE_NBIO_IGNORE_CTO_ERROR 1 +#define CONFIG_NBIO_CONTROLLER_SSID 0 +#define CONFIG_IOMMU_CONTROLLER_SSID 0 +#define CONFIG_PSP_CCP_CONTROLLER_SSID 0 +#define CONFIG_NTB_CCP_CONTROLLER_SSID 0 +#define CONFIG_NBIF0_CONTROLLER_SSID 0 +#define CONFIG_NTB_CONTROLLER_SSID 0 +#define CONFIG_PCIE_SUBSYSTEM_DEVICE_ID 0 +#define CONFIG_PCIE_SUBSYSTEM_VENDOR_ID 0 +#define CONFIG_MPIO_GPP_ATOMIC_OPS 1 +#define CONFIG_MPIO_GPFXATOMIC_OPS 1 +#define CONFIG_MPIO_EDB_ERROR_REPORTING_ENABLE 0 +#define CONFIG_MPIO_OPN_SPARE 0 +#define CONFIG_AMD_PRE_SIL_CONTROL 0 +#define CONFIG_MPIO_ANCILLARY_DATA_SUPPORT_ENABLE 0 +#define CONFIG_MPIO_AFTER_RESET_DELAY 0 +#define CONFIG_MPIO_EARLY_LINK_TRAINING_ENABLE 0 +#define CONFIG_CHOICE_USE_PLATFORM_CONFIG_DEFAULT 1 +#define CONFIG_MPIO_EXPOSE_UNUSED_PCIE_PORTS 0xFF +#define CONFIG_CHOICE_NO_LINK_SPEED_LIMIT 1 +#define CONFIG_MPIO_MAX_PCIE_LINK_SPEED 0 +#define CONFIG_MPIO_SATA_PHY_TUNING 0 +#define CONFIG_PCIE_LINK_COMPILANCE_MODE_ENABLE 1 +#define CONFIG_MPIO_MCTP_SUPPORT_ENABLE 0 +#define CONFIG_SBR_BROKEN_LANE_AVOIDANCE_ENABLE 1 +#define CONFIG_AUTO_FULL_MARGINING_SUPPORT_ENABLE 1 +#define CONFIG_GEN3_PCIE_PRESET_MASK 0xFFFFFFFF +#define CONFIG_GEN4_PCIE_PRESET_MASK 0xFFFFFFFF +#define CONFIG_GEN5_PCIE_PRESET_MASK 0xFFFFFFFF +#define CONFIG_CHOICE_ACTIVE_STATE_PWR_MGMT_AUTO 1 +#define CONFIG_PCIE_LINK_ACTIVE_STATE_PWR_MGMT 0xFF +#define CONFIG_MCTP_MASTER_PCI_ADDR_SEGMENT 0 +#define CONFIG_MCTP_MASTER_PCI_ADDR 0 +#define CONFIG_HAVE_SDCI 1 +#define CONFIG_SDCI_SMART_DATA_CACHE_INJECTION_ENABLE 0 diff --git a/configs/SilCfg.Template b/configs/SilCfg.Template new file mode 100644 index 0000000..1da2648 --- /dev/null +++ b/configs/SilCfg.Template @@ -0,0 +1,14 @@ +/* Copyright 2022-2023 Advanced Micro Devices, Inc. All rights reserved. */ +// SPDX-License-Identifier: MIT + +#pragma once + +/* fixup coverity build issues */ +#mesondefine IS_COVERITY_BUILD +#ifdef IS_COVERITY_BUILD + #include "util/meson/mason-coverity.h" +#endif + +/* Now include the platform openSIL config file generated from Kconfig */ +#include "@PlatFormKcfg@.h" + diff --git a/flist-opensil_config.txt b/flist-opensil_config.txt new file mode 100644 index 0000000..091782f --- /dev/null +++ b/flist-opensil_config.txt @@ -0,0 +1,3336 @@ +Output file from ListFiles.py +number Args: 157 +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/AmdFeatures.c +File: opensil/xUSL/AmdFeatures.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Apob.c +File: opensil/xUSL/Apob.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/BaseSocLogicalIdXlat.c +File: opensil/xUSL/BaseSocLogicalIdXlat.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CoreTopologyService.c +File: opensil/xUSL/CoreTopologyService.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/SocLogicalId.c +File: opensil/xUSL/SocLogicalId.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/SilGbls.c +File: opensil/xUSL/SilGbls.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/CpuOps.c +File: opensil/xUSL/CommonLib/CpuOps.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/IPC.c +File: opensil/xUSL/CommonLib/IPC.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/MmioOps.c +File: opensil/xUSL/CommonLib/MmioOps.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/PciOps.c +File: opensil/xUSL/CommonLib/PciOps.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/Pstates.c +File: opensil/xUSL/CommonLib/Pstates.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/SilServices.c +File: opensil/xUSL/CommonLib/SilServices.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/SmnAccess.c +File: opensil/xUSL/CommonLib/SmnAccess.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/Utils.c +File: opensil/xUSL/CommonLib/Utils.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/xUslCcxRoles.c +File: opensil/xUSL/CommonLib/xUslCcxRoles.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/AmdTable.c +File: opensil/xUSL/CCX/Common/AmdTable.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/Ccx.c +File: opensil/xUSL/CCX/Common/Ccx.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxBrandString.c +File: opensil/xUSL/CCX/Common/CcxBrandString.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxC6.c +File: opensil/xUSL/CCX/Common/CcxC6.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxCacheInit.c +File: opensil/xUSL/CCX/Common/CcxCacheInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxDownCoreInit.c +File: opensil/xUSL/CCX/Common/CcxDownCoreInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxMicrocodePatch.c +File: opensil/xUSL/CCX/Common/CcxMicrocodePatch.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxMiscInit.c +File: opensil/xUSL/CCX/Common/CcxMiscInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxSetMca.c +File: opensil/xUSL/CCX/Common/CcxSetMca.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/SocServices.c +File: opensil/xUSL/CCX/Common/SocServices.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxApLaunch32.c +File: opensil/xUSL/CCX/Common/CcxApLaunch32.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Zen3/Zen3.c +File: opensil/xUSL/CCX/Zen3/Zen3.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Zen3/Zen3DownCoreInit.c +File: opensil/xUSL/CCX/Zen3/Zen3DownCoreInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Zen3/CcxCmn2Zen3.c +File: opensil/xUSL/CCX/Zen3/CcxCmn2Zen3.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Zen4/Zen4.c +File: opensil/xUSL/CCX/Zen4/Zen4.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Zen4/Zen4DownCoreInit.c +File: opensil/xUSL/CCX/Zen4/Zen4DownCoreInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Zen4/CcxCmn2Zen4.c +File: opensil/xUSL/CCX/Zen4/CcxCmn2Zen4.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Zen4/CcxResetTablesZen4.c +File: opensil/xUSL/CCX/Zen4/CcxResetTablesZen4.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/Df.c +File: opensil/xUSL/DF/Df.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfClassDflts.c +File: opensil/xUSL/DF/DfClassDflts.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/Common/BaseFabricTopologyCmn.c +File: opensil/xUSL/DF/Common/BaseFabricTopologyCmn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/Common/FabricRegisterAccCmn.c +File: opensil/xUSL/DF/Common/FabricRegisterAccCmn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/DfXBaseFabricTopology.c +File: opensil/xUSL/DF/DfX/DfXBaseFabricTopology.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/DfX.c +File: opensil/xUSL/DF/DfX/DfX.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/DfXFabricRegisterAcc.c +File: opensil/xUSL/DF/DfX/DfXFabricRegisterAcc.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/DfCmn2Rev4.c +File: opensil/xUSL/DF/DfX/DfCmn2Rev4.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/DfXFabricWdt.c +File: opensil/xUSL/DF/DfX/DfXFabricWdt.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/DfXBaseFabricTopology.c +File: opensil/xUSL/DF/DfX/DfXBaseFabricTopology.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/FabricDfClkGatingInit/FabricDfClkGatingInit.c +File: opensil/xUSL/DF/DfX/FabricDfClkGatingInit/FabricDfClkGatingInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/FabricPieRasInit/FabricPieRasInit.c +File: opensil/xUSL/DF/DfX/FabricPieRasInit/FabricPieRasInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/FabricAcpiDomain/FabricAcpiDomainInfo.c +File: opensil/xUSL/DF/DfX/FabricAcpiDomain/FabricAcpiDomainInfo.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/Fch.c +File: opensil/xUSL/FCH/Common/Fch.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCommon.c +File: opensil/xUSL/FCH/Common/FchCommon.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchHelper.c +File: opensil/xUSL/FCH/Common/FchHelper.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/LegacyInterrupt.c +File: opensil/xUSL/FCH/Common/LegacyInterrupt.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchEnvDef.c +File: opensil/xUSL/FCH/Common/FchCore/FchEnvDef.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchAb/FchAb.c +File: opensil/xUSL/FCH/Common/FchCore/FchAb/FchAb.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchAb/FchAlinkLib.c +File: opensil/xUSL/FCH/Common/FchCore/FchAb/FchAlinkLib.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchEspi/FchEspi.c +File: opensil/xUSL/FCH/Common/FchCore/FchEspi/FchEspi.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchHwAcpi/FchHwAcpi.c +File: opensil/xUSL/FCH/Common/FchCore/FchHwAcpi/FchHwAcpi.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchHwAcpi/IP/Fch80.c +File: opensil/xUSL/FCH/Common/FchCore/FchHwAcpi/IP/Fch80.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchIsa/FchIsa.c +File: opensil/xUSL/FCH/Common/FchCore/FchIsa/FchIsa.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchIsa/FchSpi.c +File: opensil/xUSL/FCH/Common/FchCore/FchIsa/FchSpi.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchSata/FchSata.c +File: opensil/xUSL/FCH/Common/FchCore/FchSata/FchSata.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchXhci/FchXhci.c +File: opensil/xUSL/FCH/Common/FchCore/FchXhci/FchXhci.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchXhci/IP/UsbD10.c +File: opensil/xUSL/FCH/Common/FchCore/FchXhci/IP/UsbD10.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/MultiFch/MultiFchInit.c +File: opensil/xUSL/FCH/Common/MultiFch/MultiFchInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/9004/FchSn.c +File: opensil/xUSL/FCH/9004/FchSn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/9004/FchCore/FchSata/FchSataSn.c +File: opensil/xUSL/FCH/9004/FchCore/FchSata/FchSataSn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/9004/FchCore/FchSata/FchSataCmn2Sn.c +File: opensil/xUSL/FCH/9004/FchCore/FchSata/FchSataCmn2Sn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/9004/FchCore/FchHwAcpi/FchHwAcpiSn.c +File: opensil/xUSL/FCH/9004/FchCore/FchHwAcpi/FchHwAcpiSn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/9004/FchCore/FchHwAcpi/FchAcpiCmn2Sn.c +File: opensil/xUSL/FCH/9004/FchCore/FchHwAcpi/FchAcpiCmn2Sn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/9004/FchCore/FchXhci/FchXhciSn.c +File: opensil/xUSL/FCH/9004/FchCore/FchXhci/FchXhciSn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/9004/FchCore/FchXhci/FchXhciCmn2Sn.c +File: opensil/xUSL/FCH/9004/FchCore/FchXhci/FchXhciCmn2Sn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/9004/MultiFch/MultiFchCmn2Sn.c +File: opensil/xUSL/FCH/9004/MultiFch/MultiFchCmn2Sn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/9004/MultiFch/MultiFchSn.c +File: opensil/xUSL/FCH/9004/MultiFch/MultiFchSn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/MEM/Mem.c +File: opensil/xUSL/MEM/Mem.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioAncDataV1.c +File: opensil/xUSL/Mpio/Common/MpioAncDataV1.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioCfgPoints.c +File: opensil/xUSL/Mpio/Common/MpioCfgPoints.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioClassDflts.c +File: opensil/xUSL/Mpio/Common/MpioClassDflts.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioDebugOut.c +File: opensil/xUSL/Mpio/Common/MpioDebugOut.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioEarlyTrain.c +File: opensil/xUSL/Mpio/Common/MpioEarlyTrain.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioLib.c +File: opensil/xUSL/Mpio/Common/MpioLib.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioInit.c +File: opensil/xUSL/Mpio/Common/MpioInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioInitFlow.c +File: opensil/xUSL/Mpio/Common/MpioInitFlow.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioMappingResults.c +File: opensil/xUSL/Mpio/Common/MpioMappingResults.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioParser.c +File: opensil/xUSL/Mpio/Common/MpioParser.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioPcie.c +File: opensil/xUSL/Mpio/Common/MpioPcie.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioPortVisibility.c +File: opensil/xUSL/Mpio/Common/MpioPortVisibility.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioSupportFunctions.c +File: opensil/xUSL/Mpio/Common/MpioSupportFunctions.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioTopology.c +File: opensil/xUSL/Mpio/Common/MpioTopology.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioTrainingResults.c +File: opensil/xUSL/Mpio/Common/MpioTrainingResults.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioUbmTopology.c +File: opensil/xUSL/Mpio/Common/MpioUbmTopology.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Genoa/MpioCfgPoints.c +File: opensil/xUSL/Mpio/Genoa/MpioCfgPoints.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Genoa/MpioCmn2.c +File: opensil/xUSL/Mpio/Genoa/MpioCmn2.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Genoa/MpioPcie.c +File: opensil/xUSL/Mpio/Genoa/MpioPcie.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Genoa/MpioPortVisibility.c +File: opensil/xUSL/Mpio/Genoa/MpioPortVisibility.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Genoa/Mpio.c +File: opensil/xUSL/Mpio/Genoa/Mpio.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Genoa/MpioTopology.c +File: opensil/xUSL/Mpio/Genoa/MpioTopology.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Sdci/Common/SdciClassDflts.c +File: opensil/xUSL/Sdci/Common/SdciClassDflts.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Sdci/Common/Sdci.c +File: opensil/xUSL/Sdci/Common/Sdci.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Sdci/Genoa/SdciCmn2.c +File: opensil/xUSL/Sdci/Genoa/SdciCmn2.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Sdci/Genoa/Sdci.c +File: opensil/xUSL/Sdci/Genoa/Sdci.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Cxl/Common/CxlClassDflts.c +File: opensil/xUSL/Cxl/Common/CxlClassDflts.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Cxl/Common/CxlInit.c +File: opensil/xUSL/Cxl/Common/CxlInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Cxl/Genoa/CxlCmn2.c +File: opensil/xUSL/Cxl/Genoa/CxlCmn2.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Cxl/Genoa/Cxl.c +File: opensil/xUSL/Cxl/Genoa/Cxl.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/Common/Nbio.c +File: opensil/xUSL/NBIO/Common/Nbio.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/Common/NbioData.c +File: opensil/xUSL/NBIO/Common/NbioData.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/Common/NbioPcieTopologyHelper.c +File: opensil/xUSL/NBIO/Common/NbioPcieTopologyHelper.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/Common/NbioHidePcieCore.c +File: opensil/xUSL/NBIO/Common/NbioHidePcieCore.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioIod.c +File: opensil/xUSL/NBIO/IOD/NbioIod.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioBaseInitGenoa.c +File: opensil/xUSL/NBIO/IOD/NbioBaseInitGenoa.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioIoApic.c +File: opensil/xUSL/NBIO/IOD/NbioIoApic.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioIommu.c +File: opensil/xUSL/NBIO/IOD/NbioIommu.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioPcie.c +File: opensil/xUSL/NBIO/IOD/NbioPcie.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioPcieComplexData.c +File: opensil/xUSL/NBIO/IOD/NbioPcieComplexData.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioSmnTable.c +File: opensil/xUSL/NBIO/IOD/NbioSmnTable.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioTopMem.c +File: opensil/xUSL/NBIO/IOD/NbioTopMem.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/PkgTypeFixups.c +File: opensil/xUSL/NBIO/IOD/PkgTypeFixups.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RAS/Common/Ras.c +File: opensil/xUSL/RAS/Common/Ras.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RAS/Genoa/DfAddressTranslationLib.c +File: opensil/xUSL/RAS/Genoa/DfAddressTranslationLib.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RAS/Genoa/RasCmn2.c +File: opensil/xUSL/RAS/Genoa/RasCmn2.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RAS/Genoa/Ras.c +File: opensil/xUSL/RAS/Genoa/Ras.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RAS/Genoa/SocLib.c +File: opensil/xUSL/RAS/Genoa/SocLib.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/SMU/Common/SmuCommon.c +File: opensil/xUSL/SMU/Common/SmuCommon.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/SMU/V11/SmuV11.c +File: opensil/xUSL/SMU/V11/SmuV11.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/SMU/V11/SmuCmn2V11.c +File: opensil/xUSL/SMU/V11/SmuCmn2V11.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/SMU/V13/SmuV13.c +File: opensil/xUSL/SMU/V13/SmuV13.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/SMU/V13/SmuCmn2V13.c +File: opensil/xUSL/SMU/V13/SmuCmn2V13.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RcMgr/FabricRcInit.c +File: opensil/xUSL/RcMgr/FabricRcInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RcMgr/DfX/FabricRcInitBasedOnNv4.c +File: opensil/xUSL/RcMgr/DfX/FabricRcInitBasedOnNv4.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RcMgr/DfX/FabricRcInitDfX.c +File: opensil/xUSL/RcMgr/DfX/FabricRcInitDfX.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RcMgr/DfX/FabricResourceManager.c +File: opensil/xUSL/RcMgr/DfX/FabricResourceManager.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xPRF/xPRF.c +File: opensil/xPRF/xPRF.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xPRF/Mem/xPrfMem.c +File: opensil/xPRF/Mem/xPrfMem.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xPRF/RAS/xPrfRas.c +File: opensil/xPRF/RAS/xPrfRas.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xPRF/RAS/xPrfRasServices.c +File: opensil/xPRF/RAS/xPrfRasServices.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xPRF/CCX/xPrfCcx.c +File: opensil/xPRF/CCX/xPrfCcx.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xPRF/NBIO/xPrfNbio.c +File: opensil/xPRF/NBIO/xPrfNbio.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xSIM/SocList.c +File: opensil/xSIM/SocList.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xSIM/SocUtil.c +File: opensil/xSIM/SocUtil.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xSIM/xSIM.c +File: opensil/xSIM/xSIM.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xSIM/SoC/F19M10/IpBlkListF19M10Tp1.c +File: opensil/xSIM/SoC/F19M10/IpBlkListF19M10Tp1.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xSIM/SoC/F19M10/IpBlkListF19M10Tp2.c +File: opensil/xSIM/SoC/F19M10/IpBlkListF19M10Tp2.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xSIM/SoC/F19M10/IpBlkListF19M10Tp3.c +File: opensil/xSIM/SoC/F19M10/IpBlkListF19M10Tp3.c +Output file from ListFiles.py +number Args: 157 +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/AmdFeatures.c +File: opensil/xUSL/AmdFeatures.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Apob.c +File: opensil/xUSL/Apob.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/BaseSocLogicalIdXlat.c +File: opensil/xUSL/BaseSocLogicalIdXlat.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CoreTopologyService.c +File: opensil/xUSL/CoreTopologyService.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/SocLogicalId.c +File: opensil/xUSL/SocLogicalId.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/SilGbls.c +File: opensil/xUSL/SilGbls.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/CpuOps.c +File: opensil/xUSL/CommonLib/CpuOps.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/IPC.c +File: opensil/xUSL/CommonLib/IPC.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/MmioOps.c +File: opensil/xUSL/CommonLib/MmioOps.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/PciOps.c +File: opensil/xUSL/CommonLib/PciOps.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/Pstates.c +File: opensil/xUSL/CommonLib/Pstates.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/SilServices.c +File: opensil/xUSL/CommonLib/SilServices.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/SmnAccess.c +File: opensil/xUSL/CommonLib/SmnAccess.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/Utils.c +File: opensil/xUSL/CommonLib/Utils.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/xUslCcxRoles.c +File: opensil/xUSL/CommonLib/xUslCcxRoles.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/AmdTable.c +File: opensil/xUSL/CCX/Common/AmdTable.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/Ccx.c +File: opensil/xUSL/CCX/Common/Ccx.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxBrandString.c +File: opensil/xUSL/CCX/Common/CcxBrandString.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxC6.c +File: opensil/xUSL/CCX/Common/CcxC6.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxCacheInit.c +File: opensil/xUSL/CCX/Common/CcxCacheInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxDownCoreInit.c +File: opensil/xUSL/CCX/Common/CcxDownCoreInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxMicrocodePatch.c +File: opensil/xUSL/CCX/Common/CcxMicrocodePatch.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxMiscInit.c +File: opensil/xUSL/CCX/Common/CcxMiscInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxSetMca.c +File: opensil/xUSL/CCX/Common/CcxSetMca.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/SocServices.c +File: opensil/xUSL/CCX/Common/SocServices.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxApLaunch32.c +File: opensil/xUSL/CCX/Common/CcxApLaunch32.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Zen3/Zen3.c +File: opensil/xUSL/CCX/Zen3/Zen3.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Zen3/Zen3DownCoreInit.c +File: opensil/xUSL/CCX/Zen3/Zen3DownCoreInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Zen3/CcxCmn2Zen3.c +File: opensil/xUSL/CCX/Zen3/CcxCmn2Zen3.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Zen4/Zen4.c +File: opensil/xUSL/CCX/Zen4/Zen4.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Zen4/Zen4DownCoreInit.c +File: opensil/xUSL/CCX/Zen4/Zen4DownCoreInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Zen4/CcxCmn2Zen4.c +File: opensil/xUSL/CCX/Zen4/CcxCmn2Zen4.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Zen4/CcxResetTablesZen4.c +File: opensil/xUSL/CCX/Zen4/CcxResetTablesZen4.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/Df.c +File: opensil/xUSL/DF/Df.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfClassDflts.c +File: opensil/xUSL/DF/DfClassDflts.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/Common/BaseFabricTopologyCmn.c +File: opensil/xUSL/DF/Common/BaseFabricTopologyCmn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/Common/FabricRegisterAccCmn.c +File: opensil/xUSL/DF/Common/FabricRegisterAccCmn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/DfXBaseFabricTopology.c +File: opensil/xUSL/DF/DfX/DfXBaseFabricTopology.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/DfX.c +File: opensil/xUSL/DF/DfX/DfX.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/DfXFabricRegisterAcc.c +File: opensil/xUSL/DF/DfX/DfXFabricRegisterAcc.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/DfCmn2Rev4.c +File: opensil/xUSL/DF/DfX/DfCmn2Rev4.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/DfXFabricWdt.c +File: opensil/xUSL/DF/DfX/DfXFabricWdt.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/DfXBaseFabricTopology.c +File: opensil/xUSL/DF/DfX/DfXBaseFabricTopology.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/FabricDfClkGatingInit/FabricDfClkGatingInit.c +File: opensil/xUSL/DF/DfX/FabricDfClkGatingInit/FabricDfClkGatingInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/FabricPieRasInit/FabricPieRasInit.c +File: opensil/xUSL/DF/DfX/FabricPieRasInit/FabricPieRasInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/FabricAcpiDomain/FabricAcpiDomainInfo.c +File: opensil/xUSL/DF/DfX/FabricAcpiDomain/FabricAcpiDomainInfo.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/Fch.c +File: opensil/xUSL/FCH/Common/Fch.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCommon.c +File: opensil/xUSL/FCH/Common/FchCommon.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchHelper.c +File: opensil/xUSL/FCH/Common/FchHelper.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/LegacyInterrupt.c +File: opensil/xUSL/FCH/Common/LegacyInterrupt.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchEnvDef.c +File: opensil/xUSL/FCH/Common/FchCore/FchEnvDef.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchAb/FchAb.c +File: opensil/xUSL/FCH/Common/FchCore/FchAb/FchAb.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchAb/FchAlinkLib.c +File: opensil/xUSL/FCH/Common/FchCore/FchAb/FchAlinkLib.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchEspi/FchEspi.c +File: opensil/xUSL/FCH/Common/FchCore/FchEspi/FchEspi.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchHwAcpi/FchHwAcpi.c +File: opensil/xUSL/FCH/Common/FchCore/FchHwAcpi/FchHwAcpi.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchHwAcpi/IP/Fch80.c +File: opensil/xUSL/FCH/Common/FchCore/FchHwAcpi/IP/Fch80.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchIsa/FchIsa.c +File: opensil/xUSL/FCH/Common/FchCore/FchIsa/FchIsa.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchIsa/FchSpi.c +File: opensil/xUSL/FCH/Common/FchCore/FchIsa/FchSpi.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchSata/FchSata.c +File: opensil/xUSL/FCH/Common/FchCore/FchSata/FchSata.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchXhci/FchXhci.c +File: opensil/xUSL/FCH/Common/FchCore/FchXhci/FchXhci.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchXhci/IP/UsbD10.c +File: opensil/xUSL/FCH/Common/FchCore/FchXhci/IP/UsbD10.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/MultiFch/MultiFchInit.c +File: opensil/xUSL/FCH/Common/MultiFch/MultiFchInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/9004/FchSn.c +File: opensil/xUSL/FCH/9004/FchSn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/9004/FchCore/FchSata/FchSataSn.c +File: opensil/xUSL/FCH/9004/FchCore/FchSata/FchSataSn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/9004/FchCore/FchSata/FchSataCmn2Sn.c +File: opensil/xUSL/FCH/9004/FchCore/FchSata/FchSataCmn2Sn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/9004/FchCore/FchHwAcpi/FchHwAcpiSn.c +File: opensil/xUSL/FCH/9004/FchCore/FchHwAcpi/FchHwAcpiSn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/9004/FchCore/FchHwAcpi/FchAcpiCmn2Sn.c +File: opensil/xUSL/FCH/9004/FchCore/FchHwAcpi/FchAcpiCmn2Sn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/9004/FchCore/FchXhci/FchXhciSn.c +File: opensil/xUSL/FCH/9004/FchCore/FchXhci/FchXhciSn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/9004/FchCore/FchXhci/FchXhciCmn2Sn.c +File: opensil/xUSL/FCH/9004/FchCore/FchXhci/FchXhciCmn2Sn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/9004/MultiFch/MultiFchCmn2Sn.c +File: opensil/xUSL/FCH/9004/MultiFch/MultiFchCmn2Sn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/9004/MultiFch/MultiFchSn.c +File: opensil/xUSL/FCH/9004/MultiFch/MultiFchSn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/MEM/Mem.c +File: opensil/xUSL/MEM/Mem.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioAncDataV1.c +File: opensil/xUSL/Mpio/Common/MpioAncDataV1.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioCfgPoints.c +File: opensil/xUSL/Mpio/Common/MpioCfgPoints.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioClassDflts.c +File: opensil/xUSL/Mpio/Common/MpioClassDflts.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioDebugOut.c +File: opensil/xUSL/Mpio/Common/MpioDebugOut.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioEarlyTrain.c +File: opensil/xUSL/Mpio/Common/MpioEarlyTrain.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioLib.c +File: opensil/xUSL/Mpio/Common/MpioLib.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioInit.c +File: opensil/xUSL/Mpio/Common/MpioInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioInitFlow.c +File: opensil/xUSL/Mpio/Common/MpioInitFlow.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioMappingResults.c +File: opensil/xUSL/Mpio/Common/MpioMappingResults.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioParser.c +File: opensil/xUSL/Mpio/Common/MpioParser.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioPcie.c +File: opensil/xUSL/Mpio/Common/MpioPcie.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioPortVisibility.c +File: opensil/xUSL/Mpio/Common/MpioPortVisibility.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioSupportFunctions.c +File: opensil/xUSL/Mpio/Common/MpioSupportFunctions.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioTopology.c +File: opensil/xUSL/Mpio/Common/MpioTopology.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioTrainingResults.c +File: opensil/xUSL/Mpio/Common/MpioTrainingResults.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioUbmTopology.c +File: opensil/xUSL/Mpio/Common/MpioUbmTopology.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Genoa/MpioCfgPoints.c +File: opensil/xUSL/Mpio/Genoa/MpioCfgPoints.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Genoa/MpioCmn2.c +File: opensil/xUSL/Mpio/Genoa/MpioCmn2.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Genoa/MpioPcie.c +File: opensil/xUSL/Mpio/Genoa/MpioPcie.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Genoa/MpioPortVisibility.c +File: opensil/xUSL/Mpio/Genoa/MpioPortVisibility.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Genoa/Mpio.c +File: opensil/xUSL/Mpio/Genoa/Mpio.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Genoa/MpioTopology.c +File: opensil/xUSL/Mpio/Genoa/MpioTopology.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Sdci/Common/SdciClassDflts.c +File: opensil/xUSL/Sdci/Common/SdciClassDflts.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Sdci/Common/Sdci.c +File: opensil/xUSL/Sdci/Common/Sdci.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Sdci/Genoa/SdciCmn2.c +File: opensil/xUSL/Sdci/Genoa/SdciCmn2.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Sdci/Genoa/Sdci.c +File: opensil/xUSL/Sdci/Genoa/Sdci.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Cxl/Common/CxlClassDflts.c +File: opensil/xUSL/Cxl/Common/CxlClassDflts.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Cxl/Common/CxlInit.c +File: opensil/xUSL/Cxl/Common/CxlInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Cxl/Genoa/CxlCmn2.c +File: opensil/xUSL/Cxl/Genoa/CxlCmn2.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Cxl/Genoa/Cxl.c +File: opensil/xUSL/Cxl/Genoa/Cxl.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/Common/Nbio.c +File: opensil/xUSL/NBIO/Common/Nbio.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/Common/NbioData.c +File: opensil/xUSL/NBIO/Common/NbioData.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/Common/NbioPcieTopologyHelper.c +File: opensil/xUSL/NBIO/Common/NbioPcieTopologyHelper.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/Common/NbioHidePcieCore.c +File: opensil/xUSL/NBIO/Common/NbioHidePcieCore.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioIod.c +File: opensil/xUSL/NBIO/IOD/NbioIod.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioBaseInitGenoa.c +File: opensil/xUSL/NBIO/IOD/NbioBaseInitGenoa.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioIoApic.c +File: opensil/xUSL/NBIO/IOD/NbioIoApic.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioIommu.c +File: opensil/xUSL/NBIO/IOD/NbioIommu.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioPcie.c +File: opensil/xUSL/NBIO/IOD/NbioPcie.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioPcieComplexData.c +File: opensil/xUSL/NBIO/IOD/NbioPcieComplexData.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioSmnTable.c +File: opensil/xUSL/NBIO/IOD/NbioSmnTable.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioTopMem.c +File: opensil/xUSL/NBIO/IOD/NbioTopMem.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/PkgTypeFixups.c +File: opensil/xUSL/NBIO/IOD/PkgTypeFixups.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RAS/Common/Ras.c +File: opensil/xUSL/RAS/Common/Ras.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RAS/Genoa/DfAddressTranslationLib.c +File: opensil/xUSL/RAS/Genoa/DfAddressTranslationLib.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RAS/Genoa/RasCmn2.c +File: opensil/xUSL/RAS/Genoa/RasCmn2.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RAS/Genoa/Ras.c +File: opensil/xUSL/RAS/Genoa/Ras.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RAS/Genoa/SocLib.c +File: opensil/xUSL/RAS/Genoa/SocLib.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/SMU/Common/SmuCommon.c +File: opensil/xUSL/SMU/Common/SmuCommon.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/SMU/V11/SmuV11.c +File: opensil/xUSL/SMU/V11/SmuV11.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/SMU/V11/SmuCmn2V11.c +File: opensil/xUSL/SMU/V11/SmuCmn2V11.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/SMU/V13/SmuV13.c +File: opensil/xUSL/SMU/V13/SmuV13.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/SMU/V13/SmuCmn2V13.c +File: opensil/xUSL/SMU/V13/SmuCmn2V13.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RcMgr/FabricRcInit.c +File: opensil/xUSL/RcMgr/FabricRcInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RcMgr/DfX/FabricRcInitBasedOnNv4.c +File: opensil/xUSL/RcMgr/DfX/FabricRcInitBasedOnNv4.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RcMgr/DfX/FabricRcInitDfX.c +File: opensil/xUSL/RcMgr/DfX/FabricRcInitDfX.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RcMgr/DfX/FabricResourceManager.c +File: opensil/xUSL/RcMgr/DfX/FabricResourceManager.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xPRF/xPRF.c +File: opensil/xPRF/xPRF.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xPRF/Mem/xPrfMem.c +File: opensil/xPRF/Mem/xPrfMem.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xPRF/RAS/xPrfRas.c +File: opensil/xPRF/RAS/xPrfRas.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xPRF/RAS/xPrfRasServices.c +File: opensil/xPRF/RAS/xPrfRasServices.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xPRF/CCX/xPrfCcx.c +File: opensil/xPRF/CCX/xPrfCcx.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xPRF/NBIO/xPrfNbio.c +File: opensil/xPRF/NBIO/xPrfNbio.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xSIM/SocList.c +File: opensil/xSIM/SocList.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xSIM/SocUtil.c +File: opensil/xSIM/SocUtil.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xSIM/xSIM.c +File: opensil/xSIM/xSIM.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xSIM/SoC/F19M10/IpBlkListF19M10Tp1.c +File: opensil/xSIM/SoC/F19M10/IpBlkListF19M10Tp1.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xSIM/SoC/F19M10/IpBlkListF19M10Tp2.c +File: opensil/xSIM/SoC/F19M10/IpBlkListF19M10Tp2.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xSIM/SoC/F19M10/IpBlkListF19M10Tp3.c +File: opensil/xSIM/SoC/F19M10/IpBlkListF19M10Tp3.c +Output file from ListFiles.py +number Args: 157 +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/AmdFeatures.c +File: opensil/xUSL/AmdFeatures.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Apob.c +File: opensil/xUSL/Apob.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/BaseSocLogicalIdXlat.c +File: opensil/xUSL/BaseSocLogicalIdXlat.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CoreTopologyService.c +File: opensil/xUSL/CoreTopologyService.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/SocLogicalId.c +File: opensil/xUSL/SocLogicalId.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/SilGbls.c +File: opensil/xUSL/SilGbls.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/CpuOps.c +File: opensil/xUSL/CommonLib/CpuOps.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/IPC.c +File: opensil/xUSL/CommonLib/IPC.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/MmioOps.c +File: opensil/xUSL/CommonLib/MmioOps.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/PciOps.c +File: opensil/xUSL/CommonLib/PciOps.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/Pstates.c +File: opensil/xUSL/CommonLib/Pstates.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/SilServices.c +File: opensil/xUSL/CommonLib/SilServices.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/SmnAccess.c +File: opensil/xUSL/CommonLib/SmnAccess.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/Utils.c +File: opensil/xUSL/CommonLib/Utils.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/xUslCcxRoles.c +File: opensil/xUSL/CommonLib/xUslCcxRoles.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/AmdTable.c +File: opensil/xUSL/CCX/Common/AmdTable.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/Ccx.c +File: opensil/xUSL/CCX/Common/Ccx.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxBrandString.c +File: opensil/xUSL/CCX/Common/CcxBrandString.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxC6.c +File: opensil/xUSL/CCX/Common/CcxC6.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxCacheInit.c +File: opensil/xUSL/CCX/Common/CcxCacheInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxDownCoreInit.c +File: opensil/xUSL/CCX/Common/CcxDownCoreInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxMicrocodePatch.c +File: opensil/xUSL/CCX/Common/CcxMicrocodePatch.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxMiscInit.c +File: opensil/xUSL/CCX/Common/CcxMiscInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxSetMca.c +File: opensil/xUSL/CCX/Common/CcxSetMca.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/SocServices.c +File: opensil/xUSL/CCX/Common/SocServices.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxApLaunch32.c +File: opensil/xUSL/CCX/Common/CcxApLaunch32.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Zen3/Zen3.c +File: opensil/xUSL/CCX/Zen3/Zen3.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Zen3/Zen3DownCoreInit.c +File: opensil/xUSL/CCX/Zen3/Zen3DownCoreInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Zen3/CcxCmn2Zen3.c +File: opensil/xUSL/CCX/Zen3/CcxCmn2Zen3.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Zen4/Zen4.c +File: opensil/xUSL/CCX/Zen4/Zen4.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Zen4/Zen4DownCoreInit.c +File: opensil/xUSL/CCX/Zen4/Zen4DownCoreInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Zen4/CcxCmn2Zen4.c +File: opensil/xUSL/CCX/Zen4/CcxCmn2Zen4.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Zen4/CcxResetTablesZen4.c +File: opensil/xUSL/CCX/Zen4/CcxResetTablesZen4.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/Df.c +File: opensil/xUSL/DF/Df.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfClassDflts.c +File: opensil/xUSL/DF/DfClassDflts.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/Common/BaseFabricTopologyCmn.c +File: opensil/xUSL/DF/Common/BaseFabricTopologyCmn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/Common/FabricRegisterAccCmn.c +File: opensil/xUSL/DF/Common/FabricRegisterAccCmn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/DfXBaseFabricTopology.c +File: opensil/xUSL/DF/DfX/DfXBaseFabricTopology.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/DfX.c +File: opensil/xUSL/DF/DfX/DfX.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/DfXFabricRegisterAcc.c +File: opensil/xUSL/DF/DfX/DfXFabricRegisterAcc.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/DfCmn2Rev4.c +File: opensil/xUSL/DF/DfX/DfCmn2Rev4.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/DfXFabricWdt.c +File: opensil/xUSL/DF/DfX/DfXFabricWdt.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/DfXBaseFabricTopology.c +File: opensil/xUSL/DF/DfX/DfXBaseFabricTopology.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/FabricDfClkGatingInit/FabricDfClkGatingInit.c +File: opensil/xUSL/DF/DfX/FabricDfClkGatingInit/FabricDfClkGatingInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/FabricPieRasInit/FabricPieRasInit.c +File: opensil/xUSL/DF/DfX/FabricPieRasInit/FabricPieRasInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/FabricAcpiDomain/FabricAcpiDomainInfo.c +File: opensil/xUSL/DF/DfX/FabricAcpiDomain/FabricAcpiDomainInfo.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/Fch.c +File: opensil/xUSL/FCH/Common/Fch.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCommon.c +File: opensil/xUSL/FCH/Common/FchCommon.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchHelper.c +File: opensil/xUSL/FCH/Common/FchHelper.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/LegacyInterrupt.c +File: opensil/xUSL/FCH/Common/LegacyInterrupt.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchEnvDef.c +File: opensil/xUSL/FCH/Common/FchCore/FchEnvDef.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchAb/FchAb.c +File: opensil/xUSL/FCH/Common/FchCore/FchAb/FchAb.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchAb/FchAlinkLib.c +File: opensil/xUSL/FCH/Common/FchCore/FchAb/FchAlinkLib.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchEspi/FchEspi.c +File: opensil/xUSL/FCH/Common/FchCore/FchEspi/FchEspi.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchHwAcpi/FchHwAcpi.c +File: opensil/xUSL/FCH/Common/FchCore/FchHwAcpi/FchHwAcpi.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchHwAcpi/IP/Fch80.c +File: opensil/xUSL/FCH/Common/FchCore/FchHwAcpi/IP/Fch80.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchIsa/FchIsa.c +File: opensil/xUSL/FCH/Common/FchCore/FchIsa/FchIsa.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchIsa/FchSpi.c +File: opensil/xUSL/FCH/Common/FchCore/FchIsa/FchSpi.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchSata/FchSata.c +File: opensil/xUSL/FCH/Common/FchCore/FchSata/FchSata.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchXhci/FchXhci.c +File: opensil/xUSL/FCH/Common/FchCore/FchXhci/FchXhci.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchXhci/IP/UsbD10.c +File: opensil/xUSL/FCH/Common/FchCore/FchXhci/IP/UsbD10.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/MultiFch/MultiFchInit.c +File: opensil/xUSL/FCH/Common/MultiFch/MultiFchInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/9004/FchSn.c +File: opensil/xUSL/FCH/9004/FchSn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/9004/FchCore/FchSata/FchSataSn.c +File: opensil/xUSL/FCH/9004/FchCore/FchSata/FchSataSn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/9004/FchCore/FchSata/FchSataCmn2Sn.c +File: opensil/xUSL/FCH/9004/FchCore/FchSata/FchSataCmn2Sn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/9004/FchCore/FchHwAcpi/FchHwAcpiSn.c +File: opensil/xUSL/FCH/9004/FchCore/FchHwAcpi/FchHwAcpiSn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/9004/FchCore/FchHwAcpi/FchAcpiCmn2Sn.c +File: opensil/xUSL/FCH/9004/FchCore/FchHwAcpi/FchAcpiCmn2Sn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/9004/FchCore/FchXhci/FchXhciSn.c +File: opensil/xUSL/FCH/9004/FchCore/FchXhci/FchXhciSn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/9004/FchCore/FchXhci/FchXhciCmn2Sn.c +File: opensil/xUSL/FCH/9004/FchCore/FchXhci/FchXhciCmn2Sn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/9004/MultiFch/MultiFchCmn2Sn.c +File: opensil/xUSL/FCH/9004/MultiFch/MultiFchCmn2Sn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/9004/MultiFch/MultiFchSn.c +File: opensil/xUSL/FCH/9004/MultiFch/MultiFchSn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/MEM/Mem.c +File: opensil/xUSL/MEM/Mem.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioAncDataV1.c +File: opensil/xUSL/Mpio/Common/MpioAncDataV1.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioCfgPoints.c +File: opensil/xUSL/Mpio/Common/MpioCfgPoints.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioClassDflts.c +File: opensil/xUSL/Mpio/Common/MpioClassDflts.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioDebugOut.c +File: opensil/xUSL/Mpio/Common/MpioDebugOut.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioEarlyTrain.c +File: opensil/xUSL/Mpio/Common/MpioEarlyTrain.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioLib.c +File: opensil/xUSL/Mpio/Common/MpioLib.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioInit.c +File: opensil/xUSL/Mpio/Common/MpioInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioInitFlow.c +File: opensil/xUSL/Mpio/Common/MpioInitFlow.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioMappingResults.c +File: opensil/xUSL/Mpio/Common/MpioMappingResults.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioParser.c +File: opensil/xUSL/Mpio/Common/MpioParser.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioPcie.c +File: opensil/xUSL/Mpio/Common/MpioPcie.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioPortVisibility.c +File: opensil/xUSL/Mpio/Common/MpioPortVisibility.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioSupportFunctions.c +File: opensil/xUSL/Mpio/Common/MpioSupportFunctions.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioTopology.c +File: opensil/xUSL/Mpio/Common/MpioTopology.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioTrainingResults.c +File: opensil/xUSL/Mpio/Common/MpioTrainingResults.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioUbmTopology.c +File: opensil/xUSL/Mpio/Common/MpioUbmTopology.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Genoa/MpioCfgPoints.c +File: opensil/xUSL/Mpio/Genoa/MpioCfgPoints.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Genoa/MpioCmn2.c +File: opensil/xUSL/Mpio/Genoa/MpioCmn2.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Genoa/MpioPcie.c +File: opensil/xUSL/Mpio/Genoa/MpioPcie.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Genoa/MpioPortVisibility.c +File: opensil/xUSL/Mpio/Genoa/MpioPortVisibility.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Genoa/Mpio.c +File: opensil/xUSL/Mpio/Genoa/Mpio.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Genoa/MpioTopology.c +File: opensil/xUSL/Mpio/Genoa/MpioTopology.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Sdci/Common/SdciClassDflts.c +File: opensil/xUSL/Sdci/Common/SdciClassDflts.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Sdci/Common/Sdci.c +File: opensil/xUSL/Sdci/Common/Sdci.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Sdci/Genoa/SdciCmn2.c +File: opensil/xUSL/Sdci/Genoa/SdciCmn2.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Sdci/Genoa/Sdci.c +File: opensil/xUSL/Sdci/Genoa/Sdci.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Cxl/Common/CxlClassDflts.c +File: opensil/xUSL/Cxl/Common/CxlClassDflts.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Cxl/Common/CxlInit.c +File: opensil/xUSL/Cxl/Common/CxlInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Cxl/Genoa/CxlCmn2.c +File: opensil/xUSL/Cxl/Genoa/CxlCmn2.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Cxl/Genoa/Cxl.c +File: opensil/xUSL/Cxl/Genoa/Cxl.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/Common/Nbio.c +File: opensil/xUSL/NBIO/Common/Nbio.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/Common/NbioData.c +File: opensil/xUSL/NBIO/Common/NbioData.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/Common/NbioPcieTopologyHelper.c +File: opensil/xUSL/NBIO/Common/NbioPcieTopologyHelper.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/Common/NbioHidePcieCore.c +File: opensil/xUSL/NBIO/Common/NbioHidePcieCore.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioIod.c +File: opensil/xUSL/NBIO/IOD/NbioIod.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioBaseInitGenoa.c +File: opensil/xUSL/NBIO/IOD/NbioBaseInitGenoa.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioIoApic.c +File: opensil/xUSL/NBIO/IOD/NbioIoApic.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioIommu.c +File: opensil/xUSL/NBIO/IOD/NbioIommu.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioPcie.c +File: opensil/xUSL/NBIO/IOD/NbioPcie.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioPcieComplexData.c +File: opensil/xUSL/NBIO/IOD/NbioPcieComplexData.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioSmnTable.c +File: opensil/xUSL/NBIO/IOD/NbioSmnTable.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioTopMem.c +File: opensil/xUSL/NBIO/IOD/NbioTopMem.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/PkgTypeFixups.c +File: opensil/xUSL/NBIO/IOD/PkgTypeFixups.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RAS/Common/Ras.c +File: opensil/xUSL/RAS/Common/Ras.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RAS/Genoa/DfAddressTranslationLib.c +File: opensil/xUSL/RAS/Genoa/DfAddressTranslationLib.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RAS/Genoa/RasCmn2.c +File: opensil/xUSL/RAS/Genoa/RasCmn2.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RAS/Genoa/Ras.c +File: opensil/xUSL/RAS/Genoa/Ras.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RAS/Genoa/SocLib.c +File: opensil/xUSL/RAS/Genoa/SocLib.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/SMU/Common/SmuCommon.c +File: opensil/xUSL/SMU/Common/SmuCommon.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/SMU/V11/SmuV11.c +File: opensil/xUSL/SMU/V11/SmuV11.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/SMU/V11/SmuCmn2V11.c +File: opensil/xUSL/SMU/V11/SmuCmn2V11.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/SMU/V13/SmuV13.c +File: opensil/xUSL/SMU/V13/SmuV13.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/SMU/V13/SmuCmn2V13.c +File: opensil/xUSL/SMU/V13/SmuCmn2V13.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RcMgr/FabricRcInit.c +File: opensil/xUSL/RcMgr/FabricRcInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RcMgr/DfX/FabricRcInitBasedOnNv4.c +File: opensil/xUSL/RcMgr/DfX/FabricRcInitBasedOnNv4.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RcMgr/DfX/FabricRcInitDfX.c +File: opensil/xUSL/RcMgr/DfX/FabricRcInitDfX.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RcMgr/DfX/FabricResourceManager.c +File: opensil/xUSL/RcMgr/DfX/FabricResourceManager.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xPRF/xPRF.c +File: opensil/xPRF/xPRF.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xPRF/Mem/xPrfMem.c +File: opensil/xPRF/Mem/xPrfMem.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xPRF/RAS/xPrfRas.c +File: opensil/xPRF/RAS/xPrfRas.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xPRF/RAS/xPrfRasServices.c +File: opensil/xPRF/RAS/xPrfRasServices.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xPRF/CCX/xPrfCcx.c +File: opensil/xPRF/CCX/xPrfCcx.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xPRF/NBIO/xPrfNbio.c +File: opensil/xPRF/NBIO/xPrfNbio.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xSIM/SocList.c +File: opensil/xSIM/SocList.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xSIM/SocUtil.c +File: opensil/xSIM/SocUtil.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xSIM/xSIM.c +File: opensil/xSIM/xSIM.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xSIM/SoC/F19M10/IpBlkListF19M10Tp1.c +File: opensil/xSIM/SoC/F19M10/IpBlkListF19M10Tp1.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xSIM/SoC/F19M10/IpBlkListF19M10Tp2.c +File: opensil/xSIM/SoC/F19M10/IpBlkListF19M10Tp2.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xSIM/SoC/F19M10/IpBlkListF19M10Tp3.c +File: opensil/xSIM/SoC/F19M10/IpBlkListF19M10Tp3.c +Output file from ListFiles.py +number Args: 143 +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/AmdFeatures.c +File: opensil/xUSL/AmdFeatures.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Apob.c +File: opensil/xUSL/Apob.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/BaseSocLogicalIdXlat.c +File: opensil/xUSL/BaseSocLogicalIdXlat.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CoreTopologyService.c +File: opensil/xUSL/CoreTopologyService.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/SocLogicalId.c +File: opensil/xUSL/SocLogicalId.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/SilGbls.c +File: opensil/xUSL/SilGbls.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/CpuOps.c +File: opensil/xUSL/CommonLib/CpuOps.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/IPC.c +File: opensil/xUSL/CommonLib/IPC.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/MmioOps.c +File: opensil/xUSL/CommonLib/MmioOps.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/PciOps.c +File: opensil/xUSL/CommonLib/PciOps.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/Pstates.c +File: opensil/xUSL/CommonLib/Pstates.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/SilServices.c +File: opensil/xUSL/CommonLib/SilServices.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/SmnAccess.c +File: opensil/xUSL/CommonLib/SmnAccess.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/Utils.c +File: opensil/xUSL/CommonLib/Utils.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/xUslCcxRoles.c +File: opensil/xUSL/CommonLib/xUslCcxRoles.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/AmdTable.c +File: opensil/xUSL/CCX/Common/AmdTable.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/Ccx.c +File: opensil/xUSL/CCX/Common/Ccx.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxBrandString.c +File: opensil/xUSL/CCX/Common/CcxBrandString.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxC6.c +File: opensil/xUSL/CCX/Common/CcxC6.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxCacheInit.c +File: opensil/xUSL/CCX/Common/CcxCacheInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxDownCoreInit.c +File: opensil/xUSL/CCX/Common/CcxDownCoreInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxMicrocodePatch.c +File: opensil/xUSL/CCX/Common/CcxMicrocodePatch.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxMiscInit.c +File: opensil/xUSL/CCX/Common/CcxMiscInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxSetMca.c +File: opensil/xUSL/CCX/Common/CcxSetMca.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/SocServices.c +File: opensil/xUSL/CCX/Common/SocServices.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxApLaunch32.c +File: opensil/xUSL/CCX/Common/CcxApLaunch32.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Zen4/Zen4.c +File: opensil/xUSL/CCX/Zen4/Zen4.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Zen4/Zen4DownCoreInit.c +File: opensil/xUSL/CCX/Zen4/Zen4DownCoreInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Zen4/CcxCmn2Zen4.c +File: opensil/xUSL/CCX/Zen4/CcxCmn2Zen4.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Zen4/CcxResetTablesZen4.c +File: opensil/xUSL/CCX/Zen4/CcxResetTablesZen4.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/Df.c +File: opensil/xUSL/DF/Df.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfClassDflts.c +File: opensil/xUSL/DF/DfClassDflts.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/Common/BaseFabricTopologyCmn.c +File: opensil/xUSL/DF/Common/BaseFabricTopologyCmn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/Common/FabricRegisterAccCmn.c +File: opensil/xUSL/DF/Common/FabricRegisterAccCmn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/DfXBaseFabricTopology.c +File: opensil/xUSL/DF/DfX/DfXBaseFabricTopology.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/DfX.c +File: opensil/xUSL/DF/DfX/DfX.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/DfXFabricRegisterAcc.c +File: opensil/xUSL/DF/DfX/DfXFabricRegisterAcc.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/DfCmn2Rev4.c +File: opensil/xUSL/DF/DfX/DfCmn2Rev4.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/DfXFabricWdt.c +File: opensil/xUSL/DF/DfX/DfXFabricWdt.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/DfXBaseFabricTopology.c +File: opensil/xUSL/DF/DfX/DfXBaseFabricTopology.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/FabricDfClkGatingInit/FabricDfClkGatingInit.c +File: opensil/xUSL/DF/DfX/FabricDfClkGatingInit/FabricDfClkGatingInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/FabricPieRasInit/FabricPieRasInit.c +File: opensil/xUSL/DF/DfX/FabricPieRasInit/FabricPieRasInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/FabricAcpiDomain/FabricAcpiDomainInfo.c +File: opensil/xUSL/DF/DfX/FabricAcpiDomain/FabricAcpiDomainInfo.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/Fch.c +File: opensil/xUSL/FCH/Common/Fch.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCommon.c +File: opensil/xUSL/FCH/Common/FchCommon.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchHelper.c +File: opensil/xUSL/FCH/Common/FchHelper.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/LegacyInterrupt.c +File: opensil/xUSL/FCH/Common/LegacyInterrupt.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchEnvDef.c +File: opensil/xUSL/FCH/Common/FchCore/FchEnvDef.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchAb/FchAb.c +File: opensil/xUSL/FCH/Common/FchCore/FchAb/FchAb.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchAb/FchAlinkLib.c +File: opensil/xUSL/FCH/Common/FchCore/FchAb/FchAlinkLib.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchEmmc/FchEmmc.c +File: opensil/xUSL/FCH/Common/FchCore/FchEmmc/FchEmmc.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchEspi/FchEspi.c +File: opensil/xUSL/FCH/Common/FchCore/FchEspi/FchEspi.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchGpp/FchGpp.c +File: opensil/xUSL/FCH/Common/FchCore/FchGpp/FchGpp.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchHwAcpi/FchHwAcpi.c +File: opensil/xUSL/FCH/Common/FchCore/FchHwAcpi/FchHwAcpi.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchHwAcpi/IP/Fch80.c +File: opensil/xUSL/FCH/Common/FchCore/FchHwAcpi/IP/Fch80.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchSata/FchSata.c +File: opensil/xUSL/FCH/Common/FchCore/FchSata/FchSata.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchSpi/FchSpi.c +File: opensil/xUSL/FCH/Common/FchCore/FchSpi/FchSpi.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchXhci/FchXhci.c +File: opensil/xUSL/FCH/Common/FchCore/FchXhci/FchXhci.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchXhci/IP/UsbD10.c +File: opensil/xUSL/FCH/Common/FchCore/FchXhci/IP/UsbD10.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/MultiFch/MultiFchInit.c +File: opensil/xUSL/FCH/Common/MultiFch/MultiFchInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/9004/FchSn.c +File: opensil/xUSL/FCH/9004/FchSn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/9004/FchCore/FchSata/FchSataSn.c +File: opensil/xUSL/FCH/9004/FchCore/FchSata/FchSataSn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/9004/FchCore/FchSata/FchSataCmn2Sn.c +File: opensil/xUSL/FCH/9004/FchCore/FchSata/FchSataCmn2Sn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/9004/FchCore/FchHwAcpi/FchHwAcpiSn.c +File: opensil/xUSL/FCH/9004/FchCore/FchHwAcpi/FchHwAcpiSn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/9004/FchCore/FchXhci/FchXhciSn.c +File: opensil/xUSL/FCH/9004/FchCore/FchXhci/FchXhciSn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/9004/MultiFch/MultiFchCmn2Sn.c +File: opensil/xUSL/FCH/9004/MultiFch/MultiFchCmn2Sn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/9004/MultiFch/MultiFchSn.c +File: opensil/xUSL/FCH/9004/MultiFch/MultiFchSn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/MEM/Mem.c +File: opensil/xUSL/MEM/Mem.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioAncDataV1.c +File: opensil/xUSL/Mpio/Common/MpioAncDataV1.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioCfgPoints.c +File: opensil/xUSL/Mpio/Common/MpioCfgPoints.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioClassDflts.c +File: opensil/xUSL/Mpio/Common/MpioClassDflts.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioDebugOut.c +File: opensil/xUSL/Mpio/Common/MpioDebugOut.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioEarlyTrain.c +File: opensil/xUSL/Mpio/Common/MpioEarlyTrain.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioLib.c +File: opensil/xUSL/Mpio/Common/MpioLib.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioInit.c +File: opensil/xUSL/Mpio/Common/MpioInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioInitFlow.c +File: opensil/xUSL/Mpio/Common/MpioInitFlow.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioMappingResults.c +File: opensil/xUSL/Mpio/Common/MpioMappingResults.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioParser.c +File: opensil/xUSL/Mpio/Common/MpioParser.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioPcie.c +File: opensil/xUSL/Mpio/Common/MpioPcie.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioPortVisibility.c +File: opensil/xUSL/Mpio/Common/MpioPortVisibility.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioSupportFunctions.c +File: opensil/xUSL/Mpio/Common/MpioSupportFunctions.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioTopology.c +File: opensil/xUSL/Mpio/Common/MpioTopology.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioTrainingResults.c +File: opensil/xUSL/Mpio/Common/MpioTrainingResults.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioUbmTopology.c +File: opensil/xUSL/Mpio/Common/MpioUbmTopology.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Genoa/MpioCfgPoints.c +File: opensil/xUSL/Mpio/Genoa/MpioCfgPoints.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Genoa/MpioCmn2.c +File: opensil/xUSL/Mpio/Genoa/MpioCmn2.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Genoa/MpioPcie.c +File: opensil/xUSL/Mpio/Genoa/MpioPcie.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Genoa/MpioPortVisibility.c +File: opensil/xUSL/Mpio/Genoa/MpioPortVisibility.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Genoa/Mpio.c +File: opensil/xUSL/Mpio/Genoa/Mpio.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Genoa/MpioTopology.c +File: opensil/xUSL/Mpio/Genoa/MpioTopology.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Sdci/Common/SdciClassDflts.c +File: opensil/xUSL/Sdci/Common/SdciClassDflts.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Sdci/Common/Sdci.c +File: opensil/xUSL/Sdci/Common/Sdci.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Sdci/Genoa/SdciCmn2.c +File: opensil/xUSL/Sdci/Genoa/SdciCmn2.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Sdci/Genoa/Sdci.c +File: opensil/xUSL/Sdci/Genoa/Sdci.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Cxl/Common/CxlClassDflts.c +File: opensil/xUSL/Cxl/Common/CxlClassDflts.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Cxl/Common/CxlInit.c +File: opensil/xUSL/Cxl/Common/CxlInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Cxl/Genoa/CxlCmn2.c +File: opensil/xUSL/Cxl/Genoa/CxlCmn2.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Cxl/Genoa/Cxl.c +File: opensil/xUSL/Cxl/Genoa/Cxl.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioIod.c +File: opensil/xUSL/NBIO/IOD/NbioIod.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioBaseInitGenoa.c +File: opensil/xUSL/NBIO/IOD/NbioBaseInitGenoa.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioCommon.c +File: opensil/xUSL/NBIO/IOD/NbioCommon.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioData.c +File: opensil/xUSL/NBIO/IOD/NbioData.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioIoApic.c +File: opensil/xUSL/NBIO/IOD/NbioIoApic.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioIommu.c +File: opensil/xUSL/NBIO/IOD/NbioIommu.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioPcie.c +File: opensil/xUSL/NBIO/IOD/NbioPcie.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioPcieComplexData.c +File: opensil/xUSL/NBIO/IOD/NbioPcieComplexData.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioSmnTable.c +File: opensil/xUSL/NBIO/IOD/NbioSmnTable.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioSmnTables.c +File: opensil/xUSL/NBIO/IOD/NbioSmnTables.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioHidePcieCore.c +File: opensil/xUSL/NBIO/IOD/NbioHidePcieCore.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioTopMem.c +File: opensil/xUSL/NBIO/IOD/NbioTopMem.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/PkgTypeFixups.c +File: opensil/xUSL/NBIO/IOD/PkgTypeFixups.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/Nbio.c +File: opensil/xUSL/NBIO/Nbio.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/NbioPcieTopologyHelper.c +File: opensil/xUSL/NBIO/NbioPcieTopologyHelper.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RAS/Common/Ras.c +File: opensil/xUSL/RAS/Common/Ras.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RAS/Genoa/DfAddressTranslationLib.c +File: opensil/xUSL/RAS/Genoa/DfAddressTranslationLib.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RAS/Genoa/RasCmn2.c +File: opensil/xUSL/RAS/Genoa/RasCmn2.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RAS/Genoa/Ras.c +File: opensil/xUSL/RAS/Genoa/Ras.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RAS/Genoa/SocLib.c +File: opensil/xUSL/RAS/Genoa/SocLib.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/SMU/Common/SmuCommon.c +File: opensil/xUSL/SMU/Common/SmuCommon.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/SMU/V13/SmuV13.c +File: opensil/xUSL/SMU/V13/SmuV13.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/SMU/V13/SmuCmn2V13.c +File: opensil/xUSL/SMU/V13/SmuCmn2V13.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RcMgr/FabricRcInit.c +File: opensil/xUSL/RcMgr/FabricRcInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RcMgr/DfX/FabricRcInitBasedOnNv4.c +File: opensil/xUSL/RcMgr/DfX/FabricRcInitBasedOnNv4.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RcMgr/DfX/FabricRcInitDfX.c +File: opensil/xUSL/RcMgr/DfX/FabricRcInitDfX.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RcMgr/DfX/FabricResourceManager.c +File: opensil/xUSL/RcMgr/DfX/FabricResourceManager.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xPRF/xPRF.c +File: opensil/xPRF/xPRF.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xPRF/Mem/xPrfMem.c +File: opensil/xPRF/Mem/xPrfMem.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xPRF/RAS/xPrfRas.c +File: opensil/xPRF/RAS/xPrfRas.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xPRF/RAS/xPrfRasServices.c +File: opensil/xPRF/RAS/xPrfRasServices.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xPRF/CCX/xPrfCcx.c +File: opensil/xPRF/CCX/xPrfCcx.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xPRF/NBIO/xPrfNbio.c +File: opensil/xPRF/NBIO/xPrfNbio.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xSIM/SocList.c +File: opensil/xSIM/SocList.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xSIM/SocUtil.c +File: opensil/xSIM/SocUtil.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xSIM/xSIM.c +File: opensil/xSIM/xSIM.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xSIM/SoC/F19M10/IpBlkListF19M10Tp1.c +File: opensil/xSIM/SoC/F19M10/IpBlkListF19M10Tp1.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xSIM/SoC/F19M10/IpBlkListF19M10Tp2.c +File: opensil/xSIM/SoC/F19M10/IpBlkListF19M10Tp2.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xSIM/SoC/F19M10/IpBlkListF19M10Tp3.c +File: opensil/xSIM/SoC/F19M10/IpBlkListF19M10Tp3.c +Output file from ListFiles.py +number Args: 143 +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/AmdFeatures.c +File: opensil/xUSL/AmdFeatures.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Apob.c +File: opensil/xUSL/Apob.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/BaseSocLogicalIdXlat.c +File: opensil/xUSL/BaseSocLogicalIdXlat.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CoreTopologyService.c +File: opensil/xUSL/CoreTopologyService.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/SocLogicalId.c +File: opensil/xUSL/SocLogicalId.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/SilGbls.c +File: opensil/xUSL/SilGbls.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/CpuOps.c +File: opensil/xUSL/CommonLib/CpuOps.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/IPC.c +File: opensil/xUSL/CommonLib/IPC.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/MmioOps.c +File: opensil/xUSL/CommonLib/MmioOps.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/PciOps.c +File: opensil/xUSL/CommonLib/PciOps.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/Pstates.c +File: opensil/xUSL/CommonLib/Pstates.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/SilServices.c +File: opensil/xUSL/CommonLib/SilServices.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/SmnAccess.c +File: opensil/xUSL/CommonLib/SmnAccess.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/Utils.c +File: opensil/xUSL/CommonLib/Utils.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/xUslCcxRoles.c +File: opensil/xUSL/CommonLib/xUslCcxRoles.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/AmdTable.c +File: opensil/xUSL/CCX/Common/AmdTable.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/Ccx.c +File: opensil/xUSL/CCX/Common/Ccx.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxBrandString.c +File: opensil/xUSL/CCX/Common/CcxBrandString.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxC6.c +File: opensil/xUSL/CCX/Common/CcxC6.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxCacheInit.c +File: opensil/xUSL/CCX/Common/CcxCacheInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxDownCoreInit.c +File: opensil/xUSL/CCX/Common/CcxDownCoreInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxMicrocodePatch.c +File: opensil/xUSL/CCX/Common/CcxMicrocodePatch.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxMiscInit.c +File: opensil/xUSL/CCX/Common/CcxMiscInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxSetMca.c +File: opensil/xUSL/CCX/Common/CcxSetMca.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/SocServices.c +File: opensil/xUSL/CCX/Common/SocServices.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxApLaunch32.c +File: opensil/xUSL/CCX/Common/CcxApLaunch32.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Zen4/Zen4.c +File: opensil/xUSL/CCX/Zen4/Zen4.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Zen4/Zen4DownCoreInit.c +File: opensil/xUSL/CCX/Zen4/Zen4DownCoreInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Zen4/CcxCmn2Zen4.c +File: opensil/xUSL/CCX/Zen4/CcxCmn2Zen4.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Zen4/CcxResetTablesZen4.c +File: opensil/xUSL/CCX/Zen4/CcxResetTablesZen4.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/Df.c +File: opensil/xUSL/DF/Df.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfClassDflts.c +File: opensil/xUSL/DF/DfClassDflts.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/Common/BaseFabricTopologyCmn.c +File: opensil/xUSL/DF/Common/BaseFabricTopologyCmn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/Common/FabricRegisterAccCmn.c +File: opensil/xUSL/DF/Common/FabricRegisterAccCmn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/DfXBaseFabricTopology.c +File: opensil/xUSL/DF/DfX/DfXBaseFabricTopology.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/DfX.c +File: opensil/xUSL/DF/DfX/DfX.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/DfXFabricRegisterAcc.c +File: opensil/xUSL/DF/DfX/DfXFabricRegisterAcc.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/DfCmn2Rev4.c +File: opensil/xUSL/DF/DfX/DfCmn2Rev4.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/DfXFabricWdt.c +File: opensil/xUSL/DF/DfX/DfXFabricWdt.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/DfXBaseFabricTopology.c +File: opensil/xUSL/DF/DfX/DfXBaseFabricTopology.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/FabricDfClkGatingInit/FabricDfClkGatingInit.c +File: opensil/xUSL/DF/DfX/FabricDfClkGatingInit/FabricDfClkGatingInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/FabricPieRasInit/FabricPieRasInit.c +File: opensil/xUSL/DF/DfX/FabricPieRasInit/FabricPieRasInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/FabricAcpiDomain/FabricAcpiDomainInfo.c +File: opensil/xUSL/DF/DfX/FabricAcpiDomain/FabricAcpiDomainInfo.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/Fch.c +File: opensil/xUSL/FCH/Common/Fch.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCommon.c +File: opensil/xUSL/FCH/Common/FchCommon.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchHelper.c +File: opensil/xUSL/FCH/Common/FchHelper.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/LegacyInterrupt.c +File: opensil/xUSL/FCH/Common/LegacyInterrupt.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchEnvDef.c +File: opensil/xUSL/FCH/Common/FchCore/FchEnvDef.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchAb/FchAb.c +File: opensil/xUSL/FCH/Common/FchCore/FchAb/FchAb.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchAb/FchAlinkLib.c +File: opensil/xUSL/FCH/Common/FchCore/FchAb/FchAlinkLib.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchEmmc/FchEmmc.c +File: opensil/xUSL/FCH/Common/FchCore/FchEmmc/FchEmmc.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchEspi/FchEspi.c +File: opensil/xUSL/FCH/Common/FchCore/FchEspi/FchEspi.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchGpp/FchGpp.c +File: opensil/xUSL/FCH/Common/FchCore/FchGpp/FchGpp.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchHwAcpi/FchHwAcpi.c +File: opensil/xUSL/FCH/Common/FchCore/FchHwAcpi/FchHwAcpi.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchHwAcpi/IP/Fch80.c +File: opensil/xUSL/FCH/Common/FchCore/FchHwAcpi/IP/Fch80.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchSata/FchSata.c +File: opensil/xUSL/FCH/Common/FchCore/FchSata/FchSata.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchSpi/FchSpi.c +File: opensil/xUSL/FCH/Common/FchCore/FchSpi/FchSpi.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchXhci/FchXhci.c +File: opensil/xUSL/FCH/Common/FchCore/FchXhci/FchXhci.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchXhci/IP/UsbD10.c +File: opensil/xUSL/FCH/Common/FchCore/FchXhci/IP/UsbD10.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/MultiFch/MultiFchInit.c +File: opensil/xUSL/FCH/Common/MultiFch/MultiFchInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/9004/FchSn.c +File: opensil/xUSL/FCH/9004/FchSn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/9004/FchCore/FchSata/FchSataSn.c +File: opensil/xUSL/FCH/9004/FchCore/FchSata/FchSataSn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/9004/FchCore/FchSata/FchSataCmn2Sn.c +File: opensil/xUSL/FCH/9004/FchCore/FchSata/FchSataCmn2Sn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/9004/FchCore/FchHwAcpi/FchHwAcpiSn.c +File: opensil/xUSL/FCH/9004/FchCore/FchHwAcpi/FchHwAcpiSn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/9004/FchCore/FchXhci/FchXhciSn.c +File: opensil/xUSL/FCH/9004/FchCore/FchXhci/FchXhciSn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/9004/MultiFch/MultiFchCmn2Sn.c +File: opensil/xUSL/FCH/9004/MultiFch/MultiFchCmn2Sn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/9004/MultiFch/MultiFchSn.c +File: opensil/xUSL/FCH/9004/MultiFch/MultiFchSn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/MEM/Mem.c +File: opensil/xUSL/MEM/Mem.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioAncDataV1.c +File: opensil/xUSL/Mpio/Common/MpioAncDataV1.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioCfgPoints.c +File: opensil/xUSL/Mpio/Common/MpioCfgPoints.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioClassDflts.c +File: opensil/xUSL/Mpio/Common/MpioClassDflts.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioDebugOut.c +File: opensil/xUSL/Mpio/Common/MpioDebugOut.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioEarlyTrain.c +File: opensil/xUSL/Mpio/Common/MpioEarlyTrain.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioLib.c +File: opensil/xUSL/Mpio/Common/MpioLib.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioInit.c +File: opensil/xUSL/Mpio/Common/MpioInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioInitFlow.c +File: opensil/xUSL/Mpio/Common/MpioInitFlow.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioMappingResults.c +File: opensil/xUSL/Mpio/Common/MpioMappingResults.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioParser.c +File: opensil/xUSL/Mpio/Common/MpioParser.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioPcie.c +File: opensil/xUSL/Mpio/Common/MpioPcie.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioPortVisibility.c +File: opensil/xUSL/Mpio/Common/MpioPortVisibility.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioSupportFunctions.c +File: opensil/xUSL/Mpio/Common/MpioSupportFunctions.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioTopology.c +File: opensil/xUSL/Mpio/Common/MpioTopology.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioTrainingResults.c +File: opensil/xUSL/Mpio/Common/MpioTrainingResults.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioUbmTopology.c +File: opensil/xUSL/Mpio/Common/MpioUbmTopology.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Genoa/MpioCfgPoints.c +File: opensil/xUSL/Mpio/Genoa/MpioCfgPoints.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Genoa/MpioCmn2.c +File: opensil/xUSL/Mpio/Genoa/MpioCmn2.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Genoa/MpioPcie.c +File: opensil/xUSL/Mpio/Genoa/MpioPcie.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Genoa/MpioPortVisibility.c +File: opensil/xUSL/Mpio/Genoa/MpioPortVisibility.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Genoa/Mpio.c +File: opensil/xUSL/Mpio/Genoa/Mpio.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Genoa/MpioTopology.c +File: opensil/xUSL/Mpio/Genoa/MpioTopology.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Sdci/Common/SdciClassDflts.c +File: opensil/xUSL/Sdci/Common/SdciClassDflts.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Sdci/Common/Sdci.c +File: opensil/xUSL/Sdci/Common/Sdci.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Sdci/Genoa/SdciCmn2.c +File: opensil/xUSL/Sdci/Genoa/SdciCmn2.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Sdci/Genoa/Sdci.c +File: opensil/xUSL/Sdci/Genoa/Sdci.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Cxl/Common/CxlClassDflts.c +File: opensil/xUSL/Cxl/Common/CxlClassDflts.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Cxl/Common/CxlInit.c +File: opensil/xUSL/Cxl/Common/CxlInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Cxl/Genoa/CxlCmn2.c +File: opensil/xUSL/Cxl/Genoa/CxlCmn2.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Cxl/Genoa/Cxl.c +File: opensil/xUSL/Cxl/Genoa/Cxl.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioIod.c +File: opensil/xUSL/NBIO/IOD/NbioIod.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioBaseInitGenoa.c +File: opensil/xUSL/NBIO/IOD/NbioBaseInitGenoa.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioCommon.c +File: opensil/xUSL/NBIO/IOD/NbioCommon.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioData.c +File: opensil/xUSL/NBIO/IOD/NbioData.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioIoApic.c +File: opensil/xUSL/NBIO/IOD/NbioIoApic.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioIommu.c +File: opensil/xUSL/NBIO/IOD/NbioIommu.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioPcie.c +File: opensil/xUSL/NBIO/IOD/NbioPcie.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioPcieComplexData.c +File: opensil/xUSL/NBIO/IOD/NbioPcieComplexData.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioSmnTable.c +File: opensil/xUSL/NBIO/IOD/NbioSmnTable.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioSmnTables.c +File: opensil/xUSL/NBIO/IOD/NbioSmnTables.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioHidePcieCore.c +File: opensil/xUSL/NBIO/IOD/NbioHidePcieCore.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioTopMem.c +File: opensil/xUSL/NBIO/IOD/NbioTopMem.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/PkgTypeFixups.c +File: opensil/xUSL/NBIO/IOD/PkgTypeFixups.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/Nbio.c +File: opensil/xUSL/NBIO/Nbio.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/NbioPcieTopologyHelper.c +File: opensil/xUSL/NBIO/NbioPcieTopologyHelper.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RAS/Common/Ras.c +File: opensil/xUSL/RAS/Common/Ras.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RAS/Genoa/DfAddressTranslationLib.c +File: opensil/xUSL/RAS/Genoa/DfAddressTranslationLib.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RAS/Genoa/RasCmn2.c +File: opensil/xUSL/RAS/Genoa/RasCmn2.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RAS/Genoa/Ras.c +File: opensil/xUSL/RAS/Genoa/Ras.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RAS/Genoa/SocLib.c +File: opensil/xUSL/RAS/Genoa/SocLib.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/SMU/Common/SmuCommon.c +File: opensil/xUSL/SMU/Common/SmuCommon.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/SMU/V13/SmuV13.c +File: opensil/xUSL/SMU/V13/SmuV13.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/SMU/V13/SmuCmn2V13.c +File: opensil/xUSL/SMU/V13/SmuCmn2V13.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RcMgr/FabricRcInit.c +File: opensil/xUSL/RcMgr/FabricRcInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RcMgr/DfX/FabricRcInitBasedOnNv4.c +File: opensil/xUSL/RcMgr/DfX/FabricRcInitBasedOnNv4.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RcMgr/DfX/FabricRcInitDfX.c +File: opensil/xUSL/RcMgr/DfX/FabricRcInitDfX.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RcMgr/DfX/FabricResourceManager.c +File: opensil/xUSL/RcMgr/DfX/FabricResourceManager.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xPRF/xPRF.c +File: opensil/xPRF/xPRF.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xPRF/Mem/xPrfMem.c +File: opensil/xPRF/Mem/xPrfMem.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xPRF/RAS/xPrfRas.c +File: opensil/xPRF/RAS/xPrfRas.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xPRF/RAS/xPrfRasServices.c +File: opensil/xPRF/RAS/xPrfRasServices.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xPRF/CCX/xPrfCcx.c +File: opensil/xPRF/CCX/xPrfCcx.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xPRF/NBIO/xPrfNbio.c +File: opensil/xPRF/NBIO/xPrfNbio.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xSIM/SocList.c +File: opensil/xSIM/SocList.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xSIM/SocUtil.c +File: opensil/xSIM/SocUtil.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xSIM/xSIM.c +File: opensil/xSIM/xSIM.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xSIM/SoC/F19M10/IpBlkListF19M10Tp1.c +File: opensil/xSIM/SoC/F19M10/IpBlkListF19M10Tp1.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xSIM/SoC/F19M10/IpBlkListF19M10Tp2.c +File: opensil/xSIM/SoC/F19M10/IpBlkListF19M10Tp2.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xSIM/SoC/F19M10/IpBlkListF19M10Tp3.c +File: opensil/xSIM/SoC/F19M10/IpBlkListF19M10Tp3.c +Output file from ListFiles.py +number Args: 143 +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/AmdFeatures.c +File: opensil/xUSL/AmdFeatures.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Apob.c +File: opensil/xUSL/Apob.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/BaseSocLogicalIdXlat.c +File: opensil/xUSL/BaseSocLogicalIdXlat.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CoreTopologyService.c +File: opensil/xUSL/CoreTopologyService.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/SocLogicalId.c +File: opensil/xUSL/SocLogicalId.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/SilGbls.c +File: opensil/xUSL/SilGbls.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/CpuOps.c +File: opensil/xUSL/CommonLib/CpuOps.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/IPC.c +File: opensil/xUSL/CommonLib/IPC.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/MmioOps.c +File: opensil/xUSL/CommonLib/MmioOps.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/PciOps.c +File: opensil/xUSL/CommonLib/PciOps.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/Pstates.c +File: opensil/xUSL/CommonLib/Pstates.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/SilServices.c +File: opensil/xUSL/CommonLib/SilServices.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/SmnAccess.c +File: opensil/xUSL/CommonLib/SmnAccess.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/Utils.c +File: opensil/xUSL/CommonLib/Utils.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/xUslCcxRoles.c +File: opensil/xUSL/CommonLib/xUslCcxRoles.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/AmdTable.c +File: opensil/xUSL/CCX/Common/AmdTable.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/Ccx.c +File: opensil/xUSL/CCX/Common/Ccx.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxBrandString.c +File: opensil/xUSL/CCX/Common/CcxBrandString.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxC6.c +File: opensil/xUSL/CCX/Common/CcxC6.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxCacheInit.c +File: opensil/xUSL/CCX/Common/CcxCacheInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxDownCoreInit.c +File: opensil/xUSL/CCX/Common/CcxDownCoreInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxMicrocodePatch.c +File: opensil/xUSL/CCX/Common/CcxMicrocodePatch.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxMiscInit.c +File: opensil/xUSL/CCX/Common/CcxMiscInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxSetMca.c +File: opensil/xUSL/CCX/Common/CcxSetMca.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/SocServices.c +File: opensil/xUSL/CCX/Common/SocServices.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxApLaunch32.c +File: opensil/xUSL/CCX/Common/CcxApLaunch32.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Zen4/Zen4.c +File: opensil/xUSL/CCX/Zen4/Zen4.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Zen4/Zen4DownCoreInit.c +File: opensil/xUSL/CCX/Zen4/Zen4DownCoreInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Zen4/CcxCmn2Zen4.c +File: opensil/xUSL/CCX/Zen4/CcxCmn2Zen4.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Zen4/CcxResetTablesZen4.c +File: opensil/xUSL/CCX/Zen4/CcxResetTablesZen4.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/Df.c +File: opensil/xUSL/DF/Df.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfClassDflts.c +File: opensil/xUSL/DF/DfClassDflts.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/Common/BaseFabricTopologyCmn.c +File: opensil/xUSL/DF/Common/BaseFabricTopologyCmn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/Common/FabricRegisterAccCmn.c +File: opensil/xUSL/DF/Common/FabricRegisterAccCmn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/DfXBaseFabricTopology.c +File: opensil/xUSL/DF/DfX/DfXBaseFabricTopology.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/DfX.c +File: opensil/xUSL/DF/DfX/DfX.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/DfXFabricRegisterAcc.c +File: opensil/xUSL/DF/DfX/DfXFabricRegisterAcc.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/DfCmn2Rev4.c +File: opensil/xUSL/DF/DfX/DfCmn2Rev4.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/DfXFabricWdt.c +File: opensil/xUSL/DF/DfX/DfXFabricWdt.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/DfXBaseFabricTopology.c +File: opensil/xUSL/DF/DfX/DfXBaseFabricTopology.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/FabricDfClkGatingInit/FabricDfClkGatingInit.c +File: opensil/xUSL/DF/DfX/FabricDfClkGatingInit/FabricDfClkGatingInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/FabricPieRasInit/FabricPieRasInit.c +File: opensil/xUSL/DF/DfX/FabricPieRasInit/FabricPieRasInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/FabricAcpiDomain/FabricAcpiDomainInfo.c +File: opensil/xUSL/DF/DfX/FabricAcpiDomain/FabricAcpiDomainInfo.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/Fch.c +File: opensil/xUSL/FCH/Common/Fch.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCommon.c +File: opensil/xUSL/FCH/Common/FchCommon.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchHelper.c +File: opensil/xUSL/FCH/Common/FchHelper.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/LegacyInterrupt.c +File: opensil/xUSL/FCH/Common/LegacyInterrupt.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchEnvDef.c +File: opensil/xUSL/FCH/Common/FchCore/FchEnvDef.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchAb/FchAb.c +File: opensil/xUSL/FCH/Common/FchCore/FchAb/FchAb.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchAb/FchAlinkLib.c +File: opensil/xUSL/FCH/Common/FchCore/FchAb/FchAlinkLib.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchEmmc/FchEmmc.c +File: opensil/xUSL/FCH/Common/FchCore/FchEmmc/FchEmmc.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchEspi/FchEspi.c +File: opensil/xUSL/FCH/Common/FchCore/FchEspi/FchEspi.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchGpp/FchGpp.c +File: opensil/xUSL/FCH/Common/FchCore/FchGpp/FchGpp.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchHwAcpi/FchHwAcpi.c +File: opensil/xUSL/FCH/Common/FchCore/FchHwAcpi/FchHwAcpi.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchHwAcpi/IP/Fch80.c +File: opensil/xUSL/FCH/Common/FchCore/FchHwAcpi/IP/Fch80.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchSata/FchSata.c +File: opensil/xUSL/FCH/Common/FchCore/FchSata/FchSata.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchSpi/FchSpi.c +File: opensil/xUSL/FCH/Common/FchCore/FchSpi/FchSpi.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchXhci/FchXhci.c +File: opensil/xUSL/FCH/Common/FchCore/FchXhci/FchXhci.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchXhci/IP/UsbD10.c +File: opensil/xUSL/FCH/Common/FchCore/FchXhci/IP/UsbD10.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/MultiFch/MultiFchInit.c +File: opensil/xUSL/FCH/Common/MultiFch/MultiFchInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/9004/FchSn.c +File: opensil/xUSL/FCH/9004/FchSn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/9004/FchCore/FchSata/FchSataSn.c +File: opensil/xUSL/FCH/9004/FchCore/FchSata/FchSataSn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/9004/FchCore/FchSata/FchSataCmn2Sn.c +File: opensil/xUSL/FCH/9004/FchCore/FchSata/FchSataCmn2Sn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/9004/FchCore/FchHwAcpi/FchHwAcpiSn.c +File: opensil/xUSL/FCH/9004/FchCore/FchHwAcpi/FchHwAcpiSn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/9004/FchCore/FchXhci/FchXhciSn.c +File: opensil/xUSL/FCH/9004/FchCore/FchXhci/FchXhciSn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/9004/MultiFch/MultiFchCmn2Sn.c +File: opensil/xUSL/FCH/9004/MultiFch/MultiFchCmn2Sn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/9004/MultiFch/MultiFchSn.c +File: opensil/xUSL/FCH/9004/MultiFch/MultiFchSn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/MEM/Mem.c +File: opensil/xUSL/MEM/Mem.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioAncDataV1.c +File: opensil/xUSL/Mpio/Common/MpioAncDataV1.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioCfgPoints.c +File: opensil/xUSL/Mpio/Common/MpioCfgPoints.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioClassDflts.c +File: opensil/xUSL/Mpio/Common/MpioClassDflts.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioDebugOut.c +File: opensil/xUSL/Mpio/Common/MpioDebugOut.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioEarlyTrain.c +File: opensil/xUSL/Mpio/Common/MpioEarlyTrain.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioLib.c +File: opensil/xUSL/Mpio/Common/MpioLib.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioInit.c +File: opensil/xUSL/Mpio/Common/MpioInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioInitFlow.c +File: opensil/xUSL/Mpio/Common/MpioInitFlow.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioMappingResults.c +File: opensil/xUSL/Mpio/Common/MpioMappingResults.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioParser.c +File: opensil/xUSL/Mpio/Common/MpioParser.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioPcie.c +File: opensil/xUSL/Mpio/Common/MpioPcie.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioPortVisibility.c +File: opensil/xUSL/Mpio/Common/MpioPortVisibility.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioSupportFunctions.c +File: opensil/xUSL/Mpio/Common/MpioSupportFunctions.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioTopology.c +File: opensil/xUSL/Mpio/Common/MpioTopology.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioTrainingResults.c +File: opensil/xUSL/Mpio/Common/MpioTrainingResults.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioUbmTopology.c +File: opensil/xUSL/Mpio/Common/MpioUbmTopology.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Genoa/MpioCfgPoints.c +File: opensil/xUSL/Mpio/Genoa/MpioCfgPoints.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Genoa/MpioCmn2.c +File: opensil/xUSL/Mpio/Genoa/MpioCmn2.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Genoa/MpioPcie.c +File: opensil/xUSL/Mpio/Genoa/MpioPcie.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Genoa/MpioPortVisibility.c +File: opensil/xUSL/Mpio/Genoa/MpioPortVisibility.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Genoa/Mpio.c +File: opensil/xUSL/Mpio/Genoa/Mpio.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Genoa/MpioTopology.c +File: opensil/xUSL/Mpio/Genoa/MpioTopology.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Sdci/Common/SdciClassDflts.c +File: opensil/xUSL/Sdci/Common/SdciClassDflts.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Sdci/Common/Sdci.c +File: opensil/xUSL/Sdci/Common/Sdci.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Sdci/Genoa/SdciCmn2.c +File: opensil/xUSL/Sdci/Genoa/SdciCmn2.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Sdci/Genoa/Sdci.c +File: opensil/xUSL/Sdci/Genoa/Sdci.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Cxl/Common/CxlClassDflts.c +File: opensil/xUSL/Cxl/Common/CxlClassDflts.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Cxl/Common/CxlInit.c +File: opensil/xUSL/Cxl/Common/CxlInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Cxl/Genoa/CxlCmn2.c +File: opensil/xUSL/Cxl/Genoa/CxlCmn2.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Cxl/Genoa/Cxl.c +File: opensil/xUSL/Cxl/Genoa/Cxl.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioIod.c +File: opensil/xUSL/NBIO/IOD/NbioIod.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioBaseInitGenoa.c +File: opensil/xUSL/NBIO/IOD/NbioBaseInitGenoa.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioCommon.c +File: opensil/xUSL/NBIO/IOD/NbioCommon.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioData.c +File: opensil/xUSL/NBIO/IOD/NbioData.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioIoApic.c +File: opensil/xUSL/NBIO/IOD/NbioIoApic.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioIommu.c +File: opensil/xUSL/NBIO/IOD/NbioIommu.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioPcie.c +File: opensil/xUSL/NBIO/IOD/NbioPcie.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioPcieComplexData.c +File: opensil/xUSL/NBIO/IOD/NbioPcieComplexData.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioSmnTable.c +File: opensil/xUSL/NBIO/IOD/NbioSmnTable.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioSmnTables.c +File: opensil/xUSL/NBIO/IOD/NbioSmnTables.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioHidePcieCore.c +File: opensil/xUSL/NBIO/IOD/NbioHidePcieCore.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioTopMem.c +File: opensil/xUSL/NBIO/IOD/NbioTopMem.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/PkgTypeFixups.c +File: opensil/xUSL/NBIO/IOD/PkgTypeFixups.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/Nbio.c +File: opensil/xUSL/NBIO/Nbio.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/NbioPcieTopologyHelper.c +File: opensil/xUSL/NBIO/NbioPcieTopologyHelper.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RAS/Common/Ras.c +File: opensil/xUSL/RAS/Common/Ras.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RAS/Genoa/DfAddressTranslationLib.c +File: opensil/xUSL/RAS/Genoa/DfAddressTranslationLib.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RAS/Genoa/RasCmn2.c +File: opensil/xUSL/RAS/Genoa/RasCmn2.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RAS/Genoa/Ras.c +File: opensil/xUSL/RAS/Genoa/Ras.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RAS/Genoa/SocLib.c +File: opensil/xUSL/RAS/Genoa/SocLib.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/SMU/Common/SmuCommon.c +File: opensil/xUSL/SMU/Common/SmuCommon.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/SMU/V13/SmuV13.c +File: opensil/xUSL/SMU/V13/SmuV13.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/SMU/V13/SmuCmn2V13.c +File: opensil/xUSL/SMU/V13/SmuCmn2V13.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RcMgr/FabricRcInit.c +File: opensil/xUSL/RcMgr/FabricRcInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RcMgr/DfX/FabricRcInitBasedOnNv4.c +File: opensil/xUSL/RcMgr/DfX/FabricRcInitBasedOnNv4.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RcMgr/DfX/FabricRcInitDfX.c +File: opensil/xUSL/RcMgr/DfX/FabricRcInitDfX.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RcMgr/DfX/FabricResourceManager.c +File: opensil/xUSL/RcMgr/DfX/FabricResourceManager.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xPRF/xPRF.c +File: opensil/xPRF/xPRF.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xPRF/Mem/xPrfMem.c +File: opensil/xPRF/Mem/xPrfMem.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xPRF/RAS/xPrfRas.c +File: opensil/xPRF/RAS/xPrfRas.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xPRF/RAS/xPrfRasServices.c +File: opensil/xPRF/RAS/xPrfRasServices.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xPRF/CCX/xPrfCcx.c +File: opensil/xPRF/CCX/xPrfCcx.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xPRF/NBIO/xPrfNbio.c +File: opensil/xPRF/NBIO/xPrfNbio.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xSIM/SocList.c +File: opensil/xSIM/SocList.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xSIM/SocUtil.c +File: opensil/xSIM/SocUtil.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xSIM/xSIM.c +File: opensil/xSIM/xSIM.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xSIM/SoC/F19M10/IpBlkListF19M10Tp1.c +File: opensil/xSIM/SoC/F19M10/IpBlkListF19M10Tp1.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xSIM/SoC/F19M10/IpBlkListF19M10Tp2.c +File: opensil/xSIM/SoC/F19M10/IpBlkListF19M10Tp2.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xSIM/SoC/F19M10/IpBlkListF19M10Tp3.c +File: opensil/xSIM/SoC/F19M10/IpBlkListF19M10Tp3.c +Output file from ListFiles.py +number Args: 143 +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/AmdFeatures.c +File: opensil/xUSL/AmdFeatures.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Apob.c +File: opensil/xUSL/Apob.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/BaseSocLogicalIdXlat.c +File: opensil/xUSL/BaseSocLogicalIdXlat.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CoreTopologyService.c +File: opensil/xUSL/CoreTopologyService.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/SocLogicalId.c +File: opensil/xUSL/SocLogicalId.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/SilGbls.c +File: opensil/xUSL/SilGbls.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/CpuOps.c +File: opensil/xUSL/CommonLib/CpuOps.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/IPC.c +File: opensil/xUSL/CommonLib/IPC.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/MmioOps.c +File: opensil/xUSL/CommonLib/MmioOps.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/PciOps.c +File: opensil/xUSL/CommonLib/PciOps.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/Pstates.c +File: opensil/xUSL/CommonLib/Pstates.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/SilServices.c +File: opensil/xUSL/CommonLib/SilServices.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/SmnAccess.c +File: opensil/xUSL/CommonLib/SmnAccess.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/Utils.c +File: opensil/xUSL/CommonLib/Utils.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/xUslCcxRoles.c +File: opensil/xUSL/CommonLib/xUslCcxRoles.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/AmdTable.c +File: opensil/xUSL/CCX/Common/AmdTable.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/Ccx.c +File: opensil/xUSL/CCX/Common/Ccx.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxBrandString.c +File: opensil/xUSL/CCX/Common/CcxBrandString.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxC6.c +File: opensil/xUSL/CCX/Common/CcxC6.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxCacheInit.c +File: opensil/xUSL/CCX/Common/CcxCacheInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxDownCoreInit.c +File: opensil/xUSL/CCX/Common/CcxDownCoreInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxMicrocodePatch.c +File: opensil/xUSL/CCX/Common/CcxMicrocodePatch.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxMiscInit.c +File: opensil/xUSL/CCX/Common/CcxMiscInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxSetMca.c +File: opensil/xUSL/CCX/Common/CcxSetMca.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/SocServices.c +File: opensil/xUSL/CCX/Common/SocServices.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxApLaunch32.c +File: opensil/xUSL/CCX/Common/CcxApLaunch32.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Zen4/Zen4.c +File: opensil/xUSL/CCX/Zen4/Zen4.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Zen4/Zen4DownCoreInit.c +File: opensil/xUSL/CCX/Zen4/Zen4DownCoreInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Zen4/CcxCmn2Zen4.c +File: opensil/xUSL/CCX/Zen4/CcxCmn2Zen4.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Zen4/CcxResetTablesZen4.c +File: opensil/xUSL/CCX/Zen4/CcxResetTablesZen4.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/Df.c +File: opensil/xUSL/DF/Df.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfClassDflts.c +File: opensil/xUSL/DF/DfClassDflts.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/Common/BaseFabricTopologyCmn.c +File: opensil/xUSL/DF/Common/BaseFabricTopologyCmn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/Common/FabricRegisterAccCmn.c +File: opensil/xUSL/DF/Common/FabricRegisterAccCmn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/DfXBaseFabricTopology.c +File: opensil/xUSL/DF/DfX/DfXBaseFabricTopology.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/DfX.c +File: opensil/xUSL/DF/DfX/DfX.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/DfXFabricRegisterAcc.c +File: opensil/xUSL/DF/DfX/DfXFabricRegisterAcc.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/DfCmn2Rev4.c +File: opensil/xUSL/DF/DfX/DfCmn2Rev4.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/DfXFabricWdt.c +File: opensil/xUSL/DF/DfX/DfXFabricWdt.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/DfXBaseFabricTopology.c +File: opensil/xUSL/DF/DfX/DfXBaseFabricTopology.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/FabricDfClkGatingInit/FabricDfClkGatingInit.c +File: opensil/xUSL/DF/DfX/FabricDfClkGatingInit/FabricDfClkGatingInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/FabricPieRasInit/FabricPieRasInit.c +File: opensil/xUSL/DF/DfX/FabricPieRasInit/FabricPieRasInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/FabricAcpiDomain/FabricAcpiDomainInfo.c +File: opensil/xUSL/DF/DfX/FabricAcpiDomain/FabricAcpiDomainInfo.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/Fch.c +File: opensil/xUSL/FCH/Common/Fch.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCommon.c +File: opensil/xUSL/FCH/Common/FchCommon.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchHelper.c +File: opensil/xUSL/FCH/Common/FchHelper.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/LegacyInterrupt.c +File: opensil/xUSL/FCH/Common/LegacyInterrupt.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchEnvDef.c +File: opensil/xUSL/FCH/Common/FchCore/FchEnvDef.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchAb/FchAb.c +File: opensil/xUSL/FCH/Common/FchCore/FchAb/FchAb.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchAb/FchAlinkLib.c +File: opensil/xUSL/FCH/Common/FchCore/FchAb/FchAlinkLib.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchEmmc/FchEmmc.c +File: opensil/xUSL/FCH/Common/FchCore/FchEmmc/FchEmmc.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchEspi/FchEspi.c +File: opensil/xUSL/FCH/Common/FchCore/FchEspi/FchEspi.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchGpp/FchGpp.c +File: opensil/xUSL/FCH/Common/FchCore/FchGpp/FchGpp.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchHwAcpi/FchHwAcpi.c +File: opensil/xUSL/FCH/Common/FchCore/FchHwAcpi/FchHwAcpi.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchHwAcpi/IP/Fch80.c +File: opensil/xUSL/FCH/Common/FchCore/FchHwAcpi/IP/Fch80.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchSata/FchSata.c +File: opensil/xUSL/FCH/Common/FchCore/FchSata/FchSata.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchSpi/FchSpi.c +File: opensil/xUSL/FCH/Common/FchCore/FchSpi/FchSpi.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchXhci/FchXhci.c +File: opensil/xUSL/FCH/Common/FchCore/FchXhci/FchXhci.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchXhci/IP/UsbD10.c +File: opensil/xUSL/FCH/Common/FchCore/FchXhci/IP/UsbD10.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/MultiFch/MultiFchInit.c +File: opensil/xUSL/FCH/Common/MultiFch/MultiFchInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/9004/FchSn.c +File: opensil/xUSL/FCH/9004/FchSn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/9004/FchCore/FchSata/FchSataSn.c +File: opensil/xUSL/FCH/9004/FchCore/FchSata/FchSataSn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/9004/FchCore/FchSata/FchSataCmn2Sn.c +File: opensil/xUSL/FCH/9004/FchCore/FchSata/FchSataCmn2Sn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/9004/FchCore/FchHwAcpi/FchHwAcpiSn.c +File: opensil/xUSL/FCH/9004/FchCore/FchHwAcpi/FchHwAcpiSn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/9004/FchCore/FchXhci/FchXhciSn.c +File: opensil/xUSL/FCH/9004/FchCore/FchXhci/FchXhciSn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/9004/MultiFch/MultiFchCmn2Sn.c +File: opensil/xUSL/FCH/9004/MultiFch/MultiFchCmn2Sn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/9004/MultiFch/MultiFchSn.c +File: opensil/xUSL/FCH/9004/MultiFch/MultiFchSn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/MEM/Mem.c +File: opensil/xUSL/MEM/Mem.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioAncDataV1.c +File: opensil/xUSL/Mpio/Common/MpioAncDataV1.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioCfgPoints.c +File: opensil/xUSL/Mpio/Common/MpioCfgPoints.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioClassDflts.c +File: opensil/xUSL/Mpio/Common/MpioClassDflts.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioDebugOut.c +File: opensil/xUSL/Mpio/Common/MpioDebugOut.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioEarlyTrain.c +File: opensil/xUSL/Mpio/Common/MpioEarlyTrain.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioLib.c +File: opensil/xUSL/Mpio/Common/MpioLib.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioInit.c +File: opensil/xUSL/Mpio/Common/MpioInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioInitFlow.c +File: opensil/xUSL/Mpio/Common/MpioInitFlow.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioMappingResults.c +File: opensil/xUSL/Mpio/Common/MpioMappingResults.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioParser.c +File: opensil/xUSL/Mpio/Common/MpioParser.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioPcie.c +File: opensil/xUSL/Mpio/Common/MpioPcie.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioPortVisibility.c +File: opensil/xUSL/Mpio/Common/MpioPortVisibility.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioSupportFunctions.c +File: opensil/xUSL/Mpio/Common/MpioSupportFunctions.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioTopology.c +File: opensil/xUSL/Mpio/Common/MpioTopology.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioTrainingResults.c +File: opensil/xUSL/Mpio/Common/MpioTrainingResults.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioUbmTopology.c +File: opensil/xUSL/Mpio/Common/MpioUbmTopology.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Genoa/MpioCfgPoints.c +File: opensil/xUSL/Mpio/Genoa/MpioCfgPoints.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Genoa/MpioCmn2.c +File: opensil/xUSL/Mpio/Genoa/MpioCmn2.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Genoa/MpioPcie.c +File: opensil/xUSL/Mpio/Genoa/MpioPcie.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Genoa/MpioPortVisibility.c +File: opensil/xUSL/Mpio/Genoa/MpioPortVisibility.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Genoa/Mpio.c +File: opensil/xUSL/Mpio/Genoa/Mpio.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Genoa/MpioTopology.c +File: opensil/xUSL/Mpio/Genoa/MpioTopology.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Sdci/Common/SdciClassDflts.c +File: opensil/xUSL/Sdci/Common/SdciClassDflts.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Sdci/Common/Sdci.c +File: opensil/xUSL/Sdci/Common/Sdci.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Sdci/Genoa/SdciCmn2.c +File: opensil/xUSL/Sdci/Genoa/SdciCmn2.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Sdci/Genoa/Sdci.c +File: opensil/xUSL/Sdci/Genoa/Sdci.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Cxl/Common/CxlClassDflts.c +File: opensil/xUSL/Cxl/Common/CxlClassDflts.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Cxl/Common/CxlInit.c +File: opensil/xUSL/Cxl/Common/CxlInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Cxl/Genoa/CxlCmn2.c +File: opensil/xUSL/Cxl/Genoa/CxlCmn2.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Cxl/Genoa/Cxl.c +File: opensil/xUSL/Cxl/Genoa/Cxl.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioIod.c +File: opensil/xUSL/NBIO/IOD/NbioIod.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioBaseInitGenoa.c +File: opensil/xUSL/NBIO/IOD/NbioBaseInitGenoa.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioCommon.c +File: opensil/xUSL/NBIO/IOD/NbioCommon.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioData.c +File: opensil/xUSL/NBIO/IOD/NbioData.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioIoApic.c +File: opensil/xUSL/NBIO/IOD/NbioIoApic.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioIommu.c +File: opensil/xUSL/NBIO/IOD/NbioIommu.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioPcie.c +File: opensil/xUSL/NBIO/IOD/NbioPcie.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioPcieComplexData.c +File: opensil/xUSL/NBIO/IOD/NbioPcieComplexData.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioSmnTable.c +File: opensil/xUSL/NBIO/IOD/NbioSmnTable.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioSmnTables.c +File: opensil/xUSL/NBIO/IOD/NbioSmnTables.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioHidePcieCore.c +File: opensil/xUSL/NBIO/IOD/NbioHidePcieCore.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioTopMem.c +File: opensil/xUSL/NBIO/IOD/NbioTopMem.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/PkgTypeFixups.c +File: opensil/xUSL/NBIO/IOD/PkgTypeFixups.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/Nbio.c +File: opensil/xUSL/NBIO/Nbio.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/NbioPcieTopologyHelper.c +File: opensil/xUSL/NBIO/NbioPcieTopologyHelper.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RAS/Common/Ras.c +File: opensil/xUSL/RAS/Common/Ras.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RAS/Genoa/DfAddressTranslationLib.c +File: opensil/xUSL/RAS/Genoa/DfAddressTranslationLib.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RAS/Genoa/RasCmn2.c +File: opensil/xUSL/RAS/Genoa/RasCmn2.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RAS/Genoa/Ras.c +File: opensil/xUSL/RAS/Genoa/Ras.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RAS/Genoa/SocLib.c +File: opensil/xUSL/RAS/Genoa/SocLib.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/SMU/Common/SmuCommon.c +File: opensil/xUSL/SMU/Common/SmuCommon.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/SMU/V13/SmuV13.c +File: opensil/xUSL/SMU/V13/SmuV13.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/SMU/V13/SmuCmn2V13.c +File: opensil/xUSL/SMU/V13/SmuCmn2V13.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RcMgr/FabricRcInit.c +File: opensil/xUSL/RcMgr/FabricRcInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RcMgr/DfX/FabricRcInitBasedOnNv4.c +File: opensil/xUSL/RcMgr/DfX/FabricRcInitBasedOnNv4.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RcMgr/DfX/FabricRcInitDfX.c +File: opensil/xUSL/RcMgr/DfX/FabricRcInitDfX.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RcMgr/DfX/FabricResourceManager.c +File: opensil/xUSL/RcMgr/DfX/FabricResourceManager.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xPRF/xPRF.c +File: opensil/xPRF/xPRF.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xPRF/Mem/xPrfMem.c +File: opensil/xPRF/Mem/xPrfMem.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xPRF/RAS/xPrfRas.c +File: opensil/xPRF/RAS/xPrfRas.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xPRF/RAS/xPrfRasServices.c +File: opensil/xPRF/RAS/xPrfRasServices.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xPRF/CCX/xPrfCcx.c +File: opensil/xPRF/CCX/xPrfCcx.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xPRF/NBIO/xPrfNbio.c +File: opensil/xPRF/NBIO/xPrfNbio.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xSIM/SocList.c +File: opensil/xSIM/SocList.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xSIM/SocUtil.c +File: opensil/xSIM/SocUtil.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xSIM/xSIM.c +File: opensil/xSIM/xSIM.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xSIM/SoC/F19M10/IpBlkListF19M10Tp1.c +File: opensil/xSIM/SoC/F19M10/IpBlkListF19M10Tp1.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xSIM/SoC/F19M10/IpBlkListF19M10Tp2.c +File: opensil/xSIM/SoC/F19M10/IpBlkListF19M10Tp2.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xSIM/SoC/F19M10/IpBlkListF19M10Tp3.c +File: opensil/xSIM/SoC/F19M10/IpBlkListF19M10Tp3.c +Output file from ListFiles.py +number Args: 143 +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/AmdFeatures.c +File: opensil/xUSL/AmdFeatures.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Apob.c +File: opensil/xUSL/Apob.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/BaseSocLogicalIdXlat.c +File: opensil/xUSL/BaseSocLogicalIdXlat.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CoreTopologyService.c +File: opensil/xUSL/CoreTopologyService.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/SocLogicalId.c +File: opensil/xUSL/SocLogicalId.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/SilGbls.c +File: opensil/xUSL/SilGbls.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/CpuOps.c +File: opensil/xUSL/CommonLib/CpuOps.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/IPC.c +File: opensil/xUSL/CommonLib/IPC.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/MmioOps.c +File: opensil/xUSL/CommonLib/MmioOps.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/PciOps.c +File: opensil/xUSL/CommonLib/PciOps.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/Pstates.c +File: opensil/xUSL/CommonLib/Pstates.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/SilServices.c +File: opensil/xUSL/CommonLib/SilServices.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/SmnAccess.c +File: opensil/xUSL/CommonLib/SmnAccess.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/Utils.c +File: opensil/xUSL/CommonLib/Utils.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/xUslCcxRoles.c +File: opensil/xUSL/CommonLib/xUslCcxRoles.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/AmdTable.c +File: opensil/xUSL/CCX/Common/AmdTable.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/Ccx.c +File: opensil/xUSL/CCX/Common/Ccx.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxBrandString.c +File: opensil/xUSL/CCX/Common/CcxBrandString.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxC6.c +File: opensil/xUSL/CCX/Common/CcxC6.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxCacheInit.c +File: opensil/xUSL/CCX/Common/CcxCacheInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxDownCoreInit.c +File: opensil/xUSL/CCX/Common/CcxDownCoreInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxMicrocodePatch.c +File: opensil/xUSL/CCX/Common/CcxMicrocodePatch.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxMiscInit.c +File: opensil/xUSL/CCX/Common/CcxMiscInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxSetMca.c +File: opensil/xUSL/CCX/Common/CcxSetMca.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/SocServices.c +File: opensil/xUSL/CCX/Common/SocServices.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxApLaunch32.c +File: opensil/xUSL/CCX/Common/CcxApLaunch32.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Zen4/Zen4.c +File: opensil/xUSL/CCX/Zen4/Zen4.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Zen4/Zen4DownCoreInit.c +File: opensil/xUSL/CCX/Zen4/Zen4DownCoreInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Zen4/CcxCmn2Zen4.c +File: opensil/xUSL/CCX/Zen4/CcxCmn2Zen4.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Zen4/CcxResetTablesZen4.c +File: opensil/xUSL/CCX/Zen4/CcxResetTablesZen4.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/Df.c +File: opensil/xUSL/DF/Df.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfClassDflts.c +File: opensil/xUSL/DF/DfClassDflts.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/Common/BaseFabricTopologyCmn.c +File: opensil/xUSL/DF/Common/BaseFabricTopologyCmn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/Common/FabricRegisterAccCmn.c +File: opensil/xUSL/DF/Common/FabricRegisterAccCmn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/DfXBaseFabricTopology.c +File: opensil/xUSL/DF/DfX/DfXBaseFabricTopology.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/DfX.c +File: opensil/xUSL/DF/DfX/DfX.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/DfXFabricRegisterAcc.c +File: opensil/xUSL/DF/DfX/DfXFabricRegisterAcc.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/DfCmn2Rev4.c +File: opensil/xUSL/DF/DfX/DfCmn2Rev4.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/DfXFabricWdt.c +File: opensil/xUSL/DF/DfX/DfXFabricWdt.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/DfXBaseFabricTopology.c +File: opensil/xUSL/DF/DfX/DfXBaseFabricTopology.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/FabricDfClkGatingInit/FabricDfClkGatingInit.c +File: opensil/xUSL/DF/DfX/FabricDfClkGatingInit/FabricDfClkGatingInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/FabricPieRasInit/FabricPieRasInit.c +File: opensil/xUSL/DF/DfX/FabricPieRasInit/FabricPieRasInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/FabricAcpiDomain/FabricAcpiDomainInfo.c +File: opensil/xUSL/DF/DfX/FabricAcpiDomain/FabricAcpiDomainInfo.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/Fch.c +File: opensil/xUSL/FCH/Common/Fch.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCommon.c +File: opensil/xUSL/FCH/Common/FchCommon.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchHelper.c +File: opensil/xUSL/FCH/Common/FchHelper.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/LegacyInterrupt.c +File: opensil/xUSL/FCH/Common/LegacyInterrupt.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchEnvDef.c +File: opensil/xUSL/FCH/Common/FchCore/FchEnvDef.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchAb/FchAb.c +File: opensil/xUSL/FCH/Common/FchCore/FchAb/FchAb.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchAb/FchAlinkLib.c +File: opensil/xUSL/FCH/Common/FchCore/FchAb/FchAlinkLib.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchEmmc/FchEmmc.c +File: opensil/xUSL/FCH/Common/FchCore/FchEmmc/FchEmmc.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchEspi/FchEspi.c +File: opensil/xUSL/FCH/Common/FchCore/FchEspi/FchEspi.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchGpp/FchGpp.c +File: opensil/xUSL/FCH/Common/FchCore/FchGpp/FchGpp.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchHwAcpi/FchHwAcpi.c +File: opensil/xUSL/FCH/Common/FchCore/FchHwAcpi/FchHwAcpi.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchHwAcpi/IP/Fch80.c +File: opensil/xUSL/FCH/Common/FchCore/FchHwAcpi/IP/Fch80.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchSata/FchSata.c +File: opensil/xUSL/FCH/Common/FchCore/FchSata/FchSata.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchSpi/FchSpi.c +File: opensil/xUSL/FCH/Common/FchCore/FchSpi/FchSpi.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchXhci/FchXhci.c +File: opensil/xUSL/FCH/Common/FchCore/FchXhci/FchXhci.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchXhci/IP/UsbD10.c +File: opensil/xUSL/FCH/Common/FchCore/FchXhci/IP/UsbD10.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/MultiFch/MultiFchInit.c +File: opensil/xUSL/FCH/Common/MultiFch/MultiFchInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/9004/FchSn.c +File: opensil/xUSL/FCH/9004/FchSn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/9004/FchCore/FchSata/FchSataSn.c +File: opensil/xUSL/FCH/9004/FchCore/FchSata/FchSataSn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/9004/FchCore/FchSata/FchSataCmn2Sn.c +File: opensil/xUSL/FCH/9004/FchCore/FchSata/FchSataCmn2Sn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/9004/FchCore/FchHwAcpi/FchHwAcpiSn.c +File: opensil/xUSL/FCH/9004/FchCore/FchHwAcpi/FchHwAcpiSn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/9004/FchCore/FchXhci/FchXhciSn.c +File: opensil/xUSL/FCH/9004/FchCore/FchXhci/FchXhciSn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/9004/MultiFch/MultiFchCmn2Sn.c +File: opensil/xUSL/FCH/9004/MultiFch/MultiFchCmn2Sn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/9004/MultiFch/MultiFchSn.c +File: opensil/xUSL/FCH/9004/MultiFch/MultiFchSn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/MEM/Mem.c +File: opensil/xUSL/MEM/Mem.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioAncDataV1.c +File: opensil/xUSL/Mpio/Common/MpioAncDataV1.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioCfgPoints.c +File: opensil/xUSL/Mpio/Common/MpioCfgPoints.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioClassDflts.c +File: opensil/xUSL/Mpio/Common/MpioClassDflts.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioDebugOut.c +File: opensil/xUSL/Mpio/Common/MpioDebugOut.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioEarlyTrain.c +File: opensil/xUSL/Mpio/Common/MpioEarlyTrain.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioLib.c +File: opensil/xUSL/Mpio/Common/MpioLib.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioInit.c +File: opensil/xUSL/Mpio/Common/MpioInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioInitFlow.c +File: opensil/xUSL/Mpio/Common/MpioInitFlow.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioMappingResults.c +File: opensil/xUSL/Mpio/Common/MpioMappingResults.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioParser.c +File: opensil/xUSL/Mpio/Common/MpioParser.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioPcie.c +File: opensil/xUSL/Mpio/Common/MpioPcie.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioPortVisibility.c +File: opensil/xUSL/Mpio/Common/MpioPortVisibility.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioSupportFunctions.c +File: opensil/xUSL/Mpio/Common/MpioSupportFunctions.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioTopology.c +File: opensil/xUSL/Mpio/Common/MpioTopology.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioTrainingResults.c +File: opensil/xUSL/Mpio/Common/MpioTrainingResults.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioUbmTopology.c +File: opensil/xUSL/Mpio/Common/MpioUbmTopology.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Genoa/MpioCfgPoints.c +File: opensil/xUSL/Mpio/Genoa/MpioCfgPoints.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Genoa/MpioCmn2.c +File: opensil/xUSL/Mpio/Genoa/MpioCmn2.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Genoa/MpioPcie.c +File: opensil/xUSL/Mpio/Genoa/MpioPcie.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Genoa/MpioPortVisibility.c +File: opensil/xUSL/Mpio/Genoa/MpioPortVisibility.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Genoa/Mpio.c +File: opensil/xUSL/Mpio/Genoa/Mpio.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Genoa/MpioTopology.c +File: opensil/xUSL/Mpio/Genoa/MpioTopology.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Sdci/Common/SdciClassDflts.c +File: opensil/xUSL/Sdci/Common/SdciClassDflts.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Sdci/Common/Sdci.c +File: opensil/xUSL/Sdci/Common/Sdci.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Sdci/Genoa/SdciCmn2.c +File: opensil/xUSL/Sdci/Genoa/SdciCmn2.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Sdci/Genoa/Sdci.c +File: opensil/xUSL/Sdci/Genoa/Sdci.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Cxl/Common/CxlClassDflts.c +File: opensil/xUSL/Cxl/Common/CxlClassDflts.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Cxl/Common/CxlInit.c +File: opensil/xUSL/Cxl/Common/CxlInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Cxl/Genoa/CxlCmn2.c +File: opensil/xUSL/Cxl/Genoa/CxlCmn2.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Cxl/Genoa/Cxl.c +File: opensil/xUSL/Cxl/Genoa/Cxl.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioIod.c +File: opensil/xUSL/NBIO/IOD/NbioIod.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioBaseInitGenoa.c +File: opensil/xUSL/NBIO/IOD/NbioBaseInitGenoa.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioCommon.c +File: opensil/xUSL/NBIO/IOD/NbioCommon.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioData.c +File: opensil/xUSL/NBIO/IOD/NbioData.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioIoApic.c +File: opensil/xUSL/NBIO/IOD/NbioIoApic.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioIommu.c +File: opensil/xUSL/NBIO/IOD/NbioIommu.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioPcie.c +File: opensil/xUSL/NBIO/IOD/NbioPcie.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioPcieComplexData.c +File: opensil/xUSL/NBIO/IOD/NbioPcieComplexData.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioSmnTable.c +File: opensil/xUSL/NBIO/IOD/NbioSmnTable.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioSmnTables.c +File: opensil/xUSL/NBIO/IOD/NbioSmnTables.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioHidePcieCore.c +File: opensil/xUSL/NBIO/IOD/NbioHidePcieCore.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioTopMem.c +File: opensil/xUSL/NBIO/IOD/NbioTopMem.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/PkgTypeFixups.c +File: opensil/xUSL/NBIO/IOD/PkgTypeFixups.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/Nbio.c +File: opensil/xUSL/NBIO/Nbio.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/NbioPcieTopologyHelper.c +File: opensil/xUSL/NBIO/NbioPcieTopologyHelper.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RAS/Common/Ras.c +File: opensil/xUSL/RAS/Common/Ras.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RAS/Genoa/DfAddressTranslationLib.c +File: opensil/xUSL/RAS/Genoa/DfAddressTranslationLib.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RAS/Genoa/RasCmn2.c +File: opensil/xUSL/RAS/Genoa/RasCmn2.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RAS/Genoa/Ras.c +File: opensil/xUSL/RAS/Genoa/Ras.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RAS/Genoa/SocLib.c +File: opensil/xUSL/RAS/Genoa/SocLib.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/SMU/Common/SmuCommon.c +File: opensil/xUSL/SMU/Common/SmuCommon.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/SMU/V13/SmuV13.c +File: opensil/xUSL/SMU/V13/SmuV13.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/SMU/V13/SmuCmn2V13.c +File: opensil/xUSL/SMU/V13/SmuCmn2V13.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RcMgr/FabricRcInit.c +File: opensil/xUSL/RcMgr/FabricRcInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RcMgr/DfX/FabricRcInitBasedOnNv4.c +File: opensil/xUSL/RcMgr/DfX/FabricRcInitBasedOnNv4.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RcMgr/DfX/FabricRcInitDfX.c +File: opensil/xUSL/RcMgr/DfX/FabricRcInitDfX.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RcMgr/DfX/FabricResourceManager.c +File: opensil/xUSL/RcMgr/DfX/FabricResourceManager.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xPRF/xPRF.c +File: opensil/xPRF/xPRF.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xPRF/Mem/xPrfMem.c +File: opensil/xPRF/Mem/xPrfMem.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xPRF/RAS/xPrfRas.c +File: opensil/xPRF/RAS/xPrfRas.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xPRF/RAS/xPrfRasServices.c +File: opensil/xPRF/RAS/xPrfRasServices.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xPRF/CCX/xPrfCcx.c +File: opensil/xPRF/CCX/xPrfCcx.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xPRF/NBIO/xPrfNbio.c +File: opensil/xPRF/NBIO/xPrfNbio.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xSIM/SocList.c +File: opensil/xSIM/SocList.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xSIM/SocUtil.c +File: opensil/xSIM/SocUtil.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xSIM/xSIM.c +File: opensil/xSIM/xSIM.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xSIM/SoC/F19M10/IpBlkListF19M10Tp1.c +File: opensil/xSIM/SoC/F19M10/IpBlkListF19M10Tp1.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xSIM/SoC/F19M10/IpBlkListF19M10Tp2.c +File: opensil/xSIM/SoC/F19M10/IpBlkListF19M10Tp2.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xSIM/SoC/F19M10/IpBlkListF19M10Tp3.c +File: opensil/xSIM/SoC/F19M10/IpBlkListF19M10Tp3.c +Output file from ListFiles.py +number Args: 143 +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/AmdFeatures.c +File: opensil/xUSL/AmdFeatures.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Apob.c +File: opensil/xUSL/Apob.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/BaseSocLogicalIdXlat.c +File: opensil/xUSL/BaseSocLogicalIdXlat.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CoreTopologyService.c +File: opensil/xUSL/CoreTopologyService.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/SocLogicalId.c +File: opensil/xUSL/SocLogicalId.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/SilGbls.c +File: opensil/xUSL/SilGbls.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/CpuOps.c +File: opensil/xUSL/CommonLib/CpuOps.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/IPC.c +File: opensil/xUSL/CommonLib/IPC.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/MmioOps.c +File: opensil/xUSL/CommonLib/MmioOps.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/PciOps.c +File: opensil/xUSL/CommonLib/PciOps.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/Pstates.c +File: opensil/xUSL/CommonLib/Pstates.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/SilServices.c +File: opensil/xUSL/CommonLib/SilServices.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/SmnAccess.c +File: opensil/xUSL/CommonLib/SmnAccess.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/Utils.c +File: opensil/xUSL/CommonLib/Utils.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/xUslCcxRoles.c +File: opensil/xUSL/CommonLib/xUslCcxRoles.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/AmdTable.c +File: opensil/xUSL/CCX/Common/AmdTable.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/Ccx.c +File: opensil/xUSL/CCX/Common/Ccx.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxBrandString.c +File: opensil/xUSL/CCX/Common/CcxBrandString.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxC6.c +File: opensil/xUSL/CCX/Common/CcxC6.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxCacheInit.c +File: opensil/xUSL/CCX/Common/CcxCacheInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxDownCoreInit.c +File: opensil/xUSL/CCX/Common/CcxDownCoreInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxMicrocodePatch.c +File: opensil/xUSL/CCX/Common/CcxMicrocodePatch.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxMiscInit.c +File: opensil/xUSL/CCX/Common/CcxMiscInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxSetMca.c +File: opensil/xUSL/CCX/Common/CcxSetMca.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/SocServices.c +File: opensil/xUSL/CCX/Common/SocServices.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxApLaunch32.c +File: opensil/xUSL/CCX/Common/CcxApLaunch32.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Zen4/Zen4.c +File: opensil/xUSL/CCX/Zen4/Zen4.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Zen4/Zen4DownCoreInit.c +File: opensil/xUSL/CCX/Zen4/Zen4DownCoreInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Zen4/CcxCmn2Zen4.c +File: opensil/xUSL/CCX/Zen4/CcxCmn2Zen4.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Zen4/CcxResetTablesZen4.c +File: opensil/xUSL/CCX/Zen4/CcxResetTablesZen4.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/Df.c +File: opensil/xUSL/DF/Df.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfClassDflts.c +File: opensil/xUSL/DF/DfClassDflts.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/Common/BaseFabricTopologyCmn.c +File: opensil/xUSL/DF/Common/BaseFabricTopologyCmn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/Common/FabricRegisterAccCmn.c +File: opensil/xUSL/DF/Common/FabricRegisterAccCmn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/DfXBaseFabricTopology.c +File: opensil/xUSL/DF/DfX/DfXBaseFabricTopology.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/DfX.c +File: opensil/xUSL/DF/DfX/DfX.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/DfXFabricRegisterAcc.c +File: opensil/xUSL/DF/DfX/DfXFabricRegisterAcc.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/DfCmn2Rev4.c +File: opensil/xUSL/DF/DfX/DfCmn2Rev4.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/DfXFabricWdt.c +File: opensil/xUSL/DF/DfX/DfXFabricWdt.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/DfXBaseFabricTopology.c +File: opensil/xUSL/DF/DfX/DfXBaseFabricTopology.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/FabricDfClkGatingInit/FabricDfClkGatingInit.c +File: opensil/xUSL/DF/DfX/FabricDfClkGatingInit/FabricDfClkGatingInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/FabricPieRasInit/FabricPieRasInit.c +File: opensil/xUSL/DF/DfX/FabricPieRasInit/FabricPieRasInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/FabricAcpiDomain/FabricAcpiDomainInfo.c +File: opensil/xUSL/DF/DfX/FabricAcpiDomain/FabricAcpiDomainInfo.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/Fch.c +File: opensil/xUSL/FCH/Common/Fch.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCommon.c +File: opensil/xUSL/FCH/Common/FchCommon.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchHelper.c +File: opensil/xUSL/FCH/Common/FchHelper.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/LegacyInterrupt.c +File: opensil/xUSL/FCH/Common/LegacyInterrupt.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchEnvDef.c +File: opensil/xUSL/FCH/Common/FchCore/FchEnvDef.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchAb/FchAb.c +File: opensil/xUSL/FCH/Common/FchCore/FchAb/FchAb.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchAb/FchAlinkLib.c +File: opensil/xUSL/FCH/Common/FchCore/FchAb/FchAlinkLib.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchEmmc/FchEmmc.c +File: opensil/xUSL/FCH/Common/FchCore/FchEmmc/FchEmmc.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchEspi/FchEspi.c +File: opensil/xUSL/FCH/Common/FchCore/FchEspi/FchEspi.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchGpp/FchGpp.c +File: opensil/xUSL/FCH/Common/FchCore/FchGpp/FchGpp.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchHwAcpi/FchHwAcpi.c +File: opensil/xUSL/FCH/Common/FchCore/FchHwAcpi/FchHwAcpi.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchHwAcpi/IP/Fch80.c +File: opensil/xUSL/FCH/Common/FchCore/FchHwAcpi/IP/Fch80.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchSata/FchSata.c +File: opensil/xUSL/FCH/Common/FchCore/FchSata/FchSata.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchSpi/FchSpi.c +File: opensil/xUSL/FCH/Common/FchCore/FchSpi/FchSpi.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchXhci/FchXhci.c +File: opensil/xUSL/FCH/Common/FchCore/FchXhci/FchXhci.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchXhci/IP/UsbD10.c +File: opensil/xUSL/FCH/Common/FchCore/FchXhci/IP/UsbD10.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/MultiFch/MultiFchInit.c +File: opensil/xUSL/FCH/Common/MultiFch/MultiFchInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/9004/FchSn.c +File: opensil/xUSL/FCH/9004/FchSn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/9004/FchCore/FchSata/FchSataSn.c +File: opensil/xUSL/FCH/9004/FchCore/FchSata/FchSataSn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/9004/FchCore/FchSata/FchSataCmn2Sn.c +File: opensil/xUSL/FCH/9004/FchCore/FchSata/FchSataCmn2Sn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/9004/FchCore/FchHwAcpi/FchHwAcpiSn.c +File: opensil/xUSL/FCH/9004/FchCore/FchHwAcpi/FchHwAcpiSn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/9004/FchCore/FchXhci/FchXhciSn.c +File: opensil/xUSL/FCH/9004/FchCore/FchXhci/FchXhciSn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/9004/MultiFch/MultiFchCmn2Sn.c +File: opensil/xUSL/FCH/9004/MultiFch/MultiFchCmn2Sn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/9004/MultiFch/MultiFchSn.c +File: opensil/xUSL/FCH/9004/MultiFch/MultiFchSn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/MEM/Mem.c +File: opensil/xUSL/MEM/Mem.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioAncDataV1.c +File: opensil/xUSL/Mpio/Common/MpioAncDataV1.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioCfgPoints.c +File: opensil/xUSL/Mpio/Common/MpioCfgPoints.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioClassDflts.c +File: opensil/xUSL/Mpio/Common/MpioClassDflts.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioDebugOut.c +File: opensil/xUSL/Mpio/Common/MpioDebugOut.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioEarlyTrain.c +File: opensil/xUSL/Mpio/Common/MpioEarlyTrain.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioLib.c +File: opensil/xUSL/Mpio/Common/MpioLib.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioInit.c +File: opensil/xUSL/Mpio/Common/MpioInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioInitFlow.c +File: opensil/xUSL/Mpio/Common/MpioInitFlow.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioMappingResults.c +File: opensil/xUSL/Mpio/Common/MpioMappingResults.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioParser.c +File: opensil/xUSL/Mpio/Common/MpioParser.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioPcie.c +File: opensil/xUSL/Mpio/Common/MpioPcie.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioPortVisibility.c +File: opensil/xUSL/Mpio/Common/MpioPortVisibility.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioSupportFunctions.c +File: opensil/xUSL/Mpio/Common/MpioSupportFunctions.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioTopology.c +File: opensil/xUSL/Mpio/Common/MpioTopology.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioTrainingResults.c +File: opensil/xUSL/Mpio/Common/MpioTrainingResults.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioUbmTopology.c +File: opensil/xUSL/Mpio/Common/MpioUbmTopology.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Genoa/MpioCfgPoints.c +File: opensil/xUSL/Mpio/Genoa/MpioCfgPoints.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Genoa/MpioCmn2.c +File: opensil/xUSL/Mpio/Genoa/MpioCmn2.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Genoa/MpioPcie.c +File: opensil/xUSL/Mpio/Genoa/MpioPcie.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Genoa/MpioPortVisibility.c +File: opensil/xUSL/Mpio/Genoa/MpioPortVisibility.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Genoa/Mpio.c +File: opensil/xUSL/Mpio/Genoa/Mpio.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Genoa/MpioTopology.c +File: opensil/xUSL/Mpio/Genoa/MpioTopology.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Sdci/Common/SdciClassDflts.c +File: opensil/xUSL/Sdci/Common/SdciClassDflts.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Sdci/Common/Sdci.c +File: opensil/xUSL/Sdci/Common/Sdci.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Sdci/Genoa/SdciCmn2.c +File: opensil/xUSL/Sdci/Genoa/SdciCmn2.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Sdci/Genoa/Sdci.c +File: opensil/xUSL/Sdci/Genoa/Sdci.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Cxl/Common/CxlClassDflts.c +File: opensil/xUSL/Cxl/Common/CxlClassDflts.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Cxl/Common/CxlInit.c +File: opensil/xUSL/Cxl/Common/CxlInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Cxl/Genoa/CxlCmn2.c +File: opensil/xUSL/Cxl/Genoa/CxlCmn2.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Cxl/Genoa/Cxl.c +File: opensil/xUSL/Cxl/Genoa/Cxl.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioIod.c +File: opensil/xUSL/NBIO/IOD/NbioIod.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioBaseInitGenoa.c +File: opensil/xUSL/NBIO/IOD/NbioBaseInitGenoa.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioCommon.c +File: opensil/xUSL/NBIO/IOD/NbioCommon.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioData.c +File: opensil/xUSL/NBIO/IOD/NbioData.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioIoApic.c +File: opensil/xUSL/NBIO/IOD/NbioIoApic.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioIommu.c +File: opensil/xUSL/NBIO/IOD/NbioIommu.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioPcie.c +File: opensil/xUSL/NBIO/IOD/NbioPcie.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioPcieComplexData.c +File: opensil/xUSL/NBIO/IOD/NbioPcieComplexData.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioSmnTable.c +File: opensil/xUSL/NBIO/IOD/NbioSmnTable.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioSmnTables.c +File: opensil/xUSL/NBIO/IOD/NbioSmnTables.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioHidePcieCore.c +File: opensil/xUSL/NBIO/IOD/NbioHidePcieCore.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioTopMem.c +File: opensil/xUSL/NBIO/IOD/NbioTopMem.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/PkgTypeFixups.c +File: opensil/xUSL/NBIO/IOD/PkgTypeFixups.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/Nbio.c +File: opensil/xUSL/NBIO/Nbio.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/NbioPcieTopologyHelper.c +File: opensil/xUSL/NBIO/NbioPcieTopologyHelper.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RAS/Common/Ras.c +File: opensil/xUSL/RAS/Common/Ras.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RAS/Genoa/DfAddressTranslationLib.c +File: opensil/xUSL/RAS/Genoa/DfAddressTranslationLib.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RAS/Genoa/RasCmn2.c +File: opensil/xUSL/RAS/Genoa/RasCmn2.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RAS/Genoa/Ras.c +File: opensil/xUSL/RAS/Genoa/Ras.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RAS/Genoa/SocLib.c +File: opensil/xUSL/RAS/Genoa/SocLib.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/SMU/Common/SmuCommon.c +File: opensil/xUSL/SMU/Common/SmuCommon.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/SMU/V13/SmuV13.c +File: opensil/xUSL/SMU/V13/SmuV13.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/SMU/V13/SmuCmn2V13.c +File: opensil/xUSL/SMU/V13/SmuCmn2V13.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RcMgr/FabricRcInit.c +File: opensil/xUSL/RcMgr/FabricRcInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RcMgr/DfX/FabricRcInitBasedOnNv4.c +File: opensil/xUSL/RcMgr/DfX/FabricRcInitBasedOnNv4.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RcMgr/DfX/FabricRcInitDfX.c +File: opensil/xUSL/RcMgr/DfX/FabricRcInitDfX.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RcMgr/DfX/FabricResourceManager.c +File: opensil/xUSL/RcMgr/DfX/FabricResourceManager.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xPRF/xPRF.c +File: opensil/xPRF/xPRF.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xPRF/Mem/xPrfMem.c +File: opensil/xPRF/Mem/xPrfMem.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xPRF/RAS/xPrfRas.c +File: opensil/xPRF/RAS/xPrfRas.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xPRF/RAS/xPrfRasServices.c +File: opensil/xPRF/RAS/xPrfRasServices.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xPRF/CCX/xPrfCcx.c +File: opensil/xPRF/CCX/xPrfCcx.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xPRF/NBIO/xPrfNbio.c +File: opensil/xPRF/NBIO/xPrfNbio.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xSIM/SocList.c +File: opensil/xSIM/SocList.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xSIM/SocUtil.c +File: opensil/xSIM/SocUtil.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xSIM/xSIM.c +File: opensil/xSIM/xSIM.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xSIM/SoC/F19M10/IpBlkListF19M10Tp1.c +File: opensil/xSIM/SoC/F19M10/IpBlkListF19M10Tp1.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xSIM/SoC/F19M10/IpBlkListF19M10Tp2.c +File: opensil/xSIM/SoC/F19M10/IpBlkListF19M10Tp2.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xSIM/SoC/F19M10/IpBlkListF19M10Tp3.c +File: opensil/xSIM/SoC/F19M10/IpBlkListF19M10Tp3.c +Output file from ListFiles.py +number Args: 143 +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/AmdFeatures.c +File: opensil/xUSL/AmdFeatures.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Apob.c +File: opensil/xUSL/Apob.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/BaseSocLogicalIdXlat.c +File: opensil/xUSL/BaseSocLogicalIdXlat.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CoreTopologyService.c +File: opensil/xUSL/CoreTopologyService.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/SocLogicalId.c +File: opensil/xUSL/SocLogicalId.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/SilGbls.c +File: opensil/xUSL/SilGbls.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/CpuOps.c +File: opensil/xUSL/CommonLib/CpuOps.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/IPC.c +File: opensil/xUSL/CommonLib/IPC.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/MmioOps.c +File: opensil/xUSL/CommonLib/MmioOps.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/PciOps.c +File: opensil/xUSL/CommonLib/PciOps.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/Pstates.c +File: opensil/xUSL/CommonLib/Pstates.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/SilServices.c +File: opensil/xUSL/CommonLib/SilServices.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/SmnAccess.c +File: opensil/xUSL/CommonLib/SmnAccess.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/Utils.c +File: opensil/xUSL/CommonLib/Utils.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/xUslCcxRoles.c +File: opensil/xUSL/CommonLib/xUslCcxRoles.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/AmdTable.c +File: opensil/xUSL/CCX/Common/AmdTable.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/Ccx.c +File: opensil/xUSL/CCX/Common/Ccx.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxBrandString.c +File: opensil/xUSL/CCX/Common/CcxBrandString.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxC6.c +File: opensil/xUSL/CCX/Common/CcxC6.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxCacheInit.c +File: opensil/xUSL/CCX/Common/CcxCacheInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxDownCoreInit.c +File: opensil/xUSL/CCX/Common/CcxDownCoreInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxMicrocodePatch.c +File: opensil/xUSL/CCX/Common/CcxMicrocodePatch.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxMiscInit.c +File: opensil/xUSL/CCX/Common/CcxMiscInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxSetMca.c +File: opensil/xUSL/CCX/Common/CcxSetMca.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/SocServices.c +File: opensil/xUSL/CCX/Common/SocServices.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxApLaunch32.c +File: opensil/xUSL/CCX/Common/CcxApLaunch32.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Zen4/Zen4.c +File: opensil/xUSL/CCX/Zen4/Zen4.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Zen4/Zen4DownCoreInit.c +File: opensil/xUSL/CCX/Zen4/Zen4DownCoreInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Zen4/CcxCmn2Zen4.c +File: opensil/xUSL/CCX/Zen4/CcxCmn2Zen4.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Zen4/CcxResetTablesZen4.c +File: opensil/xUSL/CCX/Zen4/CcxResetTablesZen4.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/Df.c +File: opensil/xUSL/DF/Df.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfClassDflts.c +File: opensil/xUSL/DF/DfClassDflts.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/Common/BaseFabricTopologyCmn.c +File: opensil/xUSL/DF/Common/BaseFabricTopologyCmn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/Common/FabricRegisterAccCmn.c +File: opensil/xUSL/DF/Common/FabricRegisterAccCmn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/DfXBaseFabricTopology.c +File: opensil/xUSL/DF/DfX/DfXBaseFabricTopology.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/DfX.c +File: opensil/xUSL/DF/DfX/DfX.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/DfXFabricRegisterAcc.c +File: opensil/xUSL/DF/DfX/DfXFabricRegisterAcc.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/DfCmn2Rev4.c +File: opensil/xUSL/DF/DfX/DfCmn2Rev4.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/DfXFabricWdt.c +File: opensil/xUSL/DF/DfX/DfXFabricWdt.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/DfXBaseFabricTopology.c +File: opensil/xUSL/DF/DfX/DfXBaseFabricTopology.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/FabricDfClkGatingInit/FabricDfClkGatingInit.c +File: opensil/xUSL/DF/DfX/FabricDfClkGatingInit/FabricDfClkGatingInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/FabricPieRasInit/FabricPieRasInit.c +File: opensil/xUSL/DF/DfX/FabricPieRasInit/FabricPieRasInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/FabricAcpiDomain/FabricAcpiDomainInfo.c +File: opensil/xUSL/DF/DfX/FabricAcpiDomain/FabricAcpiDomainInfo.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/Fch.c +File: opensil/xUSL/FCH/Common/Fch.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCommon.c +File: opensil/xUSL/FCH/Common/FchCommon.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchHelper.c +File: opensil/xUSL/FCH/Common/FchHelper.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/LegacyInterrupt.c +File: opensil/xUSL/FCH/Common/LegacyInterrupt.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchEnvDef.c +File: opensil/xUSL/FCH/Common/FchCore/FchEnvDef.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchAb/FchAb.c +File: opensil/xUSL/FCH/Common/FchCore/FchAb/FchAb.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchAb/FchAlinkLib.c +File: opensil/xUSL/FCH/Common/FchCore/FchAb/FchAlinkLib.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchEmmc/FchEmmc.c +File: opensil/xUSL/FCH/Common/FchCore/FchEmmc/FchEmmc.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchEspi/FchEspi.c +File: opensil/xUSL/FCH/Common/FchCore/FchEspi/FchEspi.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchGpp/FchGpp.c +File: opensil/xUSL/FCH/Common/FchCore/FchGpp/FchGpp.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchHwAcpi/FchHwAcpi.c +File: opensil/xUSL/FCH/Common/FchCore/FchHwAcpi/FchHwAcpi.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchHwAcpi/IP/Fch80.c +File: opensil/xUSL/FCH/Common/FchCore/FchHwAcpi/IP/Fch80.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchSata/FchSata.c +File: opensil/xUSL/FCH/Common/FchCore/FchSata/FchSata.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchSpi/FchSpi.c +File: opensil/xUSL/FCH/Common/FchCore/FchSpi/FchSpi.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchXhci/FchXhci.c +File: opensil/xUSL/FCH/Common/FchCore/FchXhci/FchXhci.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchXhci/IP/UsbD10.c +File: opensil/xUSL/FCH/Common/FchCore/FchXhci/IP/UsbD10.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/MultiFch/MultiFchInit.c +File: opensil/xUSL/FCH/Common/MultiFch/MultiFchInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/9004/FchSn.c +File: opensil/xUSL/FCH/9004/FchSn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/9004/FchCore/FchSata/FchSataSn.c +File: opensil/xUSL/FCH/9004/FchCore/FchSata/FchSataSn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/9004/FchCore/FchSata/FchSataCmn2Sn.c +File: opensil/xUSL/FCH/9004/FchCore/FchSata/FchSataCmn2Sn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/9004/FchCore/FchHwAcpi/FchHwAcpiSn.c +File: opensil/xUSL/FCH/9004/FchCore/FchHwAcpi/FchHwAcpiSn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/9004/FchCore/FchXhci/FchXhciSn.c +File: opensil/xUSL/FCH/9004/FchCore/FchXhci/FchXhciSn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/9004/MultiFch/MultiFchCmn2Sn.c +File: opensil/xUSL/FCH/9004/MultiFch/MultiFchCmn2Sn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/9004/MultiFch/MultiFchSn.c +File: opensil/xUSL/FCH/9004/MultiFch/MultiFchSn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/MEM/Mem.c +File: opensil/xUSL/MEM/Mem.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioAncDataV1.c +File: opensil/xUSL/Mpio/Common/MpioAncDataV1.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioCfgPoints.c +File: opensil/xUSL/Mpio/Common/MpioCfgPoints.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioClassDflts.c +File: opensil/xUSL/Mpio/Common/MpioClassDflts.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioDebugOut.c +File: opensil/xUSL/Mpio/Common/MpioDebugOut.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioEarlyTrain.c +File: opensil/xUSL/Mpio/Common/MpioEarlyTrain.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioLib.c +File: opensil/xUSL/Mpio/Common/MpioLib.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioInit.c +File: opensil/xUSL/Mpio/Common/MpioInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioInitFlow.c +File: opensil/xUSL/Mpio/Common/MpioInitFlow.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioMappingResults.c +File: opensil/xUSL/Mpio/Common/MpioMappingResults.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioParser.c +File: opensil/xUSL/Mpio/Common/MpioParser.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioPcie.c +File: opensil/xUSL/Mpio/Common/MpioPcie.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioPortVisibility.c +File: opensil/xUSL/Mpio/Common/MpioPortVisibility.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioSupportFunctions.c +File: opensil/xUSL/Mpio/Common/MpioSupportFunctions.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioTopology.c +File: opensil/xUSL/Mpio/Common/MpioTopology.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioTrainingResults.c +File: opensil/xUSL/Mpio/Common/MpioTrainingResults.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioUbmTopology.c +File: opensil/xUSL/Mpio/Common/MpioUbmTopology.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Genoa/MpioCfgPoints.c +File: opensil/xUSL/Mpio/Genoa/MpioCfgPoints.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Genoa/MpioCmn2.c +File: opensil/xUSL/Mpio/Genoa/MpioCmn2.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Genoa/MpioPcie.c +File: opensil/xUSL/Mpio/Genoa/MpioPcie.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Genoa/MpioPortVisibility.c +File: opensil/xUSL/Mpio/Genoa/MpioPortVisibility.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Genoa/Mpio.c +File: opensil/xUSL/Mpio/Genoa/Mpio.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Genoa/MpioTopology.c +File: opensil/xUSL/Mpio/Genoa/MpioTopology.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Sdci/Common/SdciClassDflts.c +File: opensil/xUSL/Sdci/Common/SdciClassDflts.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Sdci/Common/Sdci.c +File: opensil/xUSL/Sdci/Common/Sdci.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Sdci/Genoa/SdciCmn2.c +File: opensil/xUSL/Sdci/Genoa/SdciCmn2.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Sdci/Genoa/Sdci.c +File: opensil/xUSL/Sdci/Genoa/Sdci.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Cxl/Common/CxlClassDflts.c +File: opensil/xUSL/Cxl/Common/CxlClassDflts.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Cxl/Common/CxlInit.c +File: opensil/xUSL/Cxl/Common/CxlInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Cxl/Genoa/CxlCmn2.c +File: opensil/xUSL/Cxl/Genoa/CxlCmn2.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Cxl/Genoa/Cxl.c +File: opensil/xUSL/Cxl/Genoa/Cxl.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioIod.c +File: opensil/xUSL/NBIO/IOD/NbioIod.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioBaseInitGenoa.c +File: opensil/xUSL/NBIO/IOD/NbioBaseInitGenoa.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioCommon.c +File: opensil/xUSL/NBIO/IOD/NbioCommon.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioData.c +File: opensil/xUSL/NBIO/IOD/NbioData.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioIoApic.c +File: opensil/xUSL/NBIO/IOD/NbioIoApic.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioIommu.c +File: opensil/xUSL/NBIO/IOD/NbioIommu.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioPcie.c +File: opensil/xUSL/NBIO/IOD/NbioPcie.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioPcieComplexData.c +File: opensil/xUSL/NBIO/IOD/NbioPcieComplexData.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioSmnTable.c +File: opensil/xUSL/NBIO/IOD/NbioSmnTable.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioSmnTables.c +File: opensil/xUSL/NBIO/IOD/NbioSmnTables.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioHidePcieCore.c +File: opensil/xUSL/NBIO/IOD/NbioHidePcieCore.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioTopMem.c +File: opensil/xUSL/NBIO/IOD/NbioTopMem.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/PkgTypeFixups.c +File: opensil/xUSL/NBIO/IOD/PkgTypeFixups.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/Nbio.c +File: opensil/xUSL/NBIO/Nbio.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/NbioPcieTopologyHelper.c +File: opensil/xUSL/NBIO/NbioPcieTopologyHelper.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RAS/Common/Ras.c +File: opensil/xUSL/RAS/Common/Ras.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RAS/Genoa/DfAddressTranslationLib.c +File: opensil/xUSL/RAS/Genoa/DfAddressTranslationLib.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RAS/Genoa/RasCmn2.c +File: opensil/xUSL/RAS/Genoa/RasCmn2.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RAS/Genoa/Ras.c +File: opensil/xUSL/RAS/Genoa/Ras.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RAS/Genoa/SocLib.c +File: opensil/xUSL/RAS/Genoa/SocLib.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/SMU/Common/SmuCommon.c +File: opensil/xUSL/SMU/Common/SmuCommon.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/SMU/V13/SmuV13.c +File: opensil/xUSL/SMU/V13/SmuV13.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/SMU/V13/SmuCmn2V13.c +File: opensil/xUSL/SMU/V13/SmuCmn2V13.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RcMgr/FabricRcInit.c +File: opensil/xUSL/RcMgr/FabricRcInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RcMgr/DfX/FabricRcInitBasedOnNv4.c +File: opensil/xUSL/RcMgr/DfX/FabricRcInitBasedOnNv4.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RcMgr/DfX/FabricRcInitDfX.c +File: opensil/xUSL/RcMgr/DfX/FabricRcInitDfX.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RcMgr/DfX/FabricResourceManager.c +File: opensil/xUSL/RcMgr/DfX/FabricResourceManager.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xPRF/xPRF.c +File: opensil/xPRF/xPRF.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xPRF/Mem/xPrfMem.c +File: opensil/xPRF/Mem/xPrfMem.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xPRF/RAS/xPrfRas.c +File: opensil/xPRF/RAS/xPrfRas.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xPRF/RAS/xPrfRasServices.c +File: opensil/xPRF/RAS/xPrfRasServices.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xPRF/CCX/xPrfCcx.c +File: opensil/xPRF/CCX/xPrfCcx.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xPRF/NBIO/xPrfNbio.c +File: opensil/xPRF/NBIO/xPrfNbio.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xSIM/SocList.c +File: opensil/xSIM/SocList.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xSIM/SocUtil.c +File: opensil/xSIM/SocUtil.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xSIM/xSIM.c +File: opensil/xSIM/xSIM.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xSIM/SoC/F19M10/IpBlkListF19M10Tp1.c +File: opensil/xSIM/SoC/F19M10/IpBlkListF19M10Tp1.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xSIM/SoC/F19M10/IpBlkListF19M10Tp2.c +File: opensil/xSIM/SoC/F19M10/IpBlkListF19M10Tp2.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xSIM/SoC/F19M10/IpBlkListF19M10Tp3.c +File: opensil/xSIM/SoC/F19M10/IpBlkListF19M10Tp3.c +Output file from ListFiles.py +number Args: 143 +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/AmdFeatures.c +File: opensil/xUSL/AmdFeatures.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Apob.c +File: opensil/xUSL/Apob.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/BaseSocLogicalIdXlat.c +File: opensil/xUSL/BaseSocLogicalIdXlat.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CoreTopologyService.c +File: opensil/xUSL/CoreTopologyService.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/SocLogicalId.c +File: opensil/xUSL/SocLogicalId.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/SilGbls.c +File: opensil/xUSL/SilGbls.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/CpuOps.c +File: opensil/xUSL/CommonLib/CpuOps.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/IPC.c +File: opensil/xUSL/CommonLib/IPC.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/MmioOps.c +File: opensil/xUSL/CommonLib/MmioOps.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/PciOps.c +File: opensil/xUSL/CommonLib/PciOps.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/Pstates.c +File: opensil/xUSL/CommonLib/Pstates.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/SilServices.c +File: opensil/xUSL/CommonLib/SilServices.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/SmnAccess.c +File: opensil/xUSL/CommonLib/SmnAccess.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/Utils.c +File: opensil/xUSL/CommonLib/Utils.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/xUslCcxRoles.c +File: opensil/xUSL/CommonLib/xUslCcxRoles.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/AmdTable.c +File: opensil/xUSL/CCX/Common/AmdTable.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/Ccx.c +File: opensil/xUSL/CCX/Common/Ccx.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxBrandString.c +File: opensil/xUSL/CCX/Common/CcxBrandString.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxC6.c +File: opensil/xUSL/CCX/Common/CcxC6.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxCacheInit.c +File: opensil/xUSL/CCX/Common/CcxCacheInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxDownCoreInit.c +File: opensil/xUSL/CCX/Common/CcxDownCoreInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxMicrocodePatch.c +File: opensil/xUSL/CCX/Common/CcxMicrocodePatch.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxMiscInit.c +File: opensil/xUSL/CCX/Common/CcxMiscInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxSetMca.c +File: opensil/xUSL/CCX/Common/CcxSetMca.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/SocServices.c +File: opensil/xUSL/CCX/Common/SocServices.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxApLaunch32.c +File: opensil/xUSL/CCX/Common/CcxApLaunch32.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Zen4/Zen4.c +File: opensil/xUSL/CCX/Zen4/Zen4.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Zen4/Zen4DownCoreInit.c +File: opensil/xUSL/CCX/Zen4/Zen4DownCoreInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Zen4/CcxCmn2Zen4.c +File: opensil/xUSL/CCX/Zen4/CcxCmn2Zen4.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Zen4/CcxResetTablesZen4.c +File: opensil/xUSL/CCX/Zen4/CcxResetTablesZen4.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/Df.c +File: opensil/xUSL/DF/Df.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfClassDflts.c +File: opensil/xUSL/DF/DfClassDflts.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/Common/BaseFabricTopologyCmn.c +File: opensil/xUSL/DF/Common/BaseFabricTopologyCmn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/Common/FabricRegisterAccCmn.c +File: opensil/xUSL/DF/Common/FabricRegisterAccCmn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/DfXBaseFabricTopology.c +File: opensil/xUSL/DF/DfX/DfXBaseFabricTopology.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/DfX.c +File: opensil/xUSL/DF/DfX/DfX.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/DfXFabricRegisterAcc.c +File: opensil/xUSL/DF/DfX/DfXFabricRegisterAcc.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/DfCmn2Rev4.c +File: opensil/xUSL/DF/DfX/DfCmn2Rev4.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/DfXFabricWdt.c +File: opensil/xUSL/DF/DfX/DfXFabricWdt.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/DfXBaseFabricTopology.c +File: opensil/xUSL/DF/DfX/DfXBaseFabricTopology.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/FabricDfClkGatingInit/FabricDfClkGatingInit.c +File: opensil/xUSL/DF/DfX/FabricDfClkGatingInit/FabricDfClkGatingInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/FabricPieRasInit/FabricPieRasInit.c +File: opensil/xUSL/DF/DfX/FabricPieRasInit/FabricPieRasInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/FabricAcpiDomain/FabricAcpiDomainInfo.c +File: opensil/xUSL/DF/DfX/FabricAcpiDomain/FabricAcpiDomainInfo.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/Fch.c +File: opensil/xUSL/FCH/Common/Fch.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCommon.c +File: opensil/xUSL/FCH/Common/FchCommon.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchHelper.c +File: opensil/xUSL/FCH/Common/FchHelper.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/LegacyInterrupt.c +File: opensil/xUSL/FCH/Common/LegacyInterrupt.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchEnvDef.c +File: opensil/xUSL/FCH/Common/FchCore/FchEnvDef.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchAb/FchAb.c +File: opensil/xUSL/FCH/Common/FchCore/FchAb/FchAb.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchAb/FchAlinkLib.c +File: opensil/xUSL/FCH/Common/FchCore/FchAb/FchAlinkLib.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchEmmc/FchEmmc.c +File: opensil/xUSL/FCH/Common/FchCore/FchEmmc/FchEmmc.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchEspi/FchEspi.c +File: opensil/xUSL/FCH/Common/FchCore/FchEspi/FchEspi.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchGpp/FchGpp.c +File: opensil/xUSL/FCH/Common/FchCore/FchGpp/FchGpp.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchHwAcpi/FchHwAcpi.c +File: opensil/xUSL/FCH/Common/FchCore/FchHwAcpi/FchHwAcpi.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchHwAcpi/IP/Fch80.c +File: opensil/xUSL/FCH/Common/FchCore/FchHwAcpi/IP/Fch80.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchSata/FchSata.c +File: opensil/xUSL/FCH/Common/FchCore/FchSata/FchSata.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchSpi/FchSpi.c +File: opensil/xUSL/FCH/Common/FchCore/FchSpi/FchSpi.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchXhci/FchXhci.c +File: opensil/xUSL/FCH/Common/FchCore/FchXhci/FchXhci.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchXhci/IP/UsbD10.c +File: opensil/xUSL/FCH/Common/FchCore/FchXhci/IP/UsbD10.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/MultiFch/MultiFchInit.c +File: opensil/xUSL/FCH/Common/MultiFch/MultiFchInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/9004/FchSn.c +File: opensil/xUSL/FCH/9004/FchSn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/9004/FchCore/FchSata/FchSataSn.c +File: opensil/xUSL/FCH/9004/FchCore/FchSata/FchSataSn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/9004/FchCore/FchSata/FchSataCmn2Sn.c +File: opensil/xUSL/FCH/9004/FchCore/FchSata/FchSataCmn2Sn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/9004/FchCore/FchHwAcpi/FchHwAcpiSn.c +File: opensil/xUSL/FCH/9004/FchCore/FchHwAcpi/FchHwAcpiSn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/9004/FchCore/FchXhci/FchXhciSn.c +File: opensil/xUSL/FCH/9004/FchCore/FchXhci/FchXhciSn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/9004/MultiFch/MultiFchCmn2Sn.c +File: opensil/xUSL/FCH/9004/MultiFch/MultiFchCmn2Sn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/9004/MultiFch/MultiFchSn.c +File: opensil/xUSL/FCH/9004/MultiFch/MultiFchSn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/MEM/Mem.c +File: opensil/xUSL/MEM/Mem.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioAncDataV1.c +File: opensil/xUSL/Mpio/Common/MpioAncDataV1.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioCfgPoints.c +File: opensil/xUSL/Mpio/Common/MpioCfgPoints.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioClassDflts.c +File: opensil/xUSL/Mpio/Common/MpioClassDflts.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioDebugOut.c +File: opensil/xUSL/Mpio/Common/MpioDebugOut.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioEarlyTrain.c +File: opensil/xUSL/Mpio/Common/MpioEarlyTrain.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioLib.c +File: opensil/xUSL/Mpio/Common/MpioLib.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioInit.c +File: opensil/xUSL/Mpio/Common/MpioInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioInitFlow.c +File: opensil/xUSL/Mpio/Common/MpioInitFlow.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioMappingResults.c +File: opensil/xUSL/Mpio/Common/MpioMappingResults.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioParser.c +File: opensil/xUSL/Mpio/Common/MpioParser.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioPcie.c +File: opensil/xUSL/Mpio/Common/MpioPcie.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioPortVisibility.c +File: opensil/xUSL/Mpio/Common/MpioPortVisibility.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioSupportFunctions.c +File: opensil/xUSL/Mpio/Common/MpioSupportFunctions.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioTopology.c +File: opensil/xUSL/Mpio/Common/MpioTopology.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioTrainingResults.c +File: opensil/xUSL/Mpio/Common/MpioTrainingResults.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioUbmTopology.c +File: opensil/xUSL/Mpio/Common/MpioUbmTopology.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Genoa/MpioCfgPoints.c +File: opensil/xUSL/Mpio/Genoa/MpioCfgPoints.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Genoa/MpioCmn2.c +File: opensil/xUSL/Mpio/Genoa/MpioCmn2.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Genoa/MpioPcie.c +File: opensil/xUSL/Mpio/Genoa/MpioPcie.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Genoa/MpioPortVisibility.c +File: opensil/xUSL/Mpio/Genoa/MpioPortVisibility.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Genoa/Mpio.c +File: opensil/xUSL/Mpio/Genoa/Mpio.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Genoa/MpioTopology.c +File: opensil/xUSL/Mpio/Genoa/MpioTopology.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Sdci/Common/SdciClassDflts.c +File: opensil/xUSL/Sdci/Common/SdciClassDflts.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Sdci/Common/Sdci.c +File: opensil/xUSL/Sdci/Common/Sdci.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Sdci/Genoa/SdciCmn2.c +File: opensil/xUSL/Sdci/Genoa/SdciCmn2.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Sdci/Genoa/Sdci.c +File: opensil/xUSL/Sdci/Genoa/Sdci.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Cxl/Common/CxlClassDflts.c +File: opensil/xUSL/Cxl/Common/CxlClassDflts.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Cxl/Common/CxlInit.c +File: opensil/xUSL/Cxl/Common/CxlInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Cxl/Genoa/CxlCmn2.c +File: opensil/xUSL/Cxl/Genoa/CxlCmn2.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Cxl/Genoa/Cxl.c +File: opensil/xUSL/Cxl/Genoa/Cxl.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioIod.c +File: opensil/xUSL/NBIO/IOD/NbioIod.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioBaseInitGenoa.c +File: opensil/xUSL/NBIO/IOD/NbioBaseInitGenoa.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioCommon.c +File: opensil/xUSL/NBIO/IOD/NbioCommon.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioData.c +File: opensil/xUSL/NBIO/IOD/NbioData.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioIoApic.c +File: opensil/xUSL/NBIO/IOD/NbioIoApic.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioIommu.c +File: opensil/xUSL/NBIO/IOD/NbioIommu.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioPcie.c +File: opensil/xUSL/NBIO/IOD/NbioPcie.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioPcieComplexData.c +File: opensil/xUSL/NBIO/IOD/NbioPcieComplexData.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioSmnTable.c +File: opensil/xUSL/NBIO/IOD/NbioSmnTable.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioSmnTables.c +File: opensil/xUSL/NBIO/IOD/NbioSmnTables.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioHidePcieCore.c +File: opensil/xUSL/NBIO/IOD/NbioHidePcieCore.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioTopMem.c +File: opensil/xUSL/NBIO/IOD/NbioTopMem.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/PkgTypeFixups.c +File: opensil/xUSL/NBIO/IOD/PkgTypeFixups.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/Nbio.c +File: opensil/xUSL/NBIO/Nbio.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/NbioPcieTopologyHelper.c +File: opensil/xUSL/NBIO/NbioPcieTopologyHelper.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RAS/Common/Ras.c +File: opensil/xUSL/RAS/Common/Ras.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RAS/Genoa/DfAddressTranslationLib.c +File: opensil/xUSL/RAS/Genoa/DfAddressTranslationLib.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RAS/Genoa/RasCmn2.c +File: opensil/xUSL/RAS/Genoa/RasCmn2.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RAS/Genoa/Ras.c +File: opensil/xUSL/RAS/Genoa/Ras.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RAS/Genoa/SocLib.c +File: opensil/xUSL/RAS/Genoa/SocLib.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/SMU/Common/SmuCommon.c +File: opensil/xUSL/SMU/Common/SmuCommon.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/SMU/V13/SmuV13.c +File: opensil/xUSL/SMU/V13/SmuV13.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/SMU/V13/SmuCmn2V13.c +File: opensil/xUSL/SMU/V13/SmuCmn2V13.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RcMgr/FabricRcInit.c +File: opensil/xUSL/RcMgr/FabricRcInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RcMgr/DfX/FabricRcInitBasedOnNv4.c +File: opensil/xUSL/RcMgr/DfX/FabricRcInitBasedOnNv4.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RcMgr/DfX/FabricRcInitDfX.c +File: opensil/xUSL/RcMgr/DfX/FabricRcInitDfX.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RcMgr/DfX/FabricResourceManager.c +File: opensil/xUSL/RcMgr/DfX/FabricResourceManager.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xPRF/xPRF.c +File: opensil/xPRF/xPRF.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xPRF/Mem/xPrfMem.c +File: opensil/xPRF/Mem/xPrfMem.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xPRF/RAS/xPrfRas.c +File: opensil/xPRF/RAS/xPrfRas.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xPRF/RAS/xPrfRasServices.c +File: opensil/xPRF/RAS/xPrfRasServices.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xPRF/CCX/xPrfCcx.c +File: opensil/xPRF/CCX/xPrfCcx.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xPRF/NBIO/xPrfNbio.c +File: opensil/xPRF/NBIO/xPrfNbio.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xSIM/SocList.c +File: opensil/xSIM/SocList.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xSIM/SocUtil.c +File: opensil/xSIM/SocUtil.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xSIM/xSIM.c +File: opensil/xSIM/xSIM.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xSIM/SoC/F19M10/IpBlkListF19M10Tp1.c +File: opensil/xSIM/SoC/F19M10/IpBlkListF19M10Tp1.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xSIM/SoC/F19M10/IpBlkListF19M10Tp2.c +File: opensil/xSIM/SoC/F19M10/IpBlkListF19M10Tp2.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xSIM/SoC/F19M10/IpBlkListF19M10Tp3.c +File: opensil/xSIM/SoC/F19M10/IpBlkListF19M10Tp3.c +Output file from ListFiles.py +number Args: 143 +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/AmdFeatures.c +File: opensil/xUSL/AmdFeatures.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Apob.c +File: opensil/xUSL/Apob.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/BaseSocLogicalIdXlat.c +File: opensil/xUSL/BaseSocLogicalIdXlat.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CoreTopologyService.c +File: opensil/xUSL/CoreTopologyService.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/SocLogicalId.c +File: opensil/xUSL/SocLogicalId.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/SilGbls.c +File: opensil/xUSL/SilGbls.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/CpuOps.c +File: opensil/xUSL/CommonLib/CpuOps.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/IPC.c +File: opensil/xUSL/CommonLib/IPC.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/MmioOps.c +File: opensil/xUSL/CommonLib/MmioOps.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/PciOps.c +File: opensil/xUSL/CommonLib/PciOps.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/Pstates.c +File: opensil/xUSL/CommonLib/Pstates.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/SilServices.c +File: opensil/xUSL/CommonLib/SilServices.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/SmnAccess.c +File: opensil/xUSL/CommonLib/SmnAccess.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/Utils.c +File: opensil/xUSL/CommonLib/Utils.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CommonLib/xUslCcxRoles.c +File: opensil/xUSL/CommonLib/xUslCcxRoles.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/AmdTable.c +File: opensil/xUSL/CCX/Common/AmdTable.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/Ccx.c +File: opensil/xUSL/CCX/Common/Ccx.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxBrandString.c +File: opensil/xUSL/CCX/Common/CcxBrandString.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxC6.c +File: opensil/xUSL/CCX/Common/CcxC6.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxCacheInit.c +File: opensil/xUSL/CCX/Common/CcxCacheInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxDownCoreInit.c +File: opensil/xUSL/CCX/Common/CcxDownCoreInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxMicrocodePatch.c +File: opensil/xUSL/CCX/Common/CcxMicrocodePatch.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxMiscInit.c +File: opensil/xUSL/CCX/Common/CcxMiscInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxSetMca.c +File: opensil/xUSL/CCX/Common/CcxSetMca.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/SocServices.c +File: opensil/xUSL/CCX/Common/SocServices.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Common/CcxApLaunch32.c +File: opensil/xUSL/CCX/Common/CcxApLaunch32.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Zen4/Zen4.c +File: opensil/xUSL/CCX/Zen4/Zen4.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Zen4/Zen4DownCoreInit.c +File: opensil/xUSL/CCX/Zen4/Zen4DownCoreInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Zen4/CcxCmn2Zen4.c +File: opensil/xUSL/CCX/Zen4/CcxCmn2Zen4.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/CCX/Zen4/CcxResetTablesZen4.c +File: opensil/xUSL/CCX/Zen4/CcxResetTablesZen4.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/Df.c +File: opensil/xUSL/DF/Df.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfClassDflts.c +File: opensil/xUSL/DF/DfClassDflts.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/Common/BaseFabricTopologyCmn.c +File: opensil/xUSL/DF/Common/BaseFabricTopologyCmn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/Common/FabricRegisterAccCmn.c +File: opensil/xUSL/DF/Common/FabricRegisterAccCmn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/DfXBaseFabricTopology.c +File: opensil/xUSL/DF/DfX/DfXBaseFabricTopology.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/DfX.c +File: opensil/xUSL/DF/DfX/DfX.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/DfXFabricRegisterAcc.c +File: opensil/xUSL/DF/DfX/DfXFabricRegisterAcc.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/DfCmn2Rev4.c +File: opensil/xUSL/DF/DfX/DfCmn2Rev4.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/DfXFabricWdt.c +File: opensil/xUSL/DF/DfX/DfXFabricWdt.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/DfXBaseFabricTopology.c +File: opensil/xUSL/DF/DfX/DfXBaseFabricTopology.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/FabricDfClkGatingInit/FabricDfClkGatingInit.c +File: opensil/xUSL/DF/DfX/FabricDfClkGatingInit/FabricDfClkGatingInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/FabricPieRasInit/FabricPieRasInit.c +File: opensil/xUSL/DF/DfX/FabricPieRasInit/FabricPieRasInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/DF/DfX/FabricAcpiDomain/FabricAcpiDomainInfo.c +File: opensil/xUSL/DF/DfX/FabricAcpiDomain/FabricAcpiDomainInfo.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/Fch.c +File: opensil/xUSL/FCH/Common/Fch.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCommon.c +File: opensil/xUSL/FCH/Common/FchCommon.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchHelper.c +File: opensil/xUSL/FCH/Common/FchHelper.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/LegacyInterrupt.c +File: opensil/xUSL/FCH/Common/LegacyInterrupt.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchEnvDef.c +File: opensil/xUSL/FCH/Common/FchCore/FchEnvDef.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchAb/FchAb.c +File: opensil/xUSL/FCH/Common/FchCore/FchAb/FchAb.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchAb/FchAlinkLib.c +File: opensil/xUSL/FCH/Common/FchCore/FchAb/FchAlinkLib.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchEmmc/FchEmmc.c +File: opensil/xUSL/FCH/Common/FchCore/FchEmmc/FchEmmc.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchEspi/FchEspi.c +File: opensil/xUSL/FCH/Common/FchCore/FchEspi/FchEspi.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchGpp/FchGpp.c +File: opensil/xUSL/FCH/Common/FchCore/FchGpp/FchGpp.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchHwAcpi/FchHwAcpi.c +File: opensil/xUSL/FCH/Common/FchCore/FchHwAcpi/FchHwAcpi.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchHwAcpi/IP/Fch80.c +File: opensil/xUSL/FCH/Common/FchCore/FchHwAcpi/IP/Fch80.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchSata/FchSata.c +File: opensil/xUSL/FCH/Common/FchCore/FchSata/FchSata.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchSpi/FchSpi.c +File: opensil/xUSL/FCH/Common/FchCore/FchSpi/FchSpi.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchXhci/FchXhci.c +File: opensil/xUSL/FCH/Common/FchCore/FchXhci/FchXhci.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/FchCore/FchXhci/IP/UsbD10.c +File: opensil/xUSL/FCH/Common/FchCore/FchXhci/IP/UsbD10.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/Common/MultiFch/MultiFchInit.c +File: opensil/xUSL/FCH/Common/MultiFch/MultiFchInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/9004/FchSn.c +File: opensil/xUSL/FCH/9004/FchSn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/9004/FchCore/FchSata/FchSataSn.c +File: opensil/xUSL/FCH/9004/FchCore/FchSata/FchSataSn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/9004/FchCore/FchSata/FchSataCmn2Sn.c +File: opensil/xUSL/FCH/9004/FchCore/FchSata/FchSataCmn2Sn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/9004/FchCore/FchHwAcpi/FchHwAcpiSn.c +File: opensil/xUSL/FCH/9004/FchCore/FchHwAcpi/FchHwAcpiSn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/9004/FchCore/FchXhci/FchXhciSn.c +File: opensil/xUSL/FCH/9004/FchCore/FchXhci/FchXhciSn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/9004/MultiFch/MultiFchCmn2Sn.c +File: opensil/xUSL/FCH/9004/MultiFch/MultiFchCmn2Sn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/FCH/9004/MultiFch/MultiFchSn.c +File: opensil/xUSL/FCH/9004/MultiFch/MultiFchSn.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/MEM/Mem.c +File: opensil/xUSL/MEM/Mem.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioAncDataV1.c +File: opensil/xUSL/Mpio/Common/MpioAncDataV1.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioCfgPoints.c +File: opensil/xUSL/Mpio/Common/MpioCfgPoints.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioClassDflts.c +File: opensil/xUSL/Mpio/Common/MpioClassDflts.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioDebugOut.c +File: opensil/xUSL/Mpio/Common/MpioDebugOut.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioEarlyTrain.c +File: opensil/xUSL/Mpio/Common/MpioEarlyTrain.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioLib.c +File: opensil/xUSL/Mpio/Common/MpioLib.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioInit.c +File: opensil/xUSL/Mpio/Common/MpioInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioInitFlow.c +File: opensil/xUSL/Mpio/Common/MpioInitFlow.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioMappingResults.c +File: opensil/xUSL/Mpio/Common/MpioMappingResults.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioParser.c +File: opensil/xUSL/Mpio/Common/MpioParser.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioPcie.c +File: opensil/xUSL/Mpio/Common/MpioPcie.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioPortVisibility.c +File: opensil/xUSL/Mpio/Common/MpioPortVisibility.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioSupportFunctions.c +File: opensil/xUSL/Mpio/Common/MpioSupportFunctions.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioTopology.c +File: opensil/xUSL/Mpio/Common/MpioTopology.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioTrainingResults.c +File: opensil/xUSL/Mpio/Common/MpioTrainingResults.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Common/MpioUbmTopology.c +File: opensil/xUSL/Mpio/Common/MpioUbmTopology.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Genoa/MpioCfgPoints.c +File: opensil/xUSL/Mpio/Genoa/MpioCfgPoints.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Genoa/MpioCmn2.c +File: opensil/xUSL/Mpio/Genoa/MpioCmn2.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Genoa/MpioPcie.c +File: opensil/xUSL/Mpio/Genoa/MpioPcie.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Genoa/MpioPortVisibility.c +File: opensil/xUSL/Mpio/Genoa/MpioPortVisibility.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Genoa/Mpio.c +File: opensil/xUSL/Mpio/Genoa/Mpio.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Mpio/Genoa/MpioTopology.c +File: opensil/xUSL/Mpio/Genoa/MpioTopology.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Sdci/Common/SdciClassDflts.c +File: opensil/xUSL/Sdci/Common/SdciClassDflts.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Sdci/Common/Sdci.c +File: opensil/xUSL/Sdci/Common/Sdci.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Sdci/Genoa/SdciCmn2.c +File: opensil/xUSL/Sdci/Genoa/SdciCmn2.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Sdci/Genoa/Sdci.c +File: opensil/xUSL/Sdci/Genoa/Sdci.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Cxl/Common/CxlClassDflts.c +File: opensil/xUSL/Cxl/Common/CxlClassDflts.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Cxl/Common/CxlInit.c +File: opensil/xUSL/Cxl/Common/CxlInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Cxl/Genoa/CxlCmn2.c +File: opensil/xUSL/Cxl/Genoa/CxlCmn2.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/Cxl/Genoa/Cxl.c +File: opensil/xUSL/Cxl/Genoa/Cxl.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioIod.c +File: opensil/xUSL/NBIO/IOD/NbioIod.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioBaseInitGenoa.c +File: opensil/xUSL/NBIO/IOD/NbioBaseInitGenoa.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioCommon.c +File: opensil/xUSL/NBIO/IOD/NbioCommon.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioData.c +File: opensil/xUSL/NBIO/IOD/NbioData.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioIoApic.c +File: opensil/xUSL/NBIO/IOD/NbioIoApic.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioIommu.c +File: opensil/xUSL/NBIO/IOD/NbioIommu.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioPcie.c +File: opensil/xUSL/NBIO/IOD/NbioPcie.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioPcieComplexData.c +File: opensil/xUSL/NBIO/IOD/NbioPcieComplexData.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioSmnTable.c +File: opensil/xUSL/NBIO/IOD/NbioSmnTable.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioSmnTables.c +File: opensil/xUSL/NBIO/IOD/NbioSmnTables.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioHidePcieCore.c +File: opensil/xUSL/NBIO/IOD/NbioHidePcieCore.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/NbioTopMem.c +File: opensil/xUSL/NBIO/IOD/NbioTopMem.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/IOD/PkgTypeFixups.c +File: opensil/xUSL/NBIO/IOD/PkgTypeFixups.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/Nbio.c +File: opensil/xUSL/NBIO/Nbio.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/NBIO/NbioPcieTopologyHelper.c +File: opensil/xUSL/NBIO/NbioPcieTopologyHelper.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RAS/Common/Ras.c +File: opensil/xUSL/RAS/Common/Ras.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RAS/Genoa/DfAddressTranslationLib.c +File: opensil/xUSL/RAS/Genoa/DfAddressTranslationLib.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RAS/Genoa/RasCmn2.c +File: opensil/xUSL/RAS/Genoa/RasCmn2.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RAS/Genoa/Ras.c +File: opensil/xUSL/RAS/Genoa/Ras.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RAS/Genoa/SocLib.c +File: opensil/xUSL/RAS/Genoa/SocLib.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/SMU/Common/SmuCommon.c +File: opensil/xUSL/SMU/Common/SmuCommon.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/SMU/V13/SmuV13.c +File: opensil/xUSL/SMU/V13/SmuV13.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/SMU/V13/SmuCmn2V13.c +File: opensil/xUSL/SMU/V13/SmuCmn2V13.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RcMgr/FabricRcInit.c +File: opensil/xUSL/RcMgr/FabricRcInit.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RcMgr/DfX/FabricRcInitBasedOnNv4.c +File: opensil/xUSL/RcMgr/DfX/FabricRcInitBasedOnNv4.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RcMgr/DfX/FabricRcInitDfX.c +File: opensil/xUSL/RcMgr/DfX/FabricRcInitDfX.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xUSL/RcMgr/DfX/FabricResourceManager.c +File: opensil/xUSL/RcMgr/DfX/FabricResourceManager.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xPRF/xPRF.c +File: opensil/xPRF/xPRF.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xPRF/Mem/xPrfMem.c +File: opensil/xPRF/Mem/xPrfMem.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xPRF/RAS/xPrfRas.c +File: opensil/xPRF/RAS/xPrfRas.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xPRF/RAS/xPrfRasServices.c +File: opensil/xPRF/RAS/xPrfRasServices.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xPRF/CCX/xPrfCcx.c +File: opensil/xPRF/CCX/xPrfCcx.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xPRF/NBIO/xPrfNbio.c +File: opensil/xPRF/NBIO/xPrfNbio.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xSIM/SocList.c +File: opensil/xSIM/SocList.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xSIM/SocUtil.c +File: opensil/xSIM/SocUtil.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xSIM/xSIM.c +File: opensil/xSIM/xSIM.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xSIM/SoC/F19M10/IpBlkListF19M10Tp1.c +File: opensil/xSIM/SoC/F19M10/IpBlkListF19M10Tp1.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xSIM/SoC/F19M10/IpBlkListF19M10Tp2.c +File: opensil/xSIM/SoC/F19M10/IpBlkListF19M10Tp2.c +parm: /home/nabla/workspace/coreboot-amd/3rdparty/opensil/xSIM/SoC/F19M10/IpBlkListF19M10Tp3.c +File: opensil/xSIM/SoC/F19M10/IpBlkListF19M10Tp3.c diff --git a/json.sh b/json.sh new file mode 100644 index 0000000..d37a9c0 --- /dev/null +++ b/json.sh @@ -0,0 +1,30 @@ +#!/bin/bash +# This is script that parses input from http report feed variables into json formatted string +# It is used to populate file that Github actions read and populate review board screen +# for in line review of automated CI + +arr=(); +while read x y; +do + arr=("${arr[@]}" $x $y) +done +vars=(${arr[@]}) +len=${#arr[@]} +printf "{" +for (( i=0; i meson setup build_32 --cross-file x86-i386-linux-gnu -Dunit_test=true +# > meson setup build_w32 --cross-file x86-i386-msvc -Dunit_test=true +# +# During the CI tests, the Meson build is run 4 times, once in each Env; +# therefore the meson.build file below only needs to focus on the current +# build and not all four. +# +# Output will be found in the build dir set by the SETUP command, and each +# has its own build dir (meaning they can co-exist in the tree). +# +# The user can initiate a local build after the setup has completed by using: +# > meson compile -C build_w32 +# specifying the build dir and optional target name(s) appended. +# +# Current targets are: +# AMDopensil32, AMDopensil64, +# AMD_xsim, AMD_xusl, AMD_xprf, +# pseudo_host +# + +project('opensil', 'c', + version : '0.5', + default_options : ['warning_level=3']) + +message('openSIL:meson.build v0.3.01') + +#---------------------------------------------------------- +# Import the Kconfig platform settings +#---------------------------------------------------------- +# +# load the keyval module +PlatformConfig = import('keyval') + +# Import the platform's Kconfig settings +# Note: The Platform Configuration filename is without extension +# (e.g. the makefile output version from Kconfig) +PLATFORM_KCFG_FILE = get_option('PlatKcfg') +PLATFORM_KCFG_DIR = get_option('PlatKcfgDir') +message('Using Platform Configuration file: ', PLATFORM_KCFG_FILE) +PlatCfgList = PlatformConfig.load(join_paths(PLATFORM_KCFG_DIR, PLATFORM_KCFG_FILE)) +conf = configuration_data(PlatCfgList) + +# Place config data_set values for the meson options +conf.set('PlatFormKcfg', PLATFORM_KCFG_FILE) +conf.set('IS_COVERITY_BUILD', get_option('coverity')) ## for use in code files +COVERITY_BUILD = get_option('coverity') ## for local use in Meson + +config_h = configure_file( + input: ('configs' / 'SilCfg.Template'), + output: 'config.h', ## This file goes into the build_dir + configuration: conf) + + +#---------------------------------------------------------- +# Retrieve program options and set the build conditions +# from the cross-file, use get_external_property() +# from the meson.options.txt file, use get_option() +# from the Kconfig, use conf.get() +#---------------------------------------------------------- +# +BUILD_IS_32BIT = meson.get_external_property('is32bit', false, native: false) + +OBJSZ = (BUILD_IS_32BIT ? '32' : '64') # string used to form names + +IS_COVERITY_BUILD = get_option('coverity') + +UNIT_TEST = get_option('unit_test') # sepecified on the meson build + # comand line ("-Dunit_test=true") + # Enables target(s) for CI testing. + +#---------------------------------------------------------- +# Set up the tool chain and Compiler options +#---------------------------------------------------------- +# +# Determine the compiler in use ( gcc or msvc ) +CC_IS_GCC = meson.get_compiler('c').get_id() == 'gcc' +CC_IS_CLANG = meson.get_compiler('c').get_id() == 'clang' + +cflags = [] + +# Set compiler options based on the environment +if CC_IS_GCC or CC_IS_CLANG + compiler_name = CC_IS_GCC ? 'GCC' : 'CLANG' + message('compiler found to be : ' + compiler_name) + # Using the linker option --gc-sections unused data and functions will be stripped. + cflags += ['-ffunction-sections', '-fdata-sections'] + + # Enable all warnings and ignore some warnings + cflags += ['-Wall', '-Werror', + '-Wno-pedantic', '-Wno-unknown-pragmas', + '-Wno-unused-parameter', + '-Wno-missing-field-initializers'] + # Add some warnings + cflags += ['-Wstrict-prototypes', '-Wmissing-prototypes'] + + # force config.h to be included in all C file compilations + cflags += ['-include', 'config.h'] + + # set obj format for nasm outputs + objfmt = '-f elf' + OBJSZ + linkargs = ['-no-pie', '-Wl,--gc-sections'] + +else # presume MSVC + message('compiler found to be : MVSC') + cflags += '/wd4214' # non-INT bitfield warning + cflags += '/wd4127' # expression is constant warning + + # set obj format for nasm outputs + objfmt = '-f win' + OBJSZ + + # force config.h to be included in all C file compilations + cflags += ['/FI', 'config.h'] + linkargs = '' + +endif + +if CC_IS_GCC + cflags += '-Wold-style-declaration' +endif +if CC_IS_CLANG + cflags += '-Wno-self-assign' +endif + +add_global_arguments(cflags, language : 'c') + +nasm = find_program('nasm') +NasmInc = ('xUSL' / 'Include') +asm_gen = generator(nasm, + output : '@BASENAME@.o', + arguments : [ '-s', '-I.', + '-I', '@SOURCE_DIR@' / NasmInc, + objfmt, + '@INPUT@', '-o', '@OUTPUT@', + '-l', '@BASENAME@.lst', + '-Z', '@BASENAME@.err' ]) + +# +#---------------------------------------------------------- +# Invoke the build files down the tree +#---------------------------------------------------------- +# These files will populate the file lists, and +# the xSim, xPrf and xUsl control files will build +# those individual libraries +# +# Variables defined here and used down the tree are: +# BUILD_IS_32BIT, +# cpp, asm_gen, +# xusl, xsim, xprf, incdir +# +incdir = [include_directories('.')] +incdir += include_directories( 'Include', PLATFORM_KCFG_DIR ) +#note: The build_dir is automatically included in the build + +# Include the top library level for the internal API elements +# Alternative would be to move the Sil Fcns (e.g. GetIpApi) to \Sil.h +incdir += include_directories( 'xSIM' ) + +xsim = [] +xprf = [] +xusl = [] +subdir('xUSL') +subdir('xSIM') +subdir('xPRF') + +# +#---------------------------------------------------------- +# Send a list of included source files to a log file +#---------------------------------------------------------- +# +print_list = find_program('util' / 'ListFiles.py') +run_command( print_list, PLATFORM_KCFG_FILE, [xusl, xprf, xsim] ) + + +#---------------------------------------------------------- +# Combine the output libs into a single library +#---------------------------------------------------------- +# +opensil_library = static_library( + ('AMDopensil'+OBJSZ), + link_whole: [xsim_library, xusl_library, xprf_library], + install : true, + include_directories : incdir +) + +if not IS_COVERITY_BUILD + # Standard build for a project, follow the file selections in the tree + #---------------------------------------------------------- + # Unit Tests + #---------------------------------------------------------- + # + # If CI flags for doing unit tests, build executables and define tests + # + if UNIT_TEST + + pseudoHost = executable( + 'pseudo_host', + join_paths(meson.source_root(), 'util', 'unitTests', 'linktest.c'), + link_with : opensil_library, + install : true, + include_directories : incdir, + link_args : linkargs + ) + + endif + #else +endif diff --git a/meson_options.txt b/meson_options.txt new file mode 100644 index 0000000..1ef582d --- /dev/null +++ b/meson_options.txt @@ -0,0 +1,4 @@ +option('coverity', type: 'boolean', value: 'false', description: 'Whether or not to do a coverity build') +option('unit_test', type: 'boolean', value: 'false', description: 'CI should use this to enable/build the unit test executables.') +option('PlatKcfgDir', type: 'string', value: 'configs', description: 'Dir of the platform specific Kconfig file.') + diff --git a/util/.gitattributes b/util/.gitattributes new file mode 100644 index 0000000..f3e39a4 --- /dev/null +++ b/util/.gitattributes @@ -0,0 +1,2 @@ +# Tell Git to use ( not ) for the unix Shell files +*.sh eol=lf \ No newline at end of file diff --git a/util/Kcfg.cmd b/util/Kcfg.cmd new file mode 100644 index 0000000..e4a8682 --- /dev/null +++ b/util/Kcfg.cmd @@ -0,0 +1,173 @@ +@echo off +goto START +:HELP +echo ** Kcfg.cmd +echo * Provide a command set to simplify the Kconfig operations for the +echo * openSIL platform configuration process. +echo * +echo * Expectations: +echo * - Run this tool from the openSIL root directory +echo * - A new platform config file can only be created using Menu +echo * - A base config file must already exist for the Update and +echo * AllYes operations +echo * +echo * prototype: +echo * Kcfg {Command} {PlatName} +echo * +echo * Command - action to perform. Use one of the following: +echo * 'menu' - run the interactive menu system to select +echo * options for a specific platform. +echo * This produces the [platName] file +echo * 'update' - After creating a [PlatName] file with 'menu', +echo * create an updated platform configuration file for use +echo * in the code base (this creates the [platName].h file) +echo * +echo * PlatName - This is the name used to identify the configuration. +echo * This name will be used as the filename for the output +echo * config file. Some commands will also use this name to +echo * load previous configuration selections. +echo * PlatName may be the full filename as seen in the configs dir +echo * or may be the base name. This script will check for the +echo * various suffixes used. +echo * e.g. "Onyx_SilCfg" or "Onyx" may be used. +echo * +echo * Both parameters are required. +echo ******************************************************************** +rem * Return values: +rem * 0 - OK +rem * 1 - Invalid parameter or wrong start dir +rem * 2 - PlatName error +rem ******************************************************************** +:EXIT1 +exit /b 1 + +:START +rem * +rem * Validate the parameters +rem * +if /i "%2" equ "" ( + echo "*** ERROR: PlatName is a required parameter" + goto HELP +) +rem * +rem * Set the Kconfig environment controls for openSIL +rem * +rem * Verify that CWD is at the openSIL root +if "%SIL_HOME%"=="" ( + if exist "util/Kcfg.cmd" ( + set SIL_HOME=%cd% + ) else ( + echo ** ERROR: Must be started from the openSIL root directory" + goto EXIT1 + ) +) +set PYTHONPATH=%SIL_HOME%\util\kconfig\lib +rem * Save present Env Var values +set orig_KCONFIG_CONFIG=%KCONFIG_CONFIG% +set orig_KCONFIG_AUTOHEADER=%KCONFIG_AUTOHEADER% +rem * Set Env Vars for this platform +rem * +rem * set the Kconfig name and pull previous defs or create a default set. +rem * Kconfig must execute from the top dir (tree root); so, copy/create the +rem * files temporarily in the root folder, then move them back to /configs +rem +rem * First validate the filename parameter, +rem * check if it was the full name or just the base +if exist "configs\%2" ( + rem * param was the full filename, proceed... + set KCONFIG_CONFIG=%2 + set KCONFIG_AUTOHEADER=%2.h + copy configs\%2* .\ +) else ( + rem * check if param was just the base name, add "_SilCfg" to the end + if exist "configs\%2_SilCfg" ( + rem * Param was base name, set full name and proceed... + set KCONFIG_CONFIG=%2_SilCfg + set KCONFIG_AUTOHEADER=%2_SilCfg.h + copy configs\%2_SilCfg* .\ + ) else ( + rem * If cmd=AllYes, then check for base + "-AllYes" + if /i "%1" equ "AllYes" ( + set KCONFIG_CONFIG=%2-AllYes + set KCONFIG_AUTOHEADER=%2-AllYes.h + if exist "configs\%2-AllYes" ( + rem * Param was base name, set full name and proceed... + copy configs\%2-AllYes* .\ + ) else ( + rem * No AllYes file, make one with defaults + python %PYTHONPATH%\alldefconfig.py + ) + ) else ( + rem * no file was found. Create a defaults version IFF menu cmd + if /i "%1" equ "menu" ( + rem Only for the 'menu' command should we create the defaults, else error + echo *** WARNING: "%2" does not exist in \configs\*. Using defaults. + set KCONFIG_CONFIG=%2_SilCfg + set KCONFIG_AUTOHEADER=%2_SilCfg.h + python %PYTHONPATH%\alldefconfig.py + ) else ( + rem Don't allow backdoor creation of a config file, force use of Menu + echo *** ERROR: "%2" is not valid. You MUST use the Menu command + echo to create new platform config files. + exit /b 2 + ) + ) + ) +) +rem ******************************************************************* +rem * Set Kconfig Env Vars to place a copyright into the output files +rem * Copyright lines must have a ending newline. Use this CMD trick: +rem * How it works? +rem * The caret is an escape character, it escapes the next character and +rem * itself is removed. But if the next character is a linefeed the linefeed +rem * is also removed and only the next character is effectivly escaped +rem * (even if this is also an linefeed). +rem * Therefore, two empty lines are required. +set LF=^ + + +rem * !!The above two blank lines are Required!! Do not delete them ! +rem Set Env Vars for this platform +set copyrightDate=2022-%date:~-4% +set KCONFIG_CONFIG_HEADER=# Copyright %copyrightDate% Advanced Micro Devices, Inc.^ + All rights reserved.^%LF%%LF% +set KCONFIG_AUTOHEADER_HEADER=/* Copyright %copyrightDate% Advanced Micro Devices, Inc.^ + All rights reserved.*/^%LF%%LF% +rem * +rem ******************************************************************* +rem * +rem * Process the command... +rem * +if /i "%1"=="menu" ( + python %PYTHONPATH%\menuconfig.py Kconfig + python %PYTHONPATH%\genconfig.py + echo ** MenuConfig ^& GenConfig : + echo ** Input from %KCONFIG_CONFIG% + echo ** Output to: %KCONFIG_CONFIG%, %KCONFIG_CONFIG%.old ^ + and %KCONFIG_AUTOHEADER% + goto FINISH +) + +if /i "%1"=="update" ( + python %PYTHONPATH%\genconfig.py + echo ** GenConfig: Input from %KCONFIG_CONFIG%; output to %KCONFIG_AUTOHEADER% + goto FINISH +) + +:FINISH +rem * put platform config data in the \configs directory +rem * Note Cmd:copy & move may update the timestamp and cause a full rebuild. +move /Y %KCONFIG_CONFIG%* .\configs\ + +:CLEANUP +set KCONFIG_CONFIG=%orig_KCONFIG_CONFIG% +set KCONFIG_AUTOHEADER=%orig_KCONFIG_AUTOHEADER% + +set orig_KCONFIG_CONFIG= +set orig_KCONFIG_AUTOHEADER= +set KCONFIG_CONFIG_HEADER= +set KCONFIG_AUTOHEADER_HEADER= +set LF= + +:Exit +exit /b 0 diff --git a/util/Kcfg.sh b/util/Kcfg.sh new file mode 100644 index 0000000..979c7fc --- /dev/null +++ b/util/Kcfg.sh @@ -0,0 +1,164 @@ +#!/bin/bash +# +KcfgHelp () { + echo "*******************************************************************" + echo "** Kcfg.sh *" + echo "* Provide a command set to simplify the Kconfig operations for *" + echo "* the openSIL platform configuration process. *" + echo "* *" + echo "* Expectations: *" + echo "* - Run this tool from the openSIL root directory *" + echo "* - A new platform config file can only be created using Menu *" + echo "* - A base config file must already exist for the Update and *" + echo "* AllYes operations *" + echo "* *" + echo "* prototype: *" + echo "* Kcfg {Command} {PlatName} *" + echo "* *" + echo "* Command - action to perform. Use one of the following: *" + echo "* 'menu' - run the interactive menu system to select *" + echo "* options for a specific platform. *" + echo "* This produces the [platName] file *" + echo "* 'update' - After creating a [PlatName] file with 'menu',*" + echo "* create an updated platform configuration *" + echo "* for use in the code base (this creates *" + echo "* the [platName].h file) *" + echo "* *" + echo "* PlatName - This is the name used to identify the config. *" + echo "* This name will be used as the filename for the *" + echo "* output config file. Some commands will also use *" + echo "* this name to load previous config selections. *" + echo "* PlatName may be the full filename as seen in the *" + echo "* configs dir or may be the base name. This script *" + echo "* will check for the various suffixes used. *" + echo "* e.g. 'Onyx_SilCfg' or 'Onyx' may be used. *" + echo "* *" + echo "* Both parameters are required. *" + echo "*******************************************************************" + return 1 +# * Return values: +# * 0 - OK +# * 1 - Invalid parameter or wrong start dir +# * 2 - PlatName error +# ******************************************************************** +}; + +shopt -s nocasematch # ignore case + +PlatName () { + # Validate the 2nd parameter: PlatName + # set the Kconfig name and pull previous defs, or create the default set. + # Kconfig must execute from the top dir (tree root) so copy/create the files + # temporarily in the root folder, then move them back to /configs + echo "** Validating PlatName parameter: ${2}" + if test -z ${2} ; then + echo "*** ERROR: PlatName parameter misssing" + KcfgHelp + exit 1 + fi + if test -f "configs/${2}" ; then + # param was full filename, proceed... + # Try to avoid altering the timestamp + export KCONFIG_CONFIG=$2 + export KCONFIG_AUTOHEADER=${KCONFIG_CONFIG}.h + cp -p --update --verbose configs/${2}* . + elif test -f "configs/${2}_SilCfg" ; then + # param was base name, add '_SilCfg' to the end and proceed... + export KCONFIG_CONFIG=$2_SilCfg + export KCONFIG_AUTOHEADER=${KCONFIG_CONFIG}.h + cp -p --update --verbose configs/${KCONFIG_CONFIG}* . + else + # file was not found, create default IFF cmd=menu + if [[ ${1} == menu ]] ; then + # Only for the 'menu' command should we create the defults, else error + echo "*** WARNING: \"${2}\" does not exist in /configs/*. Using defaults." + export KCONFIG_CONFIG=$2_SilCfg + export KCONFIG_AUTOHEADER=${KCONFIG_CONFIG}.h + python ${PYTHONPATH}/alldefconfig.py + else + # Don't allow backdoor creation of a config file, force use of Menu + echo "*** ERROR: \"${2}\" is not valid. You MUST use the Menu command" + echo " to create new platform config files." + exit 2 + fi + fi + echo "** Verfied Plat filenames as: ${KCONFIG_CONFIG}, ${KCONFIG_AUTOHEADER}" +}; + +#### MAIN Start ############### +# +# Set the Kconfig environment controls for openSIL +# +# Verify that CWD is at the openSIL root +if [[ ${SIL_HOME} == "" ]]; then + if test -f "util/Kcfg.sh" ; then + export SIL_HOME=$(pwd) + else + echo "** ERROR: Must be started from the openSIL root directory" + exit 1 + fi +fi + +export PYTHONPATH=${SIL_HOME}/util/kconfig/lib + +# Save present Env Var values +orig_KCONFIG_CONFIG=${KCONFIG_CONFIG} +orig_KCONFIG_AUTOHEADER=${KCONFIG_AUTOHEADER} + +# Set Env Vars for this platform +copyrightDate='2022-'$(date +'%Y') + +# Kconfig will output these vars into the output files.... +# use them to insert the copyright notice +# Note: NewLine must be included in the var, so ending quote is on a new line. +export KCONFIG_CONFIG_HEADER="# Copyright ${copyrightDate} Advanced\ + Micro Devices, Inc. All rights reserved. +" +export KCONFIG_AUTOHEADER_HEADER="/* Copyright ${copyrightDate} Advanced\ + Micro Devices, Inc. All rights reserved.*/ +" + +# +# Validate the parameters, process the command +# +shopt -s nocasematch # ignore case + +case $1 in + ( menu ) + PlatName ${1} ${2} + python ${PYTHONPATH}/menuconfig.py Kconfig + python ${PYTHONPATH}/genconfig.py + echo "** MenuConfig & GenConfig :" + echo "** Input from ${KCONFIG_CONFIG}" + echo "** Output to: ${KCONFIG_CONFIG}.old and ${KCONFIG_AUTOHEADER}" + ;; + + ( update ) + PlatName ${1} ${2} + retcode=$? + if [ ${retcode} -eq 0 ] ; then + python ${PYTHONPATH}/genconfig.py + echo "** GenConfig: Input from ${KCONFIG_CONFIG};" + echo " output to ${KCONFIG_AUTOHEADER}" + fi + ;; + + ( help ) + KcfgHelp + exit 0 + ;; + + (*) + echo "*** ERROR:Invalid command parameter" + KcfgHelp + exit 1 + ;; +esac +# +# Now move the resulting files back to the /configs directory +# and remove any that were not updated (not moved back) +# + +echo "** Moving: ${KCONFIG_CONFIG}, ${KCONFIG_AUTOHEADER} back to /configs dir" +mv --verbose --update ${KCONFIG_CONFIG}* ./configs/ +rm --verbose ${KCONFIG_CONFIG}* diff --git a/util/ListFiles.py b/util/ListFiles.py new file mode 100644 index 0000000..b099ea1 --- /dev/null +++ b/util/ListFiles.py @@ -0,0 +1,25 @@ +#!/usr/bin/env python + +# Cross-platform mkdir command. + +import os +import shutil +import sys + +if __name__=='__main__': + if len(sys.argv) >1 : + outfilename = "flist-"+sys.argv[1]+".txt" + outfile = open( outfilename, "a") + outfile.write("Output file from ListFiles.py\n") + outfile.write( "number Args: {}\n".format( len(sys.argv) ) ) + for parm in range(2, len(sys.argv)) : + myfile = sys.argv[parm] + outfile.write( "parm: {}\n".format(myfile)) + StrStart = myfile.lower().find("opensil") + if StrStart != -1: + myfile = myfile[StrStart: ] + outfile.write("File: {}\n".format(myfile) ) + + outfile.close() + else : + exit(1) diff --git a/util/Meson.sh b/util/Meson.sh new file mode 100644 index 0000000..67ed166 --- /dev/null +++ b/util/Meson.sh @@ -0,0 +1,56 @@ +#!/bin/bash +# +MsnHelp () { + echo "*******************************************************************" + echo "** Meson.sh *" + echo " * Provide a command set to simplify the Meson operations for *" + echo " * the openSIL platform build tools (meson) *" + echo " * *" + echo " * %1 param - Action and target obj size *" + echo " * L32 32 or Set32 - establishes the 32bit build dir/env *" + echo " * L64 64 or Set64 - established the 64bit build dir/env *" + echo " * Build32 or Build64 - initiates a build for the 32/64 env*" + echo " * *" + echo " * Linux shells CANNOT set environment variables for the parent *" + echo " * shell. You can use this script to establish the meson build *" + echo " * directory; then use the echoed command to start the compile, *" + echo " * or again use this script with Buildnn parameter. *" + echo "*******************************************************************" + return +}; + +# +# Create the build directory and project config for Meson builder +# +shopt -s nocasematch # ignore case +case $1 in + ( L32 | 32 | Set32 ) + meson setup build_L32 --cross-file util/meson/x86-i386-linux-gnu + echo "***** The Meson environment for Linux 32b is ready *****" + echo "* Use this cmd for building:" + echo "* $ meson compile -C build_L32" + echo "*" + ;; + + (Build32 ) + meson compile -C build_L32 + ;; + + ( L64 | 64 | set64 ) + meson setup build_L64 --cross-file util/meson/x86-amd64-linux-gnu + echo "**** The Meson environment for Linux 64b is ready ****" + echo "* Use this cmd for building:" + echo "* $ meson compile -C build_L64" + echo "*" + ;; + + ( Build64 ) + meson compile -C build_L64 + ;; + + ( * ) + MsnHelp + exit 1 +esac + + diff --git a/util/SetSilEnv.cmd b/util/SetSilEnv.cmd new file mode 100644 index 0000000..23778a5 --- /dev/null +++ b/util/SetSilEnv.cmd @@ -0,0 +1,35 @@ +@echo off +rem ** SetSilEnv.cmd +rem * Establish the environment control variable for the openSIL +rem * buld tools (meson & Kconfig) +rem * +rem * %1 param - indicator flag for obj size desired ( 'W32' or 'W64') +rem * + +set SIL_HOME=%cd% +rem +rem Create the build directory and project config for Meson builder +rem +if /i %1 == W32 ( + rem the " -Dbackend=vs " parameter + meson setup build_w32 --cross-file util/meson/x86-i386-msvc -Dbackend=vs -Dunit_test=true + set SIL_BUILD=%SIL_HOME%\build_w32 + echo ***** The Meson environment for Win 32b is ready ***** + echo * Use this cmd for building: + echo * $ meson compile -C build_w32 + echo * +) else if /i %1 == W64 ( + meson setup build_w64 --cross-file util/meson/x86-amd64-msvc -Dbackend=vs -Dunit_test=true + set SIL_BUILD=%SIL_HOME%\build_w64 + echo **** The Meson environment for Win 64b is ready **** + echo * Use this cmd for building: + echo * $ meson compile -C build_w64 + echo * +) else ( + echo ****ERROR bad param. Use 'W32' or 'W64' + exit (1) +) +echo **** Commands for Kconfig: +echo ** Use the Kcfg.cmd program to help with openSIL Kconfig +call util\Kcfg.cmd help + diff --git a/util/kconfig/Kcfg.md b/util/kconfig/Kcfg.md new file mode 100644 index 0000000..4940080 --- /dev/null +++ b/util/kconfig/Kcfg.md @@ -0,0 +1,42 @@ +# Kconfig Intro {#Kcfg-top} +@tableofcontents +Kconfig is the build time configuration tool used by the linux kernel, coreboot and a few other popular projects. openSIL used the Kconfiglib project from GitHub, which is a Kconfig implementation in Python 3. +It supports a GUI menuconfig interface for interactive editing of the project values. Find it at [Kconfiglib](https://github.com/ulfalizer/Kconfiglib). +## Kconfig Files +There are ```kconfig``` files (no extension) in nearly every folder in the openSIL project tree. This is a distributed configuration system that keeps the menu items (config values) close to the source using them. +There are a few top level files that provide the overview set of menu pages for selecting the Market Segment, Socket and SoC's for the target platform. + +## config Files +The platform configuration files are kept in a separate folder ('openSIL\configs'). +The Kconfig tool sub-system expects to run from the project root; so this means that the target platform config file must be copied to the root while being edited, then returned to the config folder. This can be easily messed up by humans, so a script file is provided to organize this process and keep things in order. + +## Script Support +The openSIL project provides some script files for the most common command sequences. Use of these are optional but **highly** recommended. They are located in the 'openSIL\util' folder. + +### Linux: Kcfg.sh +Provides a command set to simplify the Kconfig operations for the openSIL platform configuration process. + +#### Expectations: +- Run this tool from the openSIL root directory ```> util\Kcfg menu MyPlat``` +- A new platform config file can only be created using 'Menu' command. +- A base config file must already exist for the 'Update' and 'AllYes' command operations. + +#### prototype: +```Kcfg {Command} {PlatName}``` + +* Command - action to perform. Use one of the following: + - 'menu' - run the interactive menu system to select options for a specific platform. + This produces the [platName] file + - 'update' - After creating a [PlatName] file with 'menu', + create an updated platform configuration + for use in the code base (this creates + the [platName].h file) + +* PlatName - This is the name used to identify the config. + This name will be used as the filename for the + output config file. Some commands will also use + this name to load previous config selections. + +Both parameters are required. +### Win10: Kcfg.cmd +This is a windows version of the above linux shell script. It has the same parameters, expectations and outputs. \ No newline at end of file diff --git a/util/kconfig/bin/alldefconfig b/util/kconfig/bin/alldefconfig new file mode 100644 index 0000000..3d70874 --- /dev/null +++ b/util/kconfig/bin/alldefconfig @@ -0,0 +1,8 @@ +#!/usr/bin/python3 +# -*- coding: utf-8 -*- +import re +import sys +from alldefconfig import main +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(main()) diff --git a/util/kconfig/bin/allmodconfig b/util/kconfig/bin/allmodconfig new file mode 100644 index 0000000..8015c8a --- /dev/null +++ b/util/kconfig/bin/allmodconfig @@ -0,0 +1,8 @@ +#!/usr/bin/python3 +# -*- coding: utf-8 -*- +import re +import sys +from allmodconfig import main +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(main()) diff --git a/util/kconfig/bin/allnoconfig b/util/kconfig/bin/allnoconfig new file mode 100644 index 0000000..a804b75 --- /dev/null +++ b/util/kconfig/bin/allnoconfig @@ -0,0 +1,8 @@ +#!/usr/bin/python3 +# -*- coding: utf-8 -*- +import re +import sys +from allnoconfig import main +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(main()) diff --git a/util/kconfig/bin/allyesconfig b/util/kconfig/bin/allyesconfig new file mode 100644 index 0000000..f82d00c --- /dev/null +++ b/util/kconfig/bin/allyesconfig @@ -0,0 +1,8 @@ +#!/usr/bin/python3 +# -*- coding: utf-8 -*- +import re +import sys +from allyesconfig import main +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(main()) diff --git a/util/kconfig/bin/defconfig b/util/kconfig/bin/defconfig new file mode 100644 index 0000000..1792fb2 --- /dev/null +++ b/util/kconfig/bin/defconfig @@ -0,0 +1,8 @@ +#!/usr/bin/python3 +# -*- coding: utf-8 -*- +import re +import sys +from defconfig import main +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(main()) diff --git a/util/kconfig/bin/genconfig b/util/kconfig/bin/genconfig new file mode 100644 index 0000000..682a4bf --- /dev/null +++ b/util/kconfig/bin/genconfig @@ -0,0 +1,8 @@ +#!/usr/bin/python3 +# -*- coding: utf-8 -*- +import re +import sys +from genconfig import main +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(main()) diff --git a/util/kconfig/bin/guiconfig b/util/kconfig/bin/guiconfig new file mode 100644 index 0000000..a6a3c68 --- /dev/null +++ b/util/kconfig/bin/guiconfig @@ -0,0 +1,8 @@ +#!/usr/bin/python3 +# -*- coding: utf-8 -*- +import re +import sys +from guiconfig import _main +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(_main()) diff --git a/util/kconfig/bin/listnewconfig b/util/kconfig/bin/listnewconfig new file mode 100644 index 0000000..ba0fbb3 --- /dev/null +++ b/util/kconfig/bin/listnewconfig @@ -0,0 +1,8 @@ +#!/usr/bin/python3 +# -*- coding: utf-8 -*- +import re +import sys +from listnewconfig import main +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(main()) diff --git a/util/kconfig/bin/menuconfig b/util/kconfig/bin/menuconfig new file mode 100644 index 0000000..01b41eb --- /dev/null +++ b/util/kconfig/bin/menuconfig @@ -0,0 +1,8 @@ +#!/usr/bin/python3 +# -*- coding: utf-8 -*- +import re +import sys +from menuconfig import _main +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(_main()) diff --git a/util/kconfig/bin/oldconfig b/util/kconfig/bin/oldconfig new file mode 100644 index 0000000..eef2402 --- /dev/null +++ b/util/kconfig/bin/oldconfig @@ -0,0 +1,8 @@ +#!/usr/bin/python3 +# -*- coding: utf-8 -*- +import re +import sys +from oldconfig import _main +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(_main()) diff --git a/util/kconfig/bin/olddefconfig b/util/kconfig/bin/olddefconfig new file mode 100644 index 0000000..e3dae5e --- /dev/null +++ b/util/kconfig/bin/olddefconfig @@ -0,0 +1,8 @@ +#!/usr/bin/python3 +# -*- coding: utf-8 -*- +import re +import sys +from olddefconfig import main +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(main()) diff --git a/util/kconfig/bin/savedefconfig b/util/kconfig/bin/savedefconfig new file mode 100644 index 0000000..399bc9e --- /dev/null +++ b/util/kconfig/bin/savedefconfig @@ -0,0 +1,8 @@ +#!/usr/bin/python3 +# -*- coding: utf-8 -*- +import re +import sys +from savedefconfig import main +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(main()) diff --git a/util/kconfig/bin/setconfig b/util/kconfig/bin/setconfig new file mode 100644 index 0000000..5efe96a --- /dev/null +++ b/util/kconfig/bin/setconfig @@ -0,0 +1,8 @@ +#!/usr/bin/python3 +# -*- coding: utf-8 -*- +import re +import sys +from setconfig import main +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(main()) diff --git a/util/kconfig/lib/alldefconfig.py b/util/kconfig/lib/alldefconfig.py new file mode 100644 index 0000000..56c4caa --- /dev/null +++ b/util/kconfig/lib/alldefconfig.py @@ -0,0 +1,27 @@ +#!/usr/bin/env python3 + +# Copyright (c) 2018-2019, Ulf Magnusson +# SPDX-License-Identifier: ISC + +""" +Writes a configuration file where all symbols are set to their their default +values. + +The default output filename is '.config'. A different filename can be passed in +the KCONFIG_CONFIG environment variable. + +Usage for the Linux kernel: + + $ make [ARCH=] scriptconfig SCRIPT=Kconfiglib/alldefconfig.py +""" +import kconfiglib + + +def main(): + kconf = kconfiglib.standard_kconfig(__doc__) + kconf.load_allconfig("alldef.config") + print(kconf.write_config()) + + +if __name__ == "__main__": + main() diff --git a/util/kconfig/lib/allmodconfig.py b/util/kconfig/lib/allmodconfig.py new file mode 100644 index 0000000..bfb72b4 --- /dev/null +++ b/util/kconfig/lib/allmodconfig.py @@ -0,0 +1,46 @@ +#!/usr/bin/env python3 + +# Copyright (c) 2018-2019, Ulf Magnusson +# SPDX-License-Identifier: ISC + +""" +Writes a configuration file where as many symbols as possible are set to 'm'. + +The default output filename is '.config'. A different filename can be passed +in the KCONFIG_CONFIG environment variable. + +Usage for the Linux kernel: + + $ make [ARCH=] scriptconfig SCRIPT=Kconfiglib/allmodconfig.py +""" +import kconfiglib + + +def main(): + kconf = kconfiglib.standard_kconfig(__doc__) + + # See allnoconfig.py + kconf.warn = False + + for sym in kconf.unique_defined_syms: + if sym.orig_type == kconfiglib.BOOL: + # 'bool' choice symbols get their default value, as determined by + # e.g. 'default's on the choice + if not sym.choice: + # All other bool symbols get set to 'y', like for allyesconfig + sym.set_value(2) + elif sym.orig_type == kconfiglib.TRISTATE: + sym.set_value(1) + + for choice in kconf.unique_choices: + choice.set_value(2 if choice.orig_type == kconfiglib.BOOL else 1) + + kconf.warn = True + + kconf.load_allconfig("allmod.config") + + print(kconf.write_config()) + + +if __name__ == "__main__": + main() diff --git a/util/kconfig/lib/allnoconfig.py b/util/kconfig/lib/allnoconfig.py new file mode 100644 index 0000000..de90d8b --- /dev/null +++ b/util/kconfig/lib/allnoconfig.py @@ -0,0 +1,45 @@ +#!/usr/bin/env python3 + +# Copyright (c) 2018-2019, Ulf Magnusson +# SPDX-License-Identifier: ISC + +""" +Writes a configuration file where as many symbols as possible are set to 'n'. + +The default output filename is '.config'. A different filename can be passed +in the KCONFIG_CONFIG environment variable. + +Usage for the Linux kernel: + + $ make [ARCH=] scriptconfig SCRIPT=Kconfiglib/allnoconfig.py +""" + +# See examples/allnoconfig_walk.py for another way to implement this script + +import kconfiglib + + +def main(): + kconf = kconfiglib.standard_kconfig(__doc__) + + # Avoid warnings that would otherwise get printed by Kconfiglib for the + # following: + # + # 1. Assigning a value to a symbol without a prompt, which never has any + # effect + # + # 2. Assigning values invalid for the type (only bool/tristate symbols + # accept 0/1/2, for n/m/y). The assignments will be ignored for other + # symbol types, which is what we want. + kconf.warn = False + for sym in kconf.unique_defined_syms: + sym.set_value(2 if sym.is_allnoconfig_y else 0) + kconf.warn = True + + kconf.load_allconfig("allno.config") + + print(kconf.write_config()) + + +if __name__ == "__main__": + main() diff --git a/util/kconfig/lib/defconfig.py b/util/kconfig/lib/defconfig.py new file mode 100644 index 0000000..b179273 --- /dev/null +++ b/util/kconfig/lib/defconfig.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python3 + +# Copyright (c) 2019, Ulf Magnusson +# SPDX-License-Identifier: ISC + +""" +Reads a specified configuration file, then writes a new configuration file. +This can be used to initialize the configuration from e.g. an arch-specific +configuration file. This input configuration file would usually be a minimal +configuration file, as generated by e.g. savedefconfig. + +The default output filename is '.config'. A different filename can be passed in +the KCONFIG_CONFIG environment variable. +""" +import argparse + +import kconfiglib + + +def main(): + parser = argparse.ArgumentParser( + formatter_class=argparse.RawDescriptionHelpFormatter, + description=__doc__) + + parser.add_argument( + "--kconfig", + default="Kconfig", + help="Top-level Kconfig file (default: Kconfig)") + + parser.add_argument( + "config", + metavar="CONFIGURATION", + help="Input configuration file") + + args = parser.parse_args() + + kconf = kconfiglib.Kconfig(args.kconfig, suppress_traceback=True) + print(kconf.load_config(args.config)) + print(kconf.write_config()) + + +if __name__ == "__main__": + main() diff --git a/util/kconfig/lib/genconfig.py b/util/kconfig/lib/genconfig.py new file mode 100644 index 0000000..62f065b --- /dev/null +++ b/util/kconfig/lib/genconfig.py @@ -0,0 +1,154 @@ +#!/usr/bin/env python3 + +# Copyright (c) 2018-2019, Ulf Magnusson +# SPDX-License-Identifier: ISC + +""" +Generates a header file with #defines from the configuration, matching the +format of include/generated/autoconf.h in the Linux kernel. + +Optionally, also writes the configuration output as a .config file. See +--config-out. + +The --sync-deps, --file-list, and --env-list options generate information that +can be used to avoid needless rebuilds/reconfigurations. + +Before writing a header or configuration file, Kconfiglib compares the old +contents of the file against the new contents. If there's no change, the write +is skipped. This avoids updating file metadata like the modification time, and +might save work depending on your build setup. + +By default, the configuration is generated from '.config'. A different +configuration file can be passed in the KCONFIG_CONFIG environment variable. + +A custom header string can be inserted at the beginning of generated +configuration and header files by setting the KCONFIG_CONFIG_HEADER and +KCONFIG_AUTOHEADER_HEADER environment variables, respectively (this also works +for other scripts). The string is not automatically made a comment (this is by +design, to allow anything to be added), and no trailing newline is added, so +add '/* */', '#', and newlines as appropriate. + +See https://www.gnu.org/software/make/manual/make.html#Multi_002dLine for a +handy way to define multi-line variables in makefiles, for use with custom +headers. Remember to export the variable to the environment. +""" +import argparse +import os +import sys + +import kconfiglib + + +DEFAULT_SYNC_DEPS_PATH = "deps/" + + +def main(): + parser = argparse.ArgumentParser( + formatter_class=argparse.RawDescriptionHelpFormatter, + description=__doc__) + + parser.add_argument( + "--header-path", + metavar="HEADER_FILE", + help=""" +Path to write the generated header file to. If not specified, the path in the +environment variable KCONFIG_AUTOHEADER is used if it is set, and 'config.h' +otherwise. +""") + + parser.add_argument( + "--config-out", + metavar="CONFIG_FILE", + help=""" +Write the configuration to CONFIG_FILE. This is useful if you include .config +files in Makefiles, as the generated configuration file will be a full .config +file even if .config is outdated. The generated configuration matches what +olddefconfig would produce. If you use sync-deps, you can include +deps/auto.conf instead. --config-out is meant for cases where incremental build +information isn't needed. +""") + + parser.add_argument( + "--sync-deps", + metavar="OUTPUT_DIR", + nargs="?", + const=DEFAULT_SYNC_DEPS_PATH, + help=""" +Enable generation of symbol dependency information for incremental builds, +optionally specifying the output directory (default: {}). See the docstring of +Kconfig.sync_deps() in Kconfiglib for more information. +""".format(DEFAULT_SYNC_DEPS_PATH)) + + parser.add_argument( + "--file-list", + metavar="OUTPUT_FILE", + help=""" +Write a list of all Kconfig files to OUTPUT_FILE, with one file per line. The +paths are relative to $srctree (or to the current directory if $srctree is +unset). Files appear in the order they're 'source'd. +""") + + parser.add_argument( + "--env-list", + metavar="OUTPUT_FILE", + help=""" +Write a list of all environment variables referenced in Kconfig files to +OUTPUT_FILE, with one variable per line. Each line has the format NAME=VALUE. +Only environment variables referenced with the preprocessor $(VAR) syntax are +included, and not variables referenced with the older $VAR syntax (which is +only supported for backwards compatibility). +""") + + parser.add_argument( + "kconfig", + metavar="KCONFIG", + nargs="?", + default="Kconfig", + help="Top-level Kconfig file (default: Kconfig)") + + args = parser.parse_args() + + + kconf = kconfiglib.Kconfig(args.kconfig, suppress_traceback=True) + kconf.load_config() + + if args.header_path is None: + if "KCONFIG_AUTOHEADER" in os.environ: + kconf.write_autoconf() + else: + # Kconfiglib defaults to include/generated/autoconf.h to be + # compatible with the C tools. 'config.h' is used here instead for + # backwards compatibility. It's probably a saner default for tools + # as well. + kconf.write_autoconf("config.h") + else: + kconf.write_autoconf(args.header_path) + + if args.config_out is not None: + kconf.write_config(args.config_out, save_old=False) + + if args.sync_deps is not None: + kconf.sync_deps(args.sync_deps) + + if args.file_list is not None: + with _open_write(args.file_list) as f: + for path in kconf.kconfig_filenames: + f.write(path + "\n") + + if args.env_list is not None: + with _open_write(args.env_list) as f: + for env_var in kconf.env_vars: + f.write("{}={}\n".format(env_var, os.environ[env_var])) + + +def _open_write(path): + # Python 2/3 compatibility. io.open() is available on both, but makes + # write() expect 'unicode' strings on Python 2. + + if sys.version_info[0] < 3: + return open(path, "w") + return open(path, "w", encoding="utf-8") + + +if __name__ == "__main__": + main() diff --git a/util/kconfig/lib/guiconfig.py b/util/kconfig/lib/guiconfig.py new file mode 100644 index 0000000..7804fdc --- /dev/null +++ b/util/kconfig/lib/guiconfig.py @@ -0,0 +1,2324 @@ +#!/usr/bin/env python3 + +# Copyright (c) 2019, Ulf Magnusson +# SPDX-License-Identifier: ISC + +""" +Overview +======== + +A Tkinter-based menuconfig implementation, based around a treeview control and +a help display. The interface should feel familiar to people used to qconf +('make xconfig'). Compatible with both Python 2 and Python 3. + +The display can be toggled between showing the full tree and showing just a +single menu (like menuconfig.py). Only single-menu mode distinguishes between +symbols defined with 'config' and symbols defined with 'menuconfig'. + +A show-all mode is available that shows invisible items in red. + +Supports both mouse and keyboard controls. The following keyboard shortcuts are +available: + + Ctrl-S : Save configuration + Ctrl-O : Open configuration + Ctrl-A : Toggle show-all mode + Ctrl-N : Toggle show-name mode + Ctrl-M : Toggle single-menu mode + Ctrl-F, /: Open jump-to dialog + ESC : Close + +Running +======= + +guiconfig.py can be run either as a standalone executable or by calling the +menuconfig() function with an existing Kconfig instance. The second option is a +bit inflexible in that it will still load and save .config, etc. + +When run in standalone mode, the top-level Kconfig file to load can be passed +as a command-line argument. With no argument, it defaults to "Kconfig". + +The KCONFIG_CONFIG environment variable specifies the .config file to load (if +it exists) and save. If KCONFIG_CONFIG is unset, ".config" is used. + +When overwriting a configuration file, the old version is saved to +.old (e.g. .config.old). + +$srctree is supported through Kconfiglib. +""" + +# Note: There's some code duplication with menuconfig.py below, especially for +# the help text. Maybe some of it could be moved into kconfiglib.py or a shared +# helper script, but OTOH it's pretty nice to have things standalone and +# customizable. + +import errno +import os +import sys + +_PY2 = sys.version_info[0] < 3 + +if _PY2: + # Python 2 + from Tkinter import * + import ttk + import tkFont as font + import tkFileDialog as filedialog + import tkMessageBox as messagebox +else: + # Python 3 + from tkinter import * + import tkinter.ttk as ttk + import tkinter.font as font + from tkinter import filedialog, messagebox + +from kconfiglib import Symbol, Choice, MENU, COMMENT, MenuNode, \ + BOOL, TRISTATE, STRING, INT, HEX, \ + AND, OR, \ + expr_str, expr_value, split_expr, \ + standard_sc_expr_str, \ + TRI_TO_STR, TYPE_TO_STR, \ + standard_kconfig, standard_config_filename + + +# If True, use GIF image data embedded in this file instead of separate GIF +# files. See _load_images(). +_USE_EMBEDDED_IMAGES = True + + +# Help text for the jump-to dialog +_JUMP_TO_HELP = """\ +Type one or more strings/regexes and press Enter to list items that match all +of them. Python's regex flavor is used (see the 're' module). Double-clicking +an item will jump to it. Item values can be toggled directly within the dialog.\ +""" + + +def _main(): + menuconfig(standard_kconfig(__doc__)) + + +# Global variables used below: +# +# _root: +# The Toplevel instance for the main window +# +# _tree: +# The Treeview in the main window +# +# _jump_to_tree: +# The Treeview in the jump-to dialog. None if the jump-to dialog isn't +# open. Doubles as a flag. +# +# _jump_to_matches: +# List of Nodes shown in the jump-to dialog +# +# _menupath: +# The Label that shows the menu path of the selected item +# +# _backbutton: +# The button shown in single-menu mode for jumping to the parent menu +# +# _status_label: +# Label with status text shown at the bottom of the main window +# ("Modified", "Saved to ...", etc.) +# +# _id_to_node: +# We can't use Node objects directly as Treeview item IDs, so we use their +# id()s instead. This dictionary maps Node id()s back to Nodes. (The keys +# are actually str(id(node)), just to simplify lookups.) +# +# _cur_menu: +# The current menu. Ignored outside single-menu mode. +# +# _show_all_var/_show_name_var/_single_menu_var: +# Tkinter Variable instances bound to the corresponding checkboxes +# +# _show_all/_single_menu: +# Plain Python bools that track _show_all_var and _single_menu_var, to +# speed up and simplify things a bit +# +# _conf_filename: +# File to save the configuration to +# +# _minconf_filename: +# File to save minimal configurations to +# +# _conf_changed: +# True if the configuration has been changed. If False, we don't bother +# showing the save-and-quit dialog. +# +# We reset this to False whenever the configuration is saved. +# +# _*_img: +# PhotoImage instances for images + + +def menuconfig(kconf): + """ + Launches the configuration interface, returning after the user exits. + + kconf: + Kconfig instance to be configured + """ + global _kconf + global _conf_filename + global _minconf_filename + global _jump_to_tree + global _cur_menu + + _kconf = kconf + + _jump_to_tree = None + + _create_id_to_node() + + _create_ui() + + # Filename to save configuration to + _conf_filename = standard_config_filename() + + # Load existing configuration and check if it's outdated + _set_conf_changed(_load_config()) + + # Filename to save minimal configuration to + _minconf_filename = "defconfig" + + # Current menu in single-menu mode + _cur_menu = _kconf.top_node + + # Any visible items in the top menu? + if not _shown_menu_nodes(kconf.top_node): + # Nothing visible. Start in show-all mode and try again. + _show_all_var.set(True) + if not _shown_menu_nodes(kconf.top_node): + # Give up and show an error. It's nice to be able to assume that + # the tree is non-empty in the rest of the code. + _root.wait_visibility() + messagebox.showerror( + "Error", + "Empty configuration -- nothing to configure.\n\n" + "Check that environment variables are set properly.") + _root.destroy() + return + + # Build the initial tree + _update_tree() + + # Select the first item and focus the Treeview, so that keyboard controls + # work immediately + _select(_tree, _tree.get_children()[0]) + _tree.focus_set() + + # Make geometry information available for centering the window. This + # indirectly creates the window, so hide it so that it's never shown at the + # old location. + _root.withdraw() + _root.update_idletasks() + + # Center the window + _root.geometry("+{}+{}".format( + (_root.winfo_screenwidth() - _root.winfo_reqwidth())//2, + (_root.winfo_screenheight() - _root.winfo_reqheight())//2)) + + # Show it + _root.deiconify() + + # Prevent the window from being automatically resized. Otherwise, it + # changes size when scrollbars appear/disappear before the user has + # manually resized it. + _root.geometry(_root.geometry()) + + _root.mainloop() + + +def _load_config(): + # Loads any existing .config file. See the Kconfig.load_config() docstring. + # + # Returns True if .config is missing or outdated. We always prompt for + # saving the configuration in that case. + + print(_kconf.load_config()) + if not os.path.exists(_conf_filename): + # No .config + return True + + return _needs_save() + + +def _needs_save(): + # Returns True if a just-loaded .config file is outdated (would get + # modified when saving) + + if _kconf.missing_syms: + # Assignments to undefined symbols in the .config + return True + + for sym in _kconf.unique_defined_syms: + if sym.user_value is None: + if sym.config_string: + # Unwritten symbol + return True + elif sym.orig_type in (BOOL, TRISTATE): + if sym.tri_value != sym.user_value: + # Written bool/tristate symbol, new value + return True + elif sym.str_value != sym.user_value: + # Written string/int/hex symbol, new value + return True + + # No need to prompt for save + return False + + +def _create_id_to_node(): + global _id_to_node + + _id_to_node = {str(id(node)): node for node in _kconf.node_iter()} + + +def _create_ui(): + # Creates the main window UI + + global _root + global _tree + + # Create the root window. This initializes Tkinter and makes e.g. + # PhotoImage available, so do it early. + _root = Tk() + + _load_images() + _init_misc_ui() + _fix_treeview_issues() + + _create_top_widgets() + # Create the pane with the Kconfig tree and description text + panedwindow, _tree = _create_kconfig_tree_and_desc(_root) + panedwindow.grid(column=0, row=1, sticky="nsew") + _create_status_bar() + + _root.columnconfigure(0, weight=1) + # Only the pane with the Kconfig tree and description grows vertically + _root.rowconfigure(1, weight=1) + + # Start with show-name disabled + _do_showname() + + _tree.bind("", _tree_left_key) + _tree.bind("", _tree_right_key) + # Note: Binding this for the jump-to tree as well would cause issues due to + # the Tk bug mentioned in _tree_open() + _tree.bind("<>", _tree_open) + # add=True to avoid overriding the description text update + _tree.bind("<>", _update_menu_path, add=True) + + _root.bind("", _save) + _root.bind("", _open) + _root.bind("", _toggle_showall) + _root.bind("", _toggle_showname) + _root.bind("", _toggle_tree_mode) + _root.bind("", _jump_to_dialog) + _root.bind("/", _jump_to_dialog) + _root.bind("", _on_quit) + + +def _load_images(): + # Loads GIF images, creating the global _*_img PhotoImage variables. + # Base64-encoded images embedded in this script are used if + # _USE_EMBEDDED_IMAGES is True, and separate image files in the same + # directory as the script otherwise. + # + # Using a global variable indirectly prevents the image from being + # garbage-collected. Passing an image to a Tkinter function isn't enough to + # keep it alive. + + def load_image(name, data): + var_name = "_{}_img".format(name) + + if _USE_EMBEDDED_IMAGES: + globals()[var_name] = PhotoImage(data=data, format="gif") + else: + globals()[var_name] = PhotoImage( + file=os.path.join(os.path.dirname(__file__), name + ".gif"), + format="gif") + + # Note: Base64 data can be put on the clipboard with + # $ base64 -w0 foo.gif | xclip + + load_image("icon", "R0lGODlhMAAwAPEDAAAAAADQAO7u7v///yH5BAUKAAMALAAAAAAwADAAAAL/nI+gy+2Pokyv2jazuZxryQjiSJZmyXxHeLbumH6sEATvW8OLNtf5bfLZRLFITzgEipDJ4mYxYv6A0ubuqYhWk66tVTE4enHer7jcKvt0LLUw6P45lvEprT6c0+v7OBuqhYdHohcoqIbSAHc4ljhDwrh1UlgSydRCWWlp5wiYZvmSuSh4IzrqV6p4cwhkCsmY+nhK6uJ6t1mrOhuJqfu6+WYiCiwl7HtLjNSZZZis/MeM7NY3TaRKS40ooDeoiVqIultsrav92bi9c3a5KkkOsOJZpSS99m4k/0zPng4Gks9JSbB+8DIcoQfnjwpZCHv5W+ip4aQrKrB0uOikYhiMCBw1/uPoQUMBADs=") + load_image("n_bool", "R0lGODdhEAAQAPAAAAgICP///ywAAAAAEAAQAAACIISPacHtvp5kcb5qG85hZ2+BkyiRF8BBaEqtrKkqslEAADs=") + load_image("y_bool", "R0lGODdhEAAQAPEAAAgICADQAP///wAAACwAAAAAEAAQAAACMoSPacLtvlh4YrIYsst2cV19AvaVF9CUXBNJJoum7ymrsKuCnhiupIWjSSjAFuWhSCIKADs=") + load_image("n_tri", "R0lGODlhEAAQAPD/AAEBAf///yH5BAUKAAIALAAAAAAQABAAAAInlI+pBrAKQnCPSUlXvFhznlkfeGwjKZhnJ65h6nrfi6h0st2QXikFADs=") + load_image("m_tri", "R0lGODlhEAAQAPEDAAEBAeQMuv///wAAACH5BAUKAAMALAAAAAAQABAAAAI5nI+pBrAWAhPCjYhiAJQCnWmdoElHGVBoiK5M21ofXFpXRIrgiecqxkuNciZIhNOZFRNI24PhfEoLADs=") + load_image("y_tri", "R0lGODlhEAAQAPEDAAICAgDQAP///wAAACH5BAUKAAMALAAAAAAQABAAAAI0nI+pBrAYBhDCRRUypfmergmgZ4xjMpmaw2zmxk7cCB+pWiVqp4MzDwn9FhGZ5WFjIZeGAgA7") + load_image("m_my", "R0lGODlhEAAQAPEDAAAAAOQMuv///wAAACH5BAUKAAMALAAAAAAQABAAAAI5nIGpxiAPI2ghxFinq/ZygQhc94zgZopmOLYf67anGr+oZdp02emfV5n9MEHN5QhqICETxkABbQ4KADs=") + load_image("y_my", "R0lGODlhEAAQAPH/AAAAAADQAAPRA////yH5BAUKAAQALAAAAAAQABAAAAM+SArcrhCMSSuIM9Q8rxxBWIXawIBkmWonupLd565Um9G1PIs59fKmzw8WnAlusBYR2SEIN6DmAmqBLBxYSAIAOw==") + load_image("n_locked", "R0lGODlhEAAQAPABAAAAAP///yH5BAUKAAEALAAAAAAQABAAAAIgjB8AyKwN04pu0vMutpqqz4Hih4ydlnUpyl2r23pxUAAAOw==") + load_image("m_locked", "R0lGODlhEAAQAPD/AAAAAOQMuiH5BAUKAAIALAAAAAAQABAAAAIylC8AyKwN04ohnGcqqlZmfXDWI26iInZoyiore05walolV39ftxsYHgL9QBBMBGFEFAAAOw==") + load_image("y_locked", "R0lGODlhEAAQAPD/AAAAAADQACH5BAUKAAIALAAAAAAQABAAAAIylC8AyKzNgnlCtoDTwvZwrHydIYpQmR3KWq4uK74IOnp0HQPmnD3cOVlUIAgKsShkFAAAOw==") + load_image("not_selected", "R0lGODlhEAAQAPD/AAAAAP///yH5BAUKAAIALAAAAAAQABAAAAIrlA2px6IBw2IpWglOvTYhzmUbGD3kNZ5QqrKn2YrqigCxZoMelU6No9gdCgA7") + load_image("selected", "R0lGODlhEAAQAPD/AAAAAP///yH5BAUKAAIALAAAAAAQABAAAAIzlA2px6IBw2IpWglOvTah/kTZhimASJomiqonlLov1qptHTsgKSEzh9H8QI0QzNPwmRoFADs=") + load_image("edit", "R0lGODlhEAAQAPIFAAAAAKOLAMuuEPvXCvrxvgAAAAAAAAAAACH5BAUKAAUALAAAAAAQABAAAANCWLqw/gqMBp8cszJxcwVC2FEOEIAi5kVBi3IqWZhuCGMyfdpj2e4pnK+WAshmvxeAcETWlsxPkkBtsqBMa8TIBSQAADs=") + + +def _fix_treeview_issues(): + # Fixes some Treeview issues + + global _treeview_rowheight + + style = ttk.Style() + + # The treeview rowheight isn't adjusted automatically on high-DPI displays, + # so do it ourselves. The font will probably always be TkDefaultFont, but + # play it safe and look it up. + + _treeview_rowheight = font.Font(font=style.lookup("Treeview", "font")) \ + .metrics("linespace") + 2 + + style.configure("Treeview", rowheight=_treeview_rowheight) + + # Work around regression in https://core.tcl.tk/tk/tktview?name=509cafafae, + # which breaks tag background colors + + for option in "foreground", "background": + # Filter out any styles starting with ("!disabled", "!selected", ...). + # style.map() returns an empty list for missing options, so this should + # be future-safe. + style.map( + "Treeview", + **{option: [elm for elm in style.map("Treeview", query_opt=option) + if elm[:2] != ("!disabled", "!selected")]}) + + +def _init_misc_ui(): + # Does misc. UI initialization, like setting the title, icon, and theme + + _root.title(_kconf.mainmenu_text) + # iconphoto() isn't available in Python 2's Tkinter + _root.tk.call("wm", "iconphoto", _root._w, "-default", _icon_img) + # Reducing the width of the window to 1 pixel makes it move around, at + # least on GNOME. Prevent weird stuff like that. + _root.minsize(128, 128) + _root.protocol("WM_DELETE_WINDOW", _on_quit) + + # Use the 'clam' theme on *nix if it's available. It looks nicer than the + # 'default' theme. + if _root.tk.call("tk", "windowingsystem") == "x11": + style = ttk.Style() + if "clam" in style.theme_names(): + style.theme_use("clam") + + +def _create_top_widgets(): + # Creates the controls above the Kconfig tree in the main window + + global _show_all_var + global _show_name_var + global _single_menu_var + global _menupath + global _backbutton + + topframe = ttk.Frame(_root) + topframe.grid(column=0, row=0, sticky="ew") + + ttk.Button(topframe, text="Save", command=_save) \ + .grid(column=0, row=0, sticky="ew", padx=".05c", pady=".05c") + + ttk.Button(topframe, text="Save as...", command=_save_as) \ + .grid(column=1, row=0, sticky="ew") + + ttk.Button(topframe, text="Save minimal (advanced)...", + command=_save_minimal) \ + .grid(column=2, row=0, sticky="ew", padx=".05c") + + ttk.Button(topframe, text="Open...", command=_open) \ + .grid(column=3, row=0) + + ttk.Button(topframe, text="Jump to...", command=_jump_to_dialog) \ + .grid(column=4, row=0, padx=".05c") + + _show_name_var = BooleanVar() + ttk.Checkbutton(topframe, text="Show name", command=_do_showname, + variable=_show_name_var) \ + .grid(column=0, row=1, sticky="nsew", padx=".05c", pady="0 .05c", + ipady=".2c") + + _show_all_var = BooleanVar() + ttk.Checkbutton(topframe, text="Show all", command=_do_showall, + variable=_show_all_var) \ + .grid(column=1, row=1, sticky="nsew", pady="0 .05c") + + # Allow the show-all and single-menu status to be queried via plain global + # Python variables, which is faster and simpler + + def show_all_updated(*_): + global _show_all + _show_all = _show_all_var.get() + + _trace_write(_show_all_var, show_all_updated) + _show_all_var.set(False) + + _single_menu_var = BooleanVar() + ttk.Checkbutton(topframe, text="Single-menu mode", command=_do_tree_mode, + variable=_single_menu_var) \ + .grid(column=2, row=1, sticky="nsew", padx=".05c", pady="0 .05c") + + _backbutton = ttk.Button(topframe, text="<--", command=_leave_menu, + state="disabled") + _backbutton.grid(column=0, row=4, sticky="nsew", padx=".05c", pady="0 .05c") + + def tree_mode_updated(*_): + global _single_menu + _single_menu = _single_menu_var.get() + + if _single_menu: + _backbutton.grid() + else: + _backbutton.grid_remove() + + _trace_write(_single_menu_var, tree_mode_updated) + _single_menu_var.set(False) + + # Column to the right of the buttons that the menu path extends into, so + # that it can grow wider than the buttons + topframe.columnconfigure(5, weight=1) + + _menupath = ttk.Label(topframe) + _menupath.grid(column=0, row=3, columnspan=6, sticky="w", padx="0.05c", + pady="0 .05c") + + +def _create_kconfig_tree_and_desc(parent): + # Creates a Panedwindow with a Treeview that shows Kconfig nodes and a Text + # that shows a description of the selected node. Returns a tuple with the + # Panedwindow and the Treeview. This code is shared between the main window + # and the jump-to dialog. + + panedwindow = ttk.Panedwindow(parent, orient=VERTICAL) + + tree_frame, tree = _create_kconfig_tree(panedwindow) + desc_frame, desc = _create_kconfig_desc(panedwindow) + + panedwindow.add(tree_frame, weight=1) + panedwindow.add(desc_frame) + + def tree_select(_): + # The Text widget does not allow editing the text in its disabled + # state. We need to temporarily enable it. + desc["state"] = "normal" + + sel = tree.selection() + if not sel: + desc.delete("1.0", "end") + desc["state"] = "disabled" + return + + # Text.replace() is not available in Python 2's Tkinter + desc.delete("1.0", "end") + desc.insert("end", _info_str(_id_to_node[sel[0]])) + + desc["state"] = "disabled" + + tree.bind("<>", tree_select) + tree.bind("<1>", _tree_click) + tree.bind("", _tree_double_click) + tree.bind("", _tree_enter) + tree.bind("", _tree_enter) + tree.bind("", _tree_toggle) + tree.bind("n", _tree_set_val(0)) + tree.bind("m", _tree_set_val(1)) + tree.bind("y", _tree_set_val(2)) + + return panedwindow, tree + + +def _create_kconfig_tree(parent): + # Creates a Treeview for showing Kconfig nodes + + frame = ttk.Frame(parent) + + tree = ttk.Treeview(frame, selectmode="browse", height=20, + columns=("name",)) + tree.heading("#0", text="Option", anchor="w") + tree.heading("name", text="Name", anchor="w") + + tree.tag_configure("n-bool", image=_n_bool_img) + tree.tag_configure("y-bool", image=_y_bool_img) + tree.tag_configure("m-tri", image=_m_tri_img) + tree.tag_configure("n-tri", image=_n_tri_img) + tree.tag_configure("m-tri", image=_m_tri_img) + tree.tag_configure("y-tri", image=_y_tri_img) + tree.tag_configure("m-my", image=_m_my_img) + tree.tag_configure("y-my", image=_y_my_img) + tree.tag_configure("n-locked", image=_n_locked_img) + tree.tag_configure("m-locked", image=_m_locked_img) + tree.tag_configure("y-locked", image=_y_locked_img) + tree.tag_configure("not-selected", image=_not_selected_img) + tree.tag_configure("selected", image=_selected_img) + tree.tag_configure("edit", image=_edit_img) + tree.tag_configure("invisible", foreground="red") + + tree.grid(column=0, row=0, sticky="nsew") + + _add_vscrollbar(frame, tree) + + frame.columnconfigure(0, weight=1) + frame.rowconfigure(0, weight=1) + + # Create items for all menu nodes. These can be detached/moved later. + # Micro-optimize this a bit. + insert = tree.insert + id_ = id + Symbol_ = Symbol + for node in _kconf.node_iter(): + item = node.item + insert("", "end", iid=id_(node), + values=item.name if item.__class__ is Symbol_ else "") + + return frame, tree + + +def _create_kconfig_desc(parent): + # Creates a Text for showing the description of the selected Kconfig node + + frame = ttk.Frame(parent) + + desc = Text(frame, height=12, wrap="none", borderwidth=0, + state="disabled") + desc.grid(column=0, row=0, sticky="nsew") + + # Work around not being to Ctrl-C/V text from a disabled Text widget, with a + # tip found in https://stackoverflow.com/questions/3842155/is-there-a-way-to-make-the-tkinter-text-widget-read-only + desc.bind("<1>", lambda _: desc.focus_set()) + + _add_vscrollbar(frame, desc) + + frame.columnconfigure(0, weight=1) + frame.rowconfigure(0, weight=1) + + return frame, desc + + +def _add_vscrollbar(parent, widget): + # Adds a vertical scrollbar to 'widget' that's only shown as needed + + vscrollbar = ttk.Scrollbar(parent, orient="vertical", + command=widget.yview) + vscrollbar.grid(column=1, row=0, sticky="ns") + + def yscrollcommand(first, last): + # Only show the scrollbar when needed. 'first' and 'last' are + # strings. + if float(first) <= 0.0 and float(last) >= 1.0: + vscrollbar.grid_remove() + else: + vscrollbar.grid() + + vscrollbar.set(first, last) + + widget["yscrollcommand"] = yscrollcommand + + +def _create_status_bar(): + # Creates the status bar at the bottom of the main window + + global _status_label + + _status_label = ttk.Label(_root, anchor="e", padding="0 0 0.4c 0") + _status_label.grid(column=0, row=3, sticky="ew") + + +def _set_status(s): + # Sets the text in the status bar to 's' + + _status_label["text"] = s + + +def _set_conf_changed(changed): + # Updates the status re. whether there are unsaved changes + + global _conf_changed + + _conf_changed = changed + if changed: + _set_status("Modified") + + +def _update_tree(): + # Updates the Kconfig tree in the main window by first detaching all nodes + # and then updating and reattaching them. The tree structure might have + # changed. + + # If a selected/focused item is detached and later reattached, it stays + # selected/focused. That can give multiple selections even though + # selectmode=browse. Save and later restore the selection and focus as a + # workaround. + old_selection = _tree.selection() + old_focus = _tree.focus() + + # Detach all tree items before re-stringing them. This is relatively fast, + # luckily. + _tree.detach(*_id_to_node.keys()) + + if _single_menu: + _build_menu_tree() + else: + _build_full_tree(_kconf.top_node) + + _tree.selection_set(old_selection) + _tree.focus(old_focus) + + +def _build_full_tree(menu): + # Updates the tree starting from menu.list, in full-tree mode. To speed + # things up, only open menus are updated. The menu-at-a-time logic here is + # to deal with invisible items that can show up outside show-all mode (see + # _shown_full_nodes()). + + for node in _shown_full_nodes(menu): + _add_to_tree(node, _kconf.top_node) + + # _shown_full_nodes() includes nodes from menus rooted at symbols, so + # we only need to check "real" menus/choices here + if node.list and not isinstance(node.item, Symbol): + if _tree.item(id(node), "open"): + _build_full_tree(node) + else: + # We're just probing here, so _shown_menu_nodes() will work + # fine, and might be a bit faster + shown = _shown_menu_nodes(node) + if shown: + # Dummy element to make the open/closed toggle appear + _tree.move(id(shown[0]), id(shown[0].parent), "end") + + +def _shown_full_nodes(menu): + # Returns the list of menu nodes shown in 'menu' (a menu node for a menu) + # for full-tree mode. A tricky detail is that invisible items need to be + # shown if they have visible children. + + def rec(node): + res = [] + + while node: + if _visible(node) or _show_all: + res.append(node) + if node.list and isinstance(node.item, Symbol): + # Nodes from menu created from dependencies + res += rec(node.list) + + elif node.list and isinstance(node.item, Symbol): + # Show invisible symbols (defined with either 'config' and + # 'menuconfig') if they have visible children. This can happen + # for an m/y-valued symbol with an optional prompt + # ('prompt "foo" is COND') that is currently disabled. + shown_children = rec(node.list) + if shown_children: + res.append(node) + res += shown_children + + node = node.next + + return res + + return rec(menu.list) + + +def _build_menu_tree(): + # Updates the tree in single-menu mode. See _build_full_tree() as well. + + for node in _shown_menu_nodes(_cur_menu): + _add_to_tree(node, _cur_menu) + + +def _shown_menu_nodes(menu): + # Used for single-menu mode. Similar to _shown_full_nodes(), but doesn't + # include children of symbols defined with 'menuconfig'. + + def rec(node): + res = [] + + while node: + if _visible(node) or _show_all: + res.append(node) + if node.list and not node.is_menuconfig: + res += rec(node.list) + + elif node.list and isinstance(node.item, Symbol): + shown_children = rec(node.list) + if shown_children: + # Invisible item with visible children + res.append(node) + if not node.is_menuconfig: + res += shown_children + + node = node.next + + return res + + return rec(menu.list) + + +def _visible(node): + # Returns True if the node should appear in the menu (outside show-all + # mode) + + return node.prompt and expr_value(node.prompt[1]) and not \ + (node.item == MENU and not expr_value(node.visibility)) + + +def _add_to_tree(node, top): + # Adds 'node' to the tree, at the end of its menu. We rely on going through + # the nodes linearly to get the correct order. 'top' holds the menu that + # corresponds to the top-level menu, and can vary in single-menu mode. + + parent = node.parent + _tree.move(id(node), "" if parent is top else id(parent), "end") + _tree.item( + id(node), + text=_node_str(node), + # The _show_all test avoids showing invisible items in red outside + # show-all mode, which could look confusing/broken. Invisible symbols + # are shown outside show-all mode if an invisible symbol has visible + # children in an implicit menu. + tags=_img_tag(node) if _visible(node) or not _show_all else + _img_tag(node) + " invisible") + + +def _node_str(node): + # Returns the string shown to the right of the image (if any) for the node + + if node.prompt: + if node.item == COMMENT: + s = "*** {} ***".format(node.prompt[0]) + else: + s = node.prompt[0] + + if isinstance(node.item, Symbol): + sym = node.item + + # Print "(NEW)" next to symbols without a user value (from e.g. a + # .config), but skip it for choice symbols in choices in y mode, + # and for symbols of UNKNOWN type (which generate a warning though) + if sym.user_value is None and sym.type and not \ + (sym.choice and sym.choice.tri_value == 2): + + s += " (NEW)" + + elif isinstance(node.item, Symbol): + # Symbol without prompt (can show up in show-all) + s = "<{}>".format(node.item.name) + + else: + # Choice without prompt. Use standard_sc_expr_str() so that it shows up + # as ''. + s = standard_sc_expr_str(node.item) + + + if isinstance(node.item, Symbol): + sym = node.item + if sym.orig_type == STRING: + s += ": " + sym.str_value + elif sym.orig_type in (INT, HEX): + s = "({}) {}".format(sym.str_value, s) + + elif isinstance(node.item, Choice) and node.item.tri_value == 2: + # Print the prompt of the selected symbol after the choice for + # choices in y mode + sym = node.item.selection + if sym: + for sym_node in sym.nodes: + # Use the prompt used at this choice location, in case the + # choice symbol is defined in multiple locations + if sym_node.parent is node and sym_node.prompt: + s += " ({})".format(sym_node.prompt[0]) + break + else: + # If the symbol isn't defined at this choice location, then + # just use whatever prompt we can find for it + for sym_node in sym.nodes: + if sym_node.prompt: + s += " ({})".format(sym_node.prompt[0]) + break + + # In single-menu mode, print "--->" next to nodes that have menus that can + # potentially be entered. Print "----" if the menu is empty. We don't allow + # those to be entered. + if _single_menu and node.is_menuconfig: + s += " --->" if _shown_menu_nodes(node) else " ----" + + return s + + +def _img_tag(node): + # Returns the tag for the image that should be shown next to 'node', or the + # empty string if it shouldn't have an image + + item = node.item + + if item in (MENU, COMMENT) or not item.orig_type: + return "" + + if item.orig_type in (STRING, INT, HEX): + return "edit" + + # BOOL or TRISTATE + + if _is_y_mode_choice_sym(item): + # Choice symbol in y-mode choice + return "selected" if item.choice.selection is item else "not-selected" + + if len(item.assignable) <= 1: + # Pinned to a single value + return "" if isinstance(item, Choice) else item.str_value + "-locked" + + if item.type == BOOL: + return item.str_value + "-bool" + + # item.type == TRISTATE + if item.assignable == (1, 2): + return item.str_value + "-my" + return item.str_value + "-tri" + + +def _is_y_mode_choice_sym(item): + # The choice mode is an upper bound on the visibility of choice symbols, so + # we can check the choice symbols' own visibility to see if the choice is + # in y mode + return isinstance(item, Symbol) and item.choice and item.visibility == 2 + + +def _tree_click(event): + # Click on the Kconfig Treeview + + tree = event.widget + if tree.identify_element(event.x, event.y) == "image": + item = tree.identify_row(event.y) + # Select the item before possibly popping up a dialog for + # string/int/hex items, so that its help is visible + _select(tree, item) + _change_node(_id_to_node[item], tree.winfo_toplevel()) + return "break" + + +def _tree_double_click(event): + # Double-click on the Kconfig treeview + + # Do an extra check to avoid weirdness when double-clicking in the tree + # heading area + if not _in_heading(event): + return _tree_enter(event) + + +def _in_heading(event): + # Returns True if 'event' took place in the tree heading + + tree = event.widget + return hasattr(tree, "identify_region") and \ + tree.identify_region(event.x, event.y) in ("heading", "separator") + + +def _tree_enter(event): + # Enter press or double-click within the Kconfig treeview. Prefer to + # open/close/enter menus, but toggle the value if that's not possible. + + tree = event.widget + sel = tree.focus() + if sel: + node = _id_to_node[sel] + + if tree.get_children(sel): + _tree_toggle_open(sel) + elif _single_menu_mode_menu(node, tree): + _enter_menu_and_select_first(node) + else: + _change_node(node, tree.winfo_toplevel()) + + return "break" + + +def _tree_toggle(event): + # Space press within the Kconfig treeview. Prefer to toggle the value, but + # open/close/enter the menu if that's not possible. + + tree = event.widget + sel = tree.focus() + if sel: + node = _id_to_node[sel] + + if _changeable(node): + _change_node(node, tree.winfo_toplevel()) + elif _single_menu_mode_menu(node, tree): + _enter_menu_and_select_first(node) + elif tree.get_children(sel): + _tree_toggle_open(sel) + + return "break" + + +def _tree_left_key(_): + # Left arrow key press within the Kconfig treeview + + if _single_menu: + # Leave the current menu in single-menu mode + _leave_menu() + return "break" + + # Otherwise, default action + + +def _tree_right_key(_): + # Right arrow key press within the Kconfig treeview + + sel = _tree.focus() + if sel: + node = _id_to_node[sel] + # If the node can be entered in single-menu mode, do it + if _single_menu_mode_menu(node, _tree): + _enter_menu_and_select_first(node) + return "break" + + # Otherwise, default action + + +def _single_menu_mode_menu(node, tree): + # Returns True if single-menu mode is on and 'node' is an (interface) + # menu that can be entered + + return _single_menu and tree is _tree and node.is_menuconfig and \ + _shown_menu_nodes(node) + + +def _changeable(node): + # Returns True if 'node' is a Symbol/Choice whose value can be changed + + sc = node.item + + if not isinstance(sc, (Symbol, Choice)): + return False + + # This will hit for invisible symbols, which appear in show-all mode and + # when an invisible symbol has visible children (which can happen e.g. for + # symbols with optional prompts) + if not (node.prompt and expr_value(node.prompt[1])): + return False + + return sc.orig_type in (STRING, INT, HEX) or len(sc.assignable) > 1 \ + or _is_y_mode_choice_sym(sc) + + +def _tree_toggle_open(item): + # Opens/closes the Treeview item 'item' + + if _tree.item(item, "open"): + _tree.item(item, open=False) + else: + node = _id_to_node[item] + if not isinstance(node.item, Symbol): + # Can only get here in full-tree mode + _build_full_tree(node) + _tree.item(item, open=True) + + +def _tree_set_val(tri_val): + def tree_set_val(event): + # n/m/y press within the Kconfig treeview + + # Sets the value of the currently selected item to 'tri_val', if that + # value can be assigned + + sel = event.widget.focus() + if sel: + sc = _id_to_node[sel].item + if isinstance(sc, (Symbol, Choice)) and tri_val in sc.assignable: + _set_val(sc, tri_val) + + return tree_set_val + + +def _tree_open(_): + # Lazily populates the Kconfig tree when menus are opened in full-tree mode + + if _single_menu: + # Work around https://core.tcl.tk/tk/tktview?name=368fa4561e + # ("ttk::treeview open/closed indicators can be toggled while hidden"). + # Clicking on the hidden indicator will call _build_full_tree() in + # single-menu mode otherwise. + return + + node = _id_to_node[_tree.focus()] + # _shown_full_nodes() includes nodes from menus rooted at symbols, so we + # only need to check "real" menus and choices here + if not isinstance(node.item, Symbol): + _build_full_tree(node) + + +def _update_menu_path(_): + # Updates the displayed menu path when nodes are selected in the Kconfig + # treeview + + sel = _tree.selection() + _menupath["text"] = _menu_path_info(_id_to_node[sel[0]]) if sel else "" + + +def _item_row(item): + # Returns the row number 'item' appears on within the Kconfig treeview, + # starting from the top of the tree. Used to preserve scrolling. + # + # ttkTreeview.c in the Tk sources defines a RowNumber() function that does + # the same thing, but it's not exposed. + + row = 0 + + while True: + prev = _tree.prev(item) + if prev: + item = prev + row += _n_rows(item) + else: + item = _tree.parent(item) + if not item: + return row + row += 1 + + +def _n_rows(item): + # _item_row() helper. Returns the number of rows occupied by 'item' and # + # its children. + + rows = 1 + + if _tree.item(item, "open"): + for child in _tree.get_children(item): + rows += _n_rows(child) + + return rows + + +def _attached(item): + # Heuristic for checking if a Treeview item is attached. Doesn't seem to be + # good APIs for this. Might fail for super-obscure cases with tiny trees, + # but you'd just get a small scroll mess-up. + + return bool(_tree.next(item) or _tree.prev(item) or _tree.parent(item)) + + +def _change_node(node, parent): + # Toggles/changes the value of 'node'. 'parent' is the parent window + # (either the main window or the jump-to dialog), in case we need to pop up + # a dialog. + + if not _changeable(node): + return + + # sc = symbol/choice + sc = node.item + + if sc.type in (INT, HEX, STRING): + s = _set_val_dialog(node, parent) + + # Tkinter can return 'unicode' strings on Python 2, which Kconfiglib + # can't deal with. UTF-8-encode the string to work around it. + if _PY2 and isinstance(s, unicode): + s = s.encode("utf-8", "ignore") + + if s is not None: + _set_val(sc, s) + + elif len(sc.assignable) == 1: + # Handles choice symbols for choices in y mode, which are a special + # case: .assignable can be (2,) while .tri_value is 0. + _set_val(sc, sc.assignable[0]) + + else: + # Set the symbol to the value after the current value in + # sc.assignable, with wrapping + val_index = sc.assignable.index(sc.tri_value) + _set_val(sc, sc.assignable[(val_index + 1) % len(sc.assignable)]) + + +def _set_val(sc, val): + # Wrapper around Symbol/Choice.set_value() for updating the menu state and + # _conf_changed + + # Use the string representation of tristate values. This makes the format + # consistent for all symbol types. + if val in TRI_TO_STR: + val = TRI_TO_STR[val] + + if val != sc.str_value: + sc.set_value(val) + _set_conf_changed(True) + + # Update the tree and try to preserve the scroll. Do a cheaper variant + # than in the show-all case, that might mess up the scroll slightly in + # rare cases, but is fast and flicker-free. + + stayput = _loc_ref_item() # Item to preserve scroll for + old_row = _item_row(stayput) + + _update_tree() + + # If the reference item disappeared (can happen if the change was done + # from the jump-to dialog), then avoid messing with the scroll and hope + # for the best + if _attached(stayput): + _tree.yview_scroll(_item_row(stayput) - old_row, "units") + + if _jump_to_tree: + _update_jump_to_display() + + +def _set_val_dialog(node, parent): + # Pops up a dialog for setting the value of the string/int/hex + # symbol at node 'node'. 'parent' is the parent window. + + def ok(_=None): + # No 'nonlocal' in Python 2 + global _entry_res + + s = entry.get() + if sym.type == HEX and not s.startswith(("0x", "0X")): + s = "0x" + s + + if _check_valid(dialog, entry, sym, s): + _entry_res = s + dialog.destroy() + + def cancel(_=None): + global _entry_res + _entry_res = None + dialog.destroy() + + sym = node.item + + dialog = Toplevel(parent) + dialog.title("Enter {} value".format(TYPE_TO_STR[sym.type])) + dialog.resizable(False, False) + dialog.transient(parent) + dialog.protocol("WM_DELETE_WINDOW", cancel) + + ttk.Label(dialog, text=node.prompt[0] + ":") \ + .grid(column=0, row=0, columnspan=2, sticky="w", padx=".3c", + pady=".2c .05c") + + entry = ttk.Entry(dialog, width=30) + # Start with the previous value in the editbox, selected + entry.insert(0, sym.str_value) + entry.selection_range(0, "end") + entry.grid(column=0, row=1, columnspan=2, sticky="ew", padx=".3c") + entry.focus_set() + + range_info = _range_info(sym) + if range_info: + ttk.Label(dialog, text=range_info) \ + .grid(column=0, row=2, columnspan=2, sticky="w", padx=".3c", + pady=".2c 0") + + ttk.Button(dialog, text="OK", command=ok) \ + .grid(column=0, row=4 if range_info else 3, sticky="e", padx=".3c", + pady=".4c") + + ttk.Button(dialog, text="Cancel", command=cancel) \ + .grid(column=1, row=4 if range_info else 3, padx="0 .3c") + + # Give all horizontal space to the grid cell with the OK button, so that + # Cancel moves to the right + dialog.columnconfigure(0, weight=1) + + _center_on_root(dialog) + + # Hack to scroll the entry so that the end of the text is shown, from + # https://stackoverflow.com/questions/29334544/why-does-tkinters-entry-xview-moveto-fail. + # Related Tk ticket: https://core.tcl.tk/tk/info/2513186fff + def scroll_entry(_): + _root.update_idletasks() + entry.unbind("") + entry.xview_moveto(1) + entry.bind("", scroll_entry) + + # The dialog must be visible before we can grab the input + dialog.wait_visibility() + dialog.grab_set() + + dialog.bind("", ok) + dialog.bind("", ok) + dialog.bind("", cancel) + + # Wait for the user to be done with the dialog + parent.wait_window(dialog) + + # Regrab the input in the parent + parent.grab_set() + + return _entry_res + + +def _center_on_root(dialog): + # Centers 'dialog' on the root window. It often ends up at some bad place + # like the top-left corner of the screen otherwise. See the menuconfig() + # function, which has similar logic. + + dialog.withdraw() + _root.update_idletasks() + + dialog_width = dialog.winfo_reqwidth() + dialog_height = dialog.winfo_reqheight() + + screen_width = _root.winfo_screenwidth() + screen_height = _root.winfo_screenheight() + + x = _root.winfo_rootx() + (_root.winfo_width() - dialog_width)//2 + y = _root.winfo_rooty() + (_root.winfo_height() - dialog_height)//2 + + # Clamp so that no part of the dialog is outside the screen + if x + dialog_width > screen_width: + x = screen_width - dialog_width + elif x < 0: + x = 0 + if y + dialog_height > screen_height: + y = screen_height - dialog_height + elif y < 0: + y = 0 + + dialog.geometry("+{}+{}".format(x, y)) + + dialog.deiconify() + + +def _check_valid(dialog, entry, sym, s): + # Returns True if the string 's' is a well-formed value for 'sym'. + # Otherwise, pops up an error and returns False. + + if sym.type not in (INT, HEX): + # Anything goes for non-int/hex symbols + return True + + base = 10 if sym.type == INT else 16 + try: + int(s, base) + except ValueError: + messagebox.showerror( + "Bad value", + "'{}' is a malformed {} value".format( + s, TYPE_TO_STR[sym.type]), + parent=dialog) + entry.focus_set() + return False + + for low_sym, high_sym, cond in sym.ranges: + if expr_value(cond): + low_s = low_sym.str_value + high_s = high_sym.str_value + + if not int(low_s, base) <= int(s, base) <= int(high_s, base): + messagebox.showerror( + "Value out of range", + "{} is outside the range {}-{}".format(s, low_s, high_s), + parent=dialog) + entry.focus_set() + return False + + break + + return True + + +def _range_info(sym): + # Returns a string with information about the valid range for the symbol + # 'sym', or None if 'sym' doesn't have a range + + if sym.type in (INT, HEX): + for low, high, cond in sym.ranges: + if expr_value(cond): + return "Range: {}-{}".format(low.str_value, high.str_value) + + return None + + +def _save(_=None): + # Tries to save the configuration + + if _try_save(_kconf.write_config, _conf_filename, "configuration"): + _set_conf_changed(False) + + _tree.focus_set() + + +def _save_as(): + # Pops up a dialog for saving the configuration to a specific location + + global _conf_filename + + filename = _conf_filename + while True: + filename = filedialog.asksaveasfilename( + title="Save configuration as", + initialdir=os.path.dirname(filename), + initialfile=os.path.basename(filename), + parent=_root) + + if not filename: + break + + if _try_save(_kconf.write_config, filename, "configuration"): + _conf_filename = filename + break + + _tree.focus_set() + + +def _save_minimal(): + # Pops up a dialog for saving a minimal configuration (defconfig) to a + # specific location + + global _minconf_filename + + filename = _minconf_filename + while True: + filename = filedialog.asksaveasfilename( + title="Save minimal configuration as", + initialdir=os.path.dirname(filename), + initialfile=os.path.basename(filename), + parent=_root) + + if not filename: + break + + if _try_save(_kconf.write_min_config, filename, + "minimal configuration"): + + _minconf_filename = filename + break + + _tree.focus_set() + + +def _open(_=None): + # Pops up a dialog for loading a configuration + + global _conf_filename + + if _conf_changed and \ + not messagebox.askokcancel( + "Unsaved changes", + "You have unsaved changes. Load new configuration anyway?"): + + return + + filename = _conf_filename + while True: + filename = filedialog.askopenfilename( + title="Open configuration", + initialdir=os.path.dirname(filename), + initialfile=os.path.basename(filename), + parent=_root) + + if not filename: + break + + if _try_load(filename): + # Maybe something fancier could be done here later to try to + # preserve the scroll + + _conf_filename = filename + _set_conf_changed(_needs_save()) + + if _single_menu and not _shown_menu_nodes(_cur_menu): + # Turn on show-all if we're in single-menu mode and would end + # up with an empty menu + _show_all_var.set(True) + + _update_tree() + + break + + _tree.focus_set() + + +def _toggle_showname(_): + # Toggles show-name mode on/off + + _show_name_var.set(not _show_name_var.get()) + _do_showname() + + +def _do_showname(): + # Updates the UI for the current show-name setting + + # Columns do not automatically shrink/expand, so we have to update + # column widths ourselves + + tree_width = _tree.winfo_width() + + if _show_name_var.get(): + _tree["displaycolumns"] = ("name",) + _tree["show"] = "tree headings" + name_width = tree_width//3 + _tree.column("#0", width=max(tree_width - name_width, 1)) + _tree.column("name", width=name_width) + else: + _tree["displaycolumns"] = () + _tree["show"] = "tree" + _tree.column("#0", width=tree_width) + + _tree.focus_set() + + +def _toggle_showall(_): + # Toggles show-all mode on/off + + _show_all_var.set(not _show_all) + _do_showall() + + +def _do_showall(): + # Updates the UI for the current show-all setting + + # Don't allow turning off show-all if we'd end up with no visible nodes + if _nothing_shown(): + _show_all_var.set(True) + return + + # Save scroll information. old_scroll can end up negative here, if the + # reference item isn't shown (only invisible items on the screen, and + # show-all being turned off). + + stayput = _vis_loc_ref_item() + # Probe the middle of the first row, to play it safe. identify_row(0) seems + # to return the row before the top row. + old_scroll = _item_row(stayput) - \ + _item_row(_tree.identify_row(_treeview_rowheight//2)) + + _update_tree() + + if _show_all: + # Deep magic: Unless we call update_idletasks(), the scroll adjustment + # below is restricted to the height of the old tree, instead of the + # height of the new tree. Since the tree with show-all on is guaranteed + # to be taller, and we want the maximum range, we only call it when + # turning show-all on. + # + # Strictly speaking, something similar ought to be done when changing + # symbol values, but it causes annoying flicker, and in 99% of cases + # things work anyway there (with usually minor scroll mess-ups in the + # 1% case). + _root.update_idletasks() + + # Restore scroll + _tree.yview(_item_row(stayput) - old_scroll) + + _tree.focus_set() + + +def _nothing_shown(): + # _do_showall() helper. Returns True if no nodes would get + # shown with the current show-all setting. Also handles the + # (obscure) case when there are no visible nodes in the entire + # tree, meaning guiconfig was automatically started in + # show-all mode, which mustn't be turned off. + + return not _shown_menu_nodes( + _cur_menu if _single_menu else _kconf.top_node) + + +def _toggle_tree_mode(_): + # Toggles single-menu mode on/off + + _single_menu_var.set(not _single_menu) + _do_tree_mode() + + +def _do_tree_mode(): + # Updates the UI for the current tree mode (full-tree or single-menu) + + loc_ref_node = _id_to_node[_loc_ref_item()] + + if not _single_menu: + # _jump_to() -> _enter_menu() already updates the tree, but + # _jump_to() -> load_parents() doesn't, because it isn't always needed. + # We always need to update the tree here, e.g. to add/remove "--->". + _update_tree() + + _jump_to(loc_ref_node) + _tree.focus_set() + + +def _enter_menu_and_select_first(menu): + # Enters the menu 'menu' and selects the first item. Used in single-menu + # mode. + + _enter_menu(menu) + _select(_tree, _tree.get_children()[0]) + + +def _enter_menu(menu): + # Enters the menu 'menu'. Used in single-menu mode. + + global _cur_menu + + _cur_menu = menu + _update_tree() + + _backbutton["state"] = "disabled" if menu is _kconf.top_node else "normal" + + +def _leave_menu(): + # Leaves the current menu. Used in single-menu mode. + + global _cur_menu + + if _cur_menu is not _kconf.top_node: + old_menu = _cur_menu + + _cur_menu = _parent_menu(_cur_menu) + _update_tree() + + _select(_tree, id(old_menu)) + + if _cur_menu is _kconf.top_node: + _backbutton["state"] = "disabled" + + _tree.focus_set() + + +def _select(tree, item): + # Selects, focuses, and see()s 'item' in 'tree' + + tree.selection_set(item) + tree.focus(item) + tree.see(item) + + +def _loc_ref_item(): + # Returns a Treeview item that can serve as a reference for the current + # scroll location. We try to make this item stay on the same row on the + # screen when updating the tree. + + # If the selected item is visible, use that + sel = _tree.selection() + if sel and _tree.bbox(sel[0]): + return sel[0] + + # Otherwise, use the middle item on the screen. If it doesn't exist, the + # tree is probably really small, so use the first item in the entire tree. + return _tree.identify_row(_tree.winfo_height()//2) or \ + _tree.get_children()[0] + + +def _vis_loc_ref_item(): + # Like _loc_ref_item(), but finds a visible item around the reference item. + # Used when changing show-all mode, where non-visible (red) items will + # disappear. + + item = _loc_ref_item() + + vis_before = _vis_before(item) + if vis_before and _tree.bbox(vis_before): + return vis_before + + vis_after = _vis_after(item) + if vis_after and _tree.bbox(vis_after): + return vis_after + + return vis_before or vis_after + + +def _vis_before(item): + # _vis_loc_ref_item() helper. Returns the first visible (not red) item, + # searching backwards from 'item'. + + while item: + if not _tree.tag_has("invisible", item): + return item + + prev = _tree.prev(item) + item = prev if prev else _tree.parent(item) + + return None + + +def _vis_after(item): + # _vis_loc_ref_item() helper. Returns the first visible (not red) item, + # searching forwards from 'item'. + + while item: + if not _tree.tag_has("invisible", item): + return item + + next = _tree.next(item) + if next: + item = next + else: + item = _tree.parent(item) + if not item: + break + item = _tree.next(item) + + return None + + +def _on_quit(_=None): + # Called when the user wants to exit + + if not _conf_changed: + _quit("No changes to save (for '{}')".format(_conf_filename)) + return + + while True: + ync = messagebox.askyesnocancel("Quit", "Save changes?") + if ync is None: + return + + if not ync: + _quit("Configuration ({}) was not saved".format(_conf_filename)) + return + + if _try_save(_kconf.write_config, _conf_filename, "configuration"): + # _try_save() already prints the "Configuration saved to ..." + # message + _quit() + return + + +def _quit(msg=None): + # Quits the application + + # Do not call sys.exit() here, in case we're being run from a script + _root.destroy() + if msg: + print(msg) + + +def _try_save(save_fn, filename, description): + # Tries to save a configuration file. Pops up an error and returns False on + # failure. + # + # save_fn: + # Function to call with 'filename' to save the file + # + # description: + # String describing the thing being saved + + try: + # save_fn() returns a message to print + msg = save_fn(filename) + _set_status(msg) + print(msg) + return True + except EnvironmentError as e: + messagebox.showerror( + "Error saving " + description, + "Error saving {} to '{}': {} (errno: {})" + .format(description, e.filename, e.strerror, + errno.errorcode[e.errno])) + return False + + +def _try_load(filename): + # Tries to load a configuration file. Pops up an error and returns False on + # failure. + # + # filename: + # Configuration file to load + + try: + msg = _kconf.load_config(filename) + _set_status(msg) + print(msg) + return True + except EnvironmentError as e: + messagebox.showerror( + "Error loading configuration", + "Error loading '{}': {} (errno: {})" + .format(filename, e.strerror, errno.errorcode[e.errno])) + return False + + +def _jump_to_dialog(_=None): + # Pops up a dialog for jumping directly to a particular node. Symbol values + # can also be changed within the dialog. + # + # Note: There's nothing preventing this from doing an incremental search + # like menuconfig.py does, but currently it's a bit jerky for large Kconfig + # trees, at least when inputting the beginning of the search string. We'd + # need to somehow only update the tree items that are shown in the Treeview + # to fix it. + + global _jump_to_tree + + def search(_=None): + _update_jump_to_matches(msglabel, entry.get()) + + def jump_to_selected(event=None): + # Jumps to the selected node and closes the dialog + + # Ignore double clicks on the image and in the heading area + if event and (tree.identify_element(event.x, event.y) == "image" or + _in_heading(event)): + return + + sel = tree.selection() + if not sel: + return + + node = _id_to_node[sel[0]] + + if node not in _shown_menu_nodes(_parent_menu(node)): + _show_all_var.set(True) + if not _single_menu: + # See comment in _do_tree_mode() + _update_tree() + + _jump_to(node) + + dialog.destroy() + + def tree_select(_): + jumpto_button["state"] = "normal" if tree.selection() else "disabled" + + + dialog = Toplevel(_root) + dialog.geometry("+{}+{}".format( + _root.winfo_rootx() + 50, _root.winfo_rooty() + 50)) + dialog.title("Jump to symbol/choice/menu/comment") + dialog.minsize(128, 128) # See _create_ui() + dialog.transient(_root) + + ttk.Label(dialog, text=_JUMP_TO_HELP) \ + .grid(column=0, row=0, columnspan=2, sticky="w", padx=".1c", + pady=".1c") + + entry = ttk.Entry(dialog) + entry.grid(column=0, row=1, sticky="ew", padx=".1c", pady=".1c") + entry.focus_set() + + entry.bind("", search) + entry.bind("", search) + + ttk.Button(dialog, text="Search", command=search) \ + .grid(column=1, row=1, padx="0 .1c", pady="0 .1c") + + msglabel = ttk.Label(dialog) + msglabel.grid(column=0, row=2, sticky="w", pady="0 .1c") + + panedwindow, tree = _create_kconfig_tree_and_desc(dialog) + panedwindow.grid(column=0, row=3, columnspan=2, sticky="nsew") + + # Clear tree + tree.set_children("") + + _jump_to_tree = tree + + jumpto_button = ttk.Button(dialog, text="Jump to selected item", + state="disabled", command=jump_to_selected) + jumpto_button.grid(column=0, row=4, columnspan=2, sticky="ns", pady=".1c") + + dialog.columnconfigure(0, weight=1) + # Only the pane with the Kconfig tree and description grows vertically + dialog.rowconfigure(3, weight=1) + + # See the menuconfig() function + _root.update_idletasks() + dialog.geometry(dialog.geometry()) + + # The dialog must be visible before we can grab the input + dialog.wait_visibility() + dialog.grab_set() + + tree.bind("", jump_to_selected) + tree.bind("", jump_to_selected) + tree.bind("", jump_to_selected) + # add=True to avoid overriding the description text update + tree.bind("<>", tree_select, add=True) + + dialog.bind("", lambda _: dialog.destroy()) + + # Wait for the user to be done with the dialog + _root.wait_window(dialog) + + _jump_to_tree = None + + _tree.focus_set() + + +def _update_jump_to_matches(msglabel, search_string): + # Searches for nodes matching the search string and updates + # _jump_to_matches. Puts a message in 'msglabel' if there are no matches, + # or regex errors. + + global _jump_to_matches + + _jump_to_tree.selection_set(()) + + try: + # We could use re.IGNORECASE here instead of lower(), but this is + # faster for regexes like '.*debug$' (though the '.*' is redundant + # there). Those probably have bad interactions with re.search(), which + # matches anywhere in the string. + regex_searches = [re.compile(regex).search + for regex in search_string.lower().split()] + except re.error as e: + msg = "Bad regular expression" + # re.error.msg was added in Python 3.5 + if hasattr(e, "msg"): + msg += ": " + e.msg + msglabel["text"] = msg + # Clear tree + _jump_to_tree.set_children("") + return + + _jump_to_matches = [] + add_match = _jump_to_matches.append + + for node in _sorted_sc_nodes(): + # Symbol/choice + sc = node.item + + for search in regex_searches: + # Both the name and the prompt might be missing, since + # we're searching both symbols and choices + + # Does the regex match either the symbol name or the + # prompt (if any)? + if not (sc.name and search(sc.name.lower()) or + node.prompt and search(node.prompt[0].lower())): + + # Give up on the first regex that doesn't match, to + # speed things up a bit when multiple regexes are + # entered + break + + else: + add_match(node) + + # Search menus and comments + + for node in _sorted_menu_comment_nodes(): + for search in regex_searches: + if not search(node.prompt[0].lower()): + break + else: + add_match(node) + + msglabel["text"] = "" if _jump_to_matches else "No matches" + + _update_jump_to_display() + + if _jump_to_matches: + item = id(_jump_to_matches[0]) + _jump_to_tree.selection_set(item) + _jump_to_tree.focus(item) + + +def _update_jump_to_display(): + # Updates the images and text for the items in _jump_to_matches, and sets + # them as the items of _jump_to_tree + + # Micro-optimize a bit + item = _jump_to_tree.item + id_ = id + node_str = _node_str + img_tag = _img_tag + visible = _visible + for node in _jump_to_matches: + item(id_(node), + text=node_str(node), + tags=img_tag(node) if visible(node) else + img_tag(node) + " invisible") + + _jump_to_tree.set_children("", *map(id, _jump_to_matches)) + + +def _jump_to(node): + # Jumps directly to 'node' and selects it + + if _single_menu: + _enter_menu(_parent_menu(node)) + else: + _load_parents(node) + + _select(_tree, id(node)) + + +# Obscure Python: We never pass a value for cached_nodes, and it keeps pointing +# to the same list. This avoids a global. +def _sorted_sc_nodes(cached_nodes=[]): + # Returns a sorted list of symbol and choice nodes to search. The symbol + # nodes appear first, sorted by name, and then the choice nodes, sorted by + # prompt and (secondarily) name. + + if not cached_nodes: + # Add symbol nodes + for sym in sorted(_kconf.unique_defined_syms, + key=lambda sym: sym.name): + # += is in-place for lists + cached_nodes += sym.nodes + + # Add choice nodes + + choices = sorted(_kconf.unique_choices, + key=lambda choice: choice.name or "") + + cached_nodes += sorted( + [node for choice in choices for node in choice.nodes], + key=lambda node: node.prompt[0] if node.prompt else "") + + return cached_nodes + + +def _sorted_menu_comment_nodes(cached_nodes=[]): + # Returns a list of menu and comment nodes to search, sorted by prompt, + # with the menus first + + if not cached_nodes: + def prompt_text(mc): + return mc.prompt[0] + + cached_nodes += sorted(_kconf.menus, key=prompt_text) + cached_nodes += sorted(_kconf.comments, key=prompt_text) + + return cached_nodes + + +def _load_parents(node): + # Menus are lazily populated as they're opened in full-tree mode, but + # jumping to an item needs its parent menus to be populated. This function + # populates 'node's parents. + + # Get all parents leading up to 'node', sorted with the root first + parents = [] + cur = node.parent + while cur is not _kconf.top_node: + parents.append(cur) + cur = cur.parent + parents.reverse() + + for i, parent in enumerate(parents): + if not _tree.item(id(parent), "open"): + # Found a closed menu. Populate it and all the remaining menus + # leading up to 'node'. + for parent in parents[i:]: + # We only need to populate "real" menus/choices. Implicit menus + # are populated when their parents menus are entered. + if not isinstance(parent.item, Symbol): + _build_full_tree(parent) + return + + +def _parent_menu(node): + # Returns the menu node of the menu that contains 'node'. In addition to + # proper 'menu's, this might also be a 'menuconfig' symbol or a 'choice'. + # "Menu" here means a menu in the interface. + + menu = node.parent + while not menu.is_menuconfig: + menu = menu.parent + return menu + + +def _trace_write(var, fn): + # Makes fn() be called whenever the Tkinter Variable 'var' changes value + + # trace_variable() is deprecated according to the docstring, + # which recommends trace_add() + if hasattr(var, "trace_add"): + var.trace_add("write", fn) + else: + var.trace_variable("w", fn) + + +def _info_str(node): + # Returns information about the menu node 'node' as a string. + # + # The helper functions are responsible for adding newlines. This allows + # them to return "" if they don't want to add any output. + + if isinstance(node.item, Symbol): + sym = node.item + + return ( + _name_info(sym) + + _help_info(sym) + + _direct_dep_info(sym) + + _defaults_info(sym) + + _select_imply_info(sym) + + _kconfig_def_info(sym) + ) + + if isinstance(node.item, Choice): + choice = node.item + + return ( + _name_info(choice) + + _help_info(choice) + + 'Mode: {}\n\n'.format(choice.str_value) + + _choice_syms_info(choice) + + _direct_dep_info(choice) + + _defaults_info(choice) + + _kconfig_def_info(choice) + ) + + # node.item in (MENU, COMMENT) + return _kconfig_def_info(node) + + +def _name_info(sc): + # Returns a string with the name of the symbol/choice. Choices are shown as + # . + + return (sc.name if sc.name else standard_sc_expr_str(sc)) + "\n\n" + + +def _value_info(sym): + # Returns a string showing 'sym's value + + # Only put quotes around the value for string symbols + return "Value: {}\n".format( + '"{}"'.format(sym.str_value) + if sym.orig_type == STRING + else sym.str_value) + + +def _choice_syms_info(choice): + # Returns a string listing the choice symbols in 'choice'. Adds + # "(selected)" next to the selected one. + + s = "Choice symbols:\n" + + for sym in choice.syms: + s += " - " + sym.name + if sym is choice.selection: + s += " (selected)" + s += "\n" + + return s + "\n" + + +def _help_info(sc): + # Returns a string with the help text(s) of 'sc' (Symbol or Choice). + # Symbols and choices defined in multiple locations can have multiple help + # texts. + + s = "" + + for node in sc.nodes: + if node.help is not None: + s += node.help + "\n\n" + + return s + + +def _direct_dep_info(sc): + # Returns a string describing the direct dependencies of 'sc' (Symbol or + # Choice). The direct dependencies are the OR of the dependencies from each + # definition location. The dependencies at each definition location come + # from 'depends on' and dependencies inherited from parent items. + + return "" if sc.direct_dep is _kconf.y else \ + 'Direct dependencies (={}):\n{}\n' \ + .format(TRI_TO_STR[expr_value(sc.direct_dep)], + _split_expr_info(sc.direct_dep, 2)) + + +def _defaults_info(sc): + # Returns a string describing the defaults of 'sc' (Symbol or Choice) + + if not sc.defaults: + return "" + + s = "Default" + if len(sc.defaults) > 1: + s += "s" + s += ":\n" + + for val, cond in sc.orig_defaults: + s += " - " + if isinstance(sc, Symbol): + s += _expr_str(val) + + # Skip the tristate value hint if the expression is just a single + # symbol. _expr_str() already shows its value as a string. + # + # This also avoids showing the tristate value for string/int/hex + # defaults, which wouldn't make any sense. + if isinstance(val, tuple): + s += ' (={})'.format(TRI_TO_STR[expr_value(val)]) + else: + # Don't print the value next to the symbol name for choice + # defaults, as it looks a bit confusing + s += val.name + s += "\n" + + if cond is not _kconf.y: + s += " Condition (={}):\n{}" \ + .format(TRI_TO_STR[expr_value(cond)], + _split_expr_info(cond, 4)) + + return s + "\n" + + +def _split_expr_info(expr, indent): + # Returns a string with 'expr' split into its top-level && or || operands, + # with one operand per line, together with the operand's value. This is + # usually enough to get something readable for long expressions. A fancier + # recursive thingy would be possible too. + # + # indent: + # Number of leading spaces to add before the split expression. + + if len(split_expr(expr, AND)) > 1: + split_op = AND + op_str = "&&" + else: + split_op = OR + op_str = "||" + + s = "" + for i, term in enumerate(split_expr(expr, split_op)): + s += "{}{} {}".format(indent*" ", + " " if i == 0 else op_str, + _expr_str(term)) + + # Don't bother showing the value hint if the expression is just a + # single symbol. _expr_str() already shows its value. + if isinstance(term, tuple): + s += " (={})".format(TRI_TO_STR[expr_value(term)]) + + s += "\n" + + return s + + +def _select_imply_info(sym): + # Returns a string with information about which symbols 'select' or 'imply' + # 'sym'. The selecting/implying symbols are grouped according to which + # value they select/imply 'sym' to (n/m/y). + + def sis(expr, val, title): + # sis = selects/implies + sis = [si for si in split_expr(expr, OR) if expr_value(si) == val] + if not sis: + return "" + + res = title + for si in sis: + res += " - {}\n".format(split_expr(si, AND)[0].name) + return res + "\n" + + s = "" + + if sym.rev_dep is not _kconf.n: + s += sis(sym.rev_dep, 2, + "Symbols currently y-selecting this symbol:\n") + s += sis(sym.rev_dep, 1, + "Symbols currently m-selecting this symbol:\n") + s += sis(sym.rev_dep, 0, + "Symbols currently n-selecting this symbol (no effect):\n") + + if sym.weak_rev_dep is not _kconf.n: + s += sis(sym.weak_rev_dep, 2, + "Symbols currently y-implying this symbol:\n") + s += sis(sym.weak_rev_dep, 1, + "Symbols currently m-implying this symbol:\n") + s += sis(sym.weak_rev_dep, 0, + "Symbols currently n-implying this symbol (no effect):\n") + + return s + + +def _kconfig_def_info(item): + # Returns a string with the definition of 'item' in Kconfig syntax, + # together with the definition location(s) and their include and menu paths + + nodes = [item] if isinstance(item, MenuNode) else item.nodes + + s = "Kconfig definition{}, with parent deps. propagated to 'depends on'\n" \ + .format("s" if len(nodes) > 1 else "") + s += (len(s) - 1)*"=" + + for node in nodes: + s += "\n\n" \ + "At {}:{}\n" \ + "{}" \ + "Menu path: {}\n\n" \ + "{}" \ + .format(node.filename, node.linenr, + _include_path_info(node), + _menu_path_info(node), + node.custom_str(_name_and_val_str)) + + return s + + +def _include_path_info(node): + if not node.include_path: + # In the top-level Kconfig file + return "" + + return "Included via {}\n".format( + " -> ".join("{}:{}".format(filename, linenr) + for filename, linenr in node.include_path)) + + +def _menu_path_info(node): + # Returns a string describing the menu path leading up to 'node' + + path = "" + + while node.parent is not _kconf.top_node: + node = node.parent + + # Promptless choices might appear among the parents. Use + # standard_sc_expr_str() for them, so that they show up as + # ''. + path = " -> " + (node.prompt[0] if node.prompt else + standard_sc_expr_str(node.item)) + path + + return "(Top)" + path + + +def _name_and_val_str(sc): + # Custom symbol/choice printer that shows symbol values after symbols + + # Show the values of non-constant (non-quoted) symbols that don't look like + # numbers. Things like 123 are actually symbol references, and only work as + # expected due to undefined symbols getting their name as their value. + # Showing the symbol value for those isn't helpful though. + if isinstance(sc, Symbol) and not sc.is_constant and not _is_num(sc.name): + if not sc.nodes: + # Undefined symbol reference + return "{}(undefined/n)".format(sc.name) + + return '{}(={})'.format(sc.name, sc.str_value) + + # For other items, use the standard format + return standard_sc_expr_str(sc) + + +def _expr_str(expr): + # Custom expression printer that shows symbol values + return expr_str(expr, _name_and_val_str) + + +def _is_num(name): + # Heuristic to see if a symbol name looks like a number, for nicer output + # when printing expressions. Things like 16 are actually symbol names, only + # they get their name as their value when the symbol is undefined. + + try: + int(name) + except ValueError: + if not name.startswith(("0x", "0X")): + return False + + try: + int(name, 16) + except ValueError: + return False + + return True + + +if __name__ == "__main__": + _main() diff --git a/util/kconfig/lib/kconfiglib-14.1.0.dist-info/INSTALLER b/util/kconfig/lib/kconfiglib-14.1.0.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/util/kconfig/lib/kconfiglib-14.1.0.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/util/kconfig/lib/kconfiglib-14.1.0.dist-info/LICENSE.txt b/util/kconfig/lib/kconfiglib-14.1.0.dist-info/LICENSE.txt new file mode 100644 index 0000000..8b31efc --- /dev/null +++ b/util/kconfig/lib/kconfiglib-14.1.0.dist-info/LICENSE.txt @@ -0,0 +1,5 @@ +Copyright (c) 2011-2019, Ulf Magnusson + +Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/util/kconfig/lib/kconfiglib-14.1.0.dist-info/METADATA b/util/kconfig/lib/kconfiglib-14.1.0.dist-info/METADATA new file mode 100644 index 0000000..cf6ca78 --- /dev/null +++ b/util/kconfig/lib/kconfiglib-14.1.0.dist-info/METADATA @@ -0,0 +1,876 @@ +Metadata-Version: 2.1 +Name: kconfiglib +Version: 14.1.0 +Summary: A flexible Python Kconfig implementation +Home-page: https://github.com/ulfalizer/Kconfiglib +Author: Ulf "Ulfalizer" Magnusson +Author-email: ulfalizer@gmail.com +License: ISC +Project-URL: GitHub repository, https://github.com/ulfalizer/Kconfiglib +Project-URL: Examples, https://github.com/ulfalizer/Kconfiglib/tree/master/examples +Keywords: kconfig,kbuild,menuconfig,configuration-management +Platform: UNKNOWN +Classifier: Development Status :: 5 - Production/Stable +Classifier: Intended Audience :: Developers +Classifier: Topic :: Software Development :: Build Tools +Classifier: Topic :: System :: Operating System Kernels :: Linux +Classifier: License :: OSI Approved :: ISC License (ISCL) +Classifier: Operating System :: POSIX +Classifier: Operating System :: Microsoft :: Windows +Classifier: Programming Language :: Python :: 2 +Classifier: Programming Language :: Python :: 2.7 +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.2 +Classifier: Programming Language :: Python :: 3.3 +Classifier: Programming Language :: Python :: 3.4 +Classifier: Programming Language :: Python :: 3.5 +Classifier: Programming Language :: Python :: 3.6 +Classifier: Programming Language :: Python :: 3.7 +Classifier: Programming Language :: Python :: 3.8 +Classifier: Programming Language :: Python :: Implementation :: CPython +Classifier: Programming Language :: Python :: Implementation :: PyPy +Requires-Python: >=2.7,!=3.0.*,!=3.1.* + +.. contents:: Table of contents + :backlinks: none + +News +---- + +Dependency loop with recent linux-next kernels +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +To fix issues with dependency loops on recent linux-next kernels, apply `this +patch `_. Hopefully, +it will be in ``linux-next`` soon. + +``windows-curses`` is no longer automatically installed on Windows +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Starting with Kconfiglib 13.0.0, the `windows-curses +`__ package is no longer +automatically installed on Windows, and needs to be installed manually for the +terminal ``menuconfig`` to work. + +This fixes installation of Kconfiglib on MSYS2, which is not compatible with +``windows-curses``. See `this issue +`__. + +The ``menuconfig`` now shows a hint re. installing ``windows-curses`` when the +``curses`` module can't be imported on Windows. + +Sorry if this change caused problems! + +Overview +-------- + +Kconfiglib is a `Kconfig +`__ +implementation in Python 2/3. It started out as a helper library, but now has a +enough functionality to also work well as a standalone Kconfig implementation +(including `terminal and GUI menuconfig interfaces `_ +and `Kconfig extensions`_). + +The entire library is contained in `kconfiglib.py +`_. The +bundled scripts are implemented on top of it. Implementing your own scripts +should be relatively easy, if needed. + +Kconfiglib is used exclusively by e.g. the `Zephyr +`__, `esp-idf +`__, and `ACRN +`__ projects. It is also used for many small helper +scripts in various projects. + +Since Kconfiglib is based around a library, it can be used e.g. to generate a +`Kconfig cross-reference +`_, using +the same robust Kconfig parser used for other Kconfig tools, instead of brittle +ad-hoc parsing. The documentation generation script can be found `here +`__. + +Kconfiglib implements the recently added `Kconfig preprocessor +`__. +For backwards compatibility, environment variables can be referenced both as +``$(FOO)`` (the new syntax) and as ``$FOO`` (the old syntax). The old syntax is +deprecated, but will probably be supported for a long time, as it's needed to +stay compatible with older Linux kernels. The major version will be increased +if support is ever dropped. Using the old syntax with an undefined environment +variable keeps the string as is. + +Note: See `this issue `__ if +you run into a "macro expanded to blank string" error with kernel 4.18+. + +See `this page +`__ for some +Kconfig tips and best practices. + +Installation +------------ + +Installation with pip +~~~~~~~~~~~~~~~~~~~~~ + +Kconfiglib is available on `PyPI `_ and can be +installed with e.g. + +.. code:: + + $ pip(3) install kconfiglib + +Microsoft Windows is supported. + +The ``pip`` installation will give you both the base library and the following +executables. All but two (``genconfig`` and ``setconfig``) mirror functionality +available in the C tools. + +- `menuconfig `_ + +- `guiconfig `_ + +- `oldconfig `_ + +- `olddefconfig `_ + +- `savedefconfig `_ + +- `defconfig `_ + +- `alldefconfig `_ + +- `allnoconfig `_ + +- `allmodconfig `_ + +- `allyesconfig `_ + +- `listnewconfig `_ + +- `genconfig `_ + +- `setconfig `_ + +``genconfig`` is intended to be run at build time. It generates a C header from +the configuration and (optionally) information that can be used to rebuild only +files that reference Kconfig symbols that have changed value. + +Starting with Kconfiglib version 12.2.0, all utilities are compatible with both +Python 2 and Python 3. Previously, ``menuconfig.py`` only ran under Python 3 +(i.e., it's now more backwards compatible than before). + +**Note:** If you install Kconfiglib with ``pip``'s ``--user`` flag, make sure +that your ``PATH`` includes the directory where the executables end up. You can +list the installed files with ``pip(3) show -f kconfiglib``. + +All releases have a corresponding tag in the git repository, e.g. ``v14.1.0`` +(the latest version). + +`Semantic versioning `_ is used. There's been ten small +changes to the behavior of the API, a Windows packaging change, and a hashbang +change to use ``python3`` +(`1 `_, +`2 `_, +`3 `_, +`4 `_, +`5 `_, +`6 `_, +`7 `_, +`8 `_, +`9 `_, +`10 `_, +`Windows packaging change `_, +`Python 3 hashbang change `_), +which is why the major version is at 14 rather than 2. I do major version bumps +for all behavior changes, even tiny ones, and most of these were fixes for baby +issues in the early days of the Kconfiglib 2 API. + +Manual installation +~~~~~~~~~~~~~~~~~~~ + +Just drop ``kconfiglib.py`` and the scripts you want somewhere. There are no +third-party dependencies, but the terminal ``menuconfig`` won't work on Windows +unless a package like `windows-curses +`__ is installed. + +Installation for the Linux kernel +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +See the module docstring at the top of `kconfiglib.py `_. + +Python version compatibility (2.7/3.2+) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Kconfiglib and all utilities run under both Python 2.7 and Python 3.2 and +later. The code mostly uses basic Python features and has no third-party +dependencies, so keeping it backwards-compatible is pretty low effort. + +The 3.2 requirement comes from ``argparse``. ``format()`` with unnumbered +``{}`` is used as well. + +A recent Python 3 version is recommended if you have a choice, as it'll give +you better Unicode handling. + +Getting started +--------------- + +1. `Install `_ the library and the utilities. + +2. Write `Kconfig + `__ + files that describe the available configuration options. See `this page + `__ for some + general Kconfig advice. + +3. Generate an initial configuration with e.g. ``menuconfig``/``guiconfig`` or + ``alldefconfig``. The configuration is saved as ``.config`` by default. + + For more advanced projects, the ``defconfig`` utility can be used to + generate the initial configuration from an existing configuration file. + Usually, this existing configuration file would be a minimal configuration + file, as generated by e.g. ``savedefconfig``. + +4. Run ``genconfig`` to generate a header file. By default, it is saved as + ``config.h``. + + Normally, ``genconfig`` would be run automatically as part of the build. + + Before writing a header file or other configuration output, Kconfiglib + compares the old contents of the file against the new contents. If there's + no change, the write is skipped. This avoids updating file metadata like the + modification time, and might save work depending on your build setup. + + Adding new configuration output formats should be relatively straightforward. + See the implementation of ``write_config()`` in `kconfiglib.py + `_. + The documentation for the ``Symbol.config_string`` property has some tips as + well. + +5. To update an old ``.config`` file after the Kconfig files have changed (e.g. + to add new options), run ``oldconfig`` (prompts for values for new options) + or ``olddefconfig`` (gives new options their default value). Entering the + ``menuconfig`` or ``guiconfig`` interface and saving the configuration will + also update it (the configuration interfaces always prompt for saving + on exit if it would modify the contents of the ``.config`` file). + + Due to Kconfig semantics, simply loading an old ``.config`` file performs an + implicit ``olddefconfig``, so building will normally not be affected by + having an outdated configuration. + +Whenever ``.config`` is overwritten, the previous version of the file is saved +to ``.config.old`` (or, more generally, to ``$KCONFIG_CONFIG.old``). + +Using ``.config`` files as Make input +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +``.config`` files use Make syntax and can be included directly in Makefiles to +read configuration values from there. This is why ``n``-valued +``bool``/``tristate`` values are written out as ``# CONFIG_FOO is not set`` (a +Make comment) in ``.config``, allowing them to be tested with ``ifdef`` in +Make. + +If you make use of this, you might want to pass ``--config-out `` to +``genconfig`` and include the configuration file it generates instead of +including ``.config`` directly. This has the advantage that the generated +configuration file will always be a "full" configuration file, even if +``.config`` is outdated. Otherwise, it might be necessary to run +``old(def)config`` or ``menuconfig``/``guiconfig`` before rebuilding with an +outdated ``.config``. + +If you use ``--sync-deps`` to generate incremental build information, you can +include ``deps/auto.conf`` instead, which is also a full configuration file. + +Useful helper macros +~~~~~~~~~~~~~~~~~~~~ + +The `include/linux/kconfig.h +`_ +header in the Linux kernel defines some useful helper macros for testing +Kconfig configuration values. + +``IS_ENABLED()`` is generally useful, allowing configuration values to be +tested in ``if`` statements with no runtime overhead. + +Incremental building +~~~~~~~~~~~~~~~~~~~~ + +See the docstring for ``Kconfig.sync_deps()`` in `kconfiglib.py +`_ for hints +on implementing incremental builds (rebuilding just source files that reference +changed configuration values). + +Running the ``scripts/basic/fixdep.c`` tool from the kernel on the output of +``gcc -MD `` might give you an idea of how it all fits together. + +Library documentation +--------------------- + +Kconfiglib comes with extensive documentation in the form of docstrings. To view it, run e.g. +the following command: + +.. code:: sh + + $ pydoc(3) kconfiglib + +For HTML output, add ``-w``: + +.. code:: sh + + $ pydoc(3) -w kconfiglib + +This will also work after installing Kconfiglib with ``pip(3)``. + +Documentation for other modules can be viewed in the same way (though a plain +``--help`` will work when they're run as executables): + +.. code:: sh + + $ pydoc(3) menuconfig/guiconfig/... + +A good starting point for learning the library is to read the module docstring +(which you could also just read directly at the beginning of `kconfiglib.py +`_). It +gives an introduction to symbol values, the menu tree, and expressions. + +After reading the module docstring, a good next step is to read the ``Kconfig`` +class documentation, and then the documentation for the ``Symbol``, ``Choice``, +and ``MenuNode`` classes. + +Please tell me if something is unclear or can be explained better. + +Library features +---------------- + +Kconfiglib can do the following, among other things: + +- **Programmatically get and set symbol values** + + See `allnoconfig.py + `_ and + `allyesconfig.py + `_, + which are automatically verified to produce identical output to the standard + ``make allnoconfig`` and ``make allyesconfig``. + +- **Read and write .config and defconfig files** + + The generated ``.config`` and ``defconfig`` (minimal configuration) files are + character-for-character identical to what the C implementation would generate + (except for the header comment). The test suite relies on this, as it + compares the generated files. + +- **Write C headers** + + The generated headers use the same format as ``include/generated/autoconf.h`` + from the Linux kernel. Output for symbols appears in the order that they're + defined, unlike in the C tools (where the order depends on the hash table + implementation). + +- **Implement incremental builds** + + This uses the same scheme as the ``include/config`` directory in the kernel: + Symbols are translated into files that are touched when the symbol's value + changes between builds, which can be used to avoid having to do a full + rebuild whenever the configuration is changed. + + See the ``sync_deps()`` function for more information. + +- **Inspect symbols** + + Printing a symbol or other item (which calls ``__str__()``) returns its + definition in Kconfig format. This also works for symbols defined in multiple + locations. + + A helpful ``__repr__()`` is on all objects too. + + All ``__str__()`` and ``__repr__()`` methods are deliberately implemented + with just public APIs, so all symbol information can be fetched separately as + well. + +- **Inspect expressions** + + Expressions use a simple tuple-based format that can be processed manually + if needed. Expression printing and evaluation functions are provided, + implemented with public APIs. + +- **Inspect the menu tree** + + The underlying menu tree is exposed, including submenus created implicitly + from symbols depending on preceding symbols. This can be used e.g. to + implement menuconfig-like functionality. + + See `menuconfig.py + `_/`guiconfig.py + `_ and the + minimalistic `menuconfig_example.py + `_ + example. + +Kconfig extensions +~~~~~~~~~~~~~~~~~~ + +The following Kconfig extensions are available: + +- ``source`` supports glob patterns and includes each matching file. A pattern + is required to match at least one file. + + A separate ``osource`` statement is available for cases where it's okay for + the pattern to match no files (in which case ``osource`` turns into a no-op). + +- A relative ``source`` statement (``rsource``) is available, where file paths + are specified relative to the directory of the current Kconfig file. An + ``orsource`` statement is available as well, analogous to ``osource``. + +- Preprocessor user functions can be defined in Python, which makes it simple + to integrate information from existing Python tools into Kconfig (e.g. to + have Kconfig symbols depend on hardware information stored in some other + format). + + See the *Kconfig extensions* section in the + `kconfiglib.py `_ + module docstring for more information. + +- ``def_int``, ``def_hex``, and ``def_string`` are available in addition to + ``def_bool`` and ``def_tristate``, allowing ``int``, ``hex``, and ``string`` + symbols to be given a type and a default at the same time. + + These can be useful in projects that make use of symbols defined in multiple + locations, and remove some Kconfig inconsistency. + +- Environment variables are expanded directly in e.g. ``source`` and + ``mainmenu`` statements, meaning ``option env`` symbols are redundant. + + This is the standard behavior with the new `Kconfig preprocessor + `__, + which Kconfiglib implements. + + ``option env`` symbols are accepted but ignored, which leads the caveat that + they must have the same name as the environment variables they reference + (Kconfiglib warns if the names differ). This keeps Kconfiglib compatible with + older Linux kernels, where the name of the ``option env`` symbol always + matched the environment variable. Compatibility with older Linux kernels is + the main reason ``option env`` is still supported. + + The C tools have dropped support for ``option env``. + +- Two extra optional warnings can be enabled by setting environment variables, + covering cases that are easily missed when making changes to Kconfig files: + + * ``KCONFIG_WARN_UNDEF``: If set to ``y``, warnings will be generated for all + references to undefined symbols within Kconfig files. The only gotcha is + that all hex literals must be prefixed with ``0x`` or ``0X``, to make it + possible to distinguish them from symbol references. + + Some projects (e.g. the Linux kernel) use multiple Kconfig trees with many + shared Kconfig files, leading to some safe undefined symbol references. + ``KCONFIG_WARN_UNDEF`` is useful in projects that only have a single + Kconfig tree though. + + ``KCONFIG_STRICT`` is an older alias for this environment variable, + supported for backwards compatibility. + + * ``KCONFIG_WARN_UNDEF_ASSIGN``: If set to ``y``, warnings will be generated + for all assignments to undefined symbols within ``.config`` files. By + default, no such warnings are generated. + + This warning can also be enabled/disabled by setting + ``Kconfig.warn_assign_undef`` to ``True``/``False``. + +Other features +-------------- + +- **Single-file implementation** + + The entire library is contained in `kconfiglib.py + `_. + + The tools implemented on top of it are one file each. + +- **Robust and highly compatible with the C Kconfig tools** + +  The `test suite `_ + automatically compares output from Kconfiglib and the C tools + by diffing the generated ``.config`` files for the real kernel Kconfig and + defconfig files, for all ARCHes. + + This currently involves comparing the output for 36 ARCHes and 498 defconfig + files (or over 18000 ARCH/defconfig combinations in "obsessive" test suite + mode). All tests are expected to pass. + + A comprehensive suite of selftests is included as well. + +- **Not horribly slow despite being a pure Python implementation** + + The `allyesconfig.py + `_ + script currently runs in about 1.3 seconds on the Linux kernel on a Core i7 + 2600K (with a warm file cache), including the ``make`` overhead from ``make + scriptconfig``. Note that the Linux kernel Kconfigs are absolutely massive + (over 14k symbols for x86) compared to most projects, and also have overhead + from running shell commands via the Kconfig preprocessor. + + Kconfiglib is especially speedy in cases where multiple ``.config`` files + need to be processed, because the ``Kconfig`` files will only need to be parsed + once. + + For long-running jobs, `PyPy `_ gives a big performance + boost. CPython is faster for short-running jobs as PyPy needs some time to + warm up. + + Kconfiglib also works well with the + `multiprocessing `_ + module. No global state is kept. + +- **Generates more warnings than the C implementation** + + Generates the same warnings as the C implementation, plus additional ones. + Also detects dependency and ``source`` loops. + + All warnings point out the location(s) in the ``Kconfig`` files where a + symbol is defined, where applicable. + +- **Unicode support** + + Unicode characters in string literals in ``Kconfig`` and ``.config`` files are + correctly handled. This support mostly comes for free from Python. + +- **Windows support** + + Nothing Linux-specific is used. Universal newlines mode is used for both + Python 2 and Python 3. + + The `Zephyr `_ project uses Kconfiglib to + generate ``.config`` files and C headers on Linux as well as Windows. + +- **Internals that (mostly) mirror the C implementation** + + While being simpler to understand and tweak. + +Menuconfig interfaces +--------------------- + +Three configuration interfaces are currently available: + +- `menuconfig.py `_ + is a terminal-based configuration interface implemented using the standard + Python ``curses`` module. ``xconfig`` features like showing invisible symbols and + showing symbol names are included, and it's possible to jump directly to a symbol + in the menu tree (even if it's currently invisible). + + .. image:: https://raw.githubusercontent.com/ulfalizer/Kconfiglib/screenshots/screenshots/menuconfig.gif + + *There is now also a show-help mode that shows the help text of the currently + selected symbol in the help window at the bottom.* + + Starting with Kconfiglib 12.2.0, ``menuconfig.py`` runs under both Python 2 + and Python 3 (previously, it only ran under Python 3, so this was a + backport). Running it under Python 3 provides better support for Unicode text + entry (``get_wch()`` is not available in the ``curses`` module on Python 2). + + There are no third-party dependencies on \*nix. On Windows, + the ``curses`` modules is not available by default, but support + can be added by installing the ``windows-curses`` package: + + .. code-block:: shell + + $ pip install windows-curses + + This uses wheels built from `this repository + `_, which is in turn + based on Christoph Gohlke's `Python Extension Packages for Windows + `_. + + See the docstring at the top of `menuconfig.py + `_ for + more information about the terminal menuconfig implementation. + +- `guiconfig.py + `_ is a + graphical configuration interface written in `Tkinter + `_. Like ``menuconfig.py``, + it supports showing all symbols (with invisible symbols in red) and jumping + directly to symbols. Symbol values can also be changed directly from the + jump-to dialog. + + When single-menu mode is enabled, a single menu is shown at a time, like in + the terminal menuconfig. Only this mode distinguishes between symbols defined + with ``config`` and symbols defined with ``menuconfig``. + + ``guiconfig.py`` has been tested on X11, Windows, and macOS, and is + compatible with both Python 2 and Python 3. + + Despite being part of the Python standard library, ``tkinter`` often isn't + included by default in Python installations on Linux. These commands will + install it on a few different distributions: + + - Ubuntu: ``sudo apt install python-tk``/``sudo apt install python3-tk`` + + - Fedora: ``dnf install python2-tkinter``/``dnf install python3-tkinter`` + + - Arch: ``sudo pacman -S tk`` + + - Clear Linux: ``sudo swupd bundle-add python3-tcl`` + + Screenshot below, with show-all mode enabled and the jump-to dialog open: + + .. image:: https://raw.githubusercontent.com/ulfalizer/Kconfiglib/screenshots/screenshots/guiconfig.png + + To avoid having to carry around a bunch of GIFs, the image data is embedded + in ``guiconfig.py``. To use separate GIF files instead, change + ``_USE_EMBEDDED_IMAGES`` to ``False`` in ``guiconfig.py``. The image files + can be found in the `screenshots + `_ + branch. + + I did my best with the images, but some are definitely only art adjacent. + Touch-ups are welcome. :) + +- `pymenuconfig `_, built by `RomaVis + `_, is an older portable Python 2/3 TkInter + menuconfig implementation. + + Screenshot below: + + .. image:: https://raw.githubusercontent.com/RomaVis/pymenuconfig/master/screenshot.PNG + + While working on the terminal menuconfig implementation, I added a few APIs + to Kconfiglib that turned out to be handy. ``pymenuconfig`` predates + ``menuconfig.py`` and ``guiconfig.py``, and so didn't have them available. + Blame me for any workarounds. + +Examples +-------- + +Example scripts +~~~~~~~~~~~~~~~ + +The `examples/ `_ directory contains some simple example scripts. Among these are the following ones. Make sure you run them with the latest version of Kconfiglib, as they might make use of newly added features. + +- `eval_expr.py `_ evaluates an expression in the context of a configuration. + +- `find_symbol.py `_ searches through expressions to find references to a symbol, also printing a "backtrace" with parents for each reference found. + +- `help_grep.py `_ searches for a string in all help texts. + +- `print_tree.py `_ prints a tree of all configuration items. + +- `print_config_tree.py `_ is similar to ``print_tree.py``, but dumps the tree as it would appear in ``menuconfig``, including values. This can be handy for visually diffing between ``.config`` files and different versions of ``Kconfig`` files. + +- `list_undefined.py `_ finds references to symbols that are not defined by any architecture in the Linux kernel. + +- `merge_config.py `_ merges configuration fragments to produce a complete .config, similarly to ``scripts/kconfig/merge_config.sh`` from the kernel. + +- `menuconfig_example.py `_ implements a configuration interface that uses notation similar to ``make menuconfig``. It's deliberately kept as simple as possible to demonstrate just the core concepts. + +Real-world examples +~~~~~~~~~~~~~~~~~~~ + +- `kconfig.py + `_ + from the `Zephyr `_ project handles + ``.config`` and header file generation, also doing configuration fragment + merging + +- `genrest.py + `_ + generates a Kconfig symbol cross-reference, which can be viewed `here + `__ + +- `CMake and IDE integration + `_ from + the ESP-IDF project, via a configuration server program. + +- `A script for turning on USB-related options + `_, + from the `syzkaller `_ project. + +- `Various automated checks + `_, + including a check for references to undefined Kconfig symbols in source code. + See the ``KconfigCheck`` class. + +- `Various utilities + `_ + from the `ACRN `_ project + +These use the older Kconfiglib 1 API, which was clunkier and not as general +(functions instead of properties, no direct access to the menu structure or +properties, uglier ``__str__()`` output): + +- `genboardscfg.py `_ from `Das U-Boot `_ generates some sort of legacy board database by pulling information from a newly added Kconfig-based configuration system (as far as I understand it :). + +- `gen-manual-lists.py `_ generated listings for an appendix in the `Buildroot `_ manual. (The listing has since been removed.) + +- `gen_kconfig_doc.py `_ from the `esp-idf `_ project generates documentation from Kconfig files. + +- `SConf `_ builds an interactive configuration interface (like ``menuconfig``) on top of Kconfiglib, for use e.g. with `SCons `_. + +- `kconfig-diff.py `_ -- a script by `dubiousjim `_ that compares kernel configurations. + +- Originally, Kconfiglib was used in chapter 4 of my `master's thesis `_ to automatically generate a "minimal" kernel for a given system. Parts of it bother me a bit now, but that's how it goes with old work. + +Sample ``make iscriptconfig`` session +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The following log should give some idea of the functionality available in the API: + +.. code-block:: + + $ make iscriptconfig + A Kconfig instance 'kconf' for the architecture x86 has been created. + >>> kconf # Calls Kconfig.__repr__() + + >>> kconf.mainmenu_text # Expanded main menu text + 'Linux/x86 4.14.0-rc7 Kernel Configuration' + >>> kconf.top_node # The implicit top-level menu + + >>> kconf.top_node.list # First child menu node + + >>> print(kconf.top_node.list) # Calls MenuNode.__str__() + config SRCARCH + string + option env="SRCARCH" + default "x86" + >>> sym = kconf.top_node.list.next.item # Item contained in next menu node + >>> print(sym) # Calls Symbol.__str__() + config 64BIT + bool "64-bit kernel" if ARCH = "x86" + default ARCH != "i386" + help + Say yes to build a 64-bit kernel - formerly known as x86_64 + Say no to build a 32-bit kernel - formerly known as i386 + >>> sym # Calls Symbol.__repr__() + + >>> sym.assignable # Currently assignable values (0, 1, 2 = n, m, y) + (0, 2) + >>> sym.set_value(0) # Set it to n + True + >>> sym.tri_value # Check the new value + 0 + >>> sym = kconf.syms["X86_MPPARSE"] # Look up symbol by name + >>> print(sym) + config X86_MPPARSE + bool "Enable MPS table" if (ACPI || SFI) && X86_LOCAL_APIC + default y if X86_LOCAL_APIC + help + For old smp systems that do not have proper acpi support. Newer systems + (esp with 64bit cpus) with acpi support, MADT and DSDT will override it + >>> default = sym.defaults[0] # Fetch its first default + >>> sym = default[1] # Fetch the default's condition (just a Symbol here) + >>> print(sym) + config X86_LOCAL_APIC + bool + default y + select IRQ_DOMAIN_HIERARCHY + select PCI_MSI_IRQ_DOMAIN if PCI_MSI + depends on X86_64 || SMP || X86_32_NON_STANDARD || X86_UP_APIC || PCI_MSI + >>> sym.nodes # Show the MenuNode(s) associated with it + [] + >>> kconfiglib.expr_str(sym.defaults[0][1]) # Print the default's condition + 'X86_64 || SMP || X86_32_NON_STANDARD || X86_UP_APIC || PCI_MSI' + >>> kconfiglib.expr_value(sym.defaults[0][1]) # Evaluate it (0 = n) + 0 + >>> kconf.syms["64BIT"].set_value(2) + True + >>> kconfiglib.expr_value(sym.defaults[0][1]) # Evaluate it again (2 = y) + 2 + >>> kconf.write_config("myconfig") # Save a .config + >>> ^D + $ cat myconfig + # Generated by Kconfiglib (https://github.com/ulfalizer/Kconfiglib) + CONFIG_64BIT=y + CONFIG_X86_64=y + CONFIG_X86=y + CONFIG_INSTRUCTION_DECODER=y + CONFIG_OUTPUT_FORMAT="elf64-x86-64" + CONFIG_ARCH_DEFCONFIG="arch/x86/configs/x86_64_defconfig" + CONFIG_LOCKDEP_SUPPORT=y + CONFIG_STACKTRACE_SUPPORT=y + CONFIG_MMU=y + ... + +Test suite +---------- + +The test suite is run with + +.. code:: + + $ python(3) Kconfiglib/testsuite.py + +`pypy `_ works too, and is much speedier for everything except ``allnoconfig.py``/``allnoconfig_simpler.py``/``allyesconfig.py``, where it doesn't have time to warm up since +the scripts are run via ``make scriptconfig``. + +The test suite must be run from the top-level kernel directory. It requires that the +Kconfiglib git repository has been cloned into it and that the makefile patch has been applied. + +To get rid of warnings generated for the kernel ``Kconfig`` files, add ``2>/dev/null`` to the command to +discard ``stderr``. + +**NOTE: Forgetting to apply the Makefile patch will cause some tests that compare generated configurations to fail** + +**NOTE: The test suite overwrites .config in the kernel root, so make sure to back it up.** + +The test suite consists of a set of selftests and a set of compatibility tests that +compare configurations generated by Kconfiglib with +configurations generated by the C tools, for a number of cases. See +`testsuite.py `_ +for the available options. + +The `tests/reltest `_ script runs the test suite +and all the example scripts for both Python 2 and Python 3, verifying that everything works. + +Rarely, the output from the C tools is changed slightly (most recently due to a +`change `_ I added). +If you get test suite failures, try running the test suite again against the +`linux-next tree `_, +which has all the latest changes. I will make it clear if any +non-backwards-compatible changes appear. + +A lot of time is spent waiting around for ``make`` and the C utilities (which need to reparse all the +Kconfig files for each defconfig test). Adding some multiprocessing to the test suite would make sense +too. + +Notes +----- + +* This is version 2 of Kconfiglib, which is not backwards-compatible with + Kconfiglib 1. A summary of changes between Kconfiglib 1 and Kconfiglib + 2 can be found `here + `__. + +* I sometimes see people add custom output formats, which is pretty + straightforward to do (see the implementations of ``write_autoconf()`` and + ``write_config()`` for a template, and also the documentation of the + ``Symbol.config_string`` property). If you come up with something you think + might be useful to other people, I'm happy to take it in upstream. Batteries + included and all that. + +* Kconfiglib assumes the modules symbol is ``MODULES``, which is backwards-compatible. + A warning is printed by default if ``option modules`` is set on some other symbol. + + Let me know if you need proper ``option modules`` support. It wouldn't be that + hard to add. + +Thanks +------ + +- To `RomaVis `_, for making + `pymenuconfig `_ and suggesting + the ``rsource`` keyword. + +- To `Mitja Horvat `_, for adding support + for user-defined styles to the terminal menuconfig. + +- To `Philip Craig `_ for adding + support for the ``allnoconfig_y`` option and fixing an obscure issue + with ``comment``\s inside ``choice``\s (that didn't affect correctness but + made outputs differ). ``allnoconfig_y`` is used to force certain symbols + to ``y`` during ``make allnoconfig`` to improve coverage. + +License +------- + +See `LICENSE.txt `_. SPDX license identifiers are used in the +source code. + + diff --git a/util/kconfig/lib/kconfiglib-14.1.0.dist-info/RECORD b/util/kconfig/lib/kconfiglib-14.1.0.dist-info/RECORD new file mode 100644 index 0000000..3fa7bf7 --- /dev/null +++ b/util/kconfig/lib/kconfiglib-14.1.0.dist-info/RECORD @@ -0,0 +1,48 @@ +../../../bin/alldefconfig,sha256=S0uqyDoh7X19LEUGnd9t_c5IS0pC841WWu2Ltj6q7ms,211 +../../../bin/allmodconfig,sha256=qPMZU03rPtgpC924URJX7_QffJkz4W3b29-EErf87jg,211 +../../../bin/allnoconfig,sha256=HPKGpJfPHQGQCJyF9YiSUylPt84oPPWszIUIXgexHWE,210 +../../../bin/allyesconfig,sha256=5guHJnPJVPSHLPkAdg5R-VVDDHrEuLqhy5zDS1HbfQs,211 +../../../bin/defconfig,sha256=LPaPNSvjIn0nF3RalOKWf3vLWh_ML_KyvLC9Qs-NLrQ,208 +../../../bin/genconfig,sha256=S5I0evPDSSB4J9QCCDM0FQvwKnX2T5wk8pqSETywTgU,208 +../../../bin/guiconfig,sha256=PyLb2dGRFfp8mrRmmgcHdw3ILcLuAsUlLSy0vOI64Z0,210 +../../../bin/listnewconfig,sha256=IXPhSZVBJJiiG6IBuBwX62rsw2s-PQr__DT_LQYrzK8,212 +../../../bin/menuconfig,sha256=53H7N_X3DE8zLSEAmM65X5ItYaHTW806sYKYGfCkmQ8,211 +../../../bin/oldconfig,sha256=JR1dTseQN9wEgyPSjztPTtyimcRHdisou1VqQ-S6S2c,210 +../../../bin/olddefconfig,sha256=3I2JliBKFyc-emsk7RgfJKuYPej27Cab3WPacWSWwTc,211 +../../../bin/savedefconfig,sha256=kSmrF5cenh00YAqNWoiw7w8uvRl8nlooxMkb2w4FMC0,212 +../../../bin/setconfig,sha256=wqdFsQqv5VerhIHmBtCT6Xiq_UUQhJzRc9e5PPZeLoo,208 +__pycache__/alldefconfig.cpython-38.pyc,, +__pycache__/allmodconfig.cpython-38.pyc,, +__pycache__/allnoconfig.cpython-38.pyc,, +__pycache__/allyesconfig.cpython-38.pyc,, +__pycache__/defconfig.cpython-38.pyc,, +__pycache__/genconfig.cpython-38.pyc,, +__pycache__/guiconfig.cpython-38.pyc,, +__pycache__/kconfiglib.cpython-38.pyc,, +__pycache__/listnewconfig.cpython-38.pyc,, +__pycache__/menuconfig.cpython-38.pyc,, +__pycache__/oldconfig.cpython-38.pyc,, +__pycache__/olddefconfig.cpython-38.pyc,, +__pycache__/savedefconfig.cpython-38.pyc,, +__pycache__/setconfig.cpython-38.pyc,, +alldefconfig.py,sha256=Alkt87jGy47dLGoZzs7rCtI2YR234ZpyULerjVXzk9U,607 +allmodconfig.py,sha256=xuuH2s0wfMMPkF1FAxYuNqAxbbJTYyIjoY4iBDSxzhk,1222 +allnoconfig.py,sha256=mEe8sPLmdtHJwyAWgME_o4UjQfWf3knd6jQoSEKidQ0,1218 +allyesconfig.py,sha256=KXrbvF4qSGStWPQawkf_7h9OsArE0gYxAxE9sqcEuzg,1686 +defconfig.py,sha256=a1wavPtuGQ-YYxikpwMEysslBApsy0fcyR62OXbpmjw,1152 +genconfig.py,sha256=afBKxL3wjgmkXn010HZzoEf6fTqTgERfFDEmPJ6KjY8,5327 +guiconfig.py,sha256=XoDi8uv_jKAPn8DCOCktdX7eK_iem9msL81FE1_giQ4,73636 +kconfiglib-14.1.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +kconfiglib-14.1.0.dist-info/LICENSE.txt,sha256=Sl9m8RKuFNWeEG1VGG7A6oc_aU1rcOIYylyKa8YIBYo,759 +kconfiglib-14.1.0.dist-info/METADATA,sha256=SBKQd1dPmpTMxuJRK4sDQHKNtR-gBOOY6oJ0DoTuWMQ,39913 +kconfiglib-14.1.0.dist-info/RECORD,, +kconfiglib-14.1.0.dist-info/WHEEL,sha256=kGT74LWyRUZrL4VgLh6_g12IeVl_9u9ZVhadrgXZUEY,110 +kconfiglib-14.1.0.dist-info/entry_points.txt,sha256=BPjpdQUNR2sJUAMJCZFiXOaH-WUP7aAduGwjLqhpSmE,419 +kconfiglib-14.1.0.dist-info/top_level.txt,sha256=1v6vL-MTZ0UGzEHyBTc-2OSaDxVlUOPr8-sXjqnRzLQ,164 +kconfiglib.py,sha256=2BwWynekUeUuk8mdOa2UUdZFUGRQdmyaa3GT1VxDkQM,259748 +listnewconfig.py,sha256=6aOtrxkatQfLtk_4ZIeaZkQyczEp_a66TmUgY7t1yt4,2619 +menuconfig.py,sha256=3VdzrYqrs0ggH2Ct4ZBZWG9NVQEpYEVSuEWWghSGH-k,104222 +oldconfig.py,sha256=BuLG1oqL1JIpNfQUcxpfEGj0c3EKIz0HZaf4glhA1i8,8080 +olddefconfig.py,sha256=z_clFVPRfVMeJm9oO6swcD5oWGd-4QjICrESXkUlVFE,761 +savedefconfig.py,sha256=mcPjRuclfTTaTc-1wGz2RWQstcNzfvRjpSB0gajH4jU,1333 +setconfig.py,sha256=_5WCHCt8e9UJ0jid1JklBRzZkK2aOdV_Y9RHGby07ws,2664 diff --git a/util/kconfig/lib/kconfiglib-14.1.0.dist-info/WHEEL b/util/kconfig/lib/kconfiglib-14.1.0.dist-info/WHEEL new file mode 100644 index 0000000..ef99c6c --- /dev/null +++ b/util/kconfig/lib/kconfiglib-14.1.0.dist-info/WHEEL @@ -0,0 +1,6 @@ +Wheel-Version: 1.0 +Generator: bdist_wheel (0.34.2) +Root-Is-Purelib: true +Tag: py2-none-any +Tag: py3-none-any + diff --git a/util/kconfig/lib/kconfiglib-14.1.0.dist-info/entry_points.txt b/util/kconfig/lib/kconfiglib-14.1.0.dist-info/entry_points.txt new file mode 100644 index 0000000..efe9f87 --- /dev/null +++ b/util/kconfig/lib/kconfiglib-14.1.0.dist-info/entry_points.txt @@ -0,0 +1,15 @@ +[console_scripts] +alldefconfig = alldefconfig:main +allmodconfig = allmodconfig:main +allnoconfig = allnoconfig:main +allyesconfig = allyesconfig:main +defconfig = defconfig:main +genconfig = genconfig:main +guiconfig = guiconfig:_main +listnewconfig = listnewconfig:main +menuconfig = menuconfig:_main +oldconfig = oldconfig:_main +olddefconfig = olddefconfig:main +savedefconfig = savedefconfig:main +setconfig = setconfig:main + diff --git a/util/kconfig/lib/kconfiglib-14.1.0.dist-info/top_level.txt b/util/kconfig/lib/kconfiglib-14.1.0.dist-info/top_level.txt new file mode 100644 index 0000000..1270d21 --- /dev/null +++ b/util/kconfig/lib/kconfiglib-14.1.0.dist-info/top_level.txt @@ -0,0 +1,14 @@ +alldefconfig +allmodconfig +allnoconfig +allyesconfig +defconfig +genconfig +guiconfig +kconfiglib +listnewconfig +menuconfig +oldconfig +olddefconfig +savedefconfig +setconfig diff --git a/util/kconfig/lib/kconfiglib.py b/util/kconfig/lib/kconfiglib.py new file mode 100644 index 0000000..c610423 --- /dev/null +++ b/util/kconfig/lib/kconfiglib.py @@ -0,0 +1,7159 @@ +# Copyright (c) 2011-2019, Ulf Magnusson +# SPDX-License-Identifier: ISC + +""" +Overview +======== + +Kconfiglib is a Python 2/3 library for scripting and extracting information +from Kconfig (https://www.kernel.org/doc/Documentation/kbuild/kconfig-language.txt) +configuration systems. + +See the homepage at https://github.com/ulfalizer/Kconfiglib for a longer +overview. + +Since Kconfiglib 12.0.0, the library version is available in +kconfiglib.VERSION, which is a (, , ) tuple, e.g. +(12, 0, 0). + + +Using Kconfiglib on the Linux kernel with the Makefile targets +============================================================== + +For the Linux kernel, a handy interface is provided by the +scripts/kconfig/Makefile patch, which can be applied with either 'git am' or +the 'patch' utility: + + $ wget -qO- https://raw.githubusercontent.com/ulfalizer/Kconfiglib/master/makefile.patch | git am + $ wget -qO- https://raw.githubusercontent.com/ulfalizer/Kconfiglib/master/makefile.patch | patch -p1 + +Warning: Not passing -p1 to patch will cause the wrong file to be patched. + +Please tell me if the patch does not apply. It should be trivial to apply +manually, as it's just a block of text that needs to be inserted near the other +*conf: targets in scripts/kconfig/Makefile. + +Look further down for a motivation for the Makefile patch and for instructions +on how you can use Kconfiglib without it. + +If you do not wish to install Kconfiglib via pip, the Makefile patch is set up +so that you can also just clone Kconfiglib into the kernel root: + + $ git clone git://github.com/ulfalizer/Kconfiglib.git + $ git am Kconfiglib/makefile.patch (or 'patch -p1 < Kconfiglib/makefile.patch') + +Warning: The directory name Kconfiglib/ is significant in this case, because +it's added to PYTHONPATH by the new targets in makefile.patch. + +The targets added by the Makefile patch are described in the following +sections. + + +make kmenuconfig +---------------- + +This target runs the curses menuconfig interface with Python 3. As of +Kconfiglib 12.2.0, both Python 2 and Python 3 are supported (previously, only +Python 3 was supported, so this was a backport). + + +make guiconfig +-------------- + +This target runs the Tkinter menuconfig interface. Both Python 2 and Python 3 +are supported. To change the Python interpreter used, pass +PYTHONCMD= to 'make'. The default is 'python'. + + +make [ARCH=] iscriptconfig +-------------------------------- + +This target gives an interactive Python prompt where a Kconfig instance has +been preloaded and is available in 'kconf'. To change the Python interpreter +used, pass PYTHONCMD= to 'make'. The default is 'python'. + +To get a feel for the API, try evaluating and printing the symbols in +kconf.defined_syms, and explore the MenuNode menu tree starting at +kconf.top_node by following 'next' and 'list' pointers. + +The item contained in a menu node is found in MenuNode.item (note that this can +be one of the constants kconfiglib.MENU and kconfiglib.COMMENT), and all +symbols and choices have a 'nodes' attribute containing their menu nodes +(usually only one). Printing a menu node will print its item, in Kconfig +format. + +If you want to look up a symbol by name, use the kconf.syms dictionary. + + +make scriptconfig SCRIPT=