Difference between revisions of "PCI card firmware"

From MCEWiki
Line 1: Line 1:
 
= Download =
 
= Download =
  
* U0105 (latest) - http://e-mode.phas.ubc.ca/~mhasse/mce/SDSU_RevU0105.s
+
These S-record files should work with any reasonable EPROM programmer:
* U0104 (stable) - http://e-mode.phas.ubc.ca/~mhasse/mce/SDSU_RevU0104.s
+
* U0105 (latest) - http://e-mode.phas.ubc.ca/~mhasse/mce/arc_pci/SDSU_RevU0105.s
 +
* U0104 (stable) - http://e-mode.phas.ubc.ca/~mhasse/mce/arc_pci/SDSU_RevU0104.s
  
= Misc. =
+
The full source code is available in these archives (it will not compile unless you get the correct assembler and stuff):
 +
* U0105 - http://e-mode.phas.ubc.ca/~mhasse/mce/arc_pci/arc_pci-U0105.tar.gz
 +
* U0104 - http://e-mode.phas.ubc.ca/~mhasse/mce/arc_pci/arc_pci-U0104.tar.gz
 +
 
 +
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 =
  
 
* [[ PCI card bug list ]]
 
* [[ PCI card bug list ]]

Revision as of 13:00, 30 April 2010

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

Latest release: 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.

Last stable version: 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.