forked from M-Labs/zynq-rs
standard capacity support
This commit is contained in:
parent
074b3547de
commit
d3b488bfb3
@ -205,6 +205,13 @@ impl SdCard {
|
|||||||
self.sdio.set_block_size(512)?;
|
self.sdio.set_block_size(512)?;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let real_addr = if self.hcs {
|
||||||
|
address
|
||||||
|
} else {
|
||||||
|
// standard capacity card uses byte address
|
||||||
|
address * 0x200
|
||||||
|
};
|
||||||
|
|
||||||
self.adma2_desc_table.setup(&mut self.sdio, block_cnt as u32, buffer);
|
self.adma2_desc_table.setup(&mut self.sdio, block_cnt as u32, buffer);
|
||||||
// invalidate D cache, required for ZC706, not sure for Cora Z7 10
|
// invalidate D cache, required for ZC706, not sure for Cora Z7 10
|
||||||
cache::dcci_slice(buffer);
|
cache::dcci_slice(buffer);
|
||||||
@ -230,7 +237,7 @@ impl SdCard {
|
|||||||
};
|
};
|
||||||
|
|
||||||
self.sdio
|
self.sdio
|
||||||
.cmd_transfer_with_mode(cmd, address, block_cnt, mode)?;
|
.cmd_transfer_with_mode(cmd, real_addr, block_cnt, mode)?;
|
||||||
|
|
||||||
self.wait_transfer_complete()?;
|
self.wait_transfer_complete()?;
|
||||||
cache::dcci_slice(buffer);
|
cache::dcci_slice(buffer);
|
||||||
@ -258,6 +265,13 @@ impl SdCard {
|
|||||||
self.sdio.set_block_size(512)?;
|
self.sdio.set_block_size(512)?;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let real_addr = if self.hcs {
|
||||||
|
address
|
||||||
|
} else {
|
||||||
|
// standard capacity card uses byte address
|
||||||
|
address * 0x200
|
||||||
|
};
|
||||||
|
|
||||||
self.adma2_desc_table.setup(&mut self.sdio, block_cnt as u32, buffer);
|
self.adma2_desc_table.setup(&mut self.sdio, block_cnt as u32, buffer);
|
||||||
// invalidate D cache, required for ZC706, not sure for Cora Z7 10
|
// invalidate D cache, required for ZC706, not sure for Cora Z7 10
|
||||||
cache::dcci_slice(buffer);
|
cache::dcci_slice(buffer);
|
||||||
@ -281,7 +295,7 @@ impl SdCard {
|
|||||||
};
|
};
|
||||||
|
|
||||||
self.sdio
|
self.sdio
|
||||||
.cmd_transfer_with_mode(cmd, address, block_cnt, mode)?;
|
.cmd_transfer_with_mode(cmd, real_addr, block_cnt, mode)?;
|
||||||
// wait for transfer complete interrupt
|
// wait for transfer complete interrupt
|
||||||
self.wait_transfer_complete()?;
|
self.wait_transfer_complete()?;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user