;-------------------------------------------------------------------------- ; ; ; PEEDI sample target configuration file ; ; Ronetix GmbH ; ; Supported devices : Freescale i.MX6Q ; Supported board : Sabre Lite board ; ; Revision : 1.2 ; ; Date : January 25, 2019 ; ; PEEDI supports different Multi-Processor modes: ; SMP - all cores in a SMP group resume, halt, step synchronously ; AMP - for all cores in a AMP group can be defined which activity ; to perform single and which synchronously. ; RESUME, HALT, BREAK, Single Step can be defined separately. ; By default the AMP mode is BREAK. ; The AMP mode can be see and modified with the 'amp' command. ; ; amp ; show the current mode ; amp h ; set HALT mode ; amp r ; set RESUME mode ; amp bh ; set HALT and BREAK mode ; ; NOTE!!! ; The Sabre Lite board has non standard JTAG connector pinout. ; In order to use the Rinetix SWD10 adapter: ; http://download.ronetix.info/peedi/doc/schematics/peedi_swd10.pdf ; You will have to cut or bend pins 7 and 9 of JTAG connector J13, ; so they do not contact the corresponding cable connector holes. ; ; The file is delivered "AS IS" without warranty or condition of any ; kind, either express, implied or statutory. This includes without ; limitation any warranty or condition with respect to merchantability or ; fitness for any particular purpose, or against the infringements of ; intellectual property rights of others. ; ;-------------------------------------------------------------------------- ;-------------------------------------------------------------------------- ; The following section contains licenses that are required for PEEDI to ; operate. These licenses must be filled before using this file. ; The [LICENSE] section may contain license keys for one or more PEEDIs. ; ; Example: ; [LICENSE] ; KEY = UPDATE_24MAY2013, 1111-1111-1111-1 ; KEY = XXXXX, 2222-2222-2222-2 ; ; The [LICENSE] section may point to an external file which contains ; license keys for one or more PEEDIs. The external file must include ; the text [LICENSE] followed by all keys. ; ; Example: ; [LICENSE] ; FILE = tftp://192.168.1.1/license.txt ; or ; FILE=eep:license.txt ; or ; FILE = ftp://user:password@192.168.1.1/license.txt ; ; ; PEEDI is shipped with license keys stored in "eep:license.txt" and ; printed on a label on the bottom side of PEEDI. ; [LICENSE] FILE = eep:license.txt ;-------------------------------------------------------------------------- [DEBUGGER] PROTOCOL = gdb_remote ; gdb remote REMOTE_PORT = 2000 ; TCP/IP port [TARGET] PLATFORM = CORTEX [PLATFORM_Cortex] JTAG_CHAIN = 5, 4, 4 ; list of TAP controllers in the JTAG chain JTAG_CLOCK = 10000 ; JTAG Clock in [kHz] TRST_TYPE = PUSHPULL ; type of TRST output: OPENDRAIN or PUSHPULL RESET_TIME = 20 ; length of RESET pulse in ms WAKEUP_TIME = 20 ; delay after power up TIME_AFTER_RESET = 600 ; delay after RST is released VERBOSE_INFO = 1 ; print info if CORE0_DEBUG_ADDR is not defined CORE0 = CORTEX-A_AMP, 2, 0xBA00477 ; TAP is Cortex-A CPU CORE0_DEBUG_ADDR = 0x82150000, 0x82158000 ; Coresight debug and CTI CORE0_STARTUP_MODE = RESET ; stop the core immediately after reset CORE0_ENDIAN = LITTLE ; core is little endian CORE0_BREAKMODE = SOFT ; breakpoint mode CORE0_INIT = INIT_CORE0 CORE0_WORKSPACE = 0x907000, 0x8000 ; address, lenght in bytes CORE0_PATH = "tftp://192.168.3.60" CORE1 = CORTEX-A_AMP, 2, 0xBA00477 CORE1_DEBUG_ADDR = 0x82152000, 0x82159000 CORE1_PATH = "tftp://192.168.3.60" CORE1_WORKSPACE = 0x907000, 0x8000 CORE2 = CORTEX-A_AMP, 2, 0xBA00477 CORE2_DEBUG_ADDR = 0x82154000, 0x8215A000 CORE2_PATH = "tftp://192.168.3.60" CORE2_WORKSPACE = 0x907000, 0x8000 CORE3 = CORTEX-A_AMP, 2, 0xBA00477 CORE3_DEBUG_ADDR = 0x82156000, 0x8215B000 CORE3_PATH = "tftp://192.168.3.60" CORE3_WORKSPACE = 0x907000, 0x8000 [INIT_CORE0] ; enable cores #1, #2 and #3 mem write 0x020D8000 0x03C00521 ; SRC_SCR [INIT_LINUX] break add hard 0x80008620 ; kernel break address got by 'nm vmlinux | grep start_kernel' go wait 20000 stop break del all beep 100 100 ; Testing the AMP functionality: ; default AMP mode is BREAK ; run $m ; load a simple program for all cores ; go ; start only core 0 ; go #1 #2 #3 ; start core 1, 2, 3 ; halt ; halt only core 0 ; halt #2 ; halt only core 2 ; halt #a ; halt all cores ; ; amp rhb ; AMP mode RESUME, HALT, BREAK ; run $m ; go ; start all cores ; halt ; halt all cores ; bread add 0x900070 ; add breakpoint for core 0 ; go ; start all cores ; all core halt when core 0 hit the breakpoint ; [m] core 0 mem load mx6_c0.bin 0x00900000 set pc 0x00900010 set cpsr 0x1d3 core 1 mem load mx6_c1.bin 0x00900800 set pc 0x00900810 set cpsr 0x1d3 core 2 mem load mx6_c2.bin 0x00901000 set pc 0x00901010 set cpsr 0x1d3 core 3 mem load mx6_c3.bin 0x00901800 set pc 0x00901810 set cpsr 0x1d3 [r] core 0 m r 0x900000 4 core 1 m r 0x900800 4 core 2 m r 0x901000 4 core 3 m r 0x901800 4 [SERIAL] ; serial port configuration BAUD = 115200 STOP_BITS = 1 PARITY = NONE TCP_PORT = 0 [TELNET] PROMPT = "imx6_smp> " ; telnet prompt ;BACKSPACE = 127 ; comment out for autodetect [DISPLAY] BRIGHTNESS = 20 ; LED indicator brightness VOLUME = 25 ; beeper volume [ACTIONS] ; user defined scripts ;AUTORUN = 2 ; executed on every target connect 1 = erase 2 = prog [erase] ; erase flash flash erase [prog] ; program flash flash prog