diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2010-06-21 15:25:04 +0000 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2010-06-21 15:25:04 +0000 |
commit | 167c6ce11e543e95abc8c2d51da442f212ff2d22 (patch) | |
tree | 91c45aa4dbef2a256c9c2a8d8d2ec346565396ca /c | |
parent | 2010-06-21 Arnout Vandecappelle <arnout@mind.be> (diff) | |
download | rtems-167c6ce11e543e95abc8c2d51da442f212ff2d22.tar.bz2 |
2010-06-21 Arnout Vandecappelle <arnout@mind.be>
PR 1576/misc
* libchip/i2c/spi-sd-card.c: Enable CRC checks.
Diffstat (limited to 'c')
-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) { |