If place the NDK variables in DDR3 with the stack and code in the MSMSRAM of a 6678. Then I populate the gHostDesc section of DDR3 with 0xFFFF_FFFF at main().
Then when I break at EmacStart(), I see that the section has been initialized but is in cache.
Then, when EmacStart() calls Setup_Tx(), which calls QMSS_QPUSHDESCSIZE() I have an invalid memory address for buffer pointer. This function then calls the cache writeback on a random memory location. This then causes an exception with crashes the application.
If, I instert a CACHE_wbAllL2(CACHE_WAIT); at the beginning of the EmacStart() this appears to init the memory section correctly and fix the issue. Can you please verify the correct fix to this issue. Also, verify there are no other hidden similar issues in the NDK running in this configuration.
Thanks.