Changes between Version 4 and Version 5 of Tools/Xilinx_SDK


Ignore:
Timestamp:
May 4, 2012, 12:59:26 PM (12 years ago)
Author:
murphpo
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Tools/Xilinx_SDK

    v4 v5  
    2727----
    2828'''PPC ISOCM access via XMD'''
    29 The PowerPC instruction side on chip memory (ISOCM) interface is a useful feature- a memory block for code which the PPC can access without occupying the main PLB. But, because the ISOCM memory is not on the main PLB, the debugger cannot access it directly. XMD can access ISOCM, but it requires specific flags be passed during XMD initialization. Unfrotunately Xiilnx did not automate the process of setting these flags, even in projects which use the ISOCM.
     29The PowerPC instruction side on chip memory (ISOCM) interface is a useful feature- a memory block for code which the PPC can access without occupying the main PLB. But, because the ISOCM memory is not on the main PLB, the debugger cannot access it directly. The PPC405 core provides special instructions and registers for accessing the ISOCM interface via the PLB. The debugger (XMD) can use this passthrough, but it requires specific flags be passed during XMD initialization. Unfrotunately Xiilnx did not automate the process of setting these flags, even in projects which use the ISOCM.
     30
     31The ISOCM flags are passed with the XMD connect command:
     32{{{
     33connect hw ppc -debugdevice isocmstartadr X isocmsize Y isocmdcrstartadr Z
     34}}}
     35where:
     36 * X: the base address of the ISOCM, as specified in the XPS
     37 * Y: the size of the ISOCM space in bytes, as specified in the XPS
     38 * Z: the address of the DCR ISOCM registers, fixed at 0x100
     39
     40So for a 64KB ISOCM at 0xFFFF0000, the command would be {{{connect hw ppc -debugdevice isocmstartadr 0xFFFF0000 isocmsize 65536 isocmdcrstartadr 0x100}}}.
     41
     42To automate this in the SDK (so it works with "Run" and "Debug" launch processes), open the Run/Debug settings for your software project and go to the Debugger Options tab. Notice the ISOCM field under PowerPC 405 Debugger Connection Options. The SDK will pass the value from this field to the {{{isocmstartadr}}} XMD argument. Unfortunately, the SDK will not pass arguments for {{{isocmsize}}} or {{{isocmdcrstartadr}}} automatically.
     43
     44But, the SDK not sanitize the value entered in the ISOCM field before passing it to XMD. We can use this to cheat and pass all the XMD flags we need. Set the value of the ISOCM field to:
     45{{{
     46X isocmsize Y isocmdcrstartadr 0x100
     47}}}
     48
     49This will result in an XMD connect command of {{{connect hw ppc -debugdevice isocmstartadr X isocmsize Y isocmdcrstartadr 0x100}}}, exactly what we need.
     50
     51
     52Some related links:
     53 * http://www.xilinx.com/support/answers/29511.htm
     54 * http://www.xilinx.com/support/documentation/sw_manuals/xilinx13_4/est_rm.pdf (table 10-10)
     55 * http://www.xilinx.com/support/documentation/ip_documentation/ppc405.pdf (table 2)