VME slot and address space
Currently the wr2rf-vme design uses a 1MB window in the A24 address space. This was done to comply with the LHC VME crate usage.
But, this doesn't work well on a standard VME64x crate, whose convention is to allocate a 512KB window for each board. So currently the wr2rf-vme cannot be in a slot >= 16. Worse, it could be in an address conflict with a different board (a wr2rf-vme in slot 3 uses address 0x3_00000, which is the same as a normal board in slot 6)
First, we need an API change. Currently we open a board using a slot number and automatically translate the slot number to the VME address. This won't be possible as the translation depends on the crate (*1MB for VME LHC, *512KB for VME64x) which is not known by the API. The easiest way to deal with that is to change the API. We will open a board using a VME address. This change could be done now. [For the wr2rf utility, we could keep -s SLOT or add --lhc-slot SLOT - to be discussed but that's a detail].
Then we obviously need to change the gateware to reduce the window to 512KB. And of course, on a VME64x crate (so with the GA), the board address will be GA*512KB.
Then for the dip-switches we have two solutions: either change the mapping and also uses the dip-switches to specify bits 23-29 of the address. That would be the most logical approach but it means we will need to change the dip-switches of the installed boards. We could also be backward compatible and still uses the dip-switches to specify bits 24-20 of the address. One dip-switch will still be unused. This could potentially be a problem on a different installation (EP).