On Monday 29 December 2008, Stijn Devriendt wrote:
> Setting the pinmux layer and 3V3PWDN registers is not
> the kernel's responsibility, it's the bootloader's.

If there's a consensus in the Linux community on such
issues, that's not it.  Instead, the logic goes like:

 - Most bootloaders are broken to some degree;
   they're not often verified as doing much more
   than being able to load and start a kernel.
   The kernel can't trust that it's only started
   from a mythical "perfect boot loader".

 - Of the N drivers that need to work on any given
   board, the boot loader only needs to configure
   hardware for a small handful of them.  The rest
   need to be configured by the OS kernel.

 - It's worse for development boards, which need
   to be able to support a variety of add-ons that
   need different pin configurations.  Boot loaders
   can't, in general, know what boards to set up.

 - So the kernel *must* have code to properly set
   up almost everything.  (Usually Linux doesn't
   touch the main PLL settings though, so if the
   boot loader detunes the CPU, the kernel won't
   change that.)

This isn't to deny that having the bootloader set
things up is a Good Thing.  It's just that the OS
can't expect every bootloader to do that right...
and in fact it's got to work right when running
on boards with semi-broken boot loaders too.

- Dave

_______________________________________________
Davinci-linux-open-source mailing list
Davinci-linux-open-source@linux.davincidsp.com
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source

Reply via email to