tree b263ff1d3ee220c02ec710a2aa008a1f9d2af32d
parent 989150f5d9874600a39c6a9253c1f0da65646698
author Alex Lai <alexlai@google.com> 1790645453 +0000
committer Alex Lai <alexlai@google.com> 1790662820 -0700

gbmcweb master: SRCREV bump f0deb394c1..e2dec47232

Nan Zhou (1):
      Make NIC telemetry glue layer propogate error message

gBMC Team (27):
      Support Drive links in ComponentIntegrity and TrustedComponent
      Modify ScheduleAsync() to return a StatusOr<int> instead of returning -1 on failure
      Add ChipRevision to RootOfTrust OEM status in google service root
      Enable Get/Set BootSourceOverrideTarget in Redfish. Use SystemRegistry to Get and Set BootSourceOverrideTarget in Redfish for Server 3.0 / tlBMC systems. - Add helper functions to convert between Redfish string representations and gbmc::settings::BootSourceOverrideTarget enum values:   - "None" <-> BOOT_SOURCE_OVERRIDE_TARGET_UNSPECIFIED   - "UefiBootNext" <-> BOOT_SOURCE_OVERRIDE_TARGET_UEFI_BOOT_NEXT   - "Diags" <-> BOOT_SOURCE_OVERRIDE_TARGET_DIAGS   - "UefiHttp" <-> BOOT_SOURCE_OVERRIDE_TARGET_UEFI_HTTP - Add LINT.IfChange / LINT.ThenChange blocks between bios_settings.proto and systems.h to enforce synchronization across enum values, conversions, and AllowableValues. - GET: Query SystemRegistry for BootSourceOverrideTarget; default to "None" if unspecified or not found in storage. - PATCH: Validate allowable values and update SystemRegistry via setBootSourceOverrideTarget(). - Refactor setBootProperties() to incorporate setBootSourceOverrideTarget() and setBootNext(), achieving full parity with getBootProperties() across all 5 boot properties. - Add unit tests in system_test covering GET and PATCH across all supported targets, missing settings, and invalid inputs.
      tlbmc: Use non-throwing filesystem APIs in update_service
      Add OEM Action URIs for NVMe Format in GET handlers.
      Update copybara config.
      Add SetActiveState to Gpio Collector
      Add handler implementations for NVMe Format (POST handlers - Storage scope).
      Expose Get/Set BootSourceOverrideEnabled via SystemRegistry Expose BootSourceOverrideEnabled getter and setter in tlbmc SystemRegistry HAL to support Redfish out-of-band boot configuration. Similar to BootSourceOverrideTarget and BootNext, BootSourceOverrideEnabled maps to gbmc-settings backed storage for out-of-band boot configuration. - Add GetBootSourceOverrideEnabled and SetBootSourceOverrideEnabled to SystemRegistry interface. - Implement methods in SystemRegistryImpl delegating to SettingsManager. - Add mock methods in MockSystemRegistry. - Add unit tests in system_registry_impl_test covering default, update, and invalid ID handling.
      Update copybara config.
      Clear BIOS settings on Manager.Reset tray power cycles.
      Add handler implementations for NVMe Format (POST handlers - Controller scope).
      Enable Get/Set BootSourceOverrideEnabled in Redfish. Use SystemRegistry to Get and Set BootSourceOverrideEnabled in Redfish for Server 3.0 / tlBMC systems. - Add helper functions to convert between Redfish string representations and gbmc::settings::BootSourceOverrideEnabled enum values:   - Disabled <-> BOOT_SOURCE_OVERRIDE_ENABLED_DISABLED / BOOT_SOURCE_OVERRIDE_ENABLED_UNSPECIFIED   - Once <-> BOOT_SOURCE_OVERRIDE_ENABLED_ONCE   - Continuous <-> BOOT_SOURCE_OVERRIDE_ENABLED_CONTINUOUS - Add LINT.IfChange / LINT.ThenChange blocks between bios_settings.proto and systems.h to enforce synchronization across enum values, conversions, and AllowableValues. - GET: Query SystemRegistry for BootSourceOverrideEnabled; default to Disabled if unspecified or not found in storage. - PATCH: Validate allowable values (Disabled, Once, Continuous) and update SystemRegistry via setBootSourceOverrideEnabled(). - Deprecate legacy single-host OpenBMC D-Bus calls (getBootOverrideEnable/setBootEnable) in favor of SystemRegistry. - Add unit tests in system_test covering GET and PATCH across all supported enabled states, missing settings, and invalid inputs.
      Decouple BIOS Key Metrics Routes from other System routes
      Remove IliadCper ClearLog Action Exposing
      Annotate unused on_done parameter in TaskScheduler::ScheduleOneShotAsync
      tlbmc: Use non-throwing filesystem APIs in software_metrics
      tlbmc: Use non-throwing filesystem APIs in psu_sensor
      tlbmc: Use non-throwing filesystem APIs in ixc_hwmon_based_sensor
      Add HBM3E mapping to Redfish memory type translation.
      component_integrity: Handle Configuration.MCTPUSBDevice
      Remove default values for `PidTunerFrequencyResponseEstimationConfig`
      Enable reading throttling_config via ProtoConfigParser and add the ThrottlingCollectorModule switch to central_config
      network_adapter: Support concurrent parallel fetch and PLDM/NSM port telemetry merging
      Internal config change
      Internal debug route expose

Fusion-Link:
platform5: https://fusion2.corp.google.com/a0e17394-7c86-3f52-8997-86c0a6429875
platform15: https://fusion2.corp.google.com/1cf6c64c-cd0d-3ea3-b349-febb94ee3722
platform18: https://fusion2.corp.google.com/6c658ad9-dff8-30d4-8303-8752892dea5c
platform17: https://fusion2.corp.google.com/9ce9f936-97d9-38b6-8b08-8068de399c36
platform11+ext: https://fusion2.corp.google.com/95a8cc66-58b1-37ee-9db8-888b0a76a359
platform11: https://fusion2.corp.google.com/379444f5-b961-33a0-866b-8db68d13a32f
platform25: https://fusion2.corp.google.com/b28e2a7d-20fb-31a8-b0e2-41facd5dc1d0
Tested: N/A
Google-Bug-Id: 478925741
Google-Bug-Id: 484142258
Google-Bug-Id: 510274521
Google-Bug-Id: 539553710
Google-Bug-Id: 539553711
Google-Bug-Id: 546825589
Google-Bug-Id: 548553656
Google-Bug-Id: 553237038
Google-Bug-Id: 555368649,564635742
Google-Bug-Id: 556395187
Google-Bug-Id: 557005946
Google-Bug-Id: 559754428
Google-Bug-Id: 563037197
Google-Bug-Id: 563046016
Google-Bug-Id: 564215328
Google-Bug-Id: 564232409
Google-Bug-Id: 564699650
Change-Id: I3fb3fa4958d3b7d059143bff921f23f345bc472b
Signed-off-by: Alex Lai <alexlai@google.com>
