| 20 | | These adapters and various radios are detailed below. |
| | 20 | These adapters and various card configurations are detailed below. |
| | 21 | |
| | 22 | |
| | 23 | == FSA Identification EEPROM |
| | 24 | The FSA adapters have an identification EEPROM programmed during manufacturing test that provide: |
| | 25 | * model string |
| | 26 | * mac addresses (for FSA's that have networking interfaces) |
| | 27 | * serial number |
| | 28 | * manufacturer date |
| | 29 | * description (user writable 32 character description string) |
| | 30 | - This use modifiable description is shown during FSA detection when the board boots in the bootloader and can be used as a reminder for what card you have populated in an adapter or what purpose you have applied to an adapter |
| | 31 | * overlay (user writable 16 character overlay string) |
| | 32 | - This is not currently used but in the future could be used to auto-select a device-tree overlay supporting what is in an FSA socket for example |
| | 33 | * gpio descriptors (user writable) onboard GPIO's each having: |
| | 34 | - name (used to identify the GPIO in U-Boot and Linux, prefixed by 'fsa<n>_' to uniquely identify what FSA socket it is in |
| | 35 | - default configuration (not connected, unconfigured, input, output-low, output-high) applied by the bootloader |
| | 36 | |
| | 37 | The Gateworks U-Boot bootloader has support for accessing the FSA socket details on a board using the 'fsa' command: |
| | 38 | * show command usage: |
| | 39 | {{{#!bash |
| | 40 | u-boot=> fsa |
| | 41 | fsa - Flexible Socket Adapter |
| | 42 | |
| | 43 | Usage: |
| | 44 | fsa dev [dev] - show or set current FSA adapter |
| | 45 | fsa gpio - show current gpio descriptors |
| | 46 | fsa gpio [<offset>]|[<offset> <source>] - show a specific gpio descriptor |
| | 47 | fsa gpio [<offset> <name> <input|output-low|output-high> [source]] - set a gpio descriptor |
| | 48 | fsa description [description] - show or set the FSA user description string |
| | 49 | fsa overlay [overlay] - show or set the FSA overlay string |
| | 50 | }}} |
| | 51 | * list FSA adapters on a board: |
| | 52 | {{{#!bash |
| | 53 | u-boot=> fsa dev |
| | 54 | detecting FSA Adapters: |
| | 55 | FSA1 : GW16FP0-A M.2 Mini-PCIe Adapter |
| | 56 | FSA2 : GW16FE0-B M.2 E-Key Adapter |
| | 57 | }}} |
| | 58 | * select and describe FSA1: |
| | 59 | {{{#!bash |
| | 60 | u-boot=> fsa dev 1 |
| | 61 | selected: |
| | 62 | FSA1: GW16FP0-A |
| | 63 | description: M.2 Mini-PCIe Adapter |
| | 64 | overlay: |
| | 65 | 0 : fsa_gpio1 : wdisable# output-high |
| | 66 | 1 : fsa_gpio2 : sel_pci# output-high |
| | 67 | 2 : fsa_gpio3 : sim_det# input |
| | 68 | 3 : fsa_gpio4 : NC |
| | 69 | }}} |
| | 70 | * set the user description string for selected FSA: |
| | 71 | {{{#!bash |
| | 72 | u-boot=> fsa description mymodem |
| | 73 | FSA1: GW16FP0-A |
| | 74 | description: mymodem |
| | 75 | overlay: |
| | 76 | 0 : fsa_gpio1 : wdisable# output-high |
| | 77 | 1 : fsa_gpio2 : sel_pci# output-high |
| | 78 | 2 : fsa_gpio3 : sim_det# input |
| | 79 | 3 : fsa_gpio4 : NC |
| | 80 | u-boot=> fsa dev |
| | 81 | detecting FSA Adapters: |
| | 82 | FSA1 : GW16FP0-A mymodem |
| | 83 | FSA2 : GW16FE0-B M.2 E-Key Adapter |
| | 84 | selected: |
| | 85 | FSA1: GW16FP0-A |
| | 86 | description: mymodem |
| | 87 | overlay: |
| | 88 | 0 : fsa_gpio1 : wdisable# output-high |
| | 89 | 1 : fsa_gpio2 : sel_pci# output-high |
| | 90 | 2 : fsa_gpio3 : sim_det# input |
| | 91 | 3 : fsa_gpio4 : NC |
| | 92 | |
| | 93 | }}} |
| | 94 | * blank the description string for selected FSA: |
| | 95 | {{{#!bash |
| | 96 | u-boot=> fsa description "" |
| | 97 | FSA1: GW16FP0-A |
| | 98 | description: |
| | 99 | overlay: |
| | 100 | 0 : fsa_gpio1 : wdisable# output-high |
| | 101 | 1 : fsa_gpio2 : sel_pci# output-high |
| | 102 | 2 : fsa_gpio3 : sim_det# input |
| | 103 | 3 : fsa_gpio4 : NC |
| | 104 | }}} |
| | 105 | * show GPIO configuration for selected FSA: |
| | 106 | {{{#!bash |
| | 107 | u-boot=> fsa gpio |
| | 108 | 0 : fsa_gpio1 : wdisable# output-high |
| | 109 | 1 : fsa_gpio2 : sel_pci# output-high |
| | 110 | 2 : fsa_gpio3 : sim_det# input |
| | 111 | 3 : fsa_gpio4 : NC |
| | 112 | }}} |
| | 113 | * show description of GPIO 2 for selected FSA: |
| | 114 | {{{#!bash |
| | 115 | u-boot=> fsa gpio 2 |
| | 116 | FSA1 GW16FP0-A showing gpio 2 |
| | 117 | fsa_gpio3 : sim_det# input |
| | 118 | }}} |
| | 119 | * re-configure GPIO 2 (name and default state) for selected FSA: |
| | 120 | {{{#!bash |
| | 121 | u-boot=> fsa gpio 2 foo output-low |
| | 122 | FSA1 GW16FP0-A updating gpio 2 |
| | 123 | u-boot=> fsa gpio 2 |
| | 124 | FSA1 GW16FP0-A showing gpio 2 |
| | 125 | fsa_gpio3 : foo output-low |
| | 126 | }}} |
| | 127 | |
| | 128 | Note that the GPIO default states are not applied at board power-on but at runtime by the bootloader when detecting the board model and FSA adapters. The board power-on state of the GPIO's depends on the specific FSA adapter design. |
| | 129 | |
| | 130 | |
| | 131 | == FSA GPIO's |
| | 132 | The FSA adapters can have up to 4 GPIO's that route to the baseboard. These have a name and a default configuration dictated by the identification EEPROM on the FSA and are available in both U-Boot and Linux prefixed by the FSA slot number the FSA adapter is populated in. |
| | 133 | |
| | 134 | For example, if an FSA adapter in socket FSA2 uses gpio0 as 'wdisable1#' and gpio1 as 'wdisable2#' the following GPIO's would be available by name: |
| | 135 | * fsa2_wdisable1# |
| | 136 | * fsa2_wdisable2# |
| | 137 | |
| | 138 | These can be set in U-Boot or Linux. |
| | 139 | |
| | 140 | Examples: |
| | 141 | * FSA2 has a MiniPCIe adapter with a 'wdisable#' GPIO we wish to drive low |
| | 142 | - In U-Boot: |
| | 143 | {{{#!bash |
| | 144 | u-boot=> gpio clr fsa2_wdisable# |
| | 145 | }}} |
| | 146 | - In Linux: |
| | 147 | {{{#!bash |
| | 148 | # gpioset --mode signal $(gpiofind "fsa2_wdisable#")=0 |
| | 149 | }}} |
| | 150 | |