Difference between revisions of "Minnowboard:SPI Boot flash"

From eLinux.org
Jump to: navigation, search
(Applications and Hardware)
m (Steps)
(14 intermediate revisions by 2 users not shown)
Line 1: Line 1:
= SPI Serial Flash =
 
 
 
the [[Minnowboard:MinnowBoard|MinnowBoard]] uses a SPI based serial flash memory to load the initial code into the Intel Atom E640 series processor. The MinnowBoard uses a WinBond W25Q32 ([[media:winbond-w25q32.pdf|datasheet]]) which has a total of 4096KB of storage which can be flashed with a UEFI image or other custom firmware.
 
the [[Minnowboard:MinnowBoard|MinnowBoard]] uses a SPI based serial flash memory to load the initial code into the Intel Atom E640 series processor. The MinnowBoard uses a WinBond W25Q32 ([[media:winbond-w25q32.pdf|datasheet]]) which has a total of 4096KB of storage which can be flashed with a UEFI image or other custom firmware.
  
Line 7: Line 5:
 
the MinnowBoard has a 2x4 header that has 0.1" spacing for programming the SPI based serial flash memory.
 
the MinnowBoard has a 2x4 header that has 0.1" spacing for programming the SPI based serial flash memory.
  
table
+
{|border="3"
 +
|+Programming Header
 +
!Pin number||Main Function||Note
 +
|-
 +
| 1
 +
| +3.3V Power
 +
| Supports on +3.3V
 +
|-
 +
| 2
 +
| GND
 +
| system ground
 +
|-
 +
| 3
 +
| nCS
 +
| Chip Select Active Low
 +
|-
 +
| 4
 +
| SCK
 +
| SPI Clock
 +
|-
 +
| 5
 +
| MISO
 +
| Data Output from serial flash
 +
|-
 +
| 6
 +
| MOSI
 +
| Data Input to serial flash
 +
|-
 +
| 7
 +
| NC
 +
| No Connection
 +
|-
 +
| 8
 +
| nPRG_EN
 +
| Program Enable Active Low
 +
|}
 +
 
 +
= Applications and Hardware =
 +
 
 +
