HISTORY of the KATANA DA firmware.
__________________________________

Note: entries should start with a '*', be dated and initialed.
  This file should be in REVERSE date order
-----------------------------------------------------------------------------
* 11/05/00 - gt - Version 4.9.0a (CodeScape 186)
  Host to target write memory speed-up now about 1Mb/Sec. Achieved via a
  Multi-buffer I/O system to allow interleaving of command and replies.

-----------------------------------------------------------------------------
* 01/03/00 - gt - Version 4.8.1a (CodeScape 170)
  Added code to allow serial debug input initialisation
  via NMI.

-----------------------------------------------------------------------------
* 01/03/00 - gt - Version 4.8.0a (CodeScape 170)
  Removed unwanted call to serial port set up.
  Removed unwanted call to old debug support tools.

-----------------------------------------------------------------------------
* 22/11/99 - gt - Version 4.7.0a (CodeScape 153)
  User registered break add to allow 'WinCE debugging' BIOS calls.
  SCSI channel buffer status command added.
  Added combined context read/write (GP+FPU+MMU).

-----------------------------------------------------------------------------
* 09/07/99 - gt - Version 4.6.4d (CodeScape 136)
  Channel transfer optimisation (work in progress version).
  Bug fix SH4->PC4 channel functions.

-----------------------------------------------------------------------------
* 08/07/99 - gt - Version 4.6.3d (CodeScape 136)
  Channel transfer optimisation (work in progress version).
  Added optimisation for SH4->PC4 channel functions.

  Pseudo DIP switches now do not get initialised after reset.

-----------------------------------------------------------------------------
* 01/07/99 - gt - Version 4.6.1d (CodeScape 136)
  Channel transfer optimisation (work in progress version).
  Added optimisation for PC->SH4 channel functions

-----------------------------------------------------------------------------
* 24/11/98 - gt - Version 4.6.0a (CodeScape 106)
  Bug fix for read memory (long) command causing unwanted cache line read.

-----------------------------------------------------------------------------
* 03/11/98 - gt - Version 4.5.0a (CodeScape 101)
  Added protection against spurious serial characters activating debug
  functions on power up. The user is now required to type the word
  'cross' before debug functions on the serial port are enabled.

-----------------------------------------------------------------------------
* 29/10/98 - gt - Version 4.4.0a (CodeScape 101)
  Added new BIOS calls to allow application code to turn on/off subroutine
  tracing. This allows greater flexibility over the profile data traced.
  BIOS call used is BIOS 0x200.

  Some unused space allocated to the 16K stub reclaimed by moving code into
  the vector areas i.e. VBR to VBR+0x100 etc.

-----------------------------------------------------------------------------
* 19/10/98 - gt - Version 4.3.0a (CodeScape 100)
  Bug fix for command timeouts.

  Disabled feature to allow debug stub to run in cachable memory.

-----------------------------------------------------------------------------
* 16/10/98 - gt - Version 3.8.2j (CodeScape 100)
  Test version for SOJ (no serial number entry).

-----------------------------------------------------------------------------
* 08/10/98 - gt - Version 3.8.1a (CodeScape 95)
  Full stub timeout increased from 10 sec to 30 sec to allow GD-M time
  to intitialise prior to the call from the BIOS ROM to load the full stub.

  ** Special release to allow earlier CodeScape usage with the above mod. **

-----------------------------------------------------------------------------
* 08/10/98 - gt - Version 4.2.0a (CodeScape 98)
  Full stub timeout increased from 10 sec to 30 sec to allow GD-M time
  to intitialise prior to the call from the BIOS ROM to load the full stub.

  Debug added to display time spent in the BIOS ROM prior to the call
  from the BIOS ROM to load the full stub.

-----------------------------------------------------------------------------
* 01/10/98 - gt - Version 4.1.0a (CodeScape 96)
  Minor corrections to debug information messages.

  Added facility for a auto re-load of the full stub on failure.

