Line 14... |
Line 14... |
0.1.1 090304 jb@orsoc.se
|
0.1.1 090304 jb@orsoc.se
|
0.1.2 090511 jb@orsoc.se
|
0.1.2 090511 jb@orsoc.se
|
0.1.3 090604 jb@orsoc.se
|
0.1.3 090604 jb@orsoc.se
|
0.1.4 090828 jb@orsoc.se
|
0.1.4 090828 jb@orsoc.se
|
0.1.5 090903 jb@orsoc.se
|
0.1.5 090903 jb@orsoc.se
|
|
0.1.6 110307 jb@orsoc.se
|
===============================================================================
|
===============================================================================
|
-- Installation --
|
-- Installation --
|
===============================================================================
|
===============================================================================
|
|
|
The OR debug proxy application runs on multiple platforms only requiring
|
The OR debug proxy application runs on multiple platforms only requiring
|
Line 235... |
Line 236... |
|
|
The proxy application can then be run with the desired options, or for
|
The proxy application can then be run with the desired options, or for
|
usage details, run the program with no options specified.
|
usage details, run the program with no options specified.
|
|
|
user@host:~/or_debug_proxy$ ./or_debug_proxy
|
user@host:~/or_debug_proxy$ ./or_debug_proxy
|
|
Usage: or_debug_proxy
|
|
OpenRISC GDB Proxy Server
|
|
|
Invalid or insufficient arguments
|
Server Type:
|
|
|
OpenRISC GDB proxy server usage: or_debug_proxy -server_type port
|
|
|
|
server_type:
|
|
-r Start a server using RSP, connection to hadware target via
|
-r Start a server using RSP, connection to hadware target via
|
USB
|
USB
|
-j Start a server using legacy OR remote JTAG protocol, to
|
-j Start a server using legacy OR remote JTAG protocol, to
|
hardware target via USB
|
hardware target via USB (DEPRECATED)
|
-v Start a server using RSP, connection to RTL sim. VPI server
|
|
target via sockets
|
|
|
|
port_number:
|
Port:
|
Any free port within the usable range of 0 - 65535
|
Any free port within the usable range of 0 - 65535
|
|
|
|
Options:
|
|
-k Accesses to 0xC0000000 map to 0x0. Useful for kernel debugging.
|
|
|
Example:
|
Example:
|
Start a GDB server on port 5555, using RSP, connecting to
|
Start a GDB server on port 50001, using RSP, connecting to
|
hardware target via USB
|
hardware target via USB:
|
or_debug_proxy -r 5555
|
|
|
|
|
./or_debug_proxy -r 50001
|
|
|
* Platforms tested, and known to be working, on:
|
* Platforms tested, and known to be working, on:
|
Ubuntu 8.04
|
Ubuntu 8.04, 9.10, 10.10
|
Debian
|
Debian
|
|
|
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
-- Installation on Mac OS X --
|
-- Installation on Mac OS X --
|
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
Line 316... |
Line 316... |
necessary to restart both the proxy and GDB before being continuing.
|
necessary to restart both the proxy and GDB before being continuing.
|
This bug is perhaps caused by changing the file GDB is debugging during the
|
This bug is perhaps caused by changing the file GDB is debugging during the
|
same session.
|
same session.
|
|
|
TODO List:
|
TODO List:
|
* USB<->JTAG Driver TODO: Increase speed of the proxy
|
|
It appears that the current transfer rate of around 20k/s is due to
|
|
pauses in the driver. This was determined by profiling the proxy and
|
|
noticing that, over a 4-odd megabyte transfer from GDB, taking about 4
|
|
minutes, the proxy only executed for 2.5 seconds, and the three most
|
|
used functions, accounting for 50% of execution were functions in the
|
|
driver. This indicates that either better use of, or better
|
|
implementation of, the driver could dramatically increase speed.
|
|
SOLVED: It appears increasing the packet size of the GDB transfers can
|
|
achieve a significant increase in speed. GDB queries the proxy at when
|
|
it connects about its maximum packet size. It was previously 255 bytes
|
|
and this meant larger downloads were "slow". Raising this transfer size
|
|
to around 4kB (4096 bytes) resulted in a throughput increase of almost
|
|
10-times. This is due to the fact that most of the transfer time is
|
|
spent on waiting for the driver - the overhead per call is significant
|
|
if only transferring 255 bytes, so increasing the amount per transfer
|
|
reduces the amount of time waiting for the driver to perform the trans-
|
|
action. Sizes greater than 4kB, for some reason, cause the driver to
|
|
have issues - resulting in incorrect CRC reading and bad Status returns
|
|
from the driver functions. Why this is so should be investigated.
|
|
* USB<->JTAG Driver TODO:
|
* USB<->JTAG Driver TODO:
|
Get the latest version of the MPSSE function code (from
|
Get the latest version of the MPSSE function code (from
|
http://ftdichip.com/Projects/MPSSE/FTCJTAG/FTCJTAG_Source.zip at last
|
http://ftdichip.com/Projects/MPSSE/FTCJTAG/FTCJTAG_Source.zip at last
|
check) and update our Linux compatible version with the ones here. This
|
check) and update our Linux compatible version with the ones here. This
|
might provide improved stability or performance, but from the list of
|
might provide improved stability or performance, but from the list of
|