*[http://flashrom.org/Flashrom Flashrom] is an open source utility that allows you to work with the SPI based serial flash memory on the MinnowBoard.
 +
* Flashrom supports a wide range of flash devices ([http://flashrom.org/Supported_hardware Supported Hardware]) including the WinBond W25Q32.
 +
* Flashrom can automatically detect the presence of the WinBond W25Q32 and provide full read/erase/write functionality.
 +
* Flashrom can use the many open as well as proprietary hardware tools such as
 +
** [http://www.dlpdesign.com/usb/2232h.shtml DLP-2232H] from [http://www.dlpdesign.com DLPDesign]
 +
** [http://www.ftdichip.com/Products/ICs/FT2232H.htm FTDI FT2232H] generic breakout boards
 +
** [[Flyswatter2]] from [http://www.tincantools.com TinCanTools]
 +
** [http://dangerousprototypes.com/docs/Bus_Pirate Bus Pirate] from [http://www.dangerousprototypes.com Dangerous Prototypes]
 +
** [http://www.dediprog.com/SPI-flash-in-circuit-programming/ISP-Evaluation-Kit SF100] from [http://www.dediprog.com DediProg]
 +
** [https://www.kernel.org/doc/Documentation/spi/spidev SPIDev] userspace interface for the Linux Kernel
 +
 
 +
= Updating MinnowBoard Firmware =
 +
 
 +
In this section we will discuss how to update the default firmware on your MinnowBoard which is [http://uefidk.intel.com/learn UEFI]. You will also need a USB flash drive '''formatted in FAT32 format''' with a minimum of 8MB of free space for this guide.
 +
 
 +
== Steps ==
 +
 
 +
1. Fire up your browser and go to the [http://uefidk.intel.com/content/minnowboard-uefi-firmware Intel MinnowBoard UEFI Firmware site].
 +
 
 +
2. Next click on the 'Download' button.
 +
 
 +
[[File:Mfirmware7.jpg|700px|Intel MinnowBoard UEFI Firmware]]
 +
 
 +
 
 +
3. You will then have to accept the MinnowBoard End User License Agreement.
 +
 
 +
 
 +
[[File:Mfirmware8.jpg|700px|MinnowBoard End User License Agreement]]
 +
 
 +
4. Then download the appropriate firmware version. At the time of writing this guide, the latest firmware versions available were 0.93 and 0.94.
 +
 
 +
 
 +
[[File:Mfirmware6.jpg|700px|Download the UEFI firmware]]
 +
 
 +
 
 +
5. Extract the zip file that you just downloaded. From that copy the two files: FirmwareUpdate.efi, MINNOW.fd to your USB flash drive.
 +
 
 +
 
 +
[[File:Mfirmware9.jpg|700px|Copy the firmware to the flash drive]]
 +
 
 +
 
 +
6. Now, remove the microSD card from your MinnowBoard. Then connect the flash drive to the USB port on the MinnowBoard. Depending upon your operating system, configure accordingly to get access to MinnowBoard's serial console as documented [http://elinux.org/Minnowboard:Booting_Angstrom here]. Then, power it ON. You should see the UEFI Interactive Shell. As you can see from the figure below that the firmware version on my MinnowBoard is 0.90 and I will update it now to 0.94.
 +
 
 +
 
 +
[[File:Mfirmware1.jpg|1000px|UEFI Interactive Shell]]
 +
 
 +
 
 +
7. Now navigate to the USB storage by typing FSx(usually it is FS0) in the terminal. Here 'x' is replaced by the number from the file system mapping table. The command is case-insensitive.
 +
 
 +
FS0
  
 +
[[File:Mfirmware2.jpg|Navigate to the flash storage]]
  
= Applications and Hardware =
+
8. Now run the command below in your terminal to update the firmware.
 +
 
 +
FirmwareUpdate -f <firmware image>
 +
 
 +
In our case, the firmware image is "MINNOW.fd". So, the command will become:
 +
 
 +
FirmwareUpdate -f MINNOW.fd
 +
 
 +
[[File:Mfirmware5.jpg|Updating the firmware]]
 +
 
 +
 
 +
9. Once the firmware resets the board, you should see the new firmware version in the UEFI Interactive shell
 +
 
 +
[[File:Mfirmware4.jpg|Updated firmware]]
  
[http://flashrom.org/Flashrom Flashrom] is an open source utility that allows you to work with the SPI based serial flash memory on the MinnowBoard. Flashrom supports a wide range of flash devices ([http://flashrom.org/Supported_hardware]) including the WinBond W25Q32. Flashrom can automatically detect the presence of the WinBond W25Q32 and provide full read/erase/write functionality. Flashrom can use the many open as well as proprietary hardware tools such as the [[Flyswatter2]] from [tincantools.com], the [http://dangerousprototypes.com/docs/Bus_Pirate Bus Pirate] from [dangerousprototypes.com], and the [http://www.dediprog.com/SPI-flash-in-circuit-programming/ISP-Evaluation-Kit SF100] from [dediprog.com].
+
[[Category: MinnowBoard]]
 +
[[Category: CircuitCo]]

Revision as of 13:46, 8 November 2013

the MinnowBoard uses a SPI based serial flash memory to load the initial code into the Intel Atom E640 series processor. The MinnowBoard uses a WinBond W25Q32 (datasheet) which has a total of 4096KB of storage which can be flashed with a UEFI image or other custom firmware.

Programming Interface

the MinnowBoard has a 2x4 header that has 0.1" spacing for programming the SPI based serial flash memory.

Programming Header
Pin number Main Function Note
1 +3.3V Power Supports on +3.3V
2 GND system ground
3 nCS Chip Select Active Low
4 SCK SPI Clock
5 MISO Data Output from serial flash
6 MOSI Data Input to serial flash
7 NC No Connection
8 nPRG_EN Program Enable Active Low

Applications and Hardware

Updating MinnowBoard Firmware

In this section we will discuss how to update the default firmware on your MinnowBoard which is UEFI. You will also need a USB flash drive formatted in FAT32 format with a minimum of 8MB of free space for this guide.

Steps

1. Fire up your browser and go to the Intel MinnowBoard UEFI Firmware site.

2. Next click on the 'Download' button.

Intel MinnowBoard UEFI Firmware


3. You will then have to accept the MinnowBoard End User License Agreement.


MinnowBoard End User License Agreement

4. Then download the appropriate firmware version. At the time of writing this guide, the latest firmware versions available were 0.93 and 0.94.


Download the UEFI firmware


5. Extract the zip file that you just downloaded. From that copy the two files: FirmwareUpdate.efi, MINNOW.fd to your USB flash drive.


Copy the firmware to the flash drive


6. Now, remove the microSD card from your MinnowBoard. Then connect the flash drive to the USB port on the MinnowBoard. Depending upon your operating system, configure accordingly to get access to MinnowBoard's serial console as documented here. Then, power it ON. You should see the UEFI Interactive Shell. As you can see from the figure below that the firmware version on my MinnowBoard is 0.90 and I will update it now to 0.94.


UEFI Interactive Shell


7. Now navigate to the USB storage by typing FSx(usually it is FS0) in the terminal. Here 'x' is replaced by the number from the file system mapping table. The command is case-insensitive.

FS0

Navigate to the flash storage

8. Now run the command below in your terminal to update the firmware.

FirmwareUpdate -f <firmware image>

In our case, the firmware image is "MINNOW.fd". So, the command will become:

FirmwareUpdate -f MINNOW.fd

Updating the firmware


9. Once the firmware resets the board, you should see the new firmware version in the UEFI Interactive shell

Updated firmware