http://www.gpsfiledepot.com/tutorials/how-to-create-garmin-t...
The map viewer you use:
http://viewer.nationalmap.gov/viewer/
Info about the elevation data you get:
http://nationalmap.gov/3DEP/3dep_prodserv.html
The data is kind of buried, but I went through this process for building maps and it appears to be very high quality.