Hi All, I am trying to develop a SPI driver for MPC8541. I need to allocate memory buffers within kernel that their physical address is on 64 byte boundary and initialize the transmit and receive buffer descriptors with the their physical locations. Since I am not sure how to do this within the kernel here is how I am doing it: unsigned long mem_addr_rx = __get_free_page(GFP_KERNEL); //receive buffer unsigned long mem_addr_tx = __get_free_page(GFP_KERNEL); //transmit buffer ..... rx_buffer_addr = __pa(mem_addr_rx); tx_buffer_addr=__pa(mem_addr_tx); My assumption is by allocating a page, I am guaranteed that I will have 64 byte boundary condition. Is this correct? I have also told, the SPI does not have snoop bit, so I need to allocate buffers from iomem, I have no idea how to do this. Please help, Many thanks in advance, Regards, Bizhan -------------- next part -------------- An HTML attachment was scrubbed... URL: http://ozlabs.org/pipermail/linuxppc-embedded/attachments/20051017/4a43bd21/attachment.htm
Need help Please:IOMEM memory allocation
Bizhan Gholikhamseh (bgholikh) Mon, 17 Oct 2005 05:24:12 -0700