Google is committed to advancing racial equity for Black communities. See how.

fuchsia.vboot

PROTOCOLS

FirmwareParam

Defined in fuchsia.vboot/vboot.fidl

Get

Get |key|. Returns ZX_ERR_NOT_SUPPORTED if the given key is unsupported. Returns ZX_ERR_INTERNAL if an internal error occurred (e.g. communicating to the firmware parameter storage).

Request

NameType
key Key

Response

NameType
result FirmwareParam_Get_Result

Set

Set |key| to |value|. Returns ZX_ERR_NOT_SUPPORTED if the given key is unsupported. Returns ZX_ERR_IO_REFUSED if the given key is read-only. Returns ZX_ERR_INVALID_ARGS if the value written to the key is invalid. Returns ZX_ERR_INTERNAL if an internal error occurred (e.g. communicating to the firmware parameter storage).

Request

NameType
key Key
value uint32

Response

NameType
result FirmwareParam_Set_Result

STRUCTS

FirmwareParam_Get_Response

Defined in fuchsia.vboot/vboot.fidl

FieldTypeDescriptionDefault
result uint32 No default

FirmwareParam_Set_Response

Defined in fuchsia.vboot/vboot.fidl

<EMPTY>

ENUMS

BootTarget flexible

Type: uint32

Defined in fuchsia.vboot/vboot.fidl

Boot targets for DEV_DEFAULT_BOOT.

NameValueDescription
INTERNAL 0

Boot from internal disk by default.

EXTERNAL 1

Boot from external disk by default.

ALTFW 2

Boot from altfw by default.

FirmwareResult flexible

Type: uint32

Defined in fuchsia.vboot/vboot.fidl

Firmware result codes for NvramKey.FW_RESULT and NvramKey.PREV_RESULT.

NameValueDescription
UNKNOWN 0

Unknown.

TRYING 1

Trying a new slot, but haven't reached success/failure.

SUCCESS 2

Successfully booted the OS.

FAILURE 3

Known failure.

Key flexible

Type: uint32

Defined in fuchsia.vboot/vboot.fidl

Keys found in nvram. https://source.chromium.org/chromiumos/chromiumos/codesearch/+/main:src/platform/vboot_reference/firmware/2lib/2nvstorage.c, vb2_nv_get()

NameValueDescription
FIRMWARE_SETTINGS_RESET 0

Parameter values have been reset to defaults (flag for firmware). 0=clear; 1=set.

KERNEL_SETTINGS_RESET 1

Parameter values have been reset to defaults (flag for kernel). 0=clear; 1=set.

DEBUG_RESET_MODE 2

Request debug reset on next S3->S0 transition. 0=clear; 1=set.

TRY_NEXT 3

Firmware slot to try next. 0=A; 1=B

TRY_COUNT 4

Number of times to try booting RW firmware slot B before slot A. Valid range: 0-15.

For VB2; number of times to try booting the slot indicated by TRY_NEXT. On a 1->0 transition of try count; TRY_NEXT will be set to the other slot.

RECOVERY_REQUEST 5

Request recovery mode on next boot; see 2recovery_reason.h for currently defined reason codes. 8-bit value.

LOCALIZATION_INDEX 6

Localization index for screen bitmaps displayed by firmware. 8-bit value.

KERNEL_FIELD 7

Field reserved for kernel/user-mode use; 16-bit value.

DEV_BOOT_EXTERNAL 8

Allow booting from external disk in developer mode. 0=no; 1=yes.

DEV_BOOT_ALTFW 9

Allow booting of legacy OSes in developer mode. 0=no; 1=yes.

DEV_BOOT_SIGNED_ONLY 10

Only boot Google-signed images in developer mode. 0=no; 1=yes.

DEV_DEFAULT_BOOT 11

Set default boot mode (see BootTarget)

DEV_ENABLE_UDC 12

Enable USB Device Controller

DISABLE_DEV_REQUEST 13

Set by userspace to request that RO firmware disable dev-mode on the next boot. This is likely only possible if the dev-switch is virtual.

DISPLAY_REQUEST 14

Set and cleared by vboot to request that display be initialized at boot time, so that BIOS screens can be displayed. 0=no, 1=yes.

CLEAR_TPM_OWNER_REQUEST 15

Request that the firmware clear the TPM owner on the next boot.

CLEAR_TPM_OWNER_DONE 16

Flag that TPM owner was cleared on request.

TPM_REQUESTED_REBOOT 17

TPM requested a reboot already.

RECOVERY_SUBCODE 18

More details on recovery reason

BACKUP_NVRAM_REQUEST 19

Request that NVRAM be backed up at next boot if possible.

FW_TRIED 20

Firmware slot tried this boot (0=A, 1=B)

FW_RESULT 21

Result of trying that firmware (see FirmwareResult)

FW_PREV_TRIED 22

Firmware slot tried previous boot (0=A, 1=B)

FW_PREV_RESULT 23

Result of trying that firmware (see FirmwareResult)

REQ_WIPEOUT 24

Request wipeout of the device by the app.

BOOT_ON_AC_DETECT 25

Boot system when AC detected (0=no, 1=yes).

TRY_RO_SYNC 26

Try to update the EC-RO image after updating the EC-RW image (0=no, 1=yes).

BATTERY_CUTOFF_REQUEST 27

Cut off battery and shutdown on next boot.

KERNEL_MAX_ROLLFORWARD 28

Maximum kernel version to roll forward to

FW_MAX_ROLLFORWARD 29

Maximum firmware version to roll forward to. Returns VB2_MAX_ROLLFORWARD_MAX_V1_DEFAULT for V1.

POST_EC_SYNC_DELAY 30

Add a short delay after EC software sync for any interaction with EC-RW (persistent). Formerly used for programmatically testing Alt OS booting.

DIAG_REQUEST 31

Request booting of diagnostic rom. 0=no, 1=yes.

MINIOS_PRIORITY 32

Priority of miniOS partition to load: 0=MINIOS-A, 1=MINIOS-B.

UNIONS

FirmwareParam_Get_Result strict

Defined in fuchsia.vboot/vboot.fidl

Ordinal
VariantTypeDescription
1 response FirmwareParam_Get_Response
2 err zx/status

FirmwareParam_Set_Result strict

Defined in fuchsia.vboot/vboot.fidl

Ordinal
VariantTypeDescription
1 response FirmwareParam_Set_Response
2 err zx/status