Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F167678162
D19779.id55706.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
2 KB
Referenced Files
None
Subscribers
None
D19779.id55706.diff
View Options
Index: sbin/camcontrol/camcontrol.c
===================================================================
--- sbin/camcontrol/camcontrol.c
+++ sbin/camcontrol/camcontrol.c
@@ -7791,6 +7791,8 @@
mmc_d.len = mmc_data_len;
mmc_d.data = mmc_data;
mmc_d.flags = MMC_DATA_READ;
+ mmc_d.block_size = 0;
+ mmc_d.block_count = 0;
} else flags |= CAM_DIR_NONE;
cam_fill_mmcio(&ccb->mmcio,
Index: sys/cam/mmc/mmc_da.c
===================================================================
--- sys/cam/mmc/mmc_da.c
+++ sys/cam/mmc/mmc_da.c
@@ -889,6 +889,7 @@
struct mmc_data d;
KASSERT(buf_len == 512, ("Buffer for ext csd must be 512 bytes"));
+ memset(&d, 0, sizeof(d));
d.data = rawextcsd;
d.len = buf_len;
d.flags = MMC_DATA_READ;
@@ -1013,6 +1014,7 @@
int err;
memset(res, 0, 64);
+ memset(&mmc_d, 0, sizeof(mmc_d));
mmc_d.len = 64;
mmc_d.data = res;
mmc_d.flags = MMC_DATA_READ;
@@ -1807,6 +1809,7 @@
mmcio->cmd.data->data = bp->bio_data;
mmcio->cmd.data->len = 512 * count;
mmcio->cmd.data->flags = (bp->bio_cmd == BIO_READ ? MMC_DATA_READ : MMC_DATA_WRITE);
+ mmcio->cmd.data->block_count = mmcio->cmd.data->block_size = 0;
/* Direct h/w to issue CMD12 upon completion */
if (count > 1) {
mmcio->cmd.data->flags |= MMC_DATA_MULTI;
Index: sys/dev/mmc/mmcreg.h
===================================================================
--- sys/dev/mmc/mmcreg.h
+++ sys/dev/mmc/mmcreg.h
@@ -190,6 +190,8 @@
struct mmc_data {
size_t len; /* size of the data */
+ size_t block_size; /* block size for CMD53 */
+ size_t block_count; /* block count for CMD53 */
size_t xfer_len;
void *data; /* data buffer */
uint32_t flags;
@@ -546,7 +548,11 @@
#define SD_IO_RW_LEN(x) (((x) & 0xFF) << 0)
#define SD_IOE_RW_LEN(x) (((x) & 0x1FF) << 0)
+#define SD_IOE_RW_ADR(x) (((x) & 0x1FFFF) << 9)
+#define SD_IOE_RW_INCR (1u << 26)
#define SD_IOE_RW_BLK (1u << 27)
+#define SD_IOE_RW_FUNC(x) (((x) & 0x7) << 28)
+#define SD_IOE_RW_WR (1u << 31)
/* Card Common Control Registers (CCCR) */
#define SD_IO_CCCR_START 0x00000
@@ -561,11 +567,15 @@
#define CCCR_BUS_WIDTH_4 (1 << 1)
#define CCCR_BUS_WIDTH_1 (1 << 0)
#define SD_IO_CCCR_CARDCAP 0x08
-#define SD_IO_CCCR_CISPTR 0x09 /* XXX 9-10, 10-11, or 9-12 */
-
+#define CCCR_CC_SMB (1 << 1)
+#define SD_IO_CCCR_CISPTR 0x09 /* 0x09 - 0x0B */
+#define SD_IO_CCCR_FN0_BLKSZ 0x10 /* 0x10 - 0x11 */
/* Function Basic Registers (FBR) */
#define SD_IO_FBR_START 0x00100
#define SD_IO_FBR_SIZE 0x00700
+#define SD_IO_FBR_START_F(n) (SD_IO_FBR_START + (n-1) * 0x00100)
+#define SD_IO_FBR_CIS_OFFSET 0x9
+#define SD_IO_FBR_IOBLKSZ 0x10
/* Card Information Structure (CIS) */
#define SD_IO_CIS_START 0x01000
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Mon, Aug 24, 5:38 PM (5 h, 36 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
37196168
Default Alt Text
D19779.id55706.diff (2 KB)
Attached To
Mode
D19779: Add new fields to mmc_data in preparation to SDIO CMD53 block mode support
Attached
Detach File
Event Timeline
Log In to Comment