diff options
-rw-r--r-- | c/src/ChangeLog | 5 | ||||
-rw-r--r-- | c/src/libchip/i2c/spi-sd-card.c | 6 |
2 files changed, 10 insertions, 1 deletions
diff --git a/c/src/ChangeLog b/c/src/ChangeLog index acfbee24e5..41bdf2830c 100644 --- a/c/src/ChangeLog +++ b/c/src/ChangeLog @@ -1,5 +1,10 @@ 2010-06-21 Arnout Vandecappelle <arnout@mind.be> + PR 1576/misc + * libchip/i2c/spi-sd-card.c: Enable CRC checks. + +2010-06-21 Arnout Vandecappelle <arnout@mind.be> + PR 1569/misc * libchip/i2c/spi-sd-card.c: Added CRC checks. diff --git a/c/src/libchip/i2c/spi-sd-card.c b/c/src/libchip/i2c/spi-sd-card.c index 89b81d8ab0..3289c72f9b 100644 --- a/c/src/libchip/i2c/spi-sd-card.c +++ b/c/src/libchip/i2c/spi-sd-card.c @@ -461,7 +461,8 @@ static int sd_card_send_register_command( sd_card_driver_entry *e, uint32_t comm } crc7 = sd_card_compute_crc7( e->response + e->response_index, 5); - if (crc7 != SD_CARD_COMMAND_GET_CRC7( e->response + e->response_index)) { + if (crc7 != SD_CARD_COMMAND_GET_CRC7( e->response + e->response_index) && + SD_CARD_COMMAND_GET_CRC7( e->response + e->response_index) != 0x7f) { RTEMS_SYSLOG_ERROR( "CRC check failed on register command\n"); return -RTEMS_IO_ERROR; } @@ -752,6 +753,9 @@ static rtems_status_code sd_card_init( sd_card_driver_entry *e) cmd_arg = SD_CARD_FLAG_HCS; } + /* Enable CRC */ + sd_card_send_command( e, SD_CARD_CMD_CRC_ON_OFF, 1); + /* Initialize card */ while (true) { if (assume_sd) { |