AnsweredAssumed Answered

Boot into different application from running application

Question asked by avcmarc on Dec 20, 2011
Latest reply on Sep 21, 2016 by MattZ

I have a multi-dxe project set up where one running dxe needs to be able to boot into the other. I have been able to do this successfully in the past with another project by following "User-Callable Boot ROM Functions" in the ADSP-BF537 Blackfin Processor Hardware Reference that gives:

 

#include <defBF537.h> /* provides function entry addresses */    
  P0.H = HI(_BOOTROM_BOOT_DXE_FLASH) ;
  P0.L = LO(_BOOTROM_BOOT_DXE_FLASH) ;
  R7.H = HI(0x20100000) ; /* start of async bank 1 */
  R7.L = LO(0x20100000) ;
  JUMP (P0) ; /* jump to Boot ROM */

 

The previous project where this method works is a stand-alone application and I shut down all used periphrials first. This new project is a VDK-based application using LwIP and the system services model. I am having getting the above code to work in this VDK project - I keep seeing various EXCAUSE codes. I have tried calling adi_ssl_Terminate() first, VDK_PushUnscheduledRegion(), and have tried turning off cache by writing '0' to IMEM_CONTROL and DMEM_CONTROL. Nothing has worked, but the errors seen have varried. Sometimes I have seen kernel panic errors as well.

 

So my question is what is the best way of booting into another DXE from a running VDK environment? What do I need to shutdown (and how) first so I can exit my running program cleaning and boot into my new one?

 

Regards,

Marc

 

P.S. ADSP-BF537 Silicone 0.3, custom board, Visual DSP++ 5.0.10.0, LwIP 1.4.0, testing with HPUSB-ICE (however I test the reboot process out of emulation).

Outcomes