blob: 38e7ee8e3958c7b570c5b533a1f41f9a0e337a70 [file]
// Licensed under the Apache-2.0 license
// SPDX-License-Identifier: Apache-2.0
use core::ptr::read_volatile;
#[allow(dead_code)]
pub fn dump_smc_register(addr: u32, count: u32) {
for i in 0..count {
let reg_addr = addr + (i * 4);
let reg = unsafe { read_volatile(reg_addr as *const u32) };
pw_log::info!("SMC[0x{:08x}] = 0x{:08x}", reg_addr as u32, reg as u32);
}
}
#[allow(dead_code)]
pub fn dump_smc_read(buf: &[u8], count: u32) {
let count = core::cmp::min(count as usize, buf.len());
for i in (0..count).step_by(4) {
if i + 4 > count {
break;
}
let bytes: [u8; 4] = buf[i..i + 4].try_into().unwrap();
let value = u32::from_le_bytes(bytes);
pw_log::info!("[0x{:08x}] = 0x{:08x}", i as u32, value as u32);
}
}