-----------------------------------------------------------------------------
* 25/09/98 - gt - Version 4.0.0a (CodeScape 96)
  Bug fix to the 'Resolve' macro. This fixes a dormant bug that showed up
  in version 3.9.0a. Version 3.9.0a should not be used!

  Bug fix, debug OS mode now starts with stub configuration bits set to
  zero.

-----------------------------------------------------------------------------
* 23/09/98 - gt - Version 3.9.0a (CodeScape 96)
  Macros rationalised to allow code space to be reclaimed.

  Writes to the CCR register are now only done from the P2 area.

-----------------------------------------------------------------------------
* 21/09/98 - gt - Version 3.8.0a (CodeScape 95)
  Store queue buffers and registers QACR0, QACR1 and CCR is available for
  read and write as part of context #4.

-----------------------------------------------------------------------------
* 16/09/98 - gt - Version 3.7.0a (CodeScape 95)
  Additional debug functionality added.

-----------------------------------------------------------------------------
* 02/09/98 - gt - Version 3.6.0a (CodeScape 92)
  New Altera configuration to fix thermal problems that cause Set5's JTAG
  to fail when hot (~38c).

  'Trace Call Stack' counting now does not count BSR/RTS types when within
   exception/interrupt handlers.

  The task swap ID is now reported as part of the trace cache data rather
  than an isolated profile packet.

  Improved profile diagnostics to allow an 'auto buffer flush' for stand
  alone testing.

-----------------------------------------------------------------------------
* 27/08/98 - gt - Version 3.5.0a (CodeScape 92)
  Trace mechanism now uses software subroutine filtering within exceptions.

  New BIOS call 'Report Task Swap' added to allow application code to
  register task swapping for the profiler.

-----------------------------------------------------------------------------
* 22/07/98 - gt - Version 3.4.0a (CodeScape 87)
  Same as version 3.3.0s but built as a release version.

-----------------------------------------------------------------------------
* 22/07/98 - gt - Version 3.3.0s (Production test version)
  1st message now reads 'DA Boot' on start up.

-----------------------------------------------------------------------------
* 17/07/98 - gt - Version 3.2.0a (CodeScape 86)
  GNU 'make' now used.

  Bug fix to unwanted FPU exception filtering code.

-----------------------------------------------------------------------------
* 13/07/98 - gt - Version 3.1.0a (CodeScape 86)
  All trace packets now return an additional 'SP' (stack pointer) field.
  This was added to aid the profiler when the application code 'context
  switches' or performs 'longjmp()' calls.

-----------------------------------------------------------------------------
* 10/07/98 - gt - Version 3.0.0a (Production test version)
  Added 5 second timeout on serial number and date entry code to allow
  re-flash without serial requirement in test and production version.

-----------------------------------------------------------------------------
* 10/07/98 - gt - Version 2.9.0a (CodeScape 86)
  New DA config flag added 'CodeScape DA reflash acknowledge'. This allows
  CodeScape to be able to detect that the DA has been re-flashed.

  Addition to the 'Profile data Request' command to allow a 'marker'
  byte supplied by the host to be inserted into the 'Trace Marker' data
  packet. This allows the profiler a means to label marker packets
  specifically.

  The 'HBC read context' now returns the ASE SDSR register in an unused
  padding word at the end of the context. This allows CodeScape to determine
  the processor revision of the SH4.

-----------------------------------------------------------------------------
* 07/07/98 - gt - Version 2.8.0a (CodeScape 85)
  New facility to allow 'filtering' of unwanted FPU exceptions generated
  due to SH4 'characteristic' when FPSCR enable bits V, O , U , I, are set.
  Note: does not filter the exception when FPU instructions are in a slot.

