Changes between Version 5 and Version 6 of gsc/alternate_boot_device


Ignore:
Timestamp:
07/22/2024 06:57:02 PM (10 months ago)
Author:
Tim Harvey
Comment:

update page removing old and confusing details

Legend:

Unmodified
Added
Removed
Modified
  • gsc/alternate_boot_device

    v5 v6  
    55 * Newport - eMMC vs microSD
    66
    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
     8The [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.
    139
    14 == Auto Switch Boot Device
    15 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 that expires in 30 seconds. Writing a 1 to GSC R1.7 (SWITCH_BOOT_CLEAR) will cancel this timer. If the timer expires the boot device will be 'toggled' and the board will be hard reset.
    16 
    17 If you need to progamattically hard power cycle the board you can put it to sleep for a few seconds.
    18 
    19 === From Linux
    20 Within the linux command-line shell, you can use i2cset from the i2c-tools package.
    21 
    22 To enable 'switch boot check':
     10To enable from Linux:
    2311{{{#!bash
    2412i2cset -f -y 0 0x20 1 0x40      ;# enable R1.6 (SWITCH_BOOT_ENABLE)
    2513}}}
    2614
    27 To assert 'SWITCH_BOOT_CLEAR' and cancel the countdown timer (within 30 seconds of power up):
     15To enable from u-boot
    2816{{{#!bash
    29 i2cset -f -y 0 0x20 1 0xC0      ;# cancel countdown by asserting R1.7 (SWITCH_BOOT_CLEAR) but keep enabled R1.6 (SWITCH_BOOT_ENABLE)
     17i2c dev 0 && i2c mw 0x20 1 0x40 1     ;# enable R1.6 (SWITCH_BOOT_ENABLE)
    3018}}}
    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