I've tried undefining the symbol (-u Cache_Read_Enable_New) in the LDFLAGS and re-arranging the link order. No appreciable effect. Also tried including the function in my "main" C file . . . again no effect. The thing to remember, however, that this is a Sming environment so there is no simple 'C' file entry point but it is rather buried in the Sming library. The C++'isms add all kinds of warts that required me to make some modifications (mostly trivial) to get your code to compile in a C++ environment (e.g. mostly extern "C" around headers etc... and Sming's tendency to re-state all the primitive SDK APIs so they're compatible with C++). I obviously can tell you do your rboot development in a bare-bones Expressif SDK environment without the bells/whistles of something more heavyweight like Sming (or the Arduino alternative). Pros/Cons to each approach and certainly easier (for your application) to stay in a pure SDK environment. Can't blame you there but it make integration of rboot a little more "challenging" in the world of C++ frameworks
I'd be interested to see the order of your link command-line. Maybe I can sort something out there. Also, I suspect I may need to go down the path of fiddling with ROM linker file so it points at a provided Cache_Read_Enable() and take the hit by chewing up more iram. Hopefully, since it's a wrapper function, the hit would be fairly small. Can you offer more details there?
Anyway, I appreciate the continued support/help. Hopefully I'll eventually get this licked. Have you tried the BIG_FLASH option with a simple Sming-based project? Does it work for you?
Thanks . . .