Open main menu

DAVE Developer's Wiki β

Changes

ConfigID management (BELK/BXELK)

1,453 bytes removed, 15:09, 23 November 2021
no edit summary
{{Applies To Bora}}
{{Applies To BoraX}}
{{Applies To BoraLite}}
{{InfoBoxBottom}}
|[[Bora_Embedded_Linux_Kit_(BELK)#BELK_software_components|3.0.0]]
|First release
|-
|2.0.0
|December 2016
|[[Bora_Embedded_Linux_Kit_(BELK)#BXELK_software_components#BELK_3.0.2_.2F_BXELK_1.0.1|3.0.2 / 1.0.1]]<br>[[Bora_Embedded_Linux_Kit_(BELK)#BXELK_software_components#BELK_4.0.0_.2F_BXELK_2.0.0|4.0.0 / 2.0.0]]
|Changed page name
|-
|2.1.0
|October 2019
|[[Bora_Embedded_Linux_Kit_(BELK)#BXELK_software_components#BELK_4.1.0|4.1.0]]
|Added BORA Lite
|-
|}
<section begin=BELK/>==InstructionsConfigID management==''ConfigID'' is a new feature of DAVE Embedded Systems products. It 's main purpose is assumed that providing an automatic mechanism for the development environment has been set up properly as described [[Build_system_(BELK)|here]]identification of the product model and configuration.
ConfigID is a new feature of DAVE Embedded Systems products. ItGeneral information about ''s main purpose is providing an automatic mechanism for the identification of the product model and configuration.With ConfigID, we aim at:completing the hardware configuration information that the software can't normally auto-detect (i.e. RAM chip version,...), implementing a dedicated reliable detect procedurewhen required, overriding the auto-detected hardware configuration informationWhen implemented, this mechanism allows for:initializing in the proper way the hardware platform, based on the specific features and parameters of the product, using a common software base (eg: a typical case is the SDRAM controller parameters, which must be configured by U-Boot depending on the particular memory chip, which can be different for the various SOM models)getting the complete hardware configuration (combining ConfigID with the information collectable at runtime) of a product deployed on the fieldIn simple words, model identification means the capability of reading a numerical code, stored in an available device (SOC's OTP , I2C EEPROM, 1-wire memories, protected NOR flash, etc.)There are two ConfigIDs:SOM ConfigID: which reflects the characteristics of the SOM (stored on the SOM itself)Carrier Board (CB) ConfigID: which reflects the characteristics of the carrier board that hosts the SOM (stored on the carrier board itself and read by the SOM at boot time)An additional attribute is UniqueID, which is a read-only code which univocally identifies a single product and is used for traceabilityprovided [[ConfigID_and_UniqueID|here]].3.4.8.1 Customer's actionDAVE Embedded Systems recommends to be up-to-date with Official SOM's BSPs for taking advantages of ConfigIDThe following sections details some Bora/UniqueId features: this is the only required actionBoraX specific information.ConfigID advantage: to allow U-Boot bootloader to be executed only with the correct configuration (if the U-Boot loaded is not the proper one, it may stop execution avoiding incorrect behaviour)UniqueID advantage: to trace univocally each individual SOMs and, in turn, all the on-the-field equipments3.4.8.2 ConfigID valuesConfigID is a N-bit (typically N>8) signed integer, that can have the following values:< 0: error-1: not initialized= 0: ConfigID legacyfor prototypes (ConfigID not yet defined) or for products manufactured before the introduction of the ConfigID feature> 0: valid ConfigIDvalues are reported accordingly with the specific product table3.4.8.3 ==ConfigID hardware implementation on Bora/BoraX/BoraLite===
BORA uses the first 32bytes OTP block on NOR SPI to store ConfigID (and its CRC32), UniqueID (and its CRC32)
3.4==== ConfigID on BoraLite====For [[BORA Lite SOM | BORA Lite]] module configured for booting from NAND, the ConfigID is stored on internal I2C EPROM: see [[ConfigID_and_UniqueID#DAVE_Embedded_Systems.827_hardware_implementation | here]] for more information.4  ===ConfigID software implementation on Bora/BoraX/BoraLite===
U-Boot integrates the software routines for reading and displaying the ConfigID. Hereunder an example of SOM ConfigID at startup:
<pre>
U-Boot 2014.07 (Jul 24 2015 - 14:30:55) [belk-2.2.0]
Net: Gem.e000b000
zynq-uboot>
</pre>For accesing these information on Linux procfs, the device tree must be modified (using u-boot fdt command): for . For example:<pre>
zynq-uboot> print loadfdt configid_fixupfdt
loadfdt=tftpboot ${fdtaddr} ${fdtfile}
FDT: override 'som_uniqueid' with 'fffffefc:fffffefc'
FDT: override 'cb_uniqueid' with 'a600000f:24188b2d'
</pre>It is possible to read the ConfigID/UniqueID via procfs; for . For example:<pre>
root@bora:~# for f in /proc/device-tree/*id*; do echo -n "$f: "; cat $f; echo; done
/proc/device-tree/cb_configid: 00000001
df646299:0b0579d4
root@axel-lite:~#
</pre>
<section end=BELK/>
8,226
edits