From 5833cb6ee09bd911e02b36675932c3f97c533048 Mon Sep 17 00:00:00 2001 From: Yong Li Date: Wed, 30 Oct 2019 13:27:12 +0800 Subject: Add compile option to disable safe mode option in boot flags Some platforms doe not support safe mode in set/get system boot options commands, add an compile option to disable it. Using the below command: ./configure --disable-boot-flag-safe-mode-support Tested: After adding this compile option, below command fails: // set safe mode in set system boot options command ipmitool raw 0 8 5 0x80 0xc Unable to send RAW command (channel=0x0 netfn=0x0 lun=0x0 cmd=0x8 rsp=0xcc): Invalid data field in request Signed-off-by: Yong Li Change-Id: Ie479a0c68a8e9fc79f99c9d4cc10cdd1e6ceb20e --- chassishandler.cpp | 4 ++++ configure.ac | 11 +++++++++++ 2 files changed, 15 insertions(+) diff --git a/chassishandler.cpp b/chassishandler.cpp index 2e911f9..305897b 100644 --- a/chassishandler.cpp +++ b/chassishandler.cpp @@ -1327,7 +1327,9 @@ std::map sourceIpmiToDbus = { {ipmiDefault, Source::Sources::Default}}; std::map modeIpmiToDbus = { +#ifdef ENABLE_BOOT_FLAG_SAFE_MODE_SUPPORT {0x03, Mode::Modes::Safe}, +#endif // ENABLE_BOOT_SAFE_MODE_SUPPORT {0x06, Mode::Modes::Setup}, {ipmiDefault, Mode::Modes::Regular}}; @@ -1339,7 +1341,9 @@ std::map sourceDbusToIpmi = { {Source::Sources::Default, ipmiDefault}}; std::map modeDbusToIpmi = { +#ifdef ENABLE_BOOT_FLAG_SAFE_MODE_SUPPORT {Mode::Modes::Safe, 0x03}, +#endif // ENABLE_BOOT_SAFE_MODE_SUPPORT {Mode::Modes::Setup, 0x06}, {Mode::Modes::Regular, ipmiDefault}}; diff --git a/configure.ac b/configure.ac index 04c48b8..296165f 100644 --- a/configure.ac +++ b/configure.ac @@ -25,6 +25,17 @@ AM_PROG_AR AC_PROG_INSTALL AC_PROG_MAKE_SET +# Add an option to enable/disable safe mode in boot flags +AC_ARG_ENABLE([boot-flag-safe-mode-support], + AS_HELP_STRING([--disable-boot-flag-safe-mode-support], [Disable safe mode option in boot flags. [default=enable]]) +) +AS_IF([test "x$enable_boot_flag_safe_mode_support" != "xno"], + AC_MSG_NOTICE([Enabling safe mode option in boot flags]) + [cpp_flags="-DENABLE_BOOT_FLAG_SAFE_MODE_SUPPORT"] + AC_SUBST([CPPFLAGS], [$cpp_flags]), + AC_MSG_WARN([Disabling safe mode option in boot flags]) +) + # Add an option to enable/disable i2c master write read command white list checking AC_ARG_ENABLE([i2c-whitelist-check], AS_HELP_STRING([--disable-i2c-whitelist-check], [Disable I2C master write read command white list check. [default=enable]]) -- cgit v1.2.1