-----------------------------------------------------------------------------
* 02/07/98 - gt - Version 2.7.0a (CodeScape 80)
  Mod to tracing mod of 26/06/98 to allow an additional RTE/RTS to be
  accepted before tracing is disabled. This allow the exit point of the
  primary function to caught.

  Bug fix, 'Resume' skipped 1st time after push-button reset to ensure
  CodeScape 'sees' the hard reset signal.

  Mod, Channel 4 buffer (profile) increased to 2 Mbytes.
  Channel 5 buffer (currently unused) decreased to 1/2 Mbytes.

  Mod, Channel 4 buffer (profile) header bit now sets on 3/4 full (was 1/2).

  Mod, Cached trace reply packet now contains a sequence number and also
  marks multiple trace entries (at a single interrupt) as duplicate.

  Mod, in cached trace mode the 'profile data request' command now inserts
  a new reply 'marker' packet into the profile channel.

  Mod, interrupt and exception trace 'subroutine filter' added.

-----------------------------------------------------------------------------
* 26/06/98 - gt - Version 2.6.0a (CodeScape 79)
  Added mechanism to profiling to allow tracing to be disabled after tracing
  a specified tree structure of subroutine calls and returns. This allows
  the selective tracing of specific areas of code.

-----------------------------------------------------------------------------
* 16/06/98 - gt - Version 2.5.0a (CodeScape 74)
  Bug fix, Reduced stack size so that it fits into the 16K byte area.

  Bug fix, R/W FPU context works now when the application has the FPU
  disabled (turned off).

  Added 'cached trace' option for improved profiling.

  New application interrupt passback introduced (BRK,RTE,RTS).

  SCSI ident now reports 'CPL' and not 'SEGA'.

-----------------------------------------------------------------------------
* 29/05/98 - gt - Version 2.4.0a (CodeScape 67)
  Added mechanism in the trace reply packet to allow the 'RTE', 'RTS' and
  'Interrupts & exceptions' be detected and tagged.

-----------------------------------------------------------------------------
* 15/05/98 - gt - Version 2.3.0a (CodeScape 65)
  Modified signaling on inquiry to allow profiling report 1/2 Mbytes of
  data in the profile buffer via a bit in the header block (replaces the
  modification done in version 2.2.0a) This version does not halt the code
  running on exceeding the 1/2 Mbytes point.

-----------------------------------------------------------------------------
* 14/05/98 - gt - Version 2.2.0a (CodeScape 65)
  Modified signaling on inquiry to allow profiling to halt and report
  1/2 Mbytes of data in the profile buffer.

  Bug fix, command 14 size of return packet, now 88, was 84.

-----------------------------------------------------------------------------
* 11/05/98 - gt - Version 2.1.0a (CodeScape 65)
  Bug fix to cache enable for memory writes. Read-modify-write the
  CCR register rather than just writing directly to it. This takes into
  account split memory/cache configuration (for example).

-----------------------------------------------------------------------------
* 11/05/98 - gt - Version 2.0.0a (CodeScape 65)
  Mod to trace reply. Counters now 48 bit. No SP returned. LSB of trace
  destination (when set) indicates that the source address points to an
  'RTS' instruction.

-----------------------------------------------------------------------------
* 07/05/98 - gt - Version 1.9.0a (Sumatec test flash)
  Added test to check for Flash memory being 'protected', Note: if
  protected then cannot re-flash.

  Removed ASE, PC, TRACE context blocks.

-----------------------------------------------------------------------------
* 05/05/98 - gt - Version 1.8.0a (CodeScape 64)
  New DA-Console & DA-Stub command 14 'profile data request' added.

  Check added to ensure that the full stub is not loaded outside of the
  address range 0xa0000000 to 0xbfffc000.

  Bug fix for write HBC context now does not result in an address code
  error '0xE0' in the EXPEVT register.

  'Testcode' module removed from the code (no longer required). All options
  to load and access 'testcode' removed.

  New console->DA reply added 'report event'. This is used to allow the SH4
  code to inform the DA of major events. The 1st to be implemented here is
  'manual reset' reporting. There is a new signal category 'report event' to
  allow the reply information to be extracted as part of the 'inquiry'.

  Profiling reply packet enable bit in stub configuration now split into
  two bits trace (bit 0) and profile (bit1).

  Override to allow 1K stub commands after a 'full stub fail'.

  Bug fix, sampling disabled when 'reset and load stubs' issued.

  Debug decode of profile data now allows user bailout.

  Improved debug context display.

