Skip to content

Commit 7630f51

Browse files
committed
serialnums: Add support for Framework Desktop
Signed-off-by: Daniel Schaefer <dhs@frame.work>
1 parent 498bd49 commit 7630f51

File tree

2 files changed

+56
-27
lines changed

2 files changed

+56
-27
lines changed

framework_lib/src/serialnum.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
use alloc::format;
12
use alloc::string::{String, ToString};
23
use core::str::FromStr;
34
use num_derive::FromPrimitive;

framework_lib/src/smbios.rs

Lines changed: 55 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -361,38 +361,66 @@ enum SmbiosSerialNumber {
361361
RamSlot2,
362362
Ssd,
363363
AudioFfc,
364+
365+
Heatsink,
366+
Fan,
367+
Chassis,
368+
LeftPanel,
369+
RightPanel,
370+
FrontPanel,
371+
PowerSupply,
364372
}
365373

366374
pub fn dump_oem_strings(strings: &SMBiosStringSet) {
367375
for (i, s) in strings.into_iter().enumerate() {
368376
let idx = i + 1;
369-
let sn = match idx {
370-
1 => Some(SmbiosSerialNumber::Mainboard),
371-
2 => Some(SmbiosSerialNumber::Laptop),
372-
3 => Some(SmbiosSerialNumber::Camera),
373-
4 => Some(SmbiosSerialNumber::Display),
374-
5 => Some(SmbiosSerialNumber::Battery),
375-
6 => Some(SmbiosSerialNumber::Touchpad),
376-
7 => Some(SmbiosSerialNumber::Keyboard),
377-
8 => Some(SmbiosSerialNumber::Fingerprint),
378-
10 => Some(SmbiosSerialNumber::AudioDaughtercard),
379-
11 => Some(SmbiosSerialNumber::ACover),
380-
12 => Some(SmbiosSerialNumber::BCover),
381-
13 => Some(SmbiosSerialNumber::CCover),
382-
14 => Some(SmbiosSerialNumber::AntennaMain),
383-
15 => Some(SmbiosSerialNumber::AntennaAux),
384-
16 => Some(SmbiosSerialNumber::TouchpadFpc),
385-
17 => Some(SmbiosSerialNumber::FingerprintFfc),
386-
18 => Some(SmbiosSerialNumber::EdpCable),
387-
19 => Some(SmbiosSerialNumber::LcdCable),
388-
20 => Some(SmbiosSerialNumber::ThermalAssembly),
389-
21 => Some(SmbiosSerialNumber::WifiModule),
390-
22 => Some(SmbiosSerialNumber::Speaker),
391-
23 => Some(SmbiosSerialNumber::RamSlot1),
392-
24 => Some(SmbiosSerialNumber::RamSlot2),
393-
25 => Some(SmbiosSerialNumber::Ssd),
394-
26 => Some(SmbiosSerialNumber::AudioFfc),
395-
_ => None,
377+
let sn = if get_family() == Some(PlatformFamily::FrameworkDesktop) {
378+
match idx {
379+
1 => Some(SmbiosSerialNumber::Mainboard),
380+
2 => Some(SmbiosSerialNumber::Heatsink),
381+
3 => Some(SmbiosSerialNumber::Fan),
382+
4 => Some(SmbiosSerialNumber::Chassis),
383+
5 => Some(SmbiosSerialNumber::AntennaMain),
384+
6 => Some(SmbiosSerialNumber::WifiModule),
385+
7 => Some(SmbiosSerialNumber::LeftPanel),
386+
8 => Some(SmbiosSerialNumber::RightPanel),
387+
9 => Some(SmbiosSerialNumber::FrontPanel),
388+
10 => Some(SmbiosSerialNumber::PowerSupply),
389+
11 => Some(SmbiosSerialNumber::RamSlot1),
390+
12 => Some(SmbiosSerialNumber::RamSlot2),
391+
13 => Some(SmbiosSerialNumber::Ssd),
392+
14 => Some(SmbiosSerialNumber::AudioFfc),
393+
_ => None,
394+
}
395+
} else {
396+
match idx {
397+
1 => Some(SmbiosSerialNumber::Mainboard),
398+
2 => Some(SmbiosSerialNumber::Laptop),
399+
3 => Some(SmbiosSerialNumber::Camera),
400+
4 => Some(SmbiosSerialNumber::Display),
401+
5 => Some(SmbiosSerialNumber::Battery),
402+
6 => Some(SmbiosSerialNumber::Touchpad),
403+
7 => Some(SmbiosSerialNumber::Keyboard),
404+
8 => Some(SmbiosSerialNumber::Fingerprint),
405+
10 => Some(SmbiosSerialNumber::AudioDaughtercard),
406+
11 => Some(SmbiosSerialNumber::ACover),
407+
12 => Some(SmbiosSerialNumber::BCover),
408+
13 => Some(SmbiosSerialNumber::CCover),
409+
14 => Some(SmbiosSerialNumber::AntennaMain),
410+
15 => Some(SmbiosSerialNumber::AntennaAux),
411+
16 => Some(SmbiosSerialNumber::TouchpadFpc),
412+
17 => Some(SmbiosSerialNumber::FingerprintFfc),
413+
18 => Some(SmbiosSerialNumber::EdpCable),
414+
19 => Some(SmbiosSerialNumber::LcdCable),
415+
20 => Some(SmbiosSerialNumber::ThermalAssembly),
416+
21 => Some(SmbiosSerialNumber::WifiModule),
417+
22 => Some(SmbiosSerialNumber::Speaker),
418+
23 => Some(SmbiosSerialNumber::RamSlot1),
419+
24 => Some(SmbiosSerialNumber::RamSlot2),
420+
25 => Some(SmbiosSerialNumber::Ssd),
421+
26 => Some(SmbiosSerialNumber::AudioFfc),
422+
_ => None,
423+
}
396424
};
397425
match sn {
398426
Some(SmbiosSerialNumber::RamSlot1)

0 commit comments

Comments
 (0)