52typedef enum : uint8_t {
76typedef enum : uint8_t {
91typedef enum : uint8_t {
102typedef enum : uint32_t {
133typedef enum : uint8_t {
152typedef enum : uint32_t {
Annotation-attribute framework macros for ra8-firmware.
#define RA8_PRIV
Module-private helper: shared across TUs but only inside one library.
Error Code Definitions for ra8-firmware.
ra8_err_codes_t ra8_err_t
Canonical error-return type used by every ra8-firmware API.
sd_state_t g_sdmmc_spi_state
Single driver instance (the module's one external definition).
SD card driver in SPI-mode (PMOD-attached cards).
ra8_sdmmc_spi_card_type_t
Detected SD card capacity / addressing class.
sd_data_token_t
Data tokens used for block I/O (SD spec PHY v9 section 7.3.3).
@ k_sd_token_stop_multi
Multi-block stop.
@ k_sd_token_data_start_single
Single-block start.
@ k_sd_token_idle
Idle bus.
@ k_sd_token_data_start_multi
Multi-block start.
ra8_err_t priv_sdmmc_spi_xfer_one(uint8_t tx, uint8_t *rx)
Shift out one byte and capture the response over the transport.
sd_protocol_const_t
Magic argument values and retry budgets.
@ k_sd_max_busy_poll_bytes
Worst-case write timeout.
@ k_sd_crc7_cmd0_byte
SD crc7 cmd0 byte.
@ k_sd_max_recover_attempts
Re-flush + retry CMD0 before failing.
@ k_sd_cmd8_arg_check_pattern
SD cmd8 arg check pattern.
@ k_sd_ocr_ccs_bit
SD ocr ccs bit.
@ k_sd_max_r1_wait_bytes
R1 must appear within 8 bytes per spec; 2x slack.
@ k_sd_max_erase_poll_bytes
Busy ceiling for a bulk CMD38 erase (seconds).
@ k_sd_recover_idle_bytes
512 CS-released clocks drain busy + reset framing.
@ k_sd_ocr_busy_bit
SD ocr busy bit.
@ k_sd_max_data_token_polls
~500 ms at 100 us / poll.
@ k_sd_crc7_cmd8_byte
SD crc7 cmd8 byte.
@ k_sd_max_acmd41_attempts
1 s at 1 ms / attempt.
@ k_sd_init_dummy_clocks
80 clocks = 10 bytes of 0xFF (>=74 required).
@ k_sd_acmd41_arg_hcs
SD acmd41 arg hcs.
@ k_sd_recover_flush_bytes
>= 512 data + 2 CRC + token to flush a stuck write.
ra8_err_t priv_sdmmc_spi_send_acmd(sd_cmd_t acmd, uint32_t arg, uint8_t *out_r1)
Send an ACMD by prefixing it with CMD55 (APP_CMD).
sd_byte_mask_t
Generic byte-extraction masks used across argument packing.
@ k_sd_mask_byte
Low 8 bits of a wider value.
@ k_sd_mask_12bit
CMD8 R7 echo voltage-range + check pattern.
ra8_err_t priv_sdmmc_spi_wait_not_busy(void)
Wait for the card to release the busy token (CIPO returns to 0xFF).
ra8_err_t priv_sdmmc_spi_cs_release(void)
Drive CS high after clocking one idle byte (SD spec section 7.2.4).
ra8_err_t priv_sdmmc_spi_send_idle(uint32_t n)
Shift n idle bytes (0xFF) and discard the response.
ra8_err_t priv_sdmmc_spi_send_command(sd_cmd_t cmd, uint32_t arg, uint8_t *out_r1)
Send a command frame and capture the R1 response byte.
ra8_err_t priv_sdmmc_spi_run_init_sequence(void)
Walk the full SD identification sequence and learn capacity / type.
ra8_err_t priv_sdmmc_spi_send_stop_transmission(uint8_t *out_r1)
Send CMD12 (STOP_TRANSMISSION) and capture its R1 response byte.
ra8_err_t priv_sdmmc_spi_wait_not_busy_bounded(uint32_t max_polls)
Wait for the card to release busy (CIPO -> 0xFF), bounded by max_polls.
ra8_err_t priv_sdmmc_spi_validate_transport(const ra8_sdmmc_spi_transport_t *transport)
Validate the transport descriptor: every callback non-NULL.
sd_data_response_t
Data-response token bit layout (SD spec PHY v9 section 7.3.3.1).
@ k_sd_data_response_write_err
0b01101 – write error.
@ k_sd_data_response_mask
SD data response mask.
@ k_sd_data_response_crc_err
0b01011 – CRC error.
@ k_sd_data_response_accepted
0b00101 – data accepted.
ra8_err_t priv_sdmmc_spi_cs_assert(void)
Drive CS low and clock a single idle byte so CIPO is sampled.
sd_cmd_t
Wire-byte for every command used by this driver.
@ k_sd_cmd_read_multi_block
CMD18.
@ k_sd_cmd_send_cid
CMD10.
@ k_sd_cmd_set_blocklen
CMD16.
@ k_sd_cmd_read_single_block
CMD17.
@ k_sd_acmd_sd_send_op_cond
ACMD41.
@ k_sd_acmd_set_wr_blk_erase_count
ACMD23.
@ k_sd_cmd_erase_wr_blk_start
CMD32.
@ k_sd_cmd_stop_transmission
CMD12.
@ k_sd_cmd_send_if_cond
CMD8.
@ k_sd_cmd_erase_wr_blk_end
CMD33.
@ k_sd_cmd_write_single_block
CMD24.
@ k_sd_cmd_read_ocr
CMD58.
@ k_sd_cmd_write_multi_block
CMD25.
@ k_sd_cmd_go_idle_state
CMD0.
sd_bit_shift_t
Bit-shift constants reused across byte packing.
@ k_sd_bit_three_byte
SD bit three byte.
@ k_sd_bit_byte
SD bit byte.
@ k_sd_bit_two_byte
SD bit two byte.
ra8_err_t priv_sdmmc_spi_wait_data_token(void)
Poll for the data-start token (0xFE), bounded by a retry budget.
Driver-to-bus binding (Dependency Inversion seam).
Cached protocol state held across the driver public API.
ra8_sdmmc_spi_card_type_t card_type
Card class.
ra8_sdmmc_spi_transport_t transport
Transport callbacks.
uint32_t capacity_blocks
Block count.
bool initialized
Initialization state.