mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-08-26 11:58:52 +09:00
74 lines
2.5 KiB
Plaintext
74 lines
2.5 KiB
Plaintext
![]() |
|
||
|
Storage of the board specific values (ethaddr...)
|
||
|
-------------------------------------------------
|
||
|
|
||
|
The board specific environment variables that should be unique
|
||
|
for each individual board, can be stored in the I2C EEPROM. This
|
||
|
will be done from offset 0x80 with the length of 0x80 bytes. The
|
||
|
following command can be used to store the values here:
|
||
|
|
||
|
=> setdef de:20:6a:ed:e2:72 de:20:6a:ed:e2:73 AB0001
|
||
|
|
||
|
ethaddr eth1addr serial#
|
||
|
|
||
|
Now those 3 values are stored into the I2C EEPROM. A CRC is added
|
||
|
to make sure that the values get not corrupted.
|
||
|
|
||
|
|
||
|
SW-Reset Pushbutton handling:
|
||
|
-----------------------------
|
||
|
|
||
|
The SW-reset push button is connected to a GPIO input too. This
|
||
|
way U-Boot can "see" how long the SW-reset was pressed, and a
|
||
|
specific action can be taken. Two different actions are supported:
|
||
|
|
||
|
a) Release after more than 5 seconds and less then 10 seconds:
|
||
|
-> Run POST
|
||
|
|
||
|
Please note, that the POST test will take a while (approx. 1 min
|
||
|
on the 128MByte board). This is mainly due to the system memory
|
||
|
test.
|
||
|
|
||
|
b) Release after more than 10 seconds:
|
||
|
-> Restore factory default settings
|
||
|
|
||
|
The factory default values are restored. The default environment
|
||
|
variables are restored (ipaddr, serverip...) and the board
|
||
|
specific values (ethaddr, eth1addr and serial#) are restored
|
||
|
to the environment from the I2C EEPROM. Also a bootline parameter
|
||
|
is added to the Linux bootline to signal the Linux kernel upon
|
||
|
the next startup, that the factory defaults should be restored.
|
||
|
|
||
|
The command to check this sw-reset status and act accordingly is
|
||
|
|
||
|
=> chkreset
|
||
|
|
||
|
This command is added to the default "bootcmd", so that it is called
|
||
|
automatically upon startup.
|
||
|
|
||
|
Also, the 2 LED's are used to indicate the current status of this
|
||
|
command (time passed since pushing the button). When the POST test
|
||
|
will be run, the green LED will be switched off, and when the
|
||
|
factory restore will be initiated, the reg LED will be switched off.
|
||
|
|
||
|
|
||
|
Loggin of POST results:
|
||
|
-----------------------
|
||
|
|
||
|
The results of the POST tests are logged in a logbuffer located at the end
|
||
|
of the onboard memory. It can be accessed with the U-Boot command "log":
|
||
|
|
||
|
=> log show
|
||
|
<4>POST memory PASSED
|
||
|
<4>POST cache PASSED
|
||
|
<4>POST cpu PASSED
|
||
|
<4>POST uart PASSED
|
||
|
<4>POST ethernet PASSED
|
||
|
|
||
|
The DENX Linux kernel tree has support for this log buffer included. Exactly
|
||
|
this buffer is used for logging of all kernel messages too. By enabling the
|
||
|
compile time option "CONFIG_LOGBUFFER" this support is enabled. This way you
|
||
|
can access the U-Boot log messages from Linux too.
|
||
|
|
||
|
2007-08-10, Stefan Roese <sr@denx.de>
|