Skip to content

Commit 7f3ae61

Browse files
committed
serialnums: Add support for Framework Desktop
Signed-off-by: Daniel Schaefer <[email protected]>
1 parent 3230ff3 commit 7f3ae61

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
@@ -382,38 +382,66 @@ enum SmbiosSerialNumber {
382382
RamSlot2,
383383
Ssd,
384384
AudioFfc,
385+
386+
Heatsink,
387+
Fan,
388+
Chassis,
389+
LeftPanel,
390+
RightPanel,
391+
FrontPanel,
392+
PowerSupply,
385393
}
386394

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

0 commit comments

Comments
 (0)