mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-08-21 17:38:51 +09:00
![Martyn Welch](/assets/img/avatar_default.png)
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>
120 lines
3.6 KiB
Plaintext
120 lines
3.6 KiB
Plaintext
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. Build
|
|
--------
|
|
|
|
To build U-Boot for the SabreLite board:
|
|
|
|
make mx6qsabrelite_config
|
|
make
|
|
|
|
|
|
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.
|
|
|