[coreboot] Coreboot support for ASUS M5 A99X EVO ?

Marc Jones marcj303 at gmail.com
Fri Mar 9 20:32:56 CET 2012

Hi Bernhard,
Sorry for the late reply, I had missed this email chain.

On Wed, Feb 22, 2012 at 4:51 AM, Bernhard Urban <lewurm at gmail.com> wrote:
> hi,
> so finally, I spent some time on porting coreboot to the asus board
> "m5a99x evo". http://www.asus.com/Motherboards/AMD_AM3Plus/M5A99X_EVO/
> I was equipped with three DIP chips and decided to use my target
> machine also for developing. I had also set up a quite complicated
> configuration for serial debugging, as I didn't own a second machine
> with a rs232 board. Although the first try (just flash the "m5a88-v"
> configuration) showed some output :-) ( http://tinyurl.com/89a33m5 ),
> the build cycle was a pain in the ass.
> (0) building coreboot (takes some seconds...)
> (1) flashing the chip (~30seconds, without verifying)
> (2) reboot (~20sec)
> (3) starting coreboot and analyse the output (between 1sec and some minutes ;-))
> (4) switch chip with vendor bios on it (some seconds)
> (5) booting vendor bios and linux (35sec + 11sec. yes, the vendor
> firmware takes three times longer than linux + x11. BOAR ;-))
> (6) switch chip again.
> So I was looking for alternatives. I remembered the ft2232 stuff by
> Uwe. I had it anyway on my "order it some day"-list, so it was the
> right time ;-)
> In the meanwhile, I refit my old machine with a new hdd and a
> reasoneable graphic card. Luckily, it has also a serial port :-)
> I was a bit afraid of building a programmer (the ft2232 thingy) as I'm
> not really the hardware guy. However, the first dump was successful.
> Writing was working too. I was impressed :-) Thanks to Uwe at this
> point!
> So the build cycle is more convenient now:
> (0) building coreboot (takes longer than on my new machine, but it's okay ;-))

using " make -j n", where n is the number of cores will speed up the build.

> (1) flash the chip with the ft2232 thingy (~30 seconds, without verifying)
> (2) put the chip onto the mainboard
> (3) start machine and watch serial output
> all in all, it take like one minute to test one build. nice!

This is good progress!

> So, now I was able to do some serious coreboot hacking. I started from
> the "m5a88-v" port. What I did:
> - Changed the southbridge from "SB800" to "SB900"
> - Adapted some compile-breaks due to this change.
> - hardcoded some pci device instead of locating it @ early.c -> ohai
> ramstage :-)
> - again, some pci related change/hack (aborting the enumeration
> earlier). I didn't really understand what I did here, I just figured
> out it hangs here (could be related with the quirk below). After that
> I was very happy ;) However, SeaBIOS itself hang somewhere.
> In the meanwhile, Kerry pushed RD890 patches, which seemed to be more
> appropriate for my board (i used RS780 code so far, hence the ugly
> hacks mentioned above I guess). So I used them, and it felt much
> cleaner immediately. The payload was still loading -> nice.
> After that, I investigated a bit what the problem is with SeaBIOS. At
> this moment, it hanged after printing "Relocating init from 0x000e8450
> to 0xcffd57a0 (size 42812)" (see http://tinyurl.com/78evzex ). I
> looked into the SeaBIOS code and found out, that you can disable
> relocation. So I did.
> The result was a bit more confusing. http://tinyurl.com/7uh8xty
> The output get distorted (which seems not to be deterministically,
> http://tinyurl.com/6opakzl ) and something issues a soft reset (but
> not everytime...). Eventually I gave up at this point (had to do other
> stuff anyway). I guess it is something wrong with RAM initialization
> as relocation in higher memory regions doesn't work. Also, the graphic
> card isn't found on the pci bus as the RD890 code inlcudes a quirk
> which "disable all pcie bridges" aka
> `sr56x0_rd890_disable_pcie_bridge()'. According to `lspci' (with
> vendor bios), the graphic card is on bus 1, so this seem reasonably.
> @Kerry: is there some way to enable it again after "early"?
> my WIP branch is available here (please tell me if you pull from it,
> because atm I'm rebasing stuff on it and using `git push -f' to
> overwrite it...):
> http://wien.tomnetworks.com/gitweb/?p=coreboot.git;a=shortlog;h=refs/heads/WIP
> full logs (including config and rom images) are available here:
> http://wien.tomnetworks.com/gitweb/?p=cbimages.git;a=tree
> Some questions:
> - What does "CIMX" stands for? I grep'd my #coreboot logs for it. One
> guy asked that already, but he didn't get an answer :-/

CIMx is the AMD southbridge vendor code. It is similar to AGESA, and
has wrappers in coreboot that call into it.

> - What's the best/easiest way to verify if RAM init was successful?

RAM is mostly working iouf you get this far into SeaBIOS. You can run
a RAM test, but you probably just want to check that the top of memory
is where you expect and test reads and writes there.

> - I think it would be nice to have an entry on the wiki page for this
> board. How I get an account? Stefan? :-)

This would be great. Catch Stepan or other admins in #coreboot, or
email him directly.

> I appreciate any comment, I know resources are short :-(
> anyways, it was fun and exciting so far :-) thanks!
> regards,
> bernhard

It sounds like you are making very good progress. You are hitting
normal system porting issues. I see that you are using the "old" AMD
fam10 init code. There is no problem with that, but it isn't being
actively developed. You might consider switching to the new AGESA
wrappers. Take a look at the supermicro/h8scm and other AGESA
mainboards in the amd directory to see the new wrappers.


> On Wed, Nov 23, 2011 at 10:29 PM, Bernhard Urban <lewurm at gmail.com> wrote:
>> Hi Chris,
>> I reported flashrom compatibility here:
>> http://www.flashrom.org/pipermail/flashrom/2011-October/008152.html
>> Regarding coreboot support: I'll try to port coreboot to this board. I
>> already have two additional flashchips and at the moment I'm waiting
>> for a serial port connector. I don't know how long it'll talke to port
>> it, but don't except anything useful in less than three months, since
>> I'm new to coreboot (and lazy :-))
>> Bernhard
>> On Sat, Nov 19, 2011 at 6:33 PM, Christopher Huang-Leaver
>> <zeonglow at googlemail.com> wrote:
>>> Hello,
>>> I noticed earlier versions of this board are fully supported, but not this
>>> one.
>>> I have attached the output of,  lspci,  flashrom and dmidecode, if that is
>>> any use to anyone.
>>> The spec sheet is easy to find by typing ASUS M5 A99X into Google.  The
>>> board does have a neat feature of being able to flash the BIOS from within
>>> the BIOS menu, which I have already used to update it.
>>> Many thanks
>>> Chris
> --
> coreboot mailing list: coreboot at coreboot.org
> http://www.coreboot.org/mailman/listinfo/coreboot


More information about the coreboot mailing list