> dma_init_read and dma_init_write are passed a __u32 vaddress, this is
> resolving on my system for the first write to 00fe3000, however if I read
> from this address I get a
> Unable to handle kernel paging request at virtual address 00fe3000
0x00fe3000 is a physical address, you may pass that address to the hardware, but
you may not use it in the kernel. If you want to access it from the kernel you
will have to add 0xa0000000. That's easily done by using the KSEG1 macro, thus
in your particular case KSEG1(0x00fe3000).