blob: e458fbc607cc1dcf61d36759390157b0efcd5535 [file] [log] [blame]
Michael Walle36ba7642020-10-15 23:08:57 +02001.. SPDX-License-Identifier: GPL-2.0+
2
3Summary
4=======
5
6The Kontron SMARC-sAL28 board is a TSN-enabled dual-core ARM A72
7processor module with an on-chip 6-port TSN switch and a 3D GPU.
8
9
10Quickstart
11==========
12
13Compile U-Boot
14--------------
15
16Configure and compile the binary::
17
18 $ make kontron_sl28_defconfig
19 $ CROSS_COMPILE=aarch64-linux-gnu make
20
21Copy u-boot.rom to a TFTP server.
22
23Install the bootloader on the board
24-----------------------------------
25
26Please note, this bootloader doesn't support the builtin watchdog (yet),
27therefore you have to disable it, see below. Otherwise you'll end up in
28the failsafe bootloader on every reset::
29
30 > tftp path/to/u-boot.rom
31 > sf probe 0
32 > sf update $fileaddr 0x210000 $filesize
33
34The board is fully failsafe, you can't break anything. But because you've
35disabled the builtin watchdog you might have to manually enter failsafe
36mode by asserting the ``FORCE_RECOV#`` line during board reset.
37
38Disable the builtin watchdog
39----------------------------
40
41- boot into the failsafe bootloader, either by asserting the
42 ``FORCE_RECOV#`` line or if you still have the original bootloader
43 installed you can use the command::
44
45 > wdt dev cpld_watchdog@4a; wdt expire 1
46
47- in the failsafe bootloader use the "sl28 nvm" command to disable
48 the automatic start of the builtin watchdog::
49
50 > sl28 nvm 0008
51
52- power-cycle the board
53
54
55Useful I2C tricks
56=================
57
58The board has a board management controller which is not supported in
59u-boot (yet). But you can use the i2c command to access it.
60
61- reset into failsafe bootloader::
62
63 > i2c mw 4a 5.1 0; i2c mw 4a 6.1 6b; i2c mw 4a 4.1 42
64
65- read board management controller version::
66
67 > i2c md 4a 3.1 1
68
69
70Non-volatile Board Configuration Bits
71=====================================
72
73The board has 16 configuration bits which are stored in the CPLD and are
74non-volatile. These can be changed by the `sl28 nvm` command.
75
76=== ===============================================================
77Bit Description
78=== ===============================================================
79 0 Power-on inhibit
80 1 Enable eMMC boot
81 2 Enable watchdog by default
82 3 Disable failsafe watchdog by default
83 4 Clock generator selection bit 0
84 5 Clock generator selection bit 1
85 6 Disable CPU SerDes clock #2 and PCIe-A clock output
86 7 Disable PCIe-B and PCIe-C clock output
87 8 Keep onboard PHYs in reset
88 9 Keep USB hub in reset
89 10 Keep eDP-to-LVDS converter in reset
90 11 Enable I2C stuck recovery on I2C PM and I2C GP busses
91 12 Enable automatic onboard PHY H/W reset
92 13 reserved
93 14 Used by the RCW to determine boot source
94 15 Used by the RCW to determine boot source
95=== ===============================================================
96
97Please note, that if the board is in failsafe mode, the bits will have the
98factory defaults, ie. all bits are off.
99
100Power-On Inhibit
101----------------
102
103If this is set, the board doesn't automatically turn on when power is
104applied. Instead, the user has to either toggle the ``PWR_BTN#`` line or
105use any other wake-up source such as RTC alarm or Wake-on-LAN.
106
107eMMC Boot
108---------
109
110If this is set, the RCW will be fetched from the on-board eMMC at offset
1111MiB. For further details, have a look at the `Reset Configuration Word
112Documentation`_.
113
114Watchdog
115--------
116
117By default, the CPLD watchdog is enabled in failsafe mode. Using bits 2 and
1183, the user can change its mode or disable it altogether.
119
120===== ===== ===============================
121Bit 2 Bit 3 Description
122===== ===== ===============================
123 0 0 Watchdog enabled, failsafe mode
124 0 1 Watchdog disabled
125 1 0 Watchdog enabled, failsafe mode
126 1 1 Watchdog enabled, normal mode
127===== ===== ===============================
128
129Clock Generator Select
130----------------------
131
132The board is prepared to supply different SerDes clock speeds. But for now,
133only setting 0 is supported, otherwise the CPU will hang because the PLL
134will not lock.
135
136Clock Output Disable And Keep Devices In Reset
137----------------------------------------------
138
139To safe power, the user might disable different devices and clock output of
140the board. It is not supported to disable the "CPU SerDes clock #2" for
141now, otherwise the CPU will hang because the PLL will not lock.
142
143Automatic reset of the onboard PHYs
144-----------------------------------
145
146By default, there is no hardware reset of the onboard PHY. This is because
147for Wake-on-LAN, some registers have to retain their values. If you don't
148use the WOL feature and a soft reset of the PHY is not enough you can
149enable the hardware reset. The onboard PHY hardware reset follows the
150power-on reset.
151
152
153Further documentation
154=====================
155
156- `Vendor Documentation`_
157- `Reset Configuration Word Documentation`_
158
159.. _Reset Configuration Word Documentation: https://raw.githubusercontent.com/kontron/rcw-smarc-sal28/master/README.md
160.. _Vendor Documentation: https://raw.githubusercontent.com/kontron/u-boot-smarc-sal28/master/board/kontron/sl28/README.md