refactor: update DMA pointer types for cryp and hash modules
This commit is contained in:
parent
ff526e1604
commit
7d74d15b18
@ -1785,9 +1785,9 @@ impl<'d, T: Instance, DmaIn, DmaOut> Cryp<'d, T, DmaIn, DmaOut> {
|
|||||||
assert_eq!(blocks.len() % block_size, 0);
|
assert_eq!(blocks.len() % block_size, 0);
|
||||||
// Configure DMA to transfer input to crypto core.
|
// Configure DMA to transfer input to crypto core.
|
||||||
let dma_request = dma.request();
|
let dma_request = dma.request();
|
||||||
let dst_ptr = T::regs().din().as_ptr();
|
let dst_ptr: *mut u32 = T::regs().din().as_ptr();
|
||||||
let num_words = blocks.len() / 4;
|
let num_words = blocks.len() / 4;
|
||||||
let src_ptr = ptr::slice_from_raw_parts(blocks.as_ptr().cast(), num_words);
|
let src_ptr: *const [u8] = ptr::slice_from_raw_parts(blocks.as_ptr().cast(), num_words);
|
||||||
let options = TransferOptions {
|
let options = TransferOptions {
|
||||||
#[cfg(not(gpdma))]
|
#[cfg(not(gpdma))]
|
||||||
priority: crate::dma::Priority::High,
|
priority: crate::dma::Priority::High,
|
||||||
@ -1825,9 +1825,9 @@ impl<'d, T: Instance, DmaIn, DmaOut> Cryp<'d, T, DmaIn, DmaOut> {
|
|||||||
assert_eq!((blocks.len() * 4) % block_size, 0);
|
assert_eq!((blocks.len() * 4) % block_size, 0);
|
||||||
// Configure DMA to transfer input to crypto core.
|
// Configure DMA to transfer input to crypto core.
|
||||||
let dma_request = dma.request();
|
let dma_request = dma.request();
|
||||||
let dst_ptr = T::regs().din().as_ptr();
|
let dst_ptr: *mut u32 = T::regs().din().as_ptr();
|
||||||
let num_words = blocks.len();
|
let num_words = blocks.len();
|
||||||
let src_ptr = ptr::slice_from_raw_parts(blocks.as_ptr().cast(), num_words);
|
let src_ptr: *const [u32] = ptr::slice_from_raw_parts(blocks.as_ptr().cast(), num_words);
|
||||||
let options = TransferOptions {
|
let options = TransferOptions {
|
||||||
#[cfg(not(gpdma))]
|
#[cfg(not(gpdma))]
|
||||||
priority: crate::dma::Priority::High,
|
priority: crate::dma::Priority::High,
|
||||||
|
|||||||
@ -515,14 +515,21 @@ impl<'d, T: Instance, D> Hash<'d, T, D> {
|
|||||||
|
|
||||||
// Configure DMA to transfer input to hash core.
|
// Configure DMA to transfer input to hash core.
|
||||||
let dma_request = self.dma.request();
|
let dma_request = self.dma.request();
|
||||||
let dst_ptr = T::regs().din().as_ptr();
|
let dst_ptr: *mut u32 = T::regs().din().as_ptr();
|
||||||
let mut num_words = input.len() / 4;
|
let mut num_words = input.len() / 4;
|
||||||
if input.len() % 4 > 0 {
|
if input.len() % 4 > 0 {
|
||||||
num_words += 1;
|
num_words += 1;
|
||||||
}
|
}
|
||||||
let src_ptr = ptr::slice_from_raw_parts(input.as_ptr().cast(), num_words);
|
let src_ptr: *const [u8] = ptr::slice_from_raw_parts(input.as_ptr().cast(), num_words);
|
||||||
let dma_transfer =
|
let dma_transfer = unsafe {
|
||||||
unsafe { Transfer::new_write_raw(&mut self.dma, dma_request, src_ptr, dst_ptr, Default::default()) };
|
Transfer::new_write_raw(
|
||||||
|
&mut self.dma,
|
||||||
|
dma_request,
|
||||||
|
src_ptr,
|
||||||
|
dst_ptr as *mut u32,
|
||||||
|
Default::default(),
|
||||||
|
)
|
||||||
|
};
|
||||||
T::regs().cr().modify(|w| w.set_dmae(true));
|
T::regs().cr().modify(|w| w.set_dmae(true));
|
||||||
|
|
||||||
// Wait for the transfer to complete.
|
// Wait for the transfer to complete.
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user