[Automated-testing] minnowboard boot & control

William Mills wmills at ti.com
Mon Feb 10 08:46:32 PST 2014


All,

I just realized that Michael's answers did not go to the list.
As I suspect many people on the list may want the answers I have fwd.

With the mix of top and inline posting, the thread has become a bit
messy.  I will post a summary at the top here to my initial theory.

 >  > At a minimum I think we can:
 >  > * Interrupt boot via serial control and change boot order

I tested and it seems the UEFI firmware always gives 4 seconds for a 
user to interrupt via the serial port before it tries the remembered
or default boot order.  This should be all we need.

 >  > * Assume no one trashes SPI in the general case

The SPI flash in use actually has several methods of locking the flash
(w/o hw change) but we will assume none of these are in use.

 >  > * Possibly rig & automate SPI flasher tool to recover board for >
 >  > test beds that require extra robustness

I have ordered parts to try this out.  (Including a 2nd minnowboard.)

I was hands on with my first minnowboard over the weekend.
I updated to 1.00 of UEFI firmware.
I saw IPv4 & IPv6 in boot options somewhere (bcfg command?)
I have not tested network boot yet.

More inline:

On 02/04/2014 07:20 PM, Krau, Michael P wrote:
> Hello Bill,
>
> Rather than try to put my answers in line, I will try to respond here
> and answer your questions.  Though first off I will state that Scott’s
> responses were correct, so while I may repeat some of them, the ones I
> miss are correct.
>
> First off, ALL answers are related to the 1.00 version of the Firmware
> for the MinnowBoard.  Older versions of the firmware are different, and
> are no longer under active support, the 1.00 was that much improvement
> that it is just best to go forward with it.
>
> The SP1 part is not protected, the MinnowBoard is a development vehicle,
> so the hardware is open.  There is even an SPI header on the board to
> enable direct programing of the flash via an external programmer (like a
> dedi-prog).  The flash has no ‘bootblock’ and recovery is via external
> programming rather than internal software infrastructures.
>
> On the MinnowBoard, the SPI flash contains the platform initialization
> firmware, so the first instructions fetched will always be from the SPI
> part.
>
> The flow is:
>
> ·Initialize the hardware
>
> ·Establish the UEFI pre-boot environment
>

It appears to pause here for 4 seconds to allow user to input ESC via 
the serial port.  If the user does that it appears to go directly to
the Shell.

> ·Boot to selected device (if a device is selected)
>
> ·Fall back to UEFI shell failing boot order (or boot to shell if
> selected up front).
>
> The firmware is full UEFI and I believe Full UEFI shell support
>
> The system will boot to the last selected boot device, if it is
> available for boot, or fall back to boot order ending with the shell,
> failing that boot option.
>

Again, this appears to be the case if the user does not input ESC in
the first 4 seconds from the serial port.

> By ‘exit’ from shell, you can see the boot options and select the boot
> device.  Boot order is not controlled by any buttons, but by user
> selection (first attempted boot), then list order.  The menu is:
>
> Shell – The UEFI shell
>
> UiApp – The device manager of the platform (think setup)
>

Does this app interact with the user via serial port or keyboard/video?

> EFI USB Device - the USB drive or SD drive on the platform (there may be
> multiple of these, for the SD and add-on thumb drives)
>
> SATA (if a device is attached and identified)
>
> Eth0-IPv4 – Boot from network under IPv4
>
> Eth0-IPv6 - Boot from network under IPv6
>
> Yes, boot from network does work, from the onboard Ethernet port (you
> will need a PXE server on the other end to provide the boot image to the
> system though J).
>

Yes, I saw it in the boot options but have not tried to make it work
yet.

