[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: gnu/system/u-boot.scm
From: |
Danny Milosavljevic |
Subject: |
Re: gnu/system/u-boot.scm |
Date: |
Fri, 22 Jul 2016 20:21:57 +0200 |
Hi,
On Fri, 22 Jul 2016 02:59:34 -0700
Chris Marusich <address@hidden> wrote:
> I'm not familiar with u-boot, but based on recent emails, it sounds like it's
> important for getting GuixSD to run on ARM.
Yeah, because many ARM platforms don't have a BIOS (or any similar
replacement), the bootloader has to do things you wouldn't believe. U-Boot has
support for that.
There would be support for Grub as an U-Boot payload (in a fork), but I figured
it's not really necessary [for now?] and complicates things too much - see how
similar the U-Boot config body is to the Grub config body...
> I wonder if it would be possible to create a bootloader abstraction of
> some kind so that the installation mechanism can work with either u-boot
> or grub, without caring about which one it uses? It would be nice if
> the installation mechanism were generic enough so that the same
> mechanism could be used to install either bootloader.
That would be nice. I'm not sure whether different bootloaders are similar in
their installation mechanism, though.
ARM platforms have... weird ways of booting - so getting all ARM boards to boot
in the first place is difficult. Supporting those and Grub should be easy
afterwards.
> > (define-record-type* <u-boot-configuration>
> > u-boot-configuration make-u-boot-configuration
> > u-boot-configuration?
> > (board u-boot-configuration-board) ; string ; not
> > optional!
> > (u-boot u-boot-configuration-u-boot ; package
> > (default (@ (gnu packages u-boot) (make-u-boot-package
> > board))))
> > (device u-boot-configuration-device) ; string
> > (menu-entries u-boot-configuration-menu-entries ; list
> > (default '()))
> > (default-entry u-boot-configuration-default-entry ; integer
> > (default 0))
> > (timeout u-boot-configuration-timeout ; integer
> > (default 5)))
>
> This looks a little different from the grub-configuration record type
> (defined in guix/gnu/system/grub.scm).
It should be very similar.
I added "board" and removed the theme stuff since it's unsupported. I don't
think leaving the theme stuff in there would hurt either - it would just be
ignored.
>How do you intend to integrate it with the existing bootloader installation
>mechanism?
I have no idea yet. Have to read up on what's there first :)