sdk-core v2026.11.05
PS2 SDK - core tier (build-critical EE/IOP modules)
Loading...
Searching...
No Matches
spi_sdcard_driver.h File Reference
#include <bdm.h>
#include <stdint.h>

Go to the source code of this file.

Classes

struct  t_csdVer1
struct  t_csdVer2
struct  spisd_cid_t
struct  spisd_t

Macros

#define READ_TOKEN_TIMEOUT   4000
#define SECTOR_SIZE   512
#define CMD_ABORT_NO_READ_TOKEN   0x1
#define CMD_ABORT_CRC16_INVALID   0x2
#define CMD_ABORT_WRITE_ERROR   0x3
#define CMD_ABORT_UKNOWN_ERROR   0x7

Typedefs

typedef enum card_type_e card_type_t
typedef enum spisd_result_s spisd_result_t
typedef struct spisd_cid_t spisd_cid_t
typedef struct spisd_t spisd_t

Enumerations

enum  card_type_e { CARD_TYPE_MMC = 0x00 , CARD_TYPE_SDV1 = 0x01 , CARD_TYPE_SDV2 = 0x02 , CARD_TYPE_SDV2HC = 0x04 }
enum  spisd_result_s { SPISD_RESULT_OK = 0 , SPISD_RESULT_ERROR , SPISD_RESULT_NO_CARD , SPISD_RESULT_TIMEOUT }

Functions

struct t_csdVer1 __attribute__ ((packed))
uint16_t spisd_read_status_register ()
int spisd_init_card ()
int spisd_get_card_info ()
int spisd_recover ()
int spisd_read (struct block_device *bd, uint64_t sector, void *buffer, uint16_t count)
int spisd_write (struct block_device *bd, uint64_t sector, const void *buffer, uint16_t count)
void spisd_flush (struct block_device *bd)
int spisd_stop (struct block_device *bd)

Variables

u8 reserved1
u8 csd_structure
u8 taac
u8 nsac
u8 tran_speed
u16 cccHi
u16 read_bl_len
u16 cccLo
u32 c_sizeHi
u8 read_bl_partial
u8 write_blk_misalign
u8 read_blk_misalign
u8 dsr_imp
u8 reserved2
u32 c_sizeMd
u32 c_sizeLo
u8 vdd_r_curr_max
u8 vdd_r_curr_min
u8 c_size_multHi
u8 vdd_w_curr_max
u8 vdd_w_curr_min
u8 c_size_multLo
u8 erase_blk_en
u8 sector_size_high
u8 sector_size_low
u8 wp_grp_size
u8 ep_grp_enable
u8 reserved5
u8 r2w_factor
u8 write_bl_len_high
u8 write_bl_len_low
u8 write_bl_partial
u8 reserved6
u8 file_format_group
u8 copy
u8 perm_write_protect
u8 tmp_write_protect
u8 file_format
u8 reserved7
u8 crc
u8 fixedTo1
u8 reserved3
u32 reserved4
spisd_t sdcard
struct block_device bd

Macro Definition Documentation

◆ CMD_ABORT_CRC16_INVALID

#define CMD_ABORT_CRC16_INVALID   0x2

Definition at line 15 of file spi_sdcard_driver.h.

◆ CMD_ABORT_NO_READ_TOKEN

#define CMD_ABORT_NO_READ_TOKEN   0x1

Definition at line 14 of file spi_sdcard_driver.h.

◆ CMD_ABORT_UKNOWN_ERROR

#define CMD_ABORT_UKNOWN_ERROR   0x7

Definition at line 17 of file spi_sdcard_driver.h.

◆ CMD_ABORT_WRITE_ERROR

#define CMD_ABORT_WRITE_ERROR   0x3

Definition at line 16 of file spi_sdcard_driver.h.

◆ READ_TOKEN_TIMEOUT

#define READ_TOKEN_TIMEOUT   4000

Definition at line 11 of file spi_sdcard_driver.h.

◆ SECTOR_SIZE

#define SECTOR_SIZE   512

Definition at line 12 of file spi_sdcard_driver.h.

Enumeration Type Documentation

◆ card_type_e

enum card_type_e

Definition at line 19 of file spi_sdcard_driver.h.

◆ spisd_result_s

enum spisd_result_s

Definition at line 26 of file spi_sdcard_driver.h.

Function Documentation

◆ __attribute__()

struct t_csdVer1 __attribute__ ( (packed) )

Definition at line 21 of file gpt_types.h.

◆ spisd_flush()

void spisd_flush ( struct block_device * bd)
extern

Definition at line 691 of file spi_sdcard_driver.c.

◆ spisd_get_card_info()

int spisd_get_card_info ( )
extern

Definition at line 295 of file spi_sdcard_driver.c.

◆ spisd_init_card()

int spisd_init_card ( )
extern

Definition at line 150 of file spi_sdcard_driver.c.

◆ spisd_read()

int spisd_read ( struct block_device * bd,
uint64_t sector,
void * buffer,
uint16_t count )
extern

Definition at line 580 of file spi_sdcard_driver.c.

◆ spisd_read_status_register()

uint16_t spisd_read_status_register ( )
extern

Definition at line 138 of file spi_sdcard_driver.c.

◆ spisd_recover()

int spisd_recover ( )
extern

Definition at line 388 of file spi_sdcard_driver.c.

