description: >
    Implement to indicate progress of ongoing boot.

properties:
    - name: BootProgress
      type: enum[self.ProgressStages]
      default: Unspecified
      description: >
        Current boot progress

    - name: BootProgressLastUpdate
      type: uint64
      default: 0
      description: >
          BootProgressLastUpdate is the last time the BootProgress
          property was updated. The time is the Epoch time, number
          of microseconds since 1 Jan 1970 00::00::00 UTC.
          This can be compared with the current BootProgress value
          to know how long the boot has been on the current boot step.

enumerations:
   - name: ProgressStages
     description: >
       The boot progress stage
     values:
       - name: Unspecified
         description: >
           Unknown state.
       - name: PrimaryProcInit
         description: >
           Primary Processor Initialization
       - name: BusInit
         description: >
           Processor and Memory Bus Initialization
       - name: MemoryInit
         description: >
           Memory Initialization
       - name: SecondaryProcInit
         description: >
           Secondary Processor Initialization
       - name: PCIInit
         description: >
           PCI resource initialization
       - name: SystemInitComplete
         description: >
           System firmware completed booting
       - name: OSStart
         description: >
           Starting Operating System.
       - name: OSRunning
         description: >
           Operating System up and running
       - name: SystemSetup
         description: >
           System firmware has entered a setup state
       - name: MotherboardInit
         description: >
           Motherboard/Basebord Initialization.
