> 1) Do I have to modify my board setup code in some fashion
> to let Linux know about the presence of the SRAM chip?
Actually that is the purpose of the probe() routine in a device driver: to determine if the device is installed, and its device number and other attributes. It it is not a removable device (i.e. it's hardwired), then there's no need for probe(), and the device driver can be unconditionally installed. When the driver "installs" itself, it also "registers" itself with the appropriate device service(s).
BTW initialization for the SRAM in at91bootstap seems inappropriate. Each boot program normally only performs initialization & functionality to accomplish the task at hand. Do you really need to access this SRAM in order to load and execute the next stage, namely U-Boot? Can GPIO initialization for the FPGA/SRAM be deferred to U-Boot, where you have more code memory available?
If you haven't tested your FPGA hardware yet, the memory read & write commands in U-Boot can be useful. The MMU is not yet enabled, so you can use physical addresses.
> 2) Would the Linux device driver expose a char device interface to userland code?
Your device has to be accessed using the standard I/O and ioctl() interface. You would need to create a node for your device in the /dev directory. Major and minor numbers need to be assigned, which links the dev node to the device driver.
> 3) Are there any similar examples showing how a device driver might be written for SRAM?
I found this *really* simple char driver example :
http://linuxgazette.net/125/mishra.htmlwhere the "device" is an 80-byte memory buffer. Of course a lot of detail is omitted. There are other things like modifying the appropriate Kconfig file and defining CONFIG symbols to enable or disable building the driver. The author incorrectly equates "module" with "device driver". A device driver does not have to be a (loadable) module; the driver can be linked in as part of the kernel binary.
You could/should examine drivers in the kernel source tree for working code. There's also /Documentation in the kernel source tree.
BTW you should learn the kernel coding style if you're going to write or mod kernel code or drivers.
Regards