> Thank you,
>
> Michael Krau
>
> -----Original Message-----
> From: Scott Garman [mailto:scott.a.garman at intel.com]
> Sent: Tuesday, February 04, 2014 3:06 PM
> To: William Mills; danders at circuitco.com; Krau, Michael P
> Subject: Re: minnowboard boot & control
>
> Hi Bill.
>
> Michael, can you clarify answers to the questions I'm not certain of below?
>
> Thanks,
>
> Scott
>
> On 02/04/2014 01:45 PM, William Mills wrote:
>
>  > Dave/Scott/All,
>
>  >
>
>  > I am trying to understand the Minnowboard boot flow and how it can be
>
>  > controlled from a test bed.
>
>  >
>
>  > On BeagleBone Black:
>
>  > The Si Boot ROM can boot from TFTP.
>
>  > The Si Boot ROM can boot from eMMC or SD.
>
>  > With relay controlled pull-ups/downs I can control the boot device.
>
>  >
>
>  > With this control I can recover a device regardless of what a previous
>
>  > test has done to eMMC or SD Card.
>
>  > (My work is documented at:
>
>  > http://processors.wiki.ti.com/index.php/BeagleBone_in_a_Board_Farm
>
>  > )
>
>  >
>
>  > My assumptions & questions about Minnow and it's UEFI:
>
>  > A1) always boots from SPI
>
> By this I'm sure you mean it will load the firmware from SPI before
> booting anything, which is true.
>
>  > Q1) Does SPI have a write protect jumper or other means to protect SPI
>
>  > contents via external control (e.g. relay)
>
> Not sure, Michael?
>
>  > A2) SPI contains UEFI
>
> Yes.
>
>  > Q2) Does SPI contain all of UEFI?  Does it have the Shell?
>
> Yes and yes.
>
>  >      Are there important components that always come from
>
>  >      the UEFI boot partition?
>
> Now I'll assume you're talking about a UEFI boot partition on media
> (e.g, a microSD card). Yes, you need a UEFI-compatible bootloader stored
> within a standardized directory format (/EFI/<vendor>).
>

My basic question here was, are there any firmware drivers or updates in 
the UEFI partition that need to be present to get the shell up & running.

The answer is no, SPI has everything you need.

Scott's answer is true also and relates to the requirements to boot an
OS from media.


>  > Q3) Does UEFI look at any pins or buttons to effect boot order
>
> I don't believe so, Michael?
>
>  > Q4) Does UEFI support user configuration of boot order?
>
>  >      is that preference stored in SPI?
>
> Yes and yes.
>
>  > Q5) Does UEFI support boot from network?
>
> Yes, and to do this, I you'll need v1.00 of the MinnowBoard firmware,
> which was released in December. I believe we support PXE boot with that,
> although I haven't personally tested it. Michael, can you confirm what
> options there are for networking booting?
>
> Are you running fw v1.00? That could explain your troubles.
>
>  > At a minimum I think we can:
>
>  > * Interrupt boot via serial control and change boot order
>
>  > * Assume no one trashes SPI in the general case
>
>  > * Possibly rig & automate SPI flasher tool to recover board for test
>
>  > beds that require extra robustness
>
>  >
>
>  > So far I have read:
>
>  > http://elinux.org/Minnowboard:SPI_Boot_flash
>
>  > http://www.elinux.org/Minnowboard:Booting_Angstrom
>
>  > http://elinux.org/Minnowboard:Debian_Bare_Minimum_Bootstrapping
>
>  > http://www.minnowboard.org/technical-features/
>
>  > Minnow Board UEFI 1.0 release
>
>  >      Release Notes  **
>
>  >      doc/dediprog ...
>
>  >      doc/serial console ...
>
>  >      doc/flash utility
>
>  >
>
>  > ** After reading the release notes I still do not understand:
>
>  > - if network boot is or is not working.  It is in the fixed and known
>
>  > issue lists.  It is not in the "fixed" boot order anywhere.
>
>  > - It appears that once you boot from SD or USB, there is no option to
>
>  > interrupt to get a shell if that SD or USB image no longer works.
>
>  > Is that correct?
>
> That might be true, Michael?

This does not appear to be an issue.  It always waits 4 seconds for the
user to interrupt even after a successful boot.

What the successful boot does appear to do is put that option first in
the boot order for next time.  So a successful boot from SATA will cause 
SATA to be tried first after the 4 seconds pause.

>
>  > I do have a Minnowboard at home but I hate to admit it is still in the
>
>  > box.  I did look at it and I think I booted it once but was being
>
>  > "disciplined" and did not study at that time.  I have yet to pick it
>
>  > up again.  I'll rectify that soon.
>
> Depending on how old it is, I'm guessing you need to flash to the latest
>
> firmware:
>
> http://uefidk.intel.com/content/minnowboard-uefi-firmware
>
> Scott
>
> --
>
> Scott Garman
>
> Embedded Linux Engineer - Yocto Project
>
> Intel Open Source Technology Center
>


More information about the automated-testing mailing list