123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256 |
- From f3767bcb31d0ce5c6381d5f6c33a951774ee6d41 Mon Sep 17 00:00:00 2001
- From: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
- Date: Sat, 30 May 2020 05:24:25 +0200
- Subject: [PATCH 6/6] 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]
- ---
- board/tbs/tbs2910/MAINTAINERS | 1 +
- doc/board/index.rst | 1 +
- doc/board/tbs/index.rst | 9 ++
- doc/board/tbs/tbs2910.rst | 191 ++++++++++++++++++++++++++++++++++
- 4 files changed, 202 insertions(+)
- create mode 100644 doc/board/tbs/index.rst
- create mode 100644 doc/board/tbs/tbs2910.rst
- diff --git a/board/tbs/tbs2910/MAINTAINERS b/board/tbs/tbs2910/MAINTAINERS
- index a3ad2f712a..1e3c0d0ece 100644
- --- a/board/tbs/tbs2910/MAINTAINERS
- +++ b/board/tbs/tbs2910/MAINTAINERS
- @@ -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
- diff --git a/doc/board/index.rst b/doc/board/index.rst
- index 01b233f737..bb4473152a 100644
- --- a/doc/board/index.rst
- +++ b/doc/board/index.rst
- @@ -18,5 +18,6 @@ Board-specific doc
- rockchip/index
- sifive/index
- st/index
- + tbs/index
- toradex/index
- xilinx/index
- diff --git a/doc/board/tbs/index.rst b/doc/board/tbs/index.rst
- new file mode 100644
- index 0000000000..b677bc624f
- --- /dev/null
- +++ b/doc/board/tbs/index.rst
- @@ -0,0 +1,9 @@
- +.. SPDX-License-Identifier: GPL-2.0+
- +
- +TBS
- +===
- +
- +.. toctree::
- + :maxdepth: 2
- +
- + tbs2910
- diff --git a/doc/board/tbs/tbs2910.rst b/doc/board/tbs/tbs2910.rst
- new file mode 100644
- index 0000000000..e97f2b6e61
- --- /dev/null
- +++ b/doc/board/tbs/tbs2910.rst
- @@ -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.
- --
- 2.27.0
|