Specifications
the autonegotiation <-> fixed configuration case because the odds of it
working properly are poor anyway.
Rule:
Always try to set up your PHY for autonegotiation.
If you must use some fixed setting, then set it to half duplex mode.
If you really must use a fixed full-duplex setting, then you absolutley must make sure that the link
partner is configured exactly the same.
See also:
Wikipedia: Autonegotiation and Wikipedia: Duplex mismatch
14.2.17. How the Command Line Parsing Works
There are two different command line parsers available with U-Boot: the old "simple" one, and the much
more powerful "hush" shell:
14.2.17.1. Old, simple command line parser
supports environment variables (through setenv / saveenv commands)•
several commands on one line, separated by ';'•
variable substitution using "... ${_variablename_} ..." syntax
NOTE: Older versions of U-Boot used "$(...)" for variable substitution. Support for this
syntax is still present in current versions, but will be removed soon. Please use "${...}" instead,
which has the additional benefit that your environment definitions are compatible with the Hush shell,
too.
•
special characters ('$', ';') can be escaped by prefixing with '\', for example:
setenv bootcmd bootm \${address}
•
You can also escape text by enclosing in single apostrophes, for example:
setenv addip 'setenv bootargs ${bootargs} ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}:${netdev}:off'
•
14.2.17.2. Hush shell
similar to Bourne shell, with control structures like if...then...else...fi,
for...do...done, while...do...done, until...do...done, ...
•
supports environment ("global") variables (through setenv / saveenv commands) and local shell
variables (through standard shell syntax name=value ); only environment variables can be used
with the run command, especially as the variable to run (i. e. the first argument).
•
In the current implementation, the local variables space and global environment variables space are
separated. Local variables are those you define by simply typing like name=value. To access a
local variable later on, you have to write '$name' or '${name}'; to execute the contents of a
variable directly you can type '$name' at the command prompt. Note that local variables can only
be used for simple commands, not for compound commands etc.
•
Global environment variables are those you can set and print using setenv and printenv. To run
a command stored in such a variable, you need to use the run command, and you must not use the '$'
sign to access them.
•
To store commands and special characters in a variable, use single quotation marks surrounding the
whole text of the variable, instead of the backslashes before semicolons and special symbols.
•
Be careful when using the hash ('#') character - like with a "real" Bourne shell it is the comment
character, so you have to escape it when you use it in the value of a variable.
•
Examples:
14.2.17. How the Command Line Parsing Works 169