| How to use XDB for Debug and for recovering and programming U-Boot image: |
| -------------------------------------------------------------------------- |
| |
| Assumptions: |
| ------------ |
| |
| - This documentation refers to XDB scripts located under <u_boot root dir>/tools/marvell/debugger_scripts/XDB/ |
| - This documentation refer to Armada XP, Armada 370, AvantaLP, Armada 375, MSYS Alleycat3, MSYS Bobcat2, Armada 38x |
| and Armada 39x platforms |
| |
| The <u_boot root dir>/tools/marvell/debugger_scripts/XDB/ includes the following files: |
| |
| SoC configuration files: |
| - 88F6xxx.xsf - covers all Cortex A9 based SoCs: Armada 37x/38x/39x and Avanta LP |
| - AXP_MSYS.xsf - covers all PJ4B based SoCs: Armada XP and Armada 370, BobCat2 and AlleyCat3 |
| |
| Common startup script |
| - startup.xdb - the script is common for all platforms and responsible for DRAM initialisation |
| buttons creation and obtaining the target device ID. |
| |
| Dynamic DRAM initialization script |
| - bin_hdr_init.xdb - suitable for all above SoC families |
| |
| Static DRAM initialization scripts |
| - xxx_static.xdb - family-specific static DRAM initialization scripts. |
| Note that not all SoC families are covered. |
| |
| howto.txt |
| - This file. |
| |
| bin_hdr.elf |
| - A bin_hdr.elf file located at:: |
| - <u_boot root directory>/tools/marvell/bin_hdr/ |
| - <release directory>/binaries[release number][board name]/bin_hdr/bin_hdr.elf |
| |
| |
| XDB configuration steps to load U-Boot Image: |
| -------------------------------------------------------- |
| Requirements: |
| - A valid serial connection is configured between the host and target. |
| - XDB software version 5.7 or later is installed and running. |
| |
| JTAG Connection: |
| ---------------- |
| |
| 1. Connect Marvell JTAG POD to the target board. |
| |
| 2. Copy SoC configuration files (*.xsf) into configuration folder inside the XDB installation directory: |
| <XDB_installation_directory>/xdb/configurations/jtag/SoC/ARMADA_3XX_XP |
| If the XDB 5.7 is installed through wine, the default installation directory is: |
| ~/.wine/drive_c/Marvell/XDB5.7 |
| For Windows the typical installation directory is: |
| C:/Marvell/XDB5.7 |
| |
| 3. Open the copied configuration file (*.xsf) with text editor or change the configuration |
| using "settings" window within the Marvell(R) eXtreme Debugger 5.7 "Start up" form. |
| When using the GUI application Marvell(R) eXtreme Debugger 5.7 "Start up" form, |
| first select the related configuration file *.xsf (copied to ARMADA_3XX_XP directory as explained above) |
| Then press the "Setting" button above in the upper level |
| of the form. |
| a) Edit the "Working Directory" field to point to the U-Boot HOME directory. |
| In case editing the XSF file manually, refer to "-W" argument: |
| For instance, the Linux work folder may be: |
| -W "/home/user/work/u-boot" |
| Example of Windows working directory: |
| -W "C:/Projects/u-boot" |
| b) Ensure the CPU core connection type is suitable for the desired platform: |
| Linux JTAG probe connection type: |
| -L "tcp:127.0.0.1:3020:usb:" |
| Windows JTAG probe connection type: |
| -L "usb:" |
| c) Update the correct number of cores available in your SoC device. |
| Within the GUI form: "CS-JTAG" tabs and for the manual TXT mode: |
| CS$2/ CS$3/ CS$4 |
| d) Save your changes into configuration file |
| |
| 4. Start the XDB GUI. |
| In Linux use the command "startxdb gui&". Once the startup dialogue box appears on the screen, |
| select the required configuration file edited in previous step. |
| In Windows double-click the previously edited configuration file. |
| |
| 5. Make sure that "connection type" of the first core is set to "Reset SOC & stop". |
| The "connection type" is located under the most left "CS-JTAG" tab in the settings window |
| of the startup menu (it appears when "settings" button is pressed in the start-up dialogue box). |
| Please note that this is needed to be done only once. |
| |
| 6. In the start-up dialogue box click the Start button for launching the main XDB window. |
| |
| 7. Wait for a connection to be established. The Command window in the main interface is shown by default |
| and provides a CLI to XDB core. The connection status will be shown in this window: |
| |
| - If the connection was successful a "xdb>" prompt will appear at the bottom of the command window. |
| - If "xdb_HeldInReset>" / "xdb_nocomm>" prompt appears at the bottom of the command window, |
| this is an indication that the system is in failure state. Make sure the board is powered, |
| the POD is properly connected, and the correct .xsf script is used. |
| |
| Note: If a reset is not desired when connecting to a platform, choose the "Try Hot Connect & Stop" |
| option at step 3. This mode assumes that the system has a valid running image. |
| |
| DRAM Initialization: |
| -------------------- |
| |
| 8. If the target was stopped on a reset vector ("Reset SOC & stop" connection was selected on start), |
| the XDB startup script will try to read the device ID from the SoC. |
| If the Device ID obtained successfully, the command window will show a message "Running on XXXX platform", |
| where XXXX is one of supported Marvell platforms like "Armada 38x", "Armada XP", etc. |
| Following the device detection, the startup script creates user interface buttons to be used for running |
| dynamic or static DRAM initialization |
| If the script is unable to obtain the device ID, the "Unknown device ID" message is printed in the command |
| window and a button for static DRAM initialization is not created in GUI. |
| |
| |
| 9. Press either "DynamicInitDDR" or "StaticInitDDR" button for running the DRAM initialization. |
| The dynamic initialization process uses binary header ELF file created in tools/marvell/bin_hdr |
| during u-boot compilation. |
| The static initialization does not rely on the binary header and brings up DDR controller using |
| direct registers writes |
| |
| 10. Once the DRAM initialization complete and an appropriate message is printed in XDB command window, the u-boot |
| image can be loaded into the target DRAM. |
| |
| 11. To load the u-Boot do the following: |
| |
| - From the XDB tool main menu Click on the File -> Load. |
| - The "Load" menu will appear. |
| - Click the "Symbols And Data" option. |
| - Click the Browse button and under u-boot root folder select the "u-boot" file (without any extension) |
| - Check the "Download", and "initfile" options in the "Load" menu, and click "Ok" |
| - Wait until the download completed. The download progress is presented in percentage in the bottom right |
| corner (appears only when download in progress). |
| |
| Note: to load the symbols to spesific address(after u-boot relocation need to upload the symbols again), in load |
| window need to add "-sa <address>" in BD option. |
| for example the code relocated to 0x7fecd000, need to add "-sa 0x7fecd000" |
| |
| Running / Recovering u-Boot |
| ---------------------------------- |
| To Recover/ burn a u-Boot image to the flash DRAM Initialization: |
| |
| 12. Press the Run icon (the green traffic light), or press "Ctrl +r". |
| The u-Boot image loaded into target RAM will be executed. |
| The u-boot will run, and a normal u-boot plot will appear on the Serial connection. |
| |
| 13. Configure IP parameters (ipaddr, serverip, netmask, gatewayip) and use a "bubt" command to flashing |
| the new u-boot image into target boot device. |
| Please refer to the "How to upgrade to a new version of U-Boot" in the u-boot release notes. |
| |
| Note: refer to XDB documentation for the full tool capabilities. |
| |