board: tbs2910: add documentation
This documents the u-boot installation procedure and the hardware in order to get started. Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org> [trini: Add MAINTAINERS entry for doc file per Soeren's request]
This commit is contained in:
parent
9658884f3d
commit
f3767bcb31
@ -4,4 +4,5 @@ S: Maintained
|
||||
F: arch/arm/dts/imx6q-tbs2910.dts
|
||||
F: board/tbs/tbs2910/
|
||||
F: configs/tbs2910_defconfig
|
||||
F: doc/board/tbs/
|
||||
F: include/configs/tbs2910.h
|
||||
|
@ -18,5 +18,6 @@ Board-specific doc
|
||||
rockchip/index
|
||||
sifive/index
|
||||
st/index
|
||||
tbs/index
|
||||
toradex/index
|
||||
xilinx/index
|
||||
|
9
doc/board/tbs/index.rst
Normal file
9
doc/board/tbs/index.rst
Normal file
@ -0,0 +1,9 @@
|
||||
.. SPDX-License-Identifier: GPL-2.0+
|
||||
|
||||
TBS
|
||||
===
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
|
||||
tbs2910
|
191
doc/board/tbs/tbs2910.rst
Normal file
191
doc/board/tbs/tbs2910.rst
Normal file
@ -0,0 +1,191 @@
|
||||
TBS2910 Matrix ARM miniPC
|
||||
=========================
|
||||
|
||||
Building
|
||||
--------
|
||||
To build u-boot for the TBS2910 Matrix ARM miniPC, you can use the following
|
||||
procedure:
|
||||
|
||||
First add the ARM toolchain to your PATH
|
||||
|
||||
Then setup the ARCH and cross compilation environment variables.
|
||||
|
||||
When this is done you can then build u-boot for the TBS2910 Matrix ARM miniPC
|
||||
with the following commands:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
make mrproper
|
||||
make tbs2910_defconfig
|
||||
make
|
||||
|
||||
Once the build is complete, you can find the resulting image as u-boot.imx in
|
||||
the current directory.
|
||||
|
||||
UART
|
||||
----
|
||||
The UART voltage is at 3.3V and its settings are 115200bps 8N1
|
||||
|
||||
BOOT/UPDATE boot switch:
|
||||
------------------------
|
||||
The BOOT/UPDATE switch (SW11) is connected to the BOOT_MODE0 and
|
||||
BOOT_MODE1 SoC pins. It has "BOOT" and "UPDATE" markings both on
|
||||
the PCB and on the plastic case.
|
||||
|
||||
When set to the "UPDATE" position, the SoC will use the "Boot From Fuses"
|
||||
configuration, and since BT_FUSE_SEL is 0, this makes the SOC jump to serial
|
||||
downloader.
|
||||
|
||||
When set in the "BOOT" position, the SoC will use the "Internal boot"
|
||||
configuration, and since BT_FUSE_SEL is 0, it will then use the GPIO pins
|
||||
for the boot configuration.
|
||||
|
||||
SW6 binary DIP switch array on the PCB revision 2.1:
|
||||
----------------------------------------------------
|
||||
On that PCB revision, SW6 has 8 positions.
|
||||
|
||||
Switching a position to ON sets the corresponding
|
||||
register to 1.
|
||||
|
||||
See the following table for a correspondence between the switch positions and
|
||||
registers:
|
||||
|
||||
=============== ============
|
||||
Switch position Register
|
||||
=============== ============
|
||||
1 BOOT_CFG2[3]
|
||||
2 BOOT_CFG2[4]
|
||||
3 BOOT_CFG2[5]
|
||||
4 BOOT_CFG2[6]
|
||||
5 BOOT_CFG1[4]
|
||||
6 BOOT_CFG1[5]
|
||||
7 BOOT_CFG1[6]
|
||||
8 BOOT_CFG1[7]
|
||||
=============== ============
|
||||
|
||||
For example:
|
||||
|
||||
- To boot from the eMMC: 1:ON , 2:ON, 3:ON, 4:OFF, 5:OFF, 6:ON, 7:ON, 8:OFF
|
||||
- To boot from the microSD slot: 1: ON, 2: OFF, 3: OFF, 4: OFF, 5:OFF, 6:OFF,
|
||||
7:ON, 8:OFF
|
||||
- To boot from the SD slot: 1: OFF, 2: ON, 3: OFF, 4: OFF, 5:OFF, 6:OFF, 7:ON,
|
||||
8:OFF
|
||||
- To boot from SATA: 1: OFF, 2: OFF, 3: OFF, 4: OFF, 5:OFF, 6:ON, 7:OFF, 8:OFF
|
||||
|
||||
You can refer to the BOOT_CFG registers in the I.MX6Q reference manual for
|
||||
additional details.
|
||||
|
||||
SW6 binary DIP switch array on the PCB revision 2.3:
|
||||
----------------------------------------------------
|
||||
On that PCB revision, SW6 has only 4 positions.
|
||||
|
||||
Switching a position to ON sets the corresponding
|
||||
register to 1.
|
||||
|
||||
See the following table for a correspondence between the switch positions and
|
||||
registers:
|
||||
|
||||
=============== ============
|
||||
Switch position Register
|
||||
=============== ============
|
||||
1 BOOT_CFG2[3]
|
||||
2 BOOT_CFG2[4]
|
||||
3 BOOT_CFG2[5]
|
||||
4 BOOT_CFG1[5]
|
||||
=============== ============
|
||||
|
||||
For example:
|
||||
|
||||
- To boot from the eMMC: 1:ON, 2:ON, 3:ON, 4:ON
|
||||
- To boot from the microSD slot: 1:ON, 2:OFF, 3:OFF, 4:OFF
|
||||
- To boot from the SD slot: 1:OFF, 2:ON, 3:OFF, 4:OFF
|
||||
|
||||
You can refer to the BOOT_CFG registers in the I.MX6Q reference manual for
|
||||
additional details.
|
||||
|
||||
Loading u-boot from USB:
|
||||
------------------------
|
||||
If you need to load u-boot from USB, you can use the following instructions:
|
||||
|
||||
First build imx_usb_loader, as we will need it to load u-boot from USB. This
|
||||
can be done with the following commands:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
git clone git://github.com/boundarydevices/imx_usb_loader.git
|
||||
cd imx_usb_loader
|
||||
make
|
||||
|
||||
This will create the resulting imx_usb binary.
|
||||
|
||||
When this is done, you can copy the u-boot.imx image that you built earlier
|
||||
in in the imx_usb_loader directory.
|
||||
|
||||
You will then need to power off the TBS2910 Matrix ARM miniPC and make sure that
|
||||
the boot switch is set to "UPDATE"
|
||||
|
||||
Once this is done you can connect an USB cable between the computer that will
|
||||
run imx_usb and the TBS2910 Matrix ARM miniPC.
|
||||
|
||||
If you also need to access the u-boot console, you will also need to connect an
|
||||
UART cable between the computer running imx_usb and the TBS2910 Matrix ARM
|
||||
miniPC.
|
||||
|
||||
Once everything is connected you can finally power on the TBS2910 Matrix ARM
|
||||
miniPC. The SoC will then jump to the serial download and wait for you.
|
||||
|
||||
Finlay, you can load u-boot through USB with with the following command:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
sudo ./imx_usb -v u-boot.imx
|
||||
|
||||
The u-boot boot messages will then appear in the serial console.
|
||||
|
||||
Install u-boot on the eMMC:
|
||||
---------------------------
|
||||
To install u-boot on the eMMC, you first need to boot the TBS2910 Matrix ARM
|
||||
miniPC.
|
||||
|
||||
Once booted, you can flash u-boot.imx to mmcblk0boot0 with the
|
||||
following commands:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
sudo echo 0 >/sys/block/mmcblk0boot0/force_ro
|
||||
sudo dd if=u-boot.imx of=/dev/mmcblk0boot0 bs=1k seek=1; sync
|
||||
|
||||
Note that the eMMC card node may vary, so adjust this as needed.
|
||||
|
||||
Once the new u-boot version is installed, to boot on it you then need to power
|
||||
off the TBS2910 Matrix ARM miniPC.
|
||||
|
||||
Once it is off, you need make sure that the boot switch is set to "BOOT" and
|
||||
that the SW6 switch is set to boot on the eMMC as described in the previous
|
||||
sections.
|
||||
|
||||
If you also need to access the u-boot console, you will also need to connect an
|
||||
UART cable between the computer running imx_usb and the TBS2910 Matrix ARM
|
||||
miniPC.
|
||||
|
||||
You can then power up the TBS2910 Matrix ARM miniPC and U-Boot messages will
|
||||
appear in the serial console.
|
||||
|
||||
Booting a distribution:
|
||||
-----------------------
|
||||
When booting on the TBS2910 Matrix ARM miniPC, by default U-Boot will first try
|
||||
to boot from hardcoded offsets from the start of the eMMC. This is for
|
||||
compatibility with the stock GNU/Linux distribution.
|
||||
|
||||
If that fails it will then try to boot from several interfaces using
|
||||
'distro_bootcmd': It will first try to boot from the microSD slot, then the
|
||||
SD slot, then the internal eMMC, then the SATA interface and finally the USB
|
||||
interface. For more information on how to configure your distribution to boot,
|
||||
see 'README.distro'.
|
||||
|
||||
Links:
|
||||
------
|
||||
- https://www.tbsdtv.com/download/document/tbs2910/TBS2910-Matrix-ARM-mini-PC-SCH_rev2.1.pdf
|
||||
- The schematics for the revision 2.1 of the TBS2910 Matrix ARM miniPC.
|
||||
- https://cache.freescale.com/files/32bit/doc/ref_manual/IMX6DQRM.pdf - The
|
||||
SoC reference manual for additional details on the BOOT_CFG registers.
|
Loading…
Reference in New Issue
Block a user