From f056e4c18047e9a0157a915175d07afbd8b8c581 Mon Sep 17 00:00:00 2001 From: Jaben Carsey Date: Fri, 22 Aug 2014 17:02:11 +0000 Subject: [PATCH] ShellPkg: Update 'pci' command for updated class codes This updated the strings to be compliant with PCI CODE AND ID ASSIGNMENT SPECIFICATION 1.5. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Jaben Carsey Signed-off-by: Chris Phillips Reviewed-by: Erik Bjorge git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15885 6f19259b-4bc3-4df7-8a09-765794883524 --- .../Library/UefiShellDebug1CommandsLib/Pci.c | 448 +++++++++++++++++- 1 file changed, 430 insertions(+), 18 deletions(-) diff --git a/ShellPkg/Library/UefiShellDebug1CommandsLib/Pci.c b/ShellPkg/Library/UefiShellDebug1CommandsLib/Pci.c index 25c3dfef6c..75c56ecb86 100644 --- a/ShellPkg/Library/UefiShellDebug1CommandsLib/Pci.c +++ b/ShellPkg/Library/UefiShellDebug1CommandsLib/Pci.c @@ -1,7 +1,7 @@ /** @file Main file for Pci shell Debug1 function. - Copyright (c) 2013 Hewlett-Packard Development Company, L.P. + (C) Copyright 2013-2014 Hewlett-Packard Development Company, L.P. Copyright (c) 2005 - 2014, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License @@ -20,7 +20,6 @@ #include #include "Pci.h" -#define PCI_CLASS_STRING_LIMIT 54 // // Printable strings for Pci class code // @@ -63,9 +62,19 @@ PCI_CLASS_ENTRY PCISubClass_0e[]; PCI_CLASS_ENTRY PCISubClass_0f[]; PCI_CLASS_ENTRY PCISubClass_10[]; PCI_CLASS_ENTRY PCISubClass_11[]; +PCI_CLASS_ENTRY PCISubClass_12[]; +PCI_CLASS_ENTRY PCISubClass_13[]; +PCI_CLASS_ENTRY PCIPIFClass_0100[]; PCI_CLASS_ENTRY PCIPIFClass_0101[]; +PCI_CLASS_ENTRY PCIPIFClass_0105[]; +PCI_CLASS_ENTRY PCIPIFClass_0106[]; +PCI_CLASS_ENTRY PCIPIFClass_0107[]; +PCI_CLASS_ENTRY PCIPIFClass_0108[]; +PCI_CLASS_ENTRY PCIPIFClass_0109[]; PCI_CLASS_ENTRY PCIPIFClass_0300[]; PCI_CLASS_ENTRY PCIPIFClass_0604[]; +PCI_CLASS_ENTRY PCIPIFClass_0609[]; +PCI_CLASS_ENTRY PCIPIFClass_060b[]; PCI_CLASS_ENTRY PCIPIFClass_0700[]; PCI_CLASS_ENTRY PCIPIFClass_0701[]; PCI_CLASS_ENTRY PCIPIFClass_0703[]; @@ -76,6 +85,8 @@ PCI_CLASS_ENTRY PCIPIFClass_0803[]; PCI_CLASS_ENTRY PCIPIFClass_0904[]; PCI_CLASS_ENTRY PCIPIFClass_0c00[]; PCI_CLASS_ENTRY PCIPIFClass_0c03[]; +PCI_CLASS_ENTRY PCIPIFClass_0c07[]; +PCI_CLASS_ENTRY PCIPIFClass_0d01[]; PCI_CLASS_ENTRY PCIPIFClass_0e00[]; // @@ -172,6 +183,16 @@ PCI_CLASS_ENTRY gClassStringList[] = { L"Data Acquisition & Signal Processing Controllers", PCISubClass_11 }, + { + 0x12, + L"Processing Accelerators", + PCISubClass_12 + }, + { + 0x13, + L"Non-Essential Instrumentation", + PCISubClass_13 + }, { 0xff, L"Device does not fit in any defined classes", @@ -221,8 +242,8 @@ PCI_CLASS_ENTRY PCISubClass_00[] = { PCI_CLASS_ENTRY PCISubClass_01[] = { { 0x00, - L"SCSI controller", - PCIBlankEntry + L"SCSI", + PCIPIFClass_0100 }, { 0x01, @@ -244,6 +265,31 @@ PCI_CLASS_ENTRY PCISubClass_01[] = { L"RAID controller", PCIBlankEntry }, + { + 0x05, + L"ATA controller with ADMA interface", + PCIPIFClass_0105 + }, + { + 0x06, + L"Serial ATA controller", + PCIPIFClass_0106 + }, + { + 0x07, + L"Serial Attached SCSI (SAS) controller ", + PCIPIFClass_0107 + }, + { + 0x08, + L"Non-volatile memory subsystem", + PCIPIFClass_0108 + }, + { + 0x09, + L"Universal Flash Storage (UFS) controller ", + PCIPIFClass_0109 + }, { 0x80, L"Other mass storage controller", @@ -282,6 +328,21 @@ PCI_CLASS_ENTRY PCISubClass_02[] = { L"ISDN controller", PCIBlankEntry }, + { + 0x05, + L"WorldFip controller", + PCIBlankEntry + }, + { + 0x06, + L"PICMG 2.14 Multi Computing", + PCIBlankEntry + }, + { + 0x07, + L"InfiniBand controller", + PCIBlankEntry + }, { 0x80, L"Other network controller", @@ -338,6 +399,11 @@ PCI_CLASS_ENTRY PCISubClass_04[] = { L"Computer Telephony device", PCIBlankEntry }, + { + 0x03, + L"Mixed mode device", + PCIBlankEntry + }, { 0x80, L"Other multimedia device", @@ -419,6 +485,21 @@ PCI_CLASS_ENTRY PCISubClass_06[] = { L"RACEway bridge", PCIBlankEntry }, + { + 0x09, + L"Semi-transparent PCI-to-PCI bridge", + PCIPIFClass_0609 + }, + { + 0x0A, + L"InfiniBand-to-PCI host bridge", + PCIBlankEntry + }, + { + 0x0B, + L"Advanced Switching to PCI host bridge", + PCIPIFClass_060b + }, { 0x80, L"Other bridge type", @@ -452,6 +533,16 @@ PCI_CLASS_ENTRY PCISubClass_07[] = { L"Modem", PCIPIFClass_0703 }, + { + 0x04, + L"GPIB (IEEE 488.1/2) controller", + PCIBlankEntry + }, + { + 0x05, + L"Smart Card", + PCIBlankEntry + }, { 0x80, L"Other communication device", @@ -490,6 +581,21 @@ PCI_CLASS_ENTRY PCISubClass_08[] = { L"Generic PCI Hot-Plug controller", PCIBlankEntry }, + { + 0x05, + L"SD Host controller", + PCIBlankEntry + }, + { + 0x06, + L"IOMMU", + PCIBlankEntry + }, + { + 0x07, + L"Root Complex Event Collector", + PCIBlankEntry + }, { 0x80, L"Other system peripheral", @@ -609,8 +715,8 @@ PCI_CLASS_ENTRY PCISubClass_0b[] = { PCI_CLASS_ENTRY PCISubClass_0c[] = { { 0x00, - L"Firewire(IEEE 1394)", - PCIPIFClass_0c03 + L"IEEE 1394", + PCIPIFClass_0c00 }, { 0x01, @@ -625,7 +731,7 @@ PCI_CLASS_ENTRY PCISubClass_0c[] = { { 0x03, L"USB", - PCIPIFClass_0c00 + PCIPIFClass_0c03 }, { 0x04, @@ -637,6 +743,26 @@ PCI_CLASS_ENTRY PCISubClass_0c[] = { L"System Management Bus", PCIBlankEntry }, + { + 0x06, + L"InfiniBand", + PCIBlankEntry + }, + { + 0x07, + L"IPMI", + PCIPIFClass_0c07 + }, + { + 0x08, + L"SERCOS Interface Standard (IEC 61491)", + PCIBlankEntry + }, + { + 0x09, + L"CANbus", + PCIBlankEntry + }, { 0x80, L"Other bus type", @@ -657,14 +783,34 @@ PCI_CLASS_ENTRY PCISubClass_0d[] = { }, { 0x01, - L"Consumer IR controller", - PCIBlankEntry + L"", + PCIPIFClass_0d01 }, { 0x10, L"RF controller", PCIBlankEntry }, + { + 0x11, + L"Bluetooth", + PCIBlankEntry + }, + { + 0x12, + L"Broadband", + PCIBlankEntry + }, + { + 0x20, + L"Ethernet (802.11a – 5 GHz)", + PCIBlankEntry + }, + { + 0x21, + L"Ethernet (802.11b – 2.4 GHz)", + PCIBlankEntry + }, { 0x80, L"Other type of wireless controller", @@ -692,25 +838,30 @@ PCI_CLASS_ENTRY PCISubClass_0e[] = { PCI_CLASS_ENTRY PCISubClass_0f[] = { { - 0x00, + 0x01, L"TV", PCIBlankEntry }, { - 0x01, + 0x02, L"Audio", PCIBlankEntry }, { - 0x02, + 0x03, L"Voice", PCIBlankEntry }, { - 0x03, + 0x04, L"Data", PCIBlankEntry }, + { + 0x80, + L"Other satellite communication controller", + PCIBlankEntry + }, { 0x00, NULL, @@ -747,6 +898,21 @@ PCI_CLASS_ENTRY PCISubClass_11[] = { L"DPIO modules", PCIBlankEntry }, + { + 0x01, + L"Performance Counters", + PCIBlankEntry + }, + { + 0x10, + L"Communications synchronization plus time and frequency test/measurement ", + PCIBlankEntry + }, + { + 0x20, + L"Management card", + PCIBlankEntry + }, { 0x80, L"Other DAQ & SP controllers", @@ -759,9 +925,68 @@ PCI_CLASS_ENTRY PCISubClass_11[] = { } }; +PCI_CLASS_ENTRY PCISubClass_12[] = { + { + 0x00, + L"Processing Accelerator", + PCIBlankEntry + }, + { + 0x00, + NULL, + /* null string ends the list */NULL + } +}; + +PCI_CLASS_ENTRY PCISubClass_13[] = { + { + 0x00, + L"Non-Essential Instrumentation Function", + PCIBlankEntry + }, + { + 0x00, + NULL, + /* null string ends the list */NULL + } +}; + // // Programming Interface entries // +PCI_CLASS_ENTRY PCIPIFClass_0100[] = { + { + 0x00, + L"SCSI controller", + PCIBlankEntry + }, + { + 0x11, + L"SCSI storage device SOP using PQI", + PCIBlankEntry + }, + { + 0x12, + L"SCSI controller SOP using PQI", + PCIBlankEntry + }, + { + 0x13, + L"SCSI storage device and controller SOP using PQI", + PCIBlankEntry + }, + { + 0x21, + L"SCSI storage device SOP using NVMe", + PCIBlankEntry + }, + { + 0x00, + NULL, + /* null string ends the list */NULL + } +}; + PCI_CLASS_ENTRY PCIPIFClass_0101[] = { { 0x00, @@ -930,6 +1155,106 @@ PCI_CLASS_ENTRY PCIPIFClass_0101[] = { } }; +PCI_CLASS_ENTRY PCIPIFClass_0105[] = { + { + 0x20, + L"Single stepping", + PCIBlankEntry + }, + { + 0x30, + L"Continuous operation", + PCIBlankEntry + }, + { + 0x00, + NULL, + /* null string ends the list */NULL + } +}; + +PCI_CLASS_ENTRY PCIPIFClass_0106[] = { + { + 0x00, + L"", + PCIBlankEntry + }, + { + 0x01, + L"AHCI", + PCIBlankEntry + }, + { + 0x02, + L"Serial Storage Bus", + PCIBlankEntry + }, + { + 0x00, + NULL, + /* null string ends the list */NULL + } +}; + +PCI_CLASS_ENTRY PCIPIFClass_0107[] = { + { + 0x00, + L"", + PCIBlankEntry + }, + { + 0x01, + L"Obsolete", + PCIBlankEntry + }, + { + 0x00, + NULL, + /* null string ends the list */NULL + } +}; + +PCI_CLASS_ENTRY PCIPIFClass_0108[] = { + { + 0x00, + L"", + PCIBlankEntry + }, + { + 0x01, + L"NVMHCI", + PCIBlankEntry + }, + { + 0x02, + L"NVM Express", + PCIBlankEntry + }, + { + 0x00, + NULL, + /* null string ends the list */NULL + } +}; + +PCI_CLASS_ENTRY PCIPIFClass_0109[] = { + { + 0x00, + L"", + PCIBlankEntry + }, + { + 0x01, + L"UFSHCI", + PCIBlankEntry + }, + { + 0x00, + NULL, + /* null string ends the list */NULL + } +}; + PCI_CLASS_ENTRY PCIPIFClass_0300[] = { { 0x00, @@ -966,6 +1291,42 @@ PCI_CLASS_ENTRY PCIPIFClass_0604[] = { } }; +PCI_CLASS_ENTRY PCIPIFClass_0609[] = { + { + 0x40, + L"Primary PCI bus side facing the system host processor", + PCIBlankEntry + }, + { + 0x80, + L"Secondary PCI bus side facing the system host processor", + PCIBlankEntry + }, + { + 0x00, + NULL, + /* null string ends the list */NULL + } +}; + +PCI_CLASS_ENTRY PCIPIFClass_060b[] = { + { + 0x00, + L"Custom", + PCIBlankEntry + }, + { + 0x01, + L"ASI-SIG Defined Portal", + PCIBlankEntry + }, + { + 0x00, + NULL, + /* null string ends the list */NULL + } +}; + PCI_CLASS_ENTRY PCIPIFClass_0700[] = { { 0x00, @@ -1198,12 +1559,40 @@ PCI_CLASS_ENTRY PCIPIFClass_0904[] = { PCI_CLASS_ENTRY PCIPIFClass_0c00[] = { { 0x00, - L"Universal Host Controller spec", + L"", PCIBlankEntry }, { 0x10, - L"Open Host Controller spec", + L"Using 1394 OpenHCI spec", + PCIBlankEntry + }, + { + 0x00, + NULL, + /* null string ends the list */NULL + } +}; + +PCI_CLASS_ENTRY PCIPIFClass_0c03[] = { + { + 0x00, + L"UHCI", + PCIBlankEntry + }, + { + 0x10, + L"OHCI", + PCIBlankEntry + }, + { + 0x20, + L"EHCI", + PCIBlankEntry + }, + { + 0x30, + L"xHCI", PCIBlankEntry }, { @@ -1223,15 +1612,38 @@ PCI_CLASS_ENTRY PCIPIFClass_0c00[] = { } }; -PCI_CLASS_ENTRY PCIPIFClass_0c03[] = { +PCI_CLASS_ENTRY PCIPIFClass_0c07[] = { { 0x00, - L"", + L"SMIC", + PCIBlankEntry + }, + { + 0x01, + L"Keyboard Controller Style", + PCIBlankEntry + }, + { + 0x02, + L"Block Transfer", + PCIBlankEntry + }, + { + 0x00, + NULL, + /* null string ends the list */NULL + } +}; + +PCI_CLASS_ENTRY PCIPIFClass_0d01[] = { + { + 0x00, + L"Consumer IR controller", PCIBlankEntry }, { 0x10, - L"Using 1394 OpenHCI spec", + L"UWB Radio controller", PCIBlankEntry }, { -- 2.39.2