It looks like they used ME7.3H4 hardware but compiled ME3.1 to *run* on the newer hardware...
I've taken a quick look using my Swiss Army Knife tool and it identifies the DPP registers as the
following...
-[ DPPx Setup Analysis ]-----------------------------------------------------------------
>>> Scanning for Main ROM DPPx setup #1 [to extract dpp0, dpp1, dpp2, dpp3 from rom]
main rom dppX byte sequence #1 found at offset=0x4a8.
dpp0: (seg: 0x002c phy:0x000b0000)
dpp1: (seg: 0x0001 phy:0x00004000)
dpp2: (seg: 0x0002 phy:0x00008000) ram start address
dpp3: (seg: 0x0003 phy:0x0000c000) cpu registers
Note: dpp3 is always 3, otherwise accessing CPU register area not possible
So its quite easy to load this rom into IDA to do some further analysis...
I did that (using the above setup to manually load it)
And then you can find the reset handler @ 0x2f4...
ROM:02F4 RESET_handler:
ROM:02F4 mov CP, #stack
ROM:02F8 calls 0, bootinit
ROM:02FC reti
And there you can trace the bootinit function and see the dppx registers..
ROM:04A8 mov DPP0, #2Ch
ROM:04AC mov DPP1, #1
ROM:04B0 mov DPP2, #2
ROM:04B4 mov DPP3, #3
These refer to segments of 16kbyte each segment. So you multiply the value by 16*1024 (which is 16384 in decimal or 0x4000 in hex). This is how you translate them to become physical addresses...
So... 0x2c x 0x4000 = 0xB000 which is exactly the address where your RAM is mapped to on this rom...
The rom itself is mapped to 0x0 which is different to most ME7.3H4's (Not all though as I've seen the same on some Alfa's too).
I searched for a few signatures and found some common ones which you may find useful such as;
Offset 0x486F8 is the call for SetDTCME75() with r12 = ErrorCode
Offset 0x44a08 is the offset to the main ROM Checksum variable initialisation code.
Offset 0x44a30 is the offset to the main ROM Checksum function.
Not familar enough with ME3.1 code to know precisely how it works but it looks pretty simple and I recognize the 'dna' applied in ME7.3
Offset 0x44e60 is a UnsDiv32by16bit_16bit() function
Offset 0x44be2 services the watchdog handler
ServiceWatchdog_44be2: mov WDTCON, r12
srvwdt
rets
etc...
If you need any more help let me know.. I surprised how little code there is in ME3.1 so pretty quick to fully disassemble it to be honest