Difference between revisions of "PCI card firmware"

From MCEWiki
(Firmware version notes)
(Download)
Line 2: Line 2:
  
 
These S-record files should work with any reasonable EPROM programmer:
 
These S-record files should work with any reasonable EPROM programmer:
* U0105 (latest) - http://e-mode.phas.ubc.ca/~mhasse/mce/arc_pci/SDSU_RevU0105.s
+
* U0106 (recommended) - http://e-mode.phas.ubc.ca/mce_firmware/sdsu/SDSU_RevU0106.s
* U0104 (stable) - http://e-mode.phas.ubc.ca/~mhasse/mce/arc_pci/SDSU_RevU0104.s
+
* U0105 (stable) - http://e-mode.phas.ubc.ca/mce_firmware/sdsu/SDSU_RevU0105.s
 +
* U0104 (deprecated) - http://e-mode.phas.ubc.ca/mce_firmware/sdsu/SDSU_RevU0104.s
 +
 
  
 
The full source code is available in these archives (it will not compile unless you get the correct assembler and stuff):
 
The full source code is available in these archives (it will not compile unless you get the correct assembler and stuff):
 +
* U0106 - http://e-mode.phas.ubc.ca/~mhasse/mce/arc_pci/arc_pci-U0106.tar.gz
 
* U0105 - http://e-mode.phas.ubc.ca/~mhasse/mce/arc_pci/arc_pci-U0105.tar.gz
 
* 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
 
* U0104 - http://e-mode.phas.ubc.ca/~mhasse/mce/arc_pci/arc_pci-U0104.tar.gz
Line 18: Line 21:
 
  /clash      stuff for making CLAS work with wine and linux
 
  /clash      stuff for making CLAS work with wine and linux
 
  /docs        useful (though maybe not to you) notes
 
  /docs        useful (though maybe not to you) notes
 
  
 
= Other information =
 
= Other information =

Revision as of 16:50, 21 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.