Skip to content

Commit d378c02

Browse files
committed
serialnums: Add support for Framework Desktop
Signed-off-by: Daniel Schaefer <[email protected]>
1 parent 012132c commit d378c02

File tree

1 file changed

+55
-27
lines changed

1 file changed

+55
-27
lines changed

framework_lib/src/smbios.rs

Lines changed: 55 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -381,38 +381,66 @@ enum SmbiosSerialNumber {
381381
RamSlot2,
382382
Ssd,
383383
AudioFfc,
384+
385+
Heatsink,
386+
Fan,
387+
Chassis,
388+
LeftPanel,
389+
RightPanel,
390+
FrontPanel,
391+
PowerSupply,
384392
}
385393

386394
pub fn dump_oem_strings(strings: &SMBiosStringSet) {
387395
for (i, s) in strings.into_iter().enumerate() {
388396
let idx = i + 1;
389-
let sn = match idx {
390-
1 => Some(SmbiosSerialNumber::Mainboard),
391-
2 => Some(SmbiosSerialNumber::Laptop),
392-
3 => Some(SmbiosSerialNumber::Camera),
393-
4 => Some(SmbiosSerialNumber::Display),
394-
5 => Some(SmbiosSerialNumber::Battery),
395-
6 => Some(SmbiosSerialNumber::Touchpad),
396-
7 => Some(SmbiosSerialNumber::Keyboard),
397-
8 => Some(SmbiosSerialNumber::Fingerprint),
398-
10 => Some(SmbiosSerialNumber::AudioDaughtercard),
399-
11 => Some(SmbiosSerialNumber::ACover),
400-
12 => Some(SmbiosSerialNumber::BCover),
401-
13 => Some(SmbiosSerialNumber::CCover),
402-
14 => Some(SmbiosSerialNumber::AntennaMain),
403-
15 => Some(SmbiosSerialNumber::AntennaAux),
404-
16 => Some(SmbiosSerialNumber::TouchpadFpc),
405-
17 => Some(SmbiosSerialNumber::FingerprintFfc),
406-
18 => Some(SmbiosSerialNumber::EdpCable),
407-
19 => Some(SmbiosSerialNumber::LcdCable),
408-
20 => Some(SmbiosSerialNumber::ThermalAssembly),
409-
21 => Some(SmbiosSerialNumber::WifiModule),
410-
22 => Some(SmbiosSerialNumber::Speaker),
411-
23 => Some(SmbiosSerialNumber::RamSlot1),
412-
24 => Some(SmbiosSerialNumber::RamSlot2),
413-
25 => Some(SmbiosSerialNumber::Ssd),
414-
26 => Some(SmbiosSerialNumber::AudioFfc),
415-
_ => None,
397+
let sn = if get_family() == Some(PlatformFamily::FrameworkDesktop) {
398+
match idx {
399+
1 => Some(SmbiosSerialNumber::Mainboard),
400+
2 => Some(SmbiosSerialNumber::Heatsink),
401+
3 => Some(SmbiosSerialNumber::Fan),
402+
4 => Some(SmbiosSerialNumber::Chassis),
403+
5 => Some(SmbiosSerialNumber::AntennaMain),
404+
6 => Some(SmbiosSerialNumber::WifiModule),
405+
7 => Some(SmbiosSerialNumber::LeftPanel),
406+
8 => Some(SmbiosSerialNumber::RightPanel),
407+
9 => Some(SmbiosSerialNumber::FrontPanel),
408+
10 => Some(SmbiosSerialNumber::PowerSupply),
409+
11 => Some(SmbiosSerialNumber::RamSlot1),
410+
12 => Some(SmbiosSerialNumber::RamSlot2),
411+
13 => Some(SmbiosSerialNumber::Ssd),
412+
14 => Some(SmbiosSerialNumber::AudioFfc),
413+
_ => None,
414+
}
415+
} else {
416+
match idx {
417+
1 => Some(SmbiosSerialNumber::Mainboard),
418+
2 => Some(SmbiosSerialNumber::Laptop),
419+
3 => Some(SmbiosSerialNumber::Camera),
420+
4 => Some(SmbiosSerialNumber::Display),
421+
5 => Some(SmbiosSerialNumber::Battery),
422+
6 => Some(SmbiosSerialNumber::Touchpad),
423+
7 => Some(SmbiosSerialNumber::Keyboard),
424+
8 => Some(SmbiosSerialNumber::Fingerprint),
425+
10 => Some(SmbiosSerialNumber::AudioDaughtercard),
426+
11 => Some(SmbiosSerialNumber::ACover),
427+
12 => Some(SmbiosSerialNumber::BCover),
428+
13 => Some(SmbiosSerialNumber::CCover),
429+
14 => Some(SmbiosSerialNumber::AntennaMain),
430+
15 => Some(SmbiosSerialNumber::AntennaAux),
431+
16 => Some(SmbiosSerialNumber::TouchpadFpc),
432+
17 => Some(SmbiosSerialNumber::FingerprintFfc),
433+
18 => Some(SmbiosSerialNumber::EdpCable),
434+
19 => Some(SmbiosSerialNumber::LcdCable),
435+
20 => Some(SmbiosSerialNumber::ThermalAssembly),
436+
21 => Some(SmbiosSerialNumber::WifiModule),
437+
22 => Some(SmbiosSerialNumber::Speaker),
438+
23 => Some(SmbiosSerialNumber::RamSlot1),
439+
24 => Some(SmbiosSerialNumber::RamSlot2),
440+
25 => Some(SmbiosSerialNumber::Ssd),
441+
26 => Some(SmbiosSerialNumber::AudioFfc),
442+
_ => None,
443+
}
416444
};
417445
match sn {
418446
Some(SmbiosSerialNumber::RamSlot1)

0 commit comments

Comments
 (0)