Before you commit to a design, take a look at the following
tips — you may save yourself some grief. Although some
of these points assume you're relying on our Custom Engineering services, the principles behind all of them are
sound.
- Do:
-
- Do design in more speed/memory than you think you need.
- Do try a proof of concept using off-the-shelf hardware, if possible.
- Do have a serial port/debug output device on the board;
have it reasonably close to the CPU in hardware terms (i.e.,
don't put it on the other side of a PCI bridge).
- Do allow the ROM/flash devices holding the IPL code to be socketed.
- Do consider staggering a device's ports by any power of 2, but don't
mix up the address lines so that the I/O registers appear in a strange order.
- Do try to use a timer chip that allows free-running
operation, rather than one that requires poking after every interrupt.
- Do put the timer on its own interrupt line so that the kernel doesn't have to check that the interrupt
actually came from the timer.
- Do follow the CPU's interface for reporting a bus error; don't report it as a hardware interrupt.
- If you have optional pieces, make sure you have some positive method
of determining what pieces are present (something other than poking at it and seeing if it responds).
- Do run your design by us, ideally before you build it.
- Do make a point of stating requirements you think are obvious.
- Do remember to point out any pitfalls you know about.
- Do send us as much documentation as you have available on chipsets, panels, etc.
- Don't:
-
- Don't use write-only registers.
- Don't nest interrupt controller chips too deeply—one big wide interrupt controller is better.
- Don't use hardware that requires short delays between register accesses (e.g., Zilog SCC).
- Don't put information from many different places into the same I/O
register location if the OS/drivers also have to do RMW cycles to it.
- Don't decide that no-BIOS is the way to go just because it sounds cool.
- Don't use a $2.00 chip instead of a $3.00 chip and expect the performance of a $10.00 chip.
- Don't build your first run of boards without leaving a way to debug the system.
- Don't build your first run of boards with only 1 MB of RAM on board.
- Don't send us anything without correct schematics that match what you send.
- Don't program the flash and then solder it on, leaving us with no option to reprogram it.
- Don't build just one prototype that must be shipped back and forth several times.