imx: mx6qsabrelite: Update the SabreLite README

The information in the SabreLite README is inaccurate and sparse. The
upstream U-Boot can boot the SabreLite from SPI-NOR. Additionally, the
freely available imx_loader tool can be easily used to boot a board with a
corrupted SPI, the official Freescale/NXP manufacturing tools are not
required.

Reformat the document, adding a description of how to boot from SPI-NOR
and adding a brief description of how to recover the board should the
SPI-NOR be corrupted using imx_loader.

Signed-off-by: Martyn Welch <martyn.welch@collabora.com>
Acked-by: Troy Kisky <troy.kisky@boundarydevices.com>
This commit is contained in:
Martyn Welch 2019-02-22 19:05:48 +00:00 committed by Stefano Babic
parent 34808caf7a
commit 4ab7ab0b8f
1 changed files with 104 additions and 57 deletions

View File

@ -1,63 +1,11 @@
U-Boot for the Freescale i.MX6q SabreLite board
===============================================
This file contains information for the port of U-Boot to the Freescale
i.MX6q SabreLite board.
1. Boot source, boot from SD card
---------------------------------
The recent mainline U-Boot for the Freescale i.MX6q SabreLite board supports
boot from SD card only. However, by default, the SabreLite
boards boot from the SPI NOR flash. These boards need to be reflashed with
a small SD card loader to support boot from SD card. This small SD card loader
will be flashed into the SPI NOR. The board will still boot from SPI NOR, but
the loader will in turn request the BootROM to load the U-Boot from SD card.
The SD card loader is available from
https://wiki.linaro.org/Boards/MX6QSabreLite
under a open-source 3-clause BSD license.
To update the SPI-NOR on the SabreLite board without the Freescale
manufacturing tool use the following procedure:
1. Write this SD card loader onto a large SD card using:
sudo dd if=iMX6DQ_SPI_to_uSDHC3.bin of=/dev/sXx
Note: Replace sXx with the device representing the SD card in your system.
Note: This writes SD card loader at address 0
2. Put this SD card into the slot for the large SD card (SD3 on the bottom of
the board). Make sure SW1 switch is at position "00", so that it can boot
from the fuses.
3. Power-up the SabreLite, press 'space' to enter command mode in the U-Boot
(the default one the board is shipped with, starting from the SPI NOR) and
enter the following commands:
MX6Q SABRELITE U-Boot > mmc dev 0
MX6Q SABRELITE U-Boot > mmc read 0x10800000 0 200
MX6Q SABRELITE U-Boot > sf probe
MX6Q SABRELITE U-Boot > sf erase 0 0x40000
MX6Q SABRELITE U-Boot > sf write 0x10800000 0 0x40000
4. done.
In case you somehow do not succeed with this procedure you will have to use
the Freescale manufacturing tool in order to reflash the SPI-NOR.
Note: The board now boots from full size SD3 on the bottom of the board. NOT
the micro SD4/BOOT slot on the top of the board. I.e. you have to use
full size SD cards.
This information is taken from
https://wiki.linaro.org/Boards/MX6QSabreLite
2. Build
1. Build
--------
To build U-Boot for the SabreLite board:
@ -65,8 +13,107 @@ To build U-Boot for the SabreLite board:
make mx6qsabrelite_config
make
To copy the resulting u-boot.imx to the SD card:
sudo dd if=u-boot.imx of=/dev/sXx bs=512 seek=2&&sudo sync
2. Boot from SD card
--------------------
The SabreLite boards boot from the SPI NOR flash. These boards need their SPI
to be reflashed with a small SD card loader to support boot from SD card. The
board will still boot from SPI NOR, but the loader will in turn request the
BootROM to load the U-Boot from SD card.
The SD card loader is available from
https://wiki.linaro.org/Boards/MX6QSabreLite
This is provided under a open-source 3-clause BSD license.
To following procedure can be used to update the SPI-NOR on the SabreLite
board:
1. Write this SD card loader onto a large SD card using:
sudo dd if=iMX6DQ_SPI_to_uSDHC3.bin of=/dev/sXx
Note: Replace sXx with the device representing the SD card in your system.
Note: This writes SD card loader at address 0
2. Put this SD card into the slot for the large SD card (SD3 on the bottom of
the board). Make sure SW1 switch is at position "00", so that it can boot
from the fuses.
3. Power-up the SabreLite, press 'space' to enter command mode in the U-Boot
(the default one the board is shipped with, starting from the SPI NOR) and
enter the following commands:
MX6Q SABRELITE U-Boot > mmc dev 0
MX6Q SABRELITE U-Boot > mmc read 0x10800000 0 200
MX6Q SABRELITE U-Boot > sf probe
MX6Q SABRELITE U-Boot > sf erase 0 0x40000
MX6Q SABRELITE U-Boot > sf write 0x10800000 0 0x40000
4. Write the u-boot.imx produced during the U-Boot build to the SD card:
sudo dd if=u-boot.imx of=/dev/sXx bs=512 seek=2 && sudo sync
Note: Replace sXx with the device representing the SD card in your system.
5. Re-insert the SD card back in the slot for the large SD card and power-cycle
the board.
Note: The board now boots from full size SD3 on the bottom of the board. NOT
the micro SD4/BOOT slot on the top of the board. I.e. you have to use
full size SD cards.
This information originally taken from:
https://wiki.linaro.org/Boards/MX6QSabreLite
3. Boot from SPI NOR
--------------------
The SabreLite board can also boot U-Boot directly from the SPI NOR flash:
1. Power-up the SabreLite, press 'space' to enter command mode in the U-Boot
and enter the following commands:
=> mmc dev 0
=> mmc read 0x10800000 0x400 0x80000
=> sf probe 0
=> sf erase 0 0xc0000
=> sf write 0x10800000 0x400 0x80000
Note: This procedure assumes you have booted using the desired U-Boot from an
SD card as prepared in the previous section. Alternative mechanisms, such
as using tftpboot to copy an alternative U-Boot image into memory can
also be used.
4. Recovering SPI-NOR
---------------------
In case you somehow do not succeed with this procedure you can upload U-Boot
via USB:
1. Download and install the imx_loader following the instructions provided:
https://github.com/boundarydevices/imx_usb_loader
2. Connect the board to USB via the USB OTG port.
3. Make sure SW1 switch is at position "01", so that it can boot from USB OTG.
4. Power-up the SabreLite and run the imx_loader to upload the U-Boot image:
sudo imx_usb u-boot.imx
Note: This will upload and run the U-Boot image in memory, the SPI will not be
reprogrammed and this procedure will need to be repeated if the board is
reset.
5. Use one of previous descriptions to re-flash the SPI-NOR as required.
6. Ensure SW1 is returned to "00" to boot from the fuses once done.
Note: Replace sXx with the device representing the SD card in your system.