Прошивка I2C EEPROM (mcom03-eeprom)

Утилита mcom03-eeprom предназначена для прошивки I2C ID EEPROM на carrier board SMARC-модулей. Согласно SMARC HW Specification Version 2.1, I2C ID EEPROM должна быть совместима с Atmel 24C32 и использовать I2C-адрес 0x57.

Справочник:

$ mcom03-eeprom --help
usage: mcom03-eeprom [-h] [-a ADDR] [-b BUS] [-d DATASIZE] [-f FLASHER] [-l {1,2,3,4}]
                     [-m {text,bin}] [-p PORT] [-r REGADDR] [-s {0,1}] [-v] [--version]
                     {read,flasher,write} ...

Tool to write/read data to EEPROM on carrier board.

positional arguments:
  {read,flasher,write}
    read                Read EEPROM
    flasher             Upload flasher to RISC0 RAM and check flasher is running
    write               Write new data to EEPROM

options:
  -h, --help            show this help message and exit
  -a ADDR, --addr ADDR  Address of device on I2C bus
  -b BUS, --bus BUS     i2c bus number
  -d DATASIZE, --datasize DATASIZE
                        data size to read or write
  -f FLASHER, --flasher FLASHER
                        path to Intel HEX baremetal application to be executed on RISC0(use HEX
                        distributed with the tool if not specified)
  -l {1,2,3,4}, --length {1,2,3,4}
                        i2c address length in bytes
  -m {text,bin}, --mode {text,bin}
                        i2c read mode ('text' or 'bin')
  -p PORT, --port PORT  Serial port on host the device UART0 is connected to
  -r REGADDR, --regaddr REGADDR
                        i2c register address
  -s {0,1}, --speed {0,1}
                        i2c speed (0 - slow, 1 - fast)
  -v, --verbose         Show UART traffic
  --version             show program's version number and exit

Запись

Запись строки в EEPROM:

mcom03-eeprom write <string>

Для выбора шины I2C предусмотрена опция -b. Команда с выбором шины:

mcom03-eeprom -b 0 write <string>

Перечень значений для прошивки в ID EEPROM носителей SMARC приведён в таблице:

Плата-носитель

Имя платы для прошивки

NGFW-CB r1.0

ngfwcb-r1.0

ELV-SMARC-CB r1.0

elvsmarccb-r1.0

ELV-SMARC-CB r2.9.1

elvsmarccb-r2.9

ELV-SMARC-CB r2.10

elvsmarccb-r2.10

ELV-SMARC-CB r2.10.3

elvsmarccb-r2.10.3

ELV-SMARC-CB r3.1.0

elvsmarccb-r3.1.0

ELV-SMARC-CB r3.2.1

elvsmarccb-r3.2.1

ELV-SMARC-CB r3.3.0

elvsmarccb-r3.3.0

Для носителей, не указанных в таблице, прошивка ID EEPROM не требуется.

Справочник:

$ mcom03-eeprom write --help
usage: mcom03-eeprom write [-h] name

positional arguments:
  name        String to write in EEPROM

options:
  -h, --help  show this help message and exit

Чтение

Для чтения содержимого EEPROM используется команда read утилиты mcom03-eeprom. Утилита читает и выводит в виде строки указанное с ключом -d количество байтов, записанных в EEPROM:

mcom03-eeprom -d 128 read

Справочник:

$ mcom03-eeprom read --help
usage: mcom03-eeprom read [-h]

options:
  -h, --help  show this help message and exit

Загрузка flasher

Загрузить прошивальщик по UART в RISC0 CRAM и проверить, что прошивальщик ожидает команды по UART. Команда используется для отладки:

mcom03-eeprom flasher

Справочник:

$ mcom03-eeprom flasher --help
usage: mcom03-eeprom flasher [-h]

options:
  -h, --help  show this help message and exit