Adding patches from the OpenSPARC T1 tree

These didn't apply cleanly to the 2.6.22 tree, so I applied some chunks
by hand.  I also modified the define to actually work using the kernel
configuration system instead of just defining it at the top of the file
like the original patch does.  This should be a lot cleaner and should
allow this tree to work on environments not on an FPGA as well with the
simple flick of an configuration option.

This new option is CONFIG_OPENSPARC_T1_FPGA