There is another variable added in P55x in DXINITDONE when compared to 003x. This is for pievect ram initialization. In the _system_pre_init code in the while loop check for 0x13 instead of 0x3. Note that boot rom does ram initialization only on POR. So when you do an xrsn all the values in Dxinitdone get reset to zero and the code control moves back to _system_pre_init where now application code is triggering initialization of M1 and M0 only. So the while loop matches done value of 0x3
↧