Open main menu

DAVE Developer's Wiki β

Changes

ConfigID management (BELK/BXELK)

3,453 bytes added, 15:09, 23 November 2021
no edit summary
TBD{{InfoBoxTop}}{{Applies To Bora}}{{Applies To BoraX}}{{Applies To BoraLite}}{{InfoBoxBottom}} == History =={| class="wikitable" border="1"!Version!Date!BELK version!Notes|-|1.0.0|November 2015|[[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/>==ConfigID management==''ConfigID'' is a new feature of DAVE Embedded Systems products. It's main purpose is providing an automatic mechanism for the identification of the product model and configuration. General information about ''ConfigID'' are provided [[ConfigID_and_UniqueID|here]]. The following sections details some Bora/BoraX specific information.===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)==== 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.27_hardware_implementation | here]] for more information. ===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] Board: BORAI2C: readyDRAM: ECC disabled 1 GiBNAND: 1024 MiBMMC: zynq_sdhci: 0SF: Detected S25FL256S_64K with page size 256 Bytes, erase size 64 KiB, total 32 MiBIn: serialOut: serialErr: serialSOM ConfigID#: 00000002SOM UniqueID#: fffffefc:fffffefcCB ConfigID#: 00000001CB UniqueID#: a600000f:24188b2dNet: Gem.e000b000zynq-uboot></pre>For accesing these information on Linux procfs, the device tree must be modified (using u-boot fdt command). For example:<pre>zynq-uboot> print loadfdt configid_fixupfdtloadfdt=tftpboot ${fdtaddr} ${fdtfile}configid_fixupfdt=if configid checkfdt ${fdtaddr} som_configid ${som_configid#}; then if configid checkfdt ${fdtaddr} cb_configid ${cb_configid#}; then configid fdt_uniqueid ${fdtaddr}; fi; fi zynq-uboot> run loadfdt configid_fixupfdtGem.e000b000 Waiting for PHY auto negotiation to complete....... doneUsing Gem.e000b000 deviceTFTP from server 192.168.0.13; our IP address is 192.168.0.77Filename 'bora/bora.dtb.as'.Load address: 0x2000000Loading: T ## 1000 Bytes/sdoneBytes transferred = 10019 (2723 hex)FDT: property som_configid FDT: override 'som_configid' with '00000002'FDT: property cb_configid matchFDT: 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 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/proc/device-tree/cb_uniqueid: a600000f:24188b2d/proc/device-tree/som_configid: 00000002/proc/device-tree/som_uniqueid: fffffefc:fffffefcdf646299:0b0579d4root@axel-lite:~#</pre><section end=BELK/>
8,226
edits