Angel wrote... 
I can’t match what is printed on the top of the Micron devices (two lines of text “0JE75” and “D9ZFW”) to any part numbers on Micron’s website. Is it some kind of encoded version of the part number or is it just factory and build information? Looking at the website I would assume that the MT40A512M16JY family would be the equivalent parts.
 
https://www.micron.com/support/tools-and-utilities/fbga
That is a cool and useful tool, and not one that was obvious to stumble across! That identifies the memory as MT40A1G16KD-062E:E.  The existing Coreboot sources seem to reference SPD for this part in two forms (Google Zork and Drallion) so I have “borrowed” the SPD files.

The debug output on my board is different to before as the mainboard specific memory initialisation code is now being called but ends with:

SPD INDEX = 0
FMAP: area COREBOOT found @ 490200 (11992576 bytes)
CBFS: Locating 'spd.bin'
CBFS: Found @ offset 50bc0 size 200
SPD: module type is DDR4
SPD: module part number is M471A5244BB0-CRC   
SPD: banks 8, ranks 1, rows 16, columns 10, density 8192 Mb
SPD: device width 16 bits, bus width 64 bits
SPD: module size is 4096 MB (per channel)
memory slot: 0 configuration done.
memory slot: 2 configuration done.
POST: 0x36
POST: 0x92
POST: 0x98
FspMemoryInit returned 0x80000007
POST: 0xe3
FspMemoryInit returned an error!

The values in the SPD look wrong but also FspMemoryInit is still failing.  Is there any way to understand what it making FspMemoryInit do so?

-Andy.