phytec / phytec-eeprom-flashtool

MIT License
3 stars 3 forks source link

PHYTEC EEPROM Flashtool

This tool is intended for reading from and writing to PHYTEC SOM EEPROM chips.

Use of this tool requires a properly-formatted configuration file for each target PHYTEC platform (PCM-057.yml for PCM-057 boards, for example). By default, this tool looks for configuration files in a 'configs' subdirectory to where the script is currently located.

Installation (Linux) ####################

You can leave the virtualenv by running deactivate in the bash. Do not forget to source the virtualenv again next time you want to use it.

Installation (Windows) ######################

This guide is written for PowerShell.

Installation Without Virtualenv ###############################

You can run the phytec-eeprom-flashtool without a virtual environment. However, it's highly recommended to use a virtual environment to not overwrite dependencies of other projects.

Usage

This tool has five different modes and required/optional arguments.

Version


Prints the current version of this tool.

.. code-block:: bash

phytec_eeprom_flashtool -v
phytec_eeprom_flashtool --version

Read


Reads the product configuration from an EEPROM chips and dumps it to the console. Alternatively it can read a binary file by passing the filename via -file or -f argument.

It takes the argument -som followed by the product name as parameter. Required arguments: -som

.. code-block:: bash

phytec_eeprom_flashtool read -som <som>

If the product configuration is a PCM/PCL-KSM/KSP then -som is used to enter the PCM/PCL number and the argument -ksx is additionally specified. Required arguments: read -som -ksx <KSM/KSP>

.. code-block:: bash

phytec_eeprom_flashtool read -som <som> -ksx <KSP/KSX>

For a pure KSM/KSX -ksx replaces the parameter -som. Required arguments: read -ksx <KSM/KSP>

.. code-block:: bash

phytec_eeprom_flashtool read -ksx <KSP/KSX>

Each of the above commands allows an optional -file or -f argument to read directly from a file.

.. code-block:: bash

phytec_eeprom_flashtool read -som <som> -f <path to file>

Example:

.. code-block:: bash

phytec_eeprom_flashtool read -som PCL-066
phytec_eeprom_flashtool read -ksx KSP08
phytec_eeprom_flashtool read -som PCL-066 -ksx KSP-24
phytec_eeprom_flashtool read -som PCL-075 -f output/PCL-075-7432CE11I.A0_10_0000

Write


Writes a product configuration to the EEPROM chip. This commands takes the the argument -som followed by the argument -kit for the article number and -rev for the PCB revision followed by -bom for the BOM revision. -opt is an optional argument for the optiontree revision and defaults to 0.

.. code-block:: bash

phytec_eeprom_flashtool write -som <som> -kit <bom> -pcb <pcb rev> -bom <bom rev>

KSM/KSP:

.. code-block:: bash

phytec_eeprom_flashtool write -ksx <KSM/KSP> -kit <bom> -pcb <pcb rev> -bom <bom rev>

PCM/PCL-KSM/KSP:

.. code-block:: bash

phytec_eeprom_flashtool write -som <som> -ksx <KSM/KSP> -kit <bom> -pcb <pcb rev> -bom <bom rev>

Example:

.. code-block:: bash

phytec_eeprom_flashtool write -som PCL-066 -kit 3022210I rev 1a -bom A0
phytec_eeprom_flashtool write -ksx KSP08 -kit 3322115I rev 2 -bom A0
phytec_eeprom_flashtool write -som PCL-066 -ksx KSP24 -kit 3022210I rev 1 -bom A0

Create


Creates a binary file at the output directory which can then be written to the EEPROM chip with dd or JTAG. It also dumps the complete configuration on the console. The default filename and directory can be changed by the -file or -f argument. The other necessary and optional arguments are the same as for the write command.

.. code-block:: bash

phytec_eeprom_flashtool create -som <som> -kit <bom> -rev <pcb rev> -bom <bom rev>

KSM/KSP:

.. code-block:: bash