◆ spisd_stop()

int spisd_stop ( struct block_device * bd)
extern

Definition at line 697 of file spi_sdcard_driver.c.

◆ spisd_write()

int spisd_write ( struct block_device * bd,
uint64_t sector,
const void * buffer,
uint16_t count )
extern

Definition at line 634 of file spi_sdcard_driver.c.

Variable Documentation

◆ bd

struct block_device bd
extern

Definition at line 52 of file spi_sdcard_driver.c.

◆ c_size_multHi

u8 c_size_multHi

Definition at line 23 of file spi_sdcard_driver.h.

◆ c_size_multLo

u8 c_size_multLo

Definition at line 27 of file spi_sdcard_driver.h.

◆ c_sizeHi

u32 c_sizeHi

Definition at line 10 of file spi_sdcard_driver.h.

◆ c_sizeLo

u32 c_sizeLo

Definition at line 19 of file spi_sdcard_driver.h.

◆ c_sizeMd

u32 c_sizeMd

Definition at line 17 of file spi_sdcard_driver.h.

◆ cccHi

u16 cccHi

Definition at line 6 of file spi_sdcard_driver.h.

◆ cccLo

u16 cccLo

Definition at line 8 of file spi_sdcard_driver.h.

◆ copy

u8 copy

Definition at line 41 of file spi_sdcard_driver.h.

◆ crc

u8 crc

Definition at line 46 of file spi_sdcard_driver.h.

◆ csd_structure

u8 csd_structure

Definition at line 1 of file spi_sdcard_driver.h.

◆ dsr_imp

u8 dsr_imp

Definition at line 14 of file spi_sdcard_driver.h.

◆ ep_grp_enable

u8 ep_grp_enable

Definition at line 33 of file spi_sdcard_driver.h.

◆ erase_blk_en

u8 erase_blk_en

Definition at line 29 of file spi_sdcard_driver.h.

◆ file_format

u8 file_format

Definition at line 44 of file spi_sdcard_driver.h.

◆ file_format_group

u8 file_format_group

Definition at line 40 of file spi_sdcard_driver.h.

◆ fixedTo1

u8 fixedTo1

Definition at line 47 of file spi_sdcard_driver.h.

◆ nsac

u8 nsac

Definition at line 3 of file spi_sdcard_driver.h.

◆ perm_write_protect

u8 perm_write_protect

Definition at line 42 of file spi_sdcard_driver.h.

◆ r2w_factor

u8 r2w_factor

Definition at line 35 of file spi_sdcard_driver.h.

◆ read_bl_len

u16 read_bl_len

Definition at line 7 of file spi_sdcard_driver.h.

◆ read_bl_partial

u8 read_bl_partial

Definition at line 11 of file spi_sdcard_driver.h.

◆ read_blk_misalign

u8 read_blk_misalign

Definition at line 13 of file spi_sdcard_driver.h.

◆ reserved1

u8 reserved1

Definition at line 0 of file spi_sdcard_driver.h.

◆ reserved2

u8 reserved2

Definition at line 15 of file spi_sdcard_driver.h.

◆ reserved3

u8 reserved3

Definition at line 19 of file spi_sdcard_driver.h.

◆ reserved4

u32 reserved4

Definition at line 25 of file spi_sdcard_driver.h.

◆ reserved5

u8 reserved5

Definition at line 34 of file spi_sdcard_driver.h.

◆ reserved6

u8 reserved6

Definition at line 39 of file spi_sdcard_driver.h.

◆ reserved7

u8 reserved7

Definition at line 45 of file spi_sdcard_driver.h.

◆ sdcard

spisd_t sdcard
extern

Definition at line 49 of file spi_sdcard_driver.c.

◆ sector_size_high

u8 sector_size_high

Definition at line 30 of file spi_sdcard_driver.h.

◆ sector_size_low

u8 sector_size_low

Definition at line 31 of file spi_sdcard_driver.h.

◆ taac

u8 taac

Definition at line 2 of file spi_sdcard_driver.h.

◆ tmp_write_protect

u8 tmp_write_protect

Definition at line 43 of file spi_sdcard_driver.h.

◆ tran_speed

u8 tran_speed

Definition at line 4 of file spi_sdcard_driver.h.

◆ vdd_r_curr_max

u8 vdd_r_curr_max

Definition at line 20 of file spi_sdcard_driver.h.

◆ vdd_r_curr_min

u8 vdd_r_curr_min

Definition at line 21 of file spi_sdcard_driver.h.

◆ vdd_w_curr_max

u8 vdd_w_curr_max

Definition at line 24 of file spi_sdcard_driver.h.

◆ vdd_w_curr_min

u8 vdd_w_curr_min

Definition at line 25 of file spi_sdcard_driver.h.

◆ wp_grp_size

u8 wp_grp_size

Definition at line 32 of file spi_sdcard_driver.h.

◆ write_bl_len_high

u8 write_bl_len_high

Definition at line 36 of file spi_sdcard_driver.h.

◆ write_bl_len_low

u8 write_bl_len_low

Definition at line 37 of file spi_sdcard_driver.h.

◆ write_bl_partial

u8 write_bl_partial

Definition at line 38 of file spi_sdcard_driver.h.

◆ write_blk_misalign

u8 write_blk_misalign

Definition at line 12 of file spi_sdcard_driver.h.