Re: Booting a modular kernel through a multiple streams file / Making Linux multiboot capable and grub loading kernel modules at boot time.

Eric W. Biederman
2001-12-20T06:51:53Z

"H. Peter Anvin" <hpa@zytor.com> writes:

> Followup to: <m1zo4fursh.fsf@frodo.biederman.org>
> By author: ebiederm@xmission.com (Eric W. Biederman)
> In newsgroup: linux.dev.kernel
> >
> > Which just goes to show what a fragile firmware design it is, to have
> > firmware callbacks doing device I/O. I think the whole approach of
> > having firmware callbacks is fundamentally flawed but I'll do my best
> > to keep it working, for those things that care. If it works over 50%
> > of the time I'm happy...
> >
>
> NAK. You can make it perfectly robust thankyouverymuch, as long as
> you don't try to *mix* firmware and poking directly at the
> hardware... this is a classic "who owns what" class problem.

I agree that I could keep it working as well as it ever would. Not
that x86 firmware or any software is ever perfectly working.

At this point in time I live in a world where 99+% of the time the
hardware is owned by the operating system, and the firmware is just
there to get the operating system loaded, and to hold details about
the motherboard that the operating system can not find out by probing
the hardware.

For the cases I find important I get better reliability and
portability by never involving the firmware at all. If there is a
problem with a driver I can fix it. If I want to switch cpus I can.
Admittedly the cost for native drivers is high, but if I don't have to
pay that cost twice and can actually reuse my OS drivers. It isn't a
price I mind paying.

I care about not trashing the firmware so a newer probe routine can
find out more precisely or robustly what is on a motherboard. Having
a reasonable chance that the firmware can also still drive the
hardware is a plus.

I criticize firmware designers, not to attack anyones dependence on
the firmware. But more to make certain I never implement anything
like that.

I don't think I have seen a firmware design where someone has designed
it with the assumption that humans mess up. Instead every firmware
interface I have seen seems to be designed by asking how can I include
every possible desirable feature. Since it is painful to fix or
replace firmware this is a real issue.

I have seen alpha firmware getting confused when the operating system
uses the hardware, when rebooting on the alpha. Which is why I am
sensitive to it.

Eric