mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-29 08:01:08 +00:00
Merge commit 'wd/master'
This commit is contained in:
commit
859f24350e
453 changed files with 8988 additions and 1384 deletions
5
CREDITS
5
CREDITS
|
@ -537,3 +537,8 @@ N: Timo Tuunainen
|
|||
E: timo.tuunainen@sysart.fi
|
||||
D: Support for Artila M-501 starter kit
|
||||
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 \
|
||||
davinci_dvevm \
|
||||
davinci_schmoogie \
|
||||
davinci_sffsdr \
|
||||
davinci_sonata \
|
||||
"
|
||||
|
||||
|
@ -748,7 +749,7 @@ LIST_sh3=" \
|
|||
LIST_sh4=" \
|
||||
ms7750se \
|
||||
ms7722se \
|
||||
Migo-R \
|
||||
MigoR \
|
||||
r7780mp \
|
||||
r2dplus \
|
||||
sh7763rdp \
|
||||
|
|
30
Makefile
30
Makefile
|
@ -220,6 +220,7 @@ LIBS += drivers/hwmon/libhwmon.a
|
|||
LIBS += drivers/i2c/libi2c.a
|
||||
LIBS += drivers/input/libinput.a
|
||||
LIBS += drivers/misc/libmisc.a
|
||||
LIBS += drivers/mmc/libmmc.a
|
||||
LIBS += drivers/mtd/libmtd.a
|
||||
LIBS += drivers/mtd/nand/libnand.a
|
||||
LIBS += drivers/mtd/nand_legacy/libnand_legacy.a
|
||||
|
@ -387,6 +388,7 @@ TAG_SUBDIRS += drivers/hwmon
|
|||
TAG_SUBDIRS += drivers/i2c
|
||||
TAG_SUBDIRS += drivers/input
|
||||
TAG_SUBDIRS += drivers/misc
|
||||
TAG_SUBDIRS += drivers/mmc
|
||||
TAG_SUBDIRS += drivers/mtd
|
||||
TAG_SUBDIRS += drivers/mtd/nand
|
||||
TAG_SUBDIRS += drivers/mtd/nand_legacy
|
||||
|
@ -2428,6 +2430,9 @@ davinci_dvevm_config : unconfig
|
|||
davinci_schmoogie_config : unconfig
|
||||
@$(MKCONFIG) $(@:_config=) arm arm926ejs schmoogie davinci davinci
|
||||
|
||||
davinci_sffsdr_config : unconfig
|
||||
@$(MKCONFIG) $(@:_config=) arm arm926ejs sffsdr davinci davinci
|
||||
|
||||
davinci_sonata_config : unconfig
|
||||
@$(MKCONFIG) $(@:_config=) arm arm926ejs sonata davinci davinci
|
||||
|
||||
|
@ -2910,43 +2915,46 @@ atngw100_config : unconfig
|
|||
## sh3 (Renesas SuperH)
|
||||
#########################################################################
|
||||
mpr2_config: unconfig
|
||||
@ >include/config.h
|
||||
@echo "#define CONFIG_MPR2 1" >> include/config.h
|
||||
@mkdir -p $(obj)include
|
||||
@echo "#define CONFIG_MPR2 1" > $(obj)include/config.h
|
||||
@$(MKCONFIG) -a $(@:_config=) sh sh3 mpr2
|
||||
|
||||
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
|
||||
|
||||
#########################################################################
|
||||
## sh4 (Renesas SuperH)
|
||||
#########################################################################
|
||||
ms7750se_config: unconfig
|
||||
@mkdir -p $(obj)include
|
||||
@echo "#define CONFIG_MS7750SE 1" > $(obj)include/config.h
|
||||
@$(MKCONFIG) -a $(@:_config=) sh sh4 ms7750se
|
||||
|
||||
ms7722se_config : unconfig
|
||||
@mkdir -p $(obj)include
|
||||
@echo "#define CONFIG_MS7722SE 1" > $(obj)include/config.h
|
||||
@$(MKCONFIG) -a $(@:_config=) sh sh4 ms7722se
|
||||
|
||||
MigoR_config : unconfig
|
||||
@ >include/config.h
|
||||
@echo "#define CONFIG_MIGO_R 1" >> include/config.h
|
||||
@mkdir -p $(obj)include
|
||||
@echo "#define CONFIG_MIGO_R 1" > $(obj)include/config.h
|
||||
@./mkconfig -a $(@:_config=) sh sh4 MigoR
|
||||
|
||||
r7780mp_config: unconfig
|
||||
@ >include/config.h
|
||||
@echo "#define CONFIG_R7780MP 1" >> include/config.h
|
||||
@mkdir -p $(obj)include
|
||||
@echo "#define CONFIG_R7780MP 1" > $(obj)include/config.h
|
||||
@./mkconfig -a $(@:_config=) sh sh4 r7780mp
|
||||
|
||||
r2dplus_config : unconfig
|
||||
@ >include/config.h
|
||||
@echo "#define CONFIG_R2DPLUS 1" >> include/config.h
|
||||
@mkdir -p $(obj)include
|
||||
@echo "#define CONFIG_R2DPLUS 1" > $(obj)include/config.h
|
||||
@./mkconfig -a $(@:_config=) sh sh4 r2dplus
|
||||
|
||||
sh7763rdp_config : unconfig
|
||||
@ >include/config.h
|
||||
@echo "#define CONFIG_SH7763RDP 1" >> include/config.h
|
||||
@mkdir -p $(obj)include
|
||||
@echo "#define CONFIG_SH7763RDP 1" > $(obj)include/config.h
|
||||
@./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
|
||||
|
||||
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/
|
||||
directory.
|
||||
|
||||
|
@ -94,7 +94,7 @@ Where we come from:
|
|||
* Provide extended interface to Linux boot loader
|
||||
* S-Record download
|
||||
* network boot
|
||||
* PCMCIA / CompactFLash / ATA disk / SCSI ... boot
|
||||
* PCMCIA / CompactFlash / ATA disk / SCSI ... boot
|
||||
- create ARMBoot project (http://sourceforge.net/projects/armboot)
|
||||
- add other CPU families (starting with ARM)
|
||||
- create U-Boot project (http://sourceforge.net/projects/u-boot)
|
||||
|
@ -230,7 +230,7 @@ Example: For a TQM823L module type:
|
|||
cd u-boot
|
||||
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
|
||||
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)
|
||||
Define one or more of
|
||||
CONFIG_LCD_HEARTBEAT - update a character position on
|
||||
the lcd display every second with
|
||||
the LCD display every second with
|
||||
a "rotator" |\-/|\-/
|
||||
|
||||
- Board flavour: (if CONFIG_MPC8260ADS is defined)
|
||||
|
@ -293,7 +293,7 @@ The following options need to be configured:
|
|||
Define exactly one of
|
||||
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
|
||||
get_gclk_freq() cannot work
|
||||
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]
|
||||
|
||||
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.
|
||||
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_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
|
||||
|
||||
|
@ -375,7 +376,7 @@ The following options need to be configured:
|
|||
|
||||
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.
|
||||
|
||||
- Serial Ports:
|
||||
|
@ -445,7 +446,7 @@ The following options need to be configured:
|
|||
linux_logo.h for logo.
|
||||
Requires CONFIG_VIDEO_LOGO
|
||||
CONFIG_CONSOLE_EXTRA_INFO
|
||||
addional board info beside
|
||||
additional board info beside
|
||||
the logo
|
||||
|
||||
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
|
||||
"ramboot" and "nfsboot" respectively, and can be used
|
||||
as a convenience, when switching between booting from
|
||||
ram and nfs.
|
||||
RAM and NFS.
|
||||
|
||||
- Pre-Boot Commands:
|
||||
CONFIG_PREBOOT
|
||||
|
@ -735,11 +736,11 @@ The following options need to be configured:
|
|||
Support for Intel 8254x gigabit chips.
|
||||
|
||||
CONFIG_E1000_FALLBACK_MAC
|
||||
default MAC for empty eeprom after production.
|
||||
default MAC for empty EEPROM after production.
|
||||
|
||||
CONFIG_EEPRO100
|
||||
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.
|
||||
|
||||
CONFIG_TULIP
|
||||
|
@ -818,7 +819,7 @@ The following options need to be configured:
|
|||
Define the below if you wish to use the USB console.
|
||||
Once firmware is rebuilt from a serial console issue the
|
||||
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
|
||||
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
|
||||
|
@ -932,7 +933,7 @@ The following options need to be configured:
|
|||
assumed.
|
||||
|
||||
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:
|
||||
- "videomode=num" 'num' is a standard LiLo mode numbers.
|
||||
Following standard modes are supported (* is default):
|
||||
|
@ -1055,7 +1056,7 @@ The following options need to be configured:
|
|||
CONFIG_PHY_GIGE
|
||||
|
||||
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
|
||||
|
||||
|
@ -1074,21 +1075,21 @@ The following options need to be configured:
|
|||
CONFIG_ETH2ADDR
|
||||
CONFIG_ETH3ADDR
|
||||
|
||||
Define a default value for ethernet address to use
|
||||
for the respective ethernet interface, in case this
|
||||
Define a default value for Ethernet address to use
|
||||
for the respective Ethernet interface, in case this
|
||||
is not determined automatically.
|
||||
|
||||
- IP address:
|
||||
CONFIG_IPADDR
|
||||
|
||||
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.
|
||||
|
||||
- Server IP address:
|
||||
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.
|
||||
|
||||
- Multicast TFTP Mode:
|
||||
|
@ -1096,7 +1097,7 @@ The following options need to be configured:
|
|||
|
||||
Defines whether you want to support multicast TFTP as per
|
||||
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
|
||||
multicast group.
|
||||
|
||||
|
@ -1184,7 +1185,7 @@ The following options need to be configured:
|
|||
|
||||
A printf format string which contains the ascii name of
|
||||
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
|
||||
|
||||
|
@ -1233,7 +1234,7 @@ The following options need to be configured:
|
|||
|
||||
These enable I2C serial bus commands. Defining either of
|
||||
(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
|
||||
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
|
||||
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
|
||||
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)
|
||||
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
|
||||
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
|
||||
after PROB_B has been deasserted during a Virtex II
|
||||
FPGA configuration sequence. The default time is 500
|
||||
mS.
|
||||
ms.
|
||||
|
||||
CFG_FPGA_WAIT_BUSY
|
||||
|
||||
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
|
||||
|
||||
Time to wait after FPGA configuration. The default is
|
||||
200 mS.
|
||||
200 ms.
|
||||
|
||||
- Configuration Management:
|
||||
CONFIG_IDENT_STRING
|
||||
|
@ -1507,7 +1508,7 @@ The following options need to be configured:
|
|||
protects these variables from casual modification by
|
||||
the user. Once set, these variables are read-only,
|
||||
and write or delete attempts are rejected. You can
|
||||
change this behviour:
|
||||
change this behaviour:
|
||||
|
||||
If CONFIG_ENV_OVERWRITE is #defined in your config
|
||||
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
|
||||
_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
|
||||
serial# is unaffected by this, i. e. it remains
|
||||
read-only.]
|
||||
|
@ -1560,7 +1561,7 @@ The following options need to be configured:
|
|||
Define this variable to stop the system in case of a
|
||||
fatal error, so that you have to reset it manually.
|
||||
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
|
||||
useful during development since you can try to debug
|
||||
the conditions that lead to the situation.
|
||||
|
@ -1627,7 +1628,7 @@ The following options need to be configured:
|
|||
- Commandline Editing and History:
|
||||
CONFIG_CMDLINE_EDITING
|
||||
|
||||
Enable editiong and History functions for interactive
|
||||
Enable editing and History functions for interactive
|
||||
commandline input operations
|
||||
|
||||
- Default Environment:
|
||||
|
@ -1668,7 +1669,7 @@ The following options need to be configured:
|
|||
|
||||
Adding this option adds support for Xilinx SystemACE
|
||||
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:
|
||||
|
||||
#define CONFIG_SYSTEMACE
|
||||
|
@ -1734,7 +1735,7 @@ Legacy uImage format:
|
|||
-12 common/image.c Ramdisk data has bad checksum
|
||||
11 common/image.c Ramdisk data has correct checksum
|
||||
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
|
||||
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
|
||||
|
||||
64 net/eth.c starting with Ethernetconfiguration.
|
||||
64 net/eth.c starting with Ethernet configuration.
|
||||
-64 net/eth.c no Ethernet found.
|
||||
65 net/eth.c Ethernet found.
|
||||
|
||||
-80 common/cmd_net.c usage wrong
|
||||
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
|
||||
-82 common/cmd_net.c size == 0 (File with size 0 loaded)
|
||||
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 is for unsupported architecture
|
||||
106 common/cmd_bootm.c Architecture check OK
|
||||
-106 common/cmd_bootm.c Kernel subimage has wrong typea
|
||||
107 common/cmd_bootm.c Kernel subimge type OK
|
||||
-106 common/cmd_bootm.c Kernel subimage has wrong type
|
||||
107 common/cmd_bootm.c Kernel subimage type OK
|
||||
-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 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 Ramdisk FIT image has incorrect 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
|
||||
123 common/image.c Ramdisk unit name specified
|
||||
-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 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
|
||||
|
||||
-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
|
||||
|
||||
-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
|
||||
|
||||
|
||||
|
@ -1866,7 +1867,7 @@ Modem Support:
|
|||
|
||||
[so far only for SMDK2400 and TRAB boards]
|
||||
|
||||
- Modem support endable:
|
||||
- Modem support enable:
|
||||
CONFIG_MODEM_SUPPORT
|
||||
|
||||
- RTS/CTS Flow control enable:
|
||||
|
@ -1882,11 +1883,11 @@ Modem Support:
|
|||
|
||||
There are common interrupt_init() and timer_interrupt()
|
||||
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
|
||||
cpu resets decrementer automatically after interrupt
|
||||
CPU resets decrementer automatically after interrupt
|
||||
(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
|
||||
/ other_activity_monitor it works automatically from
|
||||
general timer_interrupt().
|
||||
|
@ -1896,7 +1897,7 @@ Modem Support:
|
|||
In the target system modem support is enabled when a
|
||||
specific key (key combination) is pressed during
|
||||
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
|
||||
function, returning 1 and thus enabling modem
|
||||
initialization.
|
||||
|
@ -1904,7 +1905,7 @@ Modem Support:
|
|||
If there are no modem init strings in the
|
||||
environment, U-Boot proceed to autoboot; the
|
||||
previous output (banner, info printfs) will be
|
||||
supressed, though.
|
||||
suppressed, though.
|
||||
|
||||
See also: doc/README.Modem
|
||||
|
||||
|
@ -1960,7 +1961,7 @@ Configuration Settings:
|
|||
- CFG_MEM_TOP_HIDE (PPC only):
|
||||
If CFG_MEM_TOP_HIDE is defined in the board config header,
|
||||
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
|
||||
the now "corrected" memory size and won't touch it either.
|
||||
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
|
||||
you can check if the download worked before you erase
|
||||
the flash, but in some situations (when sytem RAM is
|
||||
too limited to allow for a tempory copy of the
|
||||
the flash, but in some situations (when system RAM is
|
||||
too limited to allow for a temporary copy of the
|
||||
downloaded image) this option may be very useful.
|
||||
|
||||
- CFG_FLASH_CFI:
|
||||
|
@ -2086,11 +2087,11 @@ Configuration Settings:
|
|||
column displays, 15 (3..1) for 40 column displays.
|
||||
|
||||
- CFG_RX_ETH_BUFFER:
|
||||
Defines the number of ethernet receive buffers. On some
|
||||
ethernet controllers it is recommended to set this value
|
||||
Defines the number of Ethernet receive buffers. On some
|
||||
Ethernet controllers it is recommended to set this value
|
||||
to 8 or even higher (EEPRO100 or 405 EMAC), since all
|
||||
buffers can be full shortly after enabling the interface
|
||||
on high ethernet traffic.
|
||||
on high Ethernet traffic.
|
||||
Defaults to 4 if not defined.
|
||||
|
||||
The following definitions that deal with the placement and management
|
||||
|
@ -2158,7 +2159,7 @@ following configurations:
|
|||
CFG_ENV_SIZE_REDUND
|
||||
|
||||
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 "saveenv" operation.
|
||||
|
||||
|
@ -2176,14 +2177,14 @@ accordingly!
|
|||
- CFG_ENV_ADDR:
|
||||
- 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
|
||||
can just be read and written to, without any special
|
||||
provision.
|
||||
|
||||
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
|
||||
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.
|
||||
|
||||
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
|
||||
|
||||
defines the spacing between fdc chipset registers
|
||||
defines the spacing between FDC chipset registers
|
||||
(default value 1)
|
||||
|
||||
CFG_ISA_IO_OFFSET
|
||||
|
||||
defines the offset of register from address. It
|
||||
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
|
||||
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
|
||||
only exception is when U-Boot is loaded (to RAM) by
|
||||
some other boot loader or by a debugger which
|
||||
performs these intializations itself.
|
||||
performs these initializations itself.
|
||||
|
||||
|
||||
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
|
||||
instance, the TQM823L systems are available without (standard)
|
||||
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
|
||||
- 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"
|
||||
environment variable. Address defined by "bootm_low" is
|
||||
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
|
||||
command can be restricted. This variable is given as
|
||||
|
@ -2880,7 +2881,7 @@ Some configuration options can be set using Environment Variables:
|
|||
themselves.
|
||||
|
||||
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
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
The following environment variables may be used and automatically
|
||||
|
@ -2967,14 +2968,14 @@ General rules:
|
|||
executed anyway.
|
||||
|
||||
(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
|
||||
variables are not executed.
|
||||
|
||||
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
|
||||
"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]
|
||||
...
|
||||
|
||||
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
|
||||
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
|
||||
is that the cache is being used as a temporary supply of
|
||||
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
|
||||
operation in the architecture and processor-specific manuals.
|
||||
|
||||
OCM is On Chip Memory, which I believe the 405GP has 4K. It
|
||||
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
|
||||
board designers haven't used it for something that would
|
||||
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
|
||||
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-
|
||||
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
|
||||
(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.
|
||||
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!)
|
||||
|
|
|
@ -24,25 +24,29 @@
|
|||
|
||||
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
|
||||
|
||||
SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c)
|
||||
OBJS := $(addprefix $(obj),$(COBJS))
|
||||
SOBJS := $(addprefix $(obj),$(SOBJS))
|
||||
|
||||
$(LIB): $(OBJS) $(SOBJS)
|
||||
$(AR) crv $@ $(OBJS) $(SOBJS)
|
||||
$(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
|
||||
|
||||
clean:
|
||||
rm -f $(SOBJS) $(OBJS)
|
||||
|
||||
distclean: clean
|
||||
rm -f $(LIB) core *.bak .depend
|
||||
rm -f $(LIB) core *.bak $(obj).depend
|
||||
|
||||
#########################################################################
|
||||
|
||||
.depend: Makefile $(SOBJS:.o=.S) $(OBJS:.o=.c)
|
||||
$(CC) -M $(CPPFLAGS) $(SOBJS:.o=.S) $(OBJS:.o=.c) > $@
|
||||
# defines $(obj).depend target
|
||||
include $(SRCTREE)/rules.mk
|
||||
|
||||
-include .depend
|
||||
sinclude $(obj).depend
|
||||
|
||||
#########################################################################
|
||||
|
|
|
@ -38,7 +38,7 @@ clean:
|
|||
rm -f $(SOBJS) $(OBJS)
|
||||
|
||||
distclean: clean
|
||||
rm -f $(LIB) core *.bak .depend
|
||||
rm -f $(LIB) core *.bak $(obj).depend
|
||||
|
||||
#########################################################################
|
||||
|
||||
|
|
|
@ -38,7 +38,7 @@ clean:
|
|||
rm -f $(SOBJS) $(OBJS)
|
||||
|
||||
distclean: clean
|
||||
rm -f $(LIB) core *.bak .depend
|
||||
rm -f $(LIB) core *.bak $(obj).depend
|
||||
|
||||
#########################################################################
|
||||
|
||||
|
|
|
@ -38,7 +38,7 @@ clean:
|
|||
rm -f $(SOBJS) $(OBJS)
|
||||
|
||||
distclean: clean
|
||||
rm -f $(LIB) core *.bak .depend
|
||||
rm -f $(LIB) core *.bak $(obj).depend
|
||||
|
||||
#########################################################################
|
||||
|
||||
|
|
|
@ -38,7 +38,7 @@ clean:
|
|||
rm -f $(SOBJS) $(OBJS)
|
||||
|
||||
distclean: clean
|
||||
rm -f $(LIB) core *.bak .depend
|
||||
rm -f $(LIB) core *.bak $(obj).depend
|
||||
|
||||
#########################################################################
|
||||
|
||||
|
|
|
@ -41,7 +41,7 @@ clean:
|
|||
rm -f $(SOBJS) $(OBJS)
|
||||
|
||||
distclean: clean
|
||||
rm -f $(LIB) core *.bak .depend
|
||||
rm -f $(LIB) core *.bak $(obj).depend
|
||||
|
||||
#########################################################################
|
||||
|
||||
|
|
|
@ -45,7 +45,7 @@ clean:
|
|||
rm -f $(SOBJS) $(OBJS)
|
||||
|
||||
distclean: clean
|
||||
rm -f $(LIB) core *.bak .depend
|
||||
rm -f $(LIB) core *.bak $(obj).depend
|
||||
|
||||
#########################################################################
|
||||
|
||||
|
|
|
@ -39,7 +39,7 @@ clean:
|
|||
rm -f $(SOBJS) $(OBJS)
|
||||
|
||||
distclean: clean
|
||||
rm -f $(LIB) core *.bak .depend
|
||||
rm -f $(LIB) core *.bak $(obj).depend
|
||||
|
||||
#########################################################################
|
||||
|
||||
|
|
|
@ -38,7 +38,7 @@ clean:
|
|||
rm -f $(SOBJS) $(OBJS)
|
||||
|
||||
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 */
|
||||
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);
|
||||
}
|
||||
/* 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++)
|
||||
if ((*dstaddr++ & 0xff) != 0xff) {
|
||||
printf ("not erased at %08lx (%lx)\n",
|
||||
(ulong) dstaddr, *dstaddr);
|
||||
(ulong)dstaddr, (ulong)*dstaddr);
|
||||
return (2);
|
||||
}
|
||||
|
||||
|
|
|
@ -39,7 +39,7 @@ clean:
|
|||
rm -f $(SOBJS) $(OBJS)
|
||||
|
||||
distclean: clean
|
||||
rm -f $(LIB) core *.bak .depend
|
||||
rm -f $(LIB) core *.bak $(obj).depend
|
||||
|
||||
#########################################################################
|
||||
|
||||
|
|
|
@ -39,7 +39,7 @@ clean:
|
|||
rm -f $(SOBJS) $(OBJS)
|
||||
|
||||
distclean: clean
|
||||
rm -f $(LIB) core *.bak .depend
|
||||
rm -f $(LIB) core *.bak $(obj).depend
|
||||
|
||||
#########################################################################
|
||||
|
||||
|
|
|
@ -43,7 +43,7 @@ clean:
|
|||
rm -f $(SOBJS) $(OBJS)
|
||||
|
||||
distclean: clean
|
||||
rm -f $(LIB) core *.bak .depend
|
||||
rm -f $(LIB) core *.bak $(obj).depend
|
||||
|
||||
#########################################################################
|
||||
|
||||
|
|
|
@ -43,7 +43,7 @@ clean:
|
|||
rm -f $(SOBJS) $(OBJS)
|
||||
|
||||
distclean: clean
|
||||
rm -f $(LIB) core *.bak .depend
|
||||
rm -f $(LIB) core *.bak $(obj).depend
|
||||
|
||||
#########################################################################
|
||||
|
||||
|
|
|
@ -43,7 +43,7 @@ clean:
|
|||
rm -f $(SOBJS) $(OBJS)
|
||||
|
||||
distclean: clean
|
||||
rm -f $(LIB) core *.bak .depend
|
||||
rm -f $(LIB) core *.bak $(obj).depend
|
||||
|
||||
#########################################################################
|
||||
|
||||
|
|
|
@ -39,7 +39,7 @@ clean:
|
|||
rm -f $(SOBJS) $(OBJS)
|
||||
|
||||
distclean: clean
|
||||
rm -f $(LIB) core *.bak .depend *~
|
||||
rm -f $(LIB) core *.bak $(obj).depend
|
||||
|
||||
#########################################################################
|
||||
|
||||
|
|
|
@ -39,7 +39,7 @@ clean:
|
|||
rm -f $(SOBJS) $(OBJS)
|
||||
|
||||
distclean: clean
|
||||
rm -f $(LIB) core *.bak .depend
|
||||
rm -f $(LIB) core *.bak $(obj).depend
|
||||
|
||||
#########################################################################
|
||||
|
||||
|
|
|
@ -38,7 +38,7 @@ clean:
|
|||
rm -f $(SOBJS) $(OBJS)
|
||||
|
||||
distclean: clean
|
||||
rm -f $(LIB) core *.bak .depend
|
||||
rm -f $(LIB) core *.bak $(obj).depend
|
||||
|
||||
#########################################################################
|
||||
|
||||
|
|
|
@ -40,7 +40,7 @@ clean:
|
|||
rm -f $(SOBJS) $(OBJS)
|
||||
|
||||
distclean: clean
|
||||
rm -f $(LIB) core *.bak .depend
|
||||
rm -f $(LIB) core *.bak $(obj).depend
|
||||
|
||||
#########################################################################
|
||||
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
#include <ppc440.h>
|
||||
#include <libfdt.h>
|
||||
#include <fdt_support.h>
|
||||
#include <i2c.h>
|
||||
#include <asm/processor.h>
|
||||
#include <asm/io.h>
|
||||
#include <asm/mmu.h>
|
||||
|
@ -393,6 +394,7 @@ int misc_init_r(void)
|
|||
u32 sdr0_srst1 = 0;
|
||||
u32 eth_cfg;
|
||||
u32 pvr = get_pvr();
|
||||
u8 val;
|
||||
|
||||
/*
|
||||
* Set EMAC mode/configuration (GMII, SGMII, RGMII...).
|
||||
|
@ -420,6 +422,15 @@ int misc_init_r(void)
|
|||
sdr0_srst1 &= ~SDR0_SRST1_AHB;
|
||||
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;
|
||||
}
|
||||
|
||||
|
|
|
@ -39,7 +39,7 @@ clean:
|
|||
rm -f $(SOBJS) $(OBJS)
|
||||
|
||||
distclean: clean
|
||||
rm -f $(LIB) core *.bak .depend
|
||||
rm -f $(LIB) core *.bak $(obj).depend
|
||||
|
||||
#########################################################################
|
||||
|
||||
|
|
|
@ -39,7 +39,7 @@ clean:
|
|||
rm -f $(SOBJS) $(OBJS)
|
||||
|
||||
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
|
||||
}
|
||||
#ifdef DEBUG
|
||||
printf(" pin strap0 to write in i2c = %x\n", data);
|
||||
printf(" pin strap0 to write in i2c = %lx\n", data);
|
||||
#endif /* DEBUG */
|
||||
|
||||
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;
|
||||
|
||||
#ifdef DEBUG
|
||||
printf(" pin strap1 to write in i2c = %x\n", data);
|
||||
printf(" pin strap1 to write in i2c = %lx\n", data);
|
||||
#endif /* DEBUG */
|
||||
|
||||
udelay(1000);
|
||||
|
|
|
@ -37,7 +37,7 @@ clean:
|
|||
rm -f $(OBJS)
|
||||
|
||||
distclean: clean
|
||||
rm -f $(LIB) core *.bak .depend *~
|
||||
rm -f $(LIB) core *.bak $(obj).depend
|
||||
|
||||
#########################################################################
|
||||
|
||||
|
|
|
@ -39,7 +39,7 @@ clean:
|
|||
rm -f $(SOBJS) $(OBJS)
|
||||
|
||||
distclean: clean
|
||||
rm -f $(LIB) core *.bak .depend
|
||||
rm -f $(LIB) core *.bak $(obj).depend
|
||||
|
||||
#########################################################################
|
||||
|
||||
|
|
|
@ -38,7 +38,7 @@ clean:
|
|||
rm -f $(OBJS)
|
||||
|
||||
distclean: clean
|
||||
rm -f $(LIB) core *.bak .depend *~
|
||||
rm -f $(LIB) core *.bak $(obj).depend
|
||||
|
||||
#########################################################################
|
||||
|
||||
|
|
|
@ -39,7 +39,7 @@ clean:
|
|||
rm -f $(SOBJS) $(OBJS)
|
||||
|
||||
distclean: clean
|
||||
rm -f $(LIB) core *.bak .depend *~
|
||||
rm -f $(LIB) core *.bak $(obj).depend
|
||||
|
||||
#########################################################################
|
||||
|
||||
|
|
|
@ -39,7 +39,7 @@ clean:
|
|||
rm -f $(SOBJS) $(OBJS)
|
||||
|
||||
distclean: clean
|
||||
rm -f $(LIB) core *.bak .depend
|
||||
rm -f $(LIB) core *.bak $(obj).depend
|
||||
|
||||
#########################################################################
|
||||
|
||||
|
|
|
@ -37,7 +37,7 @@ clean:
|
|||
rm -f $(OBJS)
|
||||
|
||||
distclean: clean
|
||||
rm -f $(LIB) core *.bak .depend
|
||||
rm -f $(LIB) core *.bak $(obj).depend
|
||||
|
||||
#########################################################################
|
||||
|
||||
|
|
|
@ -39,7 +39,7 @@ clean:
|
|||
rm -f $(SOBJS) $(OBJS)
|
||||
|
||||
distclean: clean
|
||||
rm -f $(LIB) core *.bak .depend
|
||||
rm -f $(LIB) core *.bak $(obj).depend
|
||||
|
||||
#########################################################################
|
||||
|
||||
|
|
|
@ -38,7 +38,7 @@ clean:
|
|||
rm -f $(SOBJS) $(OBJS)
|
||||
|
||||
distclean: clean
|
||||
rm -f $(LIB) core *.bak .depend
|
||||
rm -f $(LIB) core *.bak $(obj).depend
|
||||
|
||||
#########################################################################
|
||||
|
||||
|
|
|
@ -39,7 +39,7 @@ clean:
|
|||
rm -f $(SOBJS) $(OBJS)
|
||||
|
||||
distclean: clean
|
||||
rm -f $(LIB) core *.bak .depend
|
||||
rm -f $(LIB) core *.bak $(obj).depend
|
||||
|
||||
#########################################################################
|
||||
|
||||
|
|
|
@ -39,7 +39,7 @@ clean:
|
|||
rm -f $(SOBJS) $(OBJS)
|
||||
|
||||
distclean: clean
|
||||
rm -f $(LIB) core *.bak .depend *~
|
||||
rm -f $(LIB) core *.bak $(obj).depend
|
||||
|
||||
#########################################################################
|
||||
|
||||
|
|
|
@ -39,7 +39,7 @@ clean:
|
|||
rm -f $(SOBJS) $(OBJS)
|
||||
|
||||
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/processor.h>
|
||||
#include <common.h>
|
||||
#include <command.h>
|
||||
#include <config.h>
|
||||
|
||||
|
|
|
@ -39,7 +39,7 @@ clean:
|
|||
rm -f $(SOBJS) $(OBJS)
|
||||
|
||||
distclean: clean
|
||||
rm -f $(LIB) core *.bak .depend
|
||||
rm -f $(LIB) core *.bak $(obj).depend
|
||||
|
||||
#########################################################################
|
||||
|
||||
|
|
|
@ -153,10 +153,8 @@ void ether_init(void)
|
|||
do {
|
||||
__raw_writew(0x1, LAN_RESET_REGISTER);
|
||||
udelay(100);
|
||||
if (cnt == 0) {
|
||||
printf("1. eth reset err\n");
|
||||
if (cnt == 0)
|
||||
goto eth_reset_err_out;
|
||||
}
|
||||
--cnt;
|
||||
} while (__raw_readw(LAN_RESET_REGISTER) != 0x1);
|
||||
|
||||
|
@ -165,10 +163,8 @@ void ether_init(void)
|
|||
do {
|
||||
__raw_writew(0x0, LAN_RESET_REGISTER);
|
||||
udelay(100);
|
||||
if (cnt == 0) {
|
||||
printf("2. eth reset err\n");
|
||||
if (cnt == 0)
|
||||
goto eth_reset_err_out;
|
||||
}
|
||||
--cnt;
|
||||
} while (__raw_readw(LAN_RESET_REGISTER) != 0x0000);
|
||||
udelay(1000);
|
||||
|
|
|
@ -67,7 +67,7 @@
|
|||
# define APOLLON_24XX_GPMC_CONFIG7_0 (0x00000e40|(APOLLON_CS0_BASE >> 24))
|
||||
|
||||
/* 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_CONFIG3_1 0x00080803
|
||||
# define APOLLON_24XX_GPMC_CONFIG4_1 0x1C0b1C0a
|
||||
|
|
|
@ -43,7 +43,7 @@ clean:
|
|||
rm -f $(SOBJS) $(OBJS)
|
||||
|
||||
distclean: clean
|
||||
rm -f $(LIB) core *.bak .depend
|
||||
rm -f $(LIB) core *.bak $(obj).depend
|
||||
|
||||
#########################################################################
|
||||
|
||||
|
|
|
@ -41,7 +41,7 @@ clean:
|
|||
rm -f $(SOBJS) $(OBJS)
|
||||
|
||||
distclean: clean
|
||||
rm -f $(LIB) core *.bak .depend
|
||||
rm -f $(LIB) core *.bak $(obj).depend
|
||||
|
||||
#########################################################################
|
||||
|
||||
|
|
|
@ -45,7 +45,7 @@ clean:
|
|||
rm -f $(SOBJS) $(OBJS)
|
||||
|
||||
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 */
|
||||
at91_sys_write(AT91_RSTC_MR, AT91_RSTC_KEY |
|
||||
AT91_RSTC_ERSTL | (0x0D << 8) |
|
||||
(AT91_RSTC_ERSTL & (0x0D << 8)) |
|
||||
AT91_RSTC_URSTEN);
|
||||
|
||||
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 */
|
||||
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 */
|
||||
writel(pin_to_mask(AT91_PIN_PB22) |
|
||||
pin_to_mask(AT91_PIN_PB25) |
|
||||
|
|
2
board/atmel/at91rm9200dk/Makefile
Executable file → Normal file
2
board/atmel/at91rm9200dk/Makefile
Executable file → Normal file
|
@ -38,7 +38,7 @@ clean:
|
|||
rm -f $(SOBJS) $(OBJS)
|
||||
|
||||
distclean: clean
|
||||
rm -f $(LIB) core *.bak .depend
|
||||
rm -f $(LIB) core *.bak $(obj).depend
|
||||
|
||||
#########################################################################
|
||||
|
||||
|
|
|
@ -45,7 +45,7 @@ clean:
|
|||
rm -f $(SOBJS) $(OBJS)
|
||||
|
||||
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 */
|
||||
at91_sys_write(AT91_SMC_SETUP(3),
|
||||
AT91_SMC_NWESETUP_(0) | AT91_SMC_NCS_WRSETUP_(0) |
|
||||
AT91_SMC_NRDSETUP_(0) | AT91_SMC_NCS_RDSETUP_(0));
|
||||
AT91_SMC_NWESETUP_(1) | AT91_SMC_NCS_WRSETUP_(0) |
|
||||
AT91_SMC_NRDSETUP_(1) | AT91_SMC_NCS_RDSETUP_(0));
|
||||
at91_sys_write(AT91_SMC_PULSE(3),
|
||||
AT91_SMC_NWEPULSE_(3) | AT91_SMC_NCS_WRPULSE_(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 */
|
||||
at91_sys_write(AT91_RSTC_MR, AT91_RSTC_KEY |
|
||||
AT91_RSTC_ERSTL | (0x0D << 8) |
|
||||
(AT91_RSTC_ERSTL & (0x0D << 8)) |
|
||||
AT91_RSTC_URSTEN);
|
||||
|
||||
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 */
|
||||
at91_sys_write(AT91_RSTC_MR, AT91_RSTC_KEY |
|
||||
AT91_RSTC_ERSTL | (0x0 << 8) |
|
||||
(AT91_RSTC_ERSTL & (0x0 << 8)) |
|
||||
AT91_RSTC_URSTEN);
|
||||
|
||||
/* Re-enable pull-up */
|
||||
|
|
|
@ -45,7 +45,7 @@ clean:
|
|||
rm -f $(SOBJS) $(OBJS)
|
||||
|
||||
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 */
|
||||
at91_sys_write(AT91_SMC_SETUP(3),
|
||||
AT91_SMC_NWESETUP_(0) | AT91_SMC_NCS_WRSETUP_(0) |
|
||||
AT91_SMC_NRDSETUP_(0) | AT91_SMC_NCS_RDSETUP_(0));
|
||||
AT91_SMC_NWESETUP_(1) | AT91_SMC_NCS_WRSETUP_(0) |
|
||||
AT91_SMC_NRDSETUP_(1) | AT91_SMC_NCS_RDSETUP_(0));
|
||||
at91_sys_write(AT91_SMC_PULSE(3),
|
||||
AT91_SMC_NWEPULSE_(2) | AT91_SMC_NCS_WRPULSE_(5) |
|
||||
AT91_SMC_NRDPULSE_(2) | AT91_SMC_NCS_RDPULSE_(5));
|
||||
AT91_SMC_NWEPULSE_(3) | AT91_SMC_NCS_WRPULSE_(3) |
|
||||
AT91_SMC_NRDPULSE_(3) | AT91_SMC_NCS_RDPULSE_(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_SMC_READMODE | AT91_SMC_WRITEMODE |
|
||||
AT91_SMC_EXNWMODE_DISABLE |
|
||||
|
@ -97,7 +97,7 @@ static void at91sam9261ek_nand_hw_init(void)
|
|||
#else /* CFG_NAND_DBW_8 */
|
||||
AT91_SMC_DBW_8 |
|
||||
#endif
|
||||
AT91_SMC_TDF_(1));
|
||||
AT91_SMC_TDF_(2));
|
||||
|
||||
at91_sys_write(AT91_PMC_PCER, 1 << AT91SAM9261_ID_PIOC);
|
||||
|
||||
|
|
|
@ -45,7 +45,7 @@ clean:
|
|||
rm -f $(SOBJS) $(OBJS)
|
||||
|
||||
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 */
|
||||
at91_sys_write(AT91_SMC_SETUP(3),
|
||||
AT91_SMC_NWESETUP_(0) | AT91_SMC_NCS_WRSETUP_(0) |
|
||||
AT91_SMC_NRDSETUP_(0) | AT91_SMC_NCS_RDSETUP_(0));
|
||||
AT91_SMC_NWESETUP_(1) | AT91_SMC_NCS_WRSETUP_(0) |
|
||||
AT91_SMC_NRDSETUP_(1) | AT91_SMC_NCS_RDSETUP_(0));
|
||||
at91_sys_write(AT91_SMC_PULSE(3),
|
||||
AT91_SMC_NWEPULSE_(3) | AT91_SMC_NCS_WRPULSE_(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 */
|
||||
at91_sys_write(AT91_RSTC_MR, AT91_RSTC_KEY |
|
||||
AT91_RSTC_ERSTL | (0x0D << 8) |
|
||||
(AT91_RSTC_ERSTL & (0x0D << 8)) |
|
||||
AT91_RSTC_URSTEN);
|
||||
|
||||
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 */
|
||||
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 */
|
||||
writel(pin_to_mask(AT91_PIN_PC25),
|
||||
pin_to_controller(AT91_PIN_PC0) + PIO_PUER);
|
||||
|
|
|
@ -45,7 +45,7 @@ clean:
|
|||
rm -f $(SOBJS) $(OBJS)
|
||||
|
||||
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 */
|
||||
at91_sys_write(AT91_SMC_SETUP(3),
|
||||
AT91_SMC_NWESETUP_(0) | AT91_SMC_NCS_WRSETUP_(0) |
|
||||
AT91_SMC_NRDSETUP_(0) | AT91_SMC_NCS_RDSETUP_(0));
|
||||
AT91_SMC_NWESETUP_(1) | AT91_SMC_NCS_WRSETUP_(0) |
|
||||
AT91_SMC_NRDSETUP_(1) | AT91_SMC_NCS_RDSETUP_(0));
|
||||
at91_sys_write(AT91_SMC_PULSE(3),
|
||||
AT91_SMC_NWEPULSE_(2) | AT91_SMC_NCS_WRPULSE_(5) |
|
||||
AT91_SMC_NRDPULSE_(2) | AT91_SMC_NCS_RDPULSE_(5));
|
||||
AT91_SMC_NWEPULSE_(3) | AT91_SMC_NCS_WRPULSE_(3) |
|
||||
AT91_SMC_NRDPULSE_(3) | AT91_SMC_NCS_RDPULSE_(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_SMC_READMODE | AT91_SMC_WRITEMODE |
|
||||
AT91_SMC_EXNWMODE_DISABLE |
|
||||
|
@ -97,7 +97,7 @@ static void at91sam9rlek_nand_hw_init(void)
|
|||
#else /* CFG_NAND_DBW_8 */
|
||||
AT91_SMC_DBW_8 |
|
||||
#endif
|
||||
AT91_SMC_TDF_(1));
|
||||
AT91_SMC_TDF_(2));
|
||||
|
||||
at91_sys_write(AT91_PMC_PCER, 1 << AT91SAM9RL_ID_PIOD);
|
||||
|
||||
|
|
|
@ -60,6 +60,9 @@ int board_early_init_f(void)
|
|||
#if defined(CONFIG_MMC)
|
||||
gpio_enable_mmci();
|
||||
#endif
|
||||
#if defined(CONFIG_ATMEL_SPI)
|
||||
gpio_enable_spi0(1 << 0);
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -89,3 +92,25 @@ void board_init_info(void)
|
|||
gd->bd->bi_phy_id[0] = 0x01;
|
||||
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)
|
||||
|
||||
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);
|
||||
*((unsigned char *)0xFF800000) = 0xF0;
|
||||
udelay (100);
|
||||
printf ("buf [%#010x] %#010x\n", buf, (*buf));
|
||||
printf ("buf [%#010x] %#010x\n", (unsigned)buf, (*buf));
|
||||
/* XXX - fall through??? */
|
||||
case BOOT_WORKING :
|
||||
return BOOT_WORKING;
|
||||
|
@ -273,10 +273,10 @@ void barcobcd_boot (void)
|
|||
/* give length of the kernel image to bootm */
|
||||
sprintf (bootm_args[0],"%x",start->size);
|
||||
/* 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 ("buf address: %#10x\n",buf);
|
||||
printf ("buf address: %#10x\n",(unsigned)buf);
|
||||
|
||||
/* aha, we reserve 8 bytes here... */
|
||||
for (cnt = 0; cnt < start->size ; cnt++) {
|
||||
|
|
|
@ -38,7 +38,7 @@ clean:
|
|||
rm -f $(SOBJS) $(OBJS)
|
||||
|
||||
distclean: clean
|
||||
rm -f $(LIB) core *.bak .depend
|
||||
rm -f $(LIB) core *.bak $(obj).depend
|
||||
|
||||
#########################################################################
|
||||
|
||||
|
|
|
@ -46,7 +46,7 @@ clean:
|
|||
rm -f $(SOBJS) $(OBJS)
|
||||
|
||||
distclean: clean
|
||||
rm -f $(LIB) core *.bak .depend
|
||||
rm -f $(LIB) core *.bak $(obj).depend
|
||||
|
||||
#########################################################################
|
||||
|
||||
|
|
|
@ -46,7 +46,7 @@ clean:
|
|||
rm -f $(SOBJS) $(OBJS)
|
||||
|
||||
distclean: clean
|
||||
rm -f $(LIB) core *.bak .depend
|
||||
rm -f $(LIB) core *.bak $(obj).depend
|
||||
|
||||
#########################################################################
|
||||
|
||||
|
|
|
@ -46,7 +46,7 @@ clean:
|
|||
rm -f $(SOBJS) $(OBJS)
|
||||
|
||||
distclean: clean
|
||||
rm -f $(LIB) core *.bak .depend
|
||||
rm -f $(LIB) core *.bak $(obj).depend
|
||||
|
||||
#########################################################################
|
||||
|
||||
|
|
|
@ -46,7 +46,7 @@ clean:
|
|||
rm -f $(SOBJS) $(OBJS)
|
||||
|
||||
distclean: clean
|
||||
rm -f $(LIB) core *.bak .depend
|
||||
rm -f $(LIB) core *.bak $(obj).depend
|
||||
|
||||
#########################################################################
|
||||
|
||||
|
|
|
@ -42,7 +42,7 @@ clean:
|
|||
rm -f $(SOBJS) $(OBJS)
|
||||
|
||||
distclean: clean
|
||||
rm -f $(LIB) core *.bak .depend
|
||||
rm -f $(LIB) core *.bak $(obj).depend
|
||||
|
||||
#########################################################################
|
||||
|
||||
|
|
|
@ -39,7 +39,7 @@ clean:
|
|||
rm -f $(SOBJS) $(OBJS)
|
||||
|
||||
distclean: clean
|
||||
rm -f $(LIB) core *.bak .depend
|
||||
rm -f $(LIB) core *.bak $(obj).depend
|
||||
|
||||
#########################################################################
|
||||
|
||||
|
|
|
@ -38,7 +38,7 @@ clean:
|
|||
rm -f $(SOBJS) $(OBJS)
|
||||
|
||||
distclean: clean
|
||||
rm -f $(LIB) core *.bak .depend
|
||||
rm -f $(LIB) core *.bak $(obj).depend
|
||||
|
||||
#########################################################################
|
||||
|
||||
|
|
|
@ -38,7 +38,7 @@ clean:
|
|||
rm -f $(SOBJS) $(OBJS)
|
||||
|
||||
distclean: clean
|
||||
rm -f $(LIB) core *.bak .depend
|
||||
rm -f $(LIB) core *.bak $(obj).depend
|
||||
|
||||
#########################################################################
|
||||
|
||||
|
|
|
@ -38,7 +38,7 @@ clean:
|
|||
rm -f $(SOBJS) $(OBJS)
|
||||
|
||||
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);
|
||||
|
||||
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));
|
||||
}
|
||||
}
|
||||
|
|
2
board/cmc_pu2/Makefile
Executable file → Normal file
2
board/cmc_pu2/Makefile
Executable file → Normal file
|
@ -38,7 +38,7 @@ clean:
|
|||
rm -f $(SOBJS) $(OBJS)
|
||||
|
||||
distclean: clean
|
||||
rm -f $(LIB) core *.bak .depend
|
||||
rm -f $(LIB) core *.bak $(obj).depend
|
||||
|
||||
#########################################################################
|
||||
|
||||
|
|
|
@ -38,7 +38,7 @@ clean:
|
|||
rm -f $(SOBJS) $(OBJS)
|
||||
|
||||
distclean: clean
|
||||
rm -f $(LIB) core *.bak .depend
|
||||
rm -f $(LIB) core *.bak $(obj).depend
|
||||
|
||||
#########################################################################
|
||||
|
||||
|
|
|
@ -38,7 +38,7 @@ clean:
|
|||
rm -f $(SOBJS) $(OBJS)
|
||||
|
||||
distclean: clean
|
||||
rm -f $(LIB) core *.bak .depend
|
||||
rm -f $(LIB) core *.bak $(obj).depend
|
||||
|
||||
#########################################################################
|
||||
|
||||
|
|
|
@ -39,7 +39,7 @@ clean:
|
|||
rm -f $(SOBJS) $(OBJS)
|
||||
|
||||
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
|
||||
|
||||
distclean: clean
|
||||
rm -f $(LIB) core *.bak .depend
|
||||
rm -f $(LIB) core *.bak $(obj).depend
|
||||
|
||||
$(obj)$(BOARD).o : $(src)$(BOARD).c $(obj)bootscript.o
|
||||
|
||||
|
|
|
@ -39,7 +39,7 @@ clean:
|
|||
rm -f $(SOBJS) $(OBJS)
|
||||
|
||||
distclean: clean
|
||||
rm -f $(LIB) core *.bak .depend
|
||||
rm -f $(LIB) core *.bak $(obj).depend
|
||||
|
||||
#########################################################################
|
||||
|
||||
|
|
|
@ -42,7 +42,7 @@ clean:
|
|||
rm -f $(SOBJS) $(OBJS)
|
||||
|
||||
distclean: clean
|
||||
rm -f $(LIB) core *.bak .depend
|
||||
rm -f $(LIB) core *.bak $(obj).depend
|
||||
|
||||
#########################################################################
|
||||
|
||||
|
|
|
@ -42,7 +42,7 @@ clean:
|
|||
rm -f $(SOBJS) $(OBJS)
|
||||
|
||||
distclean: clean
|
||||
rm -f $(LIB) core *.bak .depend
|
||||
rm -f $(LIB) core *.bak $(obj).depend
|
||||
|
||||
#########################################################################
|
||||
|
||||
|
|
|
@ -38,7 +38,7 @@ clean:
|
|||
rm -f $(SOBJS) $(OBJS)
|
||||
|
||||
distclean: clean
|
||||
rm -f $(LIB) core *.bak .depend
|
||||
rm -f $(LIB) core *.bak $(obj).depend
|
||||
|
||||
#########################################################################
|
||||
|
||||
|
|
|
@ -43,7 +43,7 @@ clean:
|
|||
rm -f $(SOBJS) $(OBJS)
|
||||
|
||||
distclean: clean
|
||||
rm -f $(LIB) core *.bak .depend
|
||||
rm -f $(LIB) core *.bak $(obj).depend
|
||||
|
||||
#########################################################################
|
||||
|
||||
|
|
|
@ -38,7 +38,7 @@ clean:
|
|||
rm -f $(SOBJS) $(OBJS)
|
||||
|
||||
distclean: clean
|
||||
rm -f $(LIB) core *.bak .depend
|
||||
rm -f $(LIB) core *.bak $(obj).depend
|
||||
|
||||
#########################################################################
|
||||
|
||||
|
|
|
@ -41,7 +41,7 @@ clean:
|
|||
rm -f $(SOBJS) $(OBJS)
|
||||
|
||||
distclean: clean
|
||||
rm -f $(LIB) core *.bak *~ .depend
|
||||
rm -f $(LIB) core *.bak $(obj).depend
|
||||
|
||||
#########################################################################
|
||||
# This is for $(obj).depend target
|
||||
|
|
|
@ -41,7 +41,7 @@ clean:
|
|||
rm -f $(SOBJS) $(OBJS)
|
||||
|
||||
distclean: clean
|
||||
rm -f $(LIB) core *.bak *~ .depend
|
||||
rm -f $(LIB) core *.bak $(obj).depend
|
||||
|
||||
#########################################################################
|
||||
# This is for $(obj).depend target
|
||||
|
|
52
board/davinci/sffsdr/Makefile
Normal file
52
board/davinci/sffsdr/Makefile
Normal file
|
@ -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
|
||||
|
||||
#########################################################################
|
29
board/davinci/sffsdr/board_init.S
Normal file
29
board/davinci/sffsdr/board_init.S
Normal file
|
@ -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
|
23
board/davinci/sffsdr/config.mk
Normal file
23
board/davinci/sffsdr/config.mk
Normal file
|
@ -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
|
310
board/davinci/sffsdr/sffsdr.c
Normal file
310
board/davinci/sffsdr/sffsdr.c
Normal file
|
@ -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);
|
||||
}
|
52
board/davinci/sffsdr/u-boot.lds
Normal file
52
board/davinci/sffsdr/u-boot.lds
Normal file
|
@ -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)
|
||||
|
||||
distclean: clean
|
||||
rm -f $(LIB) core *.bak *~ .depend
|
||||
rm -f $(LIB) core *.bak $(obj).depend
|
||||
|
||||
#########################################################################
|
||||
# This is for $(obj).depend target
|
||||
|
|
|
@ -40,7 +40,7 @@ clean:
|
|||
rm -f $(SOBJS) $(OBJS)
|
||||
|
||||
distclean: clean
|
||||
rm -f $(LIB) core *.bak .depend
|
||||
rm -f $(LIB) core *.bak $(obj).depend
|
||||
|
||||
#########################################################################
|
||||
|
||||
|
|
|
@ -39,7 +39,7 @@ clean:
|
|||
rm -f $(SOBJS) $(OBJS)
|
||||
|
||||
distclean: clean
|
||||
rm -f $(LIB) core *.bak .depend
|
||||
rm -f $(LIB) core *.bak $(obj).depend
|
||||
|
||||
#########################################################################
|
||||
|
||||
|
|
|
@ -40,7 +40,7 @@ clean:
|
|||
rm -f $(SOBJS) $(OBJS)
|
||||
|
||||
distclean: clean
|
||||
rm -f $(LIB) core *.bak .depend
|
||||
rm -f $(LIB) core *.bak $(obj).depend
|
||||
|
||||
#########################################################################
|
||||
|
||||
|
|
|
@ -40,7 +40,7 @@ clean:
|
|||
rm -f $(SOBJS) $(OBJS)
|
||||
|
||||
distclean: clean
|
||||
rm -f $(LIB) core *.bak .depend
|
||||
rm -f $(LIB) core *.bak $(obj).depend
|
||||
|
||||
#########################################################################
|
||||
|
||||
|
|
|
@ -42,7 +42,7 @@ clean:
|
|||
rm -f $(SOBJS) $(OBJS)
|
||||
|
||||
distclean: clean
|
||||
rm -f $(LIB) core *.bak .depend
|
||||
rm -f $(LIB) core *.bak $(obj).depend
|
||||
|
||||
#########################################################################
|
||||
|
||||
|
|
|
@ -43,7 +43,7 @@ clean:
|
|||
rm -f $(SOBJS) $(OBJS)
|
||||
|
||||
distclean: clean
|
||||
rm -f $(LIB) core *.bak .depend
|
||||
rm -f $(LIB) core *.bak $(obj).depend
|
||||
|
||||
#########################################################################
|
||||
|
||||
|
|
|
@ -38,7 +38,7 @@ clean:
|
|||
rm -f $(SOBJS) $(OBJS)
|
||||
|
||||
distclean: clean
|
||||
rm -f $(LIB) core *.bak .depend
|
||||
rm -f $(LIB) core *.bak $(obj).depend
|
||||
|
||||
#########################################################################
|
||||
|
||||
|
|
|
@ -38,7 +38,7 @@ clean:
|
|||
rm -f $(SOBJS) $(OBJS)
|
||||
|
||||
distclean: clean
|
||||
rm -f $(LIB) core *.bak .depend
|
||||
rm -f $(LIB) core *.bak $(obj).depend
|
||||
|
||||
#########################################################################
|
||||
|
||||
|
|
|
@ -37,7 +37,7 @@ clean:
|
|||
rm -f $(OBJS)
|
||||
|
||||
distclean: clean
|
||||
rm -f $(LIB) core *.bak .depend *~
|
||||
rm -f $(LIB) core *.bak $(obj).depend
|
||||
|
||||
#########################################################################
|
||||
|
||||
|
|
|
@ -41,7 +41,7 @@ clean:
|
|||
rm -f $(SOBJS) $(OBJS)
|
||||
|
||||
distclean: clean
|
||||
rm -f $(LIB) core *.bak .depend
|
||||
rm -f $(LIB) core *.bak $(obj).depend
|
||||
|
||||
#########################################################################
|
||||
|
||||
|
|
|
@ -39,7 +39,7 @@ clean:
|
|||
rm -f $(SOBJS) $(OBJS)
|
||||
|
||||
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 a new issue