-----------------------------------------------------------------------------
* 22/04/98 - gt - Version 1.7.0a (CodeScape 61)
  'Misc' signal category removed.

  'Persistent Suspend' is now the default. This should decrease the amount
  of 'Busy' signals reported by Salsa when channels are used..

  The sampling interrupt timer does not run when the stub is in the
  monitor.

  New signal added to report that the 'Make safe' command was issued.

  On profile buffer full tracing, sampling and LDTLB replies result in the
  the monitor being entered. An new signal reports 'profile buffer full', the
  buffer being nearly full as opposed to full (about 5Kbytes free).

-----------------------------------------------------------------------------
* 17/04/98 - gt - Version 1.6.0a (CodeScape 59)
  Added 1/4 second delay on power up to allow the GDROM or GDM
  M-CLOCK signal to start up and become stable before the reset line into the
  console (asserted by the DA) goes low.

  Bug fix to stub LDTLB reply packet.

  Debug LED assignments improved, can now measure trace, stat sampling
  and LDTLB reply duration.

  Statistical sampling now sampled from the 'background' code.

  Bug fix, 'reset_and_load_stubs' command now does not need to suspend
  before issuing the reset and load, this fixes the problem of
  resetting the DA when the stub is corrupted or 'stuck' and the DA believes
  that the code is running (i.e. in this state Katana could not be reset
  since the suspend would never complete).

  Added 'persistent suspend' configuration option. This allows the ASE pin
  break to be asserted until the suspend is acknowledged. This fixes the
  problem of BIOS calls locking out CodeScape.

-----------------------------------------------------------------------------
* 09/04/98 - gt - Version 1.5.0a (CodeScape 57)
  Bug fix for read word and byte fail on certain Katana boxes.

  New interrupt based timer to force exit from 'stuck' code. Based on
  the watchdog timer's interval timer facility.

-----------------------------------------------------------------------------
* 07/04/98 - gt - Version 1.4.0a (CodeScape 55)
  Mod to SCSI code by gw to fix problem with 2940AU cards by removing
  legacy SCSI code left over from SCSI mirage ('is door open?').

  The 'Millitimer' millisecond timer is now correct for the
  28.322Mhz clock used (was accurate for a 28.322Mhz).

  Debug LED assignments improved, can now measure BIOS call duration.

  Removed references to unused status flags (dahf0,dahf1,thf0).

  Improved debug command 'display memory()'.

  Speed improvements for BIOS commands 'read and write buffer':-
                write 10,000 bytes: Console->DA  153 Kb/S (was 84 Kb/S)
                Read  10,000 bytes: DA->Console  153 Kb/S (was 85 Kb/S)
                write      1 byte : Console->DA   15 Kb/S (was 2.6 Kb/S)
                Read       1 byte : DA->Console   15 Kb/S (was 2.4 Kb/S)
        Note: measurements made on 'read write byte' (no optimisation):-
                write      1 byte : Console->DA   19 Kb/S
                Read       1 byte : DA->Console   19 Kb/S

-----------------------------------------------------------------------------
* 01/04/98 - gt - Version 1.3.0a (CodeScape 53)
  Bug fix, floating point register FPSCR 'disabled' on R/W context.

  Speed improvements for read/write memory JTAG transfer:-
                      SH4 cache off   SH4 cache on  (old 28/11/97)
        Write long      1.39 Mb/S      1.54 Mb/S     (0.35 Mb/S)
        Write word      0.85 Mb/S      1.36 Mb/S     (0.17 Mb/S)
        Write byte      0.70 Mb/S      1.25 Mb/S     (0.18 Mb/S)
        Read  long      1.17 Mb/S      1.17 Mb/S     (0.51 Mb/S)
        Read  word      0.86 Mb/S      0.93 Mb/S     (0.21 Mb/S)
        Read  byte      0.71 Mb/S      0.93 Mb/S     (0.19 Mb/S)

  BIOS calls run in P1 area (cacheable).

  Speed optimisation carried out for write memory long.

  'Registered break address' is now area independent.

  Added 'debug stub running in cache' select bit in configuration.

  New commands 15/16 added enhanced versions of 2/3.

  Duplicate host command definitions (gt vs. gw) removed.

  Pseudo target code removed.

  SCSI serial debug disabled (enabled in version 1.2.2d for tests).

