Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(934)

Unified Diff: src/platform/vboot_reference/fwapi/include/load_kernel_fw.h

Issue 2165003: Load kernel APIs added (once more, from the correct repo) (Closed) Base URL: ssh://gitrw.chromium.org/chromiumos
Patch Set: Created 10 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/platform/vboot_reference/common/include/boot_device.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/platform/vboot_reference/fwapi/include/load_kernel_fw.h
diff --git a/src/platform/vboot_reference/fwapi/include/load_kernel_fw.h b/src/platform/vboot_reference/fwapi/include/load_kernel_fw.h
new file mode 100644
index 0000000000000000000000000000000000000000..0c7f1bf8be5e0d90670aa9888fccd3dd7b11aa00
--- /dev/null
+++ b/src/platform/vboot_reference/fwapi/include/load_kernel_fw.h
@@ -0,0 +1,60 @@
+/* Copyright (c) 2010 The Chromium OS Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ *
+ * High-level firmware API for loading and verifying kernel.
+ * (Firmware Portion)
+ */
+
+#ifndef VBOOT_REFERENCE_LOAD_KERNEL_FW_H_
+#define VBOOT_REFERENCE_LOAD_KERNEL_FW_H_
+
+#include <stdint.h>
+
+/* Interface provided by verified boot library to BDS */
+
+/* Return codes for LoadKernel() */
+#define LOAD_KERNEL_SUCCESS 0
+#define LOAD_KERNEL_NOT_FOUND 1
+#define LOAD_KERNEL_INVALID 2
+
+typedef struct LoadKernelParams {
+ /* Inputs to LoadKernel() */
+ uint64_t bytes_per_lba; /* Bytes per lba sector on current device */
+ uint64_t ending_lba; /* Last addressable lba sector on current
+ * device */
+ void *kernel_buffer; /* Destination buffer for kernel
+ * (normally at 0x100000) */
+ uint64_t kernel_buffer_size; /* Size of kernel buffer in bytes */
+ uint8_t in_developer_mode; /* Did device boot in developer mode?
+ * 0 = normal or recovery mode
+ * 1 = developer mode */
+
+ /* Outputs from LoadKernel(); valid only if LoadKernel() returns
+ * LOAD_KERNEL_SUCCESS */
+ uint64_t partition_number; /* Partition number to boot on current device
+ * (1...M) */
+ void *bootloader_start; /* Start of bootloader image */
+ uint64_t bootloader_size; /* Size of bootloader image in bytes */
+} LoadKernelParams;
+
+uintn_t LoadKernel(LoadKernelParams* params);
+/* Attempts to load the kernel from the current device.
+ *
+ * Returns LOAD_KERNEL_SUCCESS if successful, error code on failure. */
+
+
+typedef struct KernelBootloaderOptions {
+ /* The bootloader is loaded using the EFI LoadImage() and StartImage()
+ * calls. Pass this struct via loaded_image->load_options. */
+ uint64_t drive_number; /* Drive number of boot device (0...N) */
+ uint64_t partition_number; /* Partition number, as returned from
+ * LoadKernel() in
+ * LoadKernelParams.partition_number */
+ uint64_t original_address; /* Absolute bootloader start adddress,
+ * as returned from LoadKernel() in
+ * LoadKernelParams.bootloader_start */
+} KernelBootloaderOptions;
+
+
+#endif /* VBOOT_REFERENCE_LOAD_KERNEL_FW_H_ */
« no previous file with comments | « src/platform/vboot_reference/common/include/boot_device.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698