+#
+# At reset the pic32mx does not allow code execution from RAM
+# we have to setup the BMX registers to allow this.
+# One limitation is that we loose the first 2k of RAM.
+#
+
+global _PIC32MX_DATASIZE
+global _PIC32MX_PROGSIZE
+set _PIC32MX_DATASIZE 0x800
+set _PIC32MX_PROGSIZE [expr ($_WORKAREASIZE - $_PIC32MX_DATASIZE)]
+
+$_TARGETNAME configure -work-area-phys 0xa0000800 -work-area-size $_PIC32MX_PROGSIZE -work-area-backup 0
+$_TARGETNAME configure -event reset-init {
+ #
+ # from reset the pic32 cannot execute code in ram - enable ram execution
+ # minimum offset from start of ram is 2k
+ #
+
+ global _PIC32MX_DATASIZE
+ global _PIC32MX_PROGSIZE
+
+ # BMXCON
+ mww 0xbf882000 0x001f0040
+ # BMXDKPBA: 2k kernel data @ 0xa0000800
+ mww 0xbf882010 $_PIC32MX_DATASIZE
+ # BMXDUDBA: 16k kernel program @ 0xa0000800
+ mww 0xbf882020 $_PIC32MX_PROGSIZE
+ # BMXDUPBA: 0k user program
+ mww 0xbf882030 $_PIC32MX_PROGSIZE
+}