-void sd_dumpCsd(SDcsd *csd);
-void sd_dumpCid(SDcid *cid);
-void sd_dumpSsr(SDssr *ssr);
+void sd_dumpCsd(SdCSD *csd);
+void sd_dumpCid(SdCID *cid);
+void sd_dumpSsr(SdSSR *ssr);
void sd_sendInit(void);
void sd_goIdle(void);
int sd_sendIfCond(Sd *sd);
int sd_sendAppOpCond(Sd *sd);
void sd_sendInit(void);
void sd_goIdle(void);
int sd_sendIfCond(Sd *sd);
int sd_sendAppOpCond(Sd *sd);
-int sd_getCid(Sd *sd, SDcid *cid, uint32_t addr, uint8_t flag);
-int sd_getCsd(Sd *sd, SDcsd *csd);
+int sd_getCid(Sd *sd, SdCID *cid, uint32_t addr, uint8_t flag);
+int sd_getCsd(Sd *sd, SdCSD *csd);
int sd_getSrc(Sd *sd);
int sd_appStatus(Sd *sd);
int sd_getRelativeAddr(Sd *sd);
int sd_getSrc(Sd *sd);
int sd_appStatus(Sd *sd);
int sd_getRelativeAddr(Sd *sd);
-int sd_getStatus(Sd *sd, SDssr *ssr, uint32_t *buf, size_t words);
+int sd_getStatus(Sd *sd, SdSSR *ssr, uint32_t *buf, size_t words);
int sd_selectCard(Sd *sd);
int sd_deSelectCard(Sd *sd);
int sd_selectCard(Sd *sd);
int sd_deSelectCard(Sd *sd);
-void sd_dumpCsd(SDcsd *csd)
+void sd_dumpCsd(SdCSD *csd)
-void sd_dumpCid(SDcid *cid)
+void sd_dumpCid(SdCID *cid)
(BCD_TO_INT_32BIT(cid->year_off) % 12));
}
(BCD_TO_INT_32BIT(cid->year_off) % 12));
}
-void sd_dumpSsr(SDssr *ssr)
+void sd_dumpSsr(SdSSR *ssr)
-static int sd_decodeCsd(SDcsd *csd, uint32_t *resp, size_t len)
+static int sd_decodeCsd(SdCSD *csd, uint32_t *resp, size_t len)
{
ASSERT(csd);
ASSERT(resp);
{
ASSERT(csd);
ASSERT(resp);
-int sd_getCid(Sd *sd, SDcid *cid, uint32_t addr, uint8_t flag)
+int sd_getCid(Sd *sd, SdCID *cid, uint32_t addr, uint8_t flag)
{
ASSERT(sd);
ASSERT(cid);
{
ASSERT(sd);
ASSERT(cid);
- memset(cid, 0, sizeof(SDcid));
+ memset(cid, 0, sizeof(SdCID));
uint8_t idx = 9; // CMD9 get cid from gived sd address (RCA)
if (flag & SD_SEND_ALL_CID)
uint8_t idx = 9; // CMD9 get cid from gived sd address (RCA)
if (flag & SD_SEND_ALL_CID)
-int sd_getCsd(Sd *sd, SDcsd *csd)
+int sd_getCsd(Sd *sd, SdCSD *csd)
{
ASSERT(sd);
ASSERT(csd);
{
ASSERT(sd);
ASSERT(csd);
- memset(csd, 0, sizeof(SDcsd));
+ memset(csd, 0, sizeof(SdCSD));
LOG_INFO("Send to RCA: %lx\n", SD_ADDR_TO_RCA(sd->addr));
if (hsmci_sendCmd(9, SD_ADDR_TO_RCA(sd->addr), HSMCI_CMDR_RSPTYP_136_BIT))
LOG_INFO("Send to RCA: %lx\n", SD_ADDR_TO_RCA(sd->addr));
if (hsmci_sendCmd(9, SD_ADDR_TO_RCA(sd->addr), HSMCI_CMDR_RSPTYP_136_BIT))
-int sd_getStatus(Sd *sd, SDssr *ssr, uint32_t *buf, size_t words)
+int sd_getStatus(Sd *sd, SdSSR *ssr, uint32_t *buf, size_t words)
{
ASSERT(sd);
ASSERT(ssr);
{
ASSERT(sd);
ASSERT(ssr);
hsmci_waitTransfer();
LOG_INFOB(dump("STATUS", buf, words););
hsmci_waitTransfer();
LOG_INFOB(dump("STATUS", buf, words););
- memset(ssr, 0, sizeof(SDssr));
+ memset(ssr, 0, sizeof(SdSSR));
ssr->bus_width = UNSTUFF_BITS(buf, 510, 2);
ssr->card_type = UNSTUFF_BITS(buf, 480, 16);
ssr->au_size = UNSTUFF_BITS(buf, 432, 8);
ssr->bus_width = UNSTUFF_BITS(buf, 510, 2);
ssr->card_type = UNSTUFF_BITS(buf, 480, 16);
ssr->au_size = UNSTUFF_BITS(buf, 432, 8);
if(sd_getCid(sd, &cid, 0, SD_SEND_ALL_CID) < 0)
return false;
else
if(sd_getCid(sd, &cid, 0, SD_SEND_ALL_CID) < 0)
return false;
else
LOG_INFO("RCA: %0lx\n", sd->addr);
}
LOG_INFO("RCA: %0lx\n", sd->addr);
}
if (sd_getCsd(sd, &csd) < 0)
return false;
else
if (sd_getCsd(sd, &csd) < 0)
return false;
else
#include <fs/fatfs/diskio.h>
#include <fs/fatfs/diskio.h>
{
uint8_t manfid;
uint8_t prod_name[8];
{
uint8_t manfid;
uint8_t prod_name[8];
uint32_t year_off;
uint8_t m_rev;
uint8_t l_rev;
uint32_t year_off;
uint8_t m_rev;
uint8_t l_rev;
{
uint8_t structure;
uint8_t ccc; ///< Card command classes
{
uint8_t structure;
uint8_t ccc; ///< Card command classes
read_misalign:1,
write_partial:1,
write_misalign:1;
read_misalign:1,
write_partial:1,
write_misalign:1;
{
uint8_t bus_width;
uint8_t card_type;
uint8_t speed_class;
uint8_t au_size;
uint8_t erase_size;
{
uint8_t bus_width;
uint8_t card_type;
uint8_t speed_class;
uint8_t au_size;
uint8_t erase_size;
#define SD_START_DELAY 10
#define SD_INIT_TIMEOUT ms_to_ticks(2000)
#define SD_START_DELAY 10
#define SD_INIT_TIMEOUT ms_to_ticks(2000)
-static int16_t sd_getCSD(Sd *sd, SDcsd *csd)
+static int16_t sd_getCSD(Sd *sd, SdCSD *csd)
}
/* Avoid warning for uninitialized csd use (gcc bug?) */
}
/* Avoid warning for uninitialized csd use (gcc bug?) */
sd->status = sd_getCSD(sd, &csd);
sd->status = sd_getCSD(sd, &csd);