ra8-firmware 0.1.0
Bare-metal firmware for the Renesas RA8 family (RA8D2 / RA8P1)
Loading...
Searching...
No Matches
ra8_sdmmc_spi_io_contracts_internal.h
Go to the documentation of this file.
1
9
10#pragma once
11
13
30
46
61RA8_INTERNAL static uint32_t internal_lba_to_arg(uint32_t lba);
62
79
96RA8_INTERNAL static ra8_err_t internal_erase_range(uint32_t lba, uint32_t count);
97
113
129
146RA8_INTERNAL static ra8_err_t internal_read_data_phase(uint32_t lba, uint8_t* buf);
147
162
179RA8_INTERNAL static ra8_err_t internal_write_data_block(const uint8_t* buf, uint8_t start_token);
180
196RA8_INTERNAL static ra8_err_t internal_write_multi_stream(const uint8_t* buf, uint32_t count);
197
217internal_fs_read_block(void* ctx, uint64_t lba, uint32_t count, uint8_t* buf);
218
238internal_fs_write_block(void* ctx, uint64_t lba, uint32_t count, const uint8_t* buf);
239
256RA8_INTERNAL static ra8_err_t internal_fs_erase_block(void* ctx, uint64_t lba, uint64_t count);
257
275internal_fs_get_capacity(void* ctx, uint64_t* block_count, uint32_t* block_size);
#define RA8_INTERNAL
Marker that a function is intended to be static (file-local).
ra8_err_codes_t ra8_err_t
Canonical error-return type used by every ra8-firmware API.
Definition ra8_err.h:546
Module-private cross-TU surface for the SPI-mode SD card driver.
sd_cmd_t
Wire-byte for every command used by this driver.
static ra8_err_t internal_prepare_init(const ra8_sdmmc_spi_transport_t *transport)
Validate and stage the transport for initialization.
static ra8_err_t internal_cmd_require_ready(sd_cmd_t cmd, uint32_t arg)
Send one command and require a ready R1 response.
static ra8_err_t internal_read_block_payload(uint8_t *buf)
Read one 512-byte payload from the active data stream.
static ra8_err_t internal_read_data_phase(uint32_t lba, uint8_t *buf)
Execute one complete CMD17 read data phase.
static ra8_err_t internal_write_data_block(const uint8_t *buf, uint8_t start_token)
Transmit one data block, CRC trailer, and start token.
static ra8_err_t internal_fs_get_capacity(void *ctx, uint64_t *block_count, uint32_t *block_size)
Publish SD geometry through the filesystem capacity callback.
static ra8_err_t internal_finalize_init(void)
Switch to data clock and publish initialized state.
static ra8_err_t internal_erase_range(uint32_t lba, uint32_t count)
Issue the SD erase-start, erase-end, and erase commands.
static ra8_err_t internal_fs_erase_block(void *ctx, uint64_t lba, uint64_t count)
Adapt the filesystem erase callback to the SD erase API.
static ra8_err_t internal_read_block_crc_check(const uint8_t *buf)
Read and verify the CRC trailer for one block.
static ra8_err_t internal_fs_read_block(void *ctx, uint64_t lba, uint32_t count, uint8_t *buf)
Adapt the filesystem read callback to SD multi-block reads.
static ra8_err_t internal_write_multi_stream(const uint8_t *buf, uint32_t count)
Stream consecutive blocks for an accepted CMD25 operation.
static uint32_t internal_lba_to_arg(uint32_t lba)
Convert an LBA to the card command argument.
static ra8_err_t internal_fs_write_block(void *ctx, uint64_t lba, uint32_t count, const uint8_t *buf)
Adapt the filesystem write callback to SD multi-block writes.
static ra8_err_t internal_read_multi_stop(void)
Stop a CMD18 multi-block read stream.
Driver-to-bus binding (Dependency Inversion seam).