Group: Hardware/Computers/Single Board Computers/TBS2910 Matrix ARM mini PC

From LibrePlanet
Jump to: navigation, search
(Boot settings)
(Boot settings)
Line 19: Line 19:
 
SRC_SBMR2 is at 0x020D801C according to the [https://cache.freescale.com/files/32bit/doc/ref_manual/IMX6DQRM.pdf IMX6DQRM.pdf] reference manual.
 
SRC_SBMR2 is at 0x020D801C according to the [https://cache.freescale.com/files/32bit/doc/ref_manual/IMX6DQRM.pdf IMX6DQRM.pdf] reference manual.
 
<pre>
 
<pre>
Matrix U-Boot> md.w 0x020D801C 2
+
[root@parabola ~]# devmem2 0x020D801C w
020d801c: 0001 0200                                  ....
+
/dev/mem opened.
 +
Memory mapped at address 0xb6fb9000.
 +
Value at address 0x20D801C (0xb6fb901c): 0x2000001
 
</pre>
 
</pre>
  
BMOD[1:0] are the bits 24 and 25 of that register, which are zero here.
+
BMOD[1:0] are the bits 24 and 25 of that register, which are 10.
  
 
BMOD is a register field that correspond to the BOOT_MODE settings, which are explained in the table below or the table in the "8.2.1 Boot mode pin settings" chapter of the reference manual.
 
BMOD is a register field that correspond to the BOOT_MODE settings, which are explained in the table below or the table in the "8.2.1 Boot mode pin settings" chapter of the reference manual.
Line 44: Line 46:
 
|}
 
|}
  
So we are in "Boot From Fuses" mode.
+
So we are in "Internal Boot" mode.
  
 
<pre>
 
<pre>
Matrix U-Boot> md.w 0x020D801C 2
+
[root@parabola ~]# devmem2 0x020D801C w
020d801c: 0001 0200                                  ....
+
/dev/mem opened.
 +
Memory mapped at address 0xb6fb9000.
 +
Value at address 0x20D801C (0xb6fb901c): 0x2000001
 
</pre>
 
</pre>
 
The value of BT_FUSE_SEL3 is available SRC_SBMR2[4] so here it's 0, which doesn't make sense as the board is booting.
 
 
From the Reference manual:
 
<pre>
 
If set to Boot From Fuses, the boot flow is controlled by the BT_FUSE_SEL eFUSE
 
value. If BT_FUSE_SEL = 0, indicating that the boot device (for example, Flash, SD/
 
MMC) has not yet been programmed, the boot flow jumps directly to the Serial
 
Downloader. If BT_FUSE_SEL = 1, the normal boot flow is followed, where the ROM
 
attempts to boot from the selected boot device.
 
</pre>
 
 
TODO: Check u-boot md convensions
 

Revision as of 22:21, 11 January 2020

Introduction

The TBS2910 Matrix ARM mini PC is an I.MX6 Quad SBC.

Upstream support

u-boot: tbs2910_defconfig

Linux: imx6q-tbs2910.dts

Boot settings

The board I have has the following markings on the PCB: TBS-2910V23

The schematics don't seem to fully match as I've a switch component with 4 switches inside whereas the schematics have 8.

Hence my need to document the boot settings.

SRC_SBMR2 is at 0x020D801C according to the IMX6DQRM.pdf reference manual.

[root@parabola ~]# devmem2 0x020D801C w
/dev/mem opened.
Memory mapped at address 0xb6fb9000.
Value at address 0x20D801C (0xb6fb901c): 0x2000001

BMOD[1:0] are the bits 24 and 25 of that register, which are 10.

BMOD is a register field that correspond to the BOOT_MODE settings, which are explained in the table below or the table in the "8.2.1 Boot mode pin settings" chapter of the reference manual.

BOOT_MODE[1:0] Boot Type
00 Boot From Fuses
01 Serial Downloader
10 Internal Boot
11 Reserved

So we are in "Internal Boot" mode.

[root@parabola ~]# devmem2 0x020D801C w
/dev/mem opened.
Memory mapped at address 0xb6fb9000.
Value at address 0x20D801C (0xb6fb901c): 0x2000001