efi: Enable CMOS on x86 EFI platforms

The CMOS actually exists on most EFI platforms and in some cases is used to
store useful data that makes it justifiable for GRUB to read/write it.

As for date and time keep using EFI API and not CMOS one.

Signed-off-by: Vladimir Serbinenko <phcoder@gmail.com>
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
This commit is contained in:
Vladimir 'phcoder' Serbinenko 2024-03-15 22:35:07 +03:00 committed by Daniel Kiper
parent aa80270154
commit 52e039e00b
3 changed files with 8 additions and 3 deletions

View File

@ -714,12 +714,16 @@ module = {
name = cmostest;
common = commands/i386/cmostest.c;
enable = cmos;
enable = i386_efi;
enable = x86_64_efi;
};
module = {
name = cmosdump;
common = commands/i386/cmosdump.c;
enable = cmos;
enable = i386_efi;
enable = x86_64_efi;
};
module = {

View File

@ -104,13 +104,13 @@ static grub_command_t cmd, cmd_clean, cmd_set;
GRUB_MOD_INIT(cmostest)
{
cmd = grub_register_command ("cmostest", grub_cmd_cmostest,
cmd = grub_register_command_lockdown ("cmostest", grub_cmd_cmostest,
N_("BYTE:BIT"),
N_("Test bit at BYTE:BIT in CMOS."));
cmd_clean = grub_register_command ("cmosclean", grub_cmd_cmosclean,
cmd_clean = grub_register_command_lockdown ("cmosclean", grub_cmd_cmosclean,
N_("BYTE:BIT"),
N_("Clear bit at BYTE:BIT in CMOS."));
cmd_set = grub_register_command ("cmosset", grub_cmd_cmosset,
cmd_set = grub_register_command_lockdown ("cmosset", grub_cmd_cmosset,
N_("BYTE:BIT"),
/* TRANSLATORS: A bit may be either set (1) or clear (0). */
N_("Set bit at BYTE:BIT in CMOS."));

View File

@ -0,0 +1 @@
#include <grub/i386/cmos.h>