The files in this directory are used to describe the basic
configuration of a board. (Note that we use "board" in its loosest
sense, referring to either a target or host). The structure of these
files is very similar, and I would suggest that you follow this when
writing a new one.

Two files need to be created for a given board; the appropriate file
in this directory, and one in config/. The one in here is used to set
up entries in the data array describing the board, while the one in
devo/dejagnu/config is used to describe the actions used to actually
communicate with the board.

A third file (the site-specific machine file) can be used to describe
any site-specific functionality, such as port numbers, serial devices,
etc.
