while calling this function:
static inline void writel(unsigned int v, volatile void __iomem *addr)
{
*(volatile unsigned int __force *)addr = cpu_to_le32(v);
}
- Does the address is absoulute or pass through the MMU?
- DMA – does writing to address is translated by the MMU?
- Why the registers address in the system aren’t mentioned here?
Here is my answers, hope they help you:
writelshould be Virtual Address (VA) obtained viaioremapcall.ioremapwill take Physical Address (PA).ioremapinside linux-kernel-tree/arch/arm.