EDOC013

EUROGAM PROJECT

NSF DATA ACQUISITION SYSTEM

VME addressing scheme

Edition 1.1 July 1990

Nuclear Structure Software Systems Group Department of Physics University of Liverpool VME Addressing Scheme

J R Cresswell

The VME modules to be used for data acquisition are now quite well defined. Since the VME specification does not define addressing ranges allowed by particular modules, then as can be expected, no two modules use the same scheme.

This document is an attempt to collate the addressing limitations of all modules to be used in an attempt to sensibly allocate address windows.

Limitations

The STRUCK parallel interface module can only access Standard address space. It occupies only 512 bytes placed anywhere in standard space.

The EMS CPU4 has virtually no limitations on placement of slave access window or on master access. There is no master access to extended addresses between 00000000 and 000FFFFF. Standard addressing cannot be disabled.

The Radstone 16EP memory board used in the sort engine must have Standard addressing disabled or else disaster. Its base VME address is settable anywhere in a 1Gbyte window. This window by default starts at address 00000000, and requires a PAL modification for any higher setting.

The Motorola MVME147 cpu with 4Mbytes of memory has four base address choices in a 16Mbyte window. This window can only be moved by a PAL modification. The default window is between 00000000 and 00FFFFFF which is also within the range that MVME147s cannot access extended space. Standard addressing can be disabled. Short I/O space is used in the range 0000 to 00FF.

The CES FIC8230 cpu occupies a 1Mbyte window for slave access in the Extended address range 00000000 to 0FF00000. For master access in Extended mode, a 1Gbyte window can be placed in one of four possible positions by writing to a control register. Standard addressing can be disabled.

The CES HSM8170 module is slave only and comes with Standard addressing optional (i.e. hopefully suppressed by default). It requires a 2Mbyte address window in Extended mode placed anywhere between 00000000 and 1FE00000. The CES CBD8210 module is Standard addressing only with a fixed base address dependent on CAMAC branch number. It occupies 512 Kbyte per branch starting at address 800000.

Proposals

To define a set of address ranges that a particular module type can occupy and still be compatible with the whole system. This has the advantage that different functions can be merged into the one crate if necessary without worrying about code changes to effect differing addressing capabilities.

This definition should make life as easy as possible involving the minimum of PAL changes , for example.

The first proposal is to limit all modules to using Extended addressing modes wherever possible. Standard address space is at a premium (16 Mbytes) and would be completely filled by 4 MVME147 cpus if each had Standard addressing enabled.

The second proposal is to limit all Extended addressing to the lowest 1Gbytes of extended space. This allows all modules using Extended addressing to be accessed without resort to control registers or PAL modifications (with one exception - see later).

Sort engines using CPU4 cpus as sorters have VME base addresses set with bits A23 to A20 set the same. Since standard addressing cannot be disabled, it is not used and the standard address windows are overlapped. This wastes the minimum of Standard addressing space.

The online sort engine using MVME147 cpus as sorters will require them to have PAL modifications, as there will be more than four MVME147 cpus in the crate (including network interfaces).

There is also an argument for moving the network interface MVME147(s) away from the default base addresses, as the low addresses are generally not accessible.

There is an argument for disabling Standard address slave access to the network interface MVME147 cpus as no Standard addressing only masters are anticipated. This would conserve 4 Mbytes of Standard space per cpu - particularly useful as two network interfaces using MVME147 cpus are under consideration for some crates. This would require that any STRUCK interfaces be driven by CPU4 cpus or a carefully positioned MVME147 with slave standard addressing enabled.

Proposed Extended Addressing Ranges

00000000 - 00FFFFFF not allocated 01000000 - 01FFFFFF MVME147 Ethernet controllers 02000000 - 02FFFFFF FIC8230 03000000 - 03FFFFFF HSM8170s 04000000 - 0FFFFFFF other applications 10000000 - 3FFFFFFF sort engine

Proposed Standard Addressing Ranges

000000 - 0FFFFF EMS CPU4 sort engine 010000 - 7FFFFF not allocated 800000 - 8FFFFF CBD8210(s) 900000 - CFFFFF other applications D00000 - EFFFFF sort controller + STRUCK F00000 - FFFFFF usually defined in A24 only modules

Proposed Short Addressing Ranges

0000 - 00FF MVME147s 0100 - 7FFF not allocated 8000 - 80FF Radstone 16EBs 8100 - DFFF not allocated E000 - E1FF STRUCK E200 - FEFF not allocated FF00 - FFFF DRAM4 RAM module (llgb only)