-----------------------------------------------------------------------------
* 26/03/98 - gt - Version 1.2.2d (CodeScape 48)
  SCSI serial debug enabled.

  Note: This version is a 'test' version, it is not for general release.

-----------------------------------------------------------------------------
* 26/03/98 - gt - Version 1.2.1d (CodeScape 48)
  Mod to SCSI code by gw to attempt to fix problems with 2940AU cards.

  Added statistical sampling period field into the read and write DA
  configuration command.
  Mod to read and write DA configuration command to increase the size of
  the configuration block up to 64 bytes (mostly unused reserved data).
  Note:
        1) These change requires a new version of CodeScape.
        2) Currently commented out for this version.


  SH4 RS232 serial support now working for the full stub.

  Note: This version is a 'test' version, it is not for general release.

-----------------------------------------------------------------------------
* 19/03/98 - gt - Version 1.2.0a (CodeScape 46)
  uP debugging now initialises the BRCR.UBDE bit to use UBC's via the DBR
  rather than the VBR.

  Added 'IOBDR' to the HBC context block.

  Trace buffer now sends the correct no. of entries (was fixed at 8).

  Added new command (13) 'Make Safe'.

  Serial debug improved 'get_ul_num()' function.

  Serial debug improved memory display bytes.

  Check for 'load stub address' on long boundary only. Full stub will
  not be loaded if requested on non-long boundary.

  1K stub now checks to see if the full stub has been corrupted (if so
  an error reply is issued to the DA).

-----------------------------------------------------------------------------
* 12/03/98 - gt - Version 1.1.0a
  SCSI retry delay reduced from 5sec to 200msec

  UBC BRCR now initialised (fixes problems with hardware breakpoints).

  1K stub shrunk by utilising slot instruction slots.

  Both stubs now report version numbers correctly.

  Bug fix 'Check Integrity' command for 1K stub now reports a signal and
  category if requested.

  Bug fix 'Check Integrity' command for full stub now works properly.

  Channel interrupt code tested and working.

  Flash burn code now checks for the correct product ID (or 0 'any') before
  performing the flash code.

  Removed all references to the TRAP BIOS call function.

  Trace function code added, correct data written to the buffer. Still
  required is the switch mechanism to turn the function on/off. This is now
  sufficient to allow host development and testing.

-----------------------------------------------------------------------------
* 06/03/98 - gt - Version 1.0.0a
  Buffer sizes increased:-
        channel 0,1,2,3,temp    128 Kbytes
        channel 4,5             1 Mbyte

  UDI test buffers now a single buffer (saves 2 Mbytes SDRAM ).

  'Memory free' reporting improved.

  Removed position dependant variables from 1K and Full stub.

  TRAPA handling added to support BIOS commands via the 'TRAPA #02'
  instruction. All other 'TRAPA #nn' values dump into the monitor.

  User mode debugging tested and working OK.

  Bug fix, BIOS commands now do not use the 'ESR' value on bank selection.
  Bank selection now works OK for both user and privileged mode.

  Additional SCSI fixes by GW under the release version 0.9.2a.

  'Read stub load address' command added.

  'Read product identification' command added.

  New BIOS command 'read channel buffer status' added.

  'Read stub identification' command removed.

  Stat sampling code added, correct data written to the buffer. Still
  required is interrupt timer. This is now sufficient to allow host
  development and testing.

  LDTLB code added, correct data written to the buffer. Still required is
  LDTE bit switch in the BRCR. This is now sufficient to allow host
  development and testing by forcing the LDTE bit set in 'stubmain.sh4'.

