blob: 142ae983113082cfa9dcf650ecdaef222db44ae8 [file]
# Copyright 2024 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
description: >
Implement the HothState interface for monitoring.
properties:
- name: ResetFlags
type: uint32
default: 0
flags:
- readonly
description: >
The reset flags of the last Hoth reset.
errors:
- self.Error.ExpectedInfoNotFound
- name: UpTime
type: uint64
default: 0
flags:
- readonly
description: >
Number of microseconds since the last Hoth boot.
errors:
- self.Error.ExpectedInfoNotFound
- name: RoInfoStrikes
type: uint32
default: 0
flags:
- readonly
description: >
The current INFO strike count in the RO region.
errors:
- self.Error.ExpectedInfoNotFound
- name: RwInfoStrikes
type: uint32
default: 0
flags:
- readonly
description: >
The current INFO strike count in the RW region.
errors:
- self.Error.ExpectedInfoNotFound
- name: PayloadUpdateFailureCode
type: uint32
default: 0
flags:
- readonly
description: >
The failure code of the most recent payload update.
errors:
- self.Error.ExpectedInfoNotFound
- name: PayloadConfirmFailureCode
type: uint32
default: 0
flags:
- readonly
description: >
The failure code of the most recent payload confirm.
errors:
- self.Error.ExpectedInfoNotFound
- name: PayloadLockdownState
type: uint32
default: 0
flags:
- readonly
description: >
The lockdown state of payload image.
errors:
- self.Error.ExpectedInfoNotFound
- name: PayloadActivePartition
type: uint32
default: 0
flags:
- readonly
description: >
The active partition of payload image.
errors:
- self.Error.ExpectedInfoNotFound
- name: PayloadValidationStateA
type: uint32
default: 0
flags:
- readonly
description: >
The validation state of payload image on partition A.
errors:
- self.Error.ExpectedInfoNotFound
- name: PayloadValidationFailureReasonA
type: uint32
default: 0
flags:
- readonly
description: >
The validation failure reason of payload image on partition A.
errors:
- self.Error.ExpectedInfoNotFound
- name: PayloadImageTypeA
type: uint32
default: 0
flags:
- readonly
description: >
The image type (dev/prod) of payload image on partition A.
errors:
- self.Error.ExpectedInfoNotFound
- name: PayloadKeyIndexA
type: uint32
default: 0
flags:
- readonly
description: >
The key index used to validate payload image on partition A.
errors:
- self.Error.ExpectedInfoNotFound
- name: PayloadImageFamilyA
type: uint32
default: 0
flags:
- readonly
description: >
The image family of payload image on partition A.
errors:
- self.Error.ExpectedInfoNotFound
- name: PayloadVersionA
type: string
default: "N/A"
flags:
- readonly
description: >
The version string of payload image on partition A.
errors:
- self.Error.ExpectedInfoNotFound
- name: PayloadValidationStateB
type: uint32
default: 0
flags:
- readonly
description: >
The validation state of payload image on partition B.
errors:
- self.Error.ExpectedInfoNotFound
- name: PayloadValidationFailureReasonB
type: uint32
default: 0
flags:
- readonly
description: >
The validation failure reason of payload image on partition B.
errors:
- self.Error.ExpectedInfoNotFound
- name: PayloadImageTypeB
type: uint32
default: 0
flags:
- readonly
description: >
The image type (dev/prod) of payload image on partition B.
errors:
- self.Error.ExpectedInfoNotFound
- name: PayloadKeyIndexB
type: uint32
default: 0
flags:
- readonly
description: >
The key index used to validate payload image on partition B.
errors:
- self.Error.ExpectedInfoNotFound
- name: PayloadImageFamilyB
type: uint32
default: 0
flags:
- readonly
description: >
The image family of payload image on partition B.
errors:
- self.Error.ExpectedInfoNotFound
- name: PayloadVersionB
type: string
default: "N/A"
flags:
- readonly
description: >
The version string of payload image on partition B.
errors:
- self.Error.ExpectedInfoNotFound
- name: FirmwareUpdateFailureCode
type: uint32
default: 0
flags:
- readonly
description: >
The failure code of the most recent hoth firmware update.
errors:
- self.Error.ExpectedInfoNotFound
- name: FirmwareUpdateFailedMinor
type: uint32
default: 0
flags:
- readonly
description: >
The failed minor version of the most recent hoth firmware update.
errors:
- self.Error.ExpectedInfoNotFound
- name: BootloaderUpdateFailureCode
type: uint32
default: 0
flags:
- readonly
description: >
The failure code of the most recent hoth bootloader update.
errors:
- self.Error.ExpectedInfoNotFound
- name: ChipSerialNumber
type: string
default: "N/A"
flags:
- readonly
description: >
The hardware identity of the Hoth chip.
errors:
- self.Error.ExpectedInfoNotFound
- name: ChipPartNumber
type: string
default: "N/A"
flags:
- readonly
description: >
The part number of the Hoth chip.
errors:
- self.Error.ExpectedInfoNotFound
- name: ChipRevision
type: string
default: "N/A"
flags:
- readonly
description: >
Revision name of the Hoth chip.
errors:
- self.Error.ExpectedInfoNotFound
- name: ChipManufacturer
type: string
default: "N/A"
flags:
- readonly
description: >
Manufacturer of the Hoth chip.
errors:
- self.Error.ExpectedInfoNotFound
- name: ChipName
type: string
default: "Titan"
flags:
- readonly
description: >
Name of the Hoth chip.
errors:
- self.Error.ExpectedInfoNotFound
- name: ChipType
type: string
default: "root_of_trust"
flags:
- readonly
description: >
Name of the Hoth chip.
errors:
- self.Error.ExpectedInfoNotFound
- name: HasPersistentPanicInfo
type: boolean
default: false
flags:
- readonly
description: >
Whether the Hoth device has a persistent panic record stored.
- name: HasValidAuthRecord
type: boolean
default: false
flags:
- readonly
description: >
Whether the Hoth device has a valid auth record.
- name: AuthRecordCapabilities
type: uint64
default: 0
flags:
- readonly
description: >
A bitfield of enabled Auth record capabilities.
errors:
- self.Error.ExpectedInfoNotFound
- name: KeyRotationVersion
type: uint32
default: 0
flags:
- readonly
description: >
Config package version, used for anti-rollback.
errors:
- self.Error.ExpectedInfoNotFound
- name: KeyRotationImageFamily
type: uint16
default: 0
flags:
- readonly
description: >
Image family of the payload keys this record is for.
errors:
- self.Error.ExpectedInfoNotFound
- name: KeyRotationImageFamilyVariant
type: uint16
default: 0
flags:
- readonly
description: >
Variant of the image family if any.
errors:
- self.Error.ExpectedInfoNotFound
- name: KeyRotationValidationMethod
type: uint32
default: 0
flags:
- readonly
description: >
enum key_rotation_validation_method.
errors:
- self.Error.ExpectedInfoNotFound
- name: KeyRotationValidationKeyData
type: uint32
default: 0
flags:
- readonly
description: >
If validation method is embedded key or payload key, first 32 bits of
modulus of the key used to validate the payload.
errors:
- self.Error.ExpectedInfoNotFound
- name: KeyRotationValidationHashData
type: uint32
default: 0
flags:
- readonly
description: >
If validation method is hash, first 32 bits of cr51 hash.
errors:
- self.Error.ExpectedInfoNotFound
- name: SecureBootEnforced
type: boolean
default: false
flags:
- readonly
description: >
Whether secure boot is enforced.
errors:
- self.Error.ExpectedInfoNotFound
- name: TransportType
type: string
default: "unknown"
flags:
- readonly
description: >
Get the interface type that this hothd instance is using to control
the RoT
errors:
- self.Error.ExpectedInfoNotFound
- name: FirmwareMauvVersion
type: uint32
default: 0
flags:
- readonly
description: >
Monotonic counter of the effective Firmware MAUV record.
errors:
- self.Error.ExpectedInfoNotFound
- name: EffectiveFirmwareMauv
type: string
default: ""
flags:
- readonly
description: >
Minimum acceptable effective firmware update version formatted as
epoch.major.minor.
errors:
- self.Error.ExpectedInfoNotFound