smbios: Add generic type41 write function
Mainboards were defining their own SMBIOS type41 write function. Instead pull this into the generic SMBIOS code and change the existing mainboards to make use of it. Change-Id: I3c8a95ca51fe2a3118dc8d1154011ccfed5fbcbc Signed-off-by: Duncan Laurie <dlaurie@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/56619 Reviewed-by: Stefan Reinauer <reinauer@google.com> Reviewed-on: http://review.coreboot.org/4187 Tested-by: build bot (Jenkins) Reviewed-by: Ronald G. Minnich <rminnich@gmail.com>
This commit is contained in:
		
				
					committed by
					
						 Stefan Reinauer
						Stefan Reinauer
					
				
			
			
				
	
			
			
			
						parent
						
							032be82a11
						
					
				
				
					commit
					21a78706ad
				
			| @@ -303,6 +303,32 @@ static int smbios_write_type32(unsigned long *current, int handle) | ||||
| 	return len; | ||||
| } | ||||
|  | ||||
| int smbios_write_type41(unsigned long *current, int *handle, | ||||
| 			const char *name, u8 instance, u16 segment, | ||||
| 			u8 bus, u8 device, u8 function) | ||||
| { | ||||
| 	struct smbios_type41 *t = (struct smbios_type41 *)*current; | ||||
| 	int len = sizeof(struct smbios_type41); | ||||
|  | ||||
| 	memset(t, 0, sizeof(struct smbios_type41)); | ||||
| 	t->type = SMBIOS_ONBOARD_DEVICES_EXTENDED_INFORMATION; | ||||
| 	t->handle = *handle; | ||||
| 	t->length = len - 2; | ||||
| 	t->reference_designation = smbios_add_string(t->eos, name); | ||||
| 	t->device_type = SMBIOS_DEVICE_TYPE_OTHER; | ||||
| 	t->device_status = 1; | ||||
| 	t->device_type_instance = instance; | ||||
| 	t->segment_group_number = segment; | ||||
| 	t->bus_number = bus; | ||||
| 	t->device_number = device; | ||||
| 	t->function_number = function; | ||||
|  | ||||
| 	len = t->length + smbios_string_table_len(t->eos); | ||||
| 	*current += len; | ||||
| 	*handle += 1; | ||||
| 	return len; | ||||
| } | ||||
|  | ||||
| static int smbios_write_type127(unsigned long *current, int handle) | ||||
| { | ||||
| 	struct smbios_type127 *t = (struct smbios_type127 *)*current; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user