commit | 313efb1c9afcb0192585579a663467c28f873286 | [log] [tgz] |
---|---|---|
author | Gunnar Mills <gmills@us.ibm.com> | Mon Oct 26 16:05:08 2020 -0500 |
committer | Gunnar Mills <gmills@us.ibm.com> | Thu Oct 29 21:28:03 2020 -0500 |
tree | fca88f22fd9dc35958b092687f758dbcbc142a12 | |
parent | 5235d9640276f2421b5fcff1d5a356101fd301e6 [diff] |
Memory: Fix potential validator error "Other" and "Unknown" are not valid Redfish MemoryDeviceType values. Do correct converting D-Bus enum to redfish. Straight mapping (D-Bus and Redfish both contain the same name): DDR DDR2 DDR3 DDR4 DDR4E_SDRAM LPDDR4_SDRAM LPDDR3_SDRAM DDR2_SDRAM_FB_DIMM DDR2_SDRAM_FB_DIMM_PROBE (no E on the end of the d-bus name) DDR_SGRAM ROM SDRAM EDO FastPageMode PipelinedNibble Logical HBM HBM2 The following D-Bus values are not mapped: Other Unknown DRAM EDRAM VRAM SRAM RAM FLASH EEPROM FEPROM EPROM CDRAM ThreeDRM RDRAM FBD2 LPDDR_SDRAM LPDDR2_SDRAM The following Redfish values don't have a mapping to: "DDR4_SDRAM" "DDR3_SDRAM" "DDR_SDRAM" "DDR2_SDRAM" Saw this because not setting the MemoryType so defaulting to "Other" and had removed the logic to leave off all other memory properties when MemorySizeInKB is 0 (commit above). IBM systems are not setting MemorySizeInKB so it is defaulting to 0 hence why this validator error has not been seen in CI. The validator error was "ERROR - MemoryDeviceType: Invalid Enum value 'Other' found, expected ['DDR', 'DDR2', 'DDR3', 'DDR4', 'DDR4_SDRAM', 'DDR4E_SDRAM', 'LPDDR4_SDRAM', 'DDR3_SDRAM', 'LPDDR3_SDRAM', 'DDR2_SDRAM', 'DDR2_SDRAM_FB_DIMM', 'DDR2_SDRAM_FB_DIMM_PROBE', 'DDR_SGRAM', 'DDR_SDRAM', 'ROM', 'SDRAM', 'EDO', 'FastPageMode', 'PipelinedNibble', 'Logical', 'HBM', 'HBM2']" https://github.com/openbmc/phosphor-dbus-interfaces/blob/1e8c11bf2656ed4a5fb27baa2dec3a65763bb47e/xyz/openbmc_project/Inventory/Item/Dimm.interface.yaml#L120 Tested: Passes the validator. Sent this property on D-Bus to different values. Change-Id: I629a1acd81fa6648893b7f531dfaab413cc2dd8f Signed-off-by: Gunnar Mills <gmills@us.ibm.com>
This component attempts to be a "do everything" embedded webserver for openbmc.
At this time, the webserver implements a few interfaces:
BMCWeb is configured by setting -D
flags that correspond to options in bmcweb/meson_options.txt
and then compiling. For example, meson <builddir> -Dkvm=disabled ...
followed by ninja
in build directory. The option names become C++ preprocessor symbols that control which code is compiled into the program.
meson builddir ninja -C builddir
meson builddir -Dbuildtype=minsize -Db_lto=true -Dtests=disabled ninja -C buildir
If any of the dependencies are not found on the host system during configuration, meson automatically gets them via its wrap dependencies mentioned in bmcweb/subprojects
.
meson builddir -Dwrap_mode=nofallback ninja -C builddir
meson builddir -Db_coverage=true -Dtests=enabled ninja coverage -C builddir test
When BMCWeb starts running, it reads persistent configuration data (such as UUID and session data) from a local file. If this is not usable, it generates a new configuration.
When BMCWeb SSL support is enabled and a usable certificate is not found, it will generate a self-sign a certificate before launching the server. The keys are generated by the secp384r1
algorithm. The certificate
C=US, O=OpenBMC, CN=testhost
,SHA-256
algorithm.