On Aug 9, 2005, at 10:57 AM, Prashant Alange wrote: > Since the existing UART/ethernet drivers are using cpm_hostalloc() so > I am also using the same function.
As I have said too many times before, cpm_hostalloc() is only used to allocate small memory regions that would otherwise be wasteful with the normal Linux memory allocators. This function does not do anything special with the memory, aside from allowing us have multiple drivers share a page for efficiency. > Then can I use kmalloc() to alloc > such huge memory. Yes, and you should. > If at all I have to configure BATx to just test how > it behaves. No, that's not all you have to do. It's not a trivial process easily described here. > ..... One more thing is that > totally I am allocating about 1MB memory in a chunk of 200K. I can't comprehend a reason why you need to allocate so much space in a driver, especially for CPM devices. The driver is just a temporary FIFO for data flowing to/from other consumer/producers of the data in the system. If the software above a driver needs that kind of buffering, it should manage that itself. If you do need so much space, use the beauty of the CPM and link multiple BDs with reasonable sized buffers more easily managed by the existing Linux allocators. The other alternative is just reserve memory using the 'mem=' start parameter so it isn't know to Linux, and manage entirely yourself. -- Dan