7 | | There are 2 ways that you can instruct the [wiki:gsc Gateworks System Controller] to boot to the **alternate boot device**: |
8 | | 1. set GSC R0.3 and press the user pushbutton 5x times to perform a 1-time hard reboot to the alternate boot device |
9 | | {{{#!bash |
10 | | i2cset -f -y 0 0x20 0 0x08 |
11 | | }}} |
12 | | 2. set GSC R1.6 (SWITCH_BOOT_ENABLE) to enable 'switch boot check' (see below). If this is set when the board powers on, it will 'toggle' boot device selection and reboot after 30 seconds unless GSC R1.7 (SWITCH_BOOT_CLEAR) has been set before that time. Note that the countdown timer is only activated when the board powers on from a GSC sleep or unpowered state |
| 7 | == Auto Switch Boot Device |
| 8 | The [wiki:gsc Gateworks System Controller] implements an 'Auto Switch Boot Device' feature that can be useful as a firmware recovery mechanism. GSC register R1.6 (SWITCH_BOOT_ENABLE) enables this mode. When this is set and the board powers on it will initiate a countdown timer cleared by the boot firmware that expires in 30 seconds. Therefore if the boot firmware is missing/corrupt the board will power cycle and boot off the alternate device. |
31 | | |
32 | | |
33 | | === From u-boot |
34 | | Within the u-boot environment you can use the imw command to set i2c registers. |
35 | | |
36 | | To enable 'switch boot check': |
37 | | {{{#!bash |
38 | | imw 0x20 1 0x40 1 ;# enable R1.6 (SWITCH_BOOT_ENABLE) |
39 | | }}} |
40 | | |
41 | | To assert R1.7 (SWITCH_BOOT_CLEAR) and cancel the countdown timer (within 30 seconds of power up): |
42 | | {{{#!bash |
43 | | imw 0x20 1 0xc0 1 # set SWITCH_BOOT_CLEAR (R1.7) |
44 | | }}} |
45 | | |
46 | | |
47 | | == Alternate Boot Flash firmware images |
48 | | |
49 | | |
50 | | === Newport Product families |
51 | | The Newport boards have a primary eMMC device and a removable microSD device that can be used as an **alternate boot device**. Because these are both MMC devices, the same boot firmware can be used on each device. |
52 | | |