diff options
Diffstat (limited to 'i18n/fr_FR/projects/vboot/patches/0007-firmware-Pass-VbDisplayInfo-information-structure-to.patch')
-rw-r--r-- | i18n/fr_FR/projects/vboot/patches/0007-firmware-Pass-VbDisplayInfo-information-structure-to.patch | 354 |
1 files changed, 354 insertions, 0 deletions
diff --git a/i18n/fr_FR/projects/vboot/patches/0007-firmware-Pass-VbDisplayInfo-information-structure-to.patch b/i18n/fr_FR/projects/vboot/patches/0007-firmware-Pass-VbDisplayInfo-information-structure-to.patch new file mode 100644 index 00000000..7f090b6e --- /dev/null +++ b/i18n/fr_FR/projects/vboot/patches/0007-firmware-Pass-VbDisplayInfo-information-structure-to.patch @@ -0,0 +1,354 @@ +From aecef39cda6a70c99bf0caff0452e47ad43a68d8 Mon Sep 17 00:00:00 2001 +From: Paul Kocialkowski <contact@paulk.fr> +Date: Sun, 10 Jul 2016 23:43:16 +0200 +Subject: [PATCH 7/7] firmware: Pass VbDisplayInfo information structure to + VbExDisplayScreen + +This provides VbExDisplayScreen with an information structure +(VbDisplayInfo) that contains various context information for display. + +Change-Id: Id9e07bb418f64e9286f07da11314cd63f925e301 +Signed-off-by: Paul Kocialkowski <contact@paulk.fr> +--- + firmware/include/vboot_api.h | 12 +++++++++- + firmware/lib/include/vboot_display.h | 2 +- + firmware/lib/vboot_api_kernel.c | 44 ++++++++++++++++++++++++------------ + firmware/lib/vboot_display.c | 15 ++++++------ + firmware/stub/vboot_api_stub.c | 3 ++- + tests/vboot_api_devmode_tests.c | 3 ++- + tests/vboot_api_kernel2_tests.c | 2 +- + tests/vboot_api_kernel3_tests.c | 2 +- + 8 files changed, 55 insertions(+), 28 deletions(-) + +diff --git a/firmware/include/vboot_api.h b/firmware/include/vboot_api.h +index 950c1e2..ba53101 100644 +--- a/firmware/include/vboot_api.h ++++ b/firmware/include/vboot_api.h +@@ -697,6 +697,15 @@ enum VbScreenType_t { + VB_SCREEN_OS_BROKEN = 0x208, + }; + ++/* Information on display context */ ++typedef struct VbDisplayInfo { ++ uint32_t allow_usb; ++ uint32_t allow_legacy; ++ uint32_t use_usb; ++ uint32_t use_legacy; ++ uint32_t signed_only; ++} VbDisplayInfo; ++ + /** + * Initialize and clear the display. Set width and height to the screen + * dimensions in pixels. +@@ -725,7 +734,8 @@ VbError_t VbExDisplaySetDimension(uint32_t width, uint32_t height); + * to be simple ASCII text such as "NO GOOD" or "INSERT"; these screens should + * only be seen during development. + */ +-VbError_t VbExDisplayScreen(uint32_t screen_type, uint32_t locale); ++VbError_t VbExDisplayScreen(uint32_t screen_type, uint32_t locale, ++ VbDisplayInfo *info); + + /** + * Write an image to the display, with the upper left corner at the specified +diff --git a/firmware/lib/include/vboot_display.h b/firmware/lib/include/vboot_display.h +index 0ab93f0..0574580 100644 +--- a/firmware/lib/include/vboot_display.h ++++ b/firmware/lib/include/vboot_display.h +@@ -15,7 +15,7 @@ + VbError_t VbDisplayScreenFromGBB(VbCommonParams *cparams, uint32_t screen, + VbNvContext *vncptr, uint32_t locale); + VbError_t VbDisplayScreen(VbCommonParams *cparams, uint32_t screen, int force, +- VbNvContext *vncptr); ++ VbNvContext *vncptr, VbDisplayInfo *info); + VbError_t VbDisplayDebugInfo(VbCommonParams *cparams, VbNvContext *vncptr); + VbError_t VbCheckDisplayKey(VbCommonParams *cparams, uint32_t key, + VbNvContext *vncptr); +diff --git a/firmware/lib/vboot_api_kernel.c b/firmware/lib/vboot_api_kernel.c +index e03e042..7dcc754 100644 +--- a/firmware/lib/vboot_api_kernel.c ++++ b/firmware/lib/vboot_api_kernel.c +@@ -300,11 +300,13 @@ VbError_t VbBootDeveloper(VbCommonParams *cparams, LoadKernelParams *p) + VbSharedDataHeader *shared = + (VbSharedDataHeader *)cparams->shared_data_blob; + ++ VbDisplayInfo info; + uint32_t allow_usb = 0; + uint32_t allow_legacy = 0; + uint32_t disable_dev_boot = 0; + uint32_t use_usb = 0; + uint32_t use_legacy = 0; ++ uint32_t signed_only = 0; + uint32_t default_boot = 0; + uint32_t ctrl_d_pressed = 0; + uint32_t hold = 0; +@@ -350,10 +352,22 @@ VbError_t VbBootDeveloper(VbCommonParams *cparams, LoadKernelParams *p) + } + } + ++ VbNvGet(&vnc, VBNV_DEV_BOOT_SIGNED_ONLY, &signed_only); ++ ++ if (fwmp.flags & FWMP_DEV_ENABLE_OFFICIAL_ONLY) ++ signed_only = 1; ++ ++ info.allow_usb = allow_usb; ++ info.allow_legacy = allow_legacy; ++ info.use_usb = use_usb; ++ info.use_legacy = use_legacy; ++ info.signed_only = signed_only; ++ + /* If dev mode is disabled, only allow TONORM */ + while (disable_dev_boot) { + VBDEBUG(("%s() - dev_disable_boot is set.\n", __func__)); +- VbDisplayScreen(cparams, VB_SCREEN_DEVELOPER_TO_NORM, 0, &vnc); ++ VbDisplayScreen(cparams, VB_SCREEN_DEVELOPER_TO_NORM, 0, &vnc, ++ NULL); + VbExDisplayDebugInfo(dev_disable_msg); + + /* Ignore space in VbUserConfirms()... */ +@@ -363,7 +377,7 @@ VbError_t VbBootDeveloper(VbCommonParams *cparams, LoadKernelParams *p) + VbNvSet(&vnc, VBNV_DISABLE_DEV_REQUEST, 1); + VbDisplayScreen(cparams, + VB_SCREEN_TO_NORM_CONFIRMED, +- 0, &vnc); ++ 0, &vnc, NULL); + VbExSleepMs(5000); + return VBERROR_REBOOT_REQUIRED; + case -1: +@@ -377,7 +391,7 @@ VbError_t VbBootDeveloper(VbCommonParams *cparams, LoadKernelParams *p) + + developer_mode_screen: + /* Show the dev mode warning screen */ +- VbDisplayScreen(cparams, VB_SCREEN_DEVELOPER_WARNING, 0, &vnc); ++ VbDisplayScreen(cparams, VB_SCREEN_DEVELOPER_WARNING, 0, &vnc, &info); + + /* Get audio/delay context */ + audio = VbAudioOpen(cparams); +@@ -425,7 +439,7 @@ developer_mode_screen: + } + VbDisplayScreen(cparams, + VB_SCREEN_DEVELOPER_TO_NORM, +- 0, &vnc); ++ 0, &vnc, NULL); + /* Ignore space in VbUserConfirms()... */ + switch (VbUserConfirms(cparams, 0)) { + case 1: +@@ -436,7 +450,7 @@ developer_mode_screen: + VbDisplayScreen( + cparams, + VB_SCREEN_TO_NORM_CONFIRMED, +- 0, &vnc); ++ 0, &vnc, NULL); + VbExSleepMs(5000); + return VBERROR_REBOOT_REQUIRED; + case -1: +@@ -450,7 +464,7 @@ developer_mode_screen: + VbDisplayScreen( + cparams, + VB_SCREEN_DEVELOPER_WARNING, +- 0, &vnc); ++ 0, &vnc, &info); + /* Start new countdown */ + audio = VbAudioOpen(cparams); + } +@@ -512,7 +526,7 @@ developer_mode_screen: + "USB booting is disabled\n")); + + VbDisplayScreen(cparams, VB_SCREEN_BLANK, 1, +- &vnc); ++ &vnc, NULL); + + VbExDisplayDebugInfo( + "WARNING: Booting from external media " +@@ -533,7 +547,7 @@ developer_mode_screen: + * key press. + */ + VbDisplayScreen(cparams, VB_SCREEN_BLANK, 0, +- &vnc); ++ &vnc, NULL); + if (VBERROR_SUCCESS == VbTryUsb(cparams, p)) { + VbAudioClose(audio); + return VBERROR_SUCCESS; +@@ -542,7 +556,7 @@ developer_mode_screen: + VbDisplayScreen( + cparams, + VB_SCREEN_DEVELOPER_WARNING, +- 0, &vnc); ++ 0, &vnc, &info); + } + } + break; +@@ -608,7 +622,7 @@ VbError_t VbBootRecovery(VbCommonParams *cparams, LoadKernelParams *p) + shared->recovery_reason)); + VbSetRecoverySubcode(shared->recovery_reason); + VbNvCommit(); +- VbDisplayScreen(cparams, VB_SCREEN_OS_BROKEN, 0, &vnc); ++ VbDisplayScreen(cparams, VB_SCREEN_OS_BROKEN, 0, &vnc, NULL); + VBDEBUG(("VbBootRecovery() waiting for manual recovery\n")); + while (1) { + if (VbWantShutdown(cparams->gbb->flags)) +@@ -637,7 +651,7 @@ VbError_t VbBootRecovery(VbCommonParams *cparams, LoadKernelParams *p) + VbDisplayScreen(cparams, VBERROR_NO_DISK_FOUND == retval ? + VB_SCREEN_RECOVERY_INSERT : + VB_SCREEN_RECOVERY_NO_GOOD, +- 0, &vnc); ++ 0, &vnc, NULL); + + /* + * Scan keyboard more frequently than media, since x86 +@@ -677,7 +691,7 @@ VbError_t VbBootRecovery(VbCommonParams *cparams, LoadKernelParams *p) + /* Ask the user to confirm entering dev-mode */ + VbDisplayScreen(cparams, + VB_SCREEN_RECOVERY_TO_DEV, +- 0, &vnc); ++ 0, &vnc, NULL); + /* SPACE means no... */ + uint32_t vbc_flags = + VB_CONFIRM_SPACE_MEANS_NO | +@@ -839,7 +853,7 @@ static VbError_t EcUpdateImage(int devidx, VbCommonParams *cparams, + return VBERROR_VGA_OPROM_MISMATCH; + } + +- VbDisplayScreen(cparams, VB_SCREEN_WAIT, 0, &vnc); ++ VbDisplayScreen(cparams, VB_SCREEN_WAIT, 0, &vnc, NULL); + } + + rv = VbExEcUpdateImage(devidx, select, expected, expected_size); +@@ -1250,13 +1264,13 @@ VbError_t VbSelectAndLoadKernel(VbCommonParams *cparams, + p.boot_flags |= BOOT_FLAG_RECOVERY; + retval = VbBootRecovery(cparams, &p); + VbExEcEnteringMode(0, VB_EC_RECOVERY); +- VbDisplayScreen(cparams, VB_SCREEN_BLANK, 0, &vnc); ++ VbDisplayScreen(cparams, VB_SCREEN_BLANK, 0, &vnc, NULL); + + } else if (p.boot_flags & BOOT_FLAG_DEVELOPER) { + /* Developer boot */ + retval = VbBootDeveloper(cparams, &p); + VbExEcEnteringMode(0, VB_EC_DEVELOPER); +- VbDisplayScreen(cparams, VB_SCREEN_BLANK, 0, &vnc); ++ VbDisplayScreen(cparams, VB_SCREEN_BLANK, 0, &vnc, NULL); + + } else { + /* Normal boot */ +diff --git a/firmware/lib/vboot_display.c b/firmware/lib/vboot_display.c +index 6d8ed92..84b7961 100644 +--- a/firmware/lib/vboot_display.c ++++ b/firmware/lib/vboot_display.c +@@ -321,7 +321,7 @@ VbError_t VbDisplayScreenFromGBB(VbCommonParams *cparams, uint32_t screen, + */ + static VbError_t VbDisplayScreenLegacy(VbCommonParams *cparams, uint32_t screen, + int force, VbNvContext *vncptr, +- uint32_t locale) ++ uint32_t locale, VbDisplayInfo *info) + { + VbError_t retval; + +@@ -336,7 +336,7 @@ static VbError_t VbDisplayScreenLegacy(VbCommonParams *cparams, uint32_t screen, + VbExDisplayBacklight(VB_SCREEN_BLANK == screen ? 0 : 1); + + /* Display default first */ +- if (VBERROR_SUCCESS == VbExDisplayScreen(screen, locale)) ++ if (VBERROR_SUCCESS == VbExDisplayScreen(screen, locale, info)) + return VBERROR_SUCCESS; + + /* If default doesn't have anything to show, fall back to GBB bitmaps */ +@@ -344,7 +344,7 @@ static VbError_t VbDisplayScreenLegacy(VbCommonParams *cparams, uint32_t screen, + } + + VbError_t VbDisplayScreen(VbCommonParams *cparams, uint32_t screen, +- int force, VbNvContext *vncptr) ++ int force, VbNvContext *vncptr, VbDisplayInfo *info) + { + uint32_t locale; + VbError_t rv; +@@ -357,7 +357,7 @@ VbError_t VbDisplayScreen(VbCommonParams *cparams, uint32_t screen, + VbNvGet(vncptr, VBNV_LOCALIZATION_INDEX, &locale); + + rv = VbDisplayScreenLegacy(cparams, screen, force, vncptr, +- locale); ++ locale, info); + + if (rv == VBERROR_SUCCESS) + /* Keep track of the currently displayed screen */ +@@ -560,7 +560,7 @@ VbError_t VbDisplayDebugInfo(VbCommonParams *cparams, VbNvContext *vncptr) + uint32_t i; + + /* Blank screen */ +- VbDisplayScreen(cparams, VB_SCREEN_BLANK, 1, vncptr); ++ VbDisplayScreen(cparams, VB_SCREEN_BLANK, 1, vncptr, NULL); + + /* Add hardware ID */ + VbRegionReadHWID(cparams, hwid, sizeof(hwid)); +@@ -725,13 +725,14 @@ VbError_t VbCheckDisplayKey(VbCommonParams *cparams, uint32_t key, + #endif + + /* Force redraw of current screen */ +- return VbDisplayScreen(cparams, disp_current_screen, 1, vncptr); ++ return VbDisplayScreen(cparams, disp_current_screen, 1, vncptr, ++ NULL); + } + + if (0 == memcmp(MagicBuffer, MAGIC_WORD, MAGIC_WORD_LEN)) { + if (VBEASTEREGG) + (void)VbDisplayScreen(cparams, disp_current_screen, +- 1, vncptr); ++ 1, vncptr, NULL); + } + + return VBERROR_SUCCESS; +diff --git a/firmware/stub/vboot_api_stub.c b/firmware/stub/vboot_api_stub.c +index 717c0f8..c086195 100644 +--- a/firmware/stub/vboot_api_stub.c ++++ b/firmware/stub/vboot_api_stub.c +@@ -41,7 +41,8 @@ VbError_t VbExDisplaySetDimension(uint32_t width, uint32_t height) + return VBERROR_SUCCESS; + } + +-VbError_t VbExDisplayScreen(uint32_t screen_type, uint32_t locale) ++VbError_t VbExDisplayScreen(uint32_t screen_type, uint32_t locale, ++ VbDisplayInfo *info) + { + return VBERROR_SUCCESS; + } +diff --git a/tests/vboot_api_devmode_tests.c b/tests/vboot_api_devmode_tests.c +index abd8e85..6e8afbd 100644 +--- a/tests/vboot_api_devmode_tests.c ++++ b/tests/vboot_api_devmode_tests.c +@@ -265,7 +265,8 @@ VbError_t VbExBeep(uint32_t msec, uint32_t frequency) { + return beep_return; + } + +-VbError_t VbExDisplayScreen(uint32_t screen_type, uint32_t locale) { ++VbError_t VbExDisplayScreen(uint32_t screen_type, uint32_t locale, ++ VbDisplayInfo *info) { + switch(screen_type) { + case VB_SCREEN_BLANK: + VBDEBUG(("VbExDisplayScreen(BLANK)\n")); +diff --git a/tests/vboot_api_kernel2_tests.c b/tests/vboot_api_kernel2_tests.c +index 433933b..d44fc1e 100644 +--- a/tests/vboot_api_kernel2_tests.c ++++ b/tests/vboot_api_kernel2_tests.c +@@ -185,7 +185,7 @@ uint32_t VbTryLoadKernel(VbCommonParams *cparams, LoadKernelParams *p, + } + + VbError_t VbDisplayScreen(VbCommonParams *cparams, uint32_t screen, int force, +- VbNvContext *vncptr) ++ VbNvContext *vncptr, VbDisplayInfo *info) + { + if (screens_count < ARRAY_SIZE(screens_displayed)) + screens_displayed[screens_count++] = screen; +diff --git a/tests/vboot_api_kernel3_tests.c b/tests/vboot_api_kernel3_tests.c +index 3eddb73..0403c71 100644 +--- a/tests/vboot_api_kernel3_tests.c ++++ b/tests/vboot_api_kernel3_tests.c +@@ -195,7 +195,7 @@ VbError_t VbExEcUpdateImage(int devidx, enum VbSelectFirmware_t select, + } + + VbError_t VbDisplayScreen(VbCommonParams *cparams, uint32_t screen, int force, +- VbNvContext *vncptr) ++ VbNvContext *vncptr, VbDisplayInfo *info) + { + if (screens_count < ARRAY_SIZE(screens_displayed)) + screens_displayed[screens_count++] = screen; +-- +2.10.2 + |