OK, so I found a file in u-boot that appears to document this.
It is in /include/asm-arm/setup.h or /include/asm/setup.h
There is a sequence of TAGS called ATAG_blahblah
These tags all appear to have unique structures and are sent in a sequence. There is an older method of passing parameters to the kernel on boot but it is no longer used since 2006.
Note: WATCH BIG vs. LITTLE ENDIAN as always
The AT91SAM9G45 appears to have 4 (or 5 depending on config) TAGS in U-Boot
TAG 1) Size 5 words, 0x54410001 (ATAG_CORE), flags = 0, page size = 0, root = 0
TAG 2) Size 4 words, 0x54410002 (ATAG_MEM), Phys Size = 0x10000000, Start = 0x70000000
TAG 3) Size bootargs_strlen in words + 2, 0x54410009 (ATAG_CMDLINE), text_str_of_bootargs
TAG 4) Optional if you specify an initrd which right now I do not have
TAG 5) Size = 0, 0x00000000 (ATAG_NONE)
You can also add tags for serial number, revision number, etc. for your embedded device.
Hope this helps someone else someday - Gary