On 2011.07.12 07:15, Andrew Goodbody wrote:
Instead of attempting (and failing) to achieve universal support
I'll start with the aside, that if "failing" means instantly supporting
more than 90% of Intel based motherboards produced in the last 10 years
(if you have an ICH# or a 440BX controller, you should be good, as you
only have one clock for Super I/O, that isn't programmable), as well as
a large chunk of AMD motherboards (once the SB clock programming issue
is solved, which I'm pretty sure can be done), then I wonder how the
rate of support that coreboot has with regards to motherboards produced
in the last few years would qualify...
Please do not misconstrue this as criticism of coreboot, as it isn't.
It's just that, if I were to start coreboot development, I sure wouldn't
mind if someone else had already sorted some kind of bare metal console
access for my platform, even if that applied "only" to 3/4th of all x86
motherboards produced in the last 10 years...
I would
rather see a framework that could easily be configured with the
appropriate SIO support and allow for board specific configuration if
necessary. This should remove a lot of the complexity that gives very
little advantage in trying for universal support. coreboot is built as
hardware specific and I see no reason why the panic room support should
not be the same.
I guess we have different definition of a panic-room then.
From my dealings with Realtek SoCs, the way I see a panic-room is
something that is as hardware agnostic as possible. In the ideal case,
the panic-room is implemented ondie directly on a CPU that has an UART
unit, and therefore with no possible knowledge of the hardware
surrounding it. Such knowledge is to be provided by the user. This is
what the RTD1283 provides for instance (8KB bootblock, with console and
Y-modem upload in CPU ROM), and it is extremely powerful. The panic-room
is then intended as a means for users to perform hardware initialization
such as RAM or Flash access, as well as any other task they might
fathom. Hence, this is the implementation of a panic-room I have been
trying to follow, as it is the one that is most versatile and helpful to
users IMO.
Choosing the SIO support to configure for the panic
room can be easily done from the output of superiotool.
Provided superiotool knows about the chip, which may not be the case
yet. If Nuvoton introduces a new chip tomorrow, for which we haven't
seen a datasheet yet, I'm pretty sure UBRX will work just fine.
Superiotool, not so much... Also picking a coreboot BIOS from one
machine and soldering it into another, with the expectation that even if
the motherboards have nothing in common but the flash they use,
panic-room access will be available, can have its advantages, be it only
for ghetto-style budget-constrained tinkerers.
Additionally if it was done in such a way that the serial transport
could be easily replaced by USB debug instead then we could really have
something that would be useful for new boards.
Well, depending how much space EHCI/xHCI USB support would take, I don't
see why UBRX wouldn't be able to provide both. But right now,
considering that there is still an awful lot of modern yet legacy based
systems out there that could benefit from coreboot support,
concentrating on native UART doesn't seem like a bad idea.
Regards,
/Pete
--
coreboot mailing list: coreboot@coreboot.org
http://www.coreboot.org/mailman/listinfo/coreboot