phytec_eeprom_flashtool create -ksx <KSM/KSP> -kit <bom> -rev <pcb rev> -bom <bom rev>

PCM/PCL-KSM/KSP:

.. code-block:: bash

phytec_eeprom_flashtool create -som <som> -ksx <KSM/KSP> -kit <bom> -rev <pcb rev> -bom <bom rev>

Example:

.. code-block:: bash

phytec_eeprom_flashtool create -som PCL-066 -kit 3022210I -rev 1a -bom A0
phytec_eeprom_flashtool create -ksx KSP08 -kit 3022210I -rev 2 -bom A0
phytec_eeprom_flashtool create -som PCL-066 -ksx KSP24 -kit 3022210I -rev 1 -bom A0
phytec_eeprom_flashtool create -som PCL-066 -kit 3022210I -rev 1 -bom A0 -file eeprom.dat

Display


Dumps the complete configuration on the console without communicating with a EEPROM chip. It takes same arguments as for create or write and also allows to display the content of a local file with the -file or -f argument.

.. code-block:: bash

phytec_eeprom_flashtool display -som <som> -kit <bom> -rev <pcb rev> -bom <bom rev>

KSM/KSP:

.. code-block:: bash

phytec_eeprom_flashtool display -ksx <KSM/KSP> -kit <bom> -rev <pcb rev> -bom <bom rev>

PCM/PCL-KSM/KSP:

.. code-block:: bash

phytec_eeprom_flashtool display -som <som> -ksx <KSM/KSP> -kit <bom> -rev <pcb rev> -bom <bom rev>

Example:

.. code-block:: bash

phytec_eeprom_flashtool display -som PCL-066 -kit 3022210I -rev 1a -bom A0
phytec_eeprom_flashtool display -ksx KSP08 -kit 3322115I -rev 2 -bom A0
phytec_eeprom_flashtool display -som PCL-066 -ksx KSP24 -rev 1 -kit 3022210I -bom A0
phytec_eeprom_flashtool display -som PCL-066 -kit 3022210I -rev 1 -bom A0 -file eeprom.dat

Blocks

Blocks are a flexible way to extend the general information inside the EEPROM chip by information required for a product. For example, it allows to store multiple MACs for Ethernet interfaces.

Please keep in mind each transaction will read the content first, append the block and writes the new image back to the EEPROM chip. It's not possible to remove a block.

Each command requires either the -som and/or -ksx argument to identify the EEPROM chip.

It's also possible to append a block to a local binary file with the -file or -f argument.

MAC Block


Adds a MAC block with information about the physical Ethernet interface and MAC address.

Requires the Ethernet interface number and MAC address as parameters. The following example adds two MACs to the interface 0 and 1.

.. code-block:: bash

phytec_eeprom_flashtool add-mac -som PCM-071 0 00:91:da:dc:1f:c5
phytec_eeprom_flashtool add-mac -som PCM-071 1 00:91:da:dc:1f:c6

The following commands add two MACs to a local binary file.

.. code-block:: bash

phytec_eeprom_flashtool add-mac -som PCM-071 0 00:91:da:dc:1f:c5 -f output/binary_file
phytec_eeprom_flashtool add-mac -som PCM-071 1 00:91:da:dc:1f:c6 -f output/binary_file

Key Value Block

Adds a key-value pair to the EEPROM chip. Both the key and value are stored as UTF-8 string.

This block can be used to write persistent data into the EEPROM chip during production or assembly and can be used in software later.

.. code-block:: bash

phytec_eeprom_flashtool add-key-value -som PCM-071 SERIAL CAFE1234

The following command adds the key-value pair CAFE1234, SERIAL to a local binary file.

.. code-block:: bash

phytec_eeprom_flashtool add-key-value -som PCM-071 SERIAL CAFE1234 -f output/binary_file

License #######

Copyright (C) 2024 PHYTEC Holding AG. Released under the license_.

.. _license: COPYING.MIT