Well, I figured out the problem. My memory was not initializing properly because of the DRB registers (see below). I noticed in the original bios DRB 0x64 and DRB 0x65 were set to the highest DRB value (0x04). These two registers are supposed to be ?Reserved? according to the datasheet. I hard set these registers for testing and boom, memtest completed successfully. Yep, it was a wacky Intel thing just like I thought. I attached the bootlog. I hope this will help anyone else working on intel northbridges.
Thanks - Joe
I am still getting a weird APIC error when I enable VGA IGD memory. I will submit my code once I resolve this:
IOAPIC Southbridge enabled 2186 Southbridge APIC ID = 0 APIC Error
Original Bios: 60: 00 00 04 04 04 04 00 00 00 00 00 00 00 00 00 00
LinuxBIOS: 60: 00 00 04 04 00 00 00 00 00 00 00 00 00 00 00 00
From the datasheet: DRB ? DRAM Row Boundary Register - Device #0 Address Offset: 60-67h Default Value: 00h Access: Read/Write (Read_Only if D_LCK = 1) Size: 8 bits Row Boundary Register defines the upper boundary address of each SDRAM Each row has its own DRB register. Contents of these 8-bit registers represent 32-MB granularity. For example, a value of 1 indicates 32 MB. Row0: 60h Row1: 61h Row2: 62h Row3: 63h Row4: 64h: Reserved Row5: 65h: Reserved Row6: 66h: Reserved Row7: 67h: Reserved DRB0 = Total memory in row0 (in 32 Mbytes) DRB1 = Total memory in row0 + row1 (in 32 Mbytes) ---- DRB4 = Total memory in row0 + row1 + row2 + row3 + (in 32 Mbytes)