The Flash-N-Go infrastructure (or FnG infragstructure) is a software product for NXP i.MX Edge devices created by SECO Nothern Europe. Consisting of 3 parts, Flash-N-Go Boot, Flash-N-Go System and Flash-N-Go Update it provides a convenient means of booting, flashing, testing and updating of edge devices.
What is …
What is Flash-N-Go System?
Flash-N-Go System is a non-volatile Linux distribution to aid with initial installation, production test and upgrade tasks but is limited to a small set of features. It is sometimes coined a management or recovery system. Flash-N-Go System is the backbone of the Flash-N-Go infrastructure.
It is designed to run entirely from RAM and can modify the whole non-volatile memory (eMMC). This enables the user to upgrade anything from inside a Linux based environment.
Pre-installed in the factory, Flash-N-Go System can be used in the field and during development to upgrade the devices and possibly install all components from scratch.
In production Flash-N-Go System is used conduct the production test. This de-couples the testing process from the target-end-system and makes it possible to test devices with customer specific OS configurations, with limited testing capabilities.
What is Flash-N-Go Boot?
Flash-N-Go Boot is an simple, non-interactive and open-source bootloader for i.MX6 and i.MX6ULL devices. With its condensed functionalities it is capable of initializing the RAM dynamically and booting Linux, Android, and Windows CE.
Even though it uses a serial port to output informative and debugging messages, it does not provide any kind of console interface, network drivers, display drivers or even the capability to write any data to storage media. All installation, configuration, update and other maintenance tasks usually provided by bootloaders like RedBoot, U-Boot, or Barebox are missing in Flash-N-Go Boot on purpose and provided by Flash-N-Go System instead, which is always expected to be installed on a device using Flash-N-Go Boot.
All actions necessary to boot any kind of OS are controlled by one of two simple ASCII-text boot-scripts, which Flash-N-Go Boot looks for in all FAT12/16/32-partitions on the storage medium it is booted from itself. Normally Flash-N-Go Boot looks for a boot-script called boot.cfg
. In three special cases it looks for a boot-script called boot-alt.cfg, instead:
if no boot.cfg can be found or loaded and executed successfully,
if the SW2-button of the device is pressed during power-up or reset, or
if some software - usually a tool called bootselect
provided in any OS - has set a special flag in a particular place of non-volatile storage of the system.
Flash-N-Go Boot itself only uses the SoC-internal SRAM for its code and all runtime heap, stack, and data. All other RAM-areas of a device are free to use by boot-scripts and operating systems and as soon as Flash-N-Go Boot has started another binary executable, this in turn may also use the SoC-internal SRAM for its own purposes.
By using Flash-N-Go Boot it is possible to use different DDR-memory hardware without adapting the bootloader to the specific RAM configuration, and by this makes the SD-RAM equipment of embedded board very flexible, no pre-initialization and no matching of bootloader to board or RAM of DDR-RAM is necessary.
What is Flash-N-Go Update?
The Flash-N-Go Update software tool provides a update solution for Flash-N-Go System based i.MX6 devices.
Normally coming as USB flash drive and it uses an auto-start feature of the device to bring up the graphical update process. The available operating systems can be directly downloaded, if the device is setup up with internet access and by this provides a way to implement an OTA update behavior.
Basic Flash-N-Go Architecture
The following figure show the basic boot-up and file system structure of a Flash-N-Go Boot based system.
...
The Flash-N-Go architecture consists of the bootloader, the recovery, device specific data and the target operating system. Flash-N-Go System and the target system may use the device-specific data to initialize and configure hardware interfaces like display, touch and network interfaces.
The first stage bootloader Flash-N-Go Boot initializes the board and decides which OS needs to be booted. The decision is based on the availability of boot-able systems, the hardware boot-mode switch and the internal bootselect
setting. The internal boot select setting is stored on the battery backed RTC, and thus independent of the non-volatile Flash memory (eMMC), but may be impacted by changing the battery.
A regular target OS is booted iff:
A FAT32 partition is available containing a valid boot.cfg
file
The bootselect
setting set to "regular
" or "initialized
".
The boot mode button is not pressed.
Otherwise the Flash-N-Go Boot bootloader will try to load the Flash-N-Go System that resides in a FAT partition containing the boot-alt.cfg
file.
...
...
The Flash-N-Go infrastructure (or FnG infrastructure) is a software product for NXP i.MX Edge devices created by SECO. Consisting of three parts: Flash-N-Go Boot, Flash-N-Go System and Flash-N-Go Update; it provides a convenient way of booting, flashing, testing and updating edge devices. FnG Infrastructure is available on the following series of devices:
Products of the SAN* family of devices with i.MX6: SANTARO, SANTOKA, SANTINO,…
NALLINO with i.MX6ULL
TANARO with i.MX8MM
...
What is …
Flash-N-Go System?
Flash-N-Go System is a versatile Linux distribution to aid with the initial installation, production test and upgrade tasks but is limited to a small set of features. It is sometimes referred to as a management or recovery system. Flash-N-Go System is the backbone of the Flash-N-Go infrastructure.
It is designed to run entirely from RAM and can modify the whole non-volatile memory (eMMC). This enables the user to upgrade anything from inside a Linux based environment.
Pre-installed in the factory, Flash-N-Go System can be used in the field and during development to upgrade the devices and possibly install all components from scratch.
In production, Flash-N-Go System is used to conduct the production test. This de-couples the testing process from the target-end system and makes it possible to test devices with customer-specific OS configurations, with limited testing capabilities.
Flash-N-Go Boot?
Flash-N-Go Boot is a simple, non-interactive and open-source bootloader for i.MX6 and i.MX6ULL devices. With its condensed functionalities, it is capable of initializing the RAM dynamically and booting Linux, Android, and Windows CE.
Even though it uses a serial port to output informative and debugging messages, it does not provide any kind of console interface, network drivers, display drivers or even the capability to write any data to storage media. All installation, configuration, update and other maintenance tasks usually provided by bootloaders like RedBoot, U-Boot, or Barebox are missing in Flash-N-Go Boot on purpose and provided by Flash-N-Go System instead, which is always expected to be installed on a device using Flash-N-Go Boot.
All actions necessary to boot any kind of OS are controlled by one of two simple ASCII-text boot-scripts, which Flash-N-Go Boot looks for in all FAT12/16/32-partitions on the storage medium it is booted from itself. Normally Flash-N-Go Boot looks for a boot-script called boot.cfg
. In three special cases it looks for a boot-script called boot-alt.cfg, instead:
if no boot.cfg
can be found or loaded and executed successfully,
if the bootmode-button of the device is pressed during power-up or reset, or
if some software - usually a tool called bootselect
provided in any OS - has set a special flag in a particular place of non-volatile storage of the system.
Flash-N-Go Boot itself only uses the SoC-internal SRAM for its code and all runtime heap, stack, and data. All other RAM-areas of a device are free to use by boot-scripts and operating systems and as soon as Flash-N-Go Boot has started another binary executable, this, in turn, may also use the SoC-internal SRAM for its own purposes.
By using Flash-N-Go Boot it is possible to use different DDR-memory hardware without adapting the bootloader to the specific RAM configuration, and this makes the SD-RAM equipment of embedded board very flexible. Pre-initialization and matching of the bootloader to board or RAM isn’t necessary.
Flash-N-Go Update?
The Flash-N-Go Update software tool provides an all-in-one update solution for Flash-N-Go System based i.MX6 devices.
Normally coming as a USB flash drive, it uses an auto-start feature of the device to bring up the graphical update process. The available operating systems can be directly downloaded if the device is setup up with internet access and by this provides a way to implement an OTA update behaviour.
Flash-N-Go Update is deprecated and is no longer being supported by SECO.
...
Basic Flash-N-Go Architecture
The following figure shows the basic boot-up and file system structure of a Flash-N-Go Boot based system.
...
The Flash-N-Go architecture consists of the bootloader, the recovery, device-specific data and the target operating system. Flash-N-Go System and the target system may use the device-specific data to initialize and configure hardware interfaces like display, touch and network interfaces.
The first stage bootloader Flash-N-Go Boot initializes the board and decides which OS needs to be booted. The decision is based on the availability of boot-able systems, the hardware boot-mode switch and the internal bootselect
setting. The internal boot select setting is stored on the battery-backed RTC, and thus independent of the non-volatile Flash memory (eMMC), but may be impacted by changing the battery.
A regular target OS is booted iff:
A FAT32 partition is available containing a valid boot.cfg
file
The bootselect
setting set to "regular
" or "initialized
".
The boot mode button is not pressed.
Otherwise, the Flash-N-Go Boot bootloader will try to load the Flash-N-Go System that resides in a FAT partition containing the boot-alt.cfg
file.
Flash-N-Go System is a RAM-based system and is loaded completely into SD-RAM memory by the bootloader and runs from the volatile memory. Thus changes made inside the FnG System, like changes inside the /etc
directory will not be stored and lost after reboot. This guarantees a consistent environment after boot and provides a good basis for production tests and installing software.
Because FnG System is designed as a RAM-based system it can be used to change anything on the non-volatile memory including updating Flash-N-Go System itself.
...
The shared device-specific data is currently well-supported on iMX6 and iMX6ULL devices. HweverHowever, i.MX8 devices may use this scheme in the future as well.
...
The current backing-storage type of Flash-N-Go is eMMC (using the Linux naming mmblk0mmcblk0). In addition to the partitions for the basic Flash-N-Go components, there may be some more partitions depending on the system configuration.
Expand |
---|
title | i.MX6 Partition layout |
---|
|
The |
...
default partition layout for the Flash-N-Go on the iMX6 platform is: Partition | File System | Contents |
---|
mmcblk0boot0
| none | Flash-N-Go Boot |
|
...
mmcblk0boot1
| FAT32 | XML based device configuration and touchscreen settings | mmcblk0p1
| FAT32 | Flash-N-Go System including Linux Kernel Ramdisk-file-system boot-alt.cfg file
|
The target operating system kernel is usually installed in mmcblk0p2 FAT32 partition |
...
and uses a third partition mmcblk0p3 as a non-volatile rootfs partition. However other partition layouts are possible for the target OS like customer-specific partition layouts or Android-based multi-partition layouts. |
...
Expand |
---|
title | i.MX8 Partition layout |
---|
|
On the imx8 based systems the default partition layout also contains the partitions for the target OS. |
...
After a few seconds a Flash-N-Go System prompt should be displayed on the serial console similar to this:
Alternatively the bootselect
tool can be used, which is usually provided by Flash-N-Go compatible operating systems using Flash-N-Go System as well as by Flash-N-Go System itself.
Configuration tools
Several tools on the Flash-N-Go System solution are provided for configuring, testing and flashing the devices.
bootselect
This tool offers the possibility to switch the boot target between the flashed operation system (e.g. Linux, Windows Embedded) on the device and Flash-N-Go System itself. The following code block shows a list of all possible parameters:
Code Block |
---|
FLASH-N-GO:/ bootselect -h
Usage: bootselect [-qv] [<bootmode>]
When called without parameters, bootselect reads the
current boot-mode setting from the RTC-register
Options:
<bootmode> Writes the given boot-mode into the RTC-register
May be one of: initialized regular regularB alternative invalid
-v Turns on debug messages on stderr
-vv Turns on info messages on stderr
-q Turns off warning messages on stderr
-qq Turns off all messages on stderr |
For selection of the target OS the bootselect
tool should be called with the regular
parameter:
Code Block |
---|
FLASH-N-GO:/ bootselect regular
regular |
For selection of Flash-N-Go System the bootselect
tool should be called with the alternative
parameter:
Code Block |
---|
FLASH-N-GO:/ bootselect alternative
alternative |
Note |
---|
The bootselect tool is also part of SECO Nothern Europe operating systems which use Flash-N-Go Boot as bootloader. Thus the selection may be done at OS runtime too. |
sconfig
...
The following table contains all possible partitions. Depending on the selected setup it is possible that that the LINUXB, ROOTFSB and user partition are missing. Partition | File System | Contents |
---|
mmcblk0p1 | none | Bootloader U-Boot placeholder to make the bootloader placement visible | mmcblk0p2 | none | Bootloader Uboot environment placeholder to make the usage visible | mmcblk0p3 | VFAT | Config SECO specific config partition, contain xml and other persistent device data | mmcblk0p4 | none | Extended Partition | mmcblk0p5 | VFAT, 128M | FLASH-N-GO Flash-N-Go System Kernel and RAM FS | mmcblk0p6 | VFAT, 128M | LINUX Kernel, devicetrees and boot.cfg for installation A | mmcblk0p7 | VFAT, 128M | LINUXB Kernel, devicetrees and boot.cfg for installation B | mmcblk0p8 | EXT4, ~1.2GB | ROOTFS Root Files System for installation A | mmcblk0p9 | EXT4, ~1.2GB | ROOTFSB Root filessystem for installation B | mmcblk0p10 | not in use by default, ~1GB | User partition |
|
...
Booting Flash-N-Go System
There are two possible options for booting the device into Flash-N-Go System instead of booting the target OS. The first one is pressing down and holding the bootmode switch while the power supply is switched on. The location of the bootmode switch is shown in the following figure
...
After a few seconds a Flash-N-Go System prompt should be displayed on the serial console similar to this:
Alternatively, the bootselect
tool can be used, available modes are regular for normal target OS and alternative for Flash-N-Go System.
Info |
---|
The bootmode switch needs to be held on each boot process. The selection made with bootselect is persistent. |
...
Configuration tools
Several tools on the Flash-N-Go System solution are provided for configuring, testing and flashing the devices.
bootselect
This tool offers the possibility to switch the boot target between the flashed operation system (e.g. Linux, Windows Embedded) on the device and Flash-N-Go System itself. The following code block shows a list of all possible parameters.:
Expand |
---|
title | Using bootselect tool |
---|
|
sconfig/usr/bin/sconfig {start | list | init | <setting> [value]}
Call without [value] to read a setting, call with [value] to write it.
Available settings:
serialdiag switch serial debug console on or off
dhcp switch DHCP on or off
ip set IP address
mask set subnet mask
gateway set standard network gateway
mac set MAC address
name set device name
serial set serial number (affects MAC address and device name)
rotation set display rotation
If a 2.Ethernet is present, it may be configured via serial2, mac2, etc.
|
xconfig
xconfig
is a command line tool to manipulate the XML-configuration data directly. Care should be taken when using these commands as miss-configured or corrupted XML- configuration data might render a system unusable. The following code block shows a list of all possible parameters.
Code Block |
---|
FLASH-N-GO:/# xconfig
Usage: $0 [command] [options]
Script to manipulate the XML-configuration data of GuF i.MX Boards
inside the NAND Flash.
xconfig expect one of the following commands to define its behavior:
list show the current contents of the XML-configuration as
obtained from NAND
import import an external XML-configuration file into the NAND
Flash
addnode add a new (empty) XML node
delnode delete XML node(s) and its/their children
addattribute add a new or change an existing attribute
delattribute delete an existing attribute
If no command and option given xconfig will display its version and exit.
Syntax:
xconfig list [-v] [-p <path>]
-v show whole (sub)tree instead of summary, the format is
bootselect [-qv] [<bootmode>]
When called without parameters, bootselect reads the
current boot-mode setting from the RTC-register
Options:
<bootmode> Writes the given boot-mode into the RTC-register
May be one of: initialized regular regularB alternative invalid
-v Turns on debug messages on stderr
-vv Turns on info messages on stderr
-q Turns off warning messages on stderr
-qq Turns off all messages on stderr |
It is also possible to use abbreviation such as a for alternative and so on. Code Block |
---|
| root@santaro:~# bootselect a
alternative
root@santaro:~# bootselect r
regular |
|
Expand |
---|
title | Available modes for bootselect |
---|
|
regular: target OS regularA (or regularB): target OS A or B (in case of A-B partitioning) alternative: Flash-N-Go System oneshot (or oneshotA, oneshotB): boot once into the desired mode, then switch to the fallback oneshot: regular, then alternative oneshotA; regularA, then regularB oneshotB: regularB, then regularA
|
Info |
---|
The bootselect tool is also part of SECO Nothern Europe formerly Garz & Fricke operating systems which use Flash-N-Go Boot as bootloader. Thus the selection may be done at OS runtime too. |
sconfig
sconfig
is a small command-line tool that offers functionalities for device configurations like network settings, screen rotation etc. The following code block shows a list of all possible parameters.
Expand |
---|
|
Code Block |
---|
FLASH-N-GO:/ sconfig -h
Usage: /usr/bin/sconfig {start | list | init | <setting> [value]}
Call without [value] to read a setting, call with [value] to write it.
Available settings:
serialdiag switch serial debug console on or off
dhcp switch DHCP on or off
ip set IP address
mask set subnet mask
gateway set standard network gateway
mac set MAC address
name set device name
serial set serial number (affects MAC address and device name)
rotation set display rotation
If a 2.Ethernet is present, it may be configured via serial2, mac2, etc. |
|
xconfig
xconfig
is a command-line tool to manipulate the XML-configuration data directly. Care should be taken when using these commands as miss-configured or corrupted XML- configuration data might render a system unusable. The following code block shows a list of all possible parameters.
Expand |
---|
|
Code Block |
---|
FLASH-N-GO:/# xconfig
Usage: $0 [command] [options]
Script to manipulate the XML-configuration data of GuF i.MX Boards
inside the NAND Flash.
xconfig expect one of the following commands to define its behavior:
list show the current contents | suitabletobeused inputto"xconfigimport"-s obtained from NAND
import import an external XML-configuration | searchforaspecificpattern-l Flash
addnode add a new (empty) | showlongpathsyntaxinsteadofxml --node node(s) and its/their children
addattribute | filterresultbynodename,basicwildcardsareallowedattribute
delattribute delete an existing | --filterresultbyattributename,basicwildcardsareallowedits version and exit.
Syntax:
xconfig list [-v] [-p <path>]
-v | formatiseither show whole (sub)tree instead of summary, the format is
| --attributelinux*matchesallnodesthathave suitable to be used as input to "xconfig import"
-s | anattributestartingwithlinuxor search for a specific pattern
-l | --attributekey="value"matchingnodesthat show long path syntax instead of xml
| haveanattribute'key'withthevalue'value'filter result by node name, basic wildcards are allowed
| -p<path>pathtosubtree, e.g.: --attribute filter result by attribute name, basic wildcards are allowed
| -p/configurationFile/variables/setting[@key='enable_serialdiag]ifomitted,thewholetreeisshownxconfigimport[-v][-y][-b]<file> --attribute linux* matches all nodes that | -vbeverbose-yassumeyes-applychangeswithoutuserinteraction<file>pathtofiletoimport --attribute key="value" matching nodes that
| -bdeprecated-donotusexconfigaddnode[-y]-p<path>-n<name> have an attribute 'key' with the | -y same as above
-p <path>parent node-n<name>nameofnewnodexconfigdelnode [-y] -p <path>-p /configurationFile/variables/setting[@key='enable_serialdiag]
| -ysameasabovethe whole tree is shown
xconfig import [- | p <path> path to nodexconfigaddattribute[-y] -p <path> -n <attr-name> -v <value>sameasabove- apply changes without user interaction
| -p<path>pathtoparentnode-n<attr-name>nameoftheattribute-v<value>newvalueofattributedelattributeaddnode [-y] -p <path> -n | <attr-name><name>
-y same as above
-p <path> path to parent node
| -n <attr-name> name of the attribute
xconfig listattributes -p <path>
-p <path> path to node
xconfig getattribute -p <path> -n <attr-name>
-p <path> path to parent node
-n <attr-name> name of the attribute |
Manual System Update
The manual system update considers a manual operating system (OS) installation via a console. The update process described here requires an Ethernet connection of the device to a development PC, either directly or via intranet. Also a TFTP-Server or HTTP-Server is required on the development PC. There are several, also free, TFTP-Servers and HTTP-Servers online available. Please make sure that the timeout settings of the TFTP-Server are set to 60 seconds at minimum. The installation of target OSes, and Flash-N-Go System and Flash-N-Go Boot should work via console one- or two-liners. All device partitioning, deployment actions should be done by shell scripts executed by the simple command. See Booting Flash-N-Go System for instructions how to boot into the management system.
Accessing the target system via serial console
Before updating the target operating system we first need an access to the device. The easiest way to access the target is via the serial console. Simply connect the first RS-232 port of your target system with a COM port of your PC or a USB-to-RS-232 converter using a null modem cable. With the serial connection set up start your favorite terminal program (e.g. minicom or tera term) with the following settings:
115200 baud
8 data bits
no parity
1 stop bit
no hardware flow control
no software flow control
...
-n <name> name of new node
xconfig delnode [-y] -p <path>
-y same as above
-p <path> path to node
xconfig addattribute [-y] -p <path> -n <attr-name> -v <value>
-y same as above
-p <path> path to parent node
-n <attr-name> name of the attribute
-v <value> new value of attribute
xconfig delattribute [-y] -p <path> -n <attr-name>
-y same as above
-p <path> path to parent node
-n <attr-name> name of the attribute
xconfig listattributes -p <path>
-p <path> path to node
xconfig getattribute -p <path> -n <attr-name>
-p <path> path to parent node
-n <attr-name> name of the attribute |
|
...
Note |
---|
Some features of on older devices are only supported by older releases of our FnG Infrastructure. For example, FnG Update will only work with FnG System 15 and below. If you have an older device and need those features, please contact our Technical Support for the appropriate installation procedure. |
Manual System Update
The manual system update considers a manual operating system (OS) installation via a console. The progress can be done locally using mass storage devices or using a network connection.
The installation of target OSes, and Flash-N-Go System and Flash-N-Go Boot should work via console one- or two-liners. All device partitioning, deployment actions should be done by shell scripts executed by the simple command. See Booting Flash-N-Go System for instructions on how to boot into the management system.
Expand |
---|
title | Accessing the target system via serial console |
---|
|
Before updating the target operating system we first need access to the device. The easiest way to access the target is via the serial console. Simply connect the first RS-232 port of your target system with a COM port of your PC or a USB-to-RS-232 converter using a null-modem cable. With the serial connection set up start your favourite terminal program (e.g. minicom or tera term) with the following settings: 115200 baud 8 data bits no parity 1 stop bit no hardware flow control no software flow control
From the very first moment when the target is powered, you should see debug messages in the terminal if the standard configuration is set. |
Establish a network connection
The Ethernet can be set up with the sconfig command-line tool, see also sconfig.
To set the IP address to the static IP 192.168.1.1 with the submask 255.255.255.0 use the following commands:
Code Block |
---|
|
sconfig ip 192.168.1.1
sconfig mask 255.255.255.0
sconfig dhcp off |
To set DHCP and reboot the system to apply the network configuration:
Code Block |
---|
|
sconfig dhcp on
reboot |
Installation via network
Info |
---|
Our latest releases can be found here (FnG-System) and here (Yocto) |
The common concept of the installation is always similar.
Set the download source variable
Download the installation script (with curl
) and
Execute the installation script (with sh
).
These concatenating these steps the installation can be done in one-liner commands.
Info |
---|
The examples below are using our server as an example. Customer can download the files and host on their own server in case only local network is available. |
Example 1: Install Yocto Kirkstone 25.0
Set the variable location, then call curl
to download it to pipe to sh
Code Block |
---|
|
FNG="https://secostorage.blob.core.windows.net/seco-ne-public/HMI/Linux-Yocto/Releases/Yocto-kirkstone-25.0/seco-mx6/fng-install.sh"
curl --location "$FNG" | sh -s -- --url="$(dirname "$FNG")" |
The parameter url of the script should point to the location of the folder where the installation files are located.
Example 2: Install Flash-N-Go System 51
The process is similar to installing the target OS
Code Block |
---|
|
FNG="https://secostorage.blob.core.windows.net/seco-ne-public/HMI/Flash-N-Go/FNGSystem/FNGSystem-51.0/seco-mx6/fngsystem-self-update.sh"
curl --location "$FNG" | sh -s -- --url="$(dirname "$FNG")" |
Offline installation
It is also possible to install FnG System as well as the target OS offline.
To do that, simply download and copy the installation script as well as the corresponding files to a USB stick. After that, simply boot the device into FnG System, mount the USB stick and directly call the script.
...
Security Considerations
The Flash-N-Go System is designed as a management system to install and update target operating systems and change the device configurations. Thus it runs with root privileges. This may be a concern for some scenarios. Therefore some security considerations are necessary.
...
License
Expand |
---|
title | The license for the three tools of Flash-N-Go tool suite is as follows: |
---|
|
Flash-N-Go Boot (the boot loader): This package is published under GPLv2 license. This license information is listed in various places: In the Flash-N-Go manual, as well as contained in the source-package itself in the files COPYING and CREDITS, all available from the website: https://support.garz-fricke.com/projects/Santaro/Flash-N-Go/overview.html The tool “FnG-Boot” is just a single package, i.e. a “package list” is trivial: Just one source code package, also provided on the download page, e.g. GF_iMX6x-FNGBoot-v13.0r3797-src-full.tgz on https://support.garz-fricke.com/products/Santaro/Flash-N-Go/FNGBoot/FNGBoot-v13.0r3797/ The source code is a derived work from the “u-boot” bootloader project, which is itself released under GPLv2. All additional code is authored solely by Garz&Fricke / SECO. Hence the tool and its source code is completely licensed under GPLv2
Flash-N-Go System (the minimal yocto OS distribution): The releases (provided on the same web-page as above) include a full package list including license information for each package. Flash-N-Go Update (the updater tool): This package is published under Apache v2 licsense. It is an original Garz & Fricke project. The project is also no longer maintained. It is a python tool and, as such, is distributed as full source-code.
|