diff options
| author | Dave Young <dyoung@redhat.com> | 2013-12-20 05:02:21 -0500 |
|---|---|---|
| committer | Matt Fleming <matt.fleming@intel.com> | 2013-12-29 08:09:07 -0500 |
| commit | 5039e316dde3fb71c79e95e97c5bca8e4724d8f2 (patch) | |
| tree | 9446e8ce0df0d9849bfec4fab93bd30f59d7c919 /Documentation/ABI/testing/sysfs-kernel-boot_params | |
| parent | 456a29ddada79198c5965300e04103c40c481f62 (diff) | |
x86: Export x86 boot_params to sysfs
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>
Diffstat (limited to 'Documentation/ABI/testing/sysfs-kernel-boot_params')
| -rw-r--r-- | Documentation/ABI/testing/sysfs-kernel-boot_params | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/Documentation/ABI/testing/sysfs-kernel-boot_params b/Documentation/ABI/testing/sysfs-kernel-boot_params new file mode 100644 index 000000000000..eca38ce2852d --- /dev/null +++ b/Documentation/ABI/testing/sysfs-kernel-boot_params | |||
| @@ -0,0 +1,38 @@ | |||
| 1 | What: /sys/kernel/boot_params | ||
| 2 | Date: December 2013 | ||
| 3 | Contact: Dave Young <dyoung@redhat.com> | ||
| 4 | Description: The /sys/kernel/boot_params directory contains two | ||
| 5 | files: "data" and "version" and one subdirectory "setup_data". | ||
| 6 | It is used to export the kernel boot parameters of an x86 | ||
| 7 | platform to userspace for kexec and debugging purpose. | ||
| 8 | |||
| 9 | If there's no setup_data in boot_params the subdirectory will | ||
| 10 | not be created. | ||
| 11 | |||
| 12 | "data" file is the binary representation of struct boot_params. | ||
| 13 | |||
| 14 | "version" file is the string representation of boot | ||
| 15 | protocol version. | ||
| 16 | |||
| 17 | "setup_data" subdirectory contains the setup_data data | ||
| 18 | structure in boot_params. setup_data is maintained in kernel | ||
| 19 | as a link list. In "setup_data" subdirectory there's one | ||
| 20 | subdirectory for each link list node named with the number | ||
| 21 | of the list nodes. The list node subdirectory contains two | ||
| 22 | files "type" and "data". "type" file is the string | ||
| 23 | representation of setup_data type. "data" file is the binary | ||
| 24 | representation of setup_data payload. | ||
| 25 | |||
| 26 | The whole boot_params directory structure is like below: | ||
| 27 | /sys/kernel/boot_params | ||
| 28 | |__ data | ||
| 29 | |__ setup_data | ||
| 30 | | |__ 0 | ||
| 31 | | | |__ data | ||
| 32 | | | |__ type | ||
| 33 | | |__ 1 | ||
| 34 | | |__ data | ||
| 35 | | |__ type | ||
| 36 | |__ version | ||
| 37 | |||
| 38 | Users: Kexec | ||
