Loading...
Searching...
No Matches
boot_picoboot_headers

Header file for the PICOBOOT USB interface exposed by an RP2xxx chip in BOOTSEL mode. More...

Data Structures

struct  picoboot_reboot_cmd
 Parameters for a reboot command (RP2040 only). More...
struct  picoboot_reboot2_cmd
 Parameters for an extended reboot command (not available on RP2040). More...
struct  picoboot_address_only_cmd
 Parameters for a command that operates on a single address (RP2040 only). More...
struct  picoboot_range_cmd
 Parameters for a command that operates on an address range. More...
struct  picoboot_exclusive_cmd
 Parameters for an exclusive-access command. More...
struct  picoboot_otp_cmd
 Parameters for an OTP read or write command (not available on RP2040). More...
struct  picoboot_get_info_cmd
 Parameters for a get-info command (not available on RP2040). More...

Enumerations

enum  picoboot_exclusive_type { NOT_EXCLUSIVE = 0 , EXCLUSIVE , EXCLUSIVE_AND_EJECT }
 Exclusivity level for a PC_EXCLUSIVE_ACCESS command. More...

Functions

struct __packed __aligned (4) picoboot_cmd
 A PICOBOOT command packet sent to the OUT endpoint.

Detailed Description

Header file for the PICOBOOT USB interface exposed by an RP2xxx chip in BOOTSEL mode.

Enumeration Type Documentation

◆ picoboot_exclusive_type

Exclusivity level for a PC_EXCLUSIVE_ACCESS command.

Enumerator
NOT_EXCLUSIVE 

No restriction on USB Mass Storage operation.

EXCLUSIVE 

Disable USB Mass Storage writes (any active UF2 download will be aborted).

EXCLUSIVE_AND_EJECT 

Lock out USB Mass Storage by marking the drive media as not present (eject the drive).

Function Documentation

◆ __aligned()

struct __packed __aligned ( 4 )

A PICOBOOT command packet sent to the OUT endpoint.

Status response returned by the PICOBOOT_IF_CMD_STATUS control request.

A 32-byte packet written to the PICOBOOT OUT endpoint to initiate any supported command. After sending this packet, transfer_length bytes are exchanged via the IN or OUT endpoint as appropriate, followed by a zero-length ACK packet.

A 16-byte structure read back from the device to determine the outcome of the most recently issued command.

< Must be PICOBOOT_MAGIC

< Caller-chosen identifier used to correlate this command with its status response

< Command identifier from picoboot_cmd_id; top bit set indicates an IN transfer

< Number of valid argument bytes within the args union

< Reserved; must be zero

< Length of the subsequent IN/OUT data transfer, or 0 if none

< Raw argument bytes

< Arguments for PC_REBOOT

< Arguments for PC_READ, PC_WRITE, and PC_FLASH_ERASE

< Arguments for PC_EXEC and PC_VECTORIZE_FLASH

< Arguments for PC_EXCLUSIVE_ACCESS

< Arguments for PC_REBOOT2

< Arguments for PC_OTP_READ and PC_OTP_WRITE

< Arguments for PC_GET_INFO

< Token copied from the corresponding picoboot_cmd

< Result code; one of the picoboot_status values

< Command identifier of the command this status relates to

< Non-zero if the command is still being processed

< Padding to reach 16 bytes