 5039e316dd
			
		
	
	
	5039e316dd
	
	
	
		
			
			kexec-tools use boot_params for getting the 1st kernel hardware_subarch, the kexec kernel EFI runtime support also needs to read the old efi_info from boot_params. Currently it exists in debugfs which is not a good place for such infomation. Per HPA, we should avoid "sploit debugfs". In this patch /sys/kernel/boot_params are exported, also the setup_data is exported as a subdirectory. kexec-tools is using debugfs for hardware_subarch for a long time now so we're not removing it yet. Structure is like below: /sys/kernel/boot_params |__ data /* boot_params in binary*/ |__ setup_data | |__ 0 /* the first setup_data node */ | | |__ data /* setup_data node 0 in binary*/ | | |__ type /* setup_data type of setup_data node 0, hex string */ [snip] |__ version /* boot protocal version (in hex, "0x" prefixed)*/ Signed-off-by: Dave Young <dyoung@redhat.com> Acked-by: Borislav Petkov <bp@suse.de> Tested-by: Toshi Kani <toshi.kani@hp.com> Signed-off-by: Matt Fleming <matt.fleming@intel.com>
		
			
				
	
	
		
			38 lines
		
	
	
	
		
			1.2 KiB
			
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
	
		
			1.2 KiB
			
		
	
	
	
		
			Text
		
	
	
	
	
	
| What:		/sys/kernel/boot_params
 | |
| Date:		December 2013
 | |
| Contact:	Dave Young <dyoung@redhat.com>
 | |
| Description:	The /sys/kernel/boot_params directory contains two
 | |
| 		files: "data" and "version" and one subdirectory "setup_data".
 | |
| 		It is used to export the kernel boot parameters of an x86
 | |
| 		platform to userspace for kexec and debugging purpose.
 | |
| 
 | |
| 		If there's no setup_data in boot_params the subdirectory will
 | |
| 		not be created.
 | |
| 
 | |
| 		"data" file is the binary representation of struct boot_params.
 | |
| 
 | |
| 		"version" file is the string representation of boot
 | |
| 		protocol version.
 | |
| 
 | |
| 		"setup_data" subdirectory contains the setup_data data
 | |
| 		structure in boot_params. setup_data is maintained in kernel
 | |
| 		as a link list. In "setup_data" subdirectory there's one
 | |
| 		subdirectory for each link list node named with the number
 | |
| 		of the list nodes. The list node subdirectory contains two
 | |
| 		files "type" and "data". "type" file is the string
 | |
| 		representation of setup_data type. "data" file is the binary
 | |
| 		representation of setup_data payload.
 | |
| 
 | |
| 		The whole boot_params directory structure is like below:
 | |
| 		/sys/kernel/boot_params
 | |
| 		|__ data
 | |
| 		|__ setup_data
 | |
| 		|   |__ 0
 | |
| 		|   |   |__ data
 | |
| 		|   |   |__ type
 | |
| 		|   |__ 1
 | |
| 		|       |__ data
 | |
| 		|       |__ type
 | |
| 		|__ version
 | |
| 
 | |
| Users:		Kexec
 |