mirror of
https://github.com/embassy-rs/embassy.git
synced 2025-09-29 21:31:08 +00:00
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);
|
||||
// Configure DMA to transfer input to crypto core.
|
||||
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 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 {
|
||||
#[cfg(not(gpdma))]
|
||||
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);
|
||||
// Configure DMA to transfer input to crypto core.
|
||||
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 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 {
|
||||
#[cfg(not(gpdma))]
|
||||
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.
|
||||
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;
|
||||
if input.len() % 4 > 0 {
|
||||
num_words += 1;
|
||||
}
|
||||
let src_ptr = ptr::slice_from_raw_parts(input.as_ptr().cast(), num_words);
|
||||
let dma_transfer =
|
||||
unsafe { Transfer::new_write_raw(&mut self.dma, dma_request, src_ptr, dst_ptr, Default::default()) };
|
||||
let src_ptr: *const [u8] = ptr::slice_from_raw_parts(input.as_ptr().cast(), num_words);
|
||||
let dma_transfer = unsafe {
|
||||
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));
|
||||
|
||||
// Wait for the transfer to complete.
|
||||
|
Loading…
x
Reference in New Issue
Block a user