PROTOCOLS
Firmware
Defined in fuchsia.hardware.platform.bus/platform-bus.fidl
GetFirmware
Request
Name | Type |
---|---|
type |
FirmwareType
|
Response
Name | Type |
---|---|
payload |
Firmware_GetFirmware_Result
|
Iommu
Defined in fuchsia.hardware.platform.bus/platform-bus.fidl
GetBti
Request
Name | Type |
---|---|
iommu_index |
uint32
|
bti_id |
uint32
|
Response
Name | Type |
---|---|
payload |
Iommu_GetBti_Result
|
PlatformBus
Defined in fuchsia.hardware.platform.bus/platform-bus.fidl
AddCompositeNodeSpec
Adds a composite node specification that has |node| as one of the
composite node's parents. To accomplish this, this method does a couple
of things. The method adds a platform device node specified by |node| as
a child of the platform bus. Also, a
fuchsia.driver.framework.ParentSpec
is added to |spec| which matches
the newly added platform device node. Composite bind rules should include
a stanza that matches the properites of |node| in order for the bind
rules to match against the CompositeNodeSpec
.
Request
Name | Type |
---|---|
node |
Node
|
spec |
fuchsia.driver.framework/CompositeNodeSpec
|
Response
Name | Type |
---|---|
payload |
PlatformBus_AddCompositeNodeSpec_Result
|
GetBoardInfo
Board drivers may use this to get information about the board, and to differentiate between multiple boards that they support.
Request
<EMPTY>
Response
Name | Type |
---|---|
payload |
PlatformBus_GetBoardInfo_Result
|
NodeAdd
Adds a new platform device node to the bus, using configuration provided by |node|. Platform device nodes are created in their own separate driver hosts.
Request
Name | Type |
---|---|
node |
Node
|
Response
Name | Type |
---|---|
payload |
PlatformBus_NodeAdd_Result
|
RegisterSysSuspendCallback
Registers a callback that's invoked by the platform bus when it's suspending.
Request
Name | Type |
---|---|
suspend_cb |
client_end:SysSuspend
|
Response
Name | Type |
---|---|
payload |
PlatformBus_RegisterSysSuspendCallback_Result
|
SetBoardInfo
Board drivers may use this to set information about the board.
Request
Name | Type |
---|---|
info |
BoardInfo
|
Response
Name | Type |
---|---|
payload |
PlatformBus_SetBoardInfo_Result
|
SetBootloaderInfo
Board drivers may use this to set information about the bootloader.
Request
Name | Type |
---|---|
info |
BootloaderInfo
|
Response
Name | Type |
---|---|
payload |
PlatformBus_SetBootloaderInfo_Result
|
SysSuspend
Defined in fuchsia.hardware.platform.bus/platform-bus.fidl
Servers that implement this protocol can be registered to the platform bus to receive callbacks on why the platform bus is suspending.
Callback
Invoked by the platform bus when its suspend hook is called.
Request
Name | Type |
---|---|
enable_wake |
bool
|
suspend_reason |
uint8
|
Response
Name | Type |
---|---|
out_status |
zx/Status
|
STRUCTS
FirmwareBlob resource
Defined in fuchsia.hardware.platform.bus/platform-bus.fidl
Field | Type | Description | Default |
---|---|---|---|
vmo |
handle<vmo>
|
No default | |
length |
uint64
|
No default |
Firmware_GetFirmware_Response resource
Defined in fuchsia.hardware.platform.bus/platform-bus.fidl
Field | Type | Description | Default |
---|---|---|---|
blobs |
vector<FirmwareBlob>
|
No default |
Iommu_GetBti_Response resource
Defined in fuchsia.hardware.platform.bus/platform-bus.fidl
Field | Type | Description | Default |
---|---|---|---|
bti |
handle<bti>
|
No default |
PlatformBus_AddCompositeNodeSpec_Response
Defined in fuchsia.hardware.platform.bus/platform-bus.fidl
<EMPTY>
PlatformBus_GetBoardInfo_Response
Defined in fuchsia.hardware.platform.bus/platform-bus.fidl
Field | Type | Description | Default |
---|---|---|---|
info |
TemporaryBoardInfo
|
No default |
PlatformBus_NodeAdd_Response
Defined in fuchsia.hardware.platform.bus/platform-bus.fidl
<EMPTY>
PlatformBus_RegisterSysSuspendCallback_Response
Defined in fuchsia.hardware.platform.bus/platform-bus.fidl
<EMPTY>
PlatformBus_SetBoardInfo_Response
Defined in fuchsia.hardware.platform.bus/platform-bus.fidl
<EMPTY>
PlatformBus_SetBootloaderInfo_Response
Defined in fuchsia.hardware.platform.bus/platform-bus.fidl
<EMPTY>
TemporaryBoardInfo
Defined in fuchsia.hardware.platform.bus/platform-bus.fidl
This is originally from the Banjo fuchsia.hardware.platform.device library, but it is temporarily included here until that is migrated to FIDL.
Field | Type | Description | Default |
---|---|---|---|
vid |
uint32
|
Vendor ID for the board. |
No default |
pid |
uint32
|
Product ID for the board. |
No default |
board_name |
string:32
|
Board name from the boot image platform ID record, (or from the BIOS on x86 platforms). |
No default |
board_revision |
uint32
|
Board specific revision number. |
No default |
ENUMS
FirmwareType flexible
Type: uint32
Defined in fuchsia.hardware.platform.bus/platform-bus.fidl
Name | Value | Description |
---|---|---|
DEVICE_TREE |
1 |
|
ACPI |
2 |
|
SMBIOS |
3 |
ZirconInterruptMode strict
Type: uint32
Defined in fuchsia.hardware.platform.bus/platform-bus.fidl
Mode for creating zircon interrupts. In sync with ZX_INTERRUPTMODE* values from //zircon/system/public/zircon/types.h.
Name | Value | Description |
---|---|---|
DEFAULT |
0 |
|
EDGE_LOW |
2 |
|
EDGE_HIGH |
4 |
|
LEVEL_LOW |
6 |
|
LEVEL_HIGH |
8 |
|
EDGE_BOTH |
10 |
TABLES
BoardInfo
Defined in fuchsia.hardware.platform.bus/platform-bus.fidl
Board information set by the board driver.
Ordinal | Field | Type | Description |
---|---|---|---|
1 |
board_name |
string:32
|
Board name from the boot image platform ID record or from the BIOS on x86 platforms. |
2 |
board_revision |
uint32
|
Board specific revision number. |
BootMetadata
Defined in fuchsia.hardware.platform.bus/platform-bus.fidl
Device metadata to be passed from bootloader via a ZBI record.
Ordinal | Field | Type | Description |
---|---|---|---|
1 |
zbi_type |
uint32
|
Metadata type (matches |
2 |
zbi_extra |
uint32
|
Matches |
BootloaderInfo
Defined in fuchsia.hardware.platform.bus/platform-bus.fidl
Bootloader information set by the board driver.
Ordinal | Field | Type | Description |
---|---|---|---|
1 |
vendor |
string:32
|
Bti
Defined in fuchsia.hardware.platform.bus/platform-bus.fidl
Definition of a bus transaction initiator (bti) for a platform device node.
Ordinal | Field | Type | Description |
---|---|---|---|
1 |
iommu_index |
uint32
|
|
2 |
bti_id |
uint32
|
|
3 |
name |
string:128
|
Name that can be used to retrieve the bti using fuchsia.hardware.platform.device/GetBtiByName. It is valid for this to be empty, however the resource will only be able to be retrieved using fuchsia.hardware.platform.device/GetBtiById. |
Irq
Defined in fuchsia.hardware.platform.bus/platform-bus.fidl
Ordinal | Field | Type | Description |
---|---|---|---|
1 |
irq |
uint32
|
|
2 |
mode |
ZirconInterruptMode
|
Bit flag for setting the interrupt mode. |
3 |
properties |
vector<fuchsia.driver.framework/NodeProperty>:64
|
Properties for this interrupt's fragment. Only used in DFv2. |
4 |
name |
string:128
|
Name that can be used to retrieve the irq using fuchsia.hardware.platform.device/GetInterruptByName. It is valid for this to be empty, however the resource will only be able to be retrieved using fuchsia.hardware.platform.device/GetInterruptById. |
Metadata
Defined in fuchsia.hardware.platform.bus/platform-bus.fidl
Represents the metadata that's available in a platform device.
Ordinal | Field | Type | Description |
---|---|---|---|
1 |
id |
string
|
Metadata identifier. |
2 |
data |
vector<uint8>
|
Metadata bytes. |
Mmio
Defined in fuchsia.hardware.platform.bus/platform-bus.fidl
Definition of a MMIO resource for a platform device node.
Ordinal | Field | Type | Description |
---|---|---|---|
1 |
base |
uint64
|
Physical address of MMIO region. Does not need to be page aligned. |
2 |
length |
uint64
|
Length of MMIO region in bytes. Does not need to be page aligned. |
3 |
name |
string:128
|
Name that can be used to retrieve the Mmio using fuchsia.hardware.platform.device/GetMmioByName. It is valid for this to be empty, however the resource will only be able to be retrieved using fuchsia.hardware.platform.device/GetMmioById. |
Node
Defined in fuchsia.hardware.platform.bus/platform-bus.fidl
Arguments for adding a platform device node to the platform bus.
Ordinal | Field | Type | Description |
---|---|---|---|
1 |
name |
string:128
|
Name of the node. |
2 |
vid |
uint32
|
|
3 |
pid |
uint32
|
|
4 |
did |
uint32
|
|
5 |
instance_id |
uint32
|
Instance ID. Contributes to device-name if non-zero.
|
6 |
mmio |
vector<Mmio>:10
|
MMIO regions. |
7 |
irq |
vector<Irq>:32
|
Interrupts. |
8 |
bti |
vector<Bti>:10
|
BTIs. |
9 |
smc |
vector<Smc>:10
|
SMC calls. |
10 |
metadata |
vector<Metadata>
|
Metadata |
11 |
boot_metadata |
vector<BootMetadata>
|
Boot metadata (from ZBI items) |
12 |
properties |
vector<fuchsia.driver.framework/NodeProperty>:64
|
Other node properties beyond BIND_PLATFORM_DEV_VID, BIND_PLATFORM_DEV_PID, and BIND_PLATFORM_DEV_DID. |
13 |
power_config |
vector<fuchsia.hardware.power/PowerElementConfiguration>:32
|
Smc
Defined in fuchsia.hardware.platform.bus/platform-bus.fidl
Definition of a Secure Monitor Call (SMC), which allows calls to be made from the user space.
Ordinal | Field | Type | Description |
---|---|---|---|
1 |
service_call_num_base |
uint32
|
The device is granted the ability to make SMC calls with service call numbers ranging from service_call_num_base to service_call_num_base + count - 1. |
2 |
count |
uint32
|
|
3 |
exclusive |
bool
|
The device has exclusive access to this smc range. |
4 |
name |
string:128
|
Name that can be used to retrieve the smc using fuchsia.hardware.platform.device/GetSmcByName. It is valid for this to be empty, however the resource will only be able to be retrieved using fuchsia.hardware.platform.device/GetSmcById. |
UNIONS
Firmware_GetFirmware_Result strict resource
Defined in fuchsia.hardware.platform.bus/platform-bus.fidl
Ordinal | Variant | Type | Description |
---|---|---|---|
1 |
response |
Firmware_GetFirmware_Response
|
|
2 |
err |
zx/Status
|
Iommu_GetBti_Result strict resource
Defined in fuchsia.hardware.platform.bus/platform-bus.fidl
Ordinal | Variant | Type | Description |
---|---|---|---|
1 |
response |
Iommu_GetBti_Response
|
|
2 |
err |
zx/Status
|
PlatformBus_AddCompositeNodeSpec_Result strict
Defined in fuchsia.hardware.platform.bus/platform-bus.fidl
Ordinal | Variant | Type | Description |
---|---|---|---|
1 |
response |
PlatformBus_AddCompositeNodeSpec_Response
|
|
2 |
err |
zx/Status
|
PlatformBus_GetBoardInfo_Result strict
Defined in fuchsia.hardware.platform.bus/platform-bus.fidl
Ordinal | Variant | Type | Description |
---|---|---|---|
1 |
response |
PlatformBus_GetBoardInfo_Response
|
|
2 |
err |
zx/Status
|
PlatformBus_NodeAdd_Result strict
Defined in fuchsia.hardware.platform.bus/platform-bus.fidl
Ordinal | Variant | Type | Description |
---|---|---|---|
1 |
response |
PlatformBus_NodeAdd_Response
|
|
2 |
err |
zx/Status
|
PlatformBus_RegisterSysSuspendCallback_Result strict
Defined in fuchsia.hardware.platform.bus/platform-bus.fidl
Ordinal | Variant | Type | Description |
---|---|---|---|
1 |
response |
PlatformBus_RegisterSysSuspendCallback_Response
|
|
2 |
err |
zx/Status
|
PlatformBus_SetBoardInfo_Result strict
Defined in fuchsia.hardware.platform.bus/platform-bus.fidl
Ordinal | Variant | Type | Description |
---|---|---|---|
1 |
response |
PlatformBus_SetBoardInfo_Response
|
|
2 |
err |
zx/Status
|
PlatformBus_SetBootloaderInfo_Result strict
Defined in fuchsia.hardware.platform.bus/platform-bus.fidl
Ordinal | Variant | Type | Description |
---|---|---|---|
1 |
response |
PlatformBus_SetBootloaderInfo_Response
|
|
2 |
err |
zx/Status
|
CONSTANTS
Name | Value | Type | Description |
---|---|---|---|
MAX_BTI |
10
|
uint32 |
|
MAX_INFO_STRING_LENGTH |
32
|
uint32 |
|
MAX_IRQ |
32
|
uint32 |
|
MAX_MMIO |
10
|
uint32 |
|
MAX_POWER_CONFIGS |
32
|
uint32 |
|
MAX_SMC |
10
|
uint32 |
SERVICES
Service
Defined in fuchsia.hardware.platform.bus/platform-bus.fidl
Name | Type | Transport |
---|---|---|
platform_bus |
fuchsia.hardware.platform.bus/PlatformBus
|
Driver |
iommu |
fuchsia.hardware.platform.bus/Iommu
|
Driver |
firmware |
fuchsia.hardware.platform.bus/Firmware
|
Driver |