Hi,
I'm debugging with Arium XDP3e debugger on ADI target board(MohonPeak based). The coreboot.rom can bring target board up successfully in case of XDP not plugged. However, when stepping with debugger, the C code main function of romstage can't be stepped, it always failed and the cpu goes into uncertain state. The main function of C code is at src/southbridge/intel/fsp_rangeley/romstage.c. At the time this main function has been called, the Cache as RAM has been setup by FSP, and the MTRR_PHYSBASE0 is FEF0_0006. The following is show in debugger:
void main(FSP_INFO_HEADER *fsp_info_header) 45 { main: 0008:FFC074E5 55 PUSH EBP 0008:FFC074E6 89E5 MOV EBP,ESP 0008:FFC074E8 56 PUSH ESI 0008:FFC074E9 53 PUSH EBX 0008:FFC074EA 83E4F0 AND ESP,fffffff0 0008:FFC074ED 83EC20 SUB ESP,00000020 46 uint32_t pm1_cnt; 47 uint16_t pm1_sts; 48 uint32_t fd_mask = 0; 0008:FFC074F0 C744241C00000000 MOV dword ptr [ESP]+1c,00000000
when step line 48: uint32_t fd_mask = 0, the cpu goes into uncertain state. Since temporary stack has been setup, why should this instruction fail? You can see the assembly form: MOV dword ptr [ESP] + 1c, 00000000, The value of [ESP] + 1c is FEF03FDC, it's the cache region, and I can even modify this address in debugger's memory window, but it's wired that the debugger can step and go through :-(.
BTW: (1) Using the debugger's memory window, I can see Cache as RAM region of temporary stack are full of A5 5A, is it the correct case? (2) When using debugger, does the PCH_Straps in SPI Flash descriptor executed as normal start up case?
Please help me, thanks!
Sincerely, Hook Guo