smbios: Make SMBIOS type 3 enclosure type settable at runtime
smbios.h had already declared smbios_mainboard_enclosure_type so this
change defines it. It can be overridden in a mainboard so the enclosure
type can be set at runtime.
We have a mainboard that will be used in different enclosures and we are
planning on using a single BIOS image for all of the enclosures so it
will need to be set dynamically based on sku.
BUG=b:138745917
TEST=Built arcada firmware and verified via dmidecode that enclosure type
     is correctly set to "Convertible", then temporarily added a
     smbios_mainboard_enclosure_type to arcadas board file returning
     0x20 and verified with dmidecode that the enclosure type is
     "Detachable"
Change-Id: Iba6e582640989f5cb7e6613813e7b033760a977c
Signed-off-by: Mathew King <mathewk@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/34646
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Martin Roth <martinroth@google.com>
			
			
This commit is contained in:
		@@ -500,6 +500,11 @@ smbios_board_type __weak smbios_mainboard_board_type(void)
 | 
				
			|||||||
	return SMBIOS_BOARD_TYPE_UNKNOWN;
 | 
						return SMBIOS_BOARD_TYPE_UNKNOWN;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					u8 __weak smbios_mainboard_enclosure_type(void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						return CONFIG_SMBIOS_ENCLOSURE_TYPE;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const char *__weak smbios_system_serial_number(void)
 | 
					const char *__weak smbios_system_serial_number(void)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	return smbios_mainboard_serial_number();
 | 
						return smbios_mainboard_serial_number();
 | 
				
			||||||
@@ -620,7 +625,7 @@ static int smbios_write_type3(unsigned long *current, int handle)
 | 
				
			|||||||
	t->bootup_state = SMBIOS_STATE_SAFE;
 | 
						t->bootup_state = SMBIOS_STATE_SAFE;
 | 
				
			||||||
	t->power_supply_state = SMBIOS_STATE_SAFE;
 | 
						t->power_supply_state = SMBIOS_STATE_SAFE;
 | 
				
			||||||
	t->thermal_state = SMBIOS_STATE_SAFE;
 | 
						t->thermal_state = SMBIOS_STATE_SAFE;
 | 
				
			||||||
	t->_type = CONFIG_SMBIOS_ENCLOSURE_TYPE;
 | 
						t->_type = smbios_mainboard_enclosure_type();
 | 
				
			||||||
	t->security_status = SMBIOS_STATE_SAFE;
 | 
						t->security_status = SMBIOS_STATE_SAFE;
 | 
				
			||||||
	len = t->length + smbios_string_table_len(t->eos);
 | 
						len = t->length + smbios_string_table_len(t->eos);
 | 
				
			||||||
	*current += len;
 | 
						*current += len;
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user