Changes between Version 19 and Version 20 of FSA


Ignore:
Timestamp:
04/29/2025 04:57:46 PM (6 days ago)
Author:
Tim Harvey
Comment:

added FSA eeprom and GPIO details

Legend:

Unmodified
Added
Removed
Modified
  • FSA

    v19 v20  
    1818 * GW16FP0 - FSA to Mini-PCIe (!WiFi / Cellular / Etc)
    1919
    20 These adapters and various radios are detailed below.
     20These adapters and various card configurations are detailed below.
     21
     22
     23== FSA Identification EEPROM
     24The 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
     37The 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
     40u-boot=> fsa
     41fsa - Flexible Socket Adapter
     42
     43Usage:
     44fsa dev [dev] - show or set current FSA adapter
     45fsa gpio - show current gpio descriptors
     46fsa gpio [<offset>]|[<offset> <source>] - show a specific gpio descriptor
     47fsa gpio [<offset> <name> <input|output-low|output-high> [source]] - set a gpio descriptor
     48fsa description [description] - show or set the FSA user description string
     49fsa overlay [overlay] - show or set the FSA overlay string
     50}}}
     51 * list FSA adapters on a board:
     52{{{#!bash
     53u-boot=> fsa dev
     54detecting FSA Adapters:
     55FSA1    : GW16FP0-A M.2 Mini-PCIe Adapter
     56FSA2    : GW16FE0-B M.2 E-Key Adapter
     57}}}
     58 * select and describe FSA1:
     59{{{#!bash
     60u-boot=> fsa dev 1
     61selected:
     62FSA1: GW16FP0-A
     63description: M.2 Mini-PCIe Adapter
     64overlay:
     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
     72u-boot=> fsa description mymodem
     73FSA1: GW16FP0-A
     74description: mymodem
     75overlay:
     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
     80u-boot=> fsa dev
     81detecting FSA Adapters:
     82FSA1    : GW16FP0-A mymodem
     83FSA2    : GW16FE0-B M.2 E-Key Adapter
     84selected:
     85FSA1: GW16FP0-A
     86description: mymodem
     87overlay:
     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
     96u-boot=> fsa description ""
     97FSA1: GW16FP0-A
     98description:
     99overlay:
     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
     107u-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
     115u-boot=> fsa gpio 2
     116FSA1 GW16FP0-A showing gpio 2
     117fsa_gpio3 : sim_det# input
     118}}}
     119 * re-configure GPIO 2 (name and default state) for selected FSA:
     120{{{#!bash
     121u-boot=> fsa gpio 2 foo output-low
     122FSA1 GW16FP0-A updating gpio 2
     123u-boot=> fsa gpio 2               
     124FSA1 GW16FP0-A showing gpio 2
     125fsa_gpio3 : foo output-low
     126}}}
     127
     128Note 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
     132The 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
     134For 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
     138These can be set in U-Boot or Linux.
     139
     140Examples:
     141 * FSA2 has a MiniPCIe adapter with a 'wdisable#' GPIO we wish to drive low
     142  - In U-Boot:
     143{{{#!bash
     144u-boot=> gpio clr fsa2_wdisable#
     145}}}
     146  - In Linux:
     147{{{#!bash
     148# gpioset --mode signal $(gpiofind "fsa2_wdisable#")=0
     149}}}
     150
    21151
    22152== GW82xx Baseboard