mirror of
https://github.com/Telecominfraproject/OpenCellular.git
synced 2025-11-25 02:35:22 +00:00
kernel flags: Add flags field to kernel preamble.
1. Increase kernel preamble revision from 2.1 to 2.2. 2. Add flags field to kernel preamble. 3. Update futility to accept flags parameter for vbutil_kernel and cmd_sign for kernel. 4. Pass in an extra flags field to SignKernelBlob and CreateKernelPreamble. BUG=chrome-os-partner:35861 BRANCH=None TEST=1) "make runalltests" completes successfully. 2) vboot_reference compiles successfully for ryu. 3) Verified flags field in header using futility show. Change-Id: If9f06f98778a7339194c77090cbef4807d5e34e2 Signed-off-by: Furquan Shaikh <furquan@google.com> Reviewed-on: https://chromium-review.googlesource.com/245950 Tested-by: Furquan Shaikh <furquan@chromium.org> Reviewed-by: Randall Spangler <rspangler@chromium.org> Commit-Queue: Furquan Shaikh <furquan@chromium.org>
This commit is contained in:
committed by
ChromeOS Commit Bot
parent
623d6c4744
commit
80e779d50b
@@ -437,13 +437,20 @@ int VerifyKernelPreamble(const VbKernelPreambleHeader *preamble,
|
||||
|
||||
/*
|
||||
* If the preamble header version is at least 2.1, verify we have space
|
||||
* for the added fields from 2.1.
|
||||
* for the added fields from >2.1.
|
||||
*/
|
||||
if (preamble->header_version_minor >= 1) {
|
||||
if(size < EXPECTED_VBKERNELPREAMBLEHEADER2_1_SIZE) {
|
||||
if((preamble->header_version_minor == 1) &&
|
||||
(size < EXPECTED_VBKERNELPREAMBLEHEADER2_1_SIZE)) {
|
||||
VBDEBUG(("Not enough data for preamble header 2.1.\n"));
|
||||
return VBOOT_PREAMBLE_INVALID;
|
||||
}
|
||||
|
||||
if((preamble->header_version_minor == 2) &&
|
||||
(size < EXPECTED_VBKERNELPREAMBLEHEADER2_2_SIZE)) {
|
||||
VBDEBUG(("Not enough data for preamble header 2.2.\n"));
|
||||
return VBOOT_PREAMBLE_INVALID;
|
||||
}
|
||||
}
|
||||
|
||||
/* Success */
|
||||
@@ -469,6 +476,14 @@ int VbGetKernelVmlinuzHeader(const VbKernelPreambleHeader *preamble,
|
||||
return VBOOT_SUCCESS;
|
||||
}
|
||||
|
||||
int VbKernelHasFlags(const VbKernelPreambleHeader *preamble)
|
||||
{
|
||||
if (preamble->header_version_minor > 1)
|
||||
return VBOOT_SUCCESS;
|
||||
|
||||
return VBOOT_KERNEL_PREAMBLE_NO_FLAGS;
|
||||
}
|
||||
|
||||
int VerifyVmlinuzInsideKBlob(uint64_t kblob, uint64_t kblob_size,
|
||||
uint64_t header, uint64_t header_size)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user