Domain Name System
-------------------------------------------

The Domain Name System (DNS) is a hierarchical naming system for computers,
services, or any resource participating in the Internet. It associates various
information with domain names assigned to each of the participants. Most
importantly, it translates domain names meaningful to humans into the numerical
(binary) identifiers associated with networking equipment for the purpose of
locating and addressing these devices world-wide. An often used analogy to
explain the Domain Name System is that it serves as the "phone book" for the
Internet by translating human-friendly computer hostnames into IP addresses.
For example, www.example.com translates to 208.77.188.166.

For more information on DNS - http://en.wikipedia.org/wiki/Domain_Name_System

U-Boot and DNS
------------------------------------------

CONFIG_CMD_DNS - controls if the 'dns' command is compiled in. If it is, it
		 will send name lookups to the dns server (env var 'dnsip')
		 Turning this option on will about abou 1k to U-Boot's size.

		 Example:

bfin> print dnsip
dnsip=192.168.0.1

bfin> dns www.google.com
66.102.1.104

		 By default, dns does nothing except print the IP number on
		 the default console - which by itself, would be pretty
		 useless. Adding a third argument to the dns command will
		 use that as the environment variable to be set.

		 Example:

bfin> print googleip
## Error: "googleip" not defined
bfin> dns www.google.com googleip
64.233.161.104
bfin> print googleip
googleip=64.233.161.104
bfin> ping ${googleip}
Using Blackfin EMAC device
host 64.233.161.104 is alive

		 In this way, you can lookup, and set many more meaningful
		 things.

bfin> sntp
ntpserverip not set
bfin> dns pool.ntp.org ntpserverip
72.18.205.156
bfin> sntp
Date: 2009-07-18 Time:	4:06:57

		 For some helpful things that can be related to DNS in U-Boot,
		 look at the top level README for these config options:
		    CONFIG_CMD_DHCP
		    CONFIG_BOOTP_DNS
		    CONFIG_BOOTP_DNS2
