[coreboot] G505s status (and test report)
Felix Held
felix-coreboot at felixheld.de
Tue Nov 17 21:04:51 CET 2015
Hi Florentin!
> As for adding support for Bolton and refactoring and unifying the FCH code, I would like to pick up the task, because I want to invest myself in coreboot dev again and I hope that I will have some time to spend in the near future...
Great!
IIRC someone in the IRC channel was also interested in the Bolton FCH;
maybe you could work on that together. I don't remember the nickname though.
> But I need to understand a little bit more the current architecture of coreboot and also the impact of recent developpements like the (proposed) switch from AGESA to native init..
> But just to have an idea of the complexity of this task (refactoring amd fch code) can you give me some details of what needs to be done?
The FCH code of AGESA fam12, fam15tn and fam16kb isn't in a separate
directory, but inside AGESA vendorcode. Which FCH code gets build,
doesn't depend not on the southbridge Kconfig setting. Both fam12 and
fam15tn trees include support for Hudson; the version in fam15tn is
newer and likely has some bugfixes. The FCH code in fam16kb is different
(Yangtze), but not too different.
I'd try to move the FCH support out of the different vendorcode/agesa
subtrees into one tree structure in vendorcode/ages. Maybe see
http://review.coreboot.org/#/c/7782/ for something to begin your work.
When moving the code out of the AGESA subtrees you should adapt the
Kconfig stuff, so that the selection of the FCH code depends on the
selected southbridge. That might involve some patching to the subtrees
where you factor out the FCH support.
When you have factored out the FCH vendorcode and somehow merged it into
one directory structure where only the stuff relevant for one platform
gets built, it should be relatively easy to extend the support for
Bolton FCH.
On the AGESA stuff: It seems that the internal tree has support for all
different families in one tree and only the source code which is
relevant for one family gets built for that family. Before the code drop
for each family everything unneeded for that family was removed and the
remaining stuff of that tree was released for that family.
I can really recommend the 3 way folder compare mode of meld for the
task of merging the 3 different FCH support code subtrees. fam12 and
fam15tn have code for the same chips, but slightly different code; i'd
use the newer version (fam15tn), since it likely contains some bugfixes.
To get the XHCI support on Bolton working, you'd at least have to patch
Hudson2XhciResetService.c; in that file the code matches onto the PCI ID
of the XHCI controller, which changed between Hudson and Bolton. You
likely need to patch some other stuff as well to get the XHCI controller
working.
When you have moved the FCH code out of the AGESA subtrees, it would be
really great if you'd write native initialization for the FCH, which can
be uses from both AGESA-based (maybe some glue code to AGESA is still
needed for that) and native init based boards, but thats likely a
non-trivial task.
I hope that this helps you a bit; that was more or less everything i
remember from working on that. The current state of the code isn't
pretty, but you'll see that quite quickly...
Also have a look at my (unfinished) Bolton support without working XHCI.
Maybe it just needs the small patch that it also matches on the PCI ID
of the XHCI controller in Bolton, but well, that would just be a hack.
Regards
Felix
More information about the coreboot
mailing list