guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Question about Guix on Novena - mainly U-Boot


From: Denis 'GNUtoo' Carikli
Subject: Re: Question about Guix on Novena - mainly U-Boot
Date: Sat, 5 Dec 2020 01:33:55 +0100

On Fri, 4 Dec 2020 19:49:37 +0100
Danny Milosavljevic <dannym@scratchpost.org> wrote:> 
> Now I want to make it boot it from SATA instead.
The question is what "boot from SATA" means here, it could mean
different things:
- Have u-boot on the microSD card and load the rootfs from the SATA
  HDD/SSD.
- Make the bootrom load u-boot from the SATA HDD/SSD.

Luckily the I.MX6 SOC is capable of loading u-boot from a SATA HDD/SSD
but it needs to be configured for that.

However it looks like the novena-eeprom utility only somehow does the
former:
https://github.com/xobs/novena-eeprom/blob/master/novena-eeprom.h

In addition I'm unsure if upstream u-boot can parse the sataroot flag
as I didn't find it but I only looked very rapidely and not on the
latest source code.

To configure the I.MX6 SOC to boot from a SATA HDD/SSD you'll have to
dig in the I.MX6Q reference manual and the schematics of the novena to
see how it is configured.

- You have fuses that select a boot mode
- One of the boot mode selected by the fuses configuration enables GPIO
  overrides (this is what we want here).

So with the reference manual and the schematics depending on the
fuses configurations, you could be able to understand the boot order of
the SOC (which peripherals it tries to load u-boot from and in which
order).

And if it's set in GPIO override mode and that the GPIOs are routed to
some switch or jumpers, you can probably manage to change the way it
boots and make sure it tries to load u-boot from the SATA HDD/SSD.

The u-boot source code also may have documentation about that. Some
boards (like the TBS2910) have some documentation on how they are
configured to boot. Since I didn't find the novena in doc/boards, you
might still have some luck if there is some more generic documentation
about booting devices with I.MX6Q.

If the Novena can't boot from SATA as-is, you could try to see if there
isn't a way through the configuration headers to configure the bootrom
to try to boot on SATA somehow. That configuration header (DCD) will
probably need to be on a peripheral that the bootrom tries to boot on.
Booting of I2C eeproms is possible on I.MX6 but again you'll have to
check the documentation to see if it satisfies all requirements
(including if the eeprom is wired to the proper I2C controller
and/or pads to be able to be read from the bootrom).

If not in the worst case you will probably need some minimal code on a
peripheral the bootrom tries to load code from.

There is probably some resources for the Novena (Forums, IRC channels
etc) that already have all theses answers but in any case understanding
a bit of the context here could help parse the answers.

Denis.

Attachment: pgpQI6jMt_o63.pgp
Description: OpenPGP digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]