Difference between revisions of "Minnowboard:SPI Boot flash"
(→Applications and Hardware) |
m (→Steps) |
||
(12 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
− | |||
− | |||
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]] | ||
− | + | 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]] | ||
− | [ | + | [[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.
Contents
Programming Interface
the MinnowBoard has a 2x4 header that has 0.1" spacing for programming the SPI based serial flash memory.
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
- 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 (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
- DLP-2232H from DLPDesign
- FTDI FT2232H generic breakout boards
- Flyswatter2 from TinCanTools
- Bus Pirate from Dangerous Prototypes
- SF100 from DediProg
- 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 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.
3. You will then have to accept the 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.
5. Extract the zip file that you just downloaded. From that copy the two files: FirmwareUpdate.efi, MINNOW.fd to your USB 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.
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
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
9. Once the firmware resets the board, you should see the new firmware version in the UEFI Interactive shell