@web-font-path: "roboto-debian.css";
Loading...
Searching...
No Matches
bootrom.h File Reference
#include "pico.h"
#include "pico/bootrom_constants.h"
#include <string.h>
#include "pico/bootrom/lock.h"
#include "pico/flash.h"
Include dependency graph for bootrom.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define rom_hword_as_ptr(rom_address)

Typedefs

typedef uint32_t(* rom_popcount32_fn) (uint32_t)
typedef uint32_t(* rom_reverse32_fn) (uint32_t)
typedef uint32_t(* rom_clz32_fn) (uint32_t)
typedef uint32_t(* rom_ctz32_fn) (uint32_t)
typedef uint8_t *(* rom_memset_fn) (uint8_t *, uint8_t, uint32_t)
typedef uint32_t *(* rom_memset4_fn) (uint32_t *, uint8_t, uint32_t)
typedef uint32_t *(* rom_memcpy_fn) (uint8_t *, const uint8_t *, uint32_t)
typedef uint32_t *(* rom_memcpy44_fn) (uint32_t *, const uint32_t *, uint32_t)
typedef void(* rom_reset_usb_boot_fn) (uint32_t, uint32_t)
typedef int(* rom_reboot_fn) (uint32_t flags, uint32_t delay_ms, uint32_t p0, uint32_t p1)
typedef rom_reset_usb_boot_fn reset_usb_boot_fn
typedef void(* rom_connect_internal_flash_fn) (void)
typedef void(* rom_flash_exit_xip_fn) (void)
typedef void(* rom_flash_range_erase_fn) (uint32_t, size_t, uint32_t, uint8_t)
typedef void(* rom_flash_range_program_fn) (uint32_t, const uint8_t *, size_t)
typedef void(* rom_flash_flush_cache_fn) (void)
typedef void(* rom_flash_enter_cmd_xip_fn) (void)
typedef void *(* rom_table_lookup_fn) (uint16_t *table, uint32_t code)

Functions

static uint32_t rom_table_code (uint8_t c1, uint8_t c2)
 Return a bootrom lookup code based on two ASCII characters.
void * rom_func_lookup (uint32_t code)
 Lookup a bootrom function by its code.
void * rom_data_lookup (uint32_t code)
 Lookup a bootrom data address by its code.
bool rom_funcs_lookup (uint32_t *table, unsigned int count)
 Helper function to lookup the addresses of multiple bootrom functions.
static __force_inline void * rom_func_lookup_inline (uint32_t code)
 Lookup a bootrom function by code. This method is forcibly inlined into the caller for FLASH/RAM sensitive code usage.
static __force_inline void * rom_data_lookup_inline (uint32_t code)
 Lookup a bootrom data address by its code. This method is forcibly inlined into the caller for FLASH/RAM sensitive code usage.
void rom_reset_usb_boot (uint32_t usb_activity_gpio_pin_mask, uint32_t disable_interface_mask)
 Reboot the device into BOOTSEL mode.
static void reset_usb_boot (uint32_t usb_activity_gpio_pin_mask, uint32_t disable_interface_mask)
void rom_reset_usb_boot_extra (int usb_activity_gpio_pin, uint32_t disable_interface_mask, bool usb_activity_gpio_pin_active_low)
 Reboot the device into BOOTSEL mode.
static void rom_connect_internal_flash (void)
 Connect the SSI/QMI to the QSPI pads.
static void rom_flash_exit_xip (void)
 Return the QSPI device from its XIP state to a serial command state.
static void rom_flash_range_erase (uint32_t addr, size_t count, uint32_t block_size, uint8_t block_cmd)
 Erase bytes in flash.
static void rom_flash_range_program (uint32_t addr, const uint8_t *data, size_t count)
 Program bytes in flash.
static void rom_flash_flush_cache (void)
 Flush the XIP cache.
static void rom_flash_enter_cmd_xip (void)
 Configure the SSI/QMI with a standard command.

Macro Definition Documentation

◆ rom_hword_as_ptr

#define rom_hword_as_ptr ( rom_address)
Value:
(void *)(uintptr_t)(*(uint16_t *)(uintptr_t)(rom_address))