-----------------------------------------------------------------------------
* 20/02/98 - gt - Version 0.9.0a
  Cache now handled in the debug stub (quick method).

  New application exception passback introduced (BRK,RTE,RTE).

  New default exception handler added.

  New methodology introduced to start full stub. 'Clear chained exception'
  stub command removed, the command number re-used as 'Start full stub'.

  'Configure Stub Services' command removed from 1K Stub.

  OS or uP debugging switch in E2 added.

  Channel buffer max. packet size increased from 32K to 64K.

  Startup inquiry signalling reports correctly for OS or uP debugging.

  SCSI problem with Japanese OSR2 & Adaptec 2940 fixed.

-----------------------------------------------------------------------------
* 13/02/98 - gt - Version 0.8.0a
  Bug fix. Channel status bits in the host header block now reflect the
  correct buffer used (used to use the channel number to select a buffer).

  Bug fix. 'Suspend()' now does not assume 'in monitor' as a result.

  Tested channel non-blocking commands.

-----------------------------------------------------------------------------
* 10/02/98 - gt - Version 0.7.0a
  Bug fix. Status to the host now has the correct category for all commands.

  Additional channel work.

  Better reporting of read and write memory for test debug utilities.

-----------------------------------------------------------------------------
* 28/01/98 - gt - Version 0.6.0a (Production test version)
  Production version allows serial number and test date to be written into
  the EEPROM.

  This document moved to the 'exe' directory to allow it to be zipped with
  release file.

-----------------------------------------------------------------------------
* 26/01/98 - gt - Version 0.5.0a
  Fatal error LED flashing now uses one Led to flash as follows:
  long delay (4 sec), flash module, delay (1 sec), flash error code, repeat.

  Added interrupt driven handlers for detecting the console being reset.

  Replaced various 'timeouts' implemented by loop counts with use of the
  'GetMilliTime()' function.

  Error handling and reporting now implemented to handle 1K stub load pass
  then full stub load fail. 1K stub commands enabled for use if full stub
  fails. This is used by the host 'DA test utility'.

  Added channel handler code (not fully tested).

  Speeded up debug serial output routine.

  Additional pseudo DIP switches added for debug purposes.

-----------------------------------------------------------------------------
* 05/01/98 - gt - Version 0.4.0a
  Fix for reset bug in consoles with no 'console reset' stretching.

-----------------------------------------------------------------------------
* 22/12/97 - gt - Version 0.3.0a
  Added support for UBC.
  Fix for reset bug. ASE now goes low 10mS before RESET is released.

-----------------------------------------------------------------------------
* 19/12/97 - gt - Version 0.2.3d (Production test version)
  Test version to allow manufacture tests. Replaces 0.2.1d. This version
  contains the full RAM test.

-----------------------------------------------------------------------------
* 18/12/97 - gt - Version 0.2.1d (Production test version)
  Test version to allow manufacture tests. E2 support now working.

-----------------------------------------------------------------------------
* 15/12/97 - gt - Version 0.2.0a
  Alpha version Debug version created for the 1st initial batch of DAs.
  The application is as yet incomplete and still buggy.
  Notable requirements:-
        UBC support
        All channel handling support.
        Profiling.
        Tracing.

-----------------------------------------------------------------------------
* 12/12/97 - gt - Version 0.1.8a
  Debug version created to allow basic testing of units. The main application
  is as yet incomplete and still buggy.

-----------------------------------------------------------------------------
* 26/11/97 - gt - Version 0.1.6d
  Debug version created to allow basic testing of units. The main application
  is as yet incomplete and still buggy.

-----------------------------------------------------------------------------
* 20/10/97 - gw - Version 0.1.5d
  Added DRAM diagnostics for when we fail a top level RAM test.  Useful for
  manufacture.

-----------------------------------------------------------------------------
* 20/10/97 - gw - Version 0.1.4d
  Added SCSI chip restart code.  Now target will restart if bus is broken and
  made again.

-----------------------------------------------------------------------------
* 14/10/97 - gw - Version 0.1.2d
  Added remote flash burning code.

-----------------------------------------------------------------------------
* 25/9/97 - gw - Version 0.1.1d
  First cut.  Pseudo target supports GetStatus, Memory read/write and Serial
  read of six serial channels.

-----------------------------------------------------------------------------




