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

From LibrePlanet
Jump to: navigation, search
(Boot settings)
 
(6 intermediate revisions by the same user not shown)
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.
+
The value of BT_FUSE_SEL is available SRC_SBMR2[4] which is 0 here.
  
From the Reference manual
+
From the reference manual:
 
<pre>
 
<pre>
If set to Boot From Fuses, the boot flow is controlled by the BT_FUSE_SEL eFUSE
+
If BT_FUSE_SEL = 0, specific boot configuration parameters may be set using
value. If BT_FUSE_SEL = 0, indicating that the boot device (for example, Flash, SD/
+
GPIO pins rather than eFUSEs. The fuses that can be overridden when in this mode
MMC) has not yet been programmed, the boot flow jumps directly to the Serial
+
are indicated in the GPIO column of Table 8-2. Table 8-3 provides the details on the
Downloader. If BT_FUSE_SEL = 1, the normal boot flow is followed, where the ROM
+
GPIO pins.
attempts to boot from the selected boot device.
 
 
</pre>
 
</pre>

Latest revision as of 16:48, 14 March 2023

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

The value of BT_FUSE_SEL is available SRC_SBMR2[4] which is 0 here.

From the reference manual:

 If BT_FUSE_SEL = 0, specific boot configuration parameters may be set using
GPIO pins rather than eFUSEs. The fuses that can be overridden when in this mode
are indicated in the GPIO column of Table 8-2. Table 8-3 provides the details on the
GPIO pins.