Re: iMX6 EOMA-68 CPU Card (or rather arguing over what a boot loader should do)
On Thu, Feb 28, 2013 at 7:19 PM, Bill Gatliff <email@example.com> wrote:
> I'm not insisting that we have to bring all this stuff into Linux too.
> In fact, keeping some of these details hidden away inside a true
> bootloader is often a good idea because some low-level hardware
> details Linux just doesn't care about, or they have to be addressed
> before the hardware can deal with the large memory footprint that
> Linux requires.
if you're familiar with the allwinner a10 3-stage initialisation
process, they have a 16k bit of assembly code which conveniently fits
into the 1st level cache of the Cortex A8 processor. i say
"conveniently" but actually i mean "you have no option but to follow
this 3-stage initialisation".
it carries out the low-level initialisation i mentioned earlier [such
as bringing up the DDR3 RAM interface]. this assembly code has been
added into a separate subdirectory of the u-boot sunxi source code
.... but it's actually a completely independent application. this
application, its authors have modified it so that it can do reading
from the SD/MMC card, providing greatly-enhanced functionality over
what allwinner originally provided.
there is absolutely no reason why this application should not read a
linux kernel + initrd and execute that instead of u-boot.
the point i'm making is: the exact same technique could be deployed
on any other hardware, again making it completely unnecessary to make
a dog's dinner out of u-boot or pollute the linux kernel itself with
yet more low-level initialisation.