Merge commit 'wd/master'
This commit is contained in:
commit
859f24350e
5
CREDITS
5
CREDITS
|
@ -537,3 +537,8 @@ N: Timo Tuunainen
|
||||||
E: timo.tuunainen@sysart.fi
|
E: timo.tuunainen@sysart.fi
|
||||||
D: Support for Artila M-501 starter kit
|
D: Support for Artila M-501 starter kit
|
||||||
W: http://www.sysart.fi/
|
W: http://www.sysart.fi/
|
||||||
|
|
||||||
|
N: Philip Balister
|
||||||
|
E: philip@opensdr.com
|
||||||
|
D: Port to Lyrtech SFFSDR development board.
|
||||||
|
W: www.opensdr.com
|
||||||
|
|
3
MAKEALL
3
MAKEALL
|
@ -503,6 +503,7 @@ LIST_ARM9=" \
|
||||||
voiceblue \
|
voiceblue \
|
||||||
davinci_dvevm \
|
davinci_dvevm \
|
||||||
davinci_schmoogie \
|
davinci_schmoogie \
|
||||||
|
davinci_sffsdr \
|
||||||
davinci_sonata \
|
davinci_sonata \
|
||||||
"
|
"
|
||||||
|
|
||||||
|
@ -748,7 +749,7 @@ LIST_sh3=" \
|
||||||
LIST_sh4=" \
|
LIST_sh4=" \
|
||||||
ms7750se \
|
ms7750se \
|
||||||
ms7722se \
|
ms7722se \
|
||||||
Migo-R \
|
MigoR \
|
||||||
r7780mp \
|
r7780mp \
|
||||||
r2dplus \
|
r2dplus \
|
||||||
sh7763rdp \
|
sh7763rdp \
|
||||||
|
|
30
Makefile
30
Makefile
|
@ -220,6 +220,7 @@ LIBS += drivers/hwmon/libhwmon.a
|
||||||
LIBS += drivers/i2c/libi2c.a
|
LIBS += drivers/i2c/libi2c.a
|
||||||
LIBS += drivers/input/libinput.a
|
LIBS += drivers/input/libinput.a
|
||||||
LIBS += drivers/misc/libmisc.a
|
LIBS += drivers/misc/libmisc.a
|
||||||
|
LIBS += drivers/mmc/libmmc.a
|
||||||
LIBS += drivers/mtd/libmtd.a
|
LIBS += drivers/mtd/libmtd.a
|
||||||
LIBS += drivers/mtd/nand/libnand.a
|
LIBS += drivers/mtd/nand/libnand.a
|
||||||
LIBS += drivers/mtd/nand_legacy/libnand_legacy.a
|
LIBS += drivers/mtd/nand_legacy/libnand_legacy.a
|
||||||
|
@ -387,6 +388,7 @@ TAG_SUBDIRS += drivers/hwmon
|
||||||
TAG_SUBDIRS += drivers/i2c
|
TAG_SUBDIRS += drivers/i2c
|
||||||
TAG_SUBDIRS += drivers/input
|
TAG_SUBDIRS += drivers/input
|
||||||
TAG_SUBDIRS += drivers/misc
|
TAG_SUBDIRS += drivers/misc
|
||||||
|
TAG_SUBDIRS += drivers/mmc
|
||||||
TAG_SUBDIRS += drivers/mtd
|
TAG_SUBDIRS += drivers/mtd
|
||||||
TAG_SUBDIRS += drivers/mtd/nand
|
TAG_SUBDIRS += drivers/mtd/nand
|
||||||
TAG_SUBDIRS += drivers/mtd/nand_legacy
|
TAG_SUBDIRS += drivers/mtd/nand_legacy
|
||||||
|
@ -2428,6 +2430,9 @@ davinci_dvevm_config : unconfig
|
||||||
davinci_schmoogie_config : unconfig
|
davinci_schmoogie_config : unconfig
|
||||||
@$(MKCONFIG) $(@:_config=) arm arm926ejs schmoogie davinci davinci
|
@$(MKCONFIG) $(@:_config=) arm arm926ejs schmoogie davinci davinci
|
||||||
|
|
||||||
|
davinci_sffsdr_config : unconfig
|
||||||
|
@$(MKCONFIG) $(@:_config=) arm arm926ejs sffsdr davinci davinci
|
||||||
|
|
||||||
davinci_sonata_config : unconfig
|
davinci_sonata_config : unconfig
|
||||||
@$(MKCONFIG) $(@:_config=) arm arm926ejs sonata davinci davinci
|
@$(MKCONFIG) $(@:_config=) arm arm926ejs sonata davinci davinci
|
||||||
|
|
||||||
|
@ -2910,43 +2915,46 @@ atngw100_config : unconfig
|
||||||
## sh3 (Renesas SuperH)
|
## sh3 (Renesas SuperH)
|
||||||
#########################################################################
|
#########################################################################
|
||||||
mpr2_config: unconfig
|
mpr2_config: unconfig
|
||||||
@ >include/config.h
|
@mkdir -p $(obj)include
|
||||||
@echo "#define CONFIG_MPR2 1" >> include/config.h
|
@echo "#define CONFIG_MPR2 1" > $(obj)include/config.h
|
||||||
@$(MKCONFIG) -a $(@:_config=) sh sh3 mpr2
|
@$(MKCONFIG) -a $(@:_config=) sh sh3 mpr2
|
||||||
|
|
||||||
ms7720se_config: unconfig
|
ms7720se_config: unconfig
|
||||||
@echo "#define CONFIG_MS7720SE 1" > include/config.h
|
@mkdir -p $(obj)include
|
||||||
|
@echo "#define CONFIG_MS7720SE 1" > $(obj)include/config.h
|
||||||
@$(MKCONFIG) -a $(@:_config=) sh sh3 ms7720se
|
@$(MKCONFIG) -a $(@:_config=) sh sh3 ms7720se
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
## sh4 (Renesas SuperH)
|
## sh4 (Renesas SuperH)
|
||||||
#########################################################################
|
#########################################################################
|
||||||
ms7750se_config: unconfig
|
ms7750se_config: unconfig
|
||||||
|
@mkdir -p $(obj)include
|
||||||
@echo "#define CONFIG_MS7750SE 1" > $(obj)include/config.h
|
@echo "#define CONFIG_MS7750SE 1" > $(obj)include/config.h
|
||||||
@$(MKCONFIG) -a $(@:_config=) sh sh4 ms7750se
|
@$(MKCONFIG) -a $(@:_config=) sh sh4 ms7750se
|
||||||
|
|
||||||
ms7722se_config : unconfig
|
ms7722se_config : unconfig
|
||||||
|
@mkdir -p $(obj)include
|
||||||
@echo "#define CONFIG_MS7722SE 1" > $(obj)include/config.h
|
@echo "#define CONFIG_MS7722SE 1" > $(obj)include/config.h
|
||||||
@$(MKCONFIG) -a $(@:_config=) sh sh4 ms7722se
|
@$(MKCONFIG) -a $(@:_config=) sh sh4 ms7722se
|
||||||
|
|
||||||
MigoR_config : unconfig
|
MigoR_config : unconfig
|
||||||
@ >include/config.h
|
@mkdir -p $(obj)include
|
||||||
@echo "#define CONFIG_MIGO_R 1" >> include/config.h
|
@echo "#define CONFIG_MIGO_R 1" > $(obj)include/config.h
|
||||||
@./mkconfig -a $(@:_config=) sh sh4 MigoR
|
@./mkconfig -a $(@:_config=) sh sh4 MigoR
|
||||||
|
|
||||||
r7780mp_config: unconfig
|
r7780mp_config: unconfig
|
||||||
@ >include/config.h
|
@mkdir -p $(obj)include
|
||||||
@echo "#define CONFIG_R7780MP 1" >> include/config.h
|
@echo "#define CONFIG_R7780MP 1" > $(obj)include/config.h
|
||||||
@./mkconfig -a $(@:_config=) sh sh4 r7780mp
|
@./mkconfig -a $(@:_config=) sh sh4 r7780mp
|
||||||
|
|
||||||
r2dplus_config : unconfig
|
r2dplus_config : unconfig
|
||||||
@ >include/config.h
|
@mkdir -p $(obj)include
|
||||||
@echo "#define CONFIG_R2DPLUS 1" >> include/config.h
|
@echo "#define CONFIG_R2DPLUS 1" > $(obj)include/config.h
|
||||||
@./mkconfig -a $(@:_config=) sh sh4 r2dplus
|
@./mkconfig -a $(@:_config=) sh sh4 r2dplus
|
||||||
|
|
||||||
sh7763rdp_config : unconfig
|
sh7763rdp_config : unconfig
|
||||||
@ >include/config.h
|
@mkdir -p $(obj)include
|
||||||
@echo "#define CONFIG_SH7763RDP 1" >> include/config.h
|
@echo "#define CONFIG_SH7763RDP 1" > $(obj)include/config.h
|
||||||
@./mkconfig -a $(@:_config=) sh sh4 sh7763rdp
|
@./mkconfig -a $(@:_config=) sh sh4 sh7763rdp
|
||||||
|
|
||||||
#========================================================================
|
#========================================================================
|
||||||
|
|
141
README
141
README
|
@ -74,7 +74,7 @@ git://www.denx.de/git/u-boot.git ; you can browse it online at
|
||||||
http://www.denx.de/cgi-bin/gitweb.cgi?p=u-boot.git;a=summary
|
http://www.denx.de/cgi-bin/gitweb.cgi?p=u-boot.git;a=summary
|
||||||
|
|
||||||
The "snapshot" links on this page allow you to download tarballs of
|
The "snapshot" links on this page allow you to download tarballs of
|
||||||
any version you might be interested in. Ofifcial releases are also
|
any version you might be interested in. Official releases are also
|
||||||
available for FTP download from the ftp://ftp.denx.de/pub/u-boot/
|
available for FTP download from the ftp://ftp.denx.de/pub/u-boot/
|
||||||
directory.
|
directory.
|
||||||
|
|
||||||
|
@ -94,7 +94,7 @@ Where we come from:
|
||||||
* Provide extended interface to Linux boot loader
|
* Provide extended interface to Linux boot loader
|
||||||
* S-Record download
|
* S-Record download
|
||||||
* network boot
|
* network boot
|
||||||
* PCMCIA / CompactFLash / ATA disk / SCSI ... boot
|
* PCMCIA / CompactFlash / ATA disk / SCSI ... boot
|
||||||
- create ARMBoot project (http://sourceforge.net/projects/armboot)
|
- create ARMBoot project (http://sourceforge.net/projects/armboot)
|
||||||
- add other CPU families (starting with ARM)
|
- add other CPU families (starting with ARM)
|
||||||
- create U-Boot project (http://sourceforge.net/projects/u-boot)
|
- create U-Boot project (http://sourceforge.net/projects/u-boot)
|
||||||
|
@ -230,7 +230,7 @@ Example: For a TQM823L module type:
|
||||||
cd u-boot
|
cd u-boot
|
||||||
make TQM823L_config
|
make TQM823L_config
|
||||||
|
|
||||||
For the Cogent platform, you need to specify the cpu type as well;
|
For the Cogent platform, you need to specify the CPU type as well;
|
||||||
e.g. "make cogent_mpc8xx_config". And also configure the cogent
|
e.g. "make cogent_mpc8xx_config". And also configure the cogent
|
||||||
directory according to the instructions in cogent/README.
|
directory according to the instructions in cogent/README.
|
||||||
|
|
||||||
|
@ -278,7 +278,7 @@ The following options need to be configured:
|
||||||
- Motherboard Options: (if CONFIG_CMA101 or CONFIG_CMA102 are defined)
|
- Motherboard Options: (if CONFIG_CMA101 or CONFIG_CMA102 are defined)
|
||||||
Define one or more of
|
Define one or more of
|
||||||
CONFIG_LCD_HEARTBEAT - update a character position on
|
CONFIG_LCD_HEARTBEAT - update a character position on
|
||||||
the lcd display every second with
|
the LCD display every second with
|
||||||
a "rotator" |\-/|\-/
|
a "rotator" |\-/|\-/
|
||||||
|
|
||||||
- Board flavour: (if CONFIG_MPC8260ADS is defined)
|
- Board flavour: (if CONFIG_MPC8260ADS is defined)
|
||||||
|
@ -293,7 +293,7 @@ The following options need to be configured:
|
||||||
Define exactly one of
|
Define exactly one of
|
||||||
CONFIG_MPC8240, CONFIG_MPC8245
|
CONFIG_MPC8240, CONFIG_MPC8245
|
||||||
|
|
||||||
- 8xx CPU Options: (if using an MPC8xx cpu)
|
- 8xx CPU Options: (if using an MPC8xx CPU)
|
||||||
CONFIG_8xx_GCLK_FREQ - deprecated: CPU clock if
|
CONFIG_8xx_GCLK_FREQ - deprecated: CPU clock if
|
||||||
get_gclk_freq() cannot work
|
get_gclk_freq() cannot work
|
||||||
e.g. if there is no 32KHz
|
e.g. if there is no 32KHz
|
||||||
|
@ -346,7 +346,7 @@ The following options need to be configured:
|
||||||
|
|
||||||
CONFIG_MEMSIZE_IN_BYTES [relevant for MIPS only]
|
CONFIG_MEMSIZE_IN_BYTES [relevant for MIPS only]
|
||||||
|
|
||||||
When transfering memsize parameter to linux, some versions
|
When transferring memsize parameter to linux, some versions
|
||||||
expect it to be in bytes, others in MB.
|
expect it to be in bytes, others in MB.
|
||||||
Define CONFIG_MEMSIZE_IN_BYTES to make it in bytes.
|
Define CONFIG_MEMSIZE_IN_BYTES to make it in bytes.
|
||||||
|
|
||||||
|
@ -366,7 +366,8 @@ The following options need to be configured:
|
||||||
OF_TBCLK - The timebase frequency.
|
OF_TBCLK - The timebase frequency.
|
||||||
OF_STDOUT_PATH - The path to the console device
|
OF_STDOUT_PATH - The path to the console device
|
||||||
|
|
||||||
boards with QUICC Engines require OF_QE to set UCC mac addresses
|
boards with QUICC Engines require OF_QE to set UCC MAC
|
||||||
|
addresses
|
||||||
|
|
||||||
CONFIG_OF_BOARD_SETUP
|
CONFIG_OF_BOARD_SETUP
|
||||||
|
|
||||||
|
@ -375,7 +376,7 @@ The following options need to be configured:
|
||||||
|
|
||||||
CONFIG_OF_BOOT_CPU
|
CONFIG_OF_BOOT_CPU
|
||||||
|
|
||||||
This define fills in the correct boot cpu in the boot
|
This define fills in the correct boot CPU in the boot
|
||||||
param header, the default value is zero if undefined.
|
param header, the default value is zero if undefined.
|
||||||
|
|
||||||
- Serial Ports:
|
- Serial Ports:
|
||||||
|
@ -445,7 +446,7 @@ The following options need to be configured:
|
||||||
linux_logo.h for logo.
|
linux_logo.h for logo.
|
||||||
Requires CONFIG_VIDEO_LOGO
|
Requires CONFIG_VIDEO_LOGO
|
||||||
CONFIG_CONSOLE_EXTRA_INFO
|
CONFIG_CONSOLE_EXTRA_INFO
|
||||||
addional board info beside
|
additional board info beside
|
||||||
the logo
|
the logo
|
||||||
|
|
||||||
When CONFIG_CFB_CONSOLE is defined, video console is
|
When CONFIG_CFB_CONSOLE is defined, video console is
|
||||||
|
@ -515,7 +516,7 @@ The following options need to be configured:
|
||||||
The value of these goes into the environment as
|
The value of these goes into the environment as
|
||||||
"ramboot" and "nfsboot" respectively, and can be used
|
"ramboot" and "nfsboot" respectively, and can be used
|
||||||
as a convenience, when switching between booting from
|
as a convenience, when switching between booting from
|
||||||
ram and nfs.
|
RAM and NFS.
|
||||||
|
|
||||||
- Pre-Boot Commands:
|
- Pre-Boot Commands:
|
||||||
CONFIG_PREBOOT
|
CONFIG_PREBOOT
|
||||||
|
@ -735,11 +736,11 @@ The following options need to be configured:
|
||||||
Support for Intel 8254x gigabit chips.
|
Support for Intel 8254x gigabit chips.
|
||||||
|
|
||||||
CONFIG_E1000_FALLBACK_MAC
|
CONFIG_E1000_FALLBACK_MAC
|
||||||
default MAC for empty eeprom after production.
|
default MAC for empty EEPROM after production.
|
||||||
|
|
||||||
CONFIG_EEPRO100
|
CONFIG_EEPRO100
|
||||||
Support for Intel 82557/82559/82559ER chips.
|
Support for Intel 82557/82559/82559ER chips.
|
||||||
Optional CONFIG_EEPRO100_SROM_WRITE enables eeprom
|
Optional CONFIG_EEPRO100_SROM_WRITE enables EEPROM
|
||||||
write routine for first time initialisation.
|
write routine for first time initialisation.
|
||||||
|
|
||||||
CONFIG_TULIP
|
CONFIG_TULIP
|
||||||
|
@ -818,7 +819,7 @@ The following options need to be configured:
|
||||||
Define the below if you wish to use the USB console.
|
Define the below if you wish to use the USB console.
|
||||||
Once firmware is rebuilt from a serial console issue the
|
Once firmware is rebuilt from a serial console issue the
|
||||||
command "setenv stdin usbtty; setenv stdout usbtty" and
|
command "setenv stdin usbtty; setenv stdout usbtty" and
|
||||||
attach your usb cable. The Unix command "dmesg" should print
|
attach your USB cable. The Unix command "dmesg" should print
|
||||||
it has found a new device. The environment variable usbtty
|
it has found a new device. The environment variable usbtty
|
||||||
can be set to gserial or cdc_acm to enable your device to
|
can be set to gserial or cdc_acm to enable your device to
|
||||||
appear to a USB host as a Linux gserial device or a
|
appear to a USB host as a Linux gserial device or a
|
||||||
|
@ -932,7 +933,7 @@ The following options need to be configured:
|
||||||
assumed.
|
assumed.
|
||||||
|
|
||||||
For the CT69000 and SMI_LYNXEM drivers, videomode is
|
For the CT69000 and SMI_LYNXEM drivers, videomode is
|
||||||
selected via environment 'videomode'. Two diferent ways
|
selected via environment 'videomode'. Two different ways
|
||||||
are possible:
|
are possible:
|
||||||
- "videomode=num" 'num' is a standard LiLo mode numbers.
|
- "videomode=num" 'num' is a standard LiLo mode numbers.
|
||||||
Following standard modes are supported (* is default):
|
Following standard modes are supported (* is default):
|
||||||
|
@ -1055,7 +1056,7 @@ The following options need to be configured:
|
||||||
CONFIG_PHY_GIGE
|
CONFIG_PHY_GIGE
|
||||||
|
|
||||||
If this option is set, support for speed/duplex
|
If this option is set, support for speed/duplex
|
||||||
detection of Gigabit PHY is included.
|
detection of gigabit PHY is included.
|
||||||
|
|
||||||
CONFIG_PHY_RESET_DELAY
|
CONFIG_PHY_RESET_DELAY
|
||||||
|
|
||||||
|
@ -1074,21 +1075,21 @@ The following options need to be configured:
|
||||||
CONFIG_ETH2ADDR
|
CONFIG_ETH2ADDR
|
||||||
CONFIG_ETH3ADDR
|
CONFIG_ETH3ADDR
|
||||||
|
|
||||||
Define a default value for ethernet address to use
|
Define a default value for Ethernet address to use
|
||||||
for the respective ethernet interface, in case this
|
for the respective Ethernet interface, in case this
|
||||||
is not determined automatically.
|
is not determined automatically.
|
||||||
|
|
||||||
- IP address:
|
- IP address:
|
||||||
CONFIG_IPADDR
|
CONFIG_IPADDR
|
||||||
|
|
||||||
Define a default value for the IP address to use for
|
Define a default value for the IP address to use for
|
||||||
the default ethernet interface, in case this is not
|
the default Ethernet interface, in case this is not
|
||||||
determined through e.g. bootp.
|
determined through e.g. bootp.
|
||||||
|
|
||||||
- Server IP address:
|
- Server IP address:
|
||||||
CONFIG_SERVERIP
|
CONFIG_SERVERIP
|
||||||
|
|
||||||
Defines a default value for theIP address of a TFTP
|
Defines a default value for the IP address of a TFTP
|
||||||
server to contact when using the "tftboot" command.
|
server to contact when using the "tftboot" command.
|
||||||
|
|
||||||
- Multicast TFTP Mode:
|
- Multicast TFTP Mode:
|
||||||
|
@ -1096,7 +1097,7 @@ The following options need to be configured:
|
||||||
|
|
||||||
Defines whether you want to support multicast TFTP as per
|
Defines whether you want to support multicast TFTP as per
|
||||||
rfc-2090; for example to work with atftp. Lets lots of targets
|
rfc-2090; for example to work with atftp. Lets lots of targets
|
||||||
tftp down the same boot image concurrently. Note: the ethernet
|
tftp down the same boot image concurrently. Note: the Ethernet
|
||||||
driver in use must provide a function: mcast() to join/leave a
|
driver in use must provide a function: mcast() to join/leave a
|
||||||
multicast group.
|
multicast group.
|
||||||
|
|
||||||
|
@ -1184,7 +1185,7 @@ The following options need to be configured:
|
||||||
|
|
||||||
A printf format string which contains the ascii name of
|
A printf format string which contains the ascii name of
|
||||||
the port. Normally is set to "eth%d" which sets
|
the port. Normally is set to "eth%d" which sets
|
||||||
eth0 for the first ethernet, eth1 for the second etc.
|
eth0 for the first Ethernet, eth1 for the second etc.
|
||||||
|
|
||||||
CONFIG_CDP_CAPABILITIES
|
CONFIG_CDP_CAPABILITIES
|
||||||
|
|
||||||
|
@ -1233,7 +1234,7 @@ The following options need to be configured:
|
||||||
|
|
||||||
These enable I2C serial bus commands. Defining either of
|
These enable I2C serial bus commands. Defining either of
|
||||||
(but not both of) CONFIG_HARD_I2C or CONFIG_SOFT_I2C will
|
(but not both of) CONFIG_HARD_I2C or CONFIG_SOFT_I2C will
|
||||||
include the appropriate I2C driver for the selected cpu.
|
include the appropriate I2C driver for the selected CPU.
|
||||||
|
|
||||||
This will allow you to use i2c commands at the u-boot
|
This will allow you to use i2c commands at the u-boot
|
||||||
command line (as long as you set CONFIG_CMD_I2C in
|
command line (as long as you set CONFIG_CMD_I2C in
|
||||||
|
@ -1258,10 +1259,10 @@ The following options need to be configured:
|
||||||
In both cases you will need to define CFG_I2C_SPEED
|
In both cases you will need to define CFG_I2C_SPEED
|
||||||
to be the frequency (in Hz) at which you wish your i2c bus
|
to be the frequency (in Hz) at which you wish your i2c bus
|
||||||
to run and CFG_I2C_SLAVE to be the address of this node (ie
|
to run and CFG_I2C_SLAVE to be the address of this node (ie
|
||||||
the cpu's i2c node address).
|
the CPU's i2c node address).
|
||||||
|
|
||||||
Now, the u-boot i2c code for the mpc8xx (cpu/mpc8xx/i2c.c)
|
Now, the u-boot i2c code for the mpc8xx (cpu/mpc8xx/i2c.c)
|
||||||
sets the cpu up as a master node and so its address should
|
sets the CPU up as a master node and so its address should
|
||||||
therefore be cleared to 0 (See, eg, MPC823e User's Manual
|
therefore be cleared to 0 (See, eg, MPC823e User's Manual
|
||||||
p.16-473). So, set CFG_I2C_SLAVE to 0.
|
p.16-473). So, set CFG_I2C_SLAVE to 0.
|
||||||
|
|
||||||
|
@ -1480,17 +1481,17 @@ The following options need to be configured:
|
||||||
Maximum time to wait for the INIT_B line to deassert
|
Maximum time to wait for the INIT_B line to deassert
|
||||||
after PROB_B has been deasserted during a Virtex II
|
after PROB_B has been deasserted during a Virtex II
|
||||||
FPGA configuration sequence. The default time is 500
|
FPGA configuration sequence. The default time is 500
|
||||||
mS.
|
ms.
|
||||||
|
|
||||||
CFG_FPGA_WAIT_BUSY
|
CFG_FPGA_WAIT_BUSY
|
||||||
|
|
||||||
Maximum time to wait for BUSY to deassert during
|
Maximum time to wait for BUSY to deassert during
|
||||||
Virtex II FPGA configuration. The default is 5 mS.
|
Virtex II FPGA configuration. The default is 5 ms.
|
||||||
|
|
||||||
CFG_FPGA_WAIT_CONFIG
|
CFG_FPGA_WAIT_CONFIG
|
||||||
|
|
||||||
Time to wait after FPGA configuration. The default is
|
Time to wait after FPGA configuration. The default is
|
||||||
200 mS.
|
200 ms.
|
||||||
|
|
||||||
- Configuration Management:
|
- Configuration Management:
|
||||||
CONFIG_IDENT_STRING
|
CONFIG_IDENT_STRING
|
||||||
|
@ -1507,7 +1508,7 @@ The following options need to be configured:
|
||||||
protects these variables from casual modification by
|
protects these variables from casual modification by
|
||||||
the user. Once set, these variables are read-only,
|
the user. Once set, these variables are read-only,
|
||||||
and write or delete attempts are rejected. You can
|
and write or delete attempts are rejected. You can
|
||||||
change this behviour:
|
change this behaviour:
|
||||||
|
|
||||||
If CONFIG_ENV_OVERWRITE is #defined in your config
|
If CONFIG_ENV_OVERWRITE is #defined in your config
|
||||||
file, the write protection for vendor parameters is
|
file, the write protection for vendor parameters is
|
||||||
|
@ -1516,7 +1517,7 @@ The following options need to be configured:
|
||||||
|
|
||||||
Alternatively, if you #define _both_ CONFIG_ETHADDR
|
Alternatively, if you #define _both_ CONFIG_ETHADDR
|
||||||
_and_ CONFIG_OVERWRITE_ETHADDR_ONCE, a default
|
_and_ CONFIG_OVERWRITE_ETHADDR_ONCE, a default
|
||||||
ethernet address is installed in the environment,
|
Ethernet address is installed in the environment,
|
||||||
which can be changed exactly ONCE by the user. [The
|
which can be changed exactly ONCE by the user. [The
|
||||||
serial# is unaffected by this, i. e. it remains
|
serial# is unaffected by this, i. e. it remains
|
||||||
read-only.]
|
read-only.]
|
||||||
|
@ -1560,7 +1561,7 @@ The following options need to be configured:
|
||||||
Define this variable to stop the system in case of a
|
Define this variable to stop the system in case of a
|
||||||
fatal error, so that you have to reset it manually.
|
fatal error, so that you have to reset it manually.
|
||||||
This is probably NOT a good idea for an embedded
|
This is probably NOT a good idea for an embedded
|
||||||
system where you want to system to reboot
|
system where you want the system to reboot
|
||||||
automatically as fast as possible, but it may be
|
automatically as fast as possible, but it may be
|
||||||
useful during development since you can try to debug
|
useful during development since you can try to debug
|
||||||
the conditions that lead to the situation.
|
the conditions that lead to the situation.
|
||||||
|
@ -1627,7 +1628,7 @@ The following options need to be configured:
|
||||||
- Commandline Editing and History:
|
- Commandline Editing and History:
|
||||||
CONFIG_CMDLINE_EDITING
|
CONFIG_CMDLINE_EDITING
|
||||||
|
|
||||||
Enable editiong and History functions for interactive
|
Enable editing and History functions for interactive
|
||||||
commandline input operations
|
commandline input operations
|
||||||
|
|
||||||
- Default Environment:
|
- Default Environment:
|
||||||
|
@ -1668,7 +1669,7 @@ The following options need to be configured:
|
||||||
|
|
||||||
Adding this option adds support for Xilinx SystemACE
|
Adding this option adds support for Xilinx SystemACE
|
||||||
chips attached via some sort of local bus. The address
|
chips attached via some sort of local bus. The address
|
||||||
of the chip must alsh be defined in the
|
of the chip must also be defined in the
|
||||||
CFG_SYSTEMACE_BASE macro. For example:
|
CFG_SYSTEMACE_BASE macro. For example:
|
||||||
|
|
||||||
#define CONFIG_SYSTEMACE
|
#define CONFIG_SYSTEMACE
|
||||||
|
@ -1734,7 +1735,7 @@ Legacy uImage format:
|
||||||
-12 common/image.c Ramdisk data has bad checksum
|
-12 common/image.c Ramdisk data has bad checksum
|
||||||
11 common/image.c Ramdisk data has correct checksum
|
11 common/image.c Ramdisk data has correct checksum
|
||||||
12 common/image.c Ramdisk verification complete, start loading
|
12 common/image.c Ramdisk verification complete, start loading
|
||||||
-13 common/image.c Wrong Image Type (not PPC Linux Ramdisk)
|
-13 common/image.c Wrong Image Type (not PPC Linux ramdisk)
|
||||||
13 common/image.c Start multifile image verification
|
13 common/image.c Start multifile image verification
|
||||||
14 common/image.c No initial ramdisk, no multifile, continue.
|
14 common/image.c No initial ramdisk, no multifile, continue.
|
||||||
|
|
||||||
|
@ -1794,13 +1795,13 @@ Legacy uImage format:
|
||||||
|
|
||||||
-60 common/env_common.c Environment has a bad CRC, using default
|
-60 common/env_common.c Environment has a bad CRC, using default
|
||||||
|
|
||||||
64 net/eth.c starting with Ethernetconfiguration.
|
64 net/eth.c starting with Ethernet configuration.
|
||||||
-64 net/eth.c no Ethernet found.
|
-64 net/eth.c no Ethernet found.
|
||||||
65 net/eth.c Ethernet found.
|
65 net/eth.c Ethernet found.
|
||||||
|
|
||||||
-80 common/cmd_net.c usage wrong
|
-80 common/cmd_net.c usage wrong
|
||||||
80 common/cmd_net.c before calling NetLoop()
|
80 common/cmd_net.c before calling NetLoop()
|
||||||
-81 common/cmd_net.c some error in NetLoop() occured
|
-81 common/cmd_net.c some error in NetLoop() occurred
|
||||||
81 common/cmd_net.c NetLoop() back without error
|
81 common/cmd_net.c NetLoop() back without error
|
||||||
-82 common/cmd_net.c size == 0 (File with size 0 loaded)
|
-82 common/cmd_net.c size == 0 (File with size 0 loaded)
|
||||||
82 common/cmd_net.c trying automatic boot
|
82 common/cmd_net.c trying automatic boot
|
||||||
|
@ -1823,8 +1824,8 @@ FIT uImage format:
|
||||||
105 common/cmd_bootm.c Kernel subimage hash verification OK
|
105 common/cmd_bootm.c Kernel subimage hash verification OK
|
||||||
-105 common/cmd_bootm.c Kernel subimage is for unsupported architecture
|
-105 common/cmd_bootm.c Kernel subimage is for unsupported architecture
|
||||||
106 common/cmd_bootm.c Architecture check OK
|
106 common/cmd_bootm.c Architecture check OK
|
||||||
-106 common/cmd_bootm.c Kernel subimage has wrong typea
|
-106 common/cmd_bootm.c Kernel subimage has wrong type
|
||||||
107 common/cmd_bootm.c Kernel subimge type OK
|
107 common/cmd_bootm.c Kernel subimage type OK
|
||||||
-107 common/cmd_bootm.c Can't get kernel subimage data/size
|
-107 common/cmd_bootm.c Can't get kernel subimage data/size
|
||||||
108 common/cmd_bootm.c Got kernel subimage data/size
|
108 common/cmd_bootm.c Got kernel subimage data/size
|
||||||
-108 common/cmd_bootm.c Wrong image type (not legacy, FIT)
|
-108 common/cmd_bootm.c Wrong image type (not legacy, FIT)
|
||||||
|
@ -1837,7 +1838,7 @@ FIT uImage format:
|
||||||
120 common/image.c Start initial ramdisk verification
|
120 common/image.c Start initial ramdisk verification
|
||||||
-120 common/image.c Ramdisk FIT image has incorrect format
|
-120 common/image.c Ramdisk FIT image has incorrect format
|
||||||
121 common/image.c Ramdisk FIT image has correct format
|
121 common/image.c Ramdisk FIT image has correct format
|
||||||
122 common/image.c No Ramdisk subimage unit name, using configuration
|
122 common/image.c No ramdisk subimage unit name, using configuration
|
||||||
-122 common/image.c Can't get configuration for ramdisk subimage
|
-122 common/image.c Can't get configuration for ramdisk subimage
|
||||||
123 common/image.c Ramdisk unit name specified
|
123 common/image.c Ramdisk unit name specified
|
||||||
-124 common/image.c Can't get ramdisk subimage node offset
|
-124 common/image.c Can't get ramdisk subimage node offset
|
||||||
|
@ -1851,13 +1852,13 @@ FIT uImage format:
|
||||||
129 common/image.c Can't get ramdisk load address
|
129 common/image.c Can't get ramdisk load address
|
||||||
-129 common/image.c Got ramdisk load address
|
-129 common/image.c Got ramdisk load address
|
||||||
|
|
||||||
-130 common/cmd_doc.c Icorrect FIT image format
|
-130 common/cmd_doc.c Incorrect FIT image format
|
||||||
131 common/cmd_doc.c FIT image format OK
|
131 common/cmd_doc.c FIT image format OK
|
||||||
|
|
||||||
-140 common/cmd_ide.c Icorrect FIT image format
|
-140 common/cmd_ide.c Incorrect FIT image format
|
||||||
141 common/cmd_ide.c FIT image format OK
|
141 common/cmd_ide.c FIT image format OK
|
||||||
|
|
||||||
-150 common/cmd_nand.c Icorrect FIT image format
|
-150 common/cmd_nand.c Incorrect FIT image format
|
||||||
151 common/cmd_nand.c FIT image format OK
|
151 common/cmd_nand.c FIT image format OK
|
||||||
|
|
||||||
|
|
||||||
|
@ -1866,7 +1867,7 @@ Modem Support:
|
||||||
|
|
||||||
[so far only for SMDK2400 and TRAB boards]
|
[so far only for SMDK2400 and TRAB boards]
|
||||||
|
|
||||||
- Modem support endable:
|
- Modem support enable:
|
||||||
CONFIG_MODEM_SUPPORT
|
CONFIG_MODEM_SUPPORT
|
||||||
|
|
||||||
- RTS/CTS Flow control enable:
|
- RTS/CTS Flow control enable:
|
||||||
|
@ -1882,11 +1883,11 @@ Modem Support:
|
||||||
|
|
||||||
There are common interrupt_init() and timer_interrupt()
|
There are common interrupt_init() and timer_interrupt()
|
||||||
for all PPC archs. interrupt_init() calls interrupt_init_cpu()
|
for all PPC archs. interrupt_init() calls interrupt_init_cpu()
|
||||||
for cpu specific initialization. interrupt_init_cpu()
|
for CPU specific initialization. interrupt_init_cpu()
|
||||||
should set decrementer_count to appropriate value. If
|
should set decrementer_count to appropriate value. If
|
||||||
cpu resets decrementer automatically after interrupt
|
CPU resets decrementer automatically after interrupt
|
||||||
(ppc4xx) it should set decrementer_count to zero.
|
(ppc4xx) it should set decrementer_count to zero.
|
||||||
timer_interrupt() calls timer_interrupt_cpu() for cpu
|
timer_interrupt() calls timer_interrupt_cpu() for CPU
|
||||||
specific handling. If board has watchdog / status_led
|
specific handling. If board has watchdog / status_led
|
||||||
/ other_activity_monitor it works automatically from
|
/ other_activity_monitor it works automatically from
|
||||||
general timer_interrupt().
|
general timer_interrupt().
|
||||||
|
@ -1896,7 +1897,7 @@ Modem Support:
|
||||||
In the target system modem support is enabled when a
|
In the target system modem support is enabled when a
|
||||||
specific key (key combination) is pressed during
|
specific key (key combination) is pressed during
|
||||||
power-on. Otherwise U-Boot will boot normally
|
power-on. Otherwise U-Boot will boot normally
|
||||||
(autoboot). The key_pressed() fuction is called from
|
(autoboot). The key_pressed() function is called from
|
||||||
board_init(). Currently key_pressed() is a dummy
|
board_init(). Currently key_pressed() is a dummy
|
||||||
function, returning 1 and thus enabling modem
|
function, returning 1 and thus enabling modem
|
||||||
initialization.
|
initialization.
|
||||||
|
@ -1904,7 +1905,7 @@ Modem Support:
|
||||||
If there are no modem init strings in the
|
If there are no modem init strings in the
|
||||||
environment, U-Boot proceed to autoboot; the
|
environment, U-Boot proceed to autoboot; the
|
||||||
previous output (banner, info printfs) will be
|
previous output (banner, info printfs) will be
|
||||||
supressed, though.
|
suppressed, though.
|
||||||
|
|
||||||
See also: doc/README.Modem
|
See also: doc/README.Modem
|
||||||
|
|
||||||
|
@ -1960,7 +1961,7 @@ Configuration Settings:
|
||||||
- CFG_MEM_TOP_HIDE (PPC only):
|
- CFG_MEM_TOP_HIDE (PPC only):
|
||||||
If CFG_MEM_TOP_HIDE is defined in the board config header,
|
If CFG_MEM_TOP_HIDE is defined in the board config header,
|
||||||
this specified memory area will get subtracted from the top
|
this specified memory area will get subtracted from the top
|
||||||
(end) of ram and won't get "touched" at all by U-Boot. By
|
(end) of RAM and won't get "touched" at all by U-Boot. By
|
||||||
fixing up gd->ram_size the Linux kernel should gets passed
|
fixing up gd->ram_size the Linux kernel should gets passed
|
||||||
the now "corrected" memory size and won't touch it either.
|
the now "corrected" memory size and won't touch it either.
|
||||||
This should work for arch/ppc and arch/powerpc. Only Linux
|
This should work for arch/ppc and arch/powerpc. Only Linux
|
||||||
|
@ -2055,8 +2056,8 @@ Configuration Settings:
|
||||||
|
|
||||||
The two-step approach is usually more reliable, since
|
The two-step approach is usually more reliable, since
|
||||||
you can check if the download worked before you erase
|
you can check if the download worked before you erase
|
||||||
the flash, but in some situations (when sytem RAM is
|
the flash, but in some situations (when system RAM is
|
||||||
too limited to allow for a tempory copy of the
|
too limited to allow for a temporary copy of the
|
||||||
downloaded image) this option may be very useful.
|
downloaded image) this option may be very useful.
|
||||||
|
|
||||||
- CFG_FLASH_CFI:
|
- CFG_FLASH_CFI:
|
||||||
|
@ -2086,11 +2087,11 @@ Configuration Settings:
|
||||||
column displays, 15 (3..1) for 40 column displays.
|
column displays, 15 (3..1) for 40 column displays.
|
||||||
|
|
||||||
- CFG_RX_ETH_BUFFER:
|
- CFG_RX_ETH_BUFFER:
|
||||||
Defines the number of ethernet receive buffers. On some
|
Defines the number of Ethernet receive buffers. On some
|
||||||
ethernet controllers it is recommended to set this value
|
Ethernet controllers it is recommended to set this value
|
||||||
to 8 or even higher (EEPRO100 or 405 EMAC), since all
|
to 8 or even higher (EEPRO100 or 405 EMAC), since all
|
||||||
buffers can be full shortly after enabling the interface
|
buffers can be full shortly after enabling the interface
|
||||||
on high ethernet traffic.
|
on high Ethernet traffic.
|
||||||
Defaults to 4 if not defined.
|
Defaults to 4 if not defined.
|
||||||
|
|
||||||
The following definitions that deal with the placement and management
|
The following definitions that deal with the placement and management
|
||||||
|
@ -2158,7 +2159,7 @@ following configurations:
|
||||||
CFG_ENV_SIZE_REDUND
|
CFG_ENV_SIZE_REDUND
|
||||||
|
|
||||||
These settings describe a second storage area used to hold
|
These settings describe a second storage area used to hold
|
||||||
a redundand copy of the environment data, so that there is
|
a redundant copy of the environment data, so that there is
|
||||||
a valid backup copy in case there is a power failure during
|
a valid backup copy in case there is a power failure during
|
||||||
a "saveenv" operation.
|
a "saveenv" operation.
|
||||||
|
|
||||||
|
@ -2176,14 +2177,14 @@ accordingly!
|
||||||
- CFG_ENV_ADDR:
|
- CFG_ENV_ADDR:
|
||||||
- CFG_ENV_SIZE:
|
- CFG_ENV_SIZE:
|
||||||
|
|
||||||
These two #defines are used to determin the memory area you
|
These two #defines are used to determine the memory area you
|
||||||
want to use for environment. It is assumed that this memory
|
want to use for environment. It is assumed that this memory
|
||||||
can just be read and written to, without any special
|
can just be read and written to, without any special
|
||||||
provision.
|
provision.
|
||||||
|
|
||||||
BE CAREFUL! The first access to the environment happens quite early
|
BE CAREFUL! The first access to the environment happens quite early
|
||||||
in U-Boot initalization (when we try to get the setting of for the
|
in U-Boot initalization (when we try to get the setting of for the
|
||||||
console baudrate). You *MUST* have mappend your NVRAM area then, or
|
console baudrate). You *MUST* have mapped your NVRAM area then, or
|
||||||
U-Boot will hang.
|
U-Boot will hang.
|
||||||
|
|
||||||
Please note that even with NVRAM we still use a copy of the
|
Please note that even with NVRAM we still use a copy of the
|
||||||
|
@ -2332,14 +2333,14 @@ Low Level (hardware related) configuration options:
|
||||||
|
|
||||||
CFG_ISA_IO_STRIDE
|
CFG_ISA_IO_STRIDE
|
||||||
|
|
||||||
defines the spacing between fdc chipset registers
|
defines the spacing between FDC chipset registers
|
||||||
(default value 1)
|
(default value 1)
|
||||||
|
|
||||||
CFG_ISA_IO_OFFSET
|
CFG_ISA_IO_OFFSET
|
||||||
|
|
||||||
defines the offset of register from address. It
|
defines the offset of register from address. It
|
||||||
depends on which part of the data bus is connected to
|
depends on which part of the data bus is connected to
|
||||||
the fdc chipset. (default value 0)
|
the FDC chipset. (default value 0)
|
||||||
|
|
||||||
If CFG_ISA_IO_STRIDE CFG_ISA_IO_OFFSET and
|
If CFG_ISA_IO_STRIDE CFG_ISA_IO_OFFSET and
|
||||||
CFG_FDC_DRIVE_NUMBER are undefined, they take their
|
CFG_FDC_DRIVE_NUMBER are undefined, they take their
|
||||||
|
@ -2535,7 +2536,7 @@ Low Level (hardware related) configuration options:
|
||||||
Normally these variables MUST NOT be defined. The
|
Normally these variables MUST NOT be defined. The
|
||||||
only exception is when U-Boot is loaded (to RAM) by
|
only exception is when U-Boot is loaded (to RAM) by
|
||||||
some other boot loader or by a debugger which
|
some other boot loader or by a debugger which
|
||||||
performs these intializations itself.
|
performs these initializations itself.
|
||||||
|
|
||||||
|
|
||||||
Building the Software:
|
Building the Software:
|
||||||
|
@ -2570,7 +2571,7 @@ Note: for some board special configuration names may exist; check if
|
||||||
additional information is available from the board vendor; for
|
additional information is available from the board vendor; for
|
||||||
instance, the TQM823L systems are available without (standard)
|
instance, the TQM823L systems are available without (standard)
|
||||||
or with LCD support. You can select such additional "features"
|
or with LCD support. You can select such additional "features"
|
||||||
when chosing the configuration, i. e.
|
when choosing the configuration, i. e.
|
||||||
|
|
||||||
make TQM823L_config
|
make TQM823L_config
|
||||||
- will configure for a plain TQM823L, i. e. no LCD support
|
- will configure for a plain TQM823L, i. e. no LCD support
|
||||||
|
@ -2773,7 +2774,7 @@ Some configuration options can be set using Environment Variables:
|
||||||
for use by the bootm command. See also "bootm_size"
|
for use by the bootm command. See also "bootm_size"
|
||||||
environment variable. Address defined by "bootm_low" is
|
environment variable. Address defined by "bootm_low" is
|
||||||
also the base of the initial memory mapping for the Linux
|
also the base of the initial memory mapping for the Linux
|
||||||
kernel -- see the descripton of CFG_BOOTMAPSZ.
|
kernel -- see the description of CFG_BOOTMAPSZ.
|
||||||
|
|
||||||
bootm_size - Memory range available for image processing in the bootm
|
bootm_size - Memory range available for image processing in the bootm
|
||||||
command can be restricted. This variable is given as
|
command can be restricted. This variable is given as
|
||||||
|
@ -2880,7 +2881,7 @@ Some configuration options can be set using Environment Variables:
|
||||||
themselves.
|
themselves.
|
||||||
|
|
||||||
npe_ucode - see CONFIG_IXP4XX_NPE_EXT_UCOD
|
npe_ucode - see CONFIG_IXP4XX_NPE_EXT_UCOD
|
||||||
if set load address for the npe microcode
|
if set load address for the NPE microcode
|
||||||
|
|
||||||
tftpsrcport - If this is set, the value is used for TFTP's
|
tftpsrcport - If this is set, the value is used for TFTP's
|
||||||
UDP source port.
|
UDP source port.
|
||||||
|
@ -2889,7 +2890,7 @@ Some configuration options can be set using Environment Variables:
|
||||||
destination port instead of the Well Know Port 69.
|
destination port instead of the Well Know Port 69.
|
||||||
|
|
||||||
vlan - When set to a value < 4095 the traffic over
|
vlan - When set to a value < 4095 the traffic over
|
||||||
ethernet is encapsulated/received over 802.1q
|
Ethernet is encapsulated/received over 802.1q
|
||||||
VLAN tagged frames.
|
VLAN tagged frames.
|
||||||
|
|
||||||
The following environment variables may be used and automatically
|
The following environment variables may be used and automatically
|
||||||
|
@ -2967,14 +2968,14 @@ General rules:
|
||||||
executed anyway.
|
executed anyway.
|
||||||
|
|
||||||
(2) If you execute several variables with one call to run (i. e.
|
(2) If you execute several variables with one call to run (i. e.
|
||||||
calling run with a list af variables as arguments), any failing
|
calling run with a list of variables as arguments), any failing
|
||||||
command will cause "run" to terminate, i. e. the remaining
|
command will cause "run" to terminate, i. e. the remaining
|
||||||
variables are not executed.
|
variables are not executed.
|
||||||
|
|
||||||
Note for Redundant Ethernet Interfaces:
|
Note for Redundant Ethernet Interfaces:
|
||||||
=======================================
|
=======================================
|
||||||
|
|
||||||
Some boards come with redundant ethernet interfaces; U-Boot supports
|
Some boards come with redundant Ethernet interfaces; U-Boot supports
|
||||||
such configurations and is capable of automatic selection of a
|
such configurations and is capable of automatic selection of a
|
||||||
"working" interface when needed. MAC assignment works as follows:
|
"working" interface when needed. MAC assignment works as follows:
|
||||||
|
|
||||||
|
@ -3315,7 +3316,7 @@ parameters. You can check and modify this variable using the
|
||||||
Memory: 15208k available (700k kernel code, 444k data, 32k init) [c0000000,c1000000]
|
Memory: 15208k available (700k kernel code, 444k data, 32k init) [c0000000,c1000000]
|
||||||
...
|
...
|
||||||
|
|
||||||
If you want to boot a Linux kernel with initial ram disk, you pass
|
If you want to boot a Linux kernel with initial RAM disk, you pass
|
||||||
the memory addresses of both the kernel and the initrd image (PPBCOOT
|
the memory addresses of both the kernel and the initrd image (PPBCOOT
|
||||||
format!) to the "bootm" command:
|
format!) to the "bootm" command:
|
||||||
|
|
||||||
|
@ -3625,13 +3626,13 @@ locked as (mis-) used as memory, etc.
|
||||||
require any physical RAM backing up the cache. The cleverness
|
require any physical RAM backing up the cache. The cleverness
|
||||||
is that the cache is being used as a temporary supply of
|
is that the cache is being used as a temporary supply of
|
||||||
necessary storage before the SDRAM controller is setup. It's
|
necessary storage before the SDRAM controller is setup. It's
|
||||||
beyond the scope of this list to expain the details, but you
|
beyond the scope of this list to explain the details, but you
|
||||||
can see how this works by studying the cache architecture and
|
can see how this works by studying the cache architecture and
|
||||||
operation in the architecture and processor-specific manuals.
|
operation in the architecture and processor-specific manuals.
|
||||||
|
|
||||||
OCM is On Chip Memory, which I believe the 405GP has 4K. It
|
OCM is On Chip Memory, which I believe the 405GP has 4K. It
|
||||||
is another option for the system designer to use as an
|
is another option for the system designer to use as an
|
||||||
initial stack/ram area prior to SDRAM being available. Either
|
initial stack/RAM area prior to SDRAM being available. Either
|
||||||
option should work for you. Using CS 4 should be fine if your
|
option should work for you. Using CS 4 should be fine if your
|
||||||
board designers haven't used it for something that would
|
board designers haven't used it for something that would
|
||||||
cause you grief during the initial boot! It is frequently not
|
cause you grief during the initial boot! It is frequently not
|
||||||
|
@ -3656,7 +3657,7 @@ code for the initialization procedures:
|
||||||
* Initialized global data (data segment) is read-only. Do not attempt
|
* Initialized global data (data segment) is read-only. Do not attempt
|
||||||
to write it.
|
to write it.
|
||||||
|
|
||||||
* Do not use any unitialized global data (or implicitely initialized
|
* Do not use any uninitialized global data (or implicitely initialized
|
||||||
as zero data - BSS segment) at all - this is undefined, initiali-
|
as zero data - BSS segment) at all - this is undefined, initiali-
|
||||||
zation is performed later (when relocating to RAM).
|
zation is performed later (when relocating to RAM).
|
||||||
|
|
||||||
|
@ -3768,7 +3769,7 @@ System Initialization:
|
||||||
----------------------
|
----------------------
|
||||||
|
|
||||||
In the reset configuration, U-Boot starts at the reset entry point
|
In the reset configuration, U-Boot starts at the reset entry point
|
||||||
(on most PowerPC systens at address 0x00000100). Because of the reset
|
(on most PowerPC systems at address 0x00000100). Because of the reset
|
||||||
configuration for CS0# this is a mirror of the onboard Flash memory.
|
configuration for CS0# this is a mirror of the onboard Flash memory.
|
||||||
To be able to re-map memory U-Boot then jumps to its link address.
|
To be able to re-map memory U-Boot then jumps to its link address.
|
||||||
To be able to implement the initialization code in C, a (small!)
|
To be able to implement the initialization code in C, a (small!)
|
||||||
|
|
|
@ -24,25 +24,29 @@
|
||||||
|
|
||||||
include $(TOPDIR)/config.mk
|
include $(TOPDIR)/config.mk
|
||||||
|
|
||||||
LIB = lib$(BOARD).a
|
LIB = $(obj)lib$(BOARD).a
|
||||||
|
|
||||||
OBJS := migo_r.o
|
COBJS := migo_r.o
|
||||||
SOBJS := lowlevel_init.o
|
SOBJS := lowlevel_init.o
|
||||||
|
|
||||||
|
SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c)
|
||||||
|
OBJS := $(addprefix $(obj),$(COBJS))
|
||||||
|
SOBJS := $(addprefix $(obj),$(SOBJS))
|
||||||
|
|
||||||
$(LIB): $(OBJS) $(SOBJS)
|
$(LIB): $(OBJS) $(SOBJS)
|
||||||
$(AR) crv $@ $(OBJS) $(SOBJS)
|
$(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f $(SOBJS) $(OBJS)
|
rm -f $(SOBJS) $(OBJS)
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
rm -f $(LIB) core *.bak .depend
|
rm -f $(LIB) core *.bak $(obj).depend
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
|
|
||||||
.depend: Makefile $(SOBJS:.o=.S) $(OBJS:.o=.c)
|
# defines $(obj).depend target
|
||||||
$(CC) -M $(CPPFLAGS) $(SOBJS:.o=.S) $(OBJS:.o=.c) > $@
|
include $(SRCTREE)/rules.mk
|
||||||
|
|
||||||
-include .depend
|
sinclude $(obj).depend
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
|
|
|
@ -38,7 +38,7 @@ clean:
|
||||||
rm -f $(SOBJS) $(OBJS)
|
rm -f $(SOBJS) $(OBJS)
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
rm -f $(LIB) core *.bak .depend
|
rm -f $(LIB) core *.bak $(obj).depend
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
|
|
||||||
|
|
|
@ -38,7 +38,7 @@ clean:
|
||||||
rm -f $(SOBJS) $(OBJS)
|
rm -f $(SOBJS) $(OBJS)
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
rm -f $(LIB) core *.bak .depend
|
rm -f $(LIB) core *.bak $(obj).depend
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
|
|
||||||
|
|
|
@ -38,7 +38,7 @@ clean:
|
||||||
rm -f $(SOBJS) $(OBJS)
|
rm -f $(SOBJS) $(OBJS)
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
rm -f $(LIB) core *.bak .depend
|
rm -f $(LIB) core *.bak $(obj).depend
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
|
|
||||||
|
|
|
@ -38,7 +38,7 @@ clean:
|
||||||
rm -f $(SOBJS) $(OBJS)
|
rm -f $(SOBJS) $(OBJS)
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
rm -f $(LIB) core *.bak .depend
|
rm -f $(LIB) core *.bak $(obj).depend
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
|
|
||||||
|
|
|
@ -41,7 +41,7 @@ clean:
|
||||||
rm -f $(SOBJS) $(OBJS)
|
rm -f $(SOBJS) $(OBJS)
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
rm -f $(LIB) core *.bak .depend
|
rm -f $(LIB) core *.bak $(obj).depend
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
|
|
||||||
|
|
|
@ -45,7 +45,7 @@ clean:
|
||||||
rm -f $(SOBJS) $(OBJS)
|
rm -f $(SOBJS) $(OBJS)
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
rm -f $(LIB) core *.bak .depend
|
rm -f $(LIB) core *.bak $(obj).depend
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
|
|
||||||
|
|
|
@ -39,7 +39,7 @@ clean:
|
||||||
rm -f $(SOBJS) $(OBJS)
|
rm -f $(SOBJS) $(OBJS)
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
rm -f $(LIB) core *.bak .depend
|
rm -f $(LIB) core *.bak $(obj).depend
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
|
|
||||||
|
|
|
@ -38,7 +38,7 @@ clean:
|
||||||
rm -f $(SOBJS) $(OBJS)
|
rm -f $(SOBJS) $(OBJS)
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
rm -f $(LIB) core *.bak .depend
|
rm -f $(LIB) core *.bak $(obj).depend
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
|
|
||||||
|
|
|
@ -670,7 +670,7 @@ static int write_data (flash_info_t * info, ulong dest, FPW data)
|
||||||
|
|
||||||
/* Check if Flash is (sufficiently) erased */
|
/* Check if Flash is (sufficiently) erased */
|
||||||
if ((*addr & data) != data) {
|
if ((*addr & data) != data) {
|
||||||
printf ("not erased at %08lx (%lx)\n", (ulong) addr, *addr);
|
printf ("not erased at %08lx (%lx)\n", (ulong)addr, (ulong)*addr);
|
||||||
return (2);
|
return (2);
|
||||||
}
|
}
|
||||||
/* Disable interrupts which might cause a timeout here */
|
/* Disable interrupts which might cause a timeout here */
|
||||||
|
@ -712,7 +712,7 @@ static int write_data_block (flash_info_t * info, ulong src, ulong dest)
|
||||||
for (i = 0; i < WR_BLOCK; i++)
|
for (i = 0; i < WR_BLOCK; i++)
|
||||||
if ((*dstaddr++ & 0xff) != 0xff) {
|
if ((*dstaddr++ & 0xff) != 0xff) {
|
||||||
printf ("not erased at %08lx (%lx)\n",
|
printf ("not erased at %08lx (%lx)\n",
|
||||||
(ulong) dstaddr, *dstaddr);
|
(ulong)dstaddr, (ulong)*dstaddr);
|
||||||
return (2);
|
return (2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -39,7 +39,7 @@ clean:
|
||||||
rm -f $(SOBJS) $(OBJS)
|
rm -f $(SOBJS) $(OBJS)
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
rm -f $(LIB) core *.bak .depend
|
rm -f $(LIB) core *.bak $(obj).depend
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
|
|
||||||
|
|
|
@ -39,7 +39,7 @@ clean:
|
||||||
rm -f $(SOBJS) $(OBJS)
|
rm -f $(SOBJS) $(OBJS)
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
rm -f $(LIB) core *.bak .depend
|
rm -f $(LIB) core *.bak $(obj).depend
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
|
|
||||||
|
|
|
@ -43,7 +43,7 @@ clean:
|
||||||
rm -f $(SOBJS) $(OBJS)
|
rm -f $(SOBJS) $(OBJS)
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
rm -f $(LIB) core *.bak .depend
|
rm -f $(LIB) core *.bak $(obj).depend
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
|
|
||||||
|
|
|
@ -43,7 +43,7 @@ clean:
|
||||||
rm -f $(SOBJS) $(OBJS)
|
rm -f $(SOBJS) $(OBJS)
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
rm -f $(LIB) core *.bak .depend
|
rm -f $(LIB) core *.bak $(obj).depend
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
|
|
||||||
|
|
|
@ -43,7 +43,7 @@ clean:
|
||||||
rm -f $(SOBJS) $(OBJS)
|
rm -f $(SOBJS) $(OBJS)
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
rm -f $(LIB) core *.bak .depend
|
rm -f $(LIB) core *.bak $(obj).depend
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
|
|
||||||
|
|
|
@ -39,7 +39,7 @@ clean:
|
||||||
rm -f $(SOBJS) $(OBJS)
|
rm -f $(SOBJS) $(OBJS)
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
rm -f $(LIB) core *.bak .depend *~
|
rm -f $(LIB) core *.bak $(obj).depend
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
|
|
||||||
|
|
|
@ -39,7 +39,7 @@ clean:
|
||||||
rm -f $(SOBJS) $(OBJS)
|
rm -f $(SOBJS) $(OBJS)
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
rm -f $(LIB) core *.bak .depend
|
rm -f $(LIB) core *.bak $(obj).depend
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
|
|
||||||
|
|
|
@ -38,7 +38,7 @@ clean:
|
||||||
rm -f $(SOBJS) $(OBJS)
|
rm -f $(SOBJS) $(OBJS)
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
rm -f $(LIB) core *.bak .depend
|
rm -f $(LIB) core *.bak $(obj).depend
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
|
|
||||||
|
|
|
@ -40,7 +40,7 @@ clean:
|
||||||
rm -f $(SOBJS) $(OBJS)
|
rm -f $(SOBJS) $(OBJS)
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
rm -f $(LIB) core *.bak .depend
|
rm -f $(LIB) core *.bak $(obj).depend
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
|
|
||||||
|
|
|
@ -22,6 +22,7 @@
|
||||||
#include <ppc440.h>
|
#include <ppc440.h>
|
||||||
#include <libfdt.h>
|
#include <libfdt.h>
|
||||||
#include <fdt_support.h>
|
#include <fdt_support.h>
|
||||||
|
#include <i2c.h>
|
||||||
#include <asm/processor.h>
|
#include <asm/processor.h>
|
||||||
#include <asm/io.h>
|
#include <asm/io.h>
|
||||||
#include <asm/mmu.h>
|
#include <asm/mmu.h>
|
||||||
|
@ -393,6 +394,7 @@ int misc_init_r(void)
|
||||||
u32 sdr0_srst1 = 0;
|
u32 sdr0_srst1 = 0;
|
||||||
u32 eth_cfg;
|
u32 eth_cfg;
|
||||||
u32 pvr = get_pvr();
|
u32 pvr = get_pvr();
|
||||||
|
u8 val;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Set EMAC mode/configuration (GMII, SGMII, RGMII...).
|
* Set EMAC mode/configuration (GMII, SGMII, RGMII...).
|
||||||
|
@ -420,6 +422,15 @@ int misc_init_r(void)
|
||||||
sdr0_srst1 &= ~SDR0_SRST1_AHB;
|
sdr0_srst1 &= ~SDR0_SRST1_AHB;
|
||||||
mtsdr(SDR0_SRST1, sdr0_srst1);
|
mtsdr(SDR0_SRST1, sdr0_srst1);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* RTC/M41T62:
|
||||||
|
* Disable square wave output: Batterie will be drained
|
||||||
|
* quickly, when this output is not disabled
|
||||||
|
*/
|
||||||
|
val = i2c_reg_read(CFG_I2C_RTC_ADDR, 0xa);
|
||||||
|
val &= ~0x40;
|
||||||
|
i2c_reg_write(CFG_I2C_RTC_ADDR, 0xa, val);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -39,7 +39,7 @@ clean:
|
||||||
rm -f $(SOBJS) $(OBJS)
|
rm -f $(SOBJS) $(OBJS)
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
rm -f $(LIB) core *.bak .depend
|
rm -f $(LIB) core *.bak $(obj).depend
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
|
|
||||||
|
|
|
@ -39,7 +39,7 @@ clean:
|
||||||
rm -f $(SOBJS) $(OBJS)
|
rm -f $(SOBJS) $(OBJS)
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
rm -f $(LIB) core *.bak .depend *~
|
rm -f $(LIB) core *.bak $(obj).depend
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
|
|
||||||
|
|
|
@ -176,7 +176,7 @@ static int do_bootstrap(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
printf(" pin strap0 to write in i2c = %x\n", data);
|
printf(" pin strap0 to write in i2c = %lx\n", data);
|
||||||
#endif /* DEBUG */
|
#endif /* DEBUG */
|
||||||
|
|
||||||
if (i2c_write(chip, 0, 1, (uchar *)&data, 4) != 0)
|
if (i2c_write(chip, 0, 1, (uchar *)&data, 4) != 0)
|
||||||
|
@ -201,7 +201,7 @@ static int do_bootstrap(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
|
||||||
data |= 0x05A50000;
|
data |= 0x05A50000;
|
||||||
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
printf(" pin strap1 to write in i2c = %x\n", data);
|
printf(" pin strap1 to write in i2c = %lx\n", data);
|
||||||
#endif /* DEBUG */
|
#endif /* DEBUG */
|
||||||
|
|
||||||
udelay(1000);
|
udelay(1000);
|
||||||
|
|
|
@ -37,7 +37,7 @@ clean:
|
||||||
rm -f $(OBJS)
|
rm -f $(OBJS)
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
rm -f $(LIB) core *.bak .depend *~
|
rm -f $(LIB) core *.bak $(obj).depend
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
|
|
||||||
|
|
|
@ -39,7 +39,7 @@ clean:
|
||||||
rm -f $(SOBJS) $(OBJS)
|
rm -f $(SOBJS) $(OBJS)
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
rm -f $(LIB) core *.bak .depend
|
rm -f $(LIB) core *.bak $(obj).depend
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
|
|
||||||
|
|
|
@ -38,7 +38,7 @@ clean:
|
||||||
rm -f $(OBJS)
|
rm -f $(OBJS)
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
rm -f $(LIB) core *.bak .depend *~
|
rm -f $(LIB) core *.bak $(obj).depend
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
|
|
||||||
|
|
|
@ -39,7 +39,7 @@ clean:
|
||||||
rm -f $(SOBJS) $(OBJS)
|
rm -f $(SOBJS) $(OBJS)
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
rm -f $(LIB) core *.bak .depend *~
|
rm -f $(LIB) core *.bak $(obj).depend
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
|
|
||||||
|
|
|
@ -39,7 +39,7 @@ clean:
|
||||||
rm -f $(SOBJS) $(OBJS)
|
rm -f $(SOBJS) $(OBJS)
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
rm -f $(LIB) core *.bak .depend
|
rm -f $(LIB) core *.bak $(obj).depend
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
|
|
||||||
|
|
|
@ -37,7 +37,7 @@ clean:
|
||||||
rm -f $(OBJS)
|
rm -f $(OBJS)
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
rm -f $(LIB) core *.bak .depend
|
rm -f $(LIB) core *.bak $(obj).depend
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
|
|
||||||
|
|
|
@ -39,7 +39,7 @@ clean:
|
||||||
rm -f $(SOBJS) $(OBJS)
|
rm -f $(SOBJS) $(OBJS)
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
rm -f $(LIB) core *.bak .depend
|
rm -f $(LIB) core *.bak $(obj).depend
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
|
|
||||||
|
|
|
@ -38,7 +38,7 @@ clean:
|
||||||
rm -f $(SOBJS) $(OBJS)
|
rm -f $(SOBJS) $(OBJS)
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
rm -f $(LIB) core *.bak .depend
|
rm -f $(LIB) core *.bak $(obj).depend
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
|
|
||||||
|
|
|
@ -39,7 +39,7 @@ clean:
|
||||||
rm -f $(SOBJS) $(OBJS)
|
rm -f $(SOBJS) $(OBJS)
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
rm -f $(LIB) core *.bak .depend
|
rm -f $(LIB) core *.bak $(obj).depend
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
|
|
||||||
|
|
|
@ -39,7 +39,7 @@ clean:
|
||||||
rm -f $(SOBJS) $(OBJS)
|
rm -f $(SOBJS) $(OBJS)
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
rm -f $(LIB) core *.bak .depend *~
|
rm -f $(LIB) core *.bak $(obj).depend
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
|
|
||||||
|
|
|
@ -39,7 +39,7 @@ clean:
|
||||||
rm -f $(SOBJS) $(OBJS)
|
rm -f $(SOBJS) $(OBJS)
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
rm -f $(LIB) core *.bak .depend
|
rm -f $(LIB) core *.bak $(obj).depend
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
|
|
||||||
|
|
|
@ -19,9 +19,9 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <common.h>
|
||||||
#include <asm/u-boot.h>
|
#include <asm/u-boot.h>
|
||||||
#include <asm/processor.h>
|
#include <asm/processor.h>
|
||||||
#include <common.h>
|
|
||||||
#include <command.h>
|
#include <command.h>
|
||||||
#include <config.h>
|
#include <config.h>
|
||||||
|
|
||||||
|
|
|
@ -39,7 +39,7 @@ clean:
|
||||||
rm -f $(SOBJS) $(OBJS)
|
rm -f $(SOBJS) $(OBJS)
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
rm -f $(LIB) core *.bak .depend
|
rm -f $(LIB) core *.bak $(obj).depend
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
|
|
||||||
|
|
|
@ -153,10 +153,8 @@ void ether_init(void)
|
||||||
do {
|
do {
|
||||||
__raw_writew(0x1, LAN_RESET_REGISTER);
|
__raw_writew(0x1, LAN_RESET_REGISTER);
|
||||||
udelay(100);
|
udelay(100);
|
||||||
if (cnt == 0) {
|
if (cnt == 0)
|
||||||
printf("1. eth reset err\n");
|
|
||||||
goto eth_reset_err_out;
|
goto eth_reset_err_out;
|
||||||
}
|
|
||||||
--cnt;
|
--cnt;
|
||||||
} while (__raw_readw(LAN_RESET_REGISTER) != 0x1);
|
} while (__raw_readw(LAN_RESET_REGISTER) != 0x1);
|
||||||
|
|
||||||
|
@ -165,10 +163,8 @@ void ether_init(void)
|
||||||
do {
|
do {
|
||||||
__raw_writew(0x0, LAN_RESET_REGISTER);
|
__raw_writew(0x0, LAN_RESET_REGISTER);
|
||||||
udelay(100);
|
udelay(100);
|
||||||
if (cnt == 0) {
|
if (cnt == 0)
|
||||||
printf("2. eth reset err\n");
|
|
||||||
goto eth_reset_err_out;
|
goto eth_reset_err_out;
|
||||||
}
|
|
||||||
--cnt;
|
--cnt;
|
||||||
} while (__raw_readw(LAN_RESET_REGISTER) != 0x0000);
|
} while (__raw_readw(LAN_RESET_REGISTER) != 0x0000);
|
||||||
udelay(1000);
|
udelay(1000);
|
||||||
|
|
|
@ -67,7 +67,7 @@
|
||||||
# define APOLLON_24XX_GPMC_CONFIG7_0 (0x00000e40|(APOLLON_CS0_BASE >> 24))
|
# define APOLLON_24XX_GPMC_CONFIG7_0 (0x00000e40|(APOLLON_CS0_BASE >> 24))
|
||||||
|
|
||||||
/* CS1: Ethernet */
|
/* CS1: Ethernet */
|
||||||
# define APOLLON_24XX_GPMC_CONFIG1_1 0x00011200
|
# define APOLLON_24XX_GPMC_CONFIG1_1 0x00011203
|
||||||
# define APOLLON_24XX_GPMC_CONFIG2_1 0x001F1F01
|
# define APOLLON_24XX_GPMC_CONFIG2_1 0x001F1F01
|
||||||
# define APOLLON_24XX_GPMC_CONFIG3_1 0x00080803
|
# define APOLLON_24XX_GPMC_CONFIG3_1 0x00080803
|
||||||
# define APOLLON_24XX_GPMC_CONFIG4_1 0x1C0b1C0a
|
# define APOLLON_24XX_GPMC_CONFIG4_1 0x1C0b1C0a
|
||||||
|
|
|
@ -43,7 +43,7 @@ clean:
|
||||||
rm -f $(SOBJS) $(OBJS)
|
rm -f $(SOBJS) $(OBJS)
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
rm -f $(LIB) core *.bak .depend
|
rm -f $(LIB) core *.bak $(obj).depend
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
|
|
||||||
|
|
|
@ -41,7 +41,7 @@ clean:
|
||||||
rm -f $(SOBJS) $(OBJS)
|
rm -f $(SOBJS) $(OBJS)
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
rm -f $(LIB) core *.bak .depend
|
rm -f $(LIB) core *.bak $(obj).depend
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
|
|
||||||
|
|
|
@ -45,7 +45,7 @@ clean:
|
||||||
rm -f $(SOBJS) $(OBJS)
|
rm -f $(SOBJS) $(OBJS)
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
rm -f $(LIB) core *.bak .depend
|
rm -f $(LIB) core *.bak $(obj).depend
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
|
|
||||||
|
|
|
@ -196,7 +196,7 @@ static void at91cap9_macb_hw_init(void)
|
||||||
|
|
||||||
/* Need to reset PHY -> 500ms reset */
|
/* Need to reset PHY -> 500ms reset */
|
||||||
at91_sys_write(AT91_RSTC_MR, AT91_RSTC_KEY |
|
at91_sys_write(AT91_RSTC_MR, AT91_RSTC_KEY |
|
||||||
AT91_RSTC_ERSTL | (0x0D << 8) |
|
(AT91_RSTC_ERSTL & (0x0D << 8)) |
|
||||||
AT91_RSTC_URSTEN);
|
AT91_RSTC_URSTEN);
|
||||||
|
|
||||||
at91_sys_write(AT91_RSTC_CR, AT91_RSTC_KEY | AT91_RSTC_EXTRST);
|
at91_sys_write(AT91_RSTC_CR, AT91_RSTC_KEY | AT91_RSTC_EXTRST);
|
||||||
|
@ -204,6 +204,11 @@ static void at91cap9_macb_hw_init(void)
|
||||||
/* Wait for end hardware reset */
|
/* Wait for end hardware reset */
|
||||||
while (!(at91_sys_read(AT91_RSTC_SR) & AT91_RSTC_NRSTL));
|
while (!(at91_sys_read(AT91_RSTC_SR) & AT91_RSTC_NRSTL));
|
||||||
|
|
||||||
|
/* Restore NRST value */
|
||||||
|
at91_sys_write(AT91_RSTC_MR, AT91_RSTC_KEY |
|
||||||
|
(AT91_RSTC_ERSTL & (0x0 << 8)) |
|
||||||
|
AT91_RSTC_URSTEN);
|
||||||
|
|
||||||
/* Re-enable pull-up */
|
/* Re-enable pull-up */
|
||||||
writel(pin_to_mask(AT91_PIN_PB22) |
|
writel(pin_to_mask(AT91_PIN_PB22) |
|
||||||
pin_to_mask(AT91_PIN_PB25) |
|
pin_to_mask(AT91_PIN_PB25) |
|
||||||
|
|
|
@ -38,7 +38,7 @@ clean:
|
||||||
rm -f $(SOBJS) $(OBJS)
|
rm -f $(SOBJS) $(OBJS)
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
rm -f $(LIB) core *.bak .depend
|
rm -f $(LIB) core *.bak $(obj).depend
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
|
|
||||||
|
|
|
@ -45,7 +45,7 @@ clean:
|
||||||
rm -f $(SOBJS) $(OBJS)
|
rm -f $(SOBJS) $(OBJS)
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
rm -f $(LIB) core *.bak .depend
|
rm -f $(LIB) core *.bak $(obj).depend
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
|
|
||||||
|
|
|
@ -80,8 +80,8 @@ static void at91sam9260ek_nand_hw_init(void)
|
||||||
|
|
||||||
/* Configure SMC CS3 for NAND/SmartMedia */
|
/* Configure SMC CS3 for NAND/SmartMedia */
|
||||||
at91_sys_write(AT91_SMC_SETUP(3),
|
at91_sys_write(AT91_SMC_SETUP(3),
|
||||||
AT91_SMC_NWESETUP_(0) | AT91_SMC_NCS_WRSETUP_(0) |
|
AT91_SMC_NWESETUP_(1) | AT91_SMC_NCS_WRSETUP_(0) |
|
||||||
AT91_SMC_NRDSETUP_(0) | AT91_SMC_NCS_RDSETUP_(0));
|
AT91_SMC_NRDSETUP_(1) | AT91_SMC_NCS_RDSETUP_(0));
|
||||||
at91_sys_write(AT91_SMC_PULSE(3),
|
at91_sys_write(AT91_SMC_PULSE(3),
|
||||||
AT91_SMC_NWEPULSE_(3) | AT91_SMC_NCS_WRPULSE_(3) |
|
AT91_SMC_NWEPULSE_(3) | AT91_SMC_NCS_WRPULSE_(3) |
|
||||||
AT91_SMC_NRDPULSE_(3) | AT91_SMC_NCS_RDPULSE_(3));
|
AT91_SMC_NRDPULSE_(3) | AT91_SMC_NCS_RDPULSE_(3));
|
||||||
|
@ -149,7 +149,7 @@ static void at91sam9260ek_macb_hw_init(void)
|
||||||
|
|
||||||
/* Need to reset PHY -> 500ms reset */
|
/* Need to reset PHY -> 500ms reset */
|
||||||
at91_sys_write(AT91_RSTC_MR, AT91_RSTC_KEY |
|
at91_sys_write(AT91_RSTC_MR, AT91_RSTC_KEY |
|
||||||
AT91_RSTC_ERSTL | (0x0D << 8) |
|
(AT91_RSTC_ERSTL & (0x0D << 8)) |
|
||||||
AT91_RSTC_URSTEN);
|
AT91_RSTC_URSTEN);
|
||||||
|
|
||||||
at91_sys_write(AT91_RSTC_CR, AT91_RSTC_KEY | AT91_RSTC_EXTRST);
|
at91_sys_write(AT91_RSTC_CR, AT91_RSTC_KEY | AT91_RSTC_EXTRST);
|
||||||
|
@ -159,7 +159,7 @@ static void at91sam9260ek_macb_hw_init(void)
|
||||||
|
|
||||||
/* Restore NRST value */
|
/* Restore NRST value */
|
||||||
at91_sys_write(AT91_RSTC_MR, AT91_RSTC_KEY |
|
at91_sys_write(AT91_RSTC_MR, AT91_RSTC_KEY |
|
||||||
AT91_RSTC_ERSTL | (0x0 << 8) |
|
(AT91_RSTC_ERSTL & (0x0 << 8)) |
|
||||||
AT91_RSTC_URSTEN);
|
AT91_RSTC_URSTEN);
|
||||||
|
|
||||||
/* Re-enable pull-up */
|
/* Re-enable pull-up */
|
||||||
|
|
|
@ -45,7 +45,7 @@ clean:
|
||||||
rm -f $(SOBJS) $(OBJS)
|
rm -f $(SOBJS) $(OBJS)
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
rm -f $(LIB) core *.bak .depend
|
rm -f $(LIB) core *.bak $(obj).depend
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
|
|
||||||
|
|
|
@ -82,13 +82,13 @@ static void at91sam9261ek_nand_hw_init(void)
|
||||||
|
|
||||||
/* Configure SMC CS3 for NAND/SmartMedia */
|
/* Configure SMC CS3 for NAND/SmartMedia */
|
||||||
at91_sys_write(AT91_SMC_SETUP(3),
|
at91_sys_write(AT91_SMC_SETUP(3),
|
||||||
AT91_SMC_NWESETUP_(0) | AT91_SMC_NCS_WRSETUP_(0) |
|
AT91_SMC_NWESETUP_(1) | AT91_SMC_NCS_WRSETUP_(0) |
|
||||||
AT91_SMC_NRDSETUP_(0) | AT91_SMC_NCS_RDSETUP_(0));
|
AT91_SMC_NRDSETUP_(1) | AT91_SMC_NCS_RDSETUP_(0));
|
||||||
at91_sys_write(AT91_SMC_PULSE(3),
|
at91_sys_write(AT91_SMC_PULSE(3),
|
||||||
AT91_SMC_NWEPULSE_(2) | AT91_SMC_NCS_WRPULSE_(5) |
|
AT91_SMC_NWEPULSE_(3) | AT91_SMC_NCS_WRPULSE_(3) |
|
||||||
AT91_SMC_NRDPULSE_(2) | AT91_SMC_NCS_RDPULSE_(5));
|
AT91_SMC_NRDPULSE_(3) | AT91_SMC_NCS_RDPULSE_(3));
|
||||||
at91_sys_write(AT91_SMC_CYCLE(3),
|
at91_sys_write(AT91_SMC_CYCLE(3),
|
||||||
AT91_SMC_NWECYCLE_(7) | AT91_SMC_NRDCYCLE_(7));
|
AT91_SMC_NWECYCLE_(5) | AT91_SMC_NRDCYCLE_(5));
|
||||||
at91_sys_write(AT91_SMC_MODE(3),
|
at91_sys_write(AT91_SMC_MODE(3),
|
||||||
AT91_SMC_READMODE | AT91_SMC_WRITEMODE |
|
AT91_SMC_READMODE | AT91_SMC_WRITEMODE |
|
||||||
AT91_SMC_EXNWMODE_DISABLE |
|
AT91_SMC_EXNWMODE_DISABLE |
|
||||||
|
@ -97,7 +97,7 @@ static void at91sam9261ek_nand_hw_init(void)
|
||||||
#else /* CFG_NAND_DBW_8 */
|
#else /* CFG_NAND_DBW_8 */
|
||||||
AT91_SMC_DBW_8 |
|
AT91_SMC_DBW_8 |
|
||||||
#endif
|
#endif
|
||||||
AT91_SMC_TDF_(1));
|
AT91_SMC_TDF_(2));
|
||||||
|
|
||||||
at91_sys_write(AT91_PMC_PCER, 1 << AT91SAM9261_ID_PIOC);
|
at91_sys_write(AT91_PMC_PCER, 1 << AT91SAM9261_ID_PIOC);
|
||||||
|
|
||||||
|
|
|
@ -45,7 +45,7 @@ clean:
|
||||||
rm -f $(SOBJS) $(OBJS)
|
rm -f $(SOBJS) $(OBJS)
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
rm -f $(LIB) core *.bak .depend
|
rm -f $(LIB) core *.bak $(obj).depend
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
|
|
||||||
|
|
|
@ -83,8 +83,8 @@ static void at91sam9263ek_nand_hw_init(void)
|
||||||
|
|
||||||
/* Configure SMC CS3 for NAND/SmartMedia */
|
/* Configure SMC CS3 for NAND/SmartMedia */
|
||||||
at91_sys_write(AT91_SMC_SETUP(3),
|
at91_sys_write(AT91_SMC_SETUP(3),
|
||||||
AT91_SMC_NWESETUP_(0) | AT91_SMC_NCS_WRSETUP_(0) |
|
AT91_SMC_NWESETUP_(1) | AT91_SMC_NCS_WRSETUP_(0) |
|
||||||
AT91_SMC_NRDSETUP_(0) | AT91_SMC_NCS_RDSETUP_(0));
|
AT91_SMC_NRDSETUP_(1) | AT91_SMC_NCS_RDSETUP_(0));
|
||||||
at91_sys_write(AT91_SMC_PULSE(3),
|
at91_sys_write(AT91_SMC_PULSE(3),
|
||||||
AT91_SMC_NWEPULSE_(3) | AT91_SMC_NCS_WRPULSE_(3) |
|
AT91_SMC_NWEPULSE_(3) | AT91_SMC_NCS_WRPULSE_(3) |
|
||||||
AT91_SMC_NRDPULSE_(3) | AT91_SMC_NCS_RDPULSE_(3));
|
AT91_SMC_NRDPULSE_(3) | AT91_SMC_NCS_RDPULSE_(3));
|
||||||
|
@ -147,7 +147,7 @@ static void at91sam9263ek_macb_hw_init(void)
|
||||||
|
|
||||||
/* Need to reset PHY -> 500ms reset */
|
/* Need to reset PHY -> 500ms reset */
|
||||||
at91_sys_write(AT91_RSTC_MR, AT91_RSTC_KEY |
|
at91_sys_write(AT91_RSTC_MR, AT91_RSTC_KEY |
|
||||||
AT91_RSTC_ERSTL | (0x0D << 8) |
|
(AT91_RSTC_ERSTL & (0x0D << 8)) |
|
||||||
AT91_RSTC_URSTEN);
|
AT91_RSTC_URSTEN);
|
||||||
|
|
||||||
at91_sys_write(AT91_RSTC_CR, AT91_RSTC_KEY | AT91_RSTC_EXTRST);
|
at91_sys_write(AT91_RSTC_CR, AT91_RSTC_KEY | AT91_RSTC_EXTRST);
|
||||||
|
@ -155,6 +155,11 @@ static void at91sam9263ek_macb_hw_init(void)
|
||||||
/* Wait for end hardware reset */
|
/* Wait for end hardware reset */
|
||||||
while (!(at91_sys_read(AT91_RSTC_SR) & AT91_RSTC_NRSTL));
|
while (!(at91_sys_read(AT91_RSTC_SR) & AT91_RSTC_NRSTL));
|
||||||
|
|
||||||
|
/* Restore NRST value */
|
||||||
|
at91_sys_write(AT91_RSTC_MR, AT91_RSTC_KEY |
|
||||||
|
(AT91_RSTC_ERSTL & (0x0 << 8)) |
|
||||||
|
AT91_RSTC_URSTEN);
|
||||||
|
|
||||||
/* Re-enable pull-up */
|
/* Re-enable pull-up */
|
||||||
writel(pin_to_mask(AT91_PIN_PC25),
|
writel(pin_to_mask(AT91_PIN_PC25),
|
||||||
pin_to_controller(AT91_PIN_PC0) + PIO_PUER);
|
pin_to_controller(AT91_PIN_PC0) + PIO_PUER);
|
||||||
|
|
|
@ -45,7 +45,7 @@ clean:
|
||||||
rm -f $(SOBJS) $(OBJS)
|
rm -f $(SOBJS) $(OBJS)
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
rm -f $(LIB) core *.bak .depend
|
rm -f $(LIB) core *.bak $(obj).depend
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
|
|
||||||
|
|
|
@ -82,13 +82,13 @@ static void at91sam9rlek_nand_hw_init(void)
|
||||||
|
|
||||||
/* Configure SMC CS3 for NAND/SmartMedia */
|
/* Configure SMC CS3 for NAND/SmartMedia */
|
||||||
at91_sys_write(AT91_SMC_SETUP(3),
|
at91_sys_write(AT91_SMC_SETUP(3),
|
||||||
AT91_SMC_NWESETUP_(0) | AT91_SMC_NCS_WRSETUP_(0) |
|
AT91_SMC_NWESETUP_(1) | AT91_SMC_NCS_WRSETUP_(0) |
|
||||||
AT91_SMC_NRDSETUP_(0) | AT91_SMC_NCS_RDSETUP_(0));
|
AT91_SMC_NRDSETUP_(1) | AT91_SMC_NCS_RDSETUP_(0));
|
||||||
at91_sys_write(AT91_SMC_PULSE(3),
|
at91_sys_write(AT91_SMC_PULSE(3),
|
||||||
AT91_SMC_NWEPULSE_(2) | AT91_SMC_NCS_WRPULSE_(5) |
|
AT91_SMC_NWEPULSE_(3) | AT91_SMC_NCS_WRPULSE_(3) |
|
||||||
AT91_SMC_NRDPULSE_(2) | AT91_SMC_NCS_RDPULSE_(5));
|
AT91_SMC_NRDPULSE_(3) | AT91_SMC_NCS_RDPULSE_(3));
|
||||||
at91_sys_write(AT91_SMC_CYCLE(3),
|
at91_sys_write(AT91_SMC_CYCLE(3),
|
||||||
AT91_SMC_NWECYCLE_(7) | AT91_SMC_NRDCYCLE_(7));
|
AT91_SMC_NWECYCLE_(5) | AT91_SMC_NRDCYCLE_(5));
|
||||||
at91_sys_write(AT91_SMC_MODE(3),
|
at91_sys_write(AT91_SMC_MODE(3),
|
||||||
AT91_SMC_READMODE | AT91_SMC_WRITEMODE |
|
AT91_SMC_READMODE | AT91_SMC_WRITEMODE |
|
||||||
AT91_SMC_EXNWMODE_DISABLE |
|
AT91_SMC_EXNWMODE_DISABLE |
|
||||||
|
@ -97,7 +97,7 @@ static void at91sam9rlek_nand_hw_init(void)
|
||||||
#else /* CFG_NAND_DBW_8 */
|
#else /* CFG_NAND_DBW_8 */
|
||||||
AT91_SMC_DBW_8 |
|
AT91_SMC_DBW_8 |
|
||||||
#endif
|
#endif
|
||||||
AT91_SMC_TDF_(1));
|
AT91_SMC_TDF_(2));
|
||||||
|
|
||||||
at91_sys_write(AT91_PMC_PCER, 1 << AT91SAM9RL_ID_PIOD);
|
at91_sys_write(AT91_PMC_PCER, 1 << AT91SAM9RL_ID_PIOD);
|
||||||
|
|
||||||
|
|
|
@ -60,6 +60,9 @@ int board_early_init_f(void)
|
||||||
#if defined(CONFIG_MMC)
|
#if defined(CONFIG_MMC)
|
||||||
gpio_enable_mmci();
|
gpio_enable_mmci();
|
||||||
#endif
|
#endif
|
||||||
|
#if defined(CONFIG_ATMEL_SPI)
|
||||||
|
gpio_enable_spi0(1 << 0);
|
||||||
|
#endif
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -89,3 +92,25 @@ void board_init_info(void)
|
||||||
gd->bd->bi_phy_id[0] = 0x01;
|
gd->bd->bi_phy_id[0] = 0x01;
|
||||||
gd->bd->bi_phy_id[1] = 0x03;
|
gd->bd->bi_phy_id[1] = 0x03;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* SPI chip select control */
|
||||||
|
#ifdef CONFIG_ATMEL_SPI
|
||||||
|
#include <spi.h>
|
||||||
|
|
||||||
|
#define ATNGW100_DATAFLASH_CS_PIN GPIO_PIN_PA3
|
||||||
|
|
||||||
|
int spi_cs_is_valid(unsigned int bus, unsigned int cs)
|
||||||
|
{
|
||||||
|
return bus == 0 && cs == 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void spi_cs_activate(struct spi_slave *slave)
|
||||||
|
{
|
||||||
|
gpio_set_value(ATNGW100_DATAFLASH_CS_PIN, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
void spi_cs_deactivate(struct spi_slave *slave)
|
||||||
|
{
|
||||||
|
gpio_set_value(ATNGW100_DATAFLASH_CS_PIN, 1);
|
||||||
|
}
|
||||||
|
#endif /* CONFIG_ATMEL_SPI */
|
||||||
|
|
|
@ -42,7 +42,7 @@ clean:
|
||||||
rm -f $(OBJS) $(SOBJS)
|
rm -f $(OBJS) $(SOBJS)
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
rm -f $(LIB) core *.bak .depend
|
rm -f $(LIB) core *.bak $(obj).depend
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
|
|
||||||
|
|
|
@ -177,7 +177,7 @@ unsigned update_flash (unsigned char *buf)
|
||||||
write_flash ((char *)buf, (*buf) & 0xFE);
|
write_flash ((char *)buf, (*buf) & 0xFE);
|
||||||
*((unsigned char *)0xFF800000) = 0xF0;
|
*((unsigned char *)0xFF800000) = 0xF0;
|
||||||
udelay (100);
|
udelay (100);
|
||||||
printf ("buf [%#010x] %#010x\n", buf, (*buf));
|
printf ("buf [%#010x] %#010x\n", (unsigned)buf, (*buf));
|
||||||
/* XXX - fall through??? */
|
/* XXX - fall through??? */
|
||||||
case BOOT_WORKING :
|
case BOOT_WORKING :
|
||||||
return BOOT_WORKING;
|
return BOOT_WORKING;
|
||||||
|
@ -273,10 +273,10 @@ void barcobcd_boot (void)
|
||||||
/* give length of the kernel image to bootm */
|
/* give length of the kernel image to bootm */
|
||||||
sprintf (bootm_args[0],"%x",start->size);
|
sprintf (bootm_args[0],"%x",start->size);
|
||||||
/* give address of the kernel image to bootm */
|
/* give address of the kernel image to bootm */
|
||||||
sprintf (bootm_args[1],"%x",buf);
|
sprintf (bootm_args[1],"%x",(unsigned)buf);
|
||||||
|
|
||||||
printf ("flash address: %#10x\n",start->address+8);
|
printf ("flash address: %#10x\n",start->address+8);
|
||||||
printf ("buf address: %#10x\n",buf);
|
printf ("buf address: %#10x\n",(unsigned)buf);
|
||||||
|
|
||||||
/* aha, we reserve 8 bytes here... */
|
/* aha, we reserve 8 bytes here... */
|
||||||
for (cnt = 0; cnt < start->size ; cnt++) {
|
for (cnt = 0; cnt < start->size ; cnt++) {
|
||||||
|
|
|
@ -38,7 +38,7 @@ clean:
|
||||||
rm -f $(SOBJS) $(OBJS)
|
rm -f $(SOBJS) $(OBJS)
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
rm -f $(LIB) core *.bak .depend
|
rm -f $(LIB) core *.bak $(obj).depend
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
|
|
||||||
|
|
|
@ -46,7 +46,7 @@ clean:
|
||||||
rm -f $(SOBJS) $(OBJS)
|
rm -f $(SOBJS) $(OBJS)
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
rm -f $(LIB) core *.bak .depend
|
rm -f $(LIB) core *.bak $(obj).depend
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
|
|
||||||
|
|
|
@ -46,7 +46,7 @@ clean:
|
||||||
rm -f $(SOBJS) $(OBJS)
|
rm -f $(SOBJS) $(OBJS)
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
rm -f $(LIB) core *.bak .depend
|
rm -f $(LIB) core *.bak $(obj).depend
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
|
|
||||||
|
|
|
@ -46,7 +46,7 @@ clean:
|
||||||
rm -f $(SOBJS) $(OBJS)
|
rm -f $(SOBJS) $(OBJS)
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
rm -f $(LIB) core *.bak .depend
|
rm -f $(LIB) core *.bak $(obj).depend
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
|
|
||||||
|
|
|
@ -46,7 +46,7 @@ clean:
|
||||||
rm -f $(SOBJS) $(OBJS)
|
rm -f $(SOBJS) $(OBJS)
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
rm -f $(LIB) core *.bak .depend
|
rm -f $(LIB) core *.bak $(obj).depend
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
|
|
||||||
|
|
|
@ -42,7 +42,7 @@ clean:
|
||||||
rm -f $(SOBJS) $(OBJS)
|
rm -f $(SOBJS) $(OBJS)
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
rm -f $(LIB) core *.bak .depend
|
rm -f $(LIB) core *.bak $(obj).depend
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
|
|
||||||
|
|
|
@ -39,7 +39,7 @@ clean:
|
||||||
rm -f $(SOBJS) $(OBJS)
|
rm -f $(SOBJS) $(OBJS)
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
rm -f $(LIB) core *.bak .depend
|
rm -f $(LIB) core *.bak $(obj).depend
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
|
|
||||||
|
|
|
@ -38,7 +38,7 @@ clean:
|
||||||
rm -f $(SOBJS) $(OBJS)
|
rm -f $(SOBJS) $(OBJS)
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
rm -f $(LIB) core *.bak .depend
|
rm -f $(LIB) core *.bak $(obj).depend
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
|
|
||||||
|
|
|
@ -38,7 +38,7 @@ clean:
|
||||||
rm -f $(SOBJS) $(OBJS)
|
rm -f $(SOBJS) $(OBJS)
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
rm -f $(LIB) core *.bak .depend
|
rm -f $(LIB) core *.bak $(obj).depend
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
|
|
||||||
|
|
|
@ -38,7 +38,7 @@ clean:
|
||||||
rm -f $(SOBJS) $(OBJS)
|
rm -f $(SOBJS) $(OBJS)
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
rm -f $(LIB) core *.bak .depend
|
rm -f $(LIB) core *.bak $(obj).depend
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
|
|
||||||
|
|
|
@ -275,7 +275,7 @@ static void ft_blob_update(void *blob, bd_t *bd)
|
||||||
ret = fdt_fixup_memory(blob, (u64)bd->bi_memstart, (u64)bd->bi_memsize);
|
ret = fdt_fixup_memory(blob, (u64)bd->bi_memstart, (u64)bd->bi_memsize);
|
||||||
|
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
printf("ft_blob_update): cannot set /memory/reg "
|
printf("ft_blob_update(): cannot set /memory/reg "
|
||||||
"property err:%s\n", fdt_strerror(ret));
|
"property err:%s\n", fdt_strerror(ret));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -38,7 +38,7 @@ clean:
|
||||||
rm -f $(SOBJS) $(OBJS)
|
rm -f $(SOBJS) $(OBJS)
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
rm -f $(LIB) core *.bak .depend
|
rm -f $(LIB) core *.bak $(obj).depend
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
|
|
||||||
|
|
|
@ -38,7 +38,7 @@ clean:
|
||||||
rm -f $(SOBJS) $(OBJS)
|
rm -f $(SOBJS) $(OBJS)
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
rm -f $(LIB) core *.bak .depend
|
rm -f $(LIB) core *.bak $(obj).depend
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
|
|
||||||
|
|
|
@ -38,7 +38,7 @@ clean:
|
||||||
rm -f $(SOBJS) $(OBJS)
|
rm -f $(SOBJS) $(OBJS)
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
rm -f $(LIB) core *.bak .depend
|
rm -f $(LIB) core *.bak $(obj).depend
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
|
|
||||||
|
|
|
@ -39,7 +39,7 @@ clean:
|
||||||
rm -f $(SOBJS) $(OBJS)
|
rm -f $(SOBJS) $(OBJS)
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
rm -f $(LIB) core *.bak .depend
|
rm -f $(LIB) core *.bak $(obj).depend
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
|
|
||||||
|
|
|
@ -43,7 +43,7 @@ clean:
|
||||||
$(obj)bootscript.image $(obj)bootscript.o
|
$(obj)bootscript.image $(obj)bootscript.o
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
rm -f $(LIB) core *.bak .depend
|
rm -f $(LIB) core *.bak $(obj).depend
|
||||||
|
|
||||||
$(obj)$(BOARD).o : $(src)$(BOARD).c $(obj)bootscript.o
|
$(obj)$(BOARD).o : $(src)$(BOARD).c $(obj)bootscript.o
|
||||||
|
|
||||||
|
|
|
@ -39,7 +39,7 @@ clean:
|
||||||
rm -f $(SOBJS) $(OBJS)
|
rm -f $(SOBJS) $(OBJS)
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
rm -f $(LIB) core *.bak .depend
|
rm -f $(LIB) core *.bak $(obj).depend
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
|
|
||||||
|
|
|
@ -42,7 +42,7 @@ clean:
|
||||||
rm -f $(SOBJS) $(OBJS)
|
rm -f $(SOBJS) $(OBJS)
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
rm -f $(LIB) core *.bak .depend
|
rm -f $(LIB) core *.bak $(obj).depend
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
|
|
||||||
|
|
|
@ -42,7 +42,7 @@ clean:
|
||||||
rm -f $(SOBJS) $(OBJS)
|
rm -f $(SOBJS) $(OBJS)
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
rm -f $(LIB) core *.bak .depend
|
rm -f $(LIB) core *.bak $(obj).depend
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
|
|
||||||
|
|
|
@ -38,7 +38,7 @@ clean:
|
||||||
rm -f $(SOBJS) $(OBJS)
|
rm -f $(SOBJS) $(OBJS)
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
rm -f $(LIB) core *.bak .depend
|
rm -f $(LIB) core *.bak $(obj).depend
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
|
|
||||||
|
|
|
@ -43,7 +43,7 @@ clean:
|
||||||
rm -f $(SOBJS) $(OBJS)
|
rm -f $(SOBJS) $(OBJS)
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
rm -f $(LIB) core *.bak .depend
|
rm -f $(LIB) core *.bak $(obj).depend
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
|
|
||||||
|
|
|
@ -38,7 +38,7 @@ clean:
|
||||||
rm -f $(SOBJS) $(OBJS)
|
rm -f $(SOBJS) $(OBJS)
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
rm -f $(LIB) core *.bak .depend
|
rm -f $(LIB) core *.bak $(obj).depend
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
|
|
||||||
|
|
|
@ -41,7 +41,7 @@ clean:
|
||||||
rm -f $(SOBJS) $(OBJS)
|
rm -f $(SOBJS) $(OBJS)
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
rm -f $(LIB) core *.bak *~ .depend
|
rm -f $(LIB) core *.bak $(obj).depend
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
# This is for $(obj).depend target
|
# This is for $(obj).depend target
|
||||||
|
|
|
@ -41,7 +41,7 @@ clean:
|
||||||
rm -f $(SOBJS) $(OBJS)
|
rm -f $(SOBJS) $(OBJS)
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
rm -f $(LIB) core *.bak *~ .depend
|
rm -f $(LIB) core *.bak $(obj).depend
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
# This is for $(obj).depend target
|
# This is for $(obj).depend target
|
||||||
|
|
|
@ -0,0 +1,52 @@
|
||||||
|
#
|
||||||
|
# (C) Copyright 2000, 2001, 2002
|
||||||
|
# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
|
||||||
|
#
|
||||||
|
# Copyright (C) 2007 Sergey Kubushyn <ksi@koi8.net>
|
||||||
|
#
|
||||||
|
# See file CREDITS for list of people who contributed to this
|
||||||
|
# project.
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or
|
||||||
|
# modify it under the terms of the GNU General Public License as
|
||||||
|
# published by the Free Software Foundation; either version 2 of
|
||||||
|
# the License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program; if not, write to the Free Software
|
||||||
|
# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||||
|
# MA 02111-1307 USA
|
||||||
|
#
|
||||||
|
|
||||||
|
include $(TOPDIR)/config.mk
|
||||||
|
|
||||||
|
LIB = $(obj)lib$(BOARD).a
|
||||||
|
|
||||||
|
COBJS := $(BOARD).o
|
||||||
|
SOBJS := board_init.o
|
||||||
|
|
||||||
|
SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c)
|
||||||
|
OBJS := $(addprefix $(obj),$(COBJS))
|
||||||
|
SOBJS := $(addprefix $(obj),$(SOBJS))
|
||||||
|
|
||||||
|
$(LIB): $(obj).depend $(OBJS) $(SOBJS)
|
||||||
|
$(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -f $(SOBJS) $(OBJS)
|
||||||
|
|
||||||
|
distclean: clean
|
||||||
|
rm -f $(LIB) core *.bak $(obj).depend
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# This is for $(obj).depend target
|
||||||
|
include $(SRCTREE)/rules.mk
|
||||||
|
|
||||||
|
sinclude $(obj).depend
|
||||||
|
|
||||||
|
#########################################################################
|
|
@ -0,0 +1,29 @@
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2007 Sergey Kubushyn <ksi@koi8.net>
|
||||||
|
*
|
||||||
|
* Board-specific low level initialization code. Called at the very end
|
||||||
|
* of cpu/arm926ejs/davinci/lowlevel_init.S. Just returns if there is no
|
||||||
|
* initialization required.
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU General Public License as
|
||||||
|
* published by the Free Software Foundation; either version 2 of
|
||||||
|
* the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||||
|
* MA 02111-1307 USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <config.h>
|
||||||
|
|
||||||
|
.globl dv_board_init
|
||||||
|
dv_board_init:
|
||||||
|
|
||||||
|
mov pc, lr
|
|
@ -0,0 +1,23 @@
|
||||||
|
#
|
||||||
|
# (C) Copyright 2002
|
||||||
|
# Gary Jennejohn, DENX Software Engineering, <gj@denx.de>
|
||||||
|
# David Mueller, ELSOFT AG, <d.mueller@elsoft.ch>
|
||||||
|
#
|
||||||
|
# Copyright (C) 2008 Lyrtech <www.lyrtech.com>
|
||||||
|
# Copyright (C) 2008 Philip Balister, OpenSDR <philip@opensdr.com>
|
||||||
|
#
|
||||||
|
# Lyrtech SFF SDR board (ARM926EJS) cpu
|
||||||
|
#
|
||||||
|
# SFF SDR board has 1 bank of 128 MB DDR RAM
|
||||||
|
# Physical Address:
|
||||||
|
# 8000'0000 to 87FF'FFFF
|
||||||
|
#
|
||||||
|
# Linux-Kernel is expected to be at 8000'8000, entry 8000'8000
|
||||||
|
# (mem base + reserved)
|
||||||
|
#
|
||||||
|
# Integrity kernel is expected to be at 8000'0000, entry 8000'00D0,
|
||||||
|
# up to 81FF'FFFF (uses up to 32 MB of memory for text, heap, etc).
|
||||||
|
#
|
||||||
|
# we load ourself to 8400'0000 to provide at least 32MB spacing
|
||||||
|
# between us and the Integrity kernel image
|
||||||
|
TEXT_BASE = 0x84000000
|
|
@ -0,0 +1,310 @@
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2007 Sergey Kubushyn <ksi@koi8.net>
|
||||||
|
*
|
||||||
|
* Copyright (C) 2008 Lyrtech <www.lyrtech.com>
|
||||||
|
* Copyright (C) 2008 Philip Balister, OpenSDR <philip@opensdr.com>
|
||||||
|
*
|
||||||
|
* Parts are shamelessly stolen from various TI sources, original copyright
|
||||||
|
* follows:
|
||||||
|
*
|
||||||
|
* Copyright (C) 2004 Texas Instruments.
|
||||||
|
*
|
||||||
|
* See file CREDITS for list of people who contributed to this
|
||||||
|
* project.
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <common.h>
|
||||||
|
#include <i2c.h>
|
||||||
|
#include <asm/arch/hardware.h>
|
||||||
|
#include <asm/arch/emac_defs.h>
|
||||||
|
|
||||||
|
#define DAVINCI_A3CR (0x01E00014) /* EMIF-A CS3 config register. */
|
||||||
|
#define DAVINCI_A3CR_VAL (0x3FFFFFFD) /* EMIF-A CS3 value for FPGA. */
|
||||||
|
|
||||||
|
#define INTEGRITY_SYSCFG_OFFSET 0x7E8
|
||||||
|
#define INTEGRITY_CHECKWORD_OFFSET 0x7F8
|
||||||
|
#define INTEGRITY_CHECKWORD_VALUE 0x10ADBEEF
|
||||||
|
|
||||||
|
DECLARE_GLOBAL_DATA_PTR;
|
||||||
|
|
||||||
|
extern void timer_init(void);
|
||||||
|
extern int eth_hw_init(void);
|
||||||
|
extern phy_t phy;
|
||||||
|
|
||||||
|
|
||||||
|
/* Works on Always On power domain only (no PD argument) */
|
||||||
|
void lpsc_on(unsigned int id)
|
||||||
|
{
|
||||||
|
dv_reg_p mdstat, mdctl;
|
||||||
|
|
||||||
|
if (id >= DAVINCI_LPSC_GEM)
|
||||||
|
return; /* Don't work on DSP Power Domain */
|
||||||
|
|
||||||
|
mdstat = REG_P(PSC_MDSTAT_BASE + (id * 4));
|
||||||
|
mdctl = REG_P(PSC_MDCTL_BASE + (id * 4));
|
||||||
|
|
||||||
|
while (REG(PSC_PTSTAT) & 0x01);
|
||||||
|
|
||||||
|
if ((*mdstat & 0x1f) == 0x03)
|
||||||
|
return; /* Already on and enabled */
|
||||||
|
|
||||||
|
*mdctl |= 0x03;
|
||||||
|
|
||||||
|
/* Special treatment for some modules as for sprue14 p.7.4.2 */
|
||||||
|
switch (id) {
|
||||||
|
case DAVINCI_LPSC_VPSSSLV:
|
||||||
|
case DAVINCI_LPSC_EMAC:
|
||||||
|
case DAVINCI_LPSC_EMAC_WRAPPER:
|
||||||
|
case DAVINCI_LPSC_MDIO:
|
||||||
|
case DAVINCI_LPSC_USB:
|
||||||
|
case DAVINCI_LPSC_ATA:
|
||||||
|
case DAVINCI_LPSC_VLYNQ:
|
||||||
|
case DAVINCI_LPSC_UHPI:
|
||||||
|
case DAVINCI_LPSC_DDR_EMIF:
|
||||||
|
case DAVINCI_LPSC_AEMIF:
|
||||||
|
case DAVINCI_LPSC_MMC_SD:
|
||||||
|
case DAVINCI_LPSC_MEMSTICK:
|
||||||
|
case DAVINCI_LPSC_McBSP:
|
||||||
|
case DAVINCI_LPSC_GPIO:
|
||||||
|
*mdctl |= 0x200;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
REG(PSC_PTCMD) = 0x01;
|
||||||
|
|
||||||
|
while (REG(PSC_PTSTAT) & 0x03);
|
||||||
|
while ((*mdstat & 0x1f) != 0x03); /* Probably an overkill... */
|
||||||
|
}
|
||||||
|
|
||||||
|
#if !defined(CFG_USE_DSPLINK)
|
||||||
|
void dsp_on(void)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
|
||||||
|
if (REG(PSC_PDSTAT1) & 0x1f)
|
||||||
|
return; /* Already on */
|
||||||
|
|
||||||
|
REG(PSC_GBLCTL) |= 0x01;
|
||||||
|
REG(PSC_PDCTL1) |= 0x01;
|
||||||
|
REG(PSC_PDCTL1) &= ~0x100;
|
||||||
|
REG(PSC_MDCTL_BASE + (DAVINCI_LPSC_GEM * 4)) |= 0x03;
|
||||||
|
REG(PSC_MDCTL_BASE + (DAVINCI_LPSC_GEM * 4)) &= 0xfffffeff;
|
||||||
|
REG(PSC_MDCTL_BASE + (DAVINCI_LPSC_IMCOP * 4)) |= 0x03;
|
||||||
|
REG(PSC_MDCTL_BASE + (DAVINCI_LPSC_IMCOP * 4)) &= 0xfffffeff;
|
||||||
|
REG(PSC_PTCMD) = 0x02;
|
||||||
|
|
||||||
|
for (i = 0; i < 100; i++) {
|
||||||
|
if (REG(PSC_EPCPR) & 0x02)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
REG(PSC_CHP_SHRTSW) = 0x01;
|
||||||
|
REG(PSC_PDCTL1) |= 0x100;
|
||||||
|
REG(PSC_EPCCR) = 0x02;
|
||||||
|
|
||||||
|
for (i = 0; i < 100; i++) {
|
||||||
|
if (!(REG(PSC_PTSTAT) & 0x02))
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
REG(PSC_GBLCTL) &= ~0x1f;
|
||||||
|
}
|
||||||
|
#endif /* CFG_USE_DSPLINK */
|
||||||
|
|
||||||
|
int board_init(void)
|
||||||
|
{
|
||||||
|
/* arch number of the board */
|
||||||
|
gd->bd->bi_arch_number = MACH_TYPE_SFFSDR;
|
||||||
|
|
||||||
|
/* address of boot parameters */
|
||||||
|
gd->bd->bi_boot_params = LINUX_BOOT_PARAM_ADDR;
|
||||||
|
|
||||||
|
/* Workaround for TMS320DM6446 errata 1.3.22 */
|
||||||
|
REG(PSC_SILVER_BULLET) = 0;
|
||||||
|
|
||||||
|
/* Power on required peripherals */
|
||||||
|
lpsc_on(DAVINCI_LPSC_EMAC);
|
||||||
|
lpsc_on(DAVINCI_LPSC_EMAC_WRAPPER);
|
||||||
|
lpsc_on(DAVINCI_LPSC_MDIO);
|
||||||
|
lpsc_on(DAVINCI_LPSC_I2C);
|
||||||
|
lpsc_on(DAVINCI_LPSC_UART0);
|
||||||
|
lpsc_on(DAVINCI_LPSC_TIMER1);
|
||||||
|
lpsc_on(DAVINCI_LPSC_GPIO);
|
||||||
|
|
||||||
|
#if !defined(CFG_USE_DSPLINK)
|
||||||
|
/* Powerup the DSP */
|
||||||
|
dsp_on();
|
||||||
|
#endif /* CFG_USE_DSPLINK */
|
||||||
|
|
||||||
|
/* Bringup UART0 out of reset */
|
||||||
|
REG(UART0_PWREMU_MGMT) = 0x0000e003;
|
||||||
|
|
||||||
|
/* Enable GIO3.3V cells used for EMAC */
|
||||||
|
REG(VDD3P3V_PWDN) = 0;
|
||||||
|
|
||||||
|
/* Enable UART0 MUX lines */
|
||||||
|
REG(PINMUX1) |= 1;
|
||||||
|
|
||||||
|
/* Enable EMAC and AEMIF pins */
|
||||||
|
REG(PINMUX0) = 0x80000c1f;
|
||||||
|
|
||||||
|
/* Enable I2C pin Mux */
|
||||||
|
REG(PINMUX1) |= (1 << 7);
|
||||||
|
|
||||||
|
/* Set the Bus Priority Register to appropriate value */
|
||||||
|
REG(VBPR) = 0x20;
|
||||||
|
|
||||||
|
timer_init();
|
||||||
|
|
||||||
|
return(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Read ethernet MAC address from Integrity data structure inside EEPROM. */
|
||||||
|
int read_mac_address(uint8_t *buf)
|
||||||
|
{
|
||||||
|
u_int32_t value, mac[2], address;
|
||||||
|
|
||||||
|
/* Read Integrity data structure checkword. */
|
||||||
|
if (i2c_read(CFG_I2C_EEPROM_ADDR, INTEGRITY_CHECKWORD_OFFSET,
|
||||||
|
CFG_I2C_EEPROM_ADDR_LEN, (uint8_t *) &value, 4))
|
||||||
|
goto err;
|
||||||
|
if (value != INTEGRITY_CHECKWORD_VALUE)
|
||||||
|
return 1;
|
||||||
|
|
||||||
|
/* Read SYSCFG structure offset. */
|
||||||
|
if (i2c_read(CFG_I2C_EEPROM_ADDR, INTEGRITY_SYSCFG_OFFSET,
|
||||||
|
CFG_I2C_EEPROM_ADDR_LEN, (uint8_t *) &value, 4))
|
||||||
|
goto err;
|
||||||
|
address = 0x800 + (int) value; /* Address of SYSCFG structure. */
|
||||||
|
|
||||||
|
/* Read NET CONFIG structure offset. */
|
||||||
|
if (i2c_read(CFG_I2C_EEPROM_ADDR, address,
|
||||||
|
CFG_I2C_EEPROM_ADDR_LEN, (uint8_t *) &value, 4))
|
||||||
|
goto err;
|
||||||
|
address = 0x800 + (int) value; /* Address of NET CONFIG structure. */
|
||||||
|
address += 12; /* Address of NET INTERFACE CONFIG structure. */
|
||||||
|
|
||||||
|
/* Read NET INTERFACE CONFIG 2 structure offset. */
|
||||||
|
if (i2c_read(CFG_I2C_EEPROM_ADDR, address,
|
||||||
|
CFG_I2C_EEPROM_ADDR_LEN, (uint8_t *) &value, 4))
|
||||||
|
goto err;
|
||||||
|
address = 0x800 + 16 + (int) value; /* Address of NET INTERFACE
|
||||||
|
* CONFIG 2 structure. */
|
||||||
|
|
||||||
|
/* Read MAC address. */
|
||||||
|
if (i2c_read(CFG_I2C_EEPROM_ADDR, address,
|
||||||
|
CFG_I2C_EEPROM_ADDR_LEN, (uint8_t *) &mac[0], 8))
|
||||||
|
goto err;
|
||||||
|
|
||||||
|
buf[0] = mac[0] >> 24;
|
||||||
|
buf[1] = mac[0] >> 16;
|
||||||
|
buf[2] = mac[0] >> 8;
|
||||||
|
buf[3] = mac[0];
|
||||||
|
buf[4] = mac[1] >> 24;
|
||||||
|
buf[5] = mac[1] >> 16;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
err:
|
||||||
|
printf("Read from EEPROM @ 0x%02x failed\n", CFG_I2C_EEPROM_ADDR);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Platform dependent initialisation. */
|
||||||
|
int misc_init_r(void)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
u_int8_t i2cbuf;
|
||||||
|
u_int8_t env_enetaddr[6], eeprom_enetaddr[6];
|
||||||
|
char *tmp = getenv("ethaddr");
|
||||||
|
char *end;
|
||||||
|
int clk;
|
||||||
|
|
||||||
|
/* EMIF-A CS3 configuration for FPGA. */
|
||||||
|
REG(DAVINCI_A3CR) = DAVINCI_A3CR_VAL;
|
||||||
|
|
||||||
|
clk = ((REG(PLL2_PLLM) + 1) * 27) / ((REG(PLL2_DIV2) & 0x1f) + 1);
|
||||||
|
|
||||||
|
printf("ARM Clock: %dMHz\n", ((REG(PLL1_PLLM) + 1) * 27) / 2);
|
||||||
|
printf("DDR Clock: %dMHz\n", (clk / 2));
|
||||||
|
|
||||||
|
/* Configure I2C switch (PCA9543) to enable channel 0. */
|
||||||
|
i2cbuf = CFG_I2C_PCA9543_ENABLE_CH0;
|
||||||
|
if (i2c_write(CFG_I2C_PCA9543_ADDR, 0,
|
||||||
|
CFG_I2C_PCA9543_ADDR_LEN, &i2cbuf, 1)) {
|
||||||
|
printf("Write to MUX @ 0x%02x failed\n", CFG_I2C_PCA9543_ADDR);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Read Ethernet MAC address from the U-Boot environment. */
|
||||||
|
for (i = 0; i < 6; i++) {
|
||||||
|
env_enetaddr[i] = tmp ? simple_strtoul(tmp, &end, 16) : 0;
|
||||||
|
if (tmp)
|
||||||
|
tmp = (*end) ? end+1 : end;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Read Ethernet MAC address from EEPROM. */
|
||||||
|
if (read_mac_address(eeprom_enetaddr) == 0) {
|
||||||
|
if (memcmp(env_enetaddr, "\0\0\0\0\0\0", 6) != 0 &&
|
||||||
|
memcmp(env_enetaddr, eeprom_enetaddr, 6) != 0) {
|
||||||
|
printf("\nWarning: MAC addresses don't match:\n");
|
||||||
|
printf("\tHW MAC address: "
|
||||||
|
"%02X:%02X:%02X:%02X:%02X:%02X\n",
|
||||||
|
eeprom_enetaddr[0], eeprom_enetaddr[1],
|
||||||
|
eeprom_enetaddr[2], eeprom_enetaddr[3],
|
||||||
|
eeprom_enetaddr[4], eeprom_enetaddr[5]);
|
||||||
|
printf("\t\"ethaddr\" value: "
|
||||||
|
"%02X:%02X:%02X:%02X:%02X:%02X\n",
|
||||||
|
env_enetaddr[0], env_enetaddr[1],
|
||||||
|
env_enetaddr[2], env_enetaddr[3],
|
||||||
|
env_enetaddr[4], env_enetaddr[5]) ;
|
||||||
|
debug("### Set MAC addr from environment\n");
|
||||||
|
memcpy(eeprom_enetaddr, env_enetaddr, 6);
|
||||||
|
}
|
||||||
|
if (!tmp) {
|
||||||
|
char ethaddr[20];
|
||||||
|
|
||||||
|
sprintf(ethaddr, "%02X:%02X:%02X:%02X:%02X:%02X",
|
||||||
|
eeprom_enetaddr[0], eeprom_enetaddr[1],
|
||||||
|
eeprom_enetaddr[2], eeprom_enetaddr[3],
|
||||||
|
eeprom_enetaddr[4], eeprom_enetaddr[5]) ;
|
||||||
|
debug("### Set environment from HW MAC addr = \"%s\"\n",
|
||||||
|
ethaddr);
|
||||||
|
setenv("ethaddr", ethaddr);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!eth_hw_init()) {
|
||||||
|
printf("Ethernet init failed\n");
|
||||||
|
} else {
|
||||||
|
printf("ETH PHY: %s\n", phy.name);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* On this platform, U-Boot is copied in RAM by the UBL,
|
||||||
|
* so we are always in the relocated state. */
|
||||||
|
gd->flags |= GD_FLG_RELOC;
|
||||||
|
|
||||||
|
return(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
int dram_init(void)
|
||||||
|
{
|
||||||
|
gd->bd->bi_dram[0].start = PHYS_SDRAM_1;
|
||||||
|
gd->bd->bi_dram[0].size = PHYS_SDRAM_1_SIZE;
|
||||||
|
|
||||||
|
return(0);
|
||||||
|
}
|
|
@ -0,0 +1,52 @@
|
||||||
|
/*
|
||||||
|
* (C) Copyright 2002
|
||||||
|
* Gary Jennejohn, DENX Software Engineering, <gj@denx.de>
|
||||||
|
*
|
||||||
|
* See file CREDITS for list of people who contributed to this
|
||||||
|
* project.
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU General Public License as
|
||||||
|
* published by the Free Software Foundation; either version 2 of
|
||||||
|
* the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||||
|
* MA 02111-1307 USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
|
||||||
|
OUTPUT_ARCH(arm)
|
||||||
|
ENTRY(_start)
|
||||||
|
SECTIONS
|
||||||
|
{
|
||||||
|
. = 0x00000000;
|
||||||
|
. = ALIGN(4);
|
||||||
|
.text :
|
||||||
|
{
|
||||||
|
cpu/arm926ejs/start.o (.text)
|
||||||
|
*(.text)
|
||||||
|
}
|
||||||
|
. = ALIGN(4);
|
||||||
|
.rodata : { *(.rodata) }
|
||||||
|
. = ALIGN(4);
|
||||||
|
.data : { *(.data) }
|
||||||
|
. = ALIGN(4);
|
||||||
|
.got : { *(.got) }
|
||||||
|
|
||||||
|
. = .;
|
||||||
|
__u_boot_cmd_start = .;
|
||||||
|
.u_boot_cmd : { *(.u_boot_cmd) }
|
||||||
|
__u_boot_cmd_end = .;
|
||||||
|
|
||||||
|
. = ALIGN(4);
|
||||||
|
__bss_start = .;
|
||||||
|
.bss (NOLOAD) : { *(.bss) }
|
||||||
|
_end = .;
|
||||||
|
}
|
|
@ -41,7 +41,7 @@ clean:
|
||||||
rm -f $(SOBJS) $(OBJS)
|
rm -f $(SOBJS) $(OBJS)
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
rm -f $(LIB) core *.bak *~ .depend
|
rm -f $(LIB) core *.bak $(obj).depend
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
# This is for $(obj).depend target
|
# This is for $(obj).depend target
|
||||||
|
|
|
@ -40,7 +40,7 @@ clean:
|
||||||
rm -f $(SOBJS) $(OBJS)
|
rm -f $(SOBJS) $(OBJS)
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
rm -f $(LIB) core *.bak .depend
|
rm -f $(LIB) core *.bak $(obj).depend
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
|
|
||||||
|
|
|
@ -39,7 +39,7 @@ clean:
|
||||||
rm -f $(SOBJS) $(OBJS)
|
rm -f $(SOBJS) $(OBJS)
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
rm -f $(LIB) core *.bak .depend
|
rm -f $(LIB) core *.bak $(obj).depend
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
|
|
||||||
|
|
|
@ -40,7 +40,7 @@ clean:
|
||||||
rm -f $(SOBJS) $(OBJS)
|
rm -f $(SOBJS) $(OBJS)
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
rm -f $(LIB) core *.bak .depend
|
rm -f $(LIB) core *.bak $(obj).depend
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
|
|
||||||
|
|
|
@ -40,7 +40,7 @@ clean:
|
||||||
rm -f $(SOBJS) $(OBJS)
|
rm -f $(SOBJS) $(OBJS)
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
rm -f $(LIB) core *.bak .depend
|
rm -f $(LIB) core *.bak $(obj).depend
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
|
|
||||||
|
|
|
@ -42,7 +42,7 @@ clean:
|
||||||
rm -f $(SOBJS) $(OBJS)
|
rm -f $(SOBJS) $(OBJS)
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
rm -f $(LIB) core *.bak .depend
|
rm -f $(LIB) core *.bak $(obj).depend
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
|
|
||||||
|
|
|
@ -43,7 +43,7 @@ clean:
|
||||||
rm -f $(SOBJS) $(OBJS)
|
rm -f $(SOBJS) $(OBJS)
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
rm -f $(LIB) core *.bak .depend
|
rm -f $(LIB) core *.bak $(obj).depend
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
|
|
||||||
|
|
|
@ -38,7 +38,7 @@ clean:
|
||||||
rm -f $(SOBJS) $(OBJS)
|
rm -f $(SOBJS) $(OBJS)
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
rm -f $(LIB) core *.bak .depend
|
rm -f $(LIB) core *.bak $(obj).depend
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
|
|
||||||
|
|
|
@ -38,7 +38,7 @@ clean:
|
||||||
rm -f $(SOBJS) $(OBJS)
|
rm -f $(SOBJS) $(OBJS)
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
rm -f $(LIB) core *.bak .depend
|
rm -f $(LIB) core *.bak $(obj).depend
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
|
|
||||||
|
|
|
@ -37,7 +37,7 @@ clean:
|
||||||
rm -f $(OBJS)
|
rm -f $(OBJS)
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
rm -f $(LIB) core *.bak .depend *~
|
rm -f $(LIB) core *.bak $(obj).depend
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
|
|
||||||
|
|
|
@ -41,7 +41,7 @@ clean:
|
||||||
rm -f $(SOBJS) $(OBJS)
|
rm -f $(SOBJS) $(OBJS)
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
rm -f $(LIB) core *.bak .depend
|
rm -f $(LIB) core *.bak $(obj).depend
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
|
|
||||||
|
|
|
@ -39,7 +39,7 @@ clean:
|
||||||
rm -f $(SOBJS) $(OBJS)
|
rm -f $(SOBJS) $(OBJS)
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
rm -f $(LIB) core *.bak .depend
|
rm -f $(LIB) core *.bak $(obj).depend
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
|
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue