SMBios.py (5615:1c4b9b1aa500) SMBios.py (7087:fb8d5786ff30)
1# Copyright (c) 2008 The Hewlett-Packard Development Company
2# All rights reserved.
3#
1# Copyright (c) 2008 The Hewlett-Packard Development Company
2# All rights reserved.
3#
4# Redistribution and use of this software in source and binary forms,
5# with or without modification, are permitted provided that the
6# following conditions are met:
4# The license below extends only to copyright in the software and shall
5# not be construed as granting a license to any other intellectual
6# property including but not limited to intellectual property relating
7# to a hardware implementation of the functionality of the software
8# licensed hereunder. You may use the software subject to the license
9# terms below provided that you ensure that this notice is replicated
10# unmodified and in its entirety in all distributions of the software,
11# modified or unmodified, in source code or in binary form.
7#
12#
8# The software must be used only for Non-Commercial Use which means any
9# use which is NOT directed to receiving any direct monetary
10# compensation for, or commercial advantage from such use. Illustrative
11# examples of non-commercial use are academic research, personal study,
12# teaching, education and corporate research & development.
13# Illustrative examples of commercial use are distributing products for
14# commercial advantage and providing services using the software for
15# commercial advantage.
16#
17# If you wish to use this software or functionality therein that may be
18# covered by patents for commercial use, please contact:
19# Director of Intellectual Property Licensing
20# Office of Strategy and Technology
21# Hewlett-Packard Company
22# 1501 Page Mill Road
23# Palo Alto, California 94304
24#
25# Redistributions of source code must retain the above copyright notice,
26# this list of conditions and the following disclaimer. Redistributions
27# in binary form must reproduce the above copyright notice, this list of
28# conditions and the following disclaimer in the documentation and/or
29# other materials provided with the distribution. Neither the name of
30# the COPYRIGHT HOLDER(s), HEWLETT-PACKARD COMPANY, nor the names of its
13# Redistribution and use in source and binary forms, with or without
14# modification, are permitted provided that the following conditions are
15# met: redistributions of source code must retain the above copyright
16# notice, this list of conditions and the following disclaimer;
17# redistributions in binary form must reproduce the above copyright
18# notice, this list of conditions and the following disclaimer in the
19# documentation and/or other materials provided with the distribution;
20# neither the name of the copyright holders nor the names of its
31# contributors may be used to endorse or promote products derived from
21# contributors may be used to endorse or promote products derived from
32# this software without specific prior written permission. No right of
33# sublicense is granted herewith. Derivatives of the software and
34# output created using the software may be prepared, but only for
35# Non-Commercial Uses. Derivatives of the software may be shared with
36# others provided: (i) the others agree to abide by the list of
37# conditions herein which includes the Non-Commercial Use restrictions;
38# and (ii) such Derivatives of the software include the above copyright
39# notice to acknowledge the contribution from this software where
40# applicable, this list of conditions and the disclaimer below.
22# this software without specific prior written permission.
41#
42# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
43# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
44# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
45# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
46# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
47# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
48# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
49# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
50# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
51# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
52# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
53#
54# Authors: Gabe Black
55
56from m5.params import *
57from m5.SimObject import SimObject
58
59class X86SMBiosSMBiosStructure(SimObject):
60 type = 'X86SMBiosSMBiosStructure'
61 cxx_class = 'X86ISA::SMBios::SMBiosStructure'
62 abstract = True
63
64class Characteristic(Enum):
65 map = {'Unknown' : 2,
66 'Unsupported' : 3,
67 'ISA' : 4,
68 'MCA' : 5,
69 'EISA' : 6,
70 'PCI' : 7,
71 'PCMCIA' : 8,
72 'PnP' : 9,
73 'APM' : 10,
74 'Flash' : 11,
75 'Shadow' : 12,
76 'VL_Vesa' : 13,
77 'ESCD' : 14,
78 'CDBoot' : 15,
79 'SelectBoot' : 16,
80 'Socketed' : 17,
81 'PCMCIABoot' : 18,
82 'EDD' : 19,
83 'NEC9800' : 20,
84 'Toshiba' : 21,
85 'Floppy_5_25_360KB' : 22,
86 'Floppy_5_25_1_2MB' : 23,
87 'Floppy_3_5_720KB' : 24,
88 'Floppy_3_5_2_88MB' : 25,
89 'PrintScreen' : 26,
90 'Keyboard8024' : 27,
91 'Serial' : 28,
92 'Printer' : 29,
93 'CGA_Mono' : 30,
94 'NEC_PC_98' : 31
95 }
96
97class ExtCharacteristic(Enum):
98 map = {'ACPI' : 0,
99 'USBLegacy' : 1,
100 'AGP' : 2,
101 'I20Boot' : 3,
102 'LS_120Boot' : 4,
103 'ZIPBoot' : 5,
104 'FirewireBoot' : 6,
105 'SmartBattery' : 7,
106 'BootSpec' : 8,
107 'NetServiceBoot' : 9,
108 'TargetContent' : 10
109 }
110
111class X86SMBiosBiosInformation(X86SMBiosSMBiosStructure):
112 type = 'X86SMBiosBiosInformation'
113 cxx_class = 'X86ISA::SMBios::BiosInformation'
114
115 vendor = Param.String("", "vendor name string")
116 version = Param.String("", "version string")
117 starting_addr_segment = \
118 Param.UInt16(0, "segment location of bios starting address")
119 release_date = Param.String("06/08/2008", "release date")
120 rom_size = Param.UInt8(0, "rom size")
121 characteristics = VectorParam.Characteristic([],
122 "bios characteristic bit vector")
123 characteristic_ext_bytes = VectorParam.ExtCharacteristic([],
124 "extended bios characteristic bit vector")
125 major = Param.UInt8(0, "major version number")
126 minor = Param.UInt8(0, "minor version number")
127 emb_cont_firmware_major = Param.UInt8(0,
128 "embedded controller firmware major version number")
129
130 emb_cont_firmware_minor = Param.UInt8(0,
131 "embedded controller firmware minor version number")
132
133class X86SMBiosSMBiosTable(SimObject):
134 type = 'X86SMBiosSMBiosTable'
135 cxx_class = 'X86ISA::SMBios::SMBiosTable'
136
137 major_version = Param.UInt8(2, "major version number")
138 minor_version = Param.UInt8(5, "minor version number")
139
140 structures = VectorParam.X86SMBiosSMBiosStructure([], "smbios structures")
23#
24# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
25# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
26# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
27# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
28# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
29# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
30# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
31# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
32# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
33# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
34# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
35#
36# Authors: Gabe Black
37
38from m5.params import *
39from m5.SimObject import SimObject
40
41class X86SMBiosSMBiosStructure(SimObject):
42 type = 'X86SMBiosSMBiosStructure'
43 cxx_class = 'X86ISA::SMBios::SMBiosStructure'
44 abstract = True
45
46class Characteristic(Enum):
47 map = {'Unknown' : 2,
48 'Unsupported' : 3,
49 'ISA' : 4,
50 'MCA' : 5,
51 'EISA' : 6,
52 'PCI' : 7,
53 'PCMCIA' : 8,
54 'PnP' : 9,
55 'APM' : 10,
56 'Flash' : 11,
57 'Shadow' : 12,
58 'VL_Vesa' : 13,
59 'ESCD' : 14,
60 'CDBoot' : 15,
61 'SelectBoot' : 16,
62 'Socketed' : 17,
63 'PCMCIABoot' : 18,
64 'EDD' : 19,
65 'NEC9800' : 20,
66 'Toshiba' : 21,
67 'Floppy_5_25_360KB' : 22,
68 'Floppy_5_25_1_2MB' : 23,
69 'Floppy_3_5_720KB' : 24,
70 'Floppy_3_5_2_88MB' : 25,
71 'PrintScreen' : 26,
72 'Keyboard8024' : 27,
73 'Serial' : 28,
74 'Printer' : 29,
75 'CGA_Mono' : 30,
76 'NEC_PC_98' : 31
77 }
78
79class ExtCharacteristic(Enum):
80 map = {'ACPI' : 0,
81 'USBLegacy' : 1,
82 'AGP' : 2,
83 'I20Boot' : 3,
84 'LS_120Boot' : 4,
85 'ZIPBoot' : 5,
86 'FirewireBoot' : 6,
87 'SmartBattery' : 7,
88 'BootSpec' : 8,
89 'NetServiceBoot' : 9,
90 'TargetContent' : 10
91 }
92
93class X86SMBiosBiosInformation(X86SMBiosSMBiosStructure):
94 type = 'X86SMBiosBiosInformation'
95 cxx_class = 'X86ISA::SMBios::BiosInformation'
96
97 vendor = Param.String("", "vendor name string")
98 version = Param.String("", "version string")
99 starting_addr_segment = \
100 Param.UInt16(0, "segment location of bios starting address")
101 release_date = Param.String("06/08/2008", "release date")
102 rom_size = Param.UInt8(0, "rom size")
103 characteristics = VectorParam.Characteristic([],
104 "bios characteristic bit vector")
105 characteristic_ext_bytes = VectorParam.ExtCharacteristic([],
106 "extended bios characteristic bit vector")
107 major = Param.UInt8(0, "major version number")
108 minor = Param.UInt8(0, "minor version number")
109 emb_cont_firmware_major = Param.UInt8(0,
110 "embedded controller firmware major version number")
111
112 emb_cont_firmware_minor = Param.UInt8(0,
113 "embedded controller firmware minor version number")
114
115class X86SMBiosSMBiosTable(SimObject):
116 type = 'X86SMBiosSMBiosTable'
117 cxx_class = 'X86ISA::SMBios::SMBiosTable'
118
119 major_version = Param.UInt8(2, "major version number")
120 minor_version = Param.UInt8(5, "minor version number")
121
122 structures = VectorParam.X86SMBiosSMBiosStructure([], "smbios structures")