FreeCalypso > hg > freecalypso-tools
comparison doc/Calypso-chip-versions @ 446:a449ae0a1cec
better documentation for calversion
| author | Mychaela Falconia <falcon@freecalypso.org> |
|---|---|
| date | Sat, 29 Dec 2018 06:59:27 +0000 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| 445:6b20d68a2a88 | 446:a449ae0a1cec |
|---|---|
| 1 There have been many different versions of the Calypso silicon made over the | |
| 2 years, including hardware differences, at least 3 ARM boot ROM versions and at | |
| 3 least 3 DSP ROM versions. New target utility calversion (to be run via fc-iram) | |
| 4 helps identify unknown Calypso chip versions: it reports the ARM boot ROM | |
| 5 version, the DSP ROM version and the values read from the few documented ID | |
| 6 registers. | |
| 7 | |
| 8 In order to be able to use our calversion utility to identify an unknown Calypso | |
| 9 variant, the Calypso device under examination needs to satisfy the following | |
| 10 two requirements: | |
| 11 | |
| 12 * The boot ROM needs to be enabled by nIBOOT pin strapping on the board, in | |
| 13 order to be able to get in with fc-iram; | |
| 14 | |
| 15 * The Calypso chip version to be identified needs to be Calypso C05 rev B or | |
| 16 later, containing ARM boot ROM version 0200 or 0300. This limitation exists | |
| 17 because our target-utils framework on which calversion is based depends on being | |
| 18 booted by a known Calypso boot ROM version in order to figure out which UART it | |
| 19 should use for communication. If anyone encounters a device with a Calypso C05 | |
| 20 rev A chip in it, you will need to somehow read out its boot ROM, send us that | |
| 21 boot ROM dump, and we will extend our UART detection logic in target-utils to | |
| 22 support that ancient boot ROM version which is currently unknown to us. | |
| 23 | |
| 24 If you have a Calypso boot ROM version which is not currently supported by our | |
| 25 target-utils, how can you read it out? The simplest way (assuming that nIBOOT | |
| 26 is strapped low on the board to enable the boot ROM) would be to edit | |
| 27 target-utils/libcommon/uartsel.c in your local copy, hard-code whichever UART | |
| 28 you are using in the uart_select_init() function, removing the boot ROM | |
| 29 version-dependent autodetection code, rebuild calversion and loadagent with | |
| 30 this hack, and use the modified loadagent with fc-loadtool to dump the ROM. | |
| 31 Alternatively, if the boot ROM is disabled with nIBOOT strapped high, you may | |
| 32 be able to read it out via JTAG, or perhaps via fc-memdump if the device | |
| 33 already runs some compatible firmware. | |
| 34 | |
| 35 Back to our calversion utility, if you have a Calypso device with a not-quite- | |
| 36 known chip version in it and you are able to get in with fc-loadtool, you can | |
| 37 run calversion on it as follows: | |
| 38 | |
| 39 fc-iram /dev/ttyXXX /opt/freecalypso/target-bin/calversion.srec | |
| 40 | |
| 41 You should get output that looks like this: | |
| 42 | |
| 43 Calypso version ID program running | |
| 44 Loaded via boot ROM v0300, UART 0 (MODEM) at baud rate #0 | |
| 45 CLKTCXO input autodetected to be 26 MHz | |
| 46 Device ID code: 0xB496 | |
| 47 Device version code: 0x0000 | |
| 48 ARM ID code: 0xFFF3 | |
| 49 cDSP ID code: 0x0128 | |
| 50 Releasing DSP core from reset | |
| 51 Waiting for DSP bootloader READY status | |
| 52 Loading NDB parameters | |
| 53 Loading PARAM area | |
| 54 Booting DSP main code | |
| 55 DSP reports version 0x3606 0x0000 | |
| 56 | |
| 57 You should be able to see which of the two supported boot ROM versions (0200 or | |
| 58 0300) your Calypso chip has, which UART was used to load the code, whether your | |
| 59 board uses a 13 MHz or a 26 MHz clock (this is a board-level property, not a | |
| 60 property of the Calypso chip), what values are reported in the device ID | |
| 61 registers, and the last bit which takes the most work to obtain - the DSP ROM | |
| 62 version. | |
| 63 | |
| 64 The boot ROM version and the CLKTCXO input frequency are also reported when you | |
| 65 run fc-loadtool, and the device ID registers can be trivially read with the r16 | |
| 66 command once you are in loadtool, but getting the DSP ROM version requires | |
| 67 putting the DSP through its messy boot process, which is why a special program | |
| 68 had to be written for the task. |
