#745 D16/D8 fix found for coreboot (fixes booting issues on D16 but now only 4 RAM modules usable per CPU. D8 will obviously boot aswell). This "fix" reverts raminit behaviour to what it was like in coreboot version used on libreboot 20160907

Open
opened 1 month ago by vimuser · 1 comments

in the commit right before coreboot removed D8/D16 support, make this change:

if (pDCTstat->Status & (1 << SB_Registered)) misc2 |= 1 << SubMemclkRegDly;

after

misc2 |= ((cs_mux_45 & 0x1) << 26);

in line 74 in the file src/northbridge/amd/amdmct/mct_ddr3/mctproc.c

Then both boards should boot up. Read on for more info. Not gonna edit this issue report, I'm just copying and pasting my thoughts as they were written, as notes.

according to comment on this reddit thread:

https://www.reddit.com/r/coreboot/comments/jdcn5y/latest_coreboot_for_the_asus_kcmad8/

According to that person, it was 610d1c67b2 commit ID in coreboot that broke D8 booting before it was removed in coreboot later on. the commit is here on reddit (the commit that broke booting): https://review.coreboot.org/c/coreboot/+/18369

the fix above probably also works for D16 aswell.

I'm probing the redditor for more information.

So, with what the author of that reddit post wrote, I did some digging. All the author did was manually revert a change, instead of using "git revert". Info on what commit to revert:

coreboot commit fec8872c9d fixed RDIMM training stuff

coreboot commit 610d1c67b2 reverted the above commit

so when coreboot broke, per most user testing and automated coreboot testing, the board might have been affected by rdimm training, and had rdimm modules (registered modules, not unregistered like on consumer boards)

commit 10d1c67b2298a9840681c2b4492b6d3fdf44a46 is fixing a condition where if 8 DIMMs are used on a single CPU, or 8 each on 2 CPUs, "MC4 failures" occured and caused problems booting

well: fec8872c9d is in libreboot's version of coreboot

with just fec8872c9d but not the commit (see above) that reverted it, you can only use up to 4 modules per CPU on a D16.

...

and by reverting 10d1c67b2298a9840681c2b4492b6d3fdf44a46, D16 boots again in coreboot.

TODO then:

Find the commit that removed D16/D8 support from coreboot, and use that as a revision in libreboot for D16.

in the commit right before coreboot removed D8/D16 support, make this change: if (pDCTstat->Status & (1 << SB_Registered)) misc2 |= 1 << SubMemclkRegDly; after misc2 |= ((cs_mux_45 & 0x1) << 26); in line 74 in the file src/northbridge/amd/amdmct/mct_ddr3/mctproc.c Then both boards should boot up. Read on for more info. Not gonna edit this issue report, I'm just copying and pasting my thoughts as they were written, as notes. according to comment on this reddit thread: https://www.reddit.com/r/coreboot/comments/jdcn5y/latest_coreboot_for_the_asus_kcmad8/ According to that person, it was 610d1c67b2298a9840681c2b4492b6d3fdf44a46 commit ID in coreboot that broke D8 booting before it was removed in coreboot later on. the commit is here on reddit (the commit that broke booting): https://review.coreboot.org/c/coreboot/+/18369 the fix above probably also works for D16 aswell. I'm probing the redditor for more information. So, with what the author of that reddit post wrote, I did some digging. All the author did was manually revert a change, instead of using "git revert". Info on what commit to revert: coreboot commit fec8872c9dee4411ba1a89fc8ec833a700b476c6 fixed RDIMM training stuff coreboot commit 610d1c67b2298a9840681c2b4492b6d3fdf44a46 reverted the above commit so when coreboot broke, per most user testing and automated coreboot testing, the board might have been affected by rdimm training, and had rdimm modules (registered modules, not unregistered like on consumer boards) commit 10d1c67b2298a9840681c2b4492b6d3fdf44a46 is fixing a condition where if 8 DIMMs are used on a single CPU, or 8 each on 2 CPUs, "MC4 failures" occured and caused problems booting well: fec8872c9dee4411ba1a89fc8ec833a700b476c6 is in libreboot's version of coreboot with just fec8872c9dee4411ba1a89fc8ec833a700b476c6 but not the commit (see above) that reverted it, you can only use up to 4 modules per CPU on a D16. ... and by reverting 10d1c67b2298a9840681c2b4492b6d3fdf44a46, D16 boots again in coreboot. TODO then: Find the commit that removed D16/D8 support from coreboot, and use *that* as a revision in libreboot for D16.
Lombard commented 2 weeks ago

Hey, I'm Grantelbart4 from Reddit. I only tested this on a KCMA-D8 (I don't own a KGPE-D16 yet) with an Opteron 4284. Fortunately the KCMA-D8 only has 4 memory slots per CPU, so I guess the fix won't break anything there. By manually reverting the change I was able to get the latest commit for both boards (ad983ee) to work.

Hey, I'm Grantelbart4 from Reddit. I only tested this on a KCMA-D8 (I don't own a KGPE-D16 yet) with an Opteron 4284. Fortunately the KCMA-D8 only has 4 memory slots per CPU, so I guess the fix won't break anything there. By manually reverting the change I was able to get the latest commit for both boards (ad983ee) to work.
Sign in to join this conversation.
Loading...
Cancel
Save
There is no content yet.