Difference between revisions of "PCI card firmware"

From MCEWiki
(Firmware version notes)
Line 28: Line 28:
 
= Firmware version notes =
 
= Firmware version notes =
  
== Latest release: U0105 (2009-06-08) ==
+
== Next version: U0106 (testing) ==
 +
 
 +
* Backward compatible with U0104 and U0105.
 +
* Fixes bug introduced in U0105 that prevented handling of some PCI bus errors.
 +
* Introduction of command to update PCI burst size.
 +
 
 +
== Current stable version: U0105 (2009-06-08) ==
  
 
* Backward compatible with U0104.
 
* Backward compatible with U0104.
Line 41: Line 47:
 
** Host vector interrupts are otherwise enabled, so PC doesn't have to force with HNMI bit.
 
** Host vector interrupts are otherwise enabled, so PC doesn't have to force with HNMI bit.
  
== Last stable version: U0104 ==
+
== First version with non-realtime linux support : U0104 ==
  
 
* Implements quiet transfer mode!  Remains backwards compatible with A1.4.
 
* Implements quiet transfer mode!  Remains backwards compatible with A1.4.

Revision as of 17:08, 4 November 2011

Download

These S-record files should work with any reasonable EPROM programmer:

The full source code is available in these archives (it will not compile unless you get the correct assembler and stuff):

The subversion tree can be obtained like this (you may not have access to this repository; contact UBC);

svn checkout svn://e-mode.phas.ubc.ca/arc_pci

It is laid out roughly as follows:

/trunk       main line of development
/releases    tagged versions of code 
/tools       debugging tools
/clash       stuff for making CLAS work with wine and linux
/docs        useful (though maybe not to you) notes


Other information

Firmware version notes

Next version: U0106 (testing)

  • Backward compatible with U0104 and U0105.
  • Fixes bug introduced in U0105 that prevented handling of some PCI bus errors.
  • Introduction of command to update PCI burst size.

Current stable version: U0105 (2009-06-08)

  • Backward compatible with U0104.
  • Support for MCE STOP commands and commands-on-the-fly.
  • Accelerated MCE command code (along with Quiet-RP this increases commanding rate to ~6 kHz).
  • Quiet-RP simplifies the protocol for MCE reply handling.
  • Low-level improvements:
    • CON is done as PCI burst
    • Fibre-optic FIFO is emptied with timed read instead of polling.
    • Hand-shaking for interrupts instead of host command to clear INTA and HC3.
    • Non-interrupt context code disables interrupts when performing PCI transactions.
    • Host vector interrupts are otherwise enabled, so PC doesn't have to force with HNMI bit.

First version with non-realtime linux support : U0104

  • Implements quiet transfer mode! Remains backwards compatible with A1.4.
  • Fixes the 64k boundary crossing issue
  • Moves parameters that enter via interrupt out of registers and into variables
  • Version reporting tag-along to RDM command (sending 'VER' to RDM's vector address returns the code version).
  • Maximum burst length is reduced to 64 bytes, and is configurable.
  • Reset (RST) clears the fibre fifo

Oldest UBC release: U0103

  • Minor modifications of SCUBA2's A1.4 firmware, to improve PCI stability.
  • Not compatible with non-realtime systems.