[coreboot] Support for K10/K10.5 on old AM2-only boards

Andrew nitr0 at seti.kr.ua
Mon Jun 28 22:26:47 CEST 2010

Hi all.

I experimented with K10+ CPUs and boards that doesn't support them, and 
on some boards it's possible to start new CPUs with BIOS from board on 
same (or closely relative, like GeForce7025/NForce520 pair) chipset - 
possible with some bugs, possible without all working fuctions, or even 
sysnem that hangs on late BIOS initialisation stages - but CPU is 
successfully initialized. Also there are many enough old AM2 boards, 
that have AM2+/AM3 CPU support. So incompatibility of new CPUs with old 
hardware is only on software level (or 'semi-hardware' - when there 
aren't enough place in flash to fit new K10-related modules and microcodes).

I looked to coreboot because it looks like it can be enough functional 
replacement of native BIOS. And I want to try to make some experiments 
with it.

I have some MBs for experiments (Asus M2V-MX, Biostar GeForce7025, Palit 
NForce520 - that is AM2+/AM3 CPU compatible, MSI K9N4 Ultra MS-7310, and 
some Biostar on K8T800 - but as I understand this bridge can't be 
correctly initialized by coreboot). GeForce7025 and NForce520 boards 
have compatible BIOS - at least, after swapping of flashes they can 
successfully load MS-DOS from USB flash, and work with PCI/PCI-E 
videocards - so it looks that they use reference design. Also I have 
Willem programmer (still without PLCC parallel flash adapter because it 
was unneeded for me for many years - but I'll make it soon) and POST 
card, some knowledge in PC hardware and programming, and sometimes have 
some free time that I can spent for such experiments.

After look at code I have some questions:
1) Coreboot image that is assembled for K10, will support K8 CPUs? And 
how about K10.5 AthlonII/PhenomII CPUs (generic AM2+ boards can 
successfully run AM3 CPUs)?
2) To change CPU family - it's enough to replace family in Kconfig and 
replace included files in romstage.c?
3) Why you don't use generic AMD memory routines and CPUID detection for 
CPU family at initialization, and possible conditional compiling of code 
if somebody will need to disable support of K8 or K10+ - for ex., for 
flash space saving?
4) And what I need for try to create bios for unsupported MB if I take 
one working as basic? Except modifying Kconfig, replacing DSDT and, of 
course, replacing MB model name? How can I obtain data for 
devicetree.cb? I must edit irq_tables.c and mptable.c if I try to adapt 
BIOS from MB with same chipset? And how about cmos.layout?

More information about the coreboot mailing list