Re: driver question about memory and calloc

2020-07-08 Thread Adam Feuer
The problem was that the interrupts the driver was waiting for (wait interrupts) did not include SDMMC_INT_DINT, the DMA Boundary Pause interrupt. The calloc() / kmm_memalign() memory allocation put the buffer in a place where the SDMA Buffer Boundary was not encountered, so the SDMA Boundary Paus

Re: driver question about memory and calloc

2020-07-08 Thread Adam Feuer
The kmm_malloc() also has the same effect of making it work. I think what's going on is that the transfer is passing a SDMA Buffer Boundary— they are 4kb (configurable, but that's the default). SDMA pauses when passing one, and needs to be reenabled by software. I can see the SDMMC_INT_DINT being

Re: driver question about memory and calloc

2020-07-07 Thread Adam Feuer
Greg, Thanks. I'll change the call to kmm_malloc() or kmm_memalign() and see if that works too. cheers adam On Tue, Jul 7, 2020 at 9:03 PM spudaneco wrote: > I don't know anything about the DMA, but you should not call calloc() from > within the OS. That does not work in all configurations.In

RE: driver question about memory and calloc

2020-07-07 Thread spudaneco
I don't know anything about the DMA, but you should not call calloc() from within the OS.  That does not work in all configurations.Instead  include nuttx/kmalloc,h and call kmm_malloc().  If you want aligned memory, call kmm_memalgn().Sent from Samsung tablet. Original message