Each CaribouLite is pre-configured by the contract manufacturer before shipping. The Full and the ISM versions are further distinguishable by the configuration resistors placed on the back side of the board (marked as “CFG/1234”).
CaribouLite doesn’t have an FPGA configuration flash device, as the ICE40 device is dynamically configured by the RPI quickly and on-demand. It rather has a general board configuration device (EEPROM) as required by RPi’s HAT device rules.
The code is located here and is based on RPi EERPROM Utils Tools provided by RaspberryPi. The ID EEPROM internal structure is described here.
The general structure is as follows:
To access the EEPROM data, one can use our code which also validates and decodes the information. The easier way to access the information within the programmed EEPROM is to use Raspbian’s Linux sysfs
as follows:
cd /proc/device-tree/hat/
# name
cat name
# product: "CaribouLite RPI Hat"
cat product
# product_id: "0x0001"
cat product_id
# product_ver: "0x0001"
cat product_ver
# uuid: "AAAAAAAA-BBBB-CCCC-DDDD-EEEEEEEEEEEE" GUID format
# which is also the board's raw serial number
cat uuid
# vendor: "CaribouLabs.co"
cat vendor
Reprogramming the EEPROM is possible using our EEPROM utilities. More info - coming soon.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.