coreboot: introduce boot_device
The boot_device is a region_device that represents the device from which coreboot retrieves and boots its stages. The existing cbfs implementations use the boot_device as the intermediary for accessing the CBFS region. Also, there's currently only support for a read-only view of the boot_device. i.e. one cannot write to the boot_device using this view. However, a writable boot_device could be added in the future. Change-Id: Ic0da796ab161b8025c90631be3423ba6473ad31c Signed-off-by: Aaron Durbin <adurbin@chromium.org> Reviewed-on: http://review.coreboot.org/10216 Tested-by: build bot (Jenkins) Tested-by: Raptor Engineering Automated Test Stand <noreply@raptorengineeringinc.com> Reviewed-by: Patrick Georgi <pgeorgi@google.com>
This commit is contained in:
		
							
								
								
									
										41
									
								
								src/include/boot_device.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										41
									
								
								src/include/boot_device.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,41 @@ | ||||
| /* | ||||
|  * This file is part of the coreboot project. | ||||
|  * | ||||
|  * Copyright 2015 Google Inc. | ||||
|  * | ||||
|  * This program is free software; you can redistribute it and/or modify | ||||
|  * it under the terms of the GNU General Public License as published by | ||||
|  * the Free Software Foundation; version 2 of the License. | ||||
|  * | ||||
|  * This program is distributed in the hope that it will be useful, | ||||
|  * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
|  * GNU General Public License for more details. | ||||
|  * | ||||
|  * You should have received a copy of the GNU General Public License | ||||
|  * along with this program; if not, write to the Free Software | ||||
|  * Foundation, Inc. | ||||
|  */ | ||||
|  | ||||
| #ifndef _BOOT_DEVICE_H_ | ||||
| #define _BOOT_DEVICE_H_ | ||||
|  | ||||
| #include <region.h> | ||||
|  | ||||
| /* Return the region_device for the read-only boot device. */ | ||||
| const struct region_device *boot_device_ro(void); | ||||
|  | ||||
| /* | ||||
|  * Create a sub-region of the read-only boot device. | ||||
|  * Returns 0 on success, < 0 on error. | ||||
|  */ | ||||
| int boot_device_ro_subregion(const struct region *sub, | ||||
| 				struct region_device *subrd); | ||||
|  | ||||
| /* | ||||
|  * Initialize the boot device. This may be called multiple times within | ||||
|  * a stage so boot device implementations should account for this behavior. | ||||
|  **/ | ||||
| void boot_device_init(void); | ||||
|  | ||||
| #endif /* _BOOT_DEVICE_H_ */ | ||||
		Reference in New Issue
	
	Block a user