Kasli-I2C
A collection of Python scripts for interacting with Kasli(-SoC) and other Sinara hardware over I2C, primarily for flashing firmware.
To run these scripts, no firmware is necessary on the Kasli(-SoC). The scripts interface directly with the I2C bus through USB (FTDI bridge).
Only power and USB connection need to be provided.
Flashing firmware on compatible boards
The flash_<device>.py scripts are used to flash the firmware on compatible Sinara cards.
The currently supported and used in production compatible cards are:
- Fastino
- Urukul - hardware revision v1.6 or higher (ICE40-based)
The phaser script has functionality limited only to EUI48 updates. For flashing firmware, use the JTAG method.
Usage
python flash_<device>.py <kasli-number> <eem-slot> <action>
Arguments
<device>: The type of card to flash. One of:flash_fastino.pyflash_urukul.py
<kasli-number>: The number # of the Kasli board. Usually0if there is only one connected.<eem-slot>: The EEM slot where the device is installed (e.g.,EEM0,EEM1, etc.). The slot must correspond to EEM0 on the card to be flashed.<action>:eeprom <EUI48>: Updates the EUI48 value on the EEPROM.read <dump-file>: Reads the flash content into a file. Must be followed by a file path.write <firmware-file>: Writes the firmware file to the flash. Must be followed by a file path.
Example
python flash_fastino.py 0 EEM1 write fastino_firmware.bin
Other Kasli tools
kasli_get_mac.py
Reads and prints the MAC address (EUI-48) from the Kasli EEPROM.
Usage
python kasli_get_mac.py [-s <kasli-number>]
-s <kasli-number>: (Optional) Number of the Kasli FTDI device. If not provided, it will try to connect to the first one found.
Example
python3 kasli_get_mac.py
Description
Utilities to access the Sinara I2C tree via Kasli, including Sinara EEPROM deployment, firmware flashing for Fastino, Banker
Languages
Python
98.1%
Shell
1.9%