Compare commits

...

1573 Commits

Author SHA1 Message Date
Wolfgang Denk
180a90abda Release v1.3.3
Update CHANGELOG for release.

Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-05-19 12:47:11 +02:00
Wolfgang Denk
a734c06bf7 Merge branch 'master' of git://www.denx.de/git/u-boot-ppc4xx 2008-05-19 09:42:38 +02:00
Stefan Roese
16bedc661d ppc4xx: Canyonlands: Disable PCIe0/SATA in dev-tree depending on selection
When SATA is selected (via jumper J6) we need to disable the first PCIe
node in the device tree, so that Linux doesn't initialize it. Otherwise
the Linux SATA driver will fail to detect the devices.

The same goes the other way around too. So if PCIe is selected we need
to disable the SATA node in the device tree.

This is because PCIe port 0 and SATA on 460EX share the same pins
(multiplexed) and we have to configure in U-Boot which peripheral is
enabled.

Signed-off-by: Stefan Roese <sr@denx.de>
2008-05-19 07:14:38 +02:00
Jean-Christophe PLAGNIOL-VILLARD
3cc27b426a i386: Fix multiple definitions of __show_boot_progress
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
2008-05-19 00:59:20 +02:00
Jean-Christophe PLAGNIOL-VILLARD
311f344693 sc530_spunk: add missing SOBJS entry
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
2008-05-19 00:57:39 +02:00
Jean-Christophe PLAGNIOL-VILLARD
a559317143 sc520_spunk: Fix flash
flash.c:593: warning: dereferencing type-punned pointer will break strict-aliasing rules
flash.c:398: error: label at end of compound statement

Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
2008-05-19 00:56:49 +02:00
Jean-Christophe PLAGNIOL-VILLARD
91f221317a drivers/pcmcia: add missing i82365
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
2008-05-19 00:40:08 +02:00
Jean-Christophe PLAGNIOL-VILLARD
dd22394413 i386/bootm: remove unused var
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
2008-05-19 00:37:26 +02:00
Jean-Christophe PLAGNIOL-VILLARD
a9da341df1 example/gitignore: update with all generated examples
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
2008-05-19 00:29:35 +02:00
Wolfgang Denk
a38dc3ea86 TQM8272: fix out-of-tree building
...and add to MAKEALL script

Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-05-15 00:42:45 +02:00
Wolfgang Denk
4f805c1e3a environment: fix bug introduced by commit a8409f4f1a
env_get_char is not a function, but a pointer to one.

Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-05-14 23:36:10 +02:00
Wolfgang Denk
35fca4c44d Merge branch 'master' of git://www.denx.de/git/u-boot-ppc4xx 2008-05-14 14:05:49 +02:00
Wolfgang Denk
cda2a4a996 Fix config files for out-of-tree building
Several board/<...>/config.mk files include dynamically built (by
the Makefile) config files but used the wrong file name of
	$(TOPDIR)/board/$(BOARDDIR)/config.tmp
instead if the correct
	$(OBJTREE)/board/$(BOARDDIR)/config.tmp

The bug is nasty because the build result is correct for the (normal)
in-tree builds, and because 'sinclude' is used no errors get raised
even for out-of-tree build tests. But out-of-tree builds use an
incomplete and thus usually incorrect configuration...

Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-05-14 14:02:14 +02:00
Stefan Roese
2dd7082e06 ppc4xx: Fix bogus Canyonlands config.mk
This patch fixes the canyonlands config.mk file to enable correct
out-of-tree builds. Thanks to Wolfgang Denk for spotting this.

Signed-off-by: Stefan Roese <sr@denx.de>
2008-05-14 13:40:03 +02:00
Stefan Roese
fdd1247a66 ppc4xx: Individual handling of ddr2_fixed.c for canyonlands_nand build
Canyonlands has a file ddr2_fixed.c which needs special treatment when
building in separate directory. It has to be linked to build directory
otherwise it is not seen.

Signed-off-by: Stefan Roese <sr@denx.de>
2008-05-14 12:26:16 +02:00
Wolfgang Denk
a8409f4f1a environment: cleanup prototype declarations of env functions.
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-05-14 12:22:49 +02:00
Wolfgang Denk
cf39b07948 linkstation_HGLAN: Fix out of tree building.
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-05-14 12:21:48 +02:00
Stefan Roese
085551c05c ppc4xx: Individual handling of ddr2_fixed.c for canyonlands_nand build
Canyonlands has a file ddr2_fixed.c which needs special treatment when
building in separate directory. It has to be linked to build directory
otherwise it is not seen.

Signed-off-by: Stefan Roese <sr@denx.de>
2008-05-14 10:32:32 +02:00
Wolfgang Denk
1510b82d50 Makefile: fix "error: version_autogenerated.h: No such file or directory"
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-05-13 23:15:52 +02:00
Stefan Roese
70fab1908f ppc4xx: Add 405EX(r) revision C PVR definitions and detection code
Signed-off-by: Stefan Roese <sr@denx.de>
2008-05-13 20:22:01 +02:00
Wolfgang Denk
65dcfa7920 Revert "pci: Add CONFIG_PCI_SKIP_HOST_BRIDGE config option"
This reverts commit 55774b512f
which broke many PowerPC boards.
2008-05-12 01:11:21 +02:00
Wolfgang Denk
5ddd67efa5 Merge branch 'master' of /home/wd/git/u-boot/custodians 2008-05-12 01:02:40 +02:00
Wolfgang Denk
ee0cfa7080 Revert "Avoid initrd and logbuffer area overlaps"
This reverts commit 1b5605ca57
which breaks building on all PPC boards that don't use a log buffer.
2008-05-12 00:56:28 +02:00
Nick Spence
02b9b22446 Fix offset calculation for multi-type legacy images.
Calculation of tail was incorrect when size % 4 == 0.

New code removes the conditional and does the same thing but with arithmetic

Signed-off-by: Nick Spence <nick.spence@freescale.com>
2008-05-12 00:44:24 +02:00
Wolfgang Denk
c9dca3c3f3 Revert "Change env_get_char from a global function ptr to a function."
This reverts commit c0559be371
which is known to break booting from dataflash and NAND.
2008-05-12 00:40:58 +02:00
Jean-Christophe PLAGNIOL-VILLARD
20e5ed1374 API: remove duplicate syscall check
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
2008-05-12 00:23:58 +02:00
Markus Klotzbücher
79dd171268 ppc4xx: Kilauea: Add CONFIG_BOOTP_SUBNETMASK to Kilauea board config
When using dhcp/bootp the "netmask" environment variable is not set
because CONFIG_BOOTP_SUBNETMASK is not defined. But usually this is
desireable, so the following patch adds this this option to the board
config.

Signed-off-by: Markus Klotzbuecher <mk@denx.de>
Signed-off-by: Stefan Roese <sr@denx.de>
2008-05-10 10:37:37 +02:00
Stefan Roese
869d14b4cc ppc4xx: Update Makalu defconfig to use device-tree booting as default
This patch reworks the default environment on Makalu. Now "net_nfs" for
example uses the device-tree style booting formerly know as "net_nfs_fdt".
Also the addresses in RAM were changed because of the new image booting
support, which check for image overwriting. So the addresses needed to
get adjusted.

Signed-off-by: Stefan Roese <sr@denx.de>
2008-05-10 10:30:36 +02:00
Becky Bruce
f3612a7b19 PPC: fix map_physmem build warning
map_physmem currently generates a warning when CONFIG_PHYS_64BIT is
enabled.  This quiets the warning.

Signed-off-by: Becky Bruce <Becky.Bruce@freescale.com>
2008-05-10 01:00:37 +02:00
Becky Bruce
36f32675f4 Update pci code to use phys_addr_t
Physical addrs need to be represented by phys_addr_t, not
unsigned long.  Otherwise, systems that use CONFIG_PHYS_64BIT
are going to fail mightily.

Signed-off-by: Becky Bruce <becky.bruce@freescale.com>
2008-05-10 00:59:57 +02:00
Nick Spence
91a616741f Support legacy multi-type images without FDT section.
This patch enables legacy multi-type images containing only a Linux kernel
and root file system to be loaded, maintaining compatibility with previous
versions of u-boot.

This is required when using old image files such as a Linux 2.4 kernel /
filesystem.

Signed-off-by: Nick Spence <nick.spence@freescale.com>
Acked-by: Bartlomiej Sieka <tur@semihalf.com>
2008-05-10 00:38:55 +02:00
Wolfgang Denk
881031d973 Update CHANGELOG.
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-05-10 00:38:02 +02:00
Wolfgang Denk
e5e9d6c9c0 post/cpu/ppc4xx/Makefile: line length cleanup
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-05-10 00:36:09 +02:00
Wolfgang Denk
cfd60441d8 Merge branch 'master' of git://www.denx.de/git/u-boot-mpc83xx 2008-05-10 00:34:05 +02:00
Stelian Pop
cce9cfdabc Fix @ -> <at> substitution
When applying the AT91CAP9 patches upstream, something transformed
the '@' character into the ' <at> ' sequence.

The patch below restores the original form in all the places where
it has been modified (the AT91CAP9 files, the AT91SAM9260 files which
were copied from AT91CAP9, and a couple of other files where the
' <at> ' sequence was present).

Signed-off-by: Stelian Pop <stelian@popies.net>
2008-05-10 00:30:22 +02:00
Stelian Pop
9606b3c81b Update origin and copyright information in arch-at91sam9 header files
When doing the AT91CAP9/AT91SAM9 port, a number of header files were
copied from the Linux kernel sources. This patch explicitly specifies
this origin for all the copied headers, and for those missing copyright
information, adds it.

Additionaly, the header file 'at91sam926x_mc.h' has been superceeded
in the latest kernel sources by 'at91sam9_smc.h'.

The copyright information has been confirmed by the AT91 Linux kernel
maintainer, Andrew Victor <avictor.za@gmail.com>.

Signed-off-by: Stelian Pop <stelian@popies.net>
2008-05-10 00:28:51 +02:00
Stelian Pop
ceb6b4fbe1 Add copyright information in Atmel boards partition.c
When Ulf did the dataflash.c cleanup, he didn't add his copyright on
the new created files. This patch fixes the problem.

Signed-off-by: Stelian Pop <stelian@popies.net>
2008-05-10 00:24:02 +02:00
Guennadi Liakhovetski
2ab02fd456 mx31ads: fix 32kHz clock handling
According to schematics and to RedBoot sources, the MX31ADS uses a 32768Hz
oscillator as a SKIL source. Fix previously wrongly assumed 32000Hz value.
Also fix a typo when verifying a jumper configuration. While at it, make
two needlessly global functions static.

Signed-off-by: Guennadi Liakhovetski <lg@denx.de>
2008-05-10 00:21:43 +02:00
Wolfgang Denk
f3f3175746 Merge branch 'master' of git://www.denx.de/git/u-boot-mpc85xx 2008-05-10 00:18:22 +02:00
Marian Balakowicz
1b5605ca57 Avoid initrd and logbuffer area overlaps
Add logbuffer to reserved LMB areas to prevent initrd allocation
from overlaping with it.

Make sure to use correct logbuffer base address.

Signed-off-by: Marian Balakowicz <m8@semihalf.com>
2008-05-10 00:16:13 +02:00
Marian Balakowicz
c59518e159 ppc: Cleanup get_effective_memsize() use
Removed duplicated effective memory size calculation code.

Signed-off-by: Marian Balakowicz <m8@semihalf.com>
2008-05-10 00:14:33 +02:00
Marian Balakowicz
273c37d843 Fix build errors when CONFIG_LOGBUFFER and CONFIG_FIT are enabled
Recent modifcations to LOGBUFFER handling code were incorrecly
introduced to fit_check_kernel() routine during
"Merge branch 'new-image' of git://www.denx.de/git/u-boot-testing",
commit 27f33e9f45.

This patch cleans up this merge issue.

Signed-off-by: Marian Balakowicz <m8@semihalf.com>
2008-05-10 00:11:25 +02:00
Grant Erickson
bc11756daf Propagate Error Status to the Shell on fw_printenv Errors
Changed implementation such that fw_printenv returns failure status
when one or more specified variables do not exist or when incorrect
command syntax is used.

This aids scripting fw_printenv such that the script can key of the
return status rather than relying on standard error "scraping".

Signed-off-by: Grant Erickson <gerickson@nuovations.com>
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-05-09 23:40:40 +02:00
Grant Erickson
f3b6d528e4 Fix Compilation Errors with 'tools/env/fw_printenv'
In the current top-of-tree, 1.3.3.-rc2, the optional tool
'tools/env/fw_printenv' fails to compile for two reasons:

1) The header watchdog.h cannot be found.
2) The header zlib.h is picked up from the tool chain rather than the
   project causing a prototype conflict for crc32.

This patch addresses both of these issues.

Platforms Tested On:
- AMCC "Kilauea"

Signed-off-by: Grant Erickson <gerickson@nuovations.com>
2008-05-09 23:04:41 +02:00
Wolfgang Denk
7ea8325b41 Merge branch 'master' of git://www.denx.de/git/u-boot-mips 2008-05-09 22:19:29 +02:00
Wolfgang Denk
4604f552a9 Merge branch 'master' of /home/wd/git/u-boot/master/ 2008-05-09 22:19:16 +02:00
Wolfgang Denk
356cd17cc2 Merge branch 'master' of /home/wd/git/u-boot/master/ 2008-05-09 22:18:58 +02:00
James Yang
597f6c26a1 Fix readline_into_buffer() with CONFIG_CMDLINE_EDITING before relocating
When CONFIG_CMDLINE_EDITING is enabled, readline_into_buffer() doesn't
work before relocating to RAM because command history is written into
a global array that is not writable before relocation.  This patch
defers to the no-editing and no-history code in readline_into_buffer()
if it is called before relocation.

Signed-off-by: James Yang <James.Yang@freescale.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2008-05-09 22:18:15 +02:00
Detlev Zundel
726c0f1e5f cosmetic: Adjust coding style for switch statements to be consistent
Signed-off-by: Detlev Zundel <dzu@denx.de>
2008-05-09 21:26:38 +02:00
Detlev Zundel
574b319512 Fix disk type output in disk/part.c
Signed-off-by: Detlev Zundel <dzu@denx.de>
2008-05-09 21:26:34 +02:00
Vlad Lungu
045b4d2d71 Mail address change, documentation modified
Signed-off-by: Vlad Lungu <vlad.lungu@windrvier.com>
2008-05-09 21:13:26 +02:00
Michal Simek
4d49b28038 microblaze: Repare intc handling
Signed-off-by: Michal Simek <monstr@monstr.eu>
2008-05-09 21:11:02 +02:00
Jean-Christophe PLAGNIOL-VILLARD
878b3b1e19 include/gitignore: update to all architectures
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
2008-05-09 20:59:21 +02:00
Marcel Ziswiler
1df368aed3 ide: Remove spurious second include of io.h
Removed the second include, with all the #ifdef around as suggested by Wolfgang.

Signed-off-by: Marcel Ziswiler <marcel@ziswiler.com>
2008-05-09 20:55:57 +02:00
Adrian Filipi
8fbc985bda Fix some typos
This patch fixes three typos.
The first is a repetition of CONFIG_CMD_BSP.
The second makes the #endif comment match its #if.
The third is a spelling error.

Signed-off-by: Adrian Filipi <adrian.filipi@eurotech.com>
2008-05-09 20:53:52 +02:00
Grant Erickson
e419e12d04 Recognize 'powerpc' As an Alias for IH_ARCH_PPC
Add support for the recognition of 'powerpc' as an alias for the PowerPC
architecture type since Linux is already trending in that direction,
preferring 'powerpc' to 'ppc'.

Signed-off-by: Grant Erickson <gerickson@nuovations.com>
2008-05-09 20:48:16 +02:00
Wheatley Travis
f5a2425919 7450 and 86xx L2 cache invalidate bug corrections
The 7610 and related parts have an L2IP bit in the L2CR that is
monitored to signal when the L2 cache invalidate is complete whereas the
7450 and related parts utilize L2I for this purpose. However, the
current code does not account for this difference. Additionally the 86xx
L2 cache invalidate code used an "andi" instruction where an "andis"
instruction should have been used.

This patch addresses both of these bugs.

Signed-off-by: Travis Wheatley <travis.wheatley@freescale.com>
Acked-By: Jon Loeliger <jdl@freescale.com>
2008-05-09 20:46:48 +02:00
Wolfgang Denk
4d31cdc45d Avoid infinite loop "Generating include/autoconf.mk"
Fix a bogus circular dependency that caused an infinite loop of
"Generating include/autoconf.mk" again and again.

Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-05-09 10:16:13 +02:00
Stefan Roese
ef2642625c ppc4xx: Kilauea: Fix incorrect FPGA FIFO address
Signed-off-by: Stefan Roese <sr@denx.de>
2008-05-08 11:10:46 +02:00
Stefan Roese
a00eccfebc ppc4xx: Add fdt support to all remaining AMCC PPC4xx eval boards
This patch adds fdt (flattened device tree) support to all remaining AMCC
eval boards. Most newer boards already support device tree. With this patch,
all AMCC boards now enable device tree passing from U-Boot to Linux
arch/powerpc kernels.

Signed-off-by: Stefan Roese <sr@denx.de>
2008-05-08 11:05:15 +02:00
Stefan Roese
cb5d88b961 ppc4xx: Add weak default ft_board_setup() routine
This patch adds a default ft_board_setup() routine to the 4xx fdt code.
This routine is defined as weak and can be overwritten by a board specific
one if needed.

Signed-off-by: Stefan Roese <sr@denx.de>
2008-05-08 11:01:09 +02:00
Stefan Roese
d1c1ba85c7 ppc4xx: acadia: Add fdt support and fix section overlap problem
This patch adds fdt (flattened device tree) support to the AMCC
Acadia eval board. This increases the image size and it doesn't
fit anymore into 256kByte. Since we didn't want to remove features
from the configuration, we decided to increase the U-Boot image size
(add one flash sector).

Also changed the default environment definition to make it
independent of such changes.

Signed-off-by: Stefan Roese <sr@denx.de>
2008-05-08 10:48:58 +02:00
Ira Snyder
4adb3023de ppc4xx: Add device tree support to AMCC Yosemite
Add support for booting with a device tree blob. This is needed to boot
ARCH=powerpc kernels. Also add support for setting the eth0 mac address
via the ethaddr variable.

Signed-off-by: Ira W. Snyder <iws@ovro.caltech.edu>
Signed-off-by: Stefan Roese <sr@denx.de>
2008-05-08 07:06:05 +02:00
Dave Mitchell
b9bbefce1a ppc4xx: Fix typos in 460GT/EX FBDV array
Corrected two typos in the 460GT/EX FBDV array.

Signed-off-by: Dave Mitchell <dmitchell@amcc.com>
Signed-off-by: Stefan Roese <sr@denx.de>
2008-05-08 07:01:41 +02:00
Andy Fleming
66f5fa9263 85xx: Limit CPU2 workaround to parts that have the errata
Signed-off-by: Ebony Zhu <ebony.zhu@freescale.com>
Signed-off-by: Andy Fleming <afleming@freescale.com>
2008-05-07 16:54:31 -05:00
Lee Nipper
a5fe514e8a mpc83xx: system performance settings for MPC8349EMDS.
These same settings are used on MPC8349ITX, and
improve performance on MPC8349EMDS.

Signed-off-by: Lee Nipper <lee.nipper@freescale.com>
Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
2008-05-06 13:22:25 -05:00
Shinya Kuribayashi
49387dba91 [MIPS] cpu/mips/cache.S: Fix build warning
Some old GNU assemblers, such as v2.14 (ELDK 3.1.1), v2.16 (ELDK 4.1.0),
warns illegal global symbol references by bal (and jal also) instruction.
This does not happen with the latest binutils v2.18.

Here's an example on gth2_config:

mips_4KC-gcc  -D__ASSEMBLY__ -g  -Os   -D__KERNEL__ -DTEXT_BASE=0x90000000 -I/home/skuribay/devel/u-boot.git/include -fno-builtin -ffreestanding -nostdinc -isy
stem /opt/eldk311/usr/bin/../lib/gcc-lib/mips-linux/3.3.3/include -pipe  -DCONFIG_MIPS -D__MIPS__ -G 0 -mabicalls -fpic -pipe -msoft-float -march=4kc -mtune=4k
c -EB -c -o cache.o cache.S
cache.S: Assembler messages:
cache.S:243: Warning: Pretending global symbol used as branch target is local.
cache.S:250: Warning: Pretending global symbol used as branch target is local.

In principle, gas might be sensitive to global symbol references in PIC
code because they should be processed through GOT (global offset table).
But if `bal' instruction is used, it results in PC-based offset jump.
This is the cause of this warning.

In practice, we know it doesn't matter whether PC-based reference or GOT-
based. As for this case, both will work before/after relocation. But let's
fix the code.

This patch explicitly sets up a target address, then jump there.
Here's an example of disassembled code with/without this patch.

 90000668:       1485ffef        bne     a0,a1,90000628 <mips_cache_reset+0x20>
 9000066c:       ac80fffc        sw      zero,-4(a0)
 90000670:       01402821        move    a1,t2
-90000674:       0411ffba        bal     90000560 <mips_init_icache>
-90000678:       01803021        move    a2,t4
-9000067c:       01602821        move    a1,t3
-90000680:       0411ffcc        bal     900005b4 <mips_init_dcache>
-90000684:       01a03021        move    a2,t5
-90000688:       03000008        jr      t8
-9000068c:       00000000        nop
+90000674:       01803021        move    a2,t4
+90000678:       8f8f83ec        lw      t7,-31764(gp)
+9000067c:       01e0f809        jalr    t7
+90000680:       00000000        nop
+90000684:       01602821        move    a1,t3
+90000688:       01a03021        move    a2,t5
+9000068c:       8f8f81e0        lw      t7,-32288(gp)
+90000690:       01e0f809        jalr    t7
+90000694:       00000000        nop
+90000698:       03000008        jr      t8
+9000069c:       00000000        nop

Signed-off-by: Shinya Kuribayashi <skuribay@ruby.dti.ne.jp>
2008-05-06 13:22:52 +09:00
Wolfgang Denk
908261f3fd Merge branch 'master' of git+ssh://10.10.0.7/home/wd/git/u-boot/master 2008-05-05 13:25:04 +02:00
Vlad Lungu
0f8c62a14b Allow building mips versions with ELDK 3.1.1
.gpword works only with local symbols on certain binutils versions

Signed-off-by: Vlad Lungu <vlad.lungu@windrvier.com>
2008-05-05 13:24:12 +02:00
Wolfgang Denk
12a67a9e51 MAKEALL: add inka4x0 board
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-05-05 12:52:36 +02:00
Wolfgang Denk
b83dcc13ae kb9202 board: fix build problem.
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-05-04 21:34:23 +02:00
Wolfgang Denk
6adf61dc4c Prepare for v1.3.3-rc3
Update ChNAGELOG, minor white space cleanup.

Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-05-04 12:10:33 +02:00
Wolfgang Denk
fb98f94fcb Merge branch 'master' of /home/wd/git/u-boot/master/ 2008-05-04 01:03:30 +02:00
Wolfgang Denk
7c0773fde6 drivers/net/tsec.c: Fix typo.
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-05-04 00:35:15 +02:00
Mike Frysinger
aa737945e6 version_autogenerated.h: use printf rather than echo -n
Some systems are dumb and do not implement the -n flag to echo (like OS X).
Convert the Makefile to use printf as this should work everywhere.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-05-04 00:28:37 +02:00
Mike Frysinger
4acc2a108a fix building when saveenv is disabled in some setups
If you enable environment in the flash, but disable the embedded
option, and you disable the saveenv command, then the #if nested
logic will trigger a compile failure:
env_flash.c: In function 'env_relocate_spec':
env_flash.c:399: error: 'flash_addr' undeclared (first use in this function)
The fix is to add CMD_SAVEENV ifdef protection like everywhere else.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2008-05-04 00:22:45 +02:00
Jeremy McNicoll
ccf1ad535a SBC8548: fix address mask to allow 64M flash
Fix incorrect mask to enable all 64MB of onboard flash.
Previously U-Boot incorrectly mapped only 8MB of flash, this
patch correctly maps all the available flash.

Signed-off-by: Jeremy McNicoll <jeremy.mcnicoll@windriver.com>
2008-05-04 00:18:48 +02:00
Jean-Christophe PLAGNIOL-VILLARD
3648085c46 qemu_mips: add README
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
2008-05-04 00:18:15 +02:00
Wolfgang Denk
4a89b766bf Merge branch 'master' of git://www.denx.de/git/u-boot-mips 2008-05-04 00:02:29 +02:00
Marcel Ziswiler
6fdd002689 Fix misspelled comment
Signed-off-by: Marcel Ziswiler <marcel@ziswiler.com>
2008-05-04 00:01:08 +02:00
Mike Frysinger
fa956fde60 mkimage: make mmap() checks consistent
The mmap() related code is full of inconsistent casts/constants when
it comes to error checking, and may break when building on some
systems (like ones that do not implicitly define the caddr_t type).
Let's just avoid the whole mess by writing the code nice and clean in
the first place.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2008-05-03 23:33:43 +02:00
Marcel Ziswiler
8e90cd0447 Fix defined but not used build warning
- warning: 'srom' defined but not used

Signed-off-by: Marcel Ziswiler <marcel@ziswiler.com>
2008-05-03 23:32:17 +02:00
Marcel Ziswiler
b71190f325 Fix implicit declaration build warnings
- warning: implicit declaration of function ‘serial_initialize’

Signed-off-by: Marcel Ziswiler <marcel@ziswiler.com>
2008-05-03 23:30:21 +02:00
Andre Schwarz
9acde129cc TSEC: add config options for VSC8601 RGMII PHY
The Vitesse VSC8601 RGMII PHY has internal delay for both Rx
and Tx clock lines. They are configured using 2 bits in extended
register 0x17.
Therefore CFG_VSC8601_SKEW_TX and CFG_VSC8601_SKEW_RX have
been introduced with valid values 0-3 giving 0.0, 1.4,1.7 and 2.0ns delay.

Signed-off-by: Andre Schwarz <andre.schwarz@matrix-vision.de>
Acked-by: Andy Fleming <afleming@freescale.com>
Acked-by: Ben Warren <biggerbadderben@gmail.com>
--

 drivers/net/tsec.c |    6 ++++++
 drivers/net/tsec.h |    3 +++
 2 files changed, 9 insertions(+), 0 deletions(-)
2008-05-03 23:27:04 +02:00
Wolfgang Denk
bd98ee60df Revert "ColdFire: Get information from the correct GCC"
This reverts commit b7166e05a5
(replaced by commit c4e5f52a58).
2008-05-03 23:07:15 +02:00
Wolfgang Denk
c4e5f52a58 config.mk: use correct (cross) compiler
Some config.mk files reference $(CC) to test for specific tool chain
features, so make sure $(CC) gets set before including any such
config files.

This patch replaces commit b7166e05a5 ("ColdFire: Get information from
the correct GCC").

Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-05-03 23:06:59 +02:00
Jean-Christophe PLAGNIOL-VILLARD
27c38689d0 pxa: fix previous definition on cpu init
start.S:183:1: warning: "ICMR" redefined
In file included from start.S:33:
include/asm/arch/pxa-regs.h:935:1: warning: this is the location of the previous definition
start.S:187:1: warning: "RCSR" redefined
...

Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
2008-05-03 20:56:22 +02:00
Jean-Christophe PLAGNIOL-VILLARD
6d12e697de pxa: fix pcmcia operation on 'i' may be undefined
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-05-03 20:53:12 +02:00
Kumar Gala
4d77f5102d MPC8610HPCD: Drop -O2 from the build flags
Make the flags use -Os like all other boards

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2008-05-03 20:49:10 +02:00
Wolfgang Denk
56bb37e4b9 Merge branch 'master' of git://www.denx.de/git/u-boot-ppc4xx 2008-05-03 20:46:40 +02:00
Stefan Roese
0072b78be2 RTC: Fix month offset by one problem in M41T62 RTC driver
This patch fixes a problem with the month being read and written
incorrectly (offset by one). This only gets visible by also using
the Linux driver (rtc-m41t80).

Tested on AMCC Canyonlands.

Signed-off-by: Stefan Roese <sr@denx.de>
2008-05-03 20:44:54 +02:00
Shinya Kuribayashi
141ba1cad8 [MIPS] cpu/mips/config.mk: Fix GNU assembler minor version picker
Current trick to pick up GNU assembler minor version uses a dot(.) as a
delimiter, and take the second field to obtain minor version number. But
as can be expected, this doesn't work with a version string which has
dots more than needs.

Here's an example:

$ mips-linux-gnu-as --version | grep 'GNU assembler'
GNU assembler (Sourcery G++ Lite 4.2-129) 2.18.50.20080215
$ mips-linux-gnu-as --version | grep 'GNU assembler' | cut -d. -f2
2-129) 2
$

This patch restricts the version format to 2.XX.XX... This will work
in most cases.

$ mips-linux-gnu-as --version | grep 'GNU assembler' | egrep -o '2\.[0-9\.]+'
2.18.50.20080215
$ mips-linux-gnu-as --version | grep 'GNU assembler' | egrep -o '2\.[0-9\.]+' | cut -d. -f2
18
$

Signed-off-by: Shinya Kuribayashi <skuribay@ruby.dti.ne.jp>
2008-05-03 13:51:44 +09:00
Shinya Kuribayashi
ea638951ac [MIPS] cpu/mips/cache.S: Add dcache_enable
Recent bootelf command fixes (017e9b7925,
"allow ports to override bootelf behavior") requires ports to have this
function.

Signed-off-by: Shinya Kuribayashi <skuribay@ruby.dti.ne.jp>
Acked-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
2008-05-03 13:51:28 +09:00
Wolfgang Denk
50f93d30da Merge branch 'master' of git+ssh://10.10.0.7/home/wd/git/u-boot/master 2008-05-01 21:39:34 +02:00
Wolfgang Denk
d2c6fbec43 onenand: rename 16 bit memory copy into memcpy_16() to avoid conflicts
Onenand needs a version of memcpy() which performs 16 bit accesses
only; make sure the name does not conflict with the standard
function.

Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-05-01 21:30:16 +02:00
Wolfgang Denk
fed4de0135 Merge branch 'master' of git+ssh://10.10.0.7/home/wd/git/u-boot/master 2008-04-30 23:04:51 +02:00
Jean-Christophe PLAGNIOL-VILLARD
12bc4e9425 cmd_nand: fix warning: str2long ncompatible pointer type
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
2008-04-30 22:58:47 +02:00
Timur Tabi
1b9ed2574a Fix calculation of I2C clock for some 86xx chips
Some 86xx chips use CCB as the base clock for the I2C, and others used CCB/2.
There is no pattern that can be used to determine which chips use which
frequency, so the only way to determine is to look up the actual SOC
designation and use the right value for that SOC.

Signed-off-by: Timur Tabi <timur@freescale.com>
2008-04-30 22:52:35 +02:00
TsiChung Liew
f32f7fe7bd ColdFire: Fix ethernet hang issue for mcf547x_8x
The ethernet hang is caused by receiving buffer in DRAM is not
yet ready due to access cycles require longer time in DRAM.
Relocate DMA buffer descriptors from DRAM to internal SRAM.

Signed-off-by: TsiChung Liew <Tsi-Chung.Liew@freescale.com>
2008-04-30 22:38:49 +02:00
TsiChung Liew
886d90176f ColdFire: Fix compilation issue caused by new changes in fsl_i2c.c
Signed-off-by: Luigi Comio Mantellini <luigi.mantellini@idf-hit.com>
Signed-off-by: TsiChung Liew <Tsi-Chung.Liew@freescale.com>
2008-04-30 22:37:36 +02:00
TsiChung Liew
b7166e05a5 ColdFire: Get information from the correct GCC
Signed-off-by: Kurt Mahan <kmahan@freescale.com>
Signed-off-by: TsiChung Liew <Tsi-Chung.Liew@freescale.com>
2008-04-30 22:35:13 +02:00
dirk.behme@googlemail.com
378e7ec95d Fix warning in env_nand.c if compiled for DaVinci Schmoogie
Fix warnings

nv_nand.c: In function 'saveenv':
env_nand.c:200: warning: passing argument 3 of 'nand_write' from incompatible pointer type
env_nand.c: In function 'env_relocate_spec':
env_nand.c:275: warning: passing argument 3 of 'nand_read' from incompatible pointer type

if compiled for davinci_schmoogie_config.

Signed-off-by: Dirk Behme <dirk.behme@gmail.com>
Ack by: Sergey Kubushyn <ksi@koi8.net>
2008-04-30 22:34:42 +02:00
Anatolij Gustschin
33a4a70d48 Fix warnings while compiling net/net.c for MPC8610HPCD board
MPC8610HPCD board adds -O2 gcc option to PLATFORM_CPPFLAGS
causing overriding default -Os option. New gcc (ver. 4.2.2)
produces warnings while compiling net/net.c file with -O2
option. The patch is an attempt to fix this.

Signed-off-by: Anatolij Gustschin <agust@denx.de>
2008-04-30 22:32:07 +02:00
Sascha Laue
58b575e575 lwmon5: fix offset error in sysmon0 POST
Signed-off-by: Sascha Laue <sascha.laue@liebherr.com>
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-04-30 22:25:15 +02:00
Sascha Laue
e7419b243a lwmon5: fix manual merge error in POST
Signed-off-by: Sascha Laue <sascha.laue@liebherr.com>
2008-04-30 21:54:32 +02:00
Wolfgang Denk
42ffcec3f9 cmd_nand.c: fix another 'incompatible pointer type' warning.
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-04-30 17:46:26 +02:00
Wolfgang Denk
de109d9097 Makefile: fix parallel builds
This problem shows up with parallel builds only; it results in
somewhat cryptic error messages like

	$ JOBS=-j6 MAKEALL netstar
	Configuring for netstar board...
	arm-linux-ld: cannot find -lgeneric
	make[1]: *** [eeprom.srec] Error 1

A few boards (like netstar and voiceblue) need some libraries for
building; however, the board Makefile does not contain any such
dependencies which may cause problems with parallel builds. Adding
such dependencies is difficult as we would also have to provide build
rules, which already exist in the respective library Makefiles.

To solve this, we make sure that all libraries get built before the
board code.

Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-04-30 17:25:07 +02:00
Stefan Roese
4f27098e5b ppc4xx: Adapt Canyonlands fixed DDR2 setup to new DIMM module
This patch changes the Canyonlands/Glacier fixed DDR2 controller setup
used for NAND booting to match the values needed for the new 512MB
DIMM modules shipped with the productions boards:

Crucial: CT6464AC667.8FB

Signed-off-by: Stefan Roese <sr@denx.de>
2008-04-30 14:51:36 +02:00
Stefan Roese
ea9202a659 ppc4xx: Fix problem with DIMMs with 8 banks in 44x_spd_ddr2.c
This patch fixes a problem with DIMMs that have 8 banks. Now the
MCIF0_MBxCF register will be setup correctly for this setup too.

This was noticed with the 512MB DIMM on Canyonlands/Glacier.

Signed-off-by: Stefan Roese <sr@denx.de>
2008-04-30 14:50:04 +02:00
Wolfgang Denk
7661729935 Prepare v1.3.3-rc2, again.
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-04-29 23:41:06 +02:00
Wolfgang Denk
ca9351280f Merge branch 'master' of git://www.denx.de/git/u-boot-net 2008-04-29 23:39:42 +02:00
Wolfgang Denk
b7fcc4c139 Prepare v1.3.3-rc2
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-04-29 23:35:24 +02:00
Wolfgang Denk
f7b16a0a4d common/env_nand.c: fix one more incompatible pointer type issue
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-04-29 23:32:20 +02:00
Wolfgang Denk
ea6f66894f post/board/lwmon5/sysmon.c: fix manual merge error.
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-04-29 21:33:08 +02:00
Kumar Gala
70a0f81412 85xx: Add -mno-spe to e500/85xx builds
Newer gcc's might be configured to enable autovectorization by default.
If we happen to build with one of those compilers we will get SPE
instructions in random code.

-mno-spe disables the compiler for automatically generating SPE
instructions without our knowledge.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2008-04-29 20:08:43 +02:00
Wolfgang Denk
8466647684 Merge branch 'master' of git://www.denx.de/git/u-boot-ppc4xx 2008-04-29 20:06:42 +02:00
Wolfgang Denk
3a427fd2ec Merge branch 'master' of git://www.denx.de/git/u-boot-mpc85xx 2008-04-29 20:04:56 +02:00
Kumar Gala
8ea08e5be6 Update .gitignore for zlib.h
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2008-04-29 20:02:51 +02:00
Kumar Gala
45239cf415 85xx/86xx: Rename ext_refrec to timing_cfg_3 to match docs
All the 85xx and 86xx UM describe the register as timing_cfg_3
not as ext_refrec.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2008-04-29 11:44:29 -05:00
Kumar Gala
ef7d30b143 85xx/86xx: Rename DDR init address and init extended address register
Rename init_addr and init_ext_addr to match the docs between
85xx and 86xx.  Both now use 'init_addr' and 'init_ext_addr'.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2008-04-29 11:42:05 -05:00
Kumar Gala
cf6cc01427 85xx: Additional fixes and cleanup of MP code
* adjust __spin_table alignment to match ePAPR v0.94 spec
* loop over all cpus when determing who is up.  This fixes an issue if
  the "boot cpu" isn't core0.  The "boot cpu" will already be in the
  cpu_up_mask so there is no harm
* Added some protection in the code to ensure proper behavior.  These
  changes are explicitly needed but don't hurt:
  - Added eieio to ensure the "hot word" of the table is written after
    all other table updates have occurred.
  - Added isync to ensure we don't prefetch loading of table entries
    until we a released

These issues we raised by Dave Liu.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2008-04-29 09:42:19 -05:00
Wolfgang Denk
fd2d2d1025 Merge branch 'master' of git+ssh://10.10.0.7/home/wd/git/u-boot/master 2008-04-29 16:11:33 +02:00
Yuri Tikhonov
b2d527a8b9 lwmon5: minor clean-up to include/configs/lwmon5.h
LWMON5 DSPIC POST uses the watch-dog scratch register. So, make
the CFG_DSPIC_TEST_ADDR definition more readable.

Signed-off-by: Yuri Tikhonov <yur@emcraft.com>
2008-04-29 16:10:38 +02:00
Stefan Roese
f4c4d21a88 ppc4xx: Fix CFG_MONITOR_LEN on Katmai failsave this time
Signed-off-by: Stefan Roese <sr@denx.de>
2008-04-29 16:08:05 +02:00
Wolfgang Denk
0e715a7a3f Merge branch 'master' of git+ssh://10.10.0.7/home/wd/git/u-boot/master 2008-04-29 14:52:18 +02:00
Yuri Tikhonov
138105efe1 ppc flush_cache: add watch-dog triggering into the loops.
Some boards (e.g. lwmon5) need rather a frequent watch-dog
kicking. Since the time it takes for the flush_cache() function
to complete its job depends on the size of data being flushed, one
may encounter watch-dog resets on such boards when, for example,
download big files over ethernet.

Signed-off-by: Yuri Tikhonov <yur@emcraft.com>
2008-04-29 14:48:50 +02:00
Stefan Roese
cab99d6f32 ppc4xx: Fix compilation warning in denali_spd_ddr2.c
Signed-off-by: Stefan Roese <sr@denx.de>
2008-04-29 14:44:54 +02:00
Stefan Roese
4ec9d78fe5 ppc4xx: Fix Katmai CFG_MONITOR_LEN
Signed-off-by: Stefan Roese <sr@denx.de>
2008-04-29 14:12:07 +02:00
Stefan Roese
85ad184b3b ppc4xx: Complete remove bogus dflush()
Since the current dflush() implementation is know to have some problems
(as seem on lwmon5 ECC init) this patch removes it completely and replaces
it by using clean_dcache_range().

Tested on Katmai with ECC DIMM.

Signed-off-by: Stefan Roese <sr@denx.de>
2008-04-29 13:57:07 +02:00
Stefan Roese
135846d6ec ppc4xx: Change ECC initialization on lwmon5 to use clean_dcache_range()
As it seems the "old" ECC initialization routine by using dflush() didn't
write all lines in the dcache back to memory on lwmon5. This could lead
to ECC error upon Linux booting. This patch changes the program_ecc()
routine to now use clean_dcache_range() instead of dflush().
clean_dcache_range() uses dcbst which is exactly what we want in this
case.

Since dflush() is known is cause problems, this routine will be
removed completely and replaced by clean_dcache_range() with an
additional patch.

Signed-off-by: Stefan Roese <sr@denx.de>
2008-04-29 13:36:51 +02:00
Wolfgang Denk
e037a4c272 Merge branch 'master' of git+ssh://10.10.0.7/home/wd/git/u-boot/master 2008-04-29 13:15:20 +02:00
Yuri Tikhonov
18ec19e4aa POST: fix Makefiles for mpc8xx, lwmon, and netta POSTs.
Signed-off-by: Yuri Tikhonov <yur@emcraft.com>
2008-04-29 13:13:22 +02:00
Markus Brunner
eea5a743a2 ppc4xx: Fixup ebc clock in FDT for 405GP/EP
On ppc405EP and ppc405GP (at least) the ebc is directly attached to the plb
and not to the opb. This patch will try to fixup /plb/ebc if /plb/opb/ebc
doesn't exist.

Signed-off-by: Markus Brunner <super.firetwister@gmail.com>
2008-04-29 07:37:54 +02:00
Jean-Christophe PLAGNIOL-VILLARD
2ef7503a59 NE2000: Fix regresssion introduced by e710185aae on non AX88796
Move non-inlied functions into specific drivers file
Set get_prom as weak

Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Signed-off-by: Vlad Lungu <vlad@comsys.ro>
Signed-off-by: Ben Warren <biggerbadderben@gmail.com>
2008-04-28 22:26:36 -07:00
Guennadi Liakhovetski
40cb90ee2b net: make ARP timeout configurable
Currently the timeout waiting for an ARP reply is hard set to 5 seconds.
On i.MX31ADS due to a hardware "strangeness" up to four first IP packets
to the boards get lost, which typically are ARP replies. By configuring
the timeout to a lower value we significantly improve the first network
transfer time on this board. The timeout is specified in milliseconds,
later internally it is converted to deciseconds, because it has to be
converted to hardware ticks, and CFG_HZ ranges from 900 to 27000000 on
different boards.

Signed-off-by: Guennadi Liakhovetski <lg@denx.de>
Signed-off-by: Ben Warren <biggerbadderben@gmail.com>
2008-04-28 22:23:21 -07:00
Guennadi Liakhovetski
13e0b8f7ca minor cs8900 driver clean up
Remove a redundant register definition, clean up some coding style
violations.

Signed-off-by: Guennadi Liakhovetski <lg@denx.de>
Signed-off-by: Ben Warren <biggerbadderben@gmail.com>
2008-04-28 22:22:34 -07:00
Wolfgang Denk
707fa917cc jffs2_1pass.c: fix incompatible pointer type warning
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-04-28 22:01:04 +02:00
Sascha Laue
6aee00f5e6 lwmon5: update dsPIC POST spezification
The specification for the lwmon5 board dsPIC POST got changed.
Also add defines for the temperatures  and voltages.

Signed-off-by: Sascha Laue <sascha.laue@liebherr.com>
2008-04-28 21:31:41 +02:00
Sascha Laue
3e4615ab7f Fix watchdog POST for lwmon5
If the hardware watchdog detects a voltage error, the watchdog sets
GPIO62 to low. The watchdog POST has to detect this low level.

Signed-off-by: Sascha Laue <leglas0@legpc180.leg.liebherr.i>
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-04-28 21:15:46 +02:00
Guennadi Liakhovetski
dd5748bcd6 rtl8169: fix compiler warnings
Fix multiple compiler warnings related to argument type mismatch.

Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
2008-04-28 20:42:55 +02:00
Guennadi Liakhovetski
413bf58626 IDE: fix compiler warnings
The IDE driver can use 32-bit addresses in LBA mode, in which case it
spits multiple warnings during compilation. Fix them.

Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
2008-04-28 20:42:51 +02:00
Guennadi Liakhovetski
db9084de28 LinkStation: fix compiler warning, add a maintainer
out_8 wants a pointer to an unsigned as the first argument. Add a
maintainer for Linkstation boards.

Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
2008-04-28 20:42:46 +02:00
Wolfgang Denk
c71abba3cb cmd_nand.c: fix "differ in signedness" problem
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-04-28 14:55:12 +02:00
Wolfgang Denk
f2c288a353 pcnet.c: fix a merge issue
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-04-28 12:48:47 +02:00
Wolfgang Denk
4ca79f477e NAND: fix some strict-aliasing compiler warnings
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-04-28 12:08:18 +02:00
Wolfgang Denk
ff8a7aa24a Merge branch 'master' of git+ssh://10.10.0.7/home/wd/git/u-boot/master 2008-04-28 12:07:34 +02:00
Stefan Roese
5cd0130ecc ppc4xx: Fix compile warning of hcu4 board
Signed-off-by: Stefan Roese <sr@denx.de>
2008-04-28 12:07:15 +02:00
Wolfgang Denk
624ce3428a Merge branch 'master' of git+ssh://10.10.0.7/home/wd/git/u-boot/master 2008-04-28 11:34:34 +02:00
Wolfgang Denk
5379cd15dd MPC8323ERDB: fix implicit declaration of function 'mac_read_from_eeprom'
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-04-28 11:31:23 +02:00
Guennadi Liakhovetski
7602ed50a2 mx31ads: fix loadaddr environment variable define
Arithmetic expressions do not get evaluated under stringification. Remove
default network configuration, add DHCP command support. Thanks to Felix
Radensky for reporting.

Signed-off-by: Guennadi Liakhovetski <lg@denx.de>
2008-04-28 11:10:26 +02:00
Wolfgang Denk
144eec777a katmai: fix section overlap problem
Since we didn't want to remove features from the configuration, we
decided to increase the U-Boot image size (add one flash sector).

Also changed the default environment definition to make it
independent of such changes.

Signed-off-by: Wolfgang Denk <wd@denx.de>
Acked-by: Stefan Roese <sr@denx.de>
2008-04-28 11:10:12 +02:00
Wolfgang Denk
941d696d25 katmai: fix section overlap problem
Since we didn't want to remove features from the configuration, we
decided to increase the U-Boot image size (add one flash sector).

Also changed the default environment definition to make it
independent of such changes.

Signed-off-by: Wolfgang Denk <wd@denx.de>
Acked-by: Stefan Roese <sr@denx.de>
2008-04-28 11:00:14 +02:00
Kumar Gala
03c6cd39f9 post: Fix building with O=
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2008-04-28 00:55:04 +02:00
Wolfgang Denk
fd7531c1e9 Prepare v1.3.3-rc1
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-04-26 01:55:00 +02:00
Wolfgang Denk
19cf2ec90d post/Makefile: make sure to use the correct flags
ARFLAGS was not set, which caused "ppc_8xx-ar: creating libgenpost.a"
messages to be printed.

Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-04-26 01:25:39 +02:00
Wolfgang Denk
7ed4011733 Coding Style cleanup, update CHANGELOG
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-04-26 00:34:42 +02:00
Magnus Lilja
f9204e1517 i.MX31: Enable SPI and MC13783/RTC support for the Litekit board
This patch enables SPI and MC13783/RTC support for the Litekit board.

Signed-off-by: Magnus Lilja <lilja.magnus@gmail.com>
2008-04-26 00:26:55 +02:00
Ed Swarthout
f97abbfb47 MPC8544DS: decode pcie3 end-point configuration correctly.
Signed-off-by: Ed Swarthout <Ed.Swarthout@freescale.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2008-04-26 00:25:30 +02:00
Roy Zang
292188e155 MPC8544DS: Removes the unknown flash message information
This patch removes the unknown flash message information:
'## Unknown FLASH on Bank 1 - Size = 0xdeadbeef = -286261248 MB'
This unknown flash message is caused by PromJet.
Some of the board user is unhappy with this information.

Signed-off-by: Roy Zang <tie-fei.zang@freescale.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2008-04-26 00:22:59 +02:00
Wolfgang Denk
57533b881e Merge branch 'master' of git://www.denx.de/git/u-boot-mpc83xx 2008-04-26 00:07:26 +02:00
Wolfgang Denk
fe06d43b50 Merge branch 'master' of git://www.denx.de/git/u-boot-cfi-flash 2008-04-26 00:06:51 +02:00
Wolfgang Denk
1d907e66fd Merge branch 'master' of git://www.denx.de/git/u-boot-ppc4xx 2008-04-26 00:06:13 +02:00
Kim Phillips
b211575740 mpc83xx: bump loadaddr over fdtaddr to 0x500000
this seems as a good compromise between human memory, typing,
and last but not least, to accommodate for current and future kernel bloat.

Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
Acked-by: Dave Liu <daveliu@freescale.com>
2008-04-25 10:54:06 -05:00
Dave Liu
be5a719026 mpc83xx: clean up the readme for 83xx boards
1. correct the typo
2. correct the memory map for 837xerdb board

Signed-off-by: Dave Liu <daveliu@freescale.com>
2008-04-25 09:34:22 -05:00
Dave Liu
bcae52a681 mpc83xx: remove the unused CPM's stuff
The MPC83xx family never have CPM block, so remove it from 83xx.

Signed-off-by: Dave Liu <daveliu@freescale.com>
2008-04-25 09:34:21 -05:00
Matthias Fuchs
c63ad6325a cfi-flash: Add CFG_FLASH_AUTOPROTECT_LIST
This patch adds a configurable flash auto protection list that can be used
to make U-Boot protect flash regions in flash_init().

The idea has been discussed on the u-boot mailing list starting
on Nov 18th, 2007.

Even this patch brings a new feature it is used as a bugfix for 4xx
platforms where flash_init() does not completely protect the
monitor's flash range in all situations.

U-Boot protects the flash range from CFG_MONITOR_BASE to
(CFG_MONITOR_BASE + monitor_flash_len  - 1) by default. This does not
include the reset vector at 0xfffffffc.

Example:
#define CFG_FLASH_AUTOPROTECT_LIST {{0xfff80000, 0x80000}}

This config option will auto protect the last 512k of flash that
contains the bootloader on board like APC405 and PMC405.

Signed-off-by: Matthias Fuchs <matthias.fuchs@esd-electronics.com>
2008-04-25 15:52:14 +02:00
Stefan Roese
d0d91ae3ac ppc4xx: Remove double defines in lwmon5.h
introduced with latest lwmon5/POST merge

Signed-off-by: Stefan Roese <sr@denx.de>
2008-04-25 14:06:15 +02:00
Bartlomiej Sieka
7590378fb9 Use watchdog-aware functions when calculating hashes of images - take two
Some files didn't get updated properly with the "Use watchdog-aware
functions when calculating hashes of images" commit, this commit
fixes this.

Signed-off-by: Bartlomiej Sieka <tur@semihalf.com>
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-04-25 14:05:21 +02:00
Matthias Fuchs
8e048c438e ppc4xx: Add bootcount limit handling for APC405 boards
Signed-off-by: Matthias Fuchs <matthias.fuchs@esd-electronics.com>
2008-04-25 13:37:14 +02:00
Bartlomiej Sieka
1de6b28be5 Use watchdog-aware functions when calculating hashes of images
Signed-off-by: Bartlomiej Sieka <tur@semihalf.com>
2008-04-25 13:10:29 +02:00
Wolfgang Denk
d00ce09040 USB: fix more GCC 4.2.x aliasing warnings
Signed-off-by: Wolfgang Denk <wd@denx.de>
Acked-by: Markus Klotzbuecher <mk@denx.de>
2008-04-25 12:44:08 +02:00
Wolfgang Denk
aff4f86448 lib_generic/crc32.c: add missing #include <watchdog.h>
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-04-25 12:41:53 +02:00
Wolfgang Denk
03ccdbcd56 lib_generic/crc32.c: fix compile problem
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-04-25 11:52:21 +02:00
Stefan Roese
24bfedbd0b ppc4xx: Pass PCIe root-complex/endpoint configuration to Linux via the fdt
The PCIe root-complex/endpoint setup as configured via the "pcie_mode"
environment variable will now get passed to the Linux kernel by setting
the device_type property of the PCIe device tree node. For normal root-
complex configuration it will keep its defaults value of "pci" and for
endpoint configuration it will get changed to "pci-endpoint".

Signed-off-by: Stefan Roese <sr@denx.de>
2008-04-25 11:44:47 +02:00
Yuri Tikhonov
eb0615bf60 lwmon5: watchdog POST fix
Use the GPT0_MASKx registers as the temporary storage for watch-dog
timer POST test instead of GPT0_COMPx. The latter
(GPT0_COMP1..GPT0_COMP5) are used for the log-buffer header.

Signed-off-by: Sergei Poselenov <sposelenov@emcraft.com>
Signed-off-by: Yuri Tikhonov <yur@emcraft.com>
2008-04-25 11:35:32 +02:00
Wolfgang Denk
4b7a6dd896 Merge branch 'master' of /home/wd/git/u-boot/lwmon5
Conflicts:

	common/cmd_bootm.c
	common/cmd_log.c
	include/common.h
	post/board/lwmon5/Makefile
	post/board/lwmon5/dsp.c
	post/board/lwmon5/dspic.c
	post/board/lwmon5/fpga.c
	post/board/lwmon5/gdc.c
	post/board/lwmon5/sysmon.c
	post/board/lwmon5/watchdog.c

Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-04-25 11:32:01 +02:00
Wolfgang Denk
926662762e Merge branch 'master' of git://www.denx.de/git/u-boot-nand-flash 2008-04-25 11:10:17 +02:00
Wolfgang Denk
04a5b03d86 Merge branch 'master' of git://www.denx.de/git/u-boot-at91 2008-04-25 10:05:42 +02:00
Kim Phillips
78e4882988 lib_ppc: Revert "Make MPC83xx one step closer to full relocation."
This reverts commit 70431e8a73 which has
proven problematic getting right from the start at least on 83xx and
4xx.

Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
2008-04-25 00:13:12 +02:00
Detlev Zundel
a99715b8eb Realining some header definitions.
Signed-off-by: Detlev Zundel <dzu@denx.de>
2008-04-25 00:09:53 +02:00
Jean-Christophe PLAGNIOL-VILLARD
4acbc6c7f9 NE2000: coding style cleanup
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
2008-04-25 00:08:32 +02:00
Jean-Christophe PLAGNIOL-VILLARD
b4aff1ffaf qemu-mips.h: Add CFI support
CONFIG_ENV_OVERWRITE is also added.

This patch is originally created by Jean-Christophe PLAGNIOL-VILLARD.

Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Signed-off-by: Shinya Kuribayashi <skuribay@ruby.dti.ne.jp>
2008-04-25 00:05:09 +02:00
Shinya Kuribayashi
4a1f11b45a doc/README.mips: Add MIPS notes
Signed-off-by: Shinya Kuribayashi <skuribay@ruby.dti.ne.jp>
2008-04-25 00:03:53 +02:00
Bartlomiej Sieka
215b01bba8 Add support for calculating hashes with watchdog triggering
Implement watchodg-aware variants of hash calculation functions:
- crc32_wd()
- md5_wd()
- sha1_csum_wd()
The above functions calculate the hash of the input buffer in chunks,
triggering the watchdog after processing each chunk. The chunk size
is given as a function call parameter.

Signed-off-by: Bartlomiej Sieka <tur@semihalf.com>
2008-04-25 00:01:06 +02:00
Shinya Kuribayashi
8875e3abab qemu-mips: Cleanup whitespace, indentation, etc.
No functional change.

This patch was originally submitted by Jean-Christophe PLAGNIOL-VILLARD.
Then I re-created from scratch, and changed more lines than the original.

Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Signed-off-by: Shinya Kuribayashi <skuribay@ruby.dti.ne.jp>
2008-04-24 23:54:06 +02:00
Vlad Lungu
386563197e Fixed pcnet io_base
Bus and phys address are not always the same

Signed-off-by: Vlad Lungu <vlad@comsys.ro>
2008-04-24 23:49:00 +02:00
Wolfgang Denk
11ea26fd1c drivers/net/pcnet.c: Coding Style cleanup.
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-04-24 23:44:26 +02:00
Vlad Lungu
899ef7b845 Added Am79C970A chip id to pcnet
Signed-off-by: Vlad Lungu <vlad@comsys.ro>
2008-04-24 23:43:10 +02:00
Magnus Lilja
17c9de6bb3 i.MX31: Fix architecture numbers for ADS and Litekit boards
Correct the Linux architecture number for i.MX31 Litekit and ADS boards.

Signed-off-by: Magnus Lilja <lilja.magnus@gmail.com>
2008-04-24 23:37:57 +02:00
Magnus Lilja
e7ae84d6c7 i.MX31: Use symbolic names for Litekit membases.
Use symbolic names instead of hard coded addresses for Litekit membases.

Signed-off-by: Magnus Lilja <lilja.magnus@gmail.com>
2008-04-24 23:35:23 +02:00
Jean-Christophe PLAGNIOL-VILLARD
2ef1d9b603 Fix show_boot_progress prototype
in commit fad634071 "make show_boot_progress () weak."
show_boot_progress is supposed to be declared as weak but declared as
inline instead.

Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
2008-04-24 23:22:52 +02:00
Bartlomiej Sieka
edbed247a1 Memory footprint optimizations
As suggested by Wolfgang Denk:
- image printing functions:
  - remove wrappers
  - remove indentation prefix from functions' signatures
- merge getenv_verify and getenv_autostart into one parametrized function

Signed-off-by: Bartlomiej Sieka <tur@semihalf.com>
2008-04-24 17:21:55 +02:00
Guennadi Liakhovetski
0a0b606faa MX31ADS environment variable update, spi and rtc support
Update MX31ADS default environment to better match the flash layout and
the memory map, support SPI and RTC.

Signed-off-by: Guennadi Liakhovetski <lg@denx.de>
2008-04-24 17:06:39 +02:00
Kumar Gala
022f121635 85xx: Round up frequency calculations to get reasonable output
eg. because of rounding error we can get 799Mhz instead of 800Mhz.

Introduced DIV_ROUND_UP and roundup taken from linux kernel.

Signed-off-by: Dejan Minic <minic@freescale.com>
Signed-off-by: Srikanth Srinivasan <srikanth.srinivasan@freescale.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Acked-by: Andy Fleming <afleming@freescale.com>
2008-04-24 15:42:35 +02:00
Wolfgang Denk
0aa88c8266 Merge branch 'master' of git://www.denx.de/git/u-boot-mpc85xx 2008-04-24 15:28:05 +02:00
Kumar Gala
876b8f9789 fsl_pci: Only modify registers if we have them
pme_msg_det exists only on PCIe controllers only set it if we are a "bridge".

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2008-04-24 14:20:12 +02:00
Wolfgang Denk
be32bf20bc Merge branch 'master' of git://www.denx.de/git/u-boot-video 2008-04-24 14:00:54 +02:00
Markus Klotzbücher
83fe323343 USB: remove a cpu bug workaround for an unsupported architecture.
Signed-off-by: Markus Klotzbuecher <mk@denx.de>
2008-04-24 13:34:35 +02:00
Markus Klotzbücher
f957576cb5 USB: fix those pesky aliasing warnings issued by gcc-4.2
Signed-off-by: Markus Klotzbuecher <mk@denx.de>
Signed-off-by: Detlev Zundel <dzu@denx.de>
2008-04-24 13:30:56 +02:00
Mike Frysinger
89cdab788f crc32: use uint32_t rather than unsigned long
The envcrc.c does sizeof(unsigned long) when calculating the crc, but
this is done with the build toolchain instead of the target tool
chain, so if the build is a 64bit system but the target is 32bits,
the size will obviously be wrong. This converts all unsigned long
stuff related to crc32 to uint32_t types. Compile tested only: output
of ./tools/envcrc when run on a 32bit build system matches that of a
64bit build system.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Acked-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
2008-04-24 13:18:17 +02:00
Dirk Behme
80c40b765b ARM: Davinci: Fix DM644x timer overflow handling and cleanup
Fix ARM based DaVinci DM644x timer overflow handling and cleanup timer code.

Changes:

- Remove *_masked() functions as noted by Wolfgang

- Adapt register naming to recent TI spec (sprue26, March 2007)

- Fix reset_timer() handling

- As reported by Pieter [1] the overflow fix introduced a delay of factor 16 (e.g 2 seconds became 32). While the overflow fix is basically okay, it missed to divide udelay by 16, too. Fix this.

[1] http://article.gmane.org/gmane.comp.boot-loaders.u-boot/38179

- Remove software division of timer count value (DIV(x) macro) and do it in hardware (TIM_CLK_DIV).

Many thanks to Troy Kisky <troy.kisky@boundarydevices.com> and Pieter Voorthuijsen <pieter.voorthuijsen@Prodrive.nl> for the hints & testing!

Patch is compile tested with davinci_dvevm & sonata & schmoogie configuration and tested by Pieter on DaVinci EVM hardware.

Signed-off-by: Dirk Behme <dirk.behme@gmail.com>
Acked-by: Pieter Voorthuijsen <pieter.voorthuijsen@Prodrive.nl>
2008-04-22 23:12:01 +02:00
Wolfgang Denk
58c5376ba6 Merge branch 'master' of git://www.denx.de/git/u-boot-ppc4xx 2008-04-22 17:21:24 +02:00
Sergei Poselenov
a6e6fc610e Added watchdog triggering calls in the "mtest" test function.
Signed-off-by: Sergei Poselenov <sposelenov@emcraft.com>
2008-04-22 15:21:37 +02:00
Yuri Tikhonov
d32a874b9b lwmon5 watchdog: limit trigger rate
Limit the rate of h/w watch-dog triggering on the LWMON5 board by
the CONFIG_WD_MAX_RATE value.

Note that an earlier version of this patch which used microseconds
instead of ticks dis not work. The problem was that we used
usec2ticks() to convert microseconds into ticks. usec2ticks() uses
get_tbclk(), which in turn calls get_sys_info(). It turns out that
this function does a lot of prolonged operations (like divisions)
which take too much time so we do not trigger the watchdog in time,
and it resets the system.

Signed-off-by: Yuri Tikhonov <yur@emcraft.com>
2008-04-22 15:21:15 +02:00
Yuri Tikhonov
2d2b994a30 POST: move CONFIG_POST to Makefiles
Introduce the new logical option CONFIG_HAS_POST which is set when the
platform has CONFIG_POST set. Use CONFIG_HAS_POST in the post/ Makefiles
to determine should the POST libs be compiled for the selected target
platform, or not.

To avoid breaking u-boot linking process, the empty post/libpost.a file is
created for platforms which do not have POSTs.

Signed-off-by: Yuri Tikhonov <yur@emcraft.com>
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-04-22 14:40:19 +02:00
Yuri Tikhonov
0a51e9248e POST: preparations for moving CONFIG_POST to Makefiles
Remove CONFIG_POST ifdefs from the post/ source files.

Signed-off-by: Yuri Tikhonov <yur@emcraft.com>
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-04-22 14:38:38 +02:00
Stefan Roese
5d40d4430d ppc4xx: Fix Canyonlands and Glacier default environment for fdt usage
This patch fixes the Canyonlands and Glacier default environment to better
fit to the arch/powerpc device-tree kernels. The variables dealing with
arch/ppc booting are removed, since these boards are supported only in
arch/powerpc. Glacier uses the same config file as Canyonlands.

Also, the Glacier now uses non-FPU rootpath, since 460GT has no FPU.

Signed-off-by: Stefan Roese <sr@denx.de>
2008-04-22 14:14:20 +02:00
Stefan Roese
b789cb4a4c ppc4xx: Small coding style cleanup for the latest esd patches
Signed-off-by: Stefan Roese <sr@denx.de>
2008-04-22 14:06:42 +02:00
Matthias Fuchs
79941d63bc ppc4xx: Update CPU strapping for PMC440 boards
This patch removes the temporary 'test' strapping option
of the sbe command. The '667' strapping option now uses
a PLB/PCI divider of 3.

Signed-off-by: Matthias Fuchs <matthias.fuchs@esd-electronics.com>
2008-04-22 13:48:54 +02:00
Matthias Fuchs
f00cf3193a ppc4xx: Remove unused APC405 strataflash driver
The APC405 board support has been migrated to use the common
CFI flash driver.

Signed-off-by: Matthias Fuchs <matthias.fuchs@esd-electronics.com>
2008-04-22 13:48:32 +02:00
Matthias Fuchs
1c686676a8 ppc4xx: Update APC405 configuration
- enable esd's auto_update mechanism
- support alternative flash layout on rev. 1.8 boards
- update default environment
- use common CFI flash driver
- coding style cleanup

Signed-off-by: Matthias Fuchs <matthias.fuchs@esd-electronics.com>
2008-04-22 13:48:20 +02:00
Matthias Fuchs
0b9872515a ppc4xx: Update APC405 board support
- enable esd's auto_update mechanism
- fix LCD support on latest hardware revision (uses other LCD controller)
- support alternative flash layout on rev. 1.8 boards
- coding style cleanup

Signed-off-by: Matthias Fuchs <matthias.fuchs@esd-electronics.com>
2008-04-22 13:48:04 +02:00
Matthias Fuchs
83975d02e2 ppc4xx: update esd's common auto_update code for 405 boards
- Coding style cleanup (long lines)
- improve handling of protected flash regions
- remove dead code

Signed-off-by: Matthias Fuchs <matthias.fuchs@esd-electronics.com>
2008-04-22 13:47:49 +02:00
Matthias Fuchs
b9233fe5d5 ppc4xx: Update esd's common LCD code for 405 boards
- Coding style cleanup (long lines)
- Add s1d13505 support
- Make some functions return a result code instead of void

Signed-off-by: Matthias Fuchs <matthias.fuchs@esd-electronics.com>
2008-04-22 13:47:37 +02:00
Matthias Fuchs
dea6818942 ppc4xx: Update FPGA image for APC405 boards
Signed-off-by: Matthias Fuchs <matthias.fuchs@esd-electronics.com>
2008-04-22 13:45:51 +02:00
Matthias Fuchs
2a05b15292 ppc4xx: Update bootlogo for APC405 boards
Signed-off-by: Matthias Fuchs <matthias.fuchs@esd-electronics.com>
2008-04-22 13:45:36 +02:00
Stefan Roese
8deafdc6ad ppc4xx: Add dcache_enable() for 440
dcache_enable() was missing for 440 and the patch
017e9b7925 ["allow ports to override bootelf
"] behavior uses this function.

Note: Currently the cache handling functions like
d/icache_disable/enable() are NOP's on 440. This may be changed in the
future.

Signed-off-by: Stefan Roese <sr@denx.de>
2008-04-22 12:26:33 +02:00
Matthias Fuchs
a49e0d177a video: Add missing free for logo memory
This patch adds two missing free()s.

Signed-off-by: Matthias Fuchs <matthias.fuchs@esd-electronics.com>
2008-04-21 14:05:59 +02:00
Troy Kisky
84c01d3a05 PATCH - Fix oob data copied into supplied buffer
This patch correctly sets the oobavail variable
and fixes a bug where the oob data was not valid when
there where multiple groups in oobfree.

First segment fixes a typo
Second segment fixes a bug where oob data may be copied incorrectly.
Third segment adds an error message when exiting due to write protect.
Forth segment fixes a bug where oobavail may be set incorrectly.

Signed-off-by: Troy Kisky <troy.kisky@boundarydevices.com>
2008-04-21 08:43:46 +02:00
Matthias Fuchs
e1d09680f6 ppc4xx: Fix sys_get_info() for 405GP(r)
This patch assigns the correct EBC clock for 405GP(r) CPUs
to PPC4xx_SYS_INFO structure. Without this patch U-Boot
uses an uninitialized EBC clock in its startup message.

Signed-off-by: Matthias Fuchs <matthias.fuchs@esd-electronics.com>
2008-04-21 06:54:08 +02:00
Wolfgang Denk
dc7746d86d Makefile: remove nand_spl/System.map when cleaning up. 2008-04-20 15:39:38 -07:00
Wolfgang Denk
d9a42c0ace MAKEALL: sort entries / lists.
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-04-20 15:35:52 -07:00
Kumar Gala
0878af169b 85xx: Fix size of cpu-release-addr property
The cpu-release-addr is defined as always being a 64-bit quanity regardless
if we are running on a 32-bit or 64-bit machine.
2008-04-18 17:44:50 -05:00
Timur Tabi
88353a9851 Fix calculation of I2C clock for some 85xx chips
Some 85xx chips use CCB as the base clock for the I2C.  Some use CCB/2, and
some use CCB/3.  There is no pattern that can be used to determine which
chips use which frequency, so the only way to determine is to look up the
actual SOC designation and use the right value for that SOC.

Update immap_85xx.h to include the GUTS PORDEVSR2 register.

Signed-off-by: Timur Tabi <timur@freescale.com>
2008-04-18 17:43:09 -05:00
Wolfgang Denk
1e01477aea Fix build breakage casued by commit c0559be371
Change env_get_char from a global function ptr to a function.

Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-04-18 11:44:27 -07:00
Wolfgang Denk
268a804d7e Coding Style cleanup, update CHANGELOG.
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-04-18 10:53:41 -07:00
Mike Frysinger
92bad20ad7 Add support for u-boot in svn and localversion-* files
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2008-04-18 10:08:31 -07:00
Guennadi Liakhovetski
d23ff6827d MX31ADS network and flash updates
This patch allows U-Boot to use buffered writes to the Spansion NOR
flash installed on this board, and eliminates long delays in network
transfers after the board startup.

Also modify flash layout to embed main and redundant environment
blocks in the U-Boot image.

Signed-off-by: Guennadi Liakhovetski <lg@denx.de>
2008-04-18 10:06:50 -07:00
Guennadi Liakhovetski
b5dc9b304d Support for the MX31ADS evaluation board from Freescale
This patch adds support for the MX31ADS evaluation board from Freescale,
initialization code is copied from RedBoot sources, also provided by
Freescale.

Signed-off-by: Guennadi Liakhovetski <lg@denx.de>
2008-04-18 10:05:14 -07:00
Stefan Roese
499e7831e1 ppc4xx: Change Canyonlands to support booting from 2k page NAND devices
Signed-off-by: Stefan Roese <sr@denx.de>
2008-04-18 16:30:49 +02:00
Stefan Roese
5e182dce04 ppc4xx: Adjust Canyonlands fixed DDR2 setup (NAND booting) to 512MB SODIMM
Signed-off-by: Stefan Roese <sr@denx.de>
2008-04-18 16:30:39 +02:00
Stefan Roese
fe7c0db6b2 ppc4xx: Add Glacier NAND booting target
Signed-off-by: Stefan Roese <sr@denx.de>
2008-04-18 16:30:34 +02:00
Stefan Roese
46f373838e nand_spl: Update nand_spl to support 2k page size NAND devices
This patch adds support for booting from 2k page sized NAND device
(e.g. Micron 29F2G08AAC).

Tested on AMCC Canyonlands.

Signed-off-by: Stefan Roese <sr@denx.de>
2008-04-18 16:12:46 +02:00
Anatolij Gustschin
5e3dca577b Fix crash on sequoia in ppc_4xx_eth_init
Currently U-Boot crashes in ppc_4xx_eth_init on sequoia
with cache enabled (TLB Parity exeption). This patch
fixes the problem.

Signed-off-by: Anatolij Gustschin <agust@denx.de>
2008-04-18 00:48:27 -07:00
Anatolij Gustschin
accf735576 ppc4xx: Fix crash on sequoia with cache enabled
Currently U-Boot crashes on sequoia board in CPU POST if
cache is enabled (CONFIG_4xx_DCACHE defined). The cache
won't be disabled by change_tlb before CPU POST because
there is an insufficient adress range check since
CFG_MEM_TOP_HIDE was introduced. This patch tries to fix
this problem.

Signed-off-by: Anatolij Gustschin <agust@denx.de>
2008-04-18 00:48:02 -07:00
Shinya Kuribayashi
43c509254f Use jr as register jump instruction
Current assembler codes are inconsistent in the way of register jump
instruction usage; some use jr, some use j. Of course GNU as allows both
usages, but as can be expected from `Jump Register' the mnemonic `jr' is
more intuitive than `j'. For example, Linux doesn't have `j <reg>' usage
at all.

Signed-off-by: Shinya Kuribayashi <skuribay@ruby.dti.ne.jp>
2008-04-18 00:47:29 -07:00
Guennadi Liakhovetski
7ce6370982 RTC driver for MC13783
MC13783 is a multifunction IS with an SPI interface to the host. This
driver handles the RTC controller in this chip.

Signed-off-by: Guennadi Liakhovetski <lg@denx.de>
2008-04-18 00:43:50 -07:00
Guennadi Liakhovetski
38254f45b0 New i.MX31 SPI driver
This is an SPI driver for i.MX and MXC based SoCs from Freescale. So far
only implemented and tested on i.MX31, can with a modified register layout
and definitions be used for i.MX27, I think, MXC CPUs have similar SPI
controllers too.

Signed-off-by: Guennadi Liakhovetski <lg@denx.de>
2008-04-18 00:43:23 -07:00
Wolfgang Denk
248b7d984c Merge branch 'master' of git://www.denx.de/git/u-boot-net 2008-04-18 00:40:06 -07:00
Magnus Lilja
7064122c2e Fix name of i.MX31 boards in config file header
Correct the name of the i.MX31 Litekit and phyCORE boards in config files.

Signed-off-by: Magnus Lilja <lilja.magnus@gmail.com>
2008-04-18 00:33:10 -07:00
Mike Frysinger
a49864593e allow ports to override go behavior
Split the arch-specific logic out of the common go code and into a dedicated
weak function called do_go_exec() that lives in cpu directories.  This will
need review from i386/nios people to make sure I didn't break them.
2008-04-18 00:31:41 -07:00
Mike Frysinger
017e9b7925 allow ports to override bootelf behavior
Change the bootelf setup function into a dedicated weak function called
do_bootelf_exec.  This way ports can control the behavior however they
like before/after calling the ELF entry point.
2008-04-18 00:30:42 -07:00
Ulf Samuelsson
a4b46ed6b3 Reorder ARM boards in Makefile
Rearrange ARM boards in Makefile so that ARM926EJ-S boards
are no longer under ARM92xT header.

Signed-off-by: Ulf Samuelsson <ulf@atmel.com>
Ack-By Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
2008-04-18 00:25:47 -07:00
Ulf Samuelsson
c3a60cb3bd Clean up dataflash partitioning
This patch removes the board dependent parts from
"drivers/mtd/dataflash.c".
Each board relying on this, will have the appropriate
code in a new file, "partition.c" in the board directory.
board Makefiles updated to use the file.

The dataflash partitions are aligned on sector/page boundaries.

The CONFIG_NEW_DF_PARTITION was used to create named partitions
This is now the default operation, and the CONFIG variable is removed.

Signed-off-by: Ulf Samuelsson <ulf@atmel.com>
2008-04-18 00:24:05 -07:00
Jean-Christophe PLAGNIOL-VILLARD
51ecde946f gitignore: udpate stgit generated and .patch file
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
2008-04-18 00:22:08 -07:00
Wolfgang Denk
66e39818e9 Get rid of redundant copy of renamed header file.
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-04-18 00:15:36 -07:00
Vlad Lungu
c3aafd8cf8 Fix dependency generation for older gcc versions
With gcc 3.3.3 at least, compilation fails with

Generating include/autoconf.mk
gcc: compilation of header file requested
make: *** [include/autoconf.mk] Error 1

since commit 16fe77752e.

Signed-off-by: Vlad Lungu <vlad@comsys.ro>
2008-04-18 00:06:41 -07:00
Marian Balakowicz
cb1c489690 Restore the ability to continue booting after legacy image overwrite
Before new uImage code was merged, bootm code allowed for the kernel image to
get overwritten during decompresion. new uImage introduced a check for image
overwrites and refused to boot the image that got overwritten. This patch
restores the old behavior. It also adds a warning when the image overwriten is
a multi-image file, because in such case accessing componentes other than the
first one will fail.

Signed-off-by: Marian Balakowicz <m8@semihalf.com>
2008-04-17 23:59:05 -07:00
Marian Balakowicz
de2b3216e6 ppc: Fix ftd_blob variable init when processing raw blob
Set fdt_blob variable before its value is printed out.

Signed-off-by: Marian Balakowicz <m8@semihalf.com>
2008-04-17 23:58:22 -07:00
Jason Wessel
3d36be0300 Remove all the search paths from the .lds files.
The cross compiler is responsible for providing the correct libraries
and the logic to find the linking libraries.

Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
2008-04-17 23:57:32 -07:00
Bartlomiej Sieka
7d721e34ae Boot-related documentation update
- document 'bootm_low' and 'bootm_size' environment variables
- update inaccurate CFG_BOOTMAPSZ entry

Signed-off-by: Bartlomiej Sieka <tur@semihalf.com>
2008-04-17 23:35:23 -07:00
Guennadi Liakhovetski
a6f0bd9f2b Fix regression introduced by a typo in "Tidied other cpu/arm920t/start.S code"
Restore logic reverted by commit

commit 80767a6cea
Author: Peter Pearse <peter.pearse@arm.com>
Date:   Wed Sep 5 16:04:41 2007 +0100

    Changed API name to coloured_led.h
    Removed code using deprecated ifdef CONFIG_BOOTBINFUNC
    Tidied other cpu/arm920t/start.S code

Signed-off-by: Guennadi Liakhovetski <lg@denx.de>
2008-04-17 23:33:20 -07:00
Mike Frysinger
e25cb8d3f4 Remove conflicting NAND ID
There are two NAND entries with ID 0xDC and this obviously causes problems.
In the kernel, they punted the first entry, so we should do the same.

See this upstream e-mail for more info:
http://lists.infradead.org/pipermail/linux-mtd/2007-July/018795.html

Signed-off-by: Michael Hennerich <michael.hennerich@analog.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2008-04-17 14:56:56 -07:00
Shinya Kuribayashi
188e94c370 cpu/mips/cpu.c: Fix flush_cache bug
Cache operations have to take line address (addr), not start_addr.
I noticed this bug when debugging ping failure.

Signed-off-by: Shinya Kuribayashi <shinya.kuribayashi@necel.com>
2008-04-17 14:54:23 -07:00
Martin Krause
8f2a68a07c TQM5200: fix default IDE reset level
Before the first call of ide_reset(), the level of the IDE reset
signal on the TQM5200 is low (reset asserted). This patch sets the
default value to high (reset not asserted).

Currently this patch fixes no real problem, but it is cleaner to
assert the reset signal only on demand, and not permanently.

Signed-off-by: Martin Krause <martin.krause@tqs.de>
2008-04-17 14:31:21 -07:00
Detlev Zundel
c61e033d6e mgcoge, mgsuv: realign CONFIG_EXTRA_ENV_SETTING
Signed-off-by: Detlev Zundel <dzu@denx.de>
2008-04-17 14:29:28 -07:00
Detlev Zundel
f308572e19 mgcoge, mgsuv: rename 'addcon' to 'addcons'
The latter name with 13 users is already established, so we will use
that.

Signed-off-by: Detlev Zundel <dzu@denx.de>
2008-04-17 14:28:24 -07:00
Martin Krause
e175eacc87 IDE: fix bug in reset sequence
According to the ata (ata5) specification the RESET- signal
shall be asserted for at least 25 us. Without this patch,
the RESET- signal is asserted on some boards for only < 1 us
(e. g. on the TQM5200). This patch adds a general delay of
25 us to the RESET- signal.

Without this patch a Platinum 4 GiB CF card is not recognised
properly on boards with a TQM5200 (STK52xx, TB5200).

Signed-off-by: Martin Krause <martin.krause@tqs.de>
2008-04-17 14:26:48 -07:00
Sascha Laue
813bea96a9 lwmon5: disable CONFIG_ZERO_BOOTDELAY
Signed-off-by: Sascha Laue <sascha.laue@liebherr.com>
2008-04-17 14:25:15 -07:00
Jean-Christophe PLAGNIOL-VILLARD
53eec6f1d2 ds174x: Fix warning on return in rtc_get and rtc_set functions
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
2008-04-17 14:11:18 -07:00
Jean-Christophe PLAGNIOL-VILLARD
a253b38bf5 cmd_log.c: Fix assignment differ in signedness
In function 'logbuff_init_ptrs':
cmd_log.c:79: warning: pointer targets in assignment differ in signedness

Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
2008-04-17 14:05:22 -07:00
Gururaja Hebbar K R
6c0e9a8f1c Remove duplicate #undef SHOW_INFO in drivers/usb/usb_ohci.c
Signed-off-by: gururaja hebbar <gururajakr@sanyo.co.in>
2008-04-17 14:03:16 -07:00
Jean-Christophe PLAGNIOL-VILLARD
478d5ec9ae s3c4510b_eth: fix 'packed' attribute ignored for fields of MACFrame
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
2008-04-17 13:45:02 -07:00
Guennadi Liakhovetski
c08fb3ea36 Additional PCI IDs for IDE and network controllers
These PCI IDs are required by the Linkstation platforms.

Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
2008-04-17 13:37:57 -07:00
Joakim Tjernlund
c0559be371 Change env_get_char from a global function ptr to a function.
This avoids an early global data reference.

Signed-off-by: Joakim Tjernlund <Joakim.Tjernlund@transmode.se>
2008-04-17 13:20:14 -07:00
Guennadi Liakhovetski
3e0f331c05 Clean up smsc911x driver
Replace direct register address derefencing with accessor functions.
Restrict explicitly 32-bit bus-width, extend affected configurations
respectively.

Signed-off-by: Guennadi Liakhovetski <lg@denx.de>
Signed-off-by: Ben Warren <biggerbadderben@gmail.com>
2008-04-15 00:08:30 -04:00
Sascha Hauer
de1b686b76 This patch adds a driver for the following smsc network controllers:
LAN9115
LAN9116
LAN9117
LAN9215
LAN9216
LAN9217

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Guennadi Liakhovetski<lg@denx.de>
Signed-off-by: Ben Warren <biggerbadderben@gmail.com>
2008-04-15 00:08:20 -04:00
Sascha Laue
3dfd4aab92 Fix watchdog POST for lwmon5
If the hardware watchdog detects a voltage error, the watchdog sets
GPIO62 to low. The watchdog POST has to detect this low level.

Signed-off-by: Sascha Laue <leglas0@legpc180.leg.liebherr.i>
2008-04-13 23:22:34 -07:00
Dave Liu
24b448448a ata: update the libata.h from ata.h of linux kernel
Current libata.h of u-boot is out of sync from linux kernel,
this patch make it be consistent with linux kernel.

Signed-off-by: Dave Liu <daveliu@freescale.com>
Signed-off-by: Tor Krill <tor@excito.com>
2008-04-13 23:20:16 -07:00
Kumar Gala
f8f9dc9888 Allow use of ARCH=powerpc when building
The linux kernel is now mostly ARCH=powerpc, so to make life easier
allow use to use ARCH=powerpc and convert it to ARCH=ppc.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2008-04-13 23:18:21 -07:00
Kyungmin Park
8af657d2c6 Add apollon board MAINTAINERS entry
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
2008-04-13 23:14:21 -07:00
Kyungmin Park
77e475cc0e Fix OneNAND read
It should access with 16-bit instead of 8-bit

Now it uses the generic memcpy with 8-bit access. It means it reads wrong data from OneNAND.

Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
2008-04-13 23:11:16 -07:00
Kyungmin Park
a9da2b4107 Fix OneNAND erase command
It mis-calculates the block address.
Also fix DECLARE_GLOBAL_DATA_PTR in env_onenand.

Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
2008-04-13 23:10:39 -07:00
Guennadi Liakhovetski
61525f2ffa Support for LinkStation / KuroBox HD and HG PPC models
This patch is based on the port by Mihai Georgian (see linkstation.c for
Copyright information) and implements support for LinkStation / KuroBox HD
and HG PPC models from Buffalo Technology, whereby HD is deactivated at
the moment, pending network driver fixing.

Notice to users: this is pretty much a barebone port. Support for network
on HG models is already in the U-Boot mainline, but you might also want
patches to switch fan / phy modes depending on the negotiated ethernet
parameters. This patch also doesn't support console switching, booting EM
mode, Buffalo specific ext2 magic number. So, if you want to use any of
those, you need additional patches. Otherwise this patche provides a fully
functional u-boot with a network console on your system.

Signed-off-by: Guennadi Liakhovetski <lg@denx.de>
2008-04-13 23:08:40 -07:00
TsiChung Liew
0f3ba7e978 Add CONFIG_MII_INIT support to related boards
Replace CONFIG_8xx and CONFIG_MCF532x to CONFIG_MII_INIT in
cmd_init.c. Add CONFIG_MII_INIT to board configuration files
that use mii_init() in cmd_init.c.

Signed-off-by: TsiChung Liew <Tsi-Chung.Liew@freescale.com>
Acked-by: Ben Warren <biggerbadderben@gmail.com>
2008-04-13 23:03:02 -07:00
TsiChung Liew
f33fca22e7 Update CONFIG_PCIAUTO_SKIP_HOST_BRIDGE to related boards
Remove test for CONFIG_MPC5200 in drivers/pci/pci_auto.c and define
CONFIG_PCIAUTO_SKIP_HOST_BRIDGE in related board configuration files.

Signed-off-by: TsiChung Liew <Tsi-Chung.Liew@freescale.com>
2008-04-13 18:03:29 -07:00
Kumar Gala
e99ccb4881 Introduce phys_size_t and move phys_addr_t into asm/types.h
Also add CONFIG_PHYS_64BIT on powerpc to deal with 32-bit ppc's
that have larger physical addresses like 44x, 85xx, and 86xx.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2008-04-13 17:13:46 -07:00
Andy Fleming
20a14a42a2 Rename include/md5.h to include/u-boot/md5.h
Some systems have md5.h installed in /usr/include/. This isn't the
desired file (we want the one in include/md5.h). This will avoid the
conflict. This fixes the host tools building problem by creating a new
directory for U-Boot specific header files.

[Patch by Andy Fleming, modified to use separate directory by Wolfgang
Denk]

Signed-off-by: Wolfgang Denk <wd@denx.de>
Signed-off-by: Andy Fleming <afleming@freescale.com>
Acked-by: Timur Tabi <timur@freescale.com>
2008-04-13 17:02:51 -07:00
Dave Liu
f297b7a1ec drivers: code clean up
Signed-off-by: Dave Liu <daveliu@freescale.com>
2008-04-13 14:57:46 -07:00
Dave Liu
0ff7cba4a2 drivers: clean up the ata_piix.h
Signed-off-by: Dave Liu <daveliu@freescale.com>
2008-04-13 14:57:39 -07:00
Dave Liu
e8f7ba404f doc: english polishing for README.sata
according to gvb's suggestion, polishing for the doc.

Signed-off-by: Jerry Van Baren <gerald.vanbaren@ge.com>
Signed-off-by: Dave Liu <daveliu@freescale.com>
2008-04-13 14:56:51 -07:00
Kumar Gala
3e3f766a52 Fix warnings introduced by I2C bus speed setting patch
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2008-04-13 14:54:16 -07:00
eran liberty
3c735e7437 Altera Stratix II support
Adds Support for Altera's Stratix II.

Within your board specific init file you will have to call

1. fpga_init (/* relocated code offset. usually => */ gd->reloc_off);
2. fpga_add (fpga_altera, (Altera_desc*)&altera_desc);

Altera_desc* contines (for example):
	{
	 Altera_StratixII,	/* part type */
	 passive_serial,	/* interface type */
	 1,			/* bytes of data part can accept */
	 (void *)(&funcs),	/* interface function table */
	 0L,			/* base interface address */
	 0			/* implementation specific cookie */
	 }

funcs is the interface. It is of type altera_board_specific_func.
It looks like this:
altera_board_specific_func func = {
	pre_fn,
	config_fn,
	status_fn,
	done_fn,
	clk_fn,
	data_fn,
	abort_fn,
	post_fn,
};

you will have to implement these functions, which is usually bit
banging some gpio.

Signed-off-by: Eran Liberty <liberty@extricom.com>
2008-04-13 14:52:48 -07:00
Wolfgang Denk
5ece9ec9f6 Update CHANGELOG
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-04-13 14:32:54 -07:00
Sascha Hauer
5ad862166a Phytec Phycore-i.MX31 support
This patch adds support for the Phytec Phycore-i.MX31 board

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Guennadi Liakhovetski <lg@denx.de>
2008-04-13 14:29:18 -07:00
Sascha Hauer
caebc95be3 mx31 litekit support
This patch adds support for the mx31 litekit board

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Guennadi Liakhovetski <lg@denx.de>
2008-04-13 14:28:24 -07:00
Sascha Hauer
cdace06612 add an i2c driver for mx31
This patch adds an i2c driver for Freescale i.MX processors

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Guennadi Liakhovetski <lg@denx.de>
2008-04-13 14:21:43 -07:00
Sascha Hauer
9b56f4f030 core support for Freescale mx31
This patch adds the core support for Freescale mx31

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Guennadi Liakhovetski <lg@denx.de>
2008-04-13 14:20:47 -07:00
Wolfgang Denk
7ec68862a2 Fix compile error
...as suggested by Peter Pearse

Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-04-13 14:19:23 -07:00
Sascha Hauer
5252ed9520 Separate omap24xx specific code from arm1136
Move omap24xx code to cpu/arm1136/omap24xx, rename include/asm-arm/arch-arm1136
to cpu/arm1136/omap24xx.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Guennadi Liakhovetski <lg@denx.de>
2008-04-13 14:15:15 -07:00
Mike Frysinger
1f1d88dd40 disable caches before booting an app for Blackfin apps
It isn't generally save to execute applications outside of U-Boot with caches
enabled due to the way the Blackfin processor handles caches (requires
software assistance).  This patch disables caches before booting an ELF or
just booting raw code.  The previous discussion on the patch was that we
wanted to use weaks instead, but that proved to not be feasible when multiple
symbols are involved, which puts us back at the ifdef solution.  I've
minimized the ugliness by moving the setup step outside of the main function.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2008-04-13 13:53:45 -07:00
Wolfgang Denk
e6dfed705e ppc: Get rid of unused machine type definitions
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-04-13 10:03:54 -07:00
Wolfgang Denk
1aeed8d71a Coding Style cleanup; update CHANGELOG
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-04-13 09:59:26 -07:00
Wolfgang Denk
8c8428a576 Merge branch 'master' of /home/wd/git/u-boot/custodians 2008-04-13 09:42:35 -07:00
Wolfgang Denk
d6f98e76a0 Merge branch 'master' of git://www.denx.de/git/u-boot-cfi-flash 2008-04-13 09:40:35 -07:00
Wolfgang Denk
8258b6e2f5 Merge branch 'master' of git://www.denx.de/git/u-boot-mpc83xx 2008-04-13 09:39:26 -07:00
Wolfgang Denk
643de569b2 Merge branch 'master' of git://www.denx.de/git/u-boot-mpc85xx 2008-04-13 09:38:13 -07:00
Wolfgang Denk
034a40f876 Merge branch 'master' of git://www.denx.de/git/u-boot-ppc4xx 2008-04-13 09:34:11 -07:00
Wolfgang Denk
7cc399c86b Merge branch 'master' of git://www.denx.de/git/u-boot-microblaze 2008-04-13 09:30:26 -07:00
Wolfgang Denk
58a3cbbf24 Merge branch 'master' of git://www.denx.de/git/u-boot-sparc 2008-04-13 09:21:00 -07:00
Larry Johnson
7754f33c6f LM73 bug fix for negative temperatures and cleanup
When the LM73 temperature sensor measures a temperature below 0 C, the
current driver does not perform sign extension, so the result returned is
512 C too high.  This patch fixes the problem, and does general cleanup
of the code.

Signed-off-by: Larry Johnson <lrj@acm.org>
2008-04-13 08:58:36 -07:00
Guennadi Liakhovetski
96ef831f71 cfi_flash: Support buffered writes on non-standard Spansion NOR flash
Some NOR flash chip from Spansion, for example, the s29ws-n MirrorBit
series require different addresses for buffered write commands. Define a
configuration option to support buffered writes on those chips. A more
elegant solution would be to automatically detect those chips by parsing
their CFI records, but that would require introduction of a fixup table
into the cfi_flash driver.

Signed-off-by: Guennadi Liakhovetski <lg@denx.de>
2008-04-12 08:59:09 +02:00
Lee Nipper
3f9c542d3d mpc83xx: Update DIMM data bus width test to support 40-bit width
32-bit wide ECC memory modules report 40-bit width.
Changed the DIMM data bus width test to 'less than 64' instead of 'equal 32'.

Signed-off-by: Lee Nipper <lee.nipper@freescale.com>
Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
2008-04-11 17:46:18 -05:00
Dave Liu
5fb5a689d8 mpc83xx: Fix the bug of serdes initialization
Currently the serdes will not be initializated due to the
partid's error.

Signed-off-by: Dave Liu <daveliu@freescale.com>
Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
2008-04-11 17:46:18 -05:00
Dave Liu
2000784818 mpc83xx: Fix the SATA clock setting of 837x targets
Currently the SATA controller clock is configured as CSB clock,
usually the CSB clock is 400/333/266MHz.

However, The SATA IP block is only guaranteed to operate up to
200 MHz as stated in the HW spec.

The bug is reported by Joe D'Abbraccio <ljd015@freescale.com>

This patch makes the SATA clock as half of CSB clock.

Signed-off-by: Dave Liu <daveliu@freescale.com>
Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
2008-04-11 17:46:17 -05:00
Jean-Christophe PLAGNIOL-VILLARD
1ac4f320bf mpc837xerdb: Fix warning: implicit declaration of function 'fdt_fixup_dr_usb'
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
2008-04-11 17:46:17 -05:00
Kumar Gala
97b3ecb575 85xx: Fix detection of MP cpu spin up
We were looking at the wrong memory offset to determine of a secondary
cpu had been spun up or not.  Also added a warning message if the
all the secondary cpus we expect don't spin up.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2008-04-11 17:32:56 -05:00
Kumar Gala
f3e04bdc3f 85xx: Use SVR_SOC_VER instead of SVR_VER
The recent change introduced by 'Update SVR numbers to expand support'
now requires that we use SVR_SOC_VER instead of SVR_VER if we want
to compare against a particular processor id.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2008-04-11 17:32:51 -05:00
Eugene O'Brien
5b2052e5f5 ppc4xx: Fix power mgt definitions for PPC440
Corrected DCR addresses of PPC440EP power management registers.

Signed-off-by: Eugene O'Brien <eugene.obrien@advantechamt.com>
2008-04-11 16:27:58 +02:00
Wolfgang Denk
950a392464 Revert merge of git://www.denx.de/git/u-boot-arm, commit 62479b18:
Reverting became necessary after it turned out that the patches in
the u-boot-arm repo were modified, and in some cases corrupted.

This reverts the following commits:

	066bebd635
	7a837b7310
	c88ae20580
	a147e56f03
	d6674e0e2a
	8c8463cce4
	c98b47ad24
	8bf69d8178
	8c16cb0d3b
	a574a73852
	1377b5583a
	1704dc2091

Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-04-11 15:11:26 +02:00
Stefan Roese
64e541f4c1 ppc4xx: Update Kilauea defconfig to use device-tree booting as default
This patch reworks the default environment on Kilauea/Haleakala. Now
"net_nfs" for exmaple uses the device-tree style booting formerly know
as "net_nfs_fdt". Also the addresses in RAM were changed because of the
new image booting support, which check for image overwriting. So the
addresses needed togeet adjusted.

Signed-off-by: Stefan Roese <sr@denx.de>
2008-04-11 07:02:29 +02:00
Stefan Roese
756f5dacda ppc4xx: Fix Canyonlands default environment to work with new image support
Since the new image support checks for image overwriting, the default
environment needs to get adjusted to use correct addresses.

Signed-off-by: Stefan Roese <sr@denx.de>
2008-04-09 11:58:02 +02:00
Stefan Roese
dfc6c7b647 ppc: Revert patch 70431e8a that used _start instead of CFG_MONITOR_BASE
The patch 70431e8a73 (Make MPC83xx one step
closer to full relocation.) doesn't use CFG_MONITOR_BASE anymore. But
on 4xx systems _start currently cannot be used for this calculation.
So revert back to the original version for now.

Signed-off-by: Stefan Roese <sr@denx.de>
2008-04-09 11:54:11 +02:00
Michal Simek
f91374f65e microblaze: Sort microblaze boards in MAKEALL script 2008-04-08 15:38:15 +02:00
Michal Simek
62032deb72 microblaze: clean microblaze_config.mk
FLAGS are generated by U-BOOT generator.
Board specific FLAGS are in board directory

Signed-off-by: Michal Simek <monstr@monstr.eu>
2008-04-08 15:38:15 +02:00
Michal Simek
cf5c679ca0 microblaze: xupv2p fix config file for supporting FDT 2008-04-08 15:38:15 +02:00
Michal Simek
188dc16b18 microblaze: ml401 fix config file for supporting FDT
Signed-off-by: Michal Simek <monstr@monstr.eu>
2008-04-08 15:38:14 +02:00
Michal Simek
4c6a6f02e2 microblaze: ml401 - add ifdef for GPIO
Signed-off-by: Michal Simek <monstr@monstr.eu>
2008-04-08 15:38:14 +02:00
Michal Simek
af7ae1a411 microblaze: clean uart16550 and uartlite handling
Signed-off-by: Michal Simek <monstr@monstr.eu>
2008-04-08 15:38:14 +02:00
Michal Simek
0b20f25087 microblaze: Add Emaclite driver to Makefile
Signed-off-by: Michal Simek <monstr@monstr.eu>
2008-04-08 15:38:14 +02:00
Michal Simek
868cde5310 microblaze: Add Emac driver to Makefile
Signed-off-by: Michal Simek <monstr@monstr.eu>
2008-04-08 15:38:14 +02:00
Michal Simek
6f961b4f46 microblaze: add Emac ethernet driver 2008-04-08 15:38:14 +02:00
Michal Simek
89c53891b1 microblaze: add Emaclite ethernet driver 2008-04-08 15:38:14 +02:00
Michal Simek
e5845e2122 microblaze: ML401 and XUPV2P remove emac and emaclite reference
Signed-off-by: Michal Simek <monstr@monstr.eu>
2008-04-08 15:38:14 +02:00
Michal Simek
6bf3e982ae microblaze: remove old setting for emac driver
Signed-off-by: Michal Simek <monstr@monstr.eu>
2008-04-08 15:38:14 +02:00
Michal Simek
cd2b75efb9 microblaze: Clean Makefile from ancient emac driver
Signed-off-by: Michal Simek <monstr@monstr.eu>
2008-04-08 15:38:14 +02:00
Daniel Hellstrom
ab68f921d9 SPARC/LEON2: added support for Gaisler simulator GRSIM/TSIM for SPARC/LEON2 targets. See www.gaisler.com for information.
Signed-off-by: Daniel Hellstrom <daniel@gaisler.com>
2008-04-08 07:58:33 +00:00
Daniel Hellstrom
6ed8a43a19 SPARC/LEON3: added support for GR-CPCI-AX2000 FPGA AX board. The FPGA is exchangeable but a standard LEON3 design is assumed. See www.gaisler.com for information.
Signed-off-by: Daniel Hellstrom <daniel@gaisler.com>
2008-04-08 07:58:33 +00:00
Daniel Hellstrom
6940383d9e SPARC/LEON3: added support for Altera NIOS Development kit (STRATIX II Edition) with GRLIB template design. See www.gaisler.com for information.
Signed-off-by: Daniel Hellstrom <daniel@gaisler.com>
2008-04-08 07:58:32 +00:00
Daniel Hellstrom
823edd8a66 SPARC/LEON3: added support for Gaisler GRSIM/TSIM2 SPARC/LEON3 simulatorn. See www.gaisler.com for information.
Signed-off-by: Daniel Hellstrom <daniel@gaisler.com>
2008-04-08 07:58:32 +00:00
Daniel Hellstrom
71d7e4c048 SPARC/LEON3: added support for GR-XC3S-1500 board with GRLIB template design. See www.gaisler.com for board information.
Signed-off-by: Daniel Hellstrom <daniel@gaisler.com>
2008-04-08 07:58:32 +00:00
Daniel Hellstrom
b330990c2f SPARC: Added support for SPARC LEON2 SOC Processor.
Signed-off-by: Daniel Hellstrom <daniel@gaisler.com>
2008-04-08 07:58:32 +00:00
Daniel Hellstrom
2a2fa797e6 SPARC/LEON3: Added AMBA Bus Plug&Play information print command (ambapp). It can print available cores (type: AHB Master, AHB Slave, APB Slave), their address ranges, IRQ number and version.
Signed-off-by: Daniel Hellstrom <daniel@gaisler.com>
2008-04-08 07:58:32 +00:00
Daniel Hellstrom
1e9a164e22 SPARC: Added support for SPARC LEON3 SOC processor.
Signed-off-by: Daniel Hellstrom <daniel@gaisler.com>
2008-04-08 07:58:32 +00:00
Daniel Hellstrom
bf3d8b3116 SPARC: added SPARC support for new uimage in common code.
Signed-off-by: Daniel Hellstrom <daniel@gaisler.com>
2008-04-08 07:58:32 +00:00
Daniel Hellstrom
00ab32c854 SPARC: added SPARC board information to the command bdinfo.
Signed-off-by: Daniel Hellstrom <daniel@gaisler.com>
2008-04-08 07:58:32 +00:00
Daniel Hellstrom
c2f02da21a SPARC: Added generic support for SPARC architecture.
Signed-off-by: Daniel Hellstrom <daniel@gaisler.com>
2008-04-08 07:58:32 +00:00
Wolfgang Denk
aeff6d503b Merge branch 'master' of git://www.denx.de/git/u-boot-fdt 2008-04-08 00:20:52 +02:00
Wolfgang Denk
a1b215e2a2 Merge branch 'master' of git://www.denx.de/git/u-boot-at91 2008-04-08 00:16:36 +02:00
Wolfgang Denk
f9eabcb357 Merge branch 'master' of git://www.denx.de/git/u-boot-net 2008-04-08 00:11:22 +02:00
Wolfgang Denk
2c78febd11 Merge branch 'master' of git://www.denx.de/git/u-boot-coldfire 2008-04-08 00:10:17 +02:00
Wolfgang Denk
34e6cb8d1d Merge branch 'master' of git://www.denx.de/git/u-boot-blackfin 2008-04-08 00:06:47 +02:00
Wolfgang Denk
62479b1814 Merge branch 'master' of git://www.denx.de/git/u-boot-arm 2008-04-08 00:05:42 +02:00
Wolfgang Denk
5c395393cc Merge branch 'master' of git://www.denx.de/git/u-boot-sh 2008-04-08 00:04:39 +02:00
Wolfgang Denk
e59af4b611 Merge branch 'master' of git://www.denx.de/git/u-boot-mpc83xx
Conflicts:

	lib_ppc/board.c

Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-04-07 23:59:10 +02:00
Wolfgang Denk
23c5189e6c Merge branch 'master' of git://www.denx.de/git/u-boot-cfi-flash 2008-04-07 23:55:47 +02:00
Wolfgang Denk
6de5420370 Merge branch 'master' of git://www.denx.de/git/u-boot-ppc4xx 2008-04-07 23:52:32 +02:00
Stefan Roese
e54ec0f016 ppc4xx: Fix 4xx enet driver to support 460GT EMAC2+3
This patch fixes a problem with the RGMII setup of the 460GT. The 460GT
has 2 RGMII instances and we need to configure the 2nd RGMII instance
for the EMAC2+3 channels.

Signed-off-by: Stefan Roese <sr@denx.de>
2008-04-03 14:50:34 +02:00
Jean-Christophe PLAGNIOL-VILLARD
c2a545ce33 MPC8xx: Fix libfdt support introduced in commit 77ff7b74
fdt.c: In function 'ft_cpu_setup':
fdt.c:33: warning: implicit declaration of function 'do_fixup_by_prop_u32'
fdt.c:39: warning: implicit declaration of function 'do_fixup_by_compat_u32'
fdt.c:43: warning: implicit declaration of function 'fdt_fixup_ethernet'
fdt.c:45: warning: implicit declaration of function 'fdt_fixup_memory'

Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
2008-04-02 11:07:20 -04:00
Andy Fleming
4abd844d8e Fix fdt set command to conform to dts spec
The fdt set command was treating properties specified as <00> and <0011>
as byte streams, rather than as an array of cells.  As we already have
syntax for expressing the desire for a stream of bytes ([ xx xx ...]),
we should use the <> syntax to describe arrays of cells, which are always
32-bits per element.  If we imagine this likely (IMHO) scenario:

> fdt set /ethernet-phy@1 reg <1>

With the old code, this would create a bad fdt, since the reg cell would be
made to be one byte in length.  But the cell must be 4 bytes, so this would
break mysteriously.

Also, the dts spec calls for constants inside the angle brackets (<>)
to conform to C constant standards as they pertain to base.
Take this scenario:

> fdt set /ethernet@f00 reg <0xe250000\ 0x1000>

The old fdt command would complain that it couldn't parse that.  Or, if you
wanted to specify that a certain clock ran at 33 MHz, you'd be required to
do this:

> fdt set /mydev clock <1f78a40>

Whereas the new code will accept decimal numbers.

While I was in there, I extended the fdt command parser to handle property
strings which are split across multiple arguments:

> fdt set /ethernet@f00 interrupts < 33 2 34 2 36 2 >
> fdt p /ethernet@f00
ethernet@f00 {
	interrupts = <0x21 0x2 0x22 0x2 0x24 0x2>;
};

Lastly, the fdt print code was rearranged slightly to print arrays of cells
if the length of the property is a multiple of 4 bytes, and to not print
leading zeros.

Signed-off-by: Andy Fleming <afleming@freescale.com>
2008-04-02 11:07:15 -04:00
Stefan Roese
1c2926abdd ppc4xx: Canyonlands: Init SATA/PCIe port correctly
Canyonlands (460EX) shares the first PCIe interface with the SoC SATA
interface. This usage can be configured with the jumper J6. This patch
correctly configures the SATA/PCIe PHY for SATA usage when this jumper
is installed.

Signed-off-by: Stefan Roese <sr@denx.de>
2008-04-02 08:39:33 +02:00
Kim Phillips
6fe2946f19 remove remaining CONFIG_OF_HAS_{UBOOT_ENV,BD_T} code
finish off what commit 43ddd9c820,
"Remove deprecated CONFIG_OF_HAS_UBOOT_ENV and CONFIG_OF_HAS_BD_T"
started.

Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
2008-04-01 19:46:44 -04:00
Jean-Christophe PLAGNIOL-VILLARD
b5873f1732 dataflash: Move CONFIG_HAS_DATAFLASH to Makefile
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
2008-04-01 07:30:51 +02:00
Tor Krill
2d934ea51f Add Vitesse 8601 support to TSEC driver
Add phy_info for Vitesse VSC8601.
Add config option, CFG_VSC8601_SKEWFIX, to enable RGMII skew timing compensation.

Signed-off-by: Tor Krill <tor@excito.com>
Reviewed-by: Kim Phillips <kim.phillips@freescale.com>
Signed-off-by: Ben Warren <biggerbadderben@gmail.com>
2008-03-31 23:11:46 -04:00
Daniel Hellstrom
3eac6402a5 SPARC: added SMC91111 driver in and out macros for LEON processors.
This patch makes SPARC/LEON processors able to read and write
to the SMC91111 chip using the chip external I/O bus of the memory
controller. This patchs defines the standard in and out macros
expected by the SMC9111 driver.

To access that I/O bus one must set up the memory controller
(MCTRL or FTMCTRL) correctly. It is assumed that the user sets
up this correctly when the other MCTRL parameters are set up. It
can be set up from the board configuration header file.

Signed-off-by: Daniel Hellstrom <daniel@gaisler.com>
Signed-off-by: Ben Warren <biggerbadderben@gmail.com>
2008-03-31 23:11:33 -04:00
Stelian Pop
3ca7c558eb Add maintainership information for AT91CAP9ADK and AT91SAM9260EK boards
Signed-off-by: Stelian Pop <stelian@popies.net>
2008-04-01 01:46:12 +02:00
Jean-Christophe PLAGNIOL-VILLARD
4e03dde84d AT91SAM9260EK: Move CONFIG_CMD_NAND to Makefile
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
2008-04-01 01:46:12 +02:00
Stelian Pop
0176d43e75 Add support for AT91SAM9260EK
Support for booting from internal DataFlash, external DataFlash card
or NAND flash is available.

Signed-off-by: Stelian Pop <stelian@popies.net>
2008-04-01 01:46:12 +02:00
Jean-Christophe PLAGNIOL-VILLARD
1762f13b4a AT91SAM9: Move CONFIG_HAS_DATAFLASH to Makefile
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
2008-04-01 01:46:12 +02:00
Jean-Christophe PLAGNIOL-VILLARD
761712188b AT91CAP9ADK: Move CONFIG_CMD_NAND to Makefile
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
2008-04-01 01:46:01 +02:00
Stelian Pop
983c1db04c Port AT91CAP9 to the new headers
Adapt the existing AT91CAP9 code to the new headers and APIs.

Signed-off-by: Stelian Pop <stelian@popies.net>
2008-04-01 01:45:50 +02:00
Stelian Pop
177e8a5ac8 Finish header files reworking
Replace AT91CAP9.h file with several splitted header files coming
from the Linux kernel.

This is part 2 of the replacement: more header imports and edits.

Signed-off-by: Stelian Pop <stelian@popies.net>
2008-04-01 01:45:48 +02:00
Stelian Pop
6d1dbbbf9f Import several header files from Linux
Replace AT91CAP9.h file with several splitted header files coming
from the Linux kernel.

This is part 1 of the replacement: pristine header files import.

Signed-off-by: Stelian Pop <stelian@popies.net>
2008-04-01 01:45:46 +02:00
Stelian Pop
a8a78f2d99 Move at91cap9 specific files to at91sam9 directory
AT91CAP9 and AT91SAM9 SoCs are very close hardware wise, so a
common infrastructure can be used. Let this infrastructure be
named after the AT91SAM9 family, and move the existing AT91CAP9
files to the new place.

Signed-off-by: Stelian Pop <stelian@popies.net>
2008-04-01 01:44:18 +02:00
Stelian Pop
61106a5658 Use timer_init() instead of board supplied interrupt_init()
The timer on AT91CAP9/AT91SAM9 is supplied by the SoC, and not by
the board, so use timer_init() instead of interrupt_init().

Signed-off-by: Stelian Pop <stelian@popies.net>
2008-04-01 01:44:05 +02:00
Stelian Pop
5604e2178c Cleanup DataFlash partition handling
DataFlash partition information has become a mess. This patch
defines a single partition scheme for Atmel DataFlashes. This partition
scheme will be used by all AT91CAP9 and AT91SAM9 boards.

Signed-off-by: Stelian Pop <stelian@popies.net>
2008-04-01 01:43:59 +02:00
TsiChung Liew
9b46432fc6 ColdFire: Fix alignment issue after CONFIG_IDENT_STRING in start.S
When the version_string function in start.S is not 4-byte align,
it will cause the compiler generates "unaligned opcodes detected
in executable segment". This issue affects all ColdFire CPUs.
By adding .align 4 after CONFIG_IDENT_STRING, it will pad 0's if
it is not aligned.

Signed-off-by: TsiChung Liew <Tsi-Chung.Liew@freescale.com>
Acked-by: John Rigby <jrigby@freescale.com>
2008-03-31 15:10:32 -06:00
TsiChung Liew
bae61eefe1 ColdFire: Add dspi and serial flash support for MCF5445x
Signed-off-by: TsiChung Liew <Tsi-Chung.Liew@freescale.com>
Acked-by: John Rigby <jrigby@freescale.com>
2008-03-31 15:10:29 -06:00
TsiChung Liew
48ead7a7a9 ColdFire: Remove R5200 board
This board never went into production

Signed-off-by: Zachary P. Landau <zachary.landau@labxtechnologies.com>
Acked-by: TsiChung Liew <Tsi-Chung.Liew@freescale.com>
Acked-by: John Rigby <jrigby@freescale.com>
2008-03-31 15:10:24 -06:00
Matthew Fettke
545c8e0a7c ColdFire: Added M5275EVB support.
Signed-off-by: Matthew Fettke <mfettke@videon-central.com>
Signed-off-by: TsiChung Liew <Tsi-Chung.Liew@freescale.com>
Acked-by: John Rigby <jrigby@freescale.com>
2008-03-31 15:10:11 -06:00
Matthew Fettke
f71d9d91a2 ColdFire: Added MCF5275 cpu support.
Signed-off-by: Matthew Fettke <mfettke@videon-central.com>
Signed-off-by: TsiChung Liew <Tsi-Chung.Liew@freescale.com>
Acked-by: John Rigby <jrigby@freescale.com>
2008-03-31 15:09:08 -06:00
TsiChung Liew
44e5b9edab ColdFire: Define bootdelay in configuration file for M52277EVB
Signed-off-by: Matt Wadel <Matt.Waddel@freescale.com>
Acked-by: TsiChung Liew <Tsi-Chung.Liew@freescale.com>
Acked-by: John Rigby <jrigby@freescale.com>
2008-03-31 15:17:10 -05:00
TsiChung Liew
77878f16ce ColdFire: Fix second memory Chipselect for M5475EVB
Signed-off-by: TsiChung Liew <Tsi-Chung.Liew@freescale.com>
Acked-by: John Rigby <jrigby@freescale.com>
2008-03-31 15:17:10 -05:00
TsiChung Liew
43d6064239 ColdFire: Update correct FLASHBAR and RAMBAR1 for MCF5282
Signed-off-by: TsiChung Liew <Tsi-Chung.Liew@freescale.com>
Acked-by: John Rigby <jrigby@freescale.com>
2008-03-31 15:17:10 -05:00
Larry Johnson
eb14ebe813 ppc4xx: Add CFG_MEM_TOP_HIDE to Denali SPD-based SDRAM setup
Signed-off-by: Larry Johnson <lrj@acm.org>
2008-03-31 12:20:59 +02:00
Stefan Roese
02e3892021 ppc4xx: Small whitespace fix of esd patches
Signed-off-by: Stefan Roese <sr@denx.de>
2008-03-31 12:20:48 +02:00
Matthias Fuchs
034394abb5 ppc4xx: Cleanup PMC440 board support
Signed-off-by: Matthias Fuchs <matthias.fuchs@esd-electronics.com>
2008-03-31 11:48:02 +02:00
Matthias Fuchs
a6cc6c3718 ppc4xx: Add ptm configuration variables for PMC440
Add support for the ptm1la, ptm1ms, ptm2la and ptm2ms
environment variables.

Cleanup pci_target_init.

Signed-off-by: Matthias Fuchs <matthias.fuchs@esd-electronics.com>
2008-03-31 11:47:36 +02:00
Matthias Fuchs
7c91f51a2f ppc4xx: Minor updates for DU440 boards
Signed-off-by: Matthias Fuchs <matthias.fuchs@esd-electronics.com>
2008-03-31 11:47:09 +02:00
Mike Frysinger
d5bffeb868 Blackfin: cleanup and overhaul common board init functions
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2008-03-30 15:51:22 -04:00
Mike Frysinger
b86b3416f8 Blackfin: cleanup lib_blackfin/cache.c
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2008-03-30 15:50:30 -04:00
Mike Frysinger
9171fc8172 Blackfin: unify cpu and boot modes
All of the duplicated code for Blackfin processors and boot modes have been
unified.  After all, the core is the same for all processors, just the
peripheral set differs (which gets handled in the drivers).

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2008-03-30 15:50:19 -04:00
Stelian Pop
880cc4381e Fix CFG_NO_FLASH compilation.
Many Atmel boards have no "real" (NOR) flash on board, and rely only
on DataFlash and NAND memories. This patch enables CFG_NO_FLASH to
be present in a board configuration file, while still enabling flash
commands like 'flinfo', 'protect', etc.

Signed-off-by: Stelian Pop <stelian@popies.net>
2008-03-30 21:19:40 +02:00
Mike Frysinger
9ce7e53abd Blackfin: BF537-stamp: cleanup spi flash driver
This punts the old spi flash driver for a new/generalized one until the
common one can be integrated.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2008-03-30 15:13:42 -04:00
Ben Warren
bb8e3cf25b Fix macro typo in common/cmd_mii.c
This typo was introduced in commit 233a8bcd94.  I
actually applied the wrong patch.

Signed-off-by: Ben Warren <biggerbadderben@gmail.com>
2008-03-30 11:34:34 -04:00
Jean-Christophe PLAGNIOL-VILLARD
f1b985f2d7 use correct at91rm9200 register name in m501sk board
This fixes a naming bug for at91rm9200 lowlevel init code:
NOR boot flash is on chipselect 0, not chipselect 2.  This
makes code use the register name from chip datasheets.

Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
2008-03-30 16:41:57 +02:00
David Brownell
480ed1dea1 use correct at91rm9200 register name
This fixes a naming bug for at91rm9200 lowlevel init code:
NOR boot flash is on chipselect 0, not chipselect 2.  This
makes code use the register name from chip datasheets.

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
2008-03-30 15:38:05 +02:00
David Brownell
a3543d6dc5 add missing ARM boards to MAKEALL
Add some missing ARM boards to MAKEALL.  These build correctly,
unlike several of the boards already listed.

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
2008-03-30 14:09:55 +02:00
Peter Pearse
066bebd635 Bracket READ_TIMER macro in cpu/arm1136/omap24xx/interrupts.c
to prevent compilation error.

Signed-off-by: Peter Pearse <peter.pearse@arm.com>
2008-03-30 11:34:09 +01:00
Guennadi Liakhovetski
7a837b7310 Support for the MX31ADS evaluation board from Freescale
This patch adds support for the MX31ADS evaluation board from Freescale,
initialization code is copied from RedBoot sources, also provided by Freescale.

Signed-off-by: Guennadi Liakhovetski <lg@denx.de>
2008-03-30 11:32:30 +01:00
Sascha Hauer
c88ae20580 Phytec Phycore-i.MX31 support
This patch adds support for the Phytec Phycore-i.MX31 board

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Guennadi Liakhovetski <lg@denx.de>
2008-03-30 11:32:27 +01:00
Sascha Hauer
a147e56f03 mx31 litekit support
This patch adds support for the mx31 litekit board

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Guennadi Liakhovetski <lg@denx.de>
2008-03-30 11:32:24 +01:00
Sascha Hauer
d6674e0e2a add SMSC LAN9x1x Network driver
This patch adds a driver for the following smsc network controllers:
LAN9115
LAN9116
LAN9117
LAN9215
LAN9216
LAN9217

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Guennadi Liakhovetski <lg@denx.de>
2008-03-30 11:32:21 +01:00
Sascha Hauer
8c8463cce4 add an i2c driver for mx31
This patch adds an i2c driver for Freescale i.MX processors

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Guennadi Liakhovetski <lg@denx.de>
2008-03-30 11:32:16 +01:00
Sascha Hauer
c98b47ad24 core support for Freescale mx31
This patch adds the core support for Freescale mx31

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Guennadi Liakhovetski <lg@denx.de>
2008-03-30 11:30:43 +01:00
Sascha Hauer
8bf69d8178 Separate omap24xx specific code from arm1136
Move omap24xx code to cpu/arm1136/omap24xx, rename include/asm-arm/arch-arm1136 to cpu/arm1136/omap24xx.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Guennadi Liakhovetski <lg@denx.de>
2008-03-30 11:28:46 +01:00
Peter Pearse
8c16cb0d3b Add pmdra into MAKEALL
Signed-off-by: Peter Pearse <peter.pearse@arm.com>
2008-03-30 11:23:05 +01:00
Pieter Voorthuijsen
a574a73852 Adds support for the Prodrive PMDRA board, based on a DM6441
Signed-off-by: Pieter Voorthuijsen <pv@prodrive.nl>
2008-03-30 11:21:58 +01:00
Pieter Voorthuijsen
1377b5583a Removes all board specific code from the arch. part for DM644x (DaVinci) boards
Signed-off-by: Pieter Voorthuijsen <pv@prodrive.nl>
2008-03-30 11:11:34 +01:00
Dirk Behme
1704dc2091 - Remove *_masked() functions as noted by Wolfgang
- Adapt register naming to recent TI spec (sprue26, March 2007)
- Fix reset_timer() handling
- As reported by Pieter [1] the overflow fix introduced a
delay of factor 16 (e.g 2 seconds became 32). While the
overflow fix is basically okay, it missed to divide udelay by
16, too. Fix this.
[1] http://article.gmane.org/gmane.comp.boot-loaders.u-boot/38179
- Remove software division of timer count value (DIV(x)
macro) and do it in hardware (TIM_CLK_DIV).
Many thanks to Troy Kisky <troy.kisky@boundarydevices.com>
and Pieter Voorthuijsen <pieter.voorthuijsen@Prodrive.nl> for
the hints & testing!

Signed-off-by: Dirk Behme <dirk.behme@gmail.com>

Acked-by: Pieter Voorthuijsen <pieter.voorthuijsen@Prodrive.nl>
2008-03-30 11:09:01 +01:00
Andre Schwarz
ac3315c26e new PHY @ e1000 - 2nd try
Add 82541ER device with latest integrated IGP2 PHY.
Introduced CONFIG_E1000_FALLBACK_MAC for NIC bring-up with empty eeprom.

Signed-off-by: Andre Schwarz <andre.schwarz@matrix-vision.de>
Signed-off-by: Ben Warren <biggerbadderben@gmail.com>
2008-03-30 00:37:08 -04:00
Daniel Hellstrom
c2b7da5522 SPARC/LEON3: Added GRETH Ethernet 10/100/1000 driver.
GRETH is an Ethernet 10/100 or 10/100/1000 MAC with out without
a debug link (EDCL). The GRETH core is documented in GRIP.pdf
available at www.gaisler.com.

If the GRETH has GigaBit support (GBIT, Scatter gather, checksum
offloading etc.) can be determined by a bit in the control register.
The GBIT MAC is supported by operating in GRTEH 10/100 legacy mode.

Signed-off-by: Daniel Hellstrom <daniel@gaisler.com>
Signed-off-by: Ben Warren <biggerbadderben@gmail.com>
2008-03-30 00:33:28 -04:00
Tsi-Chung Liew
233a8bcd94 Add CONFIG_MII_INIT in cmd_mii.c
Provide common configuration in do_mii() to execute mii_init()
for all cpu architectures

Signed-off-by: TsiChung Liew <Tsi-Chung.Liew@freescale.com>
Signed-off-by: Ben Warren <biggerbadderben@gmail.com>
2008-03-30 00:15:35 -04:00
Tsi-Chung Liew
f605479de2 ColdFire: Fix FEC transmit issue for MCF5275
Signed-off-by: TsiChung Liew <Tsi-Chung.Liew@freescale.com>
Signed-off-by: Ben Warren <biggerbadderben@gmail.com>
2008-03-30 00:15:34 -04:00
Aras Vaichas
d9a2f416d6 DHCP request fix for Windows Server 2003
Added option CONFIG_BOOTP_DHCP_REQUEST_DELAY. This provides an optional
delay before sending "DHCP Request" in net/bootp.c. Required to overcome
interoperability problems with Windows Server 200x DHCP server when U-Boot
client responds too fast for server to handle.

Signed-off-by: Aras Vaichas <arasv@magtech.com.au>
Signed-off-by: Ben Warren <biggerbadderben@gmail.com>
2008-03-30 00:09:49 -04:00
Gerald Van Baren
3596d55eb2 Merge git://www.denx.de/git/u-boot into uboot 2008-03-29 18:08:02 -04:00
Daniel Hellstrom
97bf85d784 MTD/CFI: flash_read64 is defined a weak function (for SPARC)
SPARC has implemented __raw_readq, it reads 64-bit from any 32-bit address.
SPARC CPUs implement flash_read64 which calls __raw_readq.

For current SPARC architectures (LEON2 and LEON3) each read from the
FLASH must lead to a cache miss. This is because FLASH can not be set
non-cacheable since program code resides there, and alternatively disabling
cache is poor from performance view, or doing a cache flush between each
read is even poorer.

Forcing a cache miss on a SPARC is done by a special instruction "lda" -
load alternative space, the alternative space number (ASI) is processor
implementation spcific and can be found by including <asm/processor.h>.

Signed-off-by: Daniel Hellstrom <daniel@gaisler.com>
2008-03-29 06:51:04 +01:00
Joakim Tjernlund
70431e8a73 Make MPC83xx one step closer to full relocation.
Remove a few absolute references to CFG_MONITOR_BASE for ppc/mpc83xx
and use GOT relative reference.

Signed-off-by: Joakim Tjernlund <Joakim.Tjernlund@transmode.se>
Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
2008-03-28 18:51:54 -05:00
Michael Barkowski
5b2793a3f3 mpc8323erdb: fix EEPROM page size and get MAC from EEPROM
This patch fixes eeprom page size so that you can now write more than
64 bytes at a time.

It also makes the board take MAC addresses, if found, from EEPROM.

User should place up to 4 addresses at offset 0x7f00, for
eth{,1,2,3}addr.  Any unused addresses should be zero.  This group of
four six-byte values should have it's CRC at the end.  crc32 and
eeprom commands can be used to accomplish this.

If CRC fails, MAC addresses come from the environment.  If CRC
succeeds, the environment is overwritten at startup.

Signed-off-by: Michael Barkowski <michael.barkowski@freescale.com>
Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
2008-03-28 16:02:27 -05:00
Michael Barkowski
8f325cff31 mpc8323erdb: define CONFIG_PCI_SKIP_HOST_BRIDGE
Commit 55774b512f broke the onboard USB
controller on the PCI bus in Linux on the MPC8323ERDB.

This fixes it by defining CONFIG_PCI_SKIP_HOST_BRIDGE in the board's
config file.

Signed-off-by: Michael Barkowski <michael.barkowski@freescale.com>
Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
2008-03-28 16:02:27 -05:00
Kim Phillips
e5c4ade4db mpc83xx: cleanup System Part and Revision ID Register (SPRIDR) code
in the spirit of commit 1ced121600,
85xx's "Update SVR numbers to expand support", simplify SPRIDR processing
and processor ID display.  Add REVID_{MAJ,MIN}OR macros to make
REVID dependent code simpler.  Also added PARTID_NO_E and IS_E_PROCESSOR
convenience macros.

Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
2008-03-28 16:01:06 -05:00
Kim Phillips
81fd52c6c8 mpc83xx: display ddr frequency in board_add_ram_info banner
Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
2008-03-28 14:32:09 -05:00
Kim Phillips
35cf155c5e mpc83xx: unreinvent mem_clk
delete ddr_clk and use mem_clk instead.  Rename other ddr_*_clk to
mem_*_clk for consistency's sake.

Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
2008-03-28 14:32:07 -05:00
Kim Phillips
730e792926 mpc83xx: enable the SATA interface on mpc8315 rdb and mpc837x rdb boards
Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
2008-03-28 14:31:23 -05:00
Dave Liu
2eeb3e4fc5 mpc83xx: enable the SATA interface on mpc837xemds board
Enable the first two SATA interfaces on MPC837xEMDS board,
The two SATA ports are on LYNX1. (SATA0/1 on J4/5)

Signed-off-by: Dave Liu <daveliu@freescale.com>
Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
2008-03-28 14:15:44 -05:00
Dave Liu
6f8c85e8d1 mpc83xx: initialize serdes for MPC837xEMDS boards
This patch is stolen from Anton Vorontsov's patch
for mpc837xerdb boards.

The reference clk and xcorevdd voltage of serdes1/2
is same between mpc837xemds and mpc837xerdb.

8377E: LYNX1- 2 SATA	LYNX2- 2 PCIE
8378E: LYNX1- 2 SGMII	LYNX2- 2 PCIE
8379E: LYNX1- 2 SATA	LYNX2- 2 SATA

Signed-off-by: Dave Liu <daveliu@freescale.com>
Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
2008-03-28 14:11:51 -05:00
Stefan Roese
cc8e839abc ppc4xx: Canyonlands: Print SATA/PCIe configuration and board revision
Canyonlands (460EX) shares the first PCIe interface with the SoC SATA
interface. This usage can be configured with the jumper J6. This patch
displays the current configuration upon bootup and changes the PCIe
init loop, to only initialize the availabel PCIe slots.

Signed-off-by: Stefan Roese <sr@denx.de>
2008-03-28 14:09:04 +01:00
Tor Krill
90447ecbba MTD/CFI: Add support for 16bit legacy AMD flash
Add entry for 512Kx16 AMD flash to jedec_table.
Read out 16bit device id if chipwidth is 16bit.
Fixed coding style after Stefans feedback

Signed-off-by: Tor Krill <tor@excito.com>
2008-03-28 11:44:23 +01:00
Stefan Roese
5e12e75d17 ppc: Small change to CFG_MEM_TOP_HIDE description
Signed-off-by: Stefan Roese <sr@denx.de>
2008-03-28 11:02:53 +01:00
Nobuhiro Iwamatsu
280df59a8d sh: Add support stat structure and stat.h
Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
2008-03-28 14:16:14 +09:00
Mark Jonas
4be9eb789e sh: Removed warning when compiling drivers/serial/serial_sh.c.
Signed-off-by: Mark Jonas <mark.jonas@de.bosch.com>
Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
2008-03-28 14:16:14 +09:00
Nobuhiro Iwamatsu
f309fa3892 sh: Remove disable_ctrlc function from R7780MP
Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
2008-03-28 14:16:13 +09:00
Nobuhiro Iwamatsu
6f4b266ff2 sh: Add maintainer of R7780MP to MAINTAINER file
Update MAINTAINER entry for R7780MP. And fix maintainer's name.

Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
2008-03-28 14:16:13 +09:00
Nobuhiro Iwamatsu
f5e2466f7b sh: Add support Renesas Solutions R2D plus board
R2D plus is SH reference board used with SH7751R.
This board has 266Mhz CPU, 64MB SDRAM, Cardbus, CF interface,
one PCI bus, VGA, and two Ethernet controller.

Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
2008-03-28 14:16:13 +09:00
Nobuhiro Iwamatsu
e92c95180b sh: Add support SH4 cache control
Add support SH4 cache control and flash_cache function

Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
2008-03-28 14:16:13 +09:00
Nobuhiro Iwamatsu
28e5efde4d sh: Add support PCI host driver for SH7751/SH7751R
Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
2008-03-28 14:16:13 +09:00
Nobuhiro Iwamatsu
ab8f4d40d0 sh: Move SuperH PCI driver from cpu/sh4 to drivers/pci
Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
2008-03-28 14:16:13 +09:00
Nobuhiro Iwamatsu
5669332781 sh: Add support SuperH SH7751/SH7751R
Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
2008-03-28 14:16:12 +09:00
Mark Jonas
3313e0e262 sh: Added support for SH7720 based board MPR2.
Signed-off-by: Mark Jonas <mark.jonas@de.bosch.com>
Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
2008-03-28 14:16:12 +09:00
Nobuhiro Iwamatsu
3ecff1d70a sh: Fix receive FIFO level register of SH4A
Receive FIFO level register is different in SH4A.
Because register is different, cannot occasionally receive data.

Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
2008-03-28 14:16:12 +09:00
Yusuke Goda
c133c1fb0b sh: Add support Renesas Solutions R7780MP
Renesas Solutions R7780MP is a reference board on SH7780.
This board has serial, 10/100 base Ethernet deivice, CF slot
and VGA devices. This board can set extension board.
Extension board has 10/100/1000 base Ethernet device, PCI slot,
S-ATA, iDVR slot.

Signed-off-by: Yusuke Goda <goda.yusuke@renesas.com>
Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
2008-03-28 14:16:12 +09:00
Yusuke Goda
1a2334a4eb sh: Add support PCI of SuperH and SH7780
This patch add support PCI of SuperH base code and SH7780 specific code.

Signed-off-by: Yusuke Goda <goda.yusuke@renesas.com>
Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
2008-03-28 14:16:12 +09:00
Yusuke Goda
b55523efff sh: Add support SH7780
SH7780 is CPU of Renesas Technology.
This CPU has
 - CPU clock 400MHz
 - PCI support
 - DDR-SDRAM controller
 - etc ...

Signed-off-by: Yusuke Goda <goda.yusuke@renesas.com>
Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
2008-03-28 14:16:12 +09:00
goda.yusuke
c2042f5952 sh: Add support Renesas Solutions Migo-R board
Migo-R is a board based on SH7722 and has may devices.
In this patch, supported SCIF, NOR flash and Ethernet.

Signed-off-by: Yusuke Goda <goda.yusuke@renesas.com>
Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
2008-03-28 14:16:11 +09:00
Bartlomiej Sieka
74d1e66d22 Fix host tool build breakage, take two
Revert commit 87c8431f and fix build breakage so that the build continues
to work on FC systems.

Signed-off-by: Bartlomiej Sieka <tur@semihalf.com>
2008-03-27 23:49:12 +01:00
Stefan Roese
7e4a0d25ed ppc4xx: Enable ECC on LWMON5
Since all ECC related problems seem to be resolved on LWMON5, this patch
now enables ECC support.

We have to write the ECC bytes by zeroing and flushing in smaller
steps, since the whole 256MByte takes too long for the external
watchdog.

Signed-off-by: Stefan Roese <sr@denx.de>
2008-03-27 11:01:49 +01:00
Larry Johnson
6433fa202a ppc4xx: Updates to Korat-specific code
This patch contains updates for changes for the Korat PPC440EPx board.
These changes include:

(1) Support for "permanent" and "upgradable" copies of U-Boot, as
described in the new "doc/README.korat" file;

(2) a new memory map for the registers in the board's CPLD;

(3) a revised format for manufacturer's data in serial EEPROM; and

(4) changes to track updates to U-Boot for the Sequoia board.

Signed-off-by: Larry Johnson <lrj@acm.org>
2008-03-27 10:52:03 +01:00
Markus Brunner
f766cdf89b ppc4xx: PPC405EP Set EMAC noise filter bits
This bug was introduced with commit aee747f19b
which enabled CFG_4xx_GPIO_TABLE for PPC405 and unintentionally
disabled the setting of the emac noise filter bits for PPC405EP when CFG_4xx_GPIO_TABLE is set.

Signed-off-by: Markus Brunner <super.firetwister@gmail.com>
Signed-off-by: Stefan Roese <sr@denx.de>
2008-03-27 10:47:28 +01:00
Mike Nuss
f66e2c8b25 ppc4xx: Reconfigure PLL for 667MHz processor for PPC440EPx
On PPC440EPx without a bootstrap I2C EEPROM, the PLL can be reconfigured
after startup to change the speed of the clocks. This patch adds the
option CFG_PLL_RECONFIG. If this option is set to 667, the CPU
initialization code will reconfigure the PLL to run the system with a CPU
frequency of 667MHz and PLB frequency of 166MHz, without the need for an
external EEPROM.

Signed-off-by: Mike Nuss <mike@terascala.com>
Acked-by: Stefan Roese <sr@denx.de>
2008-03-27 10:38:54 +01:00
Haavard Skinnemoen
87c8431fe2 new-image: Fix host tool build breakage
Signed-off-by: Haavard Skinnemoen <haavard.skinnemoen@atmel.com>
2008-03-27 10:30:45 +01:00
Stefan Roese
6fb4b64056 ppc: Set CFG_MEM_TOP_HIDE to 0 if not already defined
Signed-off-by: Stefan Roese <sr@denx.de>
2008-03-27 10:24:03 +01:00
Stefan Roese
9462732a3e ppc4xx: Add fdt support to Prodrive alpr
Since this board will probably be ported to arch/powerpc in the
near future, we add device tree support now. This way we are
"ready" for arch/powerpc from now on.

Signed-off-by: Stefan Roese <sr@denx.de>
2008-03-27 10:20:02 +01:00
Pieter Voorthuijsen
511e4f9e7f ppc4xx: Enable cache support on the ALPR board
Signed-off-by: Pieter Voorthuijsen <pv@prodrive.nl>
2008-03-27 10:19:57 +01:00
Stefan Roese
14f73ca679 ppc: Add CFG_MEM_TOP_HIDE option to hide memory area that doesn't get "touched"
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 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 board
ports in arch/powerpc with bootwrapper support, which recalculate the
memory size from the SDRAM controller setup, will have to get fixed
in Linux additionally.

This patch enables this config option on some PPC440EPx boards as a workaround
for the CHIP 11 errata. Here the description from the AMCC documentation:

CHIP_11: End of memory range area restricted access.
Category: 3

Overview:
The 440EPx DDR controller does not acknowledge any
transaction which is determined to be crossing over the
end-of-memory-range boundary, even if the starting address is
within valid memory space. Any such transaction from any PLB4
master will result in a PLB time-out on PLB4 bus.

Impact:
In case of such misaligned bursts, PLB4 masters will not
retrieve any data at all, just the available data up to the
end of memory, especially the 440 CPU. For example, if a CPU
instruction required an operand located in memory within the
last 7 words of memory, the DCU master would burst read 8
words to update the data cache and cross over the
end-of-memory-range boundary. Such a DCU read would not be
answered by the DDR controller, resulting in a PLB4 time-out
and ultimately in a Machine Check interrupt. The data would
be inaccessible to the CPU.

Workaround:
Forbid any application to access the last 256 bytes of DDR
memory. For example, make your operating system believe that
the last 256 bytes of DDR memory are absent. AMCC has a patch
that does this, available for Linux.

This patch sets CFG_MEM_TOP_HIDE for the following 440EPx boards:
lwmon5, korat, sequoia

The other remaining 440EPx board were intentionally not included
since it is not clear to me, if they use the end of ram for some
other purpose. This is unclear, since these boards have CONFIG_PRAM
defined and even comments like this:

PMC440.h:
/* esd expects pram at end of physical memory.
 * So no logbuffer at the moment.
 */

It is strongly recommended to not use the last 256 bytes on those
boards too. Patches from the board maintainers are welcome.

Signed-off-by: Stefan Roese <sr@denx.de>
2008-03-27 10:12:07 +01:00
Stefan Roese
c664bf8c3c ppc4xx: Fix Canyonlands linker script (remove bogus ASSERT)
Signed-off-by: Stefan Roese <sr@denx.de>
2008-03-27 10:09:05 +01:00
Stefan Roese
d56a3ce179 ppc4xx: Correctly pass phyiscal FLASH base address into dtb
The routine ft_board_setup() configures the EBC NOR mappings for the
Linux physmap_of driver. Since on 460EX/GT we remap the FLASH from
0x4.fc00.0000 to 0x4.cc00.0000 because of the max. 16MByte boot-CS
problem, we need to pass the corrected address here too.

Signed-off-by: Stefan Roese <sr@denx.de>
2008-03-27 09:54:41 +01:00
Stefan Roese
9ad31989de ppc4xx: Fix compilation warning in 4xx_enet.c
Signed-off-by: Stefan Roese <sr@denx.de>
2008-03-27 09:54:41 +01:00
Stefan Roese
4c9e855734 ppc4xx: Add AMCC Glacier 406GT eval board support
This patch adds support for the AMCC Glacier 460GT eval board.
The main difference to the Canyonlands board are listed here:

- 4 ethernet ports instead of 2
- no SATA port
- no USB port

Currently EMAC2+3 are not working. This will be fixed in a later
release.

Signed-off-by: Stefan Roese <sr@denx.de>
2008-03-27 09:54:41 +01:00
Stefan Roese
d8bd643141 ppc4xx: Mask 'vec' with 0x1f in uic_interrupt() for bit set/clear
Signed-off-by: Stefan Roese <sr@denx.de>
2008-03-27 09:54:03 +01:00
Wolfgang Denk
234ea73c66 Merge branch 'master' of git+ssh://10.10.0.7/home/wd/git/u-boot/master 2008-03-27 00:19:13 +01:00
Anatolij Gustschin
b9670dd85b Fix out of tree building issue
Currently U-Boot building in some external directory
doesn't work. This patch tries to fix the problem.

Signed-off-by: Anatolij Gustschin <agust@denx.de>
2008-03-27 00:18:58 +01:00
Wolfgang Denk
38b189fe74 Merge branch 'master' of git://www.denx.de/git/u-boot-mpc85xx 2008-03-27 00:16:34 +01:00
Wolfgang Denk
0207fefa4d Merge branch 'master' of git://www.denx.de/git/u-boot-usb 2008-03-27 00:16:18 +01:00
Anatolij Gustschin
d4ee711d8a README: update documentation (availability, links, etc.)
Fix typo in README

Signed-off-by: Anatolij Gustschin <agust@denx.de>
2008-03-27 00:13:42 +01:00
Anatolij Gustschin
e813eae3bf Fix compilation error in cmd_usb.c
This patch fixes compilation error
cmd_usb.c: In function 'do_usb':
cmd_usb.c:552: error: void value not ignored as it ought to be

Signed-off-by: Anatolij Gustschin <agust@denx.de>
2008-03-27 00:12:56 +01:00
Timur Tabi
d8c82db482 Add support for setting the I2C bus speed in fsl_i2c.c
Add support to the Freescale I2C driver (fsl_i2c.c) for setting and querying
the I2C bus speed.  Current 8[356]xx boards define the CFG_I2C_SPEED macro,
but fsl_i2c.c ignores it and uses conservative value when programming the
I2C bus speed.

Signed-off-by: Timur Tabi <timur@freescale.com>
Acked-by: Andy Fleming <afleming@freescale.com>
2008-03-27 00:09:17 +01:00
Wolfgang Denk
d049cc7f71 Coding style cleanup, update CHANGELOG
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-03-27 00:03:57 +01:00
Dave Liu
fd0b1fe3c3 drivers: add the support for Freescale SATA controller
Add the Freescale on-chip SATA controller driver to u-boot,
The SATA controller is used on the 837x and 8315 targets,
The driver can be used to load kernel, fs and dtb.

The features list:
- 1.5/3 Gbps link speed
- LBA48, LBA28 support
- DMA and FPDMA support
- Two ports support

Signed-off-by: Dave Liu <daveliu@freescale.com>
2008-03-26 23:38:58 +01:00
Dave Liu
bede87f4c8 ata: add the readme for SATA command line
Signed-off-by: Dave Liu <daveliu@freescale.com>
2008-03-26 23:38:55 +01:00
Dave Liu
cd54081cd4 ata: enable the sata initialize on boot up
Signed-off-by: Dave Liu <daveliu@freescale.com>
2008-03-26 23:38:54 +01:00
Dave Liu
69386383c5 ata: add the fis struct for SATA
Signed-off-by: Dave Liu <daveliu@freescale.com>
2008-03-26 23:38:54 +01:00
Dave Liu
ffc664e80d ata: add the libata support
add simple libata support in u-boot

Signed-off-by: Dave Liu <daveliu@freescale.com>
2008-03-26 23:38:53 +01:00
Dave Liu
8e9bb43429 ata: make the ata_piix driver using new SATA framework
original ata_piix driver is using IDE framework, not real
SATA framework. For now, the ata_piix driver is only used
by x86 sc520_cdp board. This patch makes the ata_piix driver
use the new SATA framework, so

- remove the duplicated command stuff
- remove the CONFIG_CMD_IDE define in the sc520_cdp.h
- add the CONFIG_CMD_SATA define to sc520_cdp.h

Signed-off-by: Dave Liu <daveliu@freescale.com>
2008-03-26 23:38:52 +01:00
Dave Liu
c7057b529c ata: add the support for SATA framework
- add the SATA framework
- add the SATA command line

Signed-off-by: Dave Liu <daveliu@freescale.com>
2008-03-26 23:38:51 +01:00
Dave Liu
83c7f470a4 ata: merge the header of ata_piix driver
move the sata.h from include/ to drivers/block/ata_piix.h

Signed-off-by: Dave Liu <daveliu@freescale.com>
2008-03-26 23:38:50 +01:00
Dave Liu
9eef62804d ata: merge the ata_piix driver
move the cmd_sata.c from common/ to drivers/ata_piix.c,
the cmd_sata.c have some part of ata_piix controller drivers.
consolidate the driver to have better framework.

Signed-off-by: Dave Liu <daveliu@freescale.com>
2008-03-26 23:38:48 +01:00
Markus Klotzbuecher
b9e749e953 USB, Storage: fix a bug introduced in commit
f6b44e0e4d that will cause usb_stor_info
to only print only information on one storage device, but not for
multiple.

Signed-off-by: Markus Klotzbuecher <mk@denx.de>
2008-03-26 18:26:43 +01:00
Anatolij Gustschin
841e5edd16 Fix compilation error in cmd_usb.c
This patch fixes compilation error
cmd_usb.c: In function 'do_usb':
cmd_usb.c:552: error: void value not ignored as it ought to be

Signed-off-by: Anatolij Gustschin <agust@denx.de>
Signed-off-by: Markus Klotzbuecher <mk@denx.de>
2008-03-26 18:09:55 +01:00
Kumar Gala
dd6c910aad 85xx: Add cpu_mp_lmb_reserve helper to reserve boot page
Provide a board_lmb_reserve helper function to ensure we reserve
the page of memory we are using for the boot page translation code.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2008-03-26 11:43:04 -05:00
Kumar Gala
79679d8002 85xx: Update multicore boot mechanism to ePAPR v0.81 spec
The following changes are needed to be inline with ePAPR v0.81:

* r4, r5 and now always set to 0 on boot release
* r7 is used to pass the size of the initial map area (IMA)
* EPAPR_MAGIC value changed for book-e processors
* changes in the spin table layout
* spin table supports a 64-bit physical release address

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2008-03-26 11:43:04 -05:00
Jon Loeliger
25eedb2c19 FSL: Clean up board/freescale/common/Makefile
Each file that can be built here now follows some
CONFIG_ option so that they are appropriately built
or not, as needed.  And CONFIG_ defines were added
to various board config files to make sure that happens.

The other board/freescale/*/Makefiles no longer need
to reach up and over into ../common to build their
individually needed files any more.

Boards that are CDS specific were renamed with cds_ prefix.

Signed-off-by: Jon Loeliger <jdl@freescale.com>
2008-03-26 11:43:04 -05:00
Kumar Gala
a5af4b358a 85xx: Fix merge duplication
ft_fixup_cpu() got duplicated in some merge snafu.  Remove the duplicate.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2008-03-26 11:43:04 -05:00
James Yang
5893b3d0a4 85xx: Expand CCSR space with more DDR controller registers.
Signed-off-by: James Yang <James.Yang@freescale.com>
Signed-off-by: Jon Loeliger <jdl@freescale.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2008-03-26 11:43:04 -05:00
James Yang
a3e77fa535 85xx: Speed up get_ddr_freq() and get_bus_freq()
get_ddr_freq() and get_bus_freq() used get_sys_info() each time they were
called.  However, get_sys_info() recalculates extraneous information when
called each time.  Have get_ddr_freq() and get_bus_freq() return memoized
values from global_data instead.

Signed-off-by: James Yang <James.Yang@freescale.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2008-03-26 11:43:04 -05:00
James Yang
e9ea679918 85xx: Show DDR memory data rate in addition to the memory clock frequency.
Show the DDR memory data rate in addition to the memory clock
frequency.  For DDR/DDR2 memories the memory data rate is 2x the
memory clock.

Signed-off-by: James Yang <James.Yang@freescale.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2008-03-26 11:43:04 -05:00
James Yang
591933ca6e 85xx: get_tbclk() speed up and rounding fix
Speed up get_tbclk() by referencing pre-computed bus clock
frequency value from global data instead of sys_info_t.  Fix
rounding of result to nearest; previously it was rounding
upwards.

Signed-off-by: James Yang <James.Yang@freescale.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2008-03-26 11:43:04 -05:00
Andy Fleming
1ced121600 Update SVR numbers to expand support
FSL has taken to using SVR[16:23] as an SOC sub-version field.  This
is used to distinguish certain variants within an SOC family.  To
account for this, we add the SVR_SOC_VER() macro, and update the SVR_*
constants to reflect the larger value.  We also add SVR numbers for all
of the current variants.  Finally, to make things neater, rather than
use an enormous switch statement to print out the CPU type, we create
and array of SVR/name pairs (using a macro), and print out the CPU name
that matches the SVR SOC version.

Signed-off-by: Andy Fleming <afleming@freescale.com>
2008-03-26 11:43:04 -05:00
Andy Fleming
b83eef440c Add the Freescale PCI device IDs
Signed-off-by: Andy Fleming <afleming@freescale.com>
2008-03-26 11:43:04 -05:00
Kumar Gala
7aff0c051a 85xx: Added support for multicore boot mechanism
Added the cpu command that provides a generic mechanism to get status,
reset, and release secondary cores in multicore processors.

Added support for using the ePAPR defined spin-table mechanism on 85xx.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Signed-off-by: Andy Fleming <afleming@freescale.com>
2008-03-26 11:43:03 -05:00
Kumar Gala
ec2b74ffd3 85xx: Added support for multicore boot mechanism
Added the cpu command that provides a generic mechanism to get status,
reset, and release secondary cores in multicore processors.

Added support for using the ePAPR defined spin-table mechanism on 85xx.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2008-03-26 11:43:03 -05:00
Kumar Gala
f69766e4b5 85xx: Add the concept of CFG_CCSRBAR_PHYS
When we go to 36-bit physical addresses we need to keep the concept of
the physical CCSRBAR address seperate from the virtual one.

For the majority of boards CFG_CCSBAR_PHYS == CFG_CCSRBAR

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2008-03-26 11:43:03 -05:00
Wolfgang Denk
5b5eb9ca5b Coding style cleanup.
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-03-26 15:38:47 +01:00
Joakim Tjernlund
da8808df7a Add CFG_RTC_DS1337_NOOSC to turn off OSC output
The default settings for RTC DS1337 keeps the OSC
output, 32,768 Hz, on. This add CFG_RTC_DS1337_NOOSC to
turn it off.

Signed-off-by: Joakim Tjernlund <Joakim.Tjernlund@transmode.se>
2008-03-26 15:17:42 +01:00
Wolfgang Denk
438a4c1126 Cleanup coding style, update CHANGELOG
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-03-26 11:48:46 +01:00
Wolfgang Denk
b951f8d317 Merge branch 'master_merge_new-image' of /home/tur/git/u-boot 2008-03-26 10:41:48 +01:00
Wolfgang Denk
218ca724c0 README: update documentation (availability, links, etc.)
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-03-26 10:40:12 +01:00
Bartlomiej Sieka
27f33e9f45 Merge branch 'new-image' of git://www.denx.de/git/u-boot-testing
Conflicts:

	common/cmd_bootm.c
	cpu/mpc8xx/cpu.c

Signed-off-by: Bartlomiej Sieka <tur@semihalf.com>
2008-03-26 09:38:06 +01:00
Aras Vaichas
f6b44e0e4d USB Storage, add meaningful return value
This patch changes the "usb storage" command to return success if it
finds a USB storage device, otherwise it returns error.

Signed-off-by: Markus Klotzbuecher <mk@denx.de>
2008-03-26 09:23:23 +01:00
Anton Vorontsov
18e69a35ef 83xx/fdt_support: let user specifiy FSL USB Dual-Role controller role
Linux understands "host" (default), "peripheral" and "otg" (broken).
Though, U-Boot doesn't restrict dr_mode variable to these values (think
of renames in future).

Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
2008-03-25 19:19:39 -05:00
Anton Vorontsov
c7604783b2 tsec: fix link detection for the RTL8211B PHY
RTL8211B sets link state register after autonegotiation complete,
so with bootdelay=0 RTL8211B will report lack of the link.

To fix this, we should wait for aneg to complete, even if the
link is currently down.

Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
2008-03-25 19:16:48 -05:00
Anton Vorontsov
7fa9cbb00d mpc83xx: add "fsl,soc" and "fsl,immr" compatible fixups
device_type = "soc" is being deprecated, newer device trees will use
"fsl,soc" and/or "fsl,immr" for the soc nodes.

This patch also adds clock-frequency property for soc nodes (the same
value as bus-frequency).

Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
2008-03-25 19:16:48 -05:00
Joe D'Abbraccio
507e2d79c9 Modified the DDR SDRAM clock control register to delay MCK/MCK_B 3/4 clock
With the original value of 1/2 clock cycle delay, the system ran relatively
stable except when we run benchmarks that are intensive users of memory.
When I run samba connected disk with a HDBENCH test, the system locks-up
or reboots sporadically.

Signed-off by: Joe D'Abbraccio <Joe.D'abbraccio@freescale.com>
2008-03-25 19:16:48 -05:00
Scott Wood
a7ba32d480 mpc83xx: Set PCI I/O bus-address base to zero.
The device trees for these boards describe PCI I/O as starting from
address zero from the device's perspective.

Placing I/O elsewhere may cause problems with certain PCI boards, and may
cause problems with Linux.

Signed-off-by: Scott Wood <scottwood@freescale.com>
2008-03-25 19:16:48 -05:00
Anton Vorontsov
f700e7df7f mpc83xx: MPC8360E-RDK: use 33.3(3)MHz CLKIN/SYS_CLK
At least on the "33MHz Pilot" board crystal is actually 33.3MHz.
This patch fixes "system time drifting" problem.

Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
2008-03-25 19:16:47 -05:00
Anton Vorontsov
3a0cfdd576 mpc83xx: MPC8360E-RDK: define CONFIG_OF_STDOUT_VIA_ALIAS
This is needed to update /choosen/linux,stdout-path properly.

Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
2008-03-25 19:16:47 -05:00
Anton Vorontsov
3419eb62f0 mpc83xx: MPC8360E-RDK: add dhcp command
Plus modify environment to use it and remove bootfile env variable,
it is internal and CONFIG_BOOTFILE is used for these purposes.

Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
2008-03-25 19:16:47 -05:00
Anton Vorontsov
d892b2dbb4 mpc83xx: MPC8360E-RDK: rework ddr setup, enable ecc
Current DDR setup easily causes memory corruption, this patch fixes it.

Also fix TIMING_CFG0_MRS_CYC definition.

Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
2008-03-25 19:16:47 -05:00
Anton Vorontsov
d47d49cc37 mpc83xx: MPC8360E-RDK: configure pario pins for AD7843 and FHCI
This patch adds qe pario pins configuration for AD7843 ADC/Touchscreen
controller and FHCI (QE USB).

Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
2008-03-25 19:16:47 -05:00
Anton Vorontsov
7ad9594909 mpc83xx: MPC8360E-RDK: add support for NAND
Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
2008-03-25 19:16:46 -05:00
Anton Vorontsov
9a3e832aeb mpc83xx: MPC8360E-RDK: use RGMII_RXID interface mode
This is needed for BCM PHYs to work on this board.

Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
2008-03-25 19:16:46 -05:00
Anton Vorontsov
300615dc5d uec: add support for Broadcom BCM5481 Gigabit PHY
This patch adds basic support for Broadcom BCM5481 PHY.

RXD-RXC delay quirk comes from MPC8360E-RDK BSP source, author is
Peter Barada <peterb@logicpd.com>.

Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
2008-03-25 19:16:46 -05:00
Anton Vorontsov
6a600c3a18 uec: add support for RGMII_RXID interface mode
PHY drivers will use it to setup software delay between RXD and RXC
signals.

Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
2008-03-25 19:16:46 -05:00
Anton Vorontsov
91cdaa3a9d uec: add support for gbit mii status readings
Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
2008-03-25 19:16:45 -05:00
Anton Vorontsov
aabce7fb50 83xx: define CONFIG_OF_STDOUT_VIA_ALIAS for the MPC837XERDB boards
This is primarily for the early console support.

Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
2008-03-25 19:16:45 -05:00
Anton Vorontsov
2bd7460e92 83xx: initialize serdes for MPC837XRDB boards
On the MPC8377ERDB: 2 SATA and 2 PCI-E.
On the MPC8378ERDB: 2 PCI-E
On the MPC8379ERDB: 4 SATA

Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
2008-03-25 19:16:45 -05:00
Anton Vorontsov
453316a2a1 83xx: serdes setup routines
This patch adds few routines to configure serdes on 837x targets.

Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
2008-03-25 19:16:45 -05:00
Anton Vorontsov
a796cdf9c3 83xx: split COBJS onto separate lines
..plus get rid of some #ifdefs in the .c files.

Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
2008-03-25 19:16:44 -05:00
Anton Vorontsov
46a3aeea73 83xx: nand support for MPC837XRDB boards
Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
2008-03-25 19:16:44 -05:00
Jerry Van Baren
82e45a2041 Enable CONFIG_FLASH_SHOW_PROGRESS on the MPC8360EMDS.
Signed-off-by: Gerald Van Baren <vanbaren@cideas.com>
Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
2008-03-25 19:16:44 -05:00
Michael Barkowski
0fa7a1b471 mpc8323erdb: remove RTC and add EEPROM
There's no on-board RTC on the MPC8323ERDB, but there is an EEPROM.

Signed-off-by: Michael Barkowski <michael.barkowski@freescale.com>
Acked-by: Kim Phillips <kim.phillips@freescale.com>
2008-03-25 19:16:44 -05:00
Michael Barkowski
5bbeea86eb mpc8323erdb: Improve the system performance
The following changes are based on kernel UCC ethernet performance:

1.  Make the CSB bus pipeline depth as 4, and enable the repeat mode
2.  Optimize transactions between QE and CSB.  Added CFG_SPCR_OPT
    switch to enable this setting.

The following changes are based on the App Note AN3369 and
verified to improve memory latency using LMbench:

3.  CS0_CONFIG[AP_n_EN] is changed from 1 to 0
4.  CS0_CONFIG[ODT_WR_CONFIG] set to 1.  Was a reserved setting
    previously.
5.  TIMING_CFG_1[WRREC] is changed from 3clks to 2clks  (based on
    Twr=15ns, and this was already the setting in DDR_MODE)
6.  TIMING_CFG_1[PRETOACT] is changed from 3clks to 2clks. (based on
    Trp=15ns)
7.  TIMING_CFG_1[ACTTOPRE] is changed from 9clks to 6clks. (based on
    Tras=40ns)
8.  TIMING_CFG_1[ACTTORW] is changed from 3clks to 2clks. (based on
    Trcd=15ns)
9.  TIMING_CFG_1[REFREC] changed from 21 clks to 11clks.  (based on
    Trfc=75ns)
10. TIMING_CFG_2[FOUR_ACT] is changed from 10 clks to 7clks.  (based
    on Tfaw=50ns)
11. TIMING_CFG_2[ADD_LAT] and DDR_MODE[AL] changed from 0 to 1 (based
    on CL=3 and WL=2).

Signed-off-by: Michael Barkowski <michael.barkowski@freescale.com>
Acked-by: Kim Phillips <kim.phillips@freescale.com>
2008-03-25 19:16:44 -05:00
Michael Barkowski
fc549c871f mpc8323erdb: use readable DDR config macros
Use available shift/mask macros to define DDR configuration.

Signed-off-by: Michael Barkowski <michael.barkowski@freescale.com>
Acked-by: Kim Phillips <kim.phillips@freescale.com>
2008-03-25 19:16:43 -05:00
Timur Tabi
89c7784ed9 83xx: Add Vitesse VSC7385 firmware uploading
Update the MPC8349E-mITX, MPC8313E-RDB, and MPC837XE-RDB board files to upload
the Vitesse VSC7385 firmware.  Changed CONFIG_VSC7385 to CONFIG_VSC7385_ENET.
Cleaned up the board header files to make selecting the VSC7385 easier to
control.

Signed-off-by: Timur Tabi <timur@freescale.com>
Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
2008-03-25 19:16:43 -05:00
Timur Tabi
b55d98c6d5 NET: Add Vitesse VSC7385 firmware uploading
The Vitesse VSC7385 is a 5-port switch found on the Freescale MPC8349E-mITX
and other boards.  A small firwmare must be uploaded to its on-board memory
before it can be enabled.  This patch adds the code which uploads firmware
(but not the firmware itself).

Previously, this feature was provided by a U-Boot application that was
made available only on Freescale BSPs.  The VSC7385 firmware must still
be obtained separately, but at least there is no longer a need for a separate
application.

Signed-off-by: Timur Tabi <timur@freescale.com>
Acked-by: Ben Warren <biggerbadderben@gmail.com>
2008-03-25 19:16:43 -05:00
Wolfgang Denk
aa6f6d171a Coding Style cleanyp; update CHANGELOG
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-03-26 00:52:10 +01:00
Wolfgang Denk
6525489323 Merge branch 'master' of git://www.denx.de/git/u-boot-mips 2008-03-26 00:44:52 +01:00
Wolfgang Denk
08e9443230 Merge branch 'master' of git://www.denx.de/git/u-boot-mpc86xx 2008-03-26 00:44:32 +01:00
Jerry Van Baren
43ddd9c820 Remove deprecated CONFIG_OF_HAS_UBOOT_ENV and CONFIG_OF_HAS_BD_T
These defines embedded the u-boot env variables and/or the bd_t structure
in the fdt blob.  The conclusion of discussion on the u-boot email list
was that embedding these in the fdt blob is not useful: there are better
ways of passing the data (in fact, the fdt blob itself replaces the
bd_t struct).

The only board that enables these is the stxxtc and they don't appear
to be used by linux.

Signed-off-by: Gerald Van Baren <vanbaren@cideas.com>
Acked-by: Kim Phillips <kim.phillips@freescale.com>
2008-03-26 00:22:39 +01:00
Stefan Roese
22ed228574 rtc: Remove 2nd reference to max6900.o in drivers/rtc/Makefile
Signed-off-by: Stefan Roese <sr@denx.de>
2008-03-26 00:06:19 +01:00
Kyungmin Park
1bb707c39a Add Flex-OneNAND booting support
Flex-OneNAND is a monolithic integrated circuit with a NAND Flash array
using a NOR Flash interface. This on-chip integration enables system designers
to reduce external system logic and use high-density NAND Flash
in applications that would otherwise have to use more NOR components.

Flex-OneNAND enables users to configure to partition it into SLC and MLC areas
in more flexible way. While MLC area of Flex-OneNAND can be used to store data
that require low reliability and high density, SLC area of Flex-OneNAND
to store data that need high reliability and high performance. Flex-OneNAND
can let users take advantage of storing these two different types of data
into one chip, which is making Flex-OneNAND more cost- and space-effective.

Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
2008-03-26 00:05:32 +01:00
André Schwarz
c512389cc4 MPC5200: support setup without FEC
Include FEC specific nodes in ft_cpu_setup only if CONFIG_MPC5xxx_FEC is
defined. Systems without FEC, i.e. no FEC node in DTB, should be possible.

Signed-off-by: Andre Schwarz <andre.schwarz@matrix-vision.de>
Acked-by: Grant Likely <grant.likely@secretlab.ca>
2008-03-25 23:59:43 +01:00
Jon Loeliger
aa3511e422 FSL: Move board/mpc8266ads under board/freescale
Signed-off-by: Jon Loeliger <jdl@freescale.com>
2008-03-25 23:00:40 +01:00
Jon Loeliger
7f1d846e5c FSL: Move board/mpc7448hpc2 under board/freescale
Signed-off-by: Jon Loeliger <jdl@freescale.com>
2008-03-25 23:00:36 +01:00
Jon Loeliger
b7e24d283e FSL: Move board/mpc8260ads under board/freescale
Signed-off-by: Jon Loeliger <jdl@freescale.com>
2008-03-25 23:00:00 +01:00
goda.yusuke
6a8a5dc475 net: Add support AX88796L ethernet device
AX88796L is device of NE2000 compatible.
This patch support AX88796L ethernet device.

Signed-off-by: Yusuke Goda <goda.yusuke@renesas.com>
Acked-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
2008-03-25 22:55:15 +01:00
Wolfgang Denk
e0a6140dd3 ne2000 driver: change #ifdef to Makefile conditional compilation
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-03-25 22:50:41 +01:00
goda.yusuke
e710185aae net: Divided code of NE2000 ethernet driver
There are more devices of the NE2000 base.
A present code is difficult for us to support more devices.
To support more NE2000 clone devices, separated the function.

Signed-off-by: Yusuke Goda <goda.yusuke@renesas.com>
Acked-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
2008-03-25 22:48:58 +01:00
Mike Frysinger
395bce4f59 net/Blackfin: move on-chip MAC driver into drivers/net/
The Blackfin on-chip MAC driver was being managed in the BF537-STAMP board
directory, but it is not board specific, so relocate it to the drivers dir
so that other Blackfin ports can utilize it.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2008-03-25 22:35:26 +01:00
Mike Frysinger
8a30b47009 smc91111: use SSYNC() rather than asm(ssync) for Blackfin
Since the "ssync" instruction may have hardware anomalies associated with
it, have the smc91111 driver use the SSYNC macro rather than invoking it
directly.  We workaround all the anomalies via this macro.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2008-03-25 22:32:25 +01:00
Bryan O'Donoghue
77ff7b7444 8xx: Update OF support on 8xx
This patch does some shifting around of OF support on 8xx.

Signed-off-by: Bryan O'Donoghue <bodonoghue@codehermit.ie>
2008-03-25 22:28:34 +01:00
Kumar Gala
9c666a7db0 ppc: Allow boards to specify how much memory they can map
For historical reasons we limited the stack to 256M because some boards
could only map that much via BATS.  However newer boards are capable of
mapping more memory (for example 85xx is capble of doing up to 2G).

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2008-03-25 22:26:11 +01:00
Bryan O'Donoghue
a6f5f317cd 8xx : Add OF support to Adder875 board port - resubmit
Signed-off-by: Bryan O'Donoghue <bodonoghue@codehermit.ie>
2008-03-25 22:20:36 +01:00
Kumar Gala
d058698fd2 Add setexpr command
Add a simple expr style command that will set an env variable as the result
of the command.  This allows us to do simple math in shell.  The following
operations are supported: &, |, ^, +, -, *, /.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2008-03-25 22:16:15 +01:00
Jon Loeliger
3f105faa64 FSL: Move board/mpc7448hpc2 under board/freescale
Signed-off-by: Jon Loeliger <jdl@freescale.com>
2008-03-25 09:51:43 -05:00
Jon Loeliger
449c703374 FSL: Move board/mpc8266ads under board/freescale
Signed-off-by: Jon Loeliger <jdl@freescale.com>
2008-03-25 09:51:43 -05:00
Jon Loeliger
5863577989 FSL: Move board/mpc8260ads under board/freescale
Signed-off-by: Jon Loeliger <jdl@freescale.com>
2008-03-25 09:51:43 -05:00
Shinya Kuribayashi
8a77398395 [MIPS] Move gth2_config from ARM section to MIPS
Signed-off-by: Shinya Kuribayashi <skuribay@ruby.dti.ne.jp>
2008-03-25 21:30:08 +09:00
Shinya Kuribayashi
373b16fc0c [MIPS] Extend MIPS_MAX_CACHE_SIZE upto 64kB
Signed-off-by: Shinya Kuribayashi <skuribay@ruby.dti.ne.jp>
2008-03-25 21:30:07 +09:00
Shinya Kuribayashi
d98e348e2e [MIPS] Fix dcache_status()
You can't judge UNCACHED by Config.K0 LSB.

Signed-off-by: Shinya Kuribayashi <skuribay@ruby.dti.ne.jp>
2008-03-25 21:30:07 +09:00
Shinya Kuribayashi
b0c66af53e [MIPS] Introduce _machine_restart
Handles machine specific functions by using weak functions.

Signed-off-by: Shinya Kuribayashi <skuribay@ruby.dti.ne.jp>
2008-03-25 21:30:07 +09:00
Shinya Kuribayashi
decaba6f5c [MIPS] Cleanup CP0 Status initialization
Add setup_c0_status from Linux. For the moment we disable interrupts, set
CU0, mark the kernel mode, and clear ERL and EXL. This is good enough for
reset-time configuration and will work well across most processors.

Signed-off-by: Shinya Kuribayashi <skuribay@ruby.dti.ne.jp>
2008-03-25 21:30:07 +09:00
Shinya Kuribayashi
d43d43ef28 [MIPS] Initialize CP0 Cause before setting up CP0 Status register
Without this change, we'll be suffering from deffered WATCH exception
once Status.EXL is cleared. Make sure Cause.WP is cleared.

Signed-off-by: Shinya Kuribayashi <skuribay@ruby.dti.ne.jp>
2008-03-25 21:30:07 +09:00
Shinya Kuribayashi
2613862323 [MIPS] INCA-IP: Move watchdog init code from start.S to lowlevel_init()
Move things to appropriate place.

Signed-off-by: Shinya Kuribayashi <skuribay@ruby.dti.ne.jp>
2008-03-25 21:30:07 +09:00
Shinya Kuribayashi
ccf8f824ef [MIPS] Implement flush_cache()
We do Hit_Writeback_Inv_D and Hit_Invalidate_I. You might think that you
don't need to do Hit_Invalidate_I, but flush_cache() needs it since this
function is used not only in U-Boot specfic programs but also at loading
target binaries.

Signed-off-by: Shinya Kuribayashi <skuribay@ruby.dti.ne.jp>
2008-03-25 21:30:06 +09:00
Shinya Kuribayashi
2e0e5271aa [MIPS] Fix I-/D-cache initialization loops
Currently we do 1) Index_Store_Tag_I, 2) Fill and 3) Index_Store_Tag_I
again per a loop for I-cache initialization. But according to 'See MIPS
Run', we're encouraged to use three separate loops rather than combining
them *for both I- and D-cache*. This patch tries to fix this.

In accordance with fixing above, mips_init_[id]cache are separated from
mips_cache_reset(), and rewrite cache loops are completely rewritten with
useful macros.

Signed-off-by: Shinya Kuribayashi <skuribay@ruby.dti.ne.jp>
2008-03-25 21:30:06 +09:00
Shinya Kuribayashi
1898840797 [MIPS] Replace memory clearance code with f_fill64
This routine fills memory with zero by 64 bytes, and is 64-bit capable.

Signed-off-by: Shinya Kuribayashi <skuribay@ruby.dti.ne.jp>
2008-03-25 21:30:06 +09:00
Shinya Kuribayashi
2f5d414ccb [MIPS] cpu/mips/cache.S: Introduce NESTED/LEAF/END macros
This patch replaces the current function definitions with NESTED, LEAF
and END macro. They specify some more additional information about the
function; an alignment of symbol, type of symbol, stack frame usage, etc.
These information explicitly tells the assembler and the debugger about
the types of code we want to generate.

Signed-off-by: Shinya Kuribayashi <skuribay@ruby.dti.ne.jp>
2008-03-25 21:30:06 +09:00
Shinya Kuribayashi
282223a607 [MIPS] asm headers' updates
Make some asm headers adjusted to the latest Linux kernel.

Signed-off-by: Shinya Kuribayashi <skuribay@ruby.dti.ne.jp>
2008-03-25 11:43:17 +09:00
Shinya Kuribayashi
e1390801a3 [MIPS] Request for the 'mips_cache_lock()' removal
The initial intension of having mips_cache_lock() was to use the cache
as memory for temporary stack use so that a C environment can be set up
as early as possible.

But now mips_cache_lock() follow lowlevel_init(). We've already have the
real memory initilaized at this point, therefore we could/should use it.
No reason to lock at all.

Other problems:

Cache locking is not consistent across MIPS implementaions. Some imple-
mentations don't support locking at all. The style of locking varies -
some support per line locking, others per way, etc. Some parts use bits
in status registers instead of cache ops. Current mips_cache_lock() is
not necessarily general-purpose.

And this is worthy of special mention; once U-Boot/MIPS locks the lines,
they are never get unlocked, so the code relies on whatever gets loaded
after U-Boot to re-initialize the cache and clear the locks. We're sup-
posed to have CFG_INIT_RAM_LOCK and unlock_ram_in_cache() implemented,
but leave the situation as it is for a long time.

For these reasons, I proposed the removal of mips_cache_lock() from the
global start-up code.

This patch adds CFG_INIT_RAM_LOCK_MIPS to make existing users aware that
*things have changed*. If he wants the same behavior as before, he needs
to have CFG_INIT_RAM_LOCK_MIPS in his config file.

If we don't have any regression report through several releases, then
we'll remove codes entirely.

Signed-off-by: Shinya Kuribayashi <skuribay@ruby.dti.ne.jp>
Acked-by: Andrew Dyer <amdyer@gmail.com>
2008-03-25 11:39:29 +09:00
Yuri Tikhonov
0d48926c87 lwmon5 SYSMON POST: fix backlight control
If the LWMON5 config has SYSMON POST among CONFIG_POSTs which may be
run on the board, then the SYSMON POST controls the display backlight
(doesn't switch backlight ON if POST FAILED, and does switch the
backlight ON if PASSED).

If not, then the video driver controls the display backlight (just
switch ON the backlight upon initialization).

Signed-off-by: Yuri Tikhonov <yur@emcraft.com>
2008-03-25 00:16:14 +01:00
Yuri Tikhonov
ff2bdfb2c1 lwmon5 SYSMON POST: fix handling of negative temperatures
Fix errors in the LWMON5 Sysmon POST for negative temperatures.

Signed-off-by: Yuri Tikhonov <yur@emcraft.com>
2008-03-25 00:14:46 +01:00
Wolfgang Denk
b38d7fc2f1 Merge branch 'master' of /home/wd/git/u-boot/master/ 2008-03-25 00:12:54 +01:00
Nobuhiro Iwamatsu
55774b512f pci: Add CONFIG_PCI_SKIP_HOST_BRIDGE config option
In current source code, when the device number of PCI is 0, process PCI
bridge without fail. However, when the device number is 0, it is not PCI
always bridge. There are times when device of PCI allocates.

When CONFIG_PCI_SKIP_HOST_BRIDGE is enable, this problem is solved when
use this patch.

Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
Acked-by: Stefan Roese <sr@denx.de>
2008-03-23 01:38:22 +01:00
Wolfgang Denk
47310715f4 Merge branch 'master' of git://www.denx.de/git/u-boot-tq-group 2008-03-23 00:57:40 +01:00
Wolfgang Denk
e334e05ba0 Merge branch 'master' of git://www.denx.de/git/u-boot-cfi-flash 2008-03-23 00:53:43 +01:00
Wolfgang Denk
161efeb011 Merge branch 'master' of git://www.denx.de/git/u-boot-fdt 2008-03-23 00:52:58 +01:00
Wolfgang Denk
6887cb6817 Merge branch 'master' of /home/wd/git/u-boot/work 2008-03-22 23:27:43 +01:00
Yuri Tikhonov
86aea3eaef LWMON5: fix dsPIC POST
Add test for DPIC_SYS_ERROR_REG to be zero in the LWMON5 dsPIC POST.

Signed-off-by: Yuri Tikhonov <yur@emcraft.com> ---
2008-03-22 23:26:08 +01:00
Gerald Van Baren
01026a6e61 Merge git://www.denx.de/git/u-boot into uboot 2008-03-21 11:58:22 -04:00
Gerald Van Baren
493a2b1dc9 Merge git://www.denx.de/git/u-boot into uboot 2008-03-21 11:42:54 -04:00
Bartlomiej Sieka
388b82fddc [new uImage] Enable new uImage support for the pcs440ep board.
Signed-off-by: Bartlomiej Sieka <tur@semihalf.com>
2008-03-20 23:23:13 +01:00
Bartlomiej Sieka
95f4ec2b9c [new uImage] Do not compile new uImage format support by default
Disable default building of new uImage format support in preparation
for merge with the master. Support for new format can be enabled on
a per-board basis, by defining the following in the board's config file:

#define CONFIG_FIT             1
#define CONFIG_OF_LIBFDT       1

This can be optionally defined to give more verbose output:

#define CONFIG_FIT_VERBOSE     1 /* enable fit_format_{error,warning}() */

Signed-off-by: Bartlomiej Sieka <tur@semihalf.com>
2008-03-20 23:23:13 +01:00
Bartlomiej Sieka
dafaede8a4 [new uImage] Disable debuging output in preparation for merge with master
Signed-off-by: Bartlomiej Sieka <tur@semihalf.com>
2008-03-20 23:20:31 +01:00
Bartlomiej Sieka
fbe7a15502 [new uImage] Compilation and new uImage handling fixes for imxtract
Fix imxtract command not being compiled-in despite CONFIG_CMD_XIMG being in
include/config_cmd_default.h. Fix few warnings and handling of new format
images.

Signed-off-by: Bartlomiej Sieka <tur@semihalf.com>
2008-03-20 23:20:31 +01:00
Bartlomiej Sieka
36cc8cbb33 [new uImage] Fix autoscr command used with new uImage format
Signed-off-by: Bartlomiej Sieka <tur@semihalf.com>
2008-03-20 23:10:19 +01:00
Bartlomiej Sieka
43142e817f [new uImage] Fix *.its files location in documentation
Signed-off-by: Bartlomiej Sieka <tur@semihalf.com>
2008-03-20 23:10:19 +01:00
Wolfgang Denk
81a0ac62ea lwmon5 POST: remove unreachable code
plus some coding style cleanup

Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-03-20 22:01:38 +01:00
Yuri Tikhonov
b73a19e160 LWMON5: POST RTC fix
Modify the RTC API to provide one a status for the time reported by
the rtc_get() function:
  0 - a reliable time is guaranteed,
< 0 - a reliable time isn't guaranteed (power fault, clock issues,
      and so on).

The RTC chip drivers are responsible for providing this info if the
corresponding chip supports such functionality. If not - always
report that the time is reliable.

The POST RTC test was modified to detect the RTC faults utilizing
this new rtc_get() feature.

Signed-off-by: Yuri Tikhonov <yur@emcraft.com>
2008-03-20 21:48:46 +01:00
Martin Krause
a5cc5555cc TQM5200B: update MTD partition layout
- insert partition for dtb blob to TQM5200B MTD layout
- set env variables dependent on the configured board
  (TQM5200 or TQM5200B)

Signed-off-by: Martin Krause <martin.krause@tqs.de>
2008-03-19 14:33:17 +01:00
Stefan Roese
f0105727d1 CFI: Small cleanup for FLASH_SHOW_PROGRESS
With this patch we don't need that many #ifdef's in the code. It moves
the subtraction into the macro and defines a NOP-macro when
CONFIG_FLASH_SHOW_PROGRESS is not defined.

Signed-off-by: Stefan Roese <sr@denx.de>
Acked-by: Gerald Van Baren <vanbaren@cideas.com>
2008-03-19 13:41:25 +01:00
Jerry Van Baren
9a042e9ca5 Flash programming progress countdown.
Signed-off-by: Gerald Van Baren <vanbaren@cideas.com>
2008-03-19 13:41:25 +01:00
Bartlomiej Sieka
5e339fd9ed [new uImage] Fix style issue spotted by Wolfgang Denk <wd@denx.org>
Signed-off-by: Bartlomiej Sieka <tur@semihalf.com>
2008-03-19 10:00:06 +01:00
David Gibson
11abe45c48 libfdt: Remove no longer used code from fdt_node_offset_by_compatible()
Since fdt_node_offset_by_compatible() was converted to the new
fdt_next_node() iterator, a chunk of initialization code became
redundant, but was not removed by oversight.  This patch cleans it up.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
2008-03-18 21:03:45 -04:00
David Gibson
d0ccb9b140 libfdt: Trivial cleanup for CHECK_HEADER)
Currently the CHECK_HEADER() macro is defined local to fdt_ro.c.
However, there are a handful of functions (fdt_move, rw_check_header,
fdt_open_into) from other files which could also use it (currently
they open-code something more-or-less identical).  Therefore, this
patch moves CHECK_HEADER() to libfdt_internal.h and uses it in those
places.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
2008-03-18 21:03:45 -04:00
Kumar Gala
fe30a354cd Fix fdt boardsetup command parsing
The introduciton of the 'fdt bootcpu' broke parsing for 'fdt boardsetup'.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2008-03-18 21:03:45 -04:00
Kumar Gala
804887e600 Add sub-commands to fdt
fdt header                          - Display header info
fdt bootcpu <id>                    - Set boot cpuid
fdt memory <addr> <size>            - Add/Update memory node
fdt rsvmem print                    - Show current mem reserves
fdt rsvmem add <addr> <size>        - Add a mem reserve
fdt rsvmem delete <index>           - Delete a mem reserves

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2008-03-18 21:03:45 -04:00
David Gibson
f84d65f9b0 libfdt: Fix NOP handling bug in fdt_add_subnode_namelen()
fdt_add_subnode_namelen() has a bug if asked to add a subnode to a
node which has NOP tags interspersed with its properties.  In this
case fdt_add_subnode_namelen() will put the new subnode before the
first NOP tag, even if there are properties after it, which will
result in an invalid blob.

This patch fixes the bug, and adds a testcase for it.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
2008-03-18 21:03:45 -04:00
David Gibson
ae0b5908de libfdt: Add and use a node iteration helper function.
This patch adds an fdt_next_node() function which can be used to
iterate through nodes of the tree while keeping track of depth.  This
function is used to simplify the iteration code in a lot of other
functions, and is also exported for use by library users.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
2008-03-18 21:03:45 -04:00
David Gibson
9eaeb07a71 libfdt: Add fdt_set_name() function
This patch adds an fdt_set_name() function to libfdt, mirroring
fdt_get_name().  This is a r/w function which alters the name of a
given device tree node.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
2008-03-18 21:03:45 -04:00
Yuri Tikhonov
23e20aa648 lwmon5: Fix register test logic to match the specific GDC h/w.
Signed-off-by: Dmitry Rakhchev <rda@emcraft.com>
Signed-off-by: Yuri Tikhonov <yur@emcraft.com>
2008-03-18 22:24:49 +01:00
Yuri Tikhonov
46bc0a9387 Fix backlight in the lwmon5 POST.
Backlight was switched on even when temperature was too low.

Signed-off-by: Dmitry Rakhchev <rda@emcraft.com>
Signed-off-by: Yuri Tikhonov <yur@emcraft.com>
2008-03-18 22:24:48 +01:00
Yuri Tikhonov
3d61018643 The patch introduces the alternative configuration of the log buffer for the lwmon5 board: the storage for the log-buffer itself is OCM(on-chip memory), the log-buffer header is moved to six GPT registers (PPC440EPX_GPT0_COMP1, ..., PPC440EPX_GPT0_COMP5).
To enable this, alternative, configuration the U-Boot board configuration
file for lwmon5 includes the definitions of alternative addresses for header
(CONFIG_ALT_LH_ADDR) and buffer (CONFIG_ALT_LB_ADDR).

 The Linux shall be configured with the CONFIG_ALT_LB_LOCATION option set,
and has the BOARD_ALT_LH_ADDR and BOARD_ALT_LB_ADDR constants defined in the
lwmon5 board-specific header (arch/ppc/platforms/4xx/lwmon5.h).

Signed-off-by: Yuri Tikhonov <yur@emcraft.com>
2008-03-18 22:24:48 +01:00
Yuri Tikhonov
0f009f781b Add support for the lwmon5 board reset via GPIO58.
Signed-off-by: Dmitry Rakhchev <rda@emcraft.com>
Signed-off-by: Yuri Tikhonov <yur@emcraft.com>
2008-03-18 22:24:48 +01:00
Yuri Tikhonov
f694e32f93 Some fixes to dspic, fpga, and gdc post tests for lwmon5. Disable external watch-dog for now.
Signed-off-by: Dmitry Rakhchev <rda@emcraft.com>
Signed-off-by: Yuri Tikhonov <yur@emcraft.com>
2008-03-18 22:24:48 +01:00
Yuri Tikhonov
b428f6a8c6 The patch introduces the CRITICAL feature of POST tests. If the test marked as POST_CRITICAL fails then the alternative, post_critical, boot-command is used. If this command is not defined then U-Boot enters into interactive mode.
Signed-off-by: Dmitry Rakhchev <rda@emcraft.com>
Signed-off-by: Yuri Tikhonov <yur@emcraft.com>
2008-03-18 22:24:48 +01:00
Yuri Tikhonov
8f15d4addd The patch adds new POST tests for the Lwmon5 board. These are:
* External Watchdog test;
* dsPIC tests;
* FPGA test;
* GDC test;
* Sysmon tests.

Signed-off-by: Dmitry Rakhchev <rda@emcraft.com>
Signed-off-by: Yuri Tikhonov <yur@emcraft.com>
2008-03-18 22:24:47 +01:00
Yuri Tikhonov
c2ed33efbf Enable CODEC POST with CFG_POST_CODEC rather than with CFG_POST_DSP.
Signed-off-by: Dmitry Rakhchev <rda@emcraft.com>
2008-03-18 22:24:47 +01:00
Wolfgang Denk
fdeb932b1c Merge branch 'master' of git://www.denx.de/git/u-boot-blackfin 2008-03-18 22:15:58 +01:00
Yuri Tikhonov
3a5d1e7f13 lwmon5: Fix register test logic to match the specific GDC h/w.
Signed-off-by: Dmitry Rakhchev <rda@emcraft.com>
Signed-off-by: Yuri Tikhonov <yur@emcraft.com>
2008-03-18 22:05:37 +01:00
Yuri Tikhonov
0f855a1f05 Fix backlight in the lwmon5 POST.
Backlight was switcehd on even when temperature was too low.

Signed-off-by: Dmitry Rakhchev <rda@emcraft.com>
Signed-off-by: Yuri Tikhonov <yur@emcraft.com>
2008-03-18 22:04:06 +01:00
Yuri Tikhonov
2d991958b1 The patch introduces the alternative configuration of the log buffer for
the lwmon5 board: the storage for the log-buffer itself is OCM(on-chip memory),
the log-buffer header is moved to six GPT registers (PPC440EPX_GPT0_COMP1, ...,
PPC440EPX_GPT0_COMP5).

 To enable this, alternative, configuration the U-Boot board configuration
file for lwmon5 includes the definitions of alternative addresses for header
(CONFIG_ALT_LH_ADDR) and buffer (CONFIG_ALT_LB_ADDR).

 The Linux shall be configured with the CONFIG_ALT_LB_LOCATION option set,
and has the BOARD_ALT_LH_ADDR and BOARD_ALT_LB_ADDR constants defined in the
lwmon5 board-specific header (arch/ppc/platforms/4xx/lwmon5.h).

Signed-off-by: Yuri Tikhonov <yur@emcraft.com>
2008-03-18 21:59:24 +01:00
Yuri Tikhonov
ff818b21b0 Add support for the lwmon5 board reset via GPIO58.
Signed-off-by: Dmitry Rakhchev <rda@emcraft.com>
Signed-off-by: Yuri Tikhonov <yur@emcraft.com>
2008-03-18 21:59:24 +01:00
Yuri Tikhonov
603f194e5a Some fixes to dspic, fpga, and gdc post tests for lwmon5.
Disable external watch-dog for now.

Signed-off-by: Dmitry Rakhchev <rda@emcraft.com>
Signed-off-by: Yuri Tikhonov <yur@emcraft.com>
2008-03-18 21:59:23 +01:00
Yuri Tikhonov
e262efe357 The patch introduces the CRITICAL feature of POST tests. If the test
marked as POST_CRITICAL fails then the alternative, post_critical,
boot-command is used. If this command is not defined then U-Boot
enters into interactive mode.

Signed-off-by: Dmitry Rakhchev <rda@emcraft.com>
Signed-off-by: Yuri Tikhonov <yur@emcraft.com>
2008-03-18 21:59:23 +01:00
Yuri Tikhonov
65b20dcefc The patch adds new POST tests for the Lwmon5 board.
These are:

* External Watchdog test;
* dsPIC tests;
* FPGA test;
* GDC test;
* Sysmon tests.

Signed-off-by: Dmitry Rakhchev <rda@emcraft.com>
Signed-off-by: Yuri Tikhonov <yur@emcraft.com>
2008-03-18 21:59:23 +01:00
Yuri Tikhonov
8dc3b2303d Enable CODEC POST with CFG_POST_CODEC rather than with CFG_POST_DSP.
Signed-off-by: Dmitry Rakhchev <rda@emcraft.com>
2008-03-18 21:59:23 +01:00
Wolfgang Denk
3515fd18d4 HMI1001: fix compile problem.
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-03-18 17:35:51 +01:00
Mike Frysinger
1f2a997010 Blackfin: BF537-stamp: drop board-specific flash driver for CFI
The parallel flash on the BF537-STAMP is CFI compliant, so there is no need
for the board specific driver at all.  Just use the common CFI driver.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2008-03-15 22:17:21 -04:00
Mike Frysinger
5b22163fef Blackfin: add proper ELF markings to some assembly functions
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2008-03-15 22:14:57 -04:00
Mike Frysinger
cf675d3b2b Blackfin: new cplbinfo command for viewing cplb tables
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2008-03-15 22:14:54 -04:00
Mike Frysinger
aadb72503c Blackfin: update MAINTAINERS list
Add maintainer information for the Blackfin boards.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2008-03-15 22:14:49 -04:00
Mike Frysinger
f7ce12cb65 Blackfin: convert BFIN_CPU to CONFIG_BFIN_CPU
Stop tying things to the processor that should be tied to other defines and
change BFIN_CPU to CONFIG_BFIN_CPU so that it can be used in the build
system to select the -mcpu option.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2008-03-15 22:14:14 -04:00
Mike Frysinger
86a20fb920 Blackfin: move bootldr command to common code
This moves the Blackfin-common bootldr command out of the BF537-STAMP
specific board directory and into the common directory so that all Blackfin
boards may utilize it.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2008-03-15 22:13:58 -04:00
Wolfgang Denk
e95bcc3661 Merge branch 'master' of git+ssh://10.10.0.7/home/wd/git/u-boot/master
Conflicts:

	drivers/rtc/Makefile

Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-03-16 01:50:18 +01:00
Heiko Schocher
decbe029b2 mgcoge: update configuration
Fix configuration for mgcoge board

Signed-off-by: Heiko Schocher <hs@denx.de>
2008-03-16 01:26:27 +01:00
Wolfgang Denk
c136724cda drivers/rtc/Makefile: keep list sorted
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-03-16 01:22:59 +01:00
Tor Krill
9536dfcce0 Add support for Intersil isl1208 RTC
Signed-off-by: Tor Krill <tor@excito.com>
2008-03-16 01:21:30 +01:00
Jean-Christophe PLAGNIOL-VILLARD
0210cff3d0 cramfs: Fix ifdef
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
2008-03-16 01:18:45 +01:00
Wolfgang Denk
0b8f2a2786 Conding style cleanup
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-03-16 01:12:58 +01:00
Stefan Roese
41712b4e8c ppc4xx: Add USB OHCI support to AMCC Canyonlands 460EX eval board
This patch adds USB OHCI support to the Canyonlands board port. It also
enables EXT2 support.

Signed-off-by: Stefan Roese <sr@denx.de>
2008-03-15 07:28:05 +01:00
Stefan Roese
2596f5b9d3 usb: Add CFG_OHCI_USE_NPS to common USB-OHCI driver
This patch adds CFG_OHCI_USE_NPS to the common USB-OHCI driver. This
way a board just needs to define this new option to enable the "force
NoPowerSwitching mode" instead of adding new CPU/architecture defines
to the USB source itself.

This new option will be used first with the new AMCC 460EX Canyonlands
board port, which will be posted in a few days.

This patch also fixes a small compilation problem when DEBUG is enabled.

Signed-off-by: Stefan Roese <sr@denx.de>
2008-03-15 07:28:05 +01:00
Stefan Roese
71665ebf88 ppc4xx: Add Canyonlands NAND booting support
460EX doesn't support a fixed bootstrap option to boot from 512 byte page
NAND devices. The only bootstrap option for NAND booting is option F for
2k page devices. So to boot from a 512 bype page device, the I2C bootstrap
EEPROM needs to be programmed accordingly.

This patch adds basic NAND booting support for the AMCC Canyonlands aval
board and also adds support to the "bootstrap" command, to enable NAND
booting I2C setting.

Tested with 512 byte page NAND device (32MByte) on Canyonlands.

Signed-off-by: Stefan Roese <sr@denx.de>
2008-03-15 07:28:05 +01:00
Stefan Roese
c813f1f835 ppc4xx: Add AMCC Canyonlands support (460EX) (3/3)
This patch adds support for the AMCC Canyonlands 460EX evaluation
board.

Signed-off-by: Stefan Roese <sr@denx.de>
2008-03-15 07:28:05 +01:00
Stefan Roese
6983fe21f7 ppc4xx: Add AMCC Canyonlands support (460EX) (2/3)
This patch adds support for the AMCC Canyonlands 460EX evaluation
board.

Signed-off-by: Stefan Roese <sr@denx.de>
2008-03-15 07:28:04 +01:00
Stefan Roese
8e1a3fe545 ppc4xx: Add AMCC Canyonlands support (460EX) (1/3)
This patch adds support for the AMCC Canyonlands 460EX evaluation
board.

Signed-off-by: Stefan Roese <sr@denx.de>
2008-03-15 07:28:04 +01:00
Stefan Roese
43c60992cd ppc4xx: Add basic support for AMCC 460EX/460GT (5/5)
This patch adds basic support for the AMCC 460EX/460GT PPC's.

Signed-off-by: Stefan Roese <sr@denx.de>
2008-03-15 07:28:04 +01:00
Stefan Roese
6f2eb3f3d8 ppc4xx: Add basic support for AMCC 460EX/460GT (4/5)
This patch adds basic support for the AMCC 460EX/460GT PPC's.

Signed-off-by: Stefan Roese <sr@denx.de>
2008-03-15 07:28:04 +01:00
Stefan Roese
999ecd5aca ppc4xx: Add basic support for AMCC 460EX/460GT (3/5)
This patch adds basic support for the AMCC 460EX/460GT PPC's.

Signed-off-by: Stefan Roese <sr@denx.de>
2008-03-15 07:28:04 +01:00
Stefan Roese
2801b2d2a9 ppc4xx: Add basic support for AMCC 460EX/460GT (2/5)
This patch adds basic support for the AMCC 460EX/460GT PPC's.

Signed-off-by: Stefan Roese <sr@denx.de>
2008-03-15 07:28:04 +01:00
Stefan Roese
8ac41e3e37 ppc4xx: Add basic support for AMCC 460EX/460GT (1/5)
This patch adds basic support for the AMCC 460EX/460GT PPC's.

Signed-off-by: Stefan Roese <sr@denx.de>
2008-03-15 07:28:03 +01:00
Stefan Roese
56e4101783 ppc4xx: interrupt.c reworked
This patch is a rework of the 4xx interrupt handling done while
adding the 460EX/GT support. Interrupts are needed on 4xx for the
EMAC driver.

Signed-off-by: Stefan Roese <sr@denx.de>
2008-03-15 07:28:03 +01:00
Stefan Roese
84a999b6cd ppc4xx: program_tlb now uses 64bit physical addess
This patch changes the physical addess parameter from 32bit to 64bit.
This is needed for 36bit 4xx platforms to access areas located
beyond the 4GB border, like SoC peripherals (EBC etc.).

Signed-off-by: Stefan Roese <sr@denx.de>
2008-03-15 07:28:03 +01:00
Stefan Roese
c3307fa186 ppc4xx: miiphy.c reworked
While adding the 460EX/GT support I reworked the 4xx miiphy code. It
badly neede some cleanup.

Signed-off-by: Stefan Roese <sr@denx.de>
2008-03-15 07:28:03 +01:00
Stefan Roese
88aff62df3 rtc: Add M41T62 support
This patch add support for the STM M41T62 RTC. It is used and tested
on the AMCC Canyonlands 406EX platform.

Signed-off-by: Stefan Roese <sr@denx.de>
2008-03-15 07:28:03 +01:00
Niklaus Giger
217d383e20 ppc4xx: Add 405GPr based MCU25 board specific files
Signed-off-by: Niklaus Giger <niklaus.giger@netstal.com>
2008-03-15 07:26:32 +01:00
Niklaus Giger
75a66dcdb3 ppc4xx: Add 405GPr based MCU25 board config file
Signed-off-by: Niklaus Giger <niklaus.giger@netstal.com>
2008-03-15 07:26:27 +01:00
Niklaus Giger
b05f35436b ppc4xx: Add 405GPr based MCU25 board. Global files
Signed-off-by: Niklaus Giger <niklaus.giger@netstal.com>
2008-03-15 07:26:21 +01:00
Niklaus Giger
14c27b35ac ppc4xx: HCU4/5. remove obsolete hcu_flash.c
Signed-off-by: Niklaus Giger <niklaus.giger@netstal.com>
2008-03-15 07:26:12 +01:00
Niklaus Giger
a079494853 ppc4xx: HCU4/5. Use FLASH_CFI_LEGACY
Cleanup: Remove custom flash driver for 8 bit boot-eprom and replace it with
the FLASH_CFI_LEGACY et al. config options.

Signed-off-by: Niklaus Giger <niklaus.giger@netstal.com>
2008-03-15 07:25:50 +01:00
Stefan Roese
e4170e5a50 ppc4xx: Fix comment in 405EX DDR2 init code
Signed-off-by: Stefan Roese <sr@denx.de>
2008-03-15 07:22:15 +01:00
Bartlomiej Sieka
766529fccc Add MD5 support to the new uImage format
Signed-off-by: Bartlomiej Sieka <tur@semihalf.com>
2008-03-14 16:22:34 +01:00
Bartlomiej Sieka
0ede0c3835 Add the MD5 algorithm
MD5 supoprt is turned on by defining CONFIG_MD5, the digest can be then
calculated using the md5() function -- see include/md5.h for details.
		    
Signed-off-by: Bartlomiej Sieka <tur@semihalf.com>
2008-03-14 16:22:34 +01:00
Wolfgang Denk
b8aa57b5d4 tools/setlocalversion: use a git-describe-ish format
Change the automatic local version to have the form -nnnnn-gSHA1SUMID,
where 'nnnnn' is the number of commits since the last tag (i.e.,
1.3.2-rc3).  This makes it much easier to recognize "newer" versions
and to see how much has been changed since the referenced tag.

Stolen from Linux kernel's scripts/setlocalversio, see commit d882421f.

Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-03-14 16:04:54 +01:00
Wolfgang Denk
c6dc21c84d HMI1001: add support for MPC5200 Rev. B processors.
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-03-13 14:32:03 +01:00
Wolfgang Denk
90f13dce7a TQM5200: remove dead code
This board never used a MGT5100 processor.

Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-03-13 14:29:49 +01:00
Marian Balakowicz
7e492d8258 Merge branch 'master' of git://www.denx.de/git/u-boot into new-image 2008-03-12 12:23:02 +01:00
Marian Balakowicz
afe45c87e3 [new uImage] Fix build issue on ARM
ARM platforms don't have a bd->bi_memsize so use bd->bi_dram[0].size instead.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2008-03-12 12:14:15 +01:00
Marian Balakowicz
3310c549a7 [new uImage] Add new uImage format documentation and examples
Create doc/uImage.FIT documentation directory with the following files:
- command_syntax_extensions.txt : extended command syntax description
- howto.txt                     : short usage howto
- source_file_format.txt        : internal new uImage format description

Add example image source files:
- kernel.its
- kernel_fdt.its
- multi.its

Update README appropriately.

Signed-off-by: Marian Balakowicz <m8@semihalf.com>
Signed-off-by: Bartlomiej Sieka <tur@semihalf.com>
2008-03-12 12:13:13 +01:00
Marian Balakowicz
1ec73761d2 [new uImage] Fix definition of common bootm_headers_t fields
verify, autostart and lmb fields are used regardless of CONFIG_FIT
setting, move their definitions to common section.

Signed-off-by: Marian Balakowicz <m8@semihalf.com>
2008-03-12 10:35:52 +01:00
Marian Balakowicz
1d1cb4270e [new uImage] Fix build problems on trab board
Signed-off-by: Marian Balakowicz <m8@semihalf.com>
2008-03-12 10:35:51 +01:00
Marian Balakowicz
f773bea8e1 [new uImage] Add proper ramdisk/FDT handling when FIT configuration is used
Save FIT configuration provied in the first bootm argument and use it
when to get ramdisk/FDT subimages when second and third (ramdisk/FDT)
arguments are not specified.

Signed-off-by: Marian Balakowicz <m8@semihalf.com>
2008-03-12 10:35:46 +01:00
Marian Balakowicz
2682ce8a42 [new uImage] More verbose kernel image uncompress error message
Signed-off-by: Marian Balakowicz <m8@semihalf.com>
2008-03-12 10:33:01 +01:00
Marian Balakowicz
1372cce2b9 [new uImage] Use show_boot_progress() for new uImage format
This patch allocates a set of show_boot_progress() IDs for new uImage format
and adds show_boot_progress() calls in new uImage format handling code.

Signed-off-by: Marian Balakowicz <m8@semihalf.com>
2008-03-12 10:33:01 +01:00
Marian Balakowicz
c28c4d193d [new uImage] Add new uImage fromat support to fpga command
Signed-off-by: Marian Balakowicz <m8@semihalf.com>
2008-03-12 10:33:01 +01:00
Marian Balakowicz
09475f7527 [new uImage] Add new uImage format handling to other bootm related commands
Updated commands:

docboot  - cmd_doc.c
fdcboot  - cmd_fdc.c
diskboot - cmd_ide.c
nboot    - cmd_nand.c
scsiboot - cmd_scsi.c
usbboot  - cmd_usb.c

Signed-off-by: Marian Balakowicz <m8@semihalf.com>
2008-03-12 10:33:01 +01:00
Marian Balakowicz
1b7897f28d [new uImage] Add new uImage format support to imgextract command
Signed-off-by: Marian Balakowicz <m8@semihalf.com>
2008-03-12 10:33:00 +01:00
Marian Balakowicz
424c4abdd1 [new uImage] Add new uImage format support to autoscript routine
autoscript() routine is updated to accept second argument, which
is only used for FIT images and provides a FIT subimage unit name.

autoscript() routine callers must now pass two arguments. For
non-interactive use (like in cmd_load.c, cmd_net.c), new environment
variable 'autoscript_uname' is introduced and used as a FIT
subimage unit name source.

autoscript command accepts extended syntax of the addr argument:
addr:<subimg_uname>

Signed-off-by: Marian Balakowicz <m8@semihalf.com>
2008-03-12 10:33:00 +01:00
Marian Balakowicz
cd7c596e9f [new uImage] Add new uImage format support to arch specific do_bootm_linux() routines
This patch updates architecture specific implementations of
do_bootm_linux() adding new uImage format handling for
operations like get kernel entry point address, get kernel
image data start address.

Signed-off-by: Marian Balakowicz <m8@semihalf.com>
2008-03-12 10:33:00 +01:00
Marian Balakowicz
3dfe110149 [new uImage] Add node offsets for FIT images listed in struct bootm_headers
This patch adds new node offset fields to struct bootm_headers
and updates bootm_headers processing code to make use of them.
Saved node offsets allow to avoid repeating fit_image_get_node() calls.

Signed-off-by: Marian Balakowicz <m8@semihalf.com>
2008-03-12 10:32:59 +01:00
Marian Balakowicz
bc8ed486b1 [new uImage] ppc: Add new uImage format support to FDT handling routines
Support for new (FIT) format uImages is added to powerpc specific
boot_get_fdt() routine which now recognizes, sanity checks FIT image
and is able to access data sections of the requested component image.

Signed-off-by: Marian Balakowicz <m8@semihalf.com>
2008-03-12 10:32:53 +01:00
Marian Balakowicz
a44a269a90 [new uImage] Re-enable interrupts for non automatic booting
Re-enable interrupts if we return from do_bootm_<os> and 'autostart'
environment variable is not set to 'yes'.

Signed-off-by: Marian Balakowicz <m8@semihalf.com>
2008-03-12 10:14:57 +01:00
Marian Balakowicz
d985c8498c [new uImage] Remove unnecessary arguments passed to ramdisk routines
boot_get_ramdisk() and image_get_ramdisk() do not need all
cmdtp, flag, argc and argv arguments. Simplify routines definition.

Signed-off-by: Marian Balakowicz <m8@semihalf.com>
2008-03-12 10:14:38 +01:00
Marian Balakowicz
c87796483b [new uImage] Add new uImage format support for ramdisk handling
This patch updates boot_get_ramdisk() routine adding format
verification and handling for new (FIT) uImages.

Signed-off-by: Marian Balakowicz <m8@semihalf.com>
2008-03-12 10:12:37 +01:00
Marian Balakowicz
6986a38567 [new uImage] Add new uImage format support for kernel booting
New format uImages are recognized by the bootm command,
validity of specified kernel component image is checked and
its data section located and used for further processing
(uncompress, load, etc.)

Signed-off-by: Marian Balakowicz <m8@semihalf.com>
2008-03-12 10:01:05 +01:00
Marian Balakowicz
e32fea6adb [new uImage] Add new uImage format support for imls and iminfo commands
imls and iminfo can now recognize nad print out contents of the new (FIT)
format uImages.

Signed-off-by: Marian Balakowicz <m8@semihalf.com>
2008-03-11 12:35:20 +01:00
Bartlomiej Sieka
9d25438fe7 [new uImage] Add support for new uImage format to mkimage tool
Support for the new uImage format (FIT) is added to mkimage tool.
Commandline syntax is appropriately extended:

mkimage [-D dtc_options] -f fit-image.its fit-image

mkimage (together with dtc) takes fit-image.its and referenced therein
binaries (like vmlinux.bin.gz) as inputs, and produces fit-image file -- the
final image that can be transferred to the target (e.g., via tftp) and then
booted using the bootm command in U-Boot.

Signed-off-by: Bartlomiej Sieka <tur@semihalf.com>
2008-03-11 12:34:47 +01:00
Marian Balakowicz
eb6175edd6 [new uImage] Make node unit names const in struct bootm_headers
Signed-off-by: Marian Balakowicz <m8@semihalf.com>
2008-03-10 17:53:49 +01:00
Marian Balakowicz
5dfb521386 [new uImage] New uImage low-level API
Add FDT-based functions for handling new format component images,
configurations, node operations, property get/set, etc.

fit_        - routines handling global new format uImage operations
              like get/set top level property, process all nodes, etc.
fit_image_  - routines handling component images subnodes
fit_conf_   - routines handling configurations node

Signed-off-by: Bartlomiej Sieka <tur@semihalf.com>
Signed-off-by: Marian Balakowicz <m8@semihalf.com>
2008-03-10 17:51:07 +01:00
Wolfgang Denk
30f1806f60 Release v1.3.2
Update CHANGELOG for release.

Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-03-09 16:20:02 +01:00
Jean-Christophe PLAGNIOL-VILLARD
5b464c289b SCM: fix 'packed' attribute ignored for field of type 'can_msg_t' warnings
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-03-09 15:15:22 +01:00
Jean-Christophe PLAGNIOL-VILLARD
db695b7851 scb9328: Fix flash warning: type qualifiers ignored on function return type
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
2008-03-09 15:15:06 +01:00
Wolfgang Denk
2b3e7e61d6 esd/common/fpga.c: fix indentation.
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-03-09 10:50:41 +01:00
Wolfgang Denk
cc3843e364 common/kgdb.c: fix 'dereferencing type-punned pointer' warning
and get rid of a couple of unneeded casts.

Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-03-09 10:33:31 +01:00
Wolfgang Denk
8d4f4a838d esd/common/fpga.c: fix 'assignment of read-only location' error
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-03-09 10:09:53 +01:00
Wolfgang Denk
c6fe4dabac Makefile: make build silently again.
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-03-09 02:13:19 +01:00
Wolfgang Denk
76babc8657 m501sk: Fix out of tree building
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-03-09 02:07:49 +01:00
Wolfgang Denk
210ed2004e ADS5121: fix out of tree build
and simplify Makefile a bit.

Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-03-09 00:06:09 +01:00
Wolfgang Denk
46cb5074a3 Release v1.3.2
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-03-08 22:35:31 +01:00
Wolfgang Denk
78a90f827d Update CHANGELOG
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-03-08 22:35:04 +01:00
Jean-Christophe PLAGNIOL-VILLARD
58f3c57c60 esd: Fix warning: passing argument 1 of 'fpga_boot' discards qualifiers from pointer target type
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
2008-03-08 22:34:17 +01:00
Nobuhiro Iwamatsu
d75469d48c net: rtl8169: Add processing when OWNbit did't enable in rtl_recv()
When rtl_recv() of rtl8169 is called, OWNbit of status register
is not enable occasionally.
rtl_recv() doesn't work normally when the driver doesn't do
appropriate processing.
This patch fix this problem.

Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
2008-03-08 10:59:27 +01:00
Wolfgang Denk
377151c817 Merge branch 'master' of git://www.denx.de/git/u-boot-mpc83xx 2008-03-08 10:55:46 +01:00
Wolfgang Denk
1ac14d8ea8 Merge branch 'master' of git://www.denx.de/git/u-boot-ppc4xx 2008-03-08 10:51:53 +01:00
Heiko Schocher
82afabfeb8 mgsuvd: update board configuration
initialize the UPIOx controller.

Signed-off-by: Heiko Schocher <hs@denx.de>
2008-03-08 10:50:09 +01:00
Heiko Schocher
e492c90c26 mgcoge: update board configuration
add support for the config Flash.
initialize the UPIOx controller.

Signed-off-by: Heiko Schocher <hs@denx.de>
2008-03-08 10:48:59 +01:00
Kim Phillips
270fe261b7 mpc83xx: make dtb basename file references equal those of linux
the dts file basenames were updated in linux - this helps avoid
inadvertently loading any old dtbs laying around.

Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
2008-03-07 12:47:11 -06:00
Kim Phillips
f30b6154f1 net: uec_phy: actually increment the timeout counter
allow u-boot to recover (and, e.g., switch to another interface) in the
case where a PHY does not report autonegotiation is complete within its
two second timeout value.

Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
2008-03-07 12:47:08 -06:00
Markus Brunner
772003e439 fix taihu soft spi_read
The taihu board used gpio_read_out_bit which reads the output register and not
the pin state.

Signed-off-by: Markus Brunner <super.firetwister@gmail.com>
2008-03-07 09:15:26 +01:00
Stefan Roese
fc84a8495a ppc4xx: Sequoia: Add device tree (fdt) Linux booting default env variables
Signed-off-by: Stefan Roese <sr@denx.de>
2008-03-07 08:01:43 +01:00
Stefan Roese
848e03110c Merge branch 'master' of /home/stefan/git/u-boot/u-boot 2008-03-07 07:47:30 +01:00
Dave Liu
bd4458cb47 837xEMDS: Improve the system performance
1. Make the CSB bus pipeline depth as 4, and enable
   the repeat mode;
2. Raise the eTSEC emergency priority;
3. Use the highest IP blocks clock.

Signed-off-by: Dave Liu <daveliu@freescale.com>
2008-03-07 00:21:03 +01:00
Detlev Zundel
d8ab58b212 Replace "run load; run update" with conditionalized "run load update".
The latter version stops when "run load" fails for whatever reasons
rendering the combination *a lot* more secure.

Signed-off-by: Detlev Zundel <dzu@denx.de>
2008-03-06 17:35:40 +01:00
Stefan Roese
218892d12a Merge branch 'master' of /home/stefan/git/u-boot/u-boot 2008-03-05 17:22:06 +01:00
Wolfgang Denk
334fb53514 Merge branch 'master' of git+ssh://10.10.0.7/home/wd/git/u-boot/master 2008-03-05 00:21:37 +01:00
Stefan Roese
6bc113886d net: Print error message upon net usage when no ethernet-interface is found
This patch fixes a problem seen on PPC4xx boards, when no MAC address is
defined. Then no ethernet interface is available but a simple "tftp"
command will return without any error message which is quite confusing.

Signed-off-by: Stefan Roese <sr@denx.de>
2008-03-05 00:18:49 +01:00
Jon Loeliger
a30a549a35 Remove erroneous or extra spd.h #includers.
Many of the spd.h #includers don't need it,
and wanted to have spd_sdram() declared instead.
Since they didn't get that, some also had open
coded extern declarations of it instead or as well.
Fix it all up by using spd_sdram.h where needed.

Signed-off-by: Jon Loeliger <jdl@freescale.com>
2008-03-05 00:17:43 +01:00
Wolfgang Denk
a4475386ce PCS440EP: fix build problems (redundant #define)
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-03-04 17:41:28 +01:00
Stefan Roese
e85e2fa85e net: Print error message upon net usage when no ethernet-interface is found
This patch fixes a problem seen on PPC4xx boards, when no MAC address is
defined. Then no ethernet interface is available but a simple "tftp"
command will return without any error message which is quite confusing.

Signed-off-by: Stefan Roese <sr@denx.de>
2008-03-04 17:39:25 +01:00
Wolfgang Denk
384faaafb9 W7OLMC/W7OLMG: fix build problems (redundant #define)
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-03-04 17:38:50 +01:00
Wolfgang Denk
f9301e1cda Makefile: fix problem with out-of-tree builds introduced by 5013c09f
Commit 5013c09f (Makefile: cleanup "clean" target) introduced a
problem for out-of-tree builds which caused "make clean" to fail.

Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-03-04 14:58:31 +01:00
Wolfgang Denk
dfece95005 examples/Makefile: build "hello_world" on 8xx, too.
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-03-04 11:58:26 +01:00
Mike Nuss
74eb022259 PPC4xx (Sequoia): Fix Ethernet "remote fault" problems
Every now and then a Sequoia board (or equivalent hardware) had
problems connecting to a Gigabit capable network interface.

There were differences in the PHY setup between Linux and U-Boot.

This patch fixes the problem. Apparently "remote fault" is being set,
which signals to some devices (on the other end of the cable) that a
fault has occurred, while other devices ignore it. I believe the RF bit
was causing the issue, but I removed T4 also, to match up with Linux.

Signed-off-by: Mike Nuss <mike@terascala.com>
2008-03-04 08:55:27 +01:00
Timur Tabi
491fb6dea9 fix QE firmware uploading limit
Fix a typo in qe_upload_firmware() that prevented uploading firmware on
systems with more than one RISC core.

Signed-off-by: Timur Tabi <timur@freescale.com>
2008-03-03 22:10:11 +01:00
Bernhard Nemec
42ba58e0c3 Fix endianess problem in cramfs code (cramfs is always host-endian in Linux)
Originally pointed out by Laurent Pinchart <laurent.pinchart@tbox.biz>,
see http://thread.gmane.org/gmane.comp.boot-loaders.u-boot/22846

Signed-off-by: Bernhard Nemec <bnemec <at> ganssloser.com>
2008-03-03 22:08:08 +01:00
Kim B. Heino
84d0c2f1e3 fix copy from ram to dataflash
If I try to "cp.b <ram> <dataflash>", u-boot selects normal flash
routines instead of dataflash. This is because it checks "if source
address is not dataflash" instead of target address.

Signed-off-by: Kim B. Heino <Kim.Heino@bluegiga.com>
2008-03-03 21:48:02 +01:00
Wolfgang Denk
32bf3d143a Fix quoting problem (preboot setting) in many board config files.
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-03-03 12:37:53 +01:00
Wolfgang Denk
5b0b2b6fc9 ADS5121: Fix default environment.
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-03-03 12:36:49 +01:00
Jean-Christophe PLAGNIOL-VILLARD
91c82076ae Makefile: Fix missing unconfig and mkconfig use
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
2008-03-03 09:25:06 +01:00
michael
8ce4e5c2c0 Fix checking fat32 cluster size.
This fixes the cluster size tests in the FAT32 file system.
The current implementation of VFAT support doesn't work if the
referred cluster has an offset > 16bit representation, causing
"fatload" and "fatls" commands etc. to fail.

Signed-off-by: michael trimarchi <trimarchi@gandalf.sssup.it>
2008-03-03 00:40:42 +01:00
Wolfgang Denk
661bad63a0 Prepare v1.3.2-rc2 release candidate
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-03-02 22:57:23 +01:00
Stefan Roese
76957cb3d6 ppc4xx: EMAC: Fix 405EZ fifo size setup in EMAC_MR1
The 405EZ only supports 512 bytes of rx-/tx-fifo EMAC sizes. But
currently 4k/2k is configured. This patch fixes this issue.

Thanks to Thomas Kindler <tkindler@lenord.de> for pointing this out.

Signed-off-by: Stefan Roese <sr@denx.de>
2008-03-02 22:49:27 +01:00
Woodruff, Richard
118978c8eb Fix alignment error on ARM for modules
Fix alignment fault on ARM when running modules.  With out an explicit
linker file gcc4.2.1 will half word align __bss_start's value.  The word
dereference will crash hello_world.

signed-off-by Richard Woodruff <r-woodruff2@ti.com>
2008-03-02 22:48:34 +01:00
Dave Liu
ce1120dd70 fs: Fix ext2 read issue
The ext2 aligned process will corrupt the key
data struct, the patch fix this.

Signed-off-by: Dave Liu <daveliu@freescale.com>
2008-03-02 22:47:35 +01:00
Wolfgang Denk
5013c09f7a Makefile: cleanup "clean" target
Make sure CDPATH settings cannot interfere.
Update CHANGELOG.

Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-03-02 22:45:33 +01:00
Li Yang
ffda586fc1 add cscope build target
Add cscope build target to generate cscope database for code browsing.

Signed-off-by: Li Yang <leoli@freescale.com>
2008-03-02 22:22:27 +01:00
Kim Phillips
f655adef65 net: uec_phy: handle 88e1111 rev.B2 erratum 5.6
erratum 5.6 states the autoneg completion bit is functional only if the
autoneg bit is asserted.

This fixes any secondarily-issued networking commands on non-gigabit
links on the mpc8360 mds board.

Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
2008-03-02 21:52:15 +01:00
Wolfgang Denk
093e14c522 Merge branch 'master' of git://www.denx.de/git/u-boot-mpc85xx 2008-03-02 21:46:20 +01:00
John Rigby
5f91db7f58 MPC5121e ADS PCI support take 3
Adds PCI support for MPC5121

Tested with drivers/net/rtl8139.c

Support is conditional since PCI on old silicon does not work.

ads5121_PCI_config turns on PCI

In this version, condition compilation of PCI code has been moved
from ifdef in board/ads5121/pci.c to board/ads5121/Makefile as
suggested by Jean-Christophe PLAGNIOL-VILLARD

Signed-off-by: John Rigby <jrigby@freescale.com>
2008-03-02 21:44:59 +01:00
Anatolij Gustschin
44b4dbed41 Fix warnings while compilation of post/drivers/memory.c
Fix warnings while compilation with new gcc in eldk-4.2

Signed-off-by: Anatolij Gustschin <agust@denx.de>
2008-03-02 21:42:20 +01:00
Wolfgang Denk
a8b7e47625 Merge branch 'master' of git://www.denx.de/git/u-boot-mpc86xx 2008-03-02 21:40:52 +01:00
Anatolij Gustschin
4fae35a53b ppc4xx: Fix problem in 4xx_enet.c driver
U-Boot crashes in the net loop if CONFIG_4xx_DCACHE is
enabled. To reproduce the problem ensure that 'ethrotate'
environment variable isn't set to "no" and then run
"tftp 200000 not_existent_file".
This patch tries to fix the issue.

Signed-off-by: Anatolij Gustschin <agust@denx.de>
2008-03-02 21:34:55 +01:00
Anatolij Gustschin
60ec654c5e POST: Disable cache while SPR POST
Currently (since commit b2e2142c) u-boot crashes on
sequoia board while SPR test if CONFIG_4xx_DCACHE is
enabled. This patch disables the cache while SPR test.

Signed-off-by: Anatolij Gustschin <agust@denx.de>
2008-03-02 21:33:51 +01:00
Martin Krause
c313b2c6c5 TQM5200: use automatic fdt memory fixup (part 2)
Call fdt_fixup_memory() on the boards TQM5200, TQM5200_B, TQM5200S,
TB5200 and TB5200_B to fixup the /memory node with the memory values
detected by U-Boot.

Signed-off-by: Martin Krause <martin.krause@tqs.de>
2008-03-02 21:32:04 +01:00
Wolfgang Denk
24ae0d1728 Merge branch 'master' of git://www.denx.de/git/u-boot-ppc4xx 2008-03-02 21:30:18 +01:00
Wolfgang Denk
2f6e76d23c Merge branch 'master' of git://www.denx.de/git/u-boot-arm
Conflicts:

	include/asm-arm/arch-imx/imx-regs.h

Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-03-02 21:29:18 +01:00
Martin Krause
44ceec253e TQM5200: use automatic fdt memory fixup
Call fdt_fixup_memory() on the boards TQM5200, TQM5200_B, TQM5200S,
TB5200 and TB5200_B to fixup the /memory node with the memory values
detected by U-Boot.

Signed-off-by: Martin Krause <martin.krause@tqs.de>
2008-03-02 21:23:44 +01:00
Martin Krause
f3a329acb2 TQM5200: fix bug in SDRAM initialization code
This patch fixes a bug in the SDRAM initialization code for the
TQM5200. The hi_addr bit is now set correctly. Without this patch
the hi_addr bit is always set to 1, if the second SDRAM bank is
not populated.

For other MPC5200 boards a correspondig patch has already been applied
some time ago, see commit a63109281a.

Signed-off-by: Martin Krause <martin.krause@tqs.de>
--
Forget the first patch please. I confused flash with SDRAM in
the comment ...
2008-03-02 21:22:27 +01:00
Jean-Christophe PLAGNIOL-VILLARD
217bf6b6a3 mx1fs2/flash: Fix multiple compiler warnings
"pointer targets in assignment differ in signedness"

Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
2008-03-02 21:16:14 +01:00
Jean-Christophe PLAGNIOL-VILLARD
5599c28cef arm-imx: Fix register definitions
Sync register definitions with linux

Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
2008-03-02 21:15:06 +01:00
Jean-Christophe PLAGNIOL-VILLARD
c9bcf75fec actua1/actua2/actua3: Fix multiple unused variable warnings
- actua1:
	actux1.c: In function 'checkboard':
	actux1.c:92: warning: unused variable 'revision'

- actua2:
	actux2.c: In function 'checkboard':
	actux2.c💯 warning: unused variable 's'
	actux2.c:99: warning: unused variable 'revision'
	actux2.c: In function 'reset_phy':
	actux2.c:130: warning: unused variable 'i'

- actua3:
	actux3.c: In function 'checkboard':
	actux3.c:114: warning: unused variable 'revision'

Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
2008-03-02 21:12:06 +01:00
Shinya Kuribayashi
f8fa6368a6 Remove the __STRICT_ANSI__ check from the __u64/__s64 declaration on 32bit targets.
The previous patch was lacking of i386, microblaze, nios and nios2. This
patch tries to fix them.

Signed-off-by: Shinya Kuribayashi <skuribay@ruby.dti.ne.jp>
2008-03-02 21:11:11 +01:00
Marian Balakowicz
05e07b1ea2 [new uImage] Fix FDT blob totalsize calculation in boot_relocate_fdt()
Do not use global fdt blob pointer, calculate blob size from routine
argument blob pointer.

Signed-off-by: Marian Balakowicz <m8@semihalf.com>
2008-02-29 22:22:46 +01:00
David Gibson
d1cc52879c libfdt: Add and use a node iteration helper function.
This patch adds an fdt_next_node() function which can be used to
iterate through nodes of the tree while keeping track of depth.  This
function is used to simplify the iteration code in a lot of other
functions, and is also exported for use by library users.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
2008-02-29 16:00:31 +01:00
Bartlomiej Sieka
8cf30809a8 [new uImage] Add libfdt support to mkimage
Signed-off-by: Bartlomiej Sieka <tur@semihalf.com>
2008-02-29 16:00:24 +01:00
Bartlomiej Sieka
a6e530f00d [new uImage] Add sha1.o object to mkimage binary build
Signed-off-by: Bartlomiej Sieka <tur@semihalf.com>
2008-02-29 16:00:23 +01:00
Marian Balakowicz
df6f1b895c [new uImage] Fix component handling for legacy multi component images
Use uint32_t when accessing size table in image_multi_count() and
image_multi_getimg() for multi component images.

Add missing uimage_to_cpu() endianness conversion.

Signed-off-by: Marian Balakowicz <m8@semihalf.com>
2008-02-29 16:00:06 +01:00
Marian Balakowicz
570abb0ad1 [new uImage] Share common uImage code between mkimage and U-boot
This patch adds the following common routines:

1) Dedicated mkimage print_header() is replaced with common
image_print_contents()
image_print_contents_noindent()

2) Common os/arch/type/comp fields name <--> id translation routines
genimg_get_os_name()
genimg_get_arch_name()
genimg_get_type_name()
genimg_get_comp_name()
genimg_get_os_id()
genimg_get_arch_id()
genimg_get_type_id()
genimg_get_comp_id()

Signed-off-by: Marian Balakowicz <m8@semihalf.com>
2008-02-29 15:59:59 +01:00
Marian Balakowicz
9a4daad0a3 [new uImage] Update naming convention for bootm/uImage related code
This patch introduces the following prefix convention for the
image format handling and bootm related code:

genimg_		- dual format shared code
image_		- legacy uImage format specific code
fit_		- new uImage format specific code
boot_		- booting process related code

Related routines are renamed and a few pieces of code are moved around and
re-grouped.

Signed-off-by: Marian Balakowicz <m8@semihalf.com>
2008-02-29 14:58:34 +01:00
Marian Balakowicz
e18489e8c2 Merge branch 'master' of git://www.denx.de/git/u-boot into new-image 2008-02-29 13:56:44 +01:00
Kumar Gala
75fa002c47 [new uImage] Respect autostart setting in linux bootm
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Acked-by: Marian Balakowicz <m8@semihalf.com>
2008-02-29 13:15:56 +01:00
Kumar Gala
d3f2fa0d27 [new uImage] Provide ability to restrict region used for boot images
Allow the user to set 'bootm_low' and 'bootm_size' env vars as a way
to restrict what memory range is used for bootm.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Acked-by: Marian Balakowicz <m8@semihalf.com>
2008-02-29 13:15:56 +01:00
Kumar Gala
e822d7fc4d [new uImage] Use lmb for bootm allocations
Convert generic ramdisk_high(), get_boot_cmdline(), get_boot_kbd()
functions over to using lmb for allocation of the ramdisk, command line
and kernel bd info.

Convert PPC specific fdt_relocate() to use lmb for allocation of the device
tree.

Provided a weak function that board code can call to do additional
lmb reserves if needed.

Also introduce the concept of bootmap_base to specify the offset in
physical memory that the bootmap is located at.  This is used for
allocations of the cmdline, kernel bd, and device tree as they should
be contained within bootmap_base and bootmap_base + CFG_BOOTMAPSZ.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2008-02-29 13:15:56 +01:00
Kumar Gala
f5614e7926 [new uImage] Add autostart flag to bootm_headers structure
The autostart env variable was dropped as part of the initial new uImage
cleanup.  Add it back here so the arch specific code can decide if it
wants to really boot or not.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Acked-by: Marian Balakowicz <m8@semihalf.com>
2008-02-29 13:15:56 +01:00
Kumar Gala
4ed6552f71 [new uImage] Introduce lmb from linux kernel for memory mgmt of boot images
Introduce the LMB lib used on PPC in the kernel as a clean way to manage
the memory spaces used by various boot images and structures.  This code
will allow us to simplify the code in bootm and its support functions.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2008-02-29 13:15:55 +01:00
Kumar Gala
4648c2e7a1 [new uImage] ppc: Allow boards to specify effective amount of memory
For historical reasons we limited the stack to 256M because some boards
could only map that much via BATS.  However newer boards are capable of
mapping more memory (for example 85xx is capable of doing up to 2G).

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Acked-by: Marian Balakowicz <m8@semihalf.com>
2008-02-29 13:15:24 +01:00
Kumar Gala
274cea2bdd [new uImage] rework error handling so common functions don't reset
Changed image_get_ramdisk() to just return NULL on error and have
get_ramdisk() propogate that error to the caller.  It's left to the
caller to call do_reset() if it wants to.

Also moved calling do_reset() in get_fdt() and fdt_relocate() on ppc
to a common location.  In the future we will change get_fdt() and
fdt_relocate() to return success/failure and not call do_reset() at all.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Acked-by: Marian Balakowicz <m8@semihalf.com>
2008-02-29 12:32:50 +01:00
Kumar Gala
d2bc095a63 [new uImage] ppc: Re-order ramdisk/fdt handling sequence
Doing the fdt before the ramdisk allows us to grow the fdt w/o concern
however it does mean we have to go in and fixup the initrd info since
we don't know where it will be.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2008-02-29 12:30:14 +01:00
Kumar Gala
27953493ef [new uImage] ppc: Determine if we are booting an OF style
If we are bootin OF style than we can skip setting up some things
that are used for the old boot method.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Acked-by: Marian Balakowicz <m8@semihalf.com>
2008-02-29 12:30:03 +01:00
Kumar Gala
a6612bdfe7 [new uImage] Don't pass kdb to ramdisk_high since we may not have one
We don't actually need the kdb param as we are just using it to get
bd->bi_memsize which we can get from gd->bd->bi_memsize.  Also, if we
boot via OF we might not actually fill out a kdb.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Acked-by: Marian Balakowicz <m8@semihalf.com>
2008-02-29 12:27:21 +01:00
Kumar Gala
2b22fa4bae 85xx: Don't icbi when unlocking the cache
There is no reason to icbi when invalidating the temporary stack in
the d-cache.  Its impossible on e500 to have the i-cache contain
any addresses in the temp stack and it can be problematic in generating
transactions on the bus to non-valid addresses.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2008-02-27 16:30:47 -06:00
Andy Fleming
534ea6b6f8 Fix source for ECM error IVPR
The source vector for the ECM was being set to 2,
but that's what the source vector for DDR was being
set to.  Change it to 1.

Signed-off-by: Andy Fleming <afleming@freescale.com>
2008-02-27 16:28:57 -06:00
Andy Fleming
21fae8b2b4 Invalidate INIT_RAM TLB mappings
Commit 0db37dc...  (and some others) changed the INIT_RAM TLB
mappings to be unguarded.  This collided with an existing "bug"
where the mappings for the INIT_RAM were being kept around.
This meant that speculative loads to those addresses were
succeeding in the TLB, and going out to the bus, where they
were causing an exception (there's nothing at that address). The
Flash code was coincidentally causing such a speculative load.
Rather than go back to mapping the INIT RAM as guarded, we fix
it so that the entries for the INIT_RAM are invalidated.  Thus
the speculative loads will fail in the TLB, and have no effect.

Signed-off-by: Andy Fleming <afleming@freescale.com>
2008-02-27 16:28:48 -06:00
Jean-Christophe PLAGNIOL-VILLARD
347b7938d3 sbc8548: Fix Revision reading and unused variable 'path'
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
2008-02-27 16:27:16 -06:00
Jean-Christophe PLAGNIOL-VILLARD
495d162374 sbc8548: Fix cfi flash bank declaration
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
2008-02-27 16:27:16 -06:00
Marian Balakowicz
4efbe9dbb1 [new uImage] Correct raw FDT blob handlig when CONFIG_FIT is disabled
Dual format image code must properly handle all three FDT passing methods:
- raw FDT blob passed
- FDT blob embedded in the legacy uImage
- FDT blob embedded in the new uImage

This patch enables proper raw FDT handling when no FIT imaeg support
is compiled in. This is a bit tricky as we must dected FIT format even
when FIT uImage handling is not enabled as both FIT uImages and raw FDT
blobs use tha same low level format (libfdt).

Signed-off-by: Marian Balakowicz <m8@semihalf.com>
2008-02-27 11:02:26 +01:00
Marian Balakowicz
ff0734cff0 [new uImage] POWERPC: Add image_get_fdt() routine
FDT blob may be passed either: (1) raw (2) or embedded in the legacy uImage
(3) or embedded in the new uImage. For the (2) case embedding image must be
verified before we get FDT from it. This patch factors out legacy image
specific verification routine to the separate helper routine.

Signed-off-by: Marian Balakowicz <m8@semihalf.com>
Acked-by: Kumar Gala <galak@kernel.crashing.org>
2008-02-27 11:02:26 +01:00
Marian Balakowicz
1efd43601f [new uImage] Add image_get_kernel() routine
Legacy image specific verification is factored out to a separate helper
routine to keep get_kernel() generic and simple.

Signed-off-by: Marian Balakowicz <m8@semihalf.com>
Acked-by: Kumar Gala <galak@kernel.crashing.org>
2008-02-27 11:02:07 +01:00
Marian Balakowicz
8a5ea3e616 [new uImage] Move image verify flag to bootm_headers structure
Do not pass image verification flag directly to related routines.
Simplify argument passing and move it to the bootm_header structure which
contains curently processed image specific data and is already being passed
on the argument list.

Signed-off-by: Marian Balakowicz <m8@semihalf.com>
Acked-by: Kumar Gala <galak@kernel.crashing.org>
2008-02-27 11:01:04 +01:00
Marian Balakowicz
823afe7cef [Makefile] Sort COBJS in lib_<arch> Makefiles
Signed-off-by: Marian Balakowicz <m8@semihalf.com>
2008-02-27 11:00:47 +01:00
Marian Balakowicz
6f0f9dfc4e [new uImage] Optimize gen_get_image() flow control
When CONFIG_HAS_DATAFLASH is not defined gen_get_image() routine has nothing
to do, update its control flow to better reflect that simple case.

Signed-off-by: Marian Balakowicz <m8@semihalf.com>
Acked-by: Kumar Gala <galak@kernel.crashing.org>
2008-02-27 11:00:47 +01:00
Marian Balakowicz
d2ced9eb19 [new uImage] POWERPC: Split get_fdt() into get and relocate routines
PPC specific FDT blob handling code is divided into two separate routines:

get_fdt()	- find and verify a FDT blob (either raw or image embedded)
fdt_relocate()	- move FDT blob to within BOOTMAP if needed

Signed-off-by: Marian Balakowicz <m8@semihalf.com>
Acked-by: Kumar Gala <galak@kernel.crashing.org>
2008-02-27 10:59:56 +01:00
Jon Loeliger
33fa5c0bfa 86xx: Fix renamed GUR symbols in sbc8641d board.
Back in commit a551cee99a
(86xx: Fix GUR PCI config registers properly), we should have
changed the MPC86xx_PORBMSR_HA and MPC86xx_PORDEVSR_IO_SEL
symbols in the sbc8641d board as well.  Fix this oversight.

Signed-off-by: Jon Loeliger <jdl@freescale.com>
2008-02-25 13:18:12 -06:00
Stefan Roese
64cd594e62 ppc4xx: Fix acadia_nand build problem
Don't include testdram() on NAND-booting target acadia_nand. This saves
a few bytes and makes the target build clean again.

Signed-off-by: Stefan Roese <sr@denx.de>
2008-02-25 16:50:48 +01:00
Jean-Christophe PLAGNIOL-VILLARD
14e099e698 mx1fs2/flash: Fix multiple pointertargets in assignment differ in signedness
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
2008-02-25 15:00:06 +00:00
Jean-Christophe PLAGNIOL-VILLARD
724902c846 arm-imx: Fix registers definition
Sync registers definition with linux

Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
2008-02-25 15:00:03 +00:00
Jean-Christophe PLAGNIOL-VILLARD
4cd288b589 actua1/actua2/actua3: Fix multipleunused variable
- actua1:
	actux1.c: In function 'checkboard':
	actux1.c:92: warning: unused variable 'revision'

- actua2:
	actux2.c: In function 'checkboard':
	actux2.c💯 warning: unused variable 's'
	actux2.c:99: warning: unused variable 'revision'
	actux2.c: In function 'reset_phy':
	actux2.c:130: warning: unused variable 'i'

- actua3:
	actux3.c: In function 'checkboard':
	actux3.c:114: warning: unused variable 'revision'

Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
2008-02-25 14:59:59 +00:00
Marian Balakowicz
d5934ad775 [new uImage] Add dual format uImage support framework
This patch adds framework for dual format images. Format detection is added
and the bootm controll flow is updated to include cases for new FIT format
uImages.

When the legacy (image_header based) format is detected appropriate
legacy specific handling is invoked. For the new (FIT based) format uImages
dual boot framework has a minial support, that will only print out a
corresponding debug messages. Implementation of the FIT specific handling will
be added in following patches.

Signed-off-by: Marian Balakowicz <m8@semihalf.com>
2008-02-25 15:53:49 +01:00
Wolfgang Denk
b29661fc11 Coding style cleanup. Prepare v1.3.2-rc2 release candidate
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-02-24 15:21:36 +01:00
Jean-Christophe PLAGNIOL-VILLARD
00b48a4842 ENV: remove saveenv when CFG_ENV_IS_NOWHERE is selected
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
2008-02-23 20:37:59 +01:00
Shinya Kuribayashi
b075d74efb Remove the __STRICT_ANSI__ check from the __u64/__s64 declaration on 32bit targets.
----------------------------------------------------------------
Olaf Hering [Wed, 17 Oct 2007 06:27:13 +0000 (23:27 -0700)]

Remove the __STRICT_ANSI__ check from the __u64/__s64 declaration on
32bit targets.

GCC can be made to warn about usage of long long types with ISO C90
(-ansi), but only with -pedantic.  You can write this in a way that even
then it doesn't cause warnings, namely by:

#ifdef __GNUC__
__extension__ typedef __signed__ long long __s64;
__extension__ typedef unsigned long long __u64;
#endif

The __extension__ keyword in front of this switches off any pedantic
warnings for this expression.

Signed-off-by: Olaf Hering <olh@suse.de>
Cc: <linux-arch@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
----------------------------------------------------------------

Signed-off-by: Shinya Kuribayashi <skuribay@ruby.dti.ne.jp>
2008-02-23 09:49:48 +01:00
Shinya Kuribayashi
208acd112e cpu/mcf52x2/config.mk: Make needlessly deffered expansions immediate.
This will reduce the build time.

Signed-off-by: Shinya Kuribayashi <skuribay@ruby.dti.ne.jp>
2008-02-23 09:47:51 +01:00
Shinya Kuribayashi
495a0dde7f cpu/ppc4xx/config.mk: Make a needlessly deffered expansion immediate.
This will reduce the build time.

Signed-off-by: Shinya Kuribayashi <skuribay@ruby.dti.ne.jp>
2008-02-23 09:44:54 +01:00
Shinya Kuribayashi
e682ba399a cpu/mips/cofigl.mk: Make a needlessly deffered expansion immediate.
This reduces the build time by ~10%. Here's the gth2_config example.

        BEFORE       AFTER
real    0m31.441s    0m27.833s
user    0m24.766s    0m23.045s
sys     0m10.425s    0m7.468s

Signed-off-by: Shinya Kuribayashi <skuribay@ruby.dti.ne.jp>
2008-02-23 09:44:19 +01:00
Marcel Moolenaar
02409f8cf5 make define2mk.sed work on FreeBSD
In the thread "[1.3.2-rc1] MPC8548CDS/MPC8555CDS configs fails to link",
the define2mk.sed script was identified as the source of the link
failure on FreeBSD. The problem is that sed(1) does not always support
the '+' operator. It isn't on FreeBSD. The attach patch implements the
equivalent, using the '*' operator instead and should work everywhere.

Signed-off-by: Marcel Moolenaar <marcelm@juniper.net>
2008-02-22 21:27:01 +01:00
Detlev Zundel
e5084af8de Replace deprecated "ramdisk" with "ramdisk_size" kernel parameter.
The Linux commit fac8b209b1084bc85748bd54e13d00c1262b220f ("Remove
final traces of long-deprecated "ramdisk" kernel parm") makes these
changes neccessary.

Signed-off-by: Detlev Zundel <dzu@denx.de>
2008-02-22 17:26:13 +01:00
Larry Johnson
d01b847c5c LM75 bug fix for negative temperatures
When the LM75 temperature sensor measures a temperature below 0 C, the
current driver does not perform sign extension, so the result returned is
256 C too high.  This patch fixes the problem.

Signed-off-by: Larry Johnson <lrj@acm.org>
2008-02-22 16:33:09 +01:00
Heiko Schocher
5a910c224b IDS8247: update MAINTAINER entry.
Signed-off-by: Heiko Schocher <hs@denx.de>
2008-02-22 15:57:41 +01:00
Heiko Schocher
79eac2bfb5 Fix device tree for mgsuvd board.
Rename the "scc" node in "ethernet" for the mgsuvd board.

Signed-off-by: Heiko Schocher <hs@denx.de>
2008-02-22 15:56:29 +01:00
Yuri Tikhonov
2e721094a7 lwmon5: enable hardware watchdog
Some boards (e.g. lwmon5) may use rather small watchdog intervals, so
causing it to reboot the board if U-Boot does a long busy-wait with
udelay(). Thus, for these boards we have to restart WD more
frequently.

This patch splits the busy-wait udelay() into smaller, predefined,
intervals, so that the watchdog timer may be resetted with the
configurable (CONFIG_WD_PERIOD) interval.

Signed-off-by: Yuri Tikhonov <yur@emcraft.com>
2008-02-22 15:54:34 +01:00
Anatolij Gustschin
bc77881247 ppc4xx: Support for ATI Radeon 9200 card on sequoia
Adds configuration option for ATI Radeon 9200 card
support to sequoia config file. If CONFIG_VIDEO
is enabled, TEXT_BASE should be changed to 0xFFF80000.

Signed-off-by: Anatolij Gustschin <agust@denx.de>
2008-02-22 15:51:08 +01:00
Wolfgang Denk
6a2dcaf1ee Merge branch 'master' of git://www.denx.de/git/u-boot-mpc86xx 2008-02-22 13:03:28 +01:00
Wolfgang Denk
45d65b7f28 Merge branch 'master' of git://www.denx.de/git/u-boot-cfi-flash 2008-02-22 13:02:10 +01:00
Wolfgang Denk
239c885802 Merge branch 'master' of git://www.denx.de/git/u-boot-freebsd 2008-02-22 13:01:04 +01:00
Wolfgang Denk
55c802ebb1 Merge branch 'master' of git://www.denx.de/git/u-boot-coldfire 2008-02-22 12:56:11 +01:00
Kumar Gala
5a9abcc317 Remove duplicate defines for ARRAY_SIZE
A few duplicate of the ARRAY_SIZE macro sneaked in since we put
the define in common.h.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2008-02-22 12:36:44 +01:00
Kumar Gala
81d93e5c4b ppc: Allow boards to specify effective amount of memory
For historical reasons we limited the stack to 256M because some boards
could only map that much via BATS.  However newer boards are capable of
mapping more memory (for example 85xx is capable of doing up to 2G).

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2008-02-22 12:35:53 +01:00
Mike Frysinger
755c35f54b include autoconf.mk before any other .mk files
This bumps the autoconf.mk include step above board/cpu/arch/etc... so that
those .mk files can have make if statements based on the current config.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2008-02-22 12:34:27 +01:00
Mike Frysinger
16fe77752e error check autoconf.mk generation
If any of the steps for generating autoconf.mk fail currently, they go
unnoticed.  To fix, we can simply add 'set -e' to the long list of commands.
This is simpler and more robust than placing '|| exit $$?' after every line.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2008-02-22 12:33:23 +01:00
Stefano Babic
019895a8de Fix bug in dependency checking
By adding VERSION_FILE to the PHONY targets the script
/tools/setlocalversion is always called and version_autogenerated.h
is replaced only if the script find a modified source file.

Signed-off-by: Stefano Babic <sbabic@denx.de>
2008-02-22 12:19:04 +01:00
Kyungmin Park
98ba144ccc Fix GPMC CS2 memory setup at apollon
It disables the current map first

Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
2008-02-22 12:13:55 +01:00
Jean-Christophe PLAGNIOL-VILLARD
e845e07e1e uli526x: Fix multiple differ in signedness and parentheses around comparison
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
2008-02-22 12:10:59 +01:00
Jean-Christophe PLAGNIOL-VILLARD
beeccf7a5d MIPS: Fix CFG_NO_FLASH support
- Fix flash_init call when CFG_NO_FLASH is used
- Remove no more needed flash.c for qemu-mips

Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
2008-02-22 12:08:54 +01:00
Mike Frysinger
edfed1d91d easylogo: clean up some more and add -r (rgb) support
Michael Hennerich added support for outputting an image in RGB format rather
than forcing YUYV all the time.  This makes obvious sense if the display you
have takes RGB input rather than YUYV.

Rather than hack in support for options, I've converted it to use getopt and
cleaned up the argument parsing in the process.

Signed-off-by: Michael Hennerich <michael.hennerich@analog.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2008-02-22 12:07:39 +01:00
Mike Frysinger
f65c98129c Makefile: add target for $(LDSCRIPT)
If the $(LDSCRIPT) does not exist (normally it's board/$(BOARD)/u-boot.lds),
then change into the board directory and try and create it.  This allows you
to generate the linker script on the fly based upon board defines (like the
Blackfin boards do).

There should be no regressions due to this change as the normal case is to
already have a u-boot.lds file.  If that's the case, then there's nothing to
generate, and so make will always exit.  The fix here is that if the linker
script does not exist, the implicit rules take over and attempt to guess how
to generate the file.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2008-02-22 12:06:32 +01:00
Marian Balakowicz
5583cbf736 [new uImage] Fix erroneous use of image_get_magic() in fdc/usb cmds
Signed-off-by: Marian Balakowicz <m8@semihalf.com>
2008-02-21 17:27:49 +01:00
Marian Balakowicz
2242f53698 [new uImage] Rename and move print_image_hdr() routine
Signed-off-by: Marian Balakowicz <m8@semihalf.com>
2008-02-21 17:27:41 +01:00
Marian Balakowicz
f50433d670 [new uImage] Add fit_parse_conf() and fit_parse_subimage() routines
Introducing routines for parsing new uImage format bootm arguments:
[<addr>]#<conf>		- configuration specification
[<addr>]:<subimg>	- subimage specification

New format images can contain multiple subimages of the same type. For example
a single new format image file can contain three kernels, two ramdisks and a
couple of FDT blobs. Subimage and configuration specifications are extensions
to bootm (and other image-related commands) arguments' syntax that allow to
specify which particular subimage should be operated on.

Subimage specification is used to denote a particular subimage. Configurations
are a bit more complex -- they are used to define a particualr booting setup,
for example a (kernel, fdt blob) pair, or a (kernel, ramdisk, fdt blob) tuple,
etc.

Signed-off-by: Marian Balakowicz <m8@semihalf.com>
2008-02-21 17:20:20 +01:00
Marian Balakowicz
fff888a199 [new uImage] Add gen_get_image() routine
This routine assures that image (whether legacy or FIT) is not
in a special dataflash storage.

If image address is a dataflash address image is moved to system RAM.

Signed-off-by: Marian Balakowicz <m8@semihalf.com>
2008-02-21 17:20:19 +01:00
Marian Balakowicz
75d3e8fbd9 [new uImage] Pull in libfdt if CONFIG_FIT is enabled
New uImage format (Flattened Image Tree) requires libfdt
functionality, print out error message if CONFIG_OF_LIBFDT
is not defined.

New uImage support is enabled by defining CONFIG_FIT (and CONFIG_OF_LIBFDT).
This commit turns it on by default.

Signed-off-by: Marian Balakowicz <m8@semihalf.com>
2008-02-21 17:20:18 +01:00
Marian Balakowicz
20c9395933 Merge branch 'master' of /home/git/u-boot 2008-02-21 17:18:01 +01:00
Michael Schwingen
1ba639da56 CFI: Do not use uninitialized cmd_reset
Do not use uninitialized cmd_reset; issue both AMD and Intel reset
commands instead

From a short test, it looks like AMD-style flash roms treat *any* unknown
command write as a reset, at least when in CFI Query mode, so issuing the
Intel reset command to AMD-style flashs seems safe (from the small sample I
have), plus the 3-cycle magic sequence should kick the state machine into
the right state even without a reset command. Since the AMD-style flashs
require the unlock sequence for real operation, I chose to try the AMD reset
command first, so that Intel flashs do no see an invalid command prior to
the CFI query.

I have tested the patch on AM29LV320-style flashs from Fujitsu and Macronix,
plus Intel StrataFlash.

Signed-off-by: Michael Schwingen <michael@schwingen.org>
Signed-off-by: Stefan Roese <sr@denx.de>
2008-02-21 17:12:19 +01:00
Rafal Jaworowski
e7a85f2683 API: Add (c) and licensing notice to the public API header.
Signed-off-by: Rafal Jaworowski <raj@semihalf.com>
2008-02-21 11:56:44 +01:00
Yuri Tikhonov
928d1d77f8 Fix CPU POST test failure
The CPU POST test code (run from cpu_post_exec_31()) doesn't follow the
ABI carefully, at least the CR3, CR4, and CR5 fields of CR are clobbered
by it. The gcc-4.2 with its more aggressive optimization exposes this fact.
This patch just saves the CR value before running the test code, so allowing
it to do anything it wants with CR.

Signed-off-by: Dmitry Rakhchev <rda@emcraft.com>
Acked-by: Yuri Tikhonov <yur@emcraft.com>
--
2008-02-21 11:25:47 +01:00
Jon Loeliger
d5908b0939 8610HPCD: Document the flashbank selection switches.
Signed-off-by: Jon Loeliger <jdl@freescale.com>
2008-02-20 15:26:51 -06:00
Jon Loeliger
a551cee99a 86xx: Fix GUR PCI config registers properly.
Back in commit 975a083a5e where
I tried to "8610HPCD: Fix typos in two PCI setup registers", I
botched it due to not realizing that 8610 and 8641 had different
Global Utility Register defintions, one of which was like 85xx,
and the other wasn't.  Correct this problem by introducing two
symbols, one for each 86xx SoC, but neither of which is named
anything like 85xx.

My bad.  Lovely Wednesday with git bisect.  You know.

Signed-off-by: Jon Loeliger <jdl@freescale.com>
2008-02-20 14:45:09 -06:00
Jon Loeliger
cb06eb961b 8610HPCD: Don't use VIDEO/CFB_CONSOLE by default.
Without an actual supported video card hooked up, enabling
the CONFIG_VIDEO by default just makes it look broken by
routing all console output to the video card.   Don't.

Signed-off-by: Jon Loeliger <jdl@freescale.com>
2008-02-20 14:38:20 -06:00
TsiChungLiew
4d264eff43 ColdFire: Fix missing code flash size for M5485EVB
Signed-off-by: James Mahan <kmahan@freescale.com>
Signed-off-by: TsiChung Liew <Tsi-Chung.Liew@freescale.com>
2008-02-20 13:33:45 -07:00
TsiChungLiew
c54f9263e4 ColdFire: Fix 5282 and 5271 interrupt mask bit
Signed-off-by: TsiChung Liew <Tsi-Chung.Liew@freescale.com>
2008-02-20 13:33:45 -07:00
Jon Loeliger
975a083a5e 8610HPCD: Fix typos in two PCI setup registers.
The two symbols MPC86xx_PORDEVSR_IO_SEL and MPC86xx_PORBMSR_HA
were erroneously present as 85xx names and values, leftover from
the clone wars.  Fix this by removing the 85xx cruft from the
86xx codebase.

Signed-off-by: Jon Loeliger <jdl@freescale.com>
2008-02-19 12:31:08 -06:00
Jon Loeliger
13f5433f70 86xx: Convert sbc8641d to use libfdt.
This is the proper fix for a missing closing brace in the function
ft_cpu_setup() noticed by joe.hamman <at> embeddedspecialties.com.
The ft_cpu_setup() function in mpc8641hpcn.c should have been
removed earlier as it was under the obsolete CONFIG_OF_FLAT_TREE,
but was missed.  Only, the sbc8641d was nominally still using it.
It all got ripped out, and the funcality that was in ft_board_setup()
was refactored to remove the CPU portions into the new file
cpu/mpc86xx/fdt.c instead.  Make sbc8641d use this now.

Based loosely on an original patch from joe.hamman@embeddedspecialties.com

Signed-off-by: Jon Loeliger <jdl@freescale.com>
2008-02-18 14:01:56 -06:00
Jean-Christophe PLAGNIOL-VILLARD
04efddc87c mpc86xx: Fix unused variable 'config' and 'immap'
and remove useless CONFIG_DDR_INTERLEAVE

Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
2008-02-18 11:36:00 -06:00
Jean-Christophe PLAGNIOL-VILLARD
83d1b38766 mpc86xx: Fix implicit declaration of functions 'init_laws' and 'disable_law'
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
2008-02-18 11:35:01 -06:00
Jean-Christophe PLAGNIOL-VILLARD
b6f29c84c2 s3c24x0: Fix unused variable 'i' in function 'serial_init_dev'
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
2008-02-17 16:04:23 +01:00
Jean-Christophe PLAGNIOL-VILLARD
0937b8d869 pxa: fix assignment from incompatible pointer type
fix mmc_bread function prototype

Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
2008-02-17 16:03:56 +01:00
Jean-Christophe PLAGNIOL-VILLARD
64d792063f at91cap9adk: fix implicit declaration of function 'eth_init'
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
2008-02-17 16:03:20 +01:00
Wolfgang Denk
375c4353db Remove files added by mistake, update CHANGELOG.
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-02-17 15:43:44 +01:00
Mike Nuss
b738654d3c PPC440EPx: Optionally enable second I2C bus
The option CONFIG_I2C_MULTI_BUS does not have any effect on Sequoia, the
PPC440EPx reference platform, because IIC1 is never enabled. Add Sequoia board
code to turn on IIC1 if CONFIG_I2C_MULTI_BUS is selected.

Signed-off-by: Mike Nuss <mike@terascala.com>
Cc: Stefan Roese <sr@denx.de>
2008-02-16 07:00:03 +01:00
Niklaus Giger
ef5b4f221c ppc4xx: HCU4/5. Cleanup configs
- hcu4.h: Removed define of CONFIG_PPC405GPr
- Corrected phy addresses
- Fix boot variables
- Respect line length of 80 chars

Signed-off-by: Niklaus Giger <niklaus.giger@netstal.com>
2008-02-16 06:40:13 +01:00
Niklaus Giger
74973126d1 ppc4xx: HCU4/5. Cleanups
- Fix some coding style violations.
- Use in/out_u16/32 where appropriate.
- Use register names from ppc405.h.
- Fix trace useage for Lauterbach.
- Remove obsolete generation HCU2.
- Renamed fixed_hcu4_sdram to init_ppc405_sdram.

Signed-off-by: Niklaus Giger <niklaus.giger@netstal.com>
2008-02-16 06:40:05 +01:00
Niklaus Giger
8cc10d06b8 ppc4xx: PPC405GPr fix missing register definitions
Signed-off-by: Niklaus Giger <niklaus.giger@netstal.com>
2008-02-16 06:39:46 +01:00
Larry Johnson
214398d9cb ppc4xx: Beautify configuration files for Sequoia and Korat boards
Signed-off-by: Larry Johnson <lrj@acm.org>
2008-02-16 06:38:55 +01:00
Wolfgang Denk
5db6138565 Merge branch 'master' of git://www.denx.de/git/u-boot-arm 2008-02-16 00:42:44 +01:00
Anatolij Gustschin
30c6a241e8 Wipe out assembler warnings while compiling x86 biosemu
This patch tries to get rid of some assembler warnings about
changed .got2 section type while compiling x86 bios emulator
code.

Signed-off-by: Anatolij Gustschin <agust@denx.de>
2008-02-16 00:31:16 +01:00
Peter Pearse
5561857aae Merge branch '080208_dupint' of git://linux-arm.org/u-boot-armdev 2008-02-15 13:00:54 +00:00
Peter Pearse
faf8f9bc95 Merge branch '080202_at91rm9200dk' of git://linux-arm.org/u-boot-armdev 2008-02-15 13:00:22 +00:00
Peter Pearse
d7d9afa48c Merge branch '080131_artila' of git://linux-arm.org/u-boot-armdev 2008-02-15 12:59:56 +00:00
Peter Pearse
ae92069abe Merge branch '080116_at91cap9' of git://linux-arm.org/u-boot-armdev 2008-02-15 12:59:15 +00:00
Peter Pearse
e42d2b0479 Merge branch '070524_netstar' of git://linux-arm.org/u-boot-armdev 2008-02-15 12:58:10 +00:00
Wolfgang Denk
45da195cf6 Merge branch 'master' of git+ssh://10.10.0.7/home/wd/git/u-boot/master 2008-02-15 00:59:03 +01:00
Wolfgang Denk
67a4389e39 Prepare v1.3.2-rc1 release candidate 2008-02-15 00:57:09 +01:00
Anatolij Gustschin
f33e9653c9 Fix compile warning on lib_ppc/board.c
Signed-off-by: Anatolij Gustschin <agust@denx.de>
2008-02-15 00:55:08 +01:00
Anatolij Gustschin
e5c6f9f8be Add Radeon Mobility 9200 pci device id to the radeon driver
This patch extends PCI device id table of the
radeon driver so that the driver will also support
Radeon Mobility 9200 (M9+) based boards.

Signed-off-by: Anatolij Gustschin <agust@denx.de>
2008-02-15 00:54:29 +01:00
Anatolij Gustschin
1b8607e1f7 Extend ATI Radeon driver to support more video modes
Adds ATI Radeon 9200 support for 1280x1024, 1024x768,
800x600, 640x480 at 24, 16 and 8 bpp.

Signed-off-by: Anatolij Gustschin <agust@denx.de>
2008-02-15 00:54:01 +01:00
Jean-Christophe PLAGNIOL-VILLARD
4124382de0 xsengine: fix typo and few coding style
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
2008-02-15 00:52:04 +01:00
Guennadi Liakhovetski
6f4abee789 Fix wrong memory limit calculation in memory-test
If the length of the memory address range passed to the "mtest" command is
not of the form 2^x - 1, not all address lines are tested. This bug is
inherited from the original software at
http://www.netrino.com/Embedded-Systems/How-To/Memory-Test-Suite-C. Fix
this.

Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
2008-02-15 00:51:02 +01:00
Wolfgang Denk
94a78da26c Merge branch 'master' of git://www.denx.de/git/u-boot-arm 2008-02-15 00:45:39 +01:00
Wolfgang Denk
ae91a8055c Merge ../custodians 2008-02-15 00:27:11 +01:00
Wolfgang Denk
9e04a81388 Merge branch 'master' of git://www.denx.de/git/u-boot-mpc86xx
Conflicts:

	common/cmd_reginfo.c

Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-02-15 00:26:52 +01:00
Wolfgang Denk
a4d60bb917 Merge ../custodians 2008-02-15 00:22:49 +01:00
Wolfgang Denk
32c70d3420 Merge branch 'master' of git://www.denx.de/git/u-boot-ppc4xx 2008-02-15 00:22:37 +01:00
Wolfgang Denk
e4992f1252 Merge ../custodians 2008-02-15 00:16:32 +01:00
Wolfgang Denk
a4f762a994 Merge branch 'master' of git://www.denx.de/git/u-boot-sh 2008-02-15 00:16:26 +01:00
Wolfgang Denk
edc886fc3d Merge ../custodians 2008-02-15 00:14:36 +01:00
Wolfgang Denk
92915741fc Merge branch 'master' of git://www.denx.de/git/u-boot-avr32 2008-02-15 00:14:26 +01:00
Wolfgang Denk
43157747fe Merge ../custodians 2008-02-15 00:13:09 +01:00
Wolfgang Denk
d9da0a394a Merge branch 'master' of git://www.denx.de/git/u-boot-mpc85xx 2008-02-15 00:12:52 +01:00
Wolfgang Denk
7e30f5eac7 Coding STyle cleanup.
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-02-15 00:11:39 +01:00
Wolfgang Denk
6f99eec3dc Merge branch 'master' of git://www.denx.de/git/u-boot-blackfin
Conflicts:

	Makefile
	doc/README.standalone

Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-02-15 00:06:18 +01:00
Nobuhiro Iwamatsu
f6921e3dc3 sh: Fix register address of SH7722
The address of SH7722 is wrong by old document.
This patch fixes this problem.

Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
2008-02-14 23:46:46 +01:00
Mike Frysinger
0ec7a061fb only update version header as needed
Constantly rebuilding the version header will force useless relinking, so we
simply need to compare the new header with the existing one before updating
it.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2008-02-14 23:43:24 +01:00
Mike Frysinger
208447f8e9 Do not specify a CROSS_COMPILE default when executing size
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2008-02-14 23:41:40 +01:00
Guennadi Liakhovetski
1f780aa6f1 Fix return value of mtest when CFG_ALT_MEMTEST set
Fix a missing return statement from a non-void function.

Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
2008-02-14 23:37:13 +01:00
Timur Tabi
943afa229c 85xx, 86xx: Determine I2C clock frequencies and store in global_data
Update global_data to define i2c1_clk and i2c2_clk to 85xx and 86xx.

Update the get_clocks() function in 85xx and 86xx to determine the I2C
clock frequency and store it in gd->i2c1_clk and gd->i2c2_clk.

Signed-off-by: Timur Tabi <timur@freescale.com>
2008-02-14 23:32:40 +01:00
Wolfgang Denk
b931b3a9c3 TQM834x: clean up configuration
Get board name consistent with Linux and elsewhere;
get rid of local network definitions etc.

Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-02-14 23:18:01 +01:00
Jean-Christophe PLAGNIOL-VILLARD
38cc09c55b TFTP: fix search of ':' in BootFile
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
2008-02-14 23:02:52 +01:00
Wolfgang Denk
0bc9efada1 Coding style cleanup; update CHANGELOG.
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-02-14 22:46:55 +01:00
Wolfgang Denk
e7670f6c1e PPC: Use r2 instead of r29 as global data pointer
R29 was an unlucky choice as with recent toolchains (gcc-4.2.x) gcc
will refuse to use load/store multiple insns; instead, it issues a
list of simple load/store instructions upon function entry and exit,
resulting in bigger code size, which in turn makes the build for a
few boards fail.

Use r2 instead.

Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-02-14 22:43:22 +01:00
Uwe Kleine-König
3c234efa69 ARM: make the machid configurable via the environment
If the variable "machid" exists, let do_bootm_linux use that instead
of bd->bi_arch_number.

Signed-off-by: Uwe Kleine-Knig <Uwe.Kleine-Koenig@digi.com>
2008-02-14 22:24:07 +01:00
Vlad Lungu
dd24058407 Use #ifdef CONFIG_FSLDMAFEC
MCD_tasks.c lacks [subject] so compilation of mips targets (and more, probably)
fails

Signed-off-by: Vlad Lungu <vlad@comsys.ro>
2008-02-14 22:13:28 +01:00
Shinya Kuribayashi
26c7bab81e common/miiphyutil.c: Cleanup MII_DEBUG and debug()
Current MII_DEBUG is confusing in two ways. One is useless define-then-
undef at the top of the file. The other is there is only one debug() in
this file, and that doesn't seem worthwhile to bother having MII_DEBUG.
While there are many useful printf()/puts() debug codes, but they are for
DEBUG, not for MII_DEBUG.

This patch tries to put them all together into MII_DEBUG and debug().

Signed-off-by: Shinya Kuribayashi <skuribay@ruby.dti.ne.jp>
2008-02-14 22:10:38 +01:00
Kyungmin Park
751b9b5189 OneNAND Initial Program Loader (IPL) support
This patch enables the OneNAND boot within U-Boot.
Before this work, we used another OneNAND IPL called X-Loader based
on open source. With this work, we can build the oneboot.bin image
without other program.

The build sequence is simple.
First, it compiles the u-boot.bin
Second, it compiles OneNAND IPL
Finally, it becomes the oneboot.bin from OneNAND IPL and u-boot.bin
The mechanism is similar with NAND boot except it boots from itself.

Another thing is that you can only use the OneNAND IPL only to work
other bootloader such as RedBoot and so on.

Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
2008-02-14 22:08:13 +01:00
Andy Fleming
21f6f9636f Fix CONFIG_MMC usage in fat code
A #if statement in fat.c depended on CONFIG_MMC, instead of
defined(CONFIG_MMC).  This meant CONFIG_MMC needed to be defined
as "1" rather than just defined.  Now it's better.

Signed-off-by: Andy Fleming <afleming@freescale.com>
2008-02-14 22:03:17 +01:00
Rafal Jaworowski
f57d7d364c ppc: Refactor cache routines, so there is only one common set.
Signed-off-by: Rafal Jaworowski <raj@semihalf.com>
2008-02-14 22:00:41 +01:00
Jon Loeliger
746c4b9490 Merge commit 'wd/master' 2008-02-14 14:07:21 -06:00
Jon Loeliger
3f2ac8f928 86xx: Fix compilation warning in sys_eprom.c
sys_eeprom.c:82:9: warning: unknown escape sequence '\/'

Signed-off-by: Jon Loeliger <jdl@freescale.com>
2008-02-14 13:58:53 -06:00
Andy Fleming
3f2175fa84 Merge branch 'denx' 2008-02-14 10:11:14 -06:00
Stefan Roese
f90e69c634 Merge branch 'for-1.3.2' 2008-02-14 11:46:07 +01:00
Haavard Skinnemoen
6523010702 Move AT91RM9200DK board support under board/atmel
We already have a vendor subdir for Atmel, so we should use it.

Signed-off-by: Haavard Skinnemoen <hskinnemoen <at> atmel.com>
2008-02-14 10:07:46 +00:00
Andreas Engel
6d0943a6be ARM: cleanup duplicated exception handlingcode
Move duplicated exception handling code into lib_arm.

Signed-off-by: Andreas Engel <andreas.engel@ericsson.com>
2008-02-14 09:38:21 +00:00
Timo Tuunainen
ea8d989f4e Support for Artila M-501 starter kit
Kimmo Leppala / Sysart and
Timo Tuunainen / Sysart
2008-02-14 09:38:08 +00:00
Stelian Pop
9604b6e53d AT91CAP9 support
---------------------------------

read_dataflash() takes a signed char pointer as a parameter. Silence a
few warnings dues to incorrect parameter types in env_dataflash.c.

Signed-off-by: Stelian Pop <stelian@popies.net>
2008-02-14 09:37:58 +00:00
Stelian Pop
64e8a06af6 AT91CAP9 support : move board files to Atmel vendor directory.
AT91CAP9 support : move at91cap9adk board files to Atmel vendor directory.

Signed-off-by: Stelian Pop <stelian@popies.net>
2008-02-14 09:37:58 +00:00
Stelian Pop
7263ef191b AT91CAP9 support : MACB changes
Signed-off-by: Stelian Pop <stelian <at> popies.net>
Acked-by: Haavard Skinnemoen <hskinnemoen <at> atmel.com>
2008-02-14 09:37:58 +00:00
Stelian Pop
6afcabf11d AT91CAP9 support : board/ files
Signed-off-by: Stelian Pop <stelian@popies.net>
2008-02-14 09:37:57 +00:00
Stelian Pop
fefb6c1092 AT91CAP9 support : cpu/ files
Signed-off-by: Stelian Pop <stelian <at> popies.net>
2008-02-14 09:37:57 +00:00
Stelian Pop
fa506a926c AT91CAP9 support : include/ files
Signed-off-by: Stelian Pop <stelian@popies.net>
2008-02-14 09:37:57 +00:00
Stelian Pop
20b197c6f2 AT91CAP9 support : build integration
Signed-off-by: Stelian Pop <stelian@popies.net>
2008-02-14 09:37:57 +00:00
Stelian Pop
d49fe4bed5 Improve DataFlash CS definition.
Use a structure instead of the error prone unnamed array to
define the possible dataflash banks.

Signed-off-by: Stelian Pop <stelian@popies.net>
2008-02-14 09:37:56 +00:00
Stelian Pop
a6cdd21b56 Fix arm926ejs compile when SKIP_LOWLEVEL_INIT is on
Fix arm926ejs compile when SKIP_LOWLEVEL_INIT is on.

cpu/arm926ejs/start.o: In function `cpu_init_crit':
.../cpu/arm926ejs/start.S:227: undefined reference to `lowlevel_init'

Signed-off-by: Stelian Pop <stelian@popies.net>
2008-02-14 09:37:56 +00:00
Peter Pearse
ea686f52e4 Fix timer overflow in DaVinci
Signed-off-by: Dirk Behme <dirk.behme@gmail.com>
2008-02-14 09:37:42 +00:00
Peter Pearse
f4e7cbfcb0 Update board NetStar
Signed-off-by: Ladislav Michl <ladis@linux-mips.org>
2008-02-14 09:32:21 +00:00
Niklaus Giger
b7f6193e76 ppc4xx: HCU4/5. Fix make O=../xx
Signed-off-by: Niklaus Giger <niklaus.giger@netstal.com>
2008-02-14 07:44:45 +01:00
Larry Johnson
29e3500cbc ppc4xx: Add CONFIG_4xx_DCACHE compile switch to Denali-core SPD code
Signed-off-by: Larry Johnson <lrj@acm.org>
2008-02-14 07:42:32 +01:00
Andy Fleming
d1bcf9e53b Merge branch 'denx' 2008-02-13 18:36:27 -06:00
Hiroshi Ito
fe891ecf4d NFS Timeout with large files.
Retry to send NFS packet before reaching timeout.

Signed-off-by: Hiroshi Ito <ito@mlb.co.jp>
2008-02-14 01:26:13 +01:00
Johannes Stezenbach
88f72527f5 Add dependencies to avoid race conditions with parallel make.
Signed-off-by: Johannes Stezenbach <js@sig21.net>
2008-02-14 01:18:17 +01:00
Mike Frysinger
6d1b6f9f89 Mark board_init_[fr] as noreturn
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2008-02-14 01:13:30 +01:00
Mike Frysinger
161b2af4d7 Only use TEXT_BASE if defined by the board
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2008-02-14 01:12:45 +01:00
Jean-Christophe PLAGNIOL-VILLARD
1b76988175 Fix remaining CONFIG_COMMANDS
update comments
Fix coding style

Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
2008-02-14 01:11:00 +01:00
Niklaus Giger
0c9d42e6b0 Add *~ to .gitignore
One should never add a backup file ending in with ~ to the git repository.

Signed-off-by: Niklaus Giger <niklaus.giger@netstal.com>
2008-02-14 00:54:23 +01:00
Kumar Gala
3cfb0c51b2 Remove duplicate defines for ARRAY_SIZE
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2008-02-14 00:43:02 +01:00
Stelian Pop
c77ce474b1 Fix incorrect address test in AT91F_DataflashSelect().
Signed-off-by: Stelian Pop <stelian@popies.net>
2008-02-14 00:37:23 +01:00
Kumar Gala
d9ad115bbf Fix building of fdt_support.c if DEBUG set
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2008-02-13 23:58:18 +01:00
Jon Loeliger
ccd6e1464e Add CFG_MPC86xx_DDR_ADDR and CFG_MPC86xx_DDR2_ADDR symbols
These replace direct structure references for IMMR sections.

Signed-off-by: Jon Loeliger <jdl@freescale.com>
2008-02-13 16:03:49 -06:00
Jon Loeliger
d075eec500 Merge commit 'wd/master' 2008-02-13 16:03:20 -06:00
Wolfgang Denk
10bbb38a40 Merge branch 'master' of /home/wd/git/u-boot/custodians 2008-02-12 00:56:25 +01:00
Wolfgang Denk
4c309625e7 Merge branch 'master' of git://www.denx.de/git/u-boot-mpc83xx 2008-02-12 00:53:56 +01:00
Wolfgang Denk
ac2731f185 Merge branch 'master' of /home/wd/git/u-boot/custodians 2008-02-12 00:51:05 +01:00
Wolfgang Denk
c62776be8d Get rid of "#undef DEBUG" from board config files.
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-02-12 00:45:06 +01:00
Timur Tabi
73bf1e2de7 Remove #undef DEBUG from MPC83xx board header files
Remove the "#undef DEBUG" line from all Freescale 83xx board header files.
The inclusion of this line makes it impossible to enable debug code in
other source files, because "#define DEBUG" typically needs to be defined
before any header files are included.

Signed-off-by: Timur Tabi <timur@freescale.com>
2008-02-12 00:39:45 +01:00
Kumar Gala
69018ce2e0 QE: Move FDT support into a common file
Move the flat device tree setup for QE related devices into
a common file shared between 83xx & 85xx platforms that have QE's.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2008-02-12 00:36:21 +01:00
Marian Balakowicz
5cf746c303 [new uImage] Move kernel data find code to get_kernel() routine
Verification of the kernel image (in old format) and finding kernel
data is moved to a dedicated routine. The routine will also hold
support for, to be added, new image format.

Signed-off-by: Marian Balakowicz <m8@semihalf.com>
2008-02-07 01:13:00 +01:00
Marian Balakowicz
7b325454fd [new uImage] Cleanup FDT handling in PPC do_boot_linux()
Move FDT blob finding and relocation to a dedicated
get_fdt() routine. It increases code readability and
will make adding support for new uImage format easier.

Signed-off-by: Marian Balakowicz <m8@semihalf.com>
2008-02-07 01:13:00 +01:00
Marian Balakowicz
b6b0fe6460 [new uImage] Cleanup do_botm_linux() boot allocations
This patch moves common pre-boot allocation steps shared between PPC
and M68K to a helper routines:

common:
- get_boot_sp_limit()
- get_boot_cmline()
- get_boot_kbd()

platform:
- set_clocks_in_mhz()

Signed-off-by: Marian Balakowicz <m8@semihalf.com>
2008-02-07 01:13:00 +01:00
Marian Balakowicz
ceaed2b1e5 [new uImage] Move ramdisk loading to a common routine
Ramdisk loading code, including initrd_high variable handling,
was duplicated for PPC and M68K platforms. This patch creates
common helper routine that is being called from both platform
do_bootm_linux() routines.

Signed-off-by: Marian Balakowicz <m8@semihalf.com>
2008-02-07 01:13:00 +01:00
Marian Balakowicz
68d4f05e6b [new uImage] Removed dead ramdisk code on microblaze architectures
Microblaze do_bootm_linux() includes ramdisk processing code but
the ramdisk does not get used anywhere later on.

Signed-off-by: Marian Balakowicz <m8@semihalf.com>
2008-02-07 01:12:59 +01:00
Marian Balakowicz
5ad03eb385 [new uImage] Factor out common image_get_ramdisk() routine
Architecture specific do_bootm_linux() routines share common
ramdisk image processing code. Move this code to a common
helper routine.

Signed-off-by: Marian Balakowicz <m8@semihalf.com>
2008-02-07 01:12:59 +01:00
Marian Balakowicz
d3c5eb6dd1 [new uImage] Move FDT error printing to common fdt_error() routine
FDT error handling in PPC do_bootm_linux() shares the same message format.
This patch moves error message printing to a helper fdt_error() routine.

Signed-off-by: Marian Balakowicz <m8@semihalf.com>
Acked-by: Gerald Van Baren <vanbaren@cideas.com>
2008-02-07 01:12:59 +01:00
Marian Balakowicz
42b73e8ee0 [new uImage] Factor out common routines for getting os/arch/type/comp names
Move numeric-id to name translation for image os/arch/type/comp header
fields to a helper routines: image_get_os_name(), image_get_arch_name(),
image_get_type_name(), image_get_comp_name().

Signed-off-by: Marian Balakowicz <m8@semihalf.com>
2008-02-07 01:12:58 +01:00
Marian Balakowicz
e99c26694a [new uImage] Remove standalone applications handling from boootm
Standalone applications are supposed to be run using the "go" command.
This patch removes standalone images handling from the do_bootm().

Signed-off-by: Marian Balakowicz <m8@semihalf.com>
2008-02-07 01:12:58 +01:00
Marian Balakowicz
4a2ad5ff64 [new uImage] Remove OF_FLAT_TREE support from PPC bootm code
Support for OF_FLAT_TREE is to be obsoleted in the near future,
remove related code from the bootm routines.

Signed-off-by: Marian Balakowicz <m8@semihalf.com>
2008-02-07 01:12:57 +01:00
Marian Balakowicz
82850f3d32 [new uImage] Use image API in SH do_bootm_linux() routine
Introduce image handling API for lately added Hitachi SH architecture.

Signed-off-by: Marian Balakowicz <m8@semihalf.com>
2008-02-07 01:12:57 +01:00
Marian Balakowicz
4a995edec1 [new uImage] Rename architecture specific bootm code files
Implementation of the do_bootm_linux() and other bootm helper routines is
architecture specific code. As such it resides in lib_<arch> directories
in files named <arch>_linux.c

This patch renames those files to a more clear and accurate
lib_<arch>/bootm.c form.

List of the renamed files:
   lib_arm/armlinux.c -> lib_arm/bootm.c
   lib_avr32/avr32_linux.c -> lib_avr32/bootm.c
   lib_blackfin/bf533_linux.c -> lib_blackfin/bootm.c
   lib_i386/i386_linux.c -> lib_i386/bootm.c
   lib_m68k/m68k_linux.c -> lib_m68k/bootm.c
   lib_microblaze/microblaze_linux.c -> lib_microblaze/bootm.c
   lib_mips/mips_linux.c -> lib_mips/bootm.c
   lib_nios/nios_linux.c -> lib_nios/bootm.c
   lib_nios2/nios_linux.c -> lib_nios2/bootm.c
   lib_ppc/ppc_linux.c -> lib_ppc/bootm.c
   lib_sh/sh_linux.c -> lib_sh/bootm.c

Signed-off-by: Marian Balakowicz <m8@semihalf.com>
2008-02-07 01:12:57 +01:00
Marian Balakowicz
7582438c28 [new uImage] Return error on image move/uncompress overwrites
Check for overwrites during image move/uncompress, return with error
when the original image gets corrupted. Report clear message to the user
and prevent further troubles when pointer to the corrupted images is passed
to do_bootm_linux routine.

Signed-off-by: Marian Balakowicz <m8@semihalf.com>
2008-02-07 01:12:57 +01:00
Marian Balakowicz
f13e7b2e99 [new uImage] Cleanup image header pointer use in bootm code
- use single image header pointer instead of a set of auxilliary variables.
- add multi component image helper routines: get component size/data address

Signed-off-by: Marian Balakowicz <m8@semihalf.com>
2008-02-07 01:12:57 +01:00
Marian Balakowicz
1ee1180b6e [new uImage] Cleanup cmd_bootm.c
- sort and cleanup headers, declarations, etc.
- group related routines
- cleanup indentation, white spaces

Signed-off-by: Marian Balakowicz <m8@semihalf.com>
2008-02-07 01:12:56 +01:00
Marian Balakowicz
af13cdbc01 [new uImage] Add memmove_wd() common routine
Move common, watchdog sensible memmove code to a helper memmmove_wd() routine.

Signed-off-by: Marian Balakowicz <m8@semihalf.com>
2008-02-07 01:12:56 +01:00
Marian Balakowicz
958fc48abd [new uImage] Fix FDT header verification in PPC do_boot_linux() routine
Signed-off-by: Marian Balakowicz <m8@semihalf.com>
2008-02-07 01:12:56 +01:00
Marian Balakowicz
15158971f4 [new uImage] Fix uImage header pointer use in i386 do_bootm_linux()
Use image header copy instead of a (possibly corrupted) pointer to
a initial image location.

Signed-off-by: Marian Balakowicz <m8@semihalf.com>
2008-02-07 01:12:55 +01:00
Marian Balakowicz
261dcf4624 [new uImage] Remove I386 uImage fake_header() routine
I386 targets are not using a uImage format, instead fake header
is added to ram image before it is further processed by bootm.

Remove this fixup and force proper uImage use for I386.

Signed-off-by: Marian Balakowicz <m8@semihalf.com>
2008-02-07 01:12:55 +01:00
Marian Balakowicz
559316faf7 [new uImage] Move CHUNKSZ definition to image.h
CHUNKSZ defined for PPC and M68K is set to the same value of 64K,
move this definition to a common header.

Signed-off-by: Marian Balakowicz <m8@semihalf.com>
2008-02-07 01:12:55 +01:00
Marian Balakowicz
321359f208 [new uImage] Move gunzip() common code to common/gunzip.c
Move gunzip(), zalloc() and zfree() to a separate file.
Share zalloc() and zfree() with cramfs uncompress routine.

Signed-off-by: Marian Balakowicz <m8@semihalf.com>
2008-02-07 01:12:55 +01:00
Marian Balakowicz
d45d5a18b6 [new uImage] Cleanup OF/FDT #if/#elif/#endif use in do_bootm_linux()
Make CONFIG_OF_LIBFDT and CONFIG_OF_FLAT_TREE use more
readable in PPC variant of do_bootm_linux() routine.

Signed-off-by: Marian Balakowicz <m8@semihalf.com>
2008-02-07 01:12:55 +01:00
Marian Balakowicz
5d3cc55ecb [new uImage] Move PPC do_bootm_linux() to lib_ppc/ppc_linux.c
PPC implementation of do_bootm_linux() routine is moved to
a dedicated file lib_ppc/ppc_linux.c

Signed-off-by: Marian Balakowicz <m8@semihalf.com>
2008-02-07 01:12:54 +01:00
Marian Balakowicz
b97a2a0a21 [new uImage] Define a API for image handling operations
- Add inline helper macros for basic header processing
- Move common non inline code common/image.c
- Replace direct header access with the API routines
- Rename IH_CPU_* to IH_ARCH_*

Signed-off-by: Marian Balakowicz <m8@semihalf.com>
2008-02-07 01:12:53 +01:00
Marian Balakowicz
ed29bc4e81 Add missing cmd_ximg.o to common/Makefile
Signed-off-by: Marian Balakowicz <m8@semihalf.com>
2008-02-07 01:12:53 +01:00
Grzegorz Bernacki
37e3c62fa0 ADS5121e: DDR2 init/timing update.
Signed-off-by: John Rigby <jrigby@freescale.com>
Signed-off-by: Grzegorz Bernacki <gjb@semihalf.com>
2008-02-07 01:10:04 +01:00
John Rigby
ac9152830d Device tree updates
Changes to match 5121 device tree going mainline in 2.6.25.

Change OF_SOC from "soc5121" to plain "soc".
Remove unneeded "ref-frequency" fixups.
Remove "address" enetaddr fixup.

Add bus-frequency fixup for old OF_SOC so old
kernels with old device trees will work with new
u-boot with 66MHz IPS clock

Signed-off-by: John Rigby <jrigby@freescale.com>
2008-02-07 01:08:10 +01:00
John Rigby
de55d18df3 Change IPS freq to 66MHz
Recommended frequency is 66MHz
Change divider from 4 to 3.

Signed-off-by: John Rigby <jrigby@freescale.com>
2008-02-07 01:08:05 +01:00
Jean-Christophe PLAGNIOL-VILLARD
cd9cb62f9d xsengine: rename board_post_init to board_late_init
missing migration from "Cleanup of some init functions"
in c837dcb1a3

Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
2008-02-07 00:39:47 +01:00
Larry Johnson
8dafa87476 Add attribute POST_PREREL to ECC memory POST
Signed-off-by: Larry Johnson <lrj@acm.org>
2008-02-07 00:22:59 +01:00
Kumar Gala
ed2cf548ca QE: Move FDT support into a common file
Move the flat device tree setup for QE related devices into
a common file shared between 83xx & 85xx platforms that have QE's.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2008-02-05 11:00:17 -06:00
Haavard Skinnemoen
d38da53794 AVR32: Make SDRAM refresh rate configurable
The existing code assumes the SDRAM row refresh period should always
be 15.6 us. This is not always true, and indeed on the ATNGW100, the
refresh rate should really be 7.81 us.

Add a refresh_period member to struct sdram_info and initialize it
properly for both ATSTK1000 and ATNGW100. Out-of-tree boards will
panic() until the refresh_period member is updated properly.

Big thanks to Gerhard Berghofer for pointing out this issue.

Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
2008-02-05 12:14:27 +01:00
Haavard Skinnemoen
61151cccb6 ATSTK1000: Fix potential flash programming bug
The (now obsolete) atngw100 flash programming code was having problems
programming the onboard at49bv642 chip. The atstk1000 flash
programming code may have the same bug, so import fix for this problem
from the AVR32 Linux BSP.

Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
2008-02-05 12:14:27 +01:00
Haavard Skinnemoen
b2e1d5b644 ATSTK1004: Fix comment about default load address
The default load address is SDRAM + 2MB, not SDRAM + 4MB. The latter
wouldn't have worked anyway since the board can only access 4MB of
SDRAM.

Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
2008-02-05 12:14:26 +01:00
Haavard Skinnemoen
8269ab5360 ATSTK1002: Use SDRAM + 4MB as default load address
Many people run into problems when they compile a big kernel and load
the uImage at the default SDRAM + 2MB address as the kernel will
overwrite the uImage as it is being unpacked. Increase the default
load address so that we can load a 4MB kernel image without any
problems.

Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
2008-02-05 12:14:26 +01:00
Haavard Skinnemoen
2bcacc2d84 ATNGW100: Fix default mtest range
Let mtest cover the whole SDRAM except the last megabyte, which is
where u-boot lives.

Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
2008-02-05 12:14:26 +01:00
Nobuhiro Iwamatsu
9856a6b310 sh: Fix register address of SH7722.
The address of SH7722 is wrong by old document.
This patch fixes this problem.

Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
2008-02-05 15:58:46 +09:00
Mike Frysinger
30942b18b6 new command for displaying strings at specified memory locations
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2008-02-04 19:26:57 -05:00
Mike Frysinger
b58d8b48e2 rewrite/cleanup Blackfin RTC driver
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2008-02-04 19:26:57 -05:00
Mike Frysinger
94a91e248b generate u-boot.ldr for Blackfin targets
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2008-02-04 19:26:57 -05:00
Mike Frysinger
b779f7a595 scrub unused symbols
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2008-02-04 19:26:57 -05:00
Mike Frysinger
cc2977acc3 move Blackfin cpu object list to respective cpu directories
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2008-02-04 19:26:57 -05:00
Mike Frysinger
d0b01a246d interface to Blackfin on-chip One-Time-Programmable memory
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2008-02-04 19:26:57 -05:00
Mike Frysinger
4c727c77e4 add support for memory commands with Blackfin L1 instruction memory
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2008-02-04 19:26:56 -05:00
Mike Frysinger
6b9097e5e7 use C code rather than inline assembly
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2008-02-04 19:26:56 -05:00
Mike Frysinger
97c26e006d add Blackfin-specific reginfo command
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2008-02-04 19:26:56 -05:00
Mike Frysinger
0858b835e7 add support for Blackfin symbol prefixes to examples
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2008-02-04 19:26:55 -05:00
Mike Frysinger
8dc48d71a4 add Blackfin-specific bdinfo command
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2008-02-04 19:26:55 -05:00
Mike Frysinger
0003613e3c move -ffixed-P5 to blackfin_config.mk and drop unused -D__BLACKFIN__
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2008-02-04 19:26:55 -05:00
Mike Frysinger
60fa72d656 unify the Blackfin board targets
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2008-02-04 19:26:55 -05:00
Mike Frysinger
d4d7730853 punt Blackfin VDSP headers and import sanitized/auto-generated ones
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2008-02-04 19:26:55 -05:00
Mike Frysinger
6cfcce6767 always pull in asm/blackfin.h for Blackfin ports
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2008-02-04 19:26:54 -05:00
Mike Frysinger
bf53974c2d add missing __raw versions of Blackfin read/write io functions
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2008-02-04 19:26:54 -05:00
Mike Frysinger
24e02d0fd3 add the default Blackfin logo used by Blackfin boards with splash screens
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2008-02-04 19:26:54 -05:00
Mike Frysinger
4c58eb5552 add some more Blackfin docs
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2008-02-04 19:26:54 -05:00
Mike Frysinger
32a9f5f216 make smc91111_eeprom managment simpler by depending on the board configuration file rather than a hardcoded list of boards
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2008-02-04 19:26:54 -05:00
Mike Frysinger
4087bc88ce fix building on Blackfin as the assembler supports the .set syntax, not the = syntax, for assigning symbols
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2008-02-04 19:26:54 -05:00
Mike Frysinger
b45264ee85 add gitignores for Blackfin pieces
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2008-02-04 19:26:53 -05:00
Jean-Christophe PLAGNIOL-VILLARD
a93907c43f TFTP: add host ip addr support
allow to use a different server as set in serverip
add CONFIG_TFTP_FILE_NAME_MAX_LEN to configure the file name length
if not defined the max length will be at 128

Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
2008-02-05 00:41:55 +01:00
Timur Tabi
e56b4b494c 85xx,86xx: Determine I2C clock frequencies and store in global_data
Update global_data to define i2c1_clk and i2c2_clk to 85xx and 86xx.

Update the get_clocks() function in 85xx and 86xx to determine the I2C
clock frequency and store it in gd->i2c1_clk and gd->i2c2_clk.

Signed-off-by: Timur Tabi <timur@freescale.com>
2008-02-04 17:38:08 -06:00
Wolfgang Denk
7ec8bb15ee OMAP5912: fix FIFO handling in UART driver
According to the OMAP5912 Serial Interfaces Reference Guide (see
http://focus.ti.com/lit/ug/spru760c/spru760c.pdf, page 150), the
FIFO_EN enable bit in the FIFO Control Register (FCR) can only be
changed when the baud clock is not running, i. e. when both DLL and
DLH are set to 0.

Thus make sure that DLL and DLH are 0 when writing the FCR.

Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-02-05 00:04:15 +01:00
Harald Welte
16158778b5 ARM: S3C24x0 SoC NAND controller support
This patch adds NAND support to the S3C24x0 SoC code in u-boot

Signed-off-by: Harald Welte <laforge@openmoko.org>
2008-02-04 23:54:51 +01:00
Harald Welte
a7c185ed3d ARM: s3c24xx: Multiple serial port support
This patch adds support for CONFIG_SERIAL_MULTI on s3c24x0 CPU's

Signed-off-by: Harald Welte <laforge@openmoko.org>
2008-02-04 23:52:49 +01:00
Harald Welte
a25f72f1f7 ARM: arm920t: Allow use of 'gd' pointer from IRQ
This patch allows us to use the 'gd' pointer (and thus environment
and everything else associated with it) from interrupt context on
arm920t.

Signed-off-by: Harald Welte <laforge@openmoko.org>
2008-02-04 23:50:54 +01:00
Harald Welte
be19bd5cd0 ARM: arm920/s3c24xx: IRQ demulitplexer callback
This patch adds a IRQ demultiplexer callback to the arm920 cpu core code,
plus a stub implementation of it for the S3C2410.

The purpose is to allow arm920t implementations such as the s3c24x0 to
implement interrupt handlers in u-boot without having to touch core
arm920t code.

Signed-off-by: Harald Welte <laforge@openmoko.org>
2008-02-04 23:49:13 +01:00
Hebbar
a41dbbd98d ARM: Display Ethernet info in do_bdinfo only if CONFIG_CMD_NET is defined
Add ifdef to bdinfo command to display ethernet information
only if CONFIG_CMD_NET is defined for arm modules.

Signed-off-by: K R Gururaja Hebbar <gururajakr@sanyo.co.in>
2008-02-04 23:17:01 +01:00
Hebbar
f7ad79b6f9 ARM: add I2C init function call in lib_arm/board.c
Adds I2C init func call to init sequence for ARM boards. This is
present in ppc,blackfin and other processor init sequence.

Signed-off-by: K R Gururaja Hebbar <gururajakr@sanyo.co.in>
2008-02-04 23:02:00 +01:00
Stefan Roese
ff02f13980 ppc4xx: Fix ndfc HW ECC byte order
The current ndfc HW ECC implementation swaps the first two ECC bytes.
But the 4xx NDFC already uses the SMC (Smart Media Card) ECC ordering,
so this swapping in the HW ECC driver is bogus. This patch fixes this
problem and now really uses the SMC ECC byte order.

Thanks to Sean MacLennan for pointing this out.

Signed-off-by: Stefan Roese <sr@denx.de>
2008-02-04 11:47:40 +01:00
Stefan Roese
e1d1429b49 ppc4xx: Fix GPIO configuration for pcs440ep
The SRD0_PFC0 register was not configured correctly to enable the GPIO's
49-63 for GPIO. They have been configured as trace signals. This patch
fixes this by clearing the corresponding bit.

Signed-off-by: Stefan Roese <sr@denx.de>
2008-02-04 11:47:40 +01:00
Stefan Roese
28d77d968b ppc4xx: Fix problem with init-ram bigger than 4k on 440 platforms
Signed-off-by: Stefan Roese <sr@denx.de>
2008-02-04 11:47:40 +01:00
Ladislav Michl
4fedfddf97 ARM: Board voiceblue update
Signed-off-by: Ladislav Michl <ladis@linux-mips.org>
2008-02-04 00:17:20 +01:00
Ladislav Michl
2c5260f711 ARM: AT91RM9200 based boards config cleanup
Signed-off-by: Ladislav Michl <ladis@linux-mips.org>

Remove nowhere used struct bd_info_ext, remove trailing whitespaces, fix
indentation.
2008-02-04 00:13:20 +01:00
Ladislav Michl
481f28b1db ARM: Fix at91rm9200dk base address
Somewhere during development of U-Boot-1.1.3 CONFIG_BOOTBINFUNC was
renamed into CONFIG_INIT_CRITICAL which was 04 Apr 2005 replaced
with CONFIG_SKIP_LOWLEVEL_INIT and CONFIG_SKIP_RELOCATE_UBOOT.
However CONFIG_SKIP_LOWLEVEL_INIT has oposite meaning to
CONFIG_BOOTBINFUNC, so fix configuration to reflect this fact.
I'm sending this patch 4th (!) time in hope it produces at least some
reaction.

Signed-off-by: Ladislav Michl <ladis@linux-mips.org>

Fix at91rm9200dk base and environment address.
2008-02-04 00:12:36 +01:00
stefano babic
c95219fae2 MMC for PXA 27X (resubmit)
MMC support for X_Scale PXA is broken and does not work.
Mainly, the mmc_init() function cannot recognize current SD/MMC cards.
There were already some patches around the world but none of them was
merged into the official u-boot tree.

This patch makes order fixing this issue. Resubmit after code cleanup.

Applied and tested on PXA 270 (TrizepsIV module).

Signed-off-by: Stefano Babic <sbabic@denx.de>
2008-02-03 23:58:21 +01:00
stefano babic
96bbfa1e66 Fix gcc issues in pxa-regs.h
Fix gcc4 issue. With some toolchain, a previous patch that fixes gcc4
issues generates wrong code.
(Problem was reported with gcc-4.0.2-glibc-2.3.6/arm-softfloat-linux-gnu).
This patch fixes the problem and solves the gcc-4 issues as the linux
kernel does.

Signed-off-by: Stefano Babic <sbabic@denx.de>
Signed-off-by: Dmitry Ivanov <ivadmitry@gmail.com>
2008-02-03 23:46:06 +01:00
Jon Loeliger
60c1b95aab Merge branch 'mpc86xx' 2008-01-30 10:56:19 -06:00
Jens Gehrlein
7047b38887 TQM834x: enable DHCP
Signed-off-by: Jens Gehrlein <sew_s@tqs.de>
Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
2008-01-29 11:53:21 -06:00
Jens Gehrlein
a877004d44 TQM834x: support for Spansion N-type Flashes (sector size = 256 KiB at 2x16 Bit).
Signed-off-by: Jens Gehrlein <sew_s@tqs.de>
Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
2008-01-29 11:53:17 -06:00
Ben Warren
8931ab1760 Fix conditional compilation of mpx8xxx_spi driver
This driver should only compile if CONFIG_MPC8XXX_SPI is set

Signed-off-by: Ben Warren <biggerbadderben@gmail.com>
Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
2008-01-29 11:53:00 -06:00
Rafal Jaworowski
63f732d3d3 API: Provide dummy halt() in the glue layer.
This fixes a demo app link failure on platforms configured with CONFIG_PANIC_HANG.

Signed-off-by: Rafal Jaworowski <raj@semihalf.com>
2008-01-29 17:00:34 +01:00
Rafal Jaworowski
0dc1fc22af API: Convert conditional building to the new scheme.
This fixes a build breakage with CONFIG_API enabled, which appeared after
the recent changes in the U-Boot build system.

Signed-off-by: Rafal Jaworowski <raj@semihalf.com>
2008-01-29 16:57:38 +01:00
Wolfgang Denk
98b742489c inka4x0: remove dead code
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-01-25 09:56:17 +01:00
Becky Bruce
4f93f8b1a4 86xx: Add reginfo command
Signed-off-by: Becky Bruce <becky.bruce@freescale.com>
2008-01-24 12:12:56 -06:00
Becky Bruce
ddcebcb638 86xx: Add print_laws function to fsl_law.c
This can be used for debug, and will be used by board code
to help implement reginfo.

Signed-off-by: Becky Bruce <becky.bruce@freescale.com>
2008-01-24 12:12:51 -06:00
Becky Bruce
9cd32426f2 86xx: Remove old-style law setup code
This includes mpc8610hpcd, mpc8641hpcn, and sbc8641d.

Signed-off-by: Becky Bruce <becky.bruce@freescale.com>
2008-01-24 12:12:40 -06:00
Becky Bruce
713d818664 86xx: Convert sbc8641d to use new law setup code.
Signed-off-by: Becky Bruce <becky.bruce@freescale.com>
2008-01-24 12:12:36 -06:00
Becky Bruce
031976f636 86xx: Convert mpc8610hpcd to new law setup method.
Signed-off-by: Becky Bruce <becky.bruce@freescale.com>
2008-01-24 12:12:33 -06:00
Becky Bruce
4933b91f8a 86xx: Support new law setup method and convert mpc8641
Adds the support code in cpu/mpc86xx for the new law setup code
recently created fsl_law.c, and changes the MPC8641HPCN config
to use this code.

Signed-off-by: Becky Bruce <becky.bruce@freescale.com>
2008-01-24 12:12:30 -06:00
Becky Bruce
1a41f7ce9c 86xx: Rearrange the sequence in start.S
* split the BAT initialization so that only 2 BATs (for the boot page
and stack) are programmed very early on.  The rest are initialized later.
* Move other BAT setup,  ccsrbar setup, and law setup later in the code
after translation has been enabled.

These changes will facilitate the moving of law and BAT initialization
to C code, and will aid with 36-bit physical addressing support.

Signed-off-by: Becky Bruce <becky.bruce@freescale.com>
2008-01-24 12:11:37 -06:00
Wolfgang Denk
33dac03b1b Coding Style Cleanup; update CHANGELOG
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-01-23 14:41:37 +01:00
Wolfgang Denk
060193e4c3 Merge ../custodians 2008-01-23 14:40:34 +01:00
Wolfgang Denk
40dcd6aa75 Merge branch 'master' of git://www.denx.de/git/u-boot-ixp 2008-01-23 14:39:26 +01:00
Wolfgang Denk
f10d7b9454 Merge ../custodians 2008-01-23 14:37:59 +01:00
Wolfgang Denk
f58934551e Merge branch 'master' of git://www.denx.de/git/u-boot-mips 2008-01-23 14:37:52 +01:00
Wolfgang Denk
b0e49b4cd8 Merge ../custodians 2008-01-23 14:35:32 +01:00
Wolfgang Denk
351080e2e8 Merge branch 'master' of git://www.denx.de/git/u-boot-sh 2008-01-23 14:35:26 +01:00
Wolfgang Denk
a6dff77c2d Merge ../custodians 2008-01-23 14:34:00 +01:00
Wolfgang Denk
8d54477b9b Merge branch 'master' of git://www.denx.de/git/u-boot-avr32 2008-01-23 14:33:40 +01:00
Wolfgang Denk
865f0f9754 Coding Style Cleanup; update CHANGELOG
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-01-23 14:31:17 +01:00
Wolfgang Denk
e57ed96bac Merge branch 'master' of git://www.denx.de/git/u-boot-coldfire 2008-01-23 14:23:13 +01:00
Wolfgang Denk
2468592d79 Merge branch 'master' of git://www.denx.de/git/u-boot-net 2008-01-23 14:20:49 +01:00
Wolfgang Denk
8f00731818 Merge branch 'master' of git://www.denx.de/git/u-boot-ppc4xx 2008-01-23 14:19:45 +01:00
Wolfgang Denk
ed3afca32e Merge branch 'master' of git://www.denx.de/git/u-boot-mpc86xx 2008-01-23 14:18:18 +01:00
Wolfgang Denk
39166b5c9e Merge branch 'master' of git://www.denx.de/git/u-boot-mpc85xx 2008-01-23 13:56:55 +01:00
Dave Liu
cfe5ca7797 mpc83xx: Correct the struct spi8xxx in mpc8xxx_spi.h
The commit 04a9e1180a
cause the 83xx immap broken, so the DMA and PCI will
be failed.

The patch fix the struct spi8xxx and rm struct spi83xx.

Signed-off-by: Dave Liu <daveliu@freescale.com>
Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
2008-01-18 12:39:23 -06:00
Shinya Kuribayashi
922ff465cc Merge branch 'master' of git://www.denx.de/git/u-boot 2008-01-18 22:48:06 +09:00
Haavard Skinnemoen
6b44394442 AVR32: ATNGW100 board support
Add support for the ATNGW100 Network Gateway reference design,
including flash, ethernet and MMC support.

Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
2008-01-18 09:53:18 +01:00
Haavard Skinnemoen
e006927a0b AVR32: Initialize ipaddr, loadaddr and bootfile at startup
I don't know why the relevant layers can't do this by itself, but this
is what ppc does.

Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
2008-01-18 09:53:18 +01:00
Michael Schwingen
799891ef7b Add AcTux board support
Hi,

The patch adds 4 boards, called AcTux-1 .. AcTux-4. This patch contains the
files that
contain changes for multiple boards, the board-specific files follow as
separate patches.

Signed-off-by: Michael Schwingen <michael@schwingen.org>
2008-01-18 01:05:22 +01:00
Michael Schwingen
66a4344a4d add AcTux-4 board support
Signed-off-by: Michael Schwingen <michael@schwingen.org>
2008-01-18 01:00:03 +01:00
Michael Schwingen
bc24345e41 add AcTux-3 board support
Signed-off-by: Michael Schwingen <michael@schwingen.org>
2008-01-18 01:00:02 +01:00
Michael Schwingen
aebf00fc4d add AcTux-2 board support
Signed-off-by: Michael Schwingen <michael@schwingen.org>
2008-01-18 01:00:02 +01:00
Michael Schwingen
ea99e8f05b add AcTux-1 board support
Signed-off-by: Michael Schwingen <michael@schwingen.org>
2008-01-18 01:00:02 +01:00
Jean-Christophe PLAGNIOL-VILLARD
3d9f3bfb7a ARM: remove useless function board_post_init
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
2008-01-18 01:00:02 +01:00
Michael Schwingen
96bd462942 IXP: enable RTS
enables the RTS signal with CONFIG_SERIAL_RTS_ACTIVE.
No handshaking is done, but the active RTS signal allows to
connect to the target using a PC which is using RTS/CTS
handshake, and does no harm if the PC is set to ignore RTS.

Signed-off-by: Michael Schwingen <michael@schwingen.org>
2008-01-18 01:00:02 +01:00
Jean-Christophe PLAGNIOL-VILLARD
a1cf027a08 IXP: add dynamic microcode addr
allow to load the microde from flash or ram by download it through
the serial or other.

Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Acked-by: Stefan Roese <sr@denx.de>
2008-01-18 01:00:02 +01:00
Michael Schwingen
63ebcc4615 load ixp42x NPE firmware from separate flash block, remove dead code
Hi,

the following patch adds support to move the IXP42X NPE firmware to a
separate flash block, whose start address is defined in
CONFIG_IXP4XX_NPE_EXT_UCODE_BASE. Using that, it is possible to build
NPE-enabled u-boot without copyright problems due to the NPE firmware.

I hope the patch applies, I get whitespace-related differences in the NPE
files due to trailing whitespace in the original versions.

Signed-off-by: Michael Schwingen <michael@schwingen.org>
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
2008-01-18 00:59:38 +01:00
Andy Fleming
6ea66a818d Merge branch 'kumar' 2008-01-17 15:52:38 -06:00
TsiChungLiew
57a127201e ColdFire: MCF547x_8x - Add M5475EVB and M5485EVB support
Signed-off-by: TsiChungLiew <Tsi-Chung.Liew@freescale.com>
Signed-off by: John Rigby <jrigby@freescale.com>
2008-01-17 14:59:43 -06:00
TsiChungLiew
1aee111135 ColdFire: MCF547x_8x - Add M547xEVB and M548xEVB board
Signed-off-by: TsiChungLiew <Tsi-Chung.Liew@freescale.com>
Signed-off by: John Rigby <jrigby@freescale.com>
2008-01-17 14:59:42 -06:00
TsiChungLiew
777d1abd97 ColdFire: Add MCF547x_8x FEC driver
Signed-off-by: TsiChungLiew <Tsi-Chung.Liew@freescale.com>
Signed-off-by: Ben Warren <biggerbadderben@gmail.com>
Signed-off by: John Rigby <jrigby@freescale.com>
2008-01-17 14:59:42 -06:00
TsiChungLiew
72f56adc0b ColdFire: Add MCF547x_8x dma code and header files
Signed-off-by: TsiChungLiew <Tsi-Chung.Liew@freescale.com>
Signed-off by: John Rigby <jrigby@freescale.com>
2008-01-17 14:59:42 -06:00
TsiChungLiew
ce09fc49b5 ColdFire: Add MCF547x_8x dma code - 2
Signed-off-by: TsiChungLiew <Tsi-Chung.Liew@freescale.com>
Signed-off by: John Rigby <jrigby@freescale.com>
2008-01-17 14:59:42 -06:00
TsiChungLiew
11865ea844 ColdFire: Add MCF547x_8x dma code - 1
Signed-off-by: TsiChungLiew <Tsi-Chung.Liew@freescale.com>
Signed-off by: John Rigby <jrigby@freescale.com>
2008-01-17 14:59:42 -06:00
TsiChungLiew
4621fc3fe7 ColdFire: Add MCF547x_8x related header files
Signed-off-by: TsiChungLiew <Tsi-Chung.Liew@freescale.com>
Signed-off-by: Ben Warren <biggerbadderben@gmail.com>
Signed-off by: John Rigby <jrigby@freescale.com>
2008-01-17 14:59:41 -06:00
TsiChungLiew
570c0186ae ColdFire: Add MCF547x_8x cpu arch
Signed-off-by: TsiChungLiew <Tsi-Chung.Liew@freescale.com>
Signed-off by: John Rigby <jrigby@freescale.com>
2008-01-17 14:59:41 -06:00
TsiChungLiew
e2756f4b54 ColdFire: Add MCF5227x cpu and M52277EVB support-3
Signed-off-by: TsiChungLiew <Tsi-Chung.Liew@freescale.com>
Signed-off by: John Rigby <jrigby@freescale.com>
2008-01-17 14:59:41 -06:00
TsiChungLiew
c875810279 ColdFire: Add MCF5227x cpu and MCF52277EVB support-2
Signed-off-by: TsiChungLiew <Tsi-Chung.Liew@freescale.com>
Signed-off by: John Rigby <jrigby@freescale.com>
2008-01-17 14:59:41 -06:00
TsiChungLiew
1552af70ec ColdFire: Add MCF5227x cpu and M52277EVB support-1
Signed-off-by: TsiChungLiew <Tsi-Chung.Liew@freescale.com>
Signed-off by: John Rigby <jrigby@freescale.com>
2008-01-17 14:59:41 -06:00
TsiChungLiew
397b7b81a1 ColdFire: Fix CFI Flash low level Read/Write macro
Signed-off-by: TsiChungLiew <Tsi-Chung.Liew@freescale.com>
Signed-off by: John Rigby <jrigby@freescale.com>
2008-01-17 14:59:40 -06:00
TsiChungLiew
aa5f1f9dc8 ColdFire: Add M5373EVB platform support - 2
Signed-off-by: TsiChungLiew <Tsi-Chung.Liew@freescale.com>
Signed-off by: John Rigby <jrigby@freescale.com>
2008-01-17 14:59:40 -06:00
TsiChungLiew
1ac559d4aa ColdFire: Add M5373EVB platform support - 1
Signed-off-by: TsiChungLiew <Tsi-Chung.Liew@freescale.com>
Signed-off by: John Rigby <jrigby@freescale.com>
2008-01-17 14:59:40 -06:00
TsiChungLiew
320d61991f ColdFire: Update FlexBus CS for MCF532x
Definition update and change from 16bit to 32bit

Signed-off-by: TsiChungLiew <Tsi-Chung.Liew@freescale.com>
Signed-off by: John Rigby <jrigby@freescale.com>
2008-01-17 14:59:40 -06:00
TsiChungLiew
2e72ad0644 ColdFire: PCI and misc updates for MCF5445x
Signed-off-by: TsiChungLiew <Tsi-Chung.Liew@freescale.com>
Signed-off by: John Rigby <jrigby@freescale.com>
2008-01-17 14:59:40 -06:00
TsiChungLiew
d2b1649348 ColdFire: MCF5445x header files cleanup
Signed-off-by: TsiChungLiew <Tsi-Chung.Liew@freescale.com>
Signed-off by: John Rigby <jrigby@freescale.com>
2008-01-17 14:59:39 -06:00
TsiChungLiew
d9aae62609 ColdFire: MCF532x header files cleanup
Signed-off-by: TsiChungLiew <Tsi-Chung.Liew@freescale.com>
Signed-off by: John Rigby <jrigby@freescale.com>
2008-01-17 14:59:39 -06:00
TsiChungLiew
7af7751d04 ColdFire: Add modules header files
Add CF specific modules header files

Signed-off-by: TsiChung Liew <Tsi-Chung.Liew@freescale.com>
Signed-off-by: John Rigby <jrigby@freescale.com>
2008-01-17 14:59:39 -06:00
Kim Phillips
2956acd5ef codingstyle cleanup for spi driver
..and rm unused CONFIG_FSL_SPI define

Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
2008-01-17 14:01:59 -06:00
Haiying Wang
d59feffb42 FSL: Fix common EEPROM_data structure definition
- Fix EEPROM_data structure definition according to System EEPROM Data Format.
- Read MAC addresses from EEPROM to ethXaddr before saving ethXaddr to
  bd->bi_ethaddr.

Signed-off-by: Haiying Wang <Haiying.Wang@freescale.com>
2008-01-17 12:26:56 -06:00
Timur Tabi
6bee764bd6 86xx: enable command-line editing
Enable command-line editing for all MPC86xx boards.

Signed-off-by: Timur Tabi <timur@freescale.com>
2008-01-17 12:15:41 -06:00
Ben Warren
80ddd22626 Implement hard SPI driver on MPC8349EMDS
This patch implements the fsl_spi driver on the MPC8349EMDS evaluation board.
This board has an ST M25P40 4Mbit EEPROM on its SPI bus

Signed-off-by: Ben Warren <biggerbadderben@gmail.com>
Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
2008-01-17 11:02:33 -06:00
Ben Warren
04a9e1180a Add support for a Freescale non-CPM SPI controller
This patch adds support for the SPI controller found on Freescale PowerPC
processors such as the MCP834x family.  Additionally, a new config option,
CONFIG_HARD_SPI, is added for general purpose SPI controller use.

Signed-off-by: Ben Warren <biggerbadderben@gmail.com>
Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
2008-01-17 11:02:25 -06:00
Dave Liu
a8cb43a89b mpc83xx: Fix the fatal conflict of merge
The commit 9e89647889
will cause the mpc8315erdb board can't boot up.

The patch fix that bug, and remove the duplicated #ifdef
CFG_SPCR_TSECEP code and clean the SCCR_TSEC2 for
MPC8313E processor.

Signed-off-by: Dave Liu <daveliu@freescale.com>
Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
2008-01-17 11:01:52 -06:00
Stefan Roese
9cfff9e9d4 Merge branch 'master' of /home/stefan/git/u-boot/u-boot 2008-01-17 16:04:12 +01:00
Larry Johnson
3259eeaa41 Merge Sequoia beautification into Korat code
Signed-off-by: Larry Johnson <lrj@acm.org>
2008-01-17 15:48:52 +01:00
Matthias Fuchs
e169257732 net: add 'ethrotate' environment variable
[PATCH] net: add 'ethrotate' environment variable

This patch replaces the buildtime configuration option
CONFIG_NET_DO_NOT_TRY_ANOTHER through the 'ethrotate' runtime
configuration veriable. See README.

Signed-off-by: Matthias Fuchs <matthias.fuchs@esd-electronics.com>
Signed-off-by: Ben Warren <biggerbadderben@gmail.com>
2008-01-17 09:41:09 -05:00
Stefan Roese
ba52be3d0e ppc4xx: Fix compilation warnings and coding style issues in HCU4/HCU5
Signed-off-by: Stefan Roese <sr@denx.de>
2008-01-17 14:29:04 +01:00
Nobuhiro Iwamatsu
55ed1516cb sh: Remove CONFIG_COMMANDS from MS7720SE config file
Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
2008-01-17 21:55:12 +09:00
Niklaus Giger
055606bd25 ppc4xx: Netstal HCU4 board: added various fixes and POST
- Moved some common code to netstal/common/nm_bsp.c.
- sdram initialisation goes go netstal/common/fixed_sdram.c.
- Added support for POST.
- Stylistic cleanups (multi-line comments/ enforce 80 colomn width)

Signed-off-by: Niklaus Giger <niklaus.giger@netstal.com>
2008-01-17 13:52:00 +01:00
Niklaus Giger
69b0634a4e ppc4xx: netstal/common define routines used by all boards
Added some routines used by all Netstal boards:
- nm_bsp.c: - nm_show_print and
        -  common_misc_init_r
        - set_params_for_sw_install. Very specific code to handle our SW
          installation procedure
- fixed_sdram.c: Common routines for HCU4 (and upcoming) MCU25 boards
  to handle sdram initialization.
- nm.h: Common header

Signed-off-by: Niklaus Giger <niklaus.giger@netstal.com>
2008-01-17 13:51:37 +01:00
Niklaus Giger
efeff5382b ppc4xx: Netstal HCU5 board: added various fixes and POST
- Moved some common code to nestal/common/nm_bsp.c.
- Added support for the vxWorks EDR.
- Enable trace for Lauterbach, if present.
- Added support for POST.
- Stylistic cleanups (multi-line comments/ enforce 80 colomn width)

Signed-off-by: Niklaus Giger <niklaus.giger@netstal.com>
2008-01-17 13:51:12 +01:00
Niklaus Giger
4371090e5d ppc4xx: Netstal HCU5 board. Added POST. Various fixes
- Various fixes
- Reduced rom_size from 384 to 320 kB
- Environment is now in flash
- Added POST
- Support for OF

Signed-off-by: Niklaus Giger <niklaus.giger@netstal.com>
2008-01-17 13:50:18 +01:00
Niklaus Giger
4bd5036e60 ppc4xx: Netstal HCU4 board. Added POST. Various fixes
- Various fixes
- Reduced rom_size from 384 to 320 kB
- Environment is now in flash
- Added POST
- Support for OF

Signed-off-by: Niklaus Giger <niklaus.giger@netstal.com>
2008-01-17 13:49:51 +01:00
Matthias Fuchs
1a3ac86b79 ppc4xx: Complete DU440 board support
Signed-off-by: Matthias Fuchs <matthias.fuchs@esd-electronics.com>
2008-01-17 11:34:12 +01:00
Matthias Fuchs
15a08bc2be ppc4xx: Add DU440 board support
Signed-off-by: Matthias Fuchs <matthias.fuchs@esd-electronics.com>
2008-01-17 11:34:04 +01:00
Wolfgang Denk
f188896c2f Merge branch 'master' of git+ssh://10.10.0.7/home/wd/git/u-boot/master 2008-01-17 09:35:26 +01:00
Nobuhiro Iwamatsu
ac331da07d sh: Update SuperH SCIF driver
This patch fixed wrong SH7720 CPU macro and changed macro that
calculated value of SCBRR register.

Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
2008-01-17 17:34:19 +09:00
Grzegorz Bernacki
334e442e6f Set ips dividor to 1/4 of csb clock.
Previous setting cause ips clock to be out of spec. This bug was found by John
Rigby from Freescale.

Signed-off-by: Grzegorz Bernacki <gjb@semihalf.com>
2008-01-17 09:31:58 +01:00
Kumar Gala
7dc358bb0d 85xx: Get ride of old TLB setup code
Now that all boards have been converted, remove old config code and the
config option for the new style.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2008-01-17 02:19:18 -06:00
Kumar Gala
3b558e26a5 85xx: Convert TQM85xx to new TLB setup
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2008-01-17 02:11:53 -06:00
Kumar Gala
74121b470c 85xx: Convert STXGP3 & STXSSA to new TLB setup
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2008-01-17 02:11:17 -06:00
Kumar Gala
143b518d91 85xx: Convert SBC8540/SBC8560/SBC8548 to new TLB setup
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2008-01-17 02:10:42 -06:00
Kumar Gala
818218bac6 85xx: Convert PM854/PM856 to new TLB setup
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2008-01-17 02:10:04 -06:00
Kumar Gala
ff4681c928 85xx: Convert MPC8540EVAL to new TLB setup
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2008-01-17 02:09:20 -06:00
Kumar Gala
73aa9ac2b4 85xx: Convert MPC8568 MDS to new TLB setup
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2008-01-17 02:08:53 -06:00
Kumar Gala
0db37dc2ee 85xx: Convert MPC8541/MPC8555/MPC8548 CDS to new TLB setup
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2008-01-17 02:08:24 -06:00
Kumar Gala
219a81b98d 85xx: Convert MPC8540/MPC8560 ADS to new TLB setup
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2008-01-17 02:06:53 -06:00
Kumar Gala
80d0b6a149 85xx: Convert ATUM8548 to new TLB setup
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2008-01-17 02:06:05 -06:00
Kumar Gala
0f7a3dc95c 85xx: Convert MPC8544 DS to new TLB setup
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2008-01-17 02:05:35 -06:00
Kumar Gala
8716318057 85xx: Reworked initial processor init
Reworked the initial processor initialzation sequence:
* introduced cpu_early_init_f that is run in address space 1 (AS=1)
* Moved TLB/LAW and CCSR init into cpu_early_init_f()
* Reworked initial asm code to do most of the core init before TLBs

The main reasons for these changes are to allow handling of 36-bit phys
addresses in the future and some of the issues that will exist when we
do that.

There are a few caveats on what can be initialized via the LAW and TLB
static tables:
* TLB entry 14/15 can't be initialized via the TLB table
* any LAW that covers the implicit boot window (4G-8M to 4G) must map to
  the code that is currently executing.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2008-01-17 02:04:53 -06:00
Kumar Gala
44a23cfd63 85xx: Introduce new tlb API
Add a set of functions to manipulate TLB entries:
 * set_tlb() - write a tlb entry
 * invalidate_tlb() - invalidate a tlb array
 * disable_tlb() - disable a variable size tlb entry
 * init_tlbs() - setup initial tlbs based on static table

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2008-01-17 02:04:07 -06:00
Stefan Roese
be88b16998 ppc4xx: Fix remaining CONFIG_COMMANDS in 4xx files
Signed-off-by: Stefan Roese <sr@denx.de>
2008-01-17 07:50:17 +01:00
Kumar Gala
c8c41d4a80 85xx: Use proper defines for PCI addresses
We should be using the _MEM_PHYS for LAW and TLB setup and not _MEM_BASE.
While _MEM_BASE & _MEM_PHYS are normally the same, _MEM_BASE should only
be used for configuring the PCI ATMU.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2008-01-16 23:21:56 -06:00
Kumar Gala
54a5070115 85xx: Remove old style of LAW init
All boards are now using the new fsl_law code so we can drop the old version.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2008-01-16 23:21:56 -06:00
Kumar Gala
4d3521cc79 85xx: convert remaining 85xx boards over to use new LAW init code
Converted ATUM8548, MPC8568 MDS, MPC8540 EVAL, and TQM85xx boards over
to use new LAW init code.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2008-01-16 23:21:56 -06:00
Kumar Gala
572b13afc4 85xx: convert STXGP3/STXSSA over to use new LAW init code
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2008-01-16 23:21:56 -06:00
Kumar Gala
45f2166ac0 85xx: convert PM854/PM856 over to use new LAW init code
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2008-01-16 23:21:55 -06:00
Kumar Gala
e2b159d007 85xx: convert SBC8540/SBC8560/SBC8548 over to use new LAW init code
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2008-01-16 23:21:55 -06:00
Kumar Gala
2cfaa1aa1a 85xx: convert MPC8541/MPC8555/MPC8548 CDS over to use new LAW init code
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2008-01-16 23:21:55 -06:00
Kumar Gala
7232a2724c 85xx: convert MPC8540/MPC8560 ADS over to use new LAW init code
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2008-01-16 23:21:55 -06:00
Kumar Gala
4bcae9c92a 85xx: convert MPC8544 DS over to use new LAW init code
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2008-01-16 23:21:55 -06:00
Kumar Gala
83d40dfd79 85xx: Move LAW init code into C
Move the initialization of the LAWs into C code and provide an API
to allow modification of LAWs after init.

Board code is responsible to provide a law_table and num_law_entries.

We should be able to use the same code on 86xx as well.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2008-01-16 23:21:55 -06:00
Jean-Christophe PLAGNIOL-VILLARD
bed8ce838a qemu-mips: active HUSH PARSER, AUTO_COMPLETE and CMDLINE_EDITING
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
2008-01-17 08:28:20 +09:00
Vlad Lungu
0764c164fe MIPS:Target support for qemu -M mips
With serial, NE2000, IDE support. Tested in big-endian mode.
Memory size hard-coded to 128M for now, so don't play with
the -m option.

Signed-off-by: Vlad Lungu <vlad@comsys.ro>
2008-01-17 08:28:08 +09:00
Jean-Christophe PLAGNIOL-VILLARD
7f52fa3c2d Fix nfs command help to reflect that the serverip is optional
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Signed-off-by: Ben Warren <biggerbadderben@gmail.com>
2008-01-16 17:56:39 -05:00
Jean-Christophe PLAGNIOL-VILLARD
b8f4162a4f bf537-stamp: remove already defined is_zero_ether_addr and is_multicast_ether_addr
and move is_valid_ether_addr board file

Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Signed-off-by: Ben Warren <biggerbadderben@gmail.com>
2008-01-16 17:46:32 -05:00
Shinya Kuribayashi
c2f896b8fc drivers/net/rtl8139.c: rx_status should be le32_to_cpu(rx_status).
rx_status on the memory is basically in LE, but needs to be handled in CPU
endian. le32_to_cpu() takes up this mission. Even if on the sane hardware,
it'll work fine.

Signed-off-by: Shinya Kuribayashi <shinya.kuribayashi@necel.com>
Cc: Masami Komiya <mkomiya@sonare.it>
Cc: Lucas Jin <lucasjin@gmail.com>
Signed-off-by: Ben Warren <biggerbadderben@gmail.com>
2008-01-16 17:37:35 -05:00
Shinya Kuribayashi
96a236746f drivers/net/rtl8139.c: Fix cache coherency issues
Current driver is meant for cache coherent systems. This patch adds
flush_cache() routines to support cache non-coherent systems.

Signed-off-by: Shinya Kuribayashi <shinya.kuribayashi@necel.com>
Cc: Masami Komiya <mkomiya@sonare.it>
Cc: Lucas Jin <lucasjin@gmail.com>
Signed-off-by: Ben Warren <biggerbadderben@gmail.com>
2008-01-16 17:37:35 -05:00
Shinya Kuribayashi
d1276c76c1 drivers/net/rtl8139.c: Fix tx timeout
"to = (currticks() + RTL_TIMEOUT)" has possibilities to wrap around. If it
does, the condition "(currticks() < to)" becomes invalid and immediately
leads to tx timeout error. This patch introduces the fine-graded udely(10)
loops to ease the impact of wrapping around.

Signed-off-by: Shinya Kuribayashi <shinya.kuribayashi@necel.com>
Cc: Masami Komiya <mkomiya@sonare.it>
Cc: Lucas Jin <lucasjin@gmail.com>
Signed-off-by: Ben Warren <biggerbadderben@gmail.com>
2008-01-16 17:37:35 -05:00
Dave Liu
18ee320ff6 TSEC: Add the support for RealTek RTL8211B PHY
Add the support of RealTek RTL8211B PHY, the RTL8211B
PHY only supports RGMII and MII mode.

Signed-off-by: Dave Liu <daveliu@freescale.com>
Signed-off-by: Ben Warren <biggerbadderben@gmail.com>
2008-01-16 17:05:52 -05:00
Joakim Tjernlund
84a3047b72 Remove annoying debug printout for PHY less boards.
PHY less board prints out lots of "read wrong ...":
read wrong value : mii_id 3,mii_reg 2, base e0102320
read wrong value : mii_id 3,mii_reg 3, base e0102320
UEC: PHY is Generic MII (ffffffff)
read wrong value : mii_id 3,mii_reg 4, base e0102320
read wrong value : mii_id 3,mii_reg 0, base e0102320
read wrong value : mii_id 3,mii_reg 1, base e0102320
read wrong value : mii_id 3,mii_reg 1, base e0102320
read wrong value : mii_id 3,mii_reg 5, base e0102320
read wrong value : mii_id 3,mii_reg 1, base e0102320
read wrong value : mii_id 3,mii_reg 1, base e0102320
read wrong value : mii_id 3,mii_reg 5, base e0102320
FSL UEC0: Full Duplex
FSL UEC0: Speed 100BT
FSL UEC0: Link is up
Using FSL UEC0 device

Make this printout depend on UEC_VERBOSE_DEBUG and
remove its definition in uec_phy.c

Signed-off-by: Joakim Tjernlund <Joakim.Tjernlund@transmode.se>
Signed-off-by: Ben Warren <biggerbadderben@gmail.com>
2008-01-16 16:56:57 -05:00
Kim Phillips
ee62ed3286 net: reduce boot latency on QE UEC based boards
actually polling for PHY autonegotiation to finish enables us to remove the
5 second boot prompt latency present on QE based boards.

call to qe_set_mii_clk_src in init_phy, and mv call to init_phy from
uec_initialize to uec_init by Joakim Tjernlund; autonegotiation wait
code shamelessly stolen from tsec driver.

also rm unused CONFIG_RMII_MODE code.

Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
Signed-off-by: Joakim Tjernlund <Joakim.Tjernlund@transmode.se>
Signed-off-by: Ben Warren <biggerbadderben@gmail.com>
2008-01-16 16:54:20 -05:00
michael.firth@bt.com
55fe7c57a8 TSEC driver: Change MDIO support to allow access to any PHYs on the MDIO bus
The current TSEC driver limits MDIO access to the devices that have been configured as attached
to a TSEC MAC. This patch allows access to any PHY device on the MDIO bus through the 'mii' commands.

Signed-off-by: Michael Firth <michael.firth@bt.com>
Acked-by: Andy Fleming <afleming@freescale.com>
Signed-off-by: Ben Warren <biggerbadderben@gmail.com>
2008-01-16 16:51:35 -05:00
Wolfgang Denk
e715888010 Merge branch 'master' of git://www.denx.de/git/u-boot-sh 2008-01-16 22:11:08 +01:00
Wolfgang Denk
4c9e98ace7 Merge branch 'master' of git://www.denx.de/git/u-boot-mpc86xx 2008-01-16 22:06:51 +01:00
Kim Phillips
5e918a98c2 Add support for the MPC837xERDB
MPC837xERDB board support includes:
* DDR2 330MHz hardcoded (soldered on the board)
* Local Bus NOR Flash
* I2C, UART and RTC
* eTSEC RGMII (TSEC0 - RTL8211B with MII;
*	       TSEC1 - VSC7385 local bus, hardcoded, requires seperate firmware
*		       load)

Signed-off-by: Kevin Lam <kevin.lam@freescale.com>
Signed-off-by: Joe D'Abbraccio <joe.d'abbraccio@freescale.com>
Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
2008-01-16 12:32:39 -06:00
Kim Phillips
9e89647889 mpc83xx: add support for more system clock performance controls
System registers that are modified are the Arbiter Configuration
Register (ACR), the System Priority Control Register (SPCR), and the
System Clock Configuration Register (SCCR).

Signed-off by: Michael F. Reiss <Michael.F.Reiss@freescale.com>
Signed-off by: Joe D'Abbraccio <ljd015@freescale.com>
Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
2008-01-16 12:32:39 -06:00
James Yang
16c3cde050 FSL: Generalize PIXIS reset command parsing.
Before, the order of arguments to the pixis_reset
command needed to be supplied in a hard-coded order.
Generalize the command parsing to allow any order.

Signed-off-by: James Yang <james.yang@freescale.com>
Acked-by: Jon Loeliger <jdl@freescale.com>
2008-01-16 12:08:54 -06:00
Jon Loeliger
ad8f8687b7 FSL: Convert board/freescale/common/Makefile to use CONFIG_
Convert the board/freescale/common/Makefile to use
CONFIG_* options to select which files to conditionally
compile into the board/freescale/common library rather
than conditionally compiling entire files.

Now handles::
    CONFIG_FSL_PIXIS
    CONFIG_FSL_DIU_FB
    CONFIG_PQ_MDS_PIB

CONFIG_ID_EEPROM is introduced until CFG_ID_EEPROM is gone.

Signed-off-by: Jon Loeliger <jdl@freescale.com>
2008-01-16 12:05:05 -06:00
Roy Zang
7c2221eb23 Use CONFIG_ULI526X as MPC8610HPCD default Ethernet driver
Use driver/net/uli526x.c as MPC8610HPCD default Ethernet driver.
Remove unused ethernet CONFIG_ options.

Signed-off-by: Roy Zang <tie-fei.zang@freescale.com>
Acked-by: Jon Loeliger <jdl@freescale.com>
2008-01-16 12:05:05 -06:00
Kim Phillips
711a794627 mpc83xx: fix QE ETHPRIMEs to correct 'FSL UEC0' value
continuation of commit b96c83d4ae

Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
2008-01-16 12:00:50 -06:00
Kim Phillips
363eea9ff7 mpc83xx: clean up mpc8360emds.c warnings
mpc8360emds.c: In function 'ft_board_setup':
mpc8360emds.c:327: warning: assignment makes pointer from integer without a cast
mpc8360emds.c:329: warning: passing argument 2 of 'fdt_getprop' makes integer from pointer without a cast
mpc8360emds.c:334: warning: passing argument 2 of 'fdt_setprop' makes integer from pointer without a cast
mpc8360emds.c:341: warning: assignment makes pointer from integer without a cast
mpc8360emds.c:343: warning: passing argument 2 of 'fdt_getprop' makes integer from pointer without a cast
mpc8360emds.c:348: warning: passing argument 2 of 'fdt_setprop' makes integer from pointer without a cast

Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
2008-01-16 12:00:50 -06:00
Kim Phillips
f09880ea72 mpc83xx: fix phy-connection-type fixup code
use tree passed to us in local blob, not global fdt.

Also use fdt_path_offset to convert to relative offset, since absolute
reference is needed to check for rgmii-id mode string value.

Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
2008-01-16 12:00:50 -06:00
Kumar Gala
2b4c952be7 mpc83xx: fix mpc8313/mpc8315/mpc8349itx Makefiles for silent build (with -s)
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
2008-01-16 12:00:50 -06:00
Poonam Aggrwal
e1d8ed2c08 Changes in uboot DDR configuration for MPC8313eRDB
These changes were identified by HighSmith Bill ,Mazzyar and Joseph for
DDR configuration in u-boot code. Some are related to performance, some
affect stability and some correct few basic errors in the current
configuration.

The changes have been tested and found to give better memory latency
figures on MPC8313eRDB.LMBench figures prove it.

The changes are:

- CS0_CONFIG[ AP_n_EN] is changed from 1 to 0
  (this may improve performance for application with many read
  or write to open pages).
- CS0_CONFIG[ODT_WR_CFG] is currently changed from 100 to
  001 (activating all the CS when only one is used may cause
  unwanted noise on the system)

- TIMING_CFG_1[ACTTOPRE] is changed from 9clks to 8clks (based on
  Tras=45ns)
- TIMING_CFG_1[REFREC] changed from 21 clks to 18clks.

- TIMING_CFG_2[AL] value changed from 0 setting to 1 clk to
  comply with the 3 ODT clk requirements)
- TIMING_CFG_2[CPO] was set to a reserved value, changed to RL+3/4.
- TIMING_CFG_2[FOUR_ACT] is changed from 10 clks to 6clks.

- DDR_SDRAM_MODE[AL]changed from 0 to 1.
- DDR_SDRAM_MODE[WRREC] changed from 1 clk to 3 clks.

- DDR_SDRAM_INTERVAL[REFINT] is changed from 0x0320 to 0x0510.
- DDR_SDRAM_INTERVAL[BSTOPRE] is changed from 0x64 to 0x0500.

The patch is based of git://www.denx.de/git/u-boot-mpc83xx.git
The last commit on this tree was 6775c68683

Signed-off-by: Poonam Aggrwal-b10812 <b10812@freescale.com>
Cc: Bill HighSmith <Bill.Highsmith@freescale.com>
Cc: Razzaz Mazyar <MRazzaz@freescale.com>
Cc: Josep P J <PJ.Joseph@freescale.com>
Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
2008-01-16 12:00:49 -06:00
Jerry Van Baren
b5cdd7df4a Enable the isdram command on the MPC8360EMDS board
The isdram command prints out decoded information the "serial presence
detect" (SPD) chip on the SDRAM SIMMs.  This can be very helpful when
debugging memory configuration problems.

Signed-off-by: Gerald Van Baren <vanbaren@cideas.com>
Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
2008-01-16 12:00:49 -06:00
Dave Liu
8bd522ce4a mpc83xx: Add the support for MPC8315ERDB board
The features list:
- Boot from NOR Flash
- DDR2 266MHz hardcoded configuration
- Local bus NOR Flash R/W operation
- I2C, UART, MII and RTC
- eTSEC0/1 support
- PCI host

Signed-off-by: Dave Liu <daveliu@freescale.com>
Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
2008-01-16 12:00:49 -06:00
Dave Liu
b05884efa6 mpc83xx: Add config of eTSEC emergency priority in SPCR
The TSEC emergency priority definition of 831x/837x
is different than the definition of 834x in SPCR register.

Add the other config of TSEC emergency priority into
cpu_init.c

Signed-off-by: Dave Liu <daveliu@freescale.com>
Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
2008-01-16 12:00:49 -06:00
Dave Liu
9b958234b0 mpc83xx: Remove cache config from MPC8360ERDK.h
The MPC8360ERDK board support patch is added before
the commit 2c5b48fc20
so, miss clean up it.

The patch clean up the miss cache config.

Signed-off-by: Dave Liu <daveliu@freescale.com>
Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
2008-01-16 12:00:49 -06:00
Anton Vorontsov
cd9d23053d nand: FSL UPM NAND driver
Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
2008-01-16 14:14:40 +01:00
Kyungmin Park
6cb2239ae7 OneNAND: Separate U-Boot dependent code from OneNAND
OneNAND: Separate U-Boot dependent code from OneNAND

Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
2008-01-16 14:10:15 +01:00
Matthias Fuchs
83a49c8dd7 ppc4xx: Sequoia coding style cleanup and beautification
Signed-off-by: Matthias Fuchs <matthias.fuchs@esd-electronics.com>
2008-01-16 11:24:28 +01:00
Larry Johnson
4b3cc6ece9 ppc4xx: Refactor ECC POST for AMCC Denali core
The ECC POST reported intermittent failures running after power-up on
the Korat PPC440EPx board.  Even when the test passed, the debugging
output occasionally reported additional unexpected ECC errors.

This refactoring has three main objectives: (1) minimize the code
executed with ECC enabled during the tests, (2) add more checking of the
results so any unexpected ECC errors would cause the test to fail, and
(3) use synchronization (only) where required by the processor.

Signed-off-by: Larry Johnson <lrj@acm.org>
2008-01-16 11:23:33 +01:00
Stefan Roese
8d99cd0691 Merge branch 'master' of /home/stefan/git/u-boot/u-boot 2008-01-16 11:22:30 +01:00
David Saada
2465665b73 QE UEC: Extend number of supported UECs to 4
This patch extends the number of supported UECs to 4. Note that the
problem of QE thread resources exhaustion is resolved by setting the
correct number of QE threads according to Ethernet type (GBE or FE).

Signed-off-by: David Saada <david.saada@ecitele.com>
Signed-off-by: Ben Warren <biggerbadderben@gmail.com>
2008-01-15 23:08:58 -05:00
Wolfgang Denk
58d204256c LWMON5: enable hush shell as command line parser
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-01-16 00:01:01 +01:00
Wolfgang Denk
66ffb1883f ADS5121: disable watchdog; enable image timestamps
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-01-15 17:22:28 +01:00
Wolfgang Denk
2b4f778fe9 TK885D: fixes for bigger flash sector sizes on new modules;
adjust default environment;
disable SCC ethernet (not used on this board).

Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-01-15 17:21:28 +01:00
Nobuhiro Iwamatsu
f91d7ae5ca pcmcia: Remove CONFIG_COMMANDS from marubun pcmcia driver
Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
2008-01-15 23:30:40 +09:00
Nobuhiro Iwamatsu
76e49aa7fb sh: Add support SH7710/SH7712
SH7710/SH7712 of SH3 CPU are supported.
SH771X is called SH-Ether, and has the Ether controller in CPU.
The driver of Ether is not included in this patch.

Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
2008-01-15 23:30:40 +09:00
Nobuhiro Iwamatsu
63a11be683 sh: Add support of map_physmem() and unmap_physmem() to SuperH
This patch add the support of map_physmem() and unmap_physmem()
used with Common Flash Interface(CFI) driver.

Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
2008-01-15 23:30:40 +09:00
Nobuhiro Iwamatsu
db3995fe51 sh: Add maintainer of MS7720SE to the MAINTAINER file
Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
2008-01-15 23:30:40 +09:00
Nobuhiro Iwamatsu
dcd99e88e0 sh: Fix board name in MS7720SE's config.mk
Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
2008-01-15 23:30:40 +09:00
Nobuhiro Iwamatsu
c0a04d9373 sh: Add MS7720SE to MAKEALL
Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
2008-01-15 23:30:40 +09:00
Yoshihiro Shimoda
b2b5e2bb78 sh: Add support for MS7720RP02 board
Signed-off-by: Yoshihiro Shimoda <shimoda.yoshihiro@renesas.com>
CC: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
Acked-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
2008-01-15 23:30:40 +09:00
Yoshihiro Shimoda
7c10c57275 sh: Add support for SH7720 in serial_sh driver.
Signed-off-by: Yoshihiro Shimoda <shimoda.yoshihiro@renesas.com>
CC: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
Acked-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
2008-01-15 23:30:40 +09:00
Yoshihiro Shimoda
f9913a8ee7 sh: Add support SH3 and SH7720
Signed-off-by: Yoshihiro Shimoda <shimoda.yoshihiro@renesas.com>
CC: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
Acked-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
2008-01-15 23:30:40 +09:00
Stefan Roese
9adfc9fb9a ppc4xx: Remove compiler warning in cpu/ppc4xx/44x_spd_ddr2.c
Signed-off-by: Stefan Roese <sr@denx.de>
2008-01-15 10:11:02 +01:00
Niklaus Giger
17bef68097 ppc_4xx: Fix post spr.c for PPC405
post/cpu/ppc4xx/spr.c contained a few checks for registers only present
for PPC440 and derivates processor.

Signed-off-by: Niklaus Giger <niklaus.giger@netstal.com>
2008-01-14 15:52:52 +01:00
Wolfgang Denk
5dd372a23d Merge branch 'master' of git://www.denx.de/git/u-boot-ppc4xx 2008-01-14 10:48:28 +01:00
Dave Liu
06c428bcd4 QE: fix compile warning
qe.c: In function 'qe_upload_firmware':
qe.c:390: warning: pointer targets in passing argument 2
uec.c: In function 'uec_initialize':
uec.c:1236: warning: 'uec_info' may be used uninitialized

Signed-off-by: Dave Liu <daveliu@freescale.com>
2008-01-14 10:34:30 +01:00
Stefan Roese
a0dd99d51e ppc4xx: Update Kilauea CPLD configuration with USB PHY reset bit
Now that bit 29 is the USB PHY reset bit, update the Kilauea port
to remove the USB PHY reset after powerup. The CPLD will keep the
USB PHY in reset (active low) until the bit is set to 1 in
board_early_init_f().

Signed-off-by: Stefan Roese <sr@denx.de>
2008-01-14 10:05:05 +01:00
Wolfgang Denk
f43ad53908 ARM: update mach-types.h from 2.6.24-rc7 Linux kernel tree
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-01-13 23:38:11 +01:00
Wolfgang Denk
8d103071b7 ADS5121: Fix typo in ads5121.c, adjust default environment
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-01-13 23:37:50 +01:00
John Rigby
51b67d06fa ADS5121: MAX slew rate for PATA pins
Signed-off-by: John Rigby <jrigby@freescale.com>
2008-01-13 23:36:22 +01:00
Wolfgang Denk
dd531aac34 Fix Makefile dependency problem with parallel builds.
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-01-13 23:36:06 +01:00
Wolfgang Denk
89967841e3 MPC8544DS: fix board Makefile for silent build (with -s)
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-01-13 19:57:08 +01:00
Wolfgang Denk
6d714f82fb PMC440 board: fix board Makefile for out-of-tree building
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-01-13 16:44:08 +01:00
Wolfgang Denk
6eb3fb1558 Makalu: fix compile warning
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-01-13 16:07:44 +01:00
Wolfgang Denk
1a0a7ced39 Merge branch 'master' of git+ssh://10.10.0.7/home/wd/git/u-boot/master 2008-01-13 15:59:21 +01:00
Jean-Christophe PLAGNIOL-VILLARD
0a1e03bcad cmd_nand : fix compiler warning.
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
2008-01-13 15:57:48 +01:00
Michael Schwingen
8225d1e3ac CFI: Fix CONFIG_FLASH_CFI_LEGACY compilation
Signed-off-by: Michael Schwingen <michael@schwingen.org>
Acked-by: Stefan Roese <sr@denx.de>
2008-01-13 15:07:26 +01:00
Stefan Roese
8d79953d03 Merge branch 'master' of /home/stefan/git/u-boot/u-boot 2008-01-13 15:04:37 +01:00
Wolfgang Denk
2b2f43ed6a MPC8360ERDK: fix incorrect initialization of CFG_I2C_NOPROBES
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-01-13 02:19:44 +01:00
Wolfgang Denk
08e99e1dd0 MPC8xx FEC driver: fix compiler warning.
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-01-13 02:19:13 +01:00
Wolfgang Denk
ae6d1056d2 Fix Makefile dependencies issues; allow silent build
- get rid of "version" target whichdidn't really work
- make autoconf.mk depend on version_autogenerated.h to make sure
  to rebuild files as needed
- add XECHO macro to allow for silent build using "make -s"

Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-01-13 00:59:21 +01:00
Wolfgang Denk
e343ab83d5 ADS5121e: fix compile warning
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-01-13 00:55:47 +01:00
Wolfgang Denk
f2b6f46106 MUNICes: fix board Makefile for remote build directory
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-01-13 00:55:18 +01:00
Oliver Weber
2ad4d3999f MPC5200: don't use hardcoded MBAR address in Bestcomm firmware
Signed-off-by: Oliver Weber <almoeli@gmx.de>
2008-01-12 21:19:01 +01:00
Andreas Engel
00ac50e348 Make bootretry work when command line editing is enabled
Currently, when CONFIG_CMDLINE_EDITING is set, bootretry doesn't work.
This patch fixes the problem.

Signed-off-by: Andreas Engel <andreas.engel@ericsson.com>
2008-01-12 21:14:14 +01:00
Larry Johnson
632de0672d Refactor code for "i2c sdram" command
Signed-off-by: Larry Johnson <lrj@acm.org>
2008-01-12 20:58:21 +01:00
Larry Johnson
0df6b8446c Fix "i2c sdram" command for DDR2 DIMMs
Many of the SPD bytes for DDR2 SDRAM are not interpreted correctly by the
"i2c sdram" command.  This patch provides correct alternative
interpretations when DDR2 memory is detected.

Signed-off-by: Larry Johnson <lrj@acm.org>
2008-01-12 20:58:15 +01:00
Wolfgang Denk
64134f0112 Fix linker scripts: add NOLOAD atribute to .bss/.sbss sections
With recent toolchain versions, some boards would not build because
or errors like this one (here for ocotea board when building with
ELDK 4.2 beta):
ppc_4xx-ld: section .bootpg [fffff000 -> fffff23b] overlaps section .bss [fffee900 -> fffff8ab]

For many boards, the .bss section is big enough that it wraps around
at the end of the address space (0xFFFFFFFF), so the problem will not
be visible unless you use a 64 bit tool chain for development. On
some boards however, changes to the code size (due to different
optimizations) we bail out with section overlaps like above.

The fix is to add the NOLOAD attribute to the .bss and .sbss
sections, telling the linker that .bss does not consume any space in
the image.

Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-01-12 20:31:39 +01:00
TsiChung Liew
3afac79ec2 USB: Add Philips 1561 PCI-OHCI ids
(needed for M5475EVB)

Signed-off-by: TsiChungLiew <Tsi-Chung.Liew@freescale.com>
2008-01-12 15:54:33 +01:00
Wolfgang Denk
5e8def6731 Add MAINTAINERS entries for ids8247, jupiter, municse, sc3 and uc101
boards.

Signed-off-by: Heiko Schocher <hs@denx.de>
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-01-12 15:51:34 +01:00
Grzegorz Bernacki
5d49e0e152 MPC512X: Cleanup bus clock names.
Signed-off-by: Grzegorz Bernacki <gjb@semihalf.com>
2008-01-12 15:37:49 +01:00
Grzegorz Bernacki
66a9455b6b MPC512X: Fixed typo in macro name.
Signed-off-by: Grzegorz Bernacki <gjb@semihalf.com>
2008-01-12 15:37:06 +01:00
Grzegorz Bernacki
281ff9a45c ads5121: Added support for FDT.
Signed-off-by: Grzegorz Bernacki <gjb@semihalf.com>
2008-01-12 15:36:17 +01:00
Wolfgang Denk
a10ff91961 Coding Style cleanup; update CHANGELOG.
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-01-12 01:05:50 +01:00
Heiko Schocher
f6db945649 Fixed syntax error in function init_e300_core() of mpc83xx/start.S if
Signed-off-by: Timur Tabi <timur@freescale.com>
Signed-off-by: Heiko Schocher <hs@denx.de>
2008-01-12 00:43:59 +01:00
Heiko Schocher
fa05664cd8 MUNICes: Set the right CFG_DEFAULT_MBAR value.
Signed-off-by: Heiko Schocher <hs@denx.de>
2008-01-12 00:43:12 +01:00
Heiko Schocher
5fb2b2342e added the config File for the MUNICes board.
Signed-off-by: Heiko Schocher <hs@denx.de>
2008-01-12 00:42:05 +01:00
Heiko Schocher
6341d9d723 added basic support for the MUNICes board.
Signed-off-by: Heiko Schocher <hs@denx.de>
2008-01-12 00:41:22 +01:00
Wolfgang Denk
3bb77fb09a Update CHANGELOG and MAINTAINERS files.
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-01-12 00:39:37 +01:00
Anatolij Gustschin
5ba7390c3c Fix compilation problem in common/cmd_bmp.c
common/cmd_bmp.c fails to compile if CONFIG_VIDEO_BMP_GZIP
isn't defined. This patch fix this.

Signed-off-by: Anatolij Gustschin <agust@denx.de>
2008-01-12 00:35:48 +01:00
Heiko Schocher
5aa437baae Fix defaultconfig for the mgcoge board.
Signed-off-by: Heiko Schocher <hs@denx.de>
2008-01-12 00:33:38 +01:00
Heiko Schocher
ac9db066b2 Added support for the mgcoge board from keymile.
Signed-off-by: Heiko Schocher <hs@denx.de>
2008-01-12 00:33:26 +01:00
Heiko Schocher
b423d055cc Enable SMC microcode relocation patch for SMC1.
Signed-off-by: Heiko Schocher <hs@denx.de>
2008-01-12 00:33:12 +01:00
Heiko Schocher
381e4e6397 Added support for the mgsuvd board from keymile.
Signed-off-by: Heiko Schocher <hs@denx.de>
2008-01-12 00:32:34 +01:00
James Yang
bf05293973 Fix 64-bit vsprintf.
There were some size and unsigned problems.
Also add support for "ll" size modifier in format string like glibc

Signed-off-by: James Yang <James.Yang@freescale.com>
Acked-by: Jon Loeliger <jdl@freescale.com>
2008-01-12 00:31:01 +01:00
Larry Johnson
92fa37eac5 Remove superfluous preprocessor conditionals from LM73 driver
(1) Remove unused symbol "CFG_EEPROM_PAGE_WRITE_ENABLE".

(2) Use conditional Makefile.o.

Signed-off-by: Larry Johnson <lrj@acm.org>
2008-01-12 00:26:47 +01:00
Guennadi Liakhovetski
efc6f447c1 Add support for the TK885D baseboard from TELE-DATA
The TK885D board uses a TQM885D module from TQ, this port adds an
own configuration file and adds a last_stage_init() method to
configure the two PHYs, depending on the phy_auto_nego environment
variable.

Signed-off-by: Guennadi Liakhovetski <lg@denx.de>
2008-01-12 00:25:03 +01:00
Wolfgang Denk
34d51566bc Merge branch 'master' of git://www.denx.de/git/u-boot-video 2008-01-12 00:22:05 +01:00
Wolfgang Denk
c08ba67722 Merge branch 'master' of git://www.denx.de/git/u-boot-ppc4xx 2008-01-12 00:13:37 +01:00
Wolfgang Denk
14c14db193 Merge branch 'master' of git://www.denx.de/git/u-boot-mpc83xx 2008-01-12 00:04:01 +01:00
Wolfgang Denk
3709898b3a Merge branch 'master' of git://www.denx.de/git/u-boot-mpc86xx 2008-01-12 00:02:26 +01:00
Wolfgang Denk
8aadd2d0c4 Merge ../custodians 2008-01-11 23:53:26 +01:00
Kumar Gala
0ec595243d Fix compiler warning
main.c: In function 'readline_into_buffer':
main.c:927: warning: unused variable 'p_buf'

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2008-01-11 23:39:54 +01:00
Anatolij Gustschin
bed53753dd Add Fujitsu CoralP/Lime video driver
Signed-off-by: Anatolij Gustschin <agust@denx.de>
Signed-off-by: Rodolfo Giometti <giometti@linux.it>
2008-01-11 16:05:36 +01:00
Anatolij Gustschin
20c450ef61 Fix video console newline and carriage return handling
Lines of the lenght CONSOLE_COLS or greater than CONSOLE_COLS
are not displayed correctly. This is an attempt to fix
this issue. Also add carriage return handling.

Signed-off-by: Anatolij Gustschin <agust@denx.de>
Signed-off-by: Rodolfo Giometti <giometti@linux.it>
2008-01-11 16:04:46 +01:00
Stefan Roese
d5a163d6ba ppc4xx: Fix sdram init on Sequoia boards
Clear possible errors in MCSR resulting from data-eye-search.
If not done, then we could get an interrupt later on when
exceptions are enabled.

Signed-off-by: Stefan Roese <sr@denx.de>
2008-01-11 15:53:58 +01:00
Anatolij Gustschin
d610a60730 ppc4xx: Rework Lime support for lwmon5
Rework Lime support for lwmon5 using new video driver

Signed-off-by: Anatolij Gustschin <agust@denx.de>
2008-01-11 15:51:42 +01:00
Matthias Fuchs
ff41ffc93c ppc4xx: Update PMC440 config file
Signed-off-by: Matthias Fuchs <matthias.fuchs@esd-electronics.com>
2008-01-11 15:44:35 +01:00
Matthias Fuchs
e3edcb36f1 ppx4xx: Fix sdram init on PMC440 boards
Signed-off-by: Matthias Fuchs <matthias.fuchs@esd-electronics.com>
2008-01-11 15:44:27 +01:00
Dave Liu
061aad4d32 mpc83xx: Fix the bug of 266MHz data rate DDR
The DDR doesn't work on the 266MHz data rate,
the patch fix the bug.

Signed-off-by: Dave Liu <daveliu@freescale.com>
Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
2008-01-10 21:24:11 -06:00
Dave Liu
ded08317ad mpc83xx: Make the code more readable
Format the code, make it more readable

Signed-off-by: Dave Liu <daveliu@freescale.com>
Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
2008-01-10 21:23:46 -06:00
Dave Liu
7e74d63d1a mpc83xx: Reduce the latency of DDR
Reduce the AL from 2 to 1 clock to improve the performance.

Signed-off-by: Dave Liu <daveliu@freescale.com>
Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
2008-01-10 21:23:26 -06:00
Dave Liu
6f3931a2be mpc83xx: Fix the wrong definition of MPC8315E
According to the latest user manual of MPC8315E,
1) The SVCOD of HRCWL is different than 837x
2) The SCCR has changes

Signed-off-by: Dave Liu <daveliu@freescale.com>
Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
2008-01-10 21:22:41 -06:00
Dave Liu
ec2638ea08 mpc83xx: Fix the typo in mpc83xx.h
The SPCR about TSEC priority is wrong.

Signed-off-by: Michael Barkowski <Michael.Barkowski@freescale.com>
Signed-off-by: Joe D'Abbraccio <Joe.D'abbraccio@freescale.com>
Signed-off-by: Dave Liu <daveliu@freescale.com>
Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
2008-01-10 21:20:30 -06:00
Dave Liu
c86ef2cd9e mpc83xx: Fix the typo in global data struct
Fix the typo in global_data.h

Signed-off-by: Dave Liu <daveliu@freescale.com>
Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
2008-01-10 21:06:48 -06:00
Dave Liu
2c5b48fc20 mpc83xx: Remove cache config from config.h
clean up the cache config from configs.h of board

Signed-off-by: Dave Liu <daveliu@freescale.com>
Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
2008-01-10 21:06:32 -06:00
Anton Vorontsov
fab6f556bb mpc83xx: add support for the MPC8360E-RDK
This is MPC8360E based board with:
- 256MB fixed SDRAM;
- 8MB Intel Strata NOR flash;
- StMICRO 64MiB NAND flash;
- two 10/100/1000 ethernet ports connected via Broadcom
  BCM5481 PHYs;
- two 10/100 ethernet ports connected via National
  DP83848 PHYs;
- one PCI and one miniPCI slots;
- four serial ports (two NS16550-compatible, two UCCs);
- four USB ports working through MPC8360E "FHCI" USB controller;
- Fujitsu MB86277 graphics controller;
- Analog to Digital Converter/Touchscreen controller, AD7843
  connected to SPI.

Features not supported in this patch are:
- StMICRO 64MiB NAND flash (patch sent);
- MINT framebuffer initialization (patch is pending);
- Fetching production information from the EEPROM via I2C;
- FHCI USB;
- Two slow UCCs used as RS-485 UARTs.

Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
2008-01-10 20:52:58 -06:00
Anton Vorontsov
b3d2cde7a3 mpc83xx: add "fsl, qe" compatible fixups
New device trees will use "fsl,qe" compatible properties.

Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
2008-01-10 20:52:47 -06:00
Kim Phillips
977b57583a mpc83xx: add missing CONFIG_HAS_ETH0 defines
the new libfdt code only updates eth0 if CONFIG_HAS_ETH0
is defined; add the define to the missing board configs.

Thanks to Emilian Medve for finding this.

Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
2008-01-10 20:52:38 -06:00
Jon Loeliger
bb66f56136 Merge commit 'wd/master' 2008-01-10 14:28:18 -06:00
Becky Bruce
b830b7f163 86xx: Support 2GB DIMMs
Configure the number of bits used to address the banks inside the SDRAM
device.  The default register value of 0 means 2 bits to address 4 banks.
Higher capacity devices like a 2GB DIMM require 3 bits to address 8 banks.

Signed-off-by: Becky Bruce <bgill@freescale.com>
2008-01-10 14:00:28 -06:00
Niklaus Giger
4d332dbeb0 ppc4xx: Make Sequoia boot vxWorks
vxWorks expects in
TLB 0 a entry for the Machine Check interrupt
TLB 1 a entry for the RAM
TLB 2 a entry for the EBC
TLB 3 a entry for the boot flash

After changing the baudrate to 9600 I had no problems to boot the
vxWorks image as distributed by WindRiver (Revision 2.0/1 from
June 18, 2007)

Signed-off-by: Niklaus Giger <niklaus.giger@netstal.com>
2008-01-10 19:06:54 +01:00
Larry Johnson
6d8184b00c ppc4xx: Fix dflush() to restore DVLIM register
Signed-off-by: Larry Johnson <lrj@acm.org>
2008-01-10 18:53:16 +01:00
Jean-Christophe PLAGNIOL-VILLARD
252f60b068 Nios2: remove common/cmd_bdinfo.c unused variable.
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Signed-off-by: Scott McNutt <smcnutt@psyent.com>
2008-01-10 03:52:44 -05:00
Ben Warren
422b1a0160 Fix Ethernet init() return codes
Change return values of init() functions in all Ethernet drivers to conform
to the following:

    >=0: Success
    <0:  Failure

All drivers going forward should return 0 on success.  Current drivers that
return 1 on success were left as-is to minimize changes.

Signed-off-by: Ben Warren <biggerbadderben@gmail.com>
Acked-by: Stefan Roese <sr@denx.de>
Acked-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Acked-by: Kim Phillips <kim.phillips@freescale.com>
Acked-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
Acked-By: Timur Tabi <timur@freescale.com>
2008-01-10 01:06:02 +01:00
Wolfgang Denk
d3a6532cbe Coding Style cleanup; update CHANGELOG
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-01-10 00:55:14 +01:00
Wolfgang Denk
694976afa5 Merge branch 'master' of git://www.denx.de/git/u-boot-mpc85xx 2008-01-10 00:49:59 +01:00
Kim Phillips
17a41e4492 Add QE brg freq and correct qe bus freq fdt update code
Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
Signed-off-by: Andy Fleming <afleming@freescale.com>
2008-01-09 16:56:54 -06:00
Wolfgang Denk
80adb27616 Merge branch 'master' of git+ssh://10.10.0.7/home/wd/git/u-boot/master 2008-01-09 23:43:10 +01:00
Andy Fleming
890dfef06c Remove cache config from ATUM8548 and sbc8548 configs
These boards weren't updated by Kumar's config patch because they
weren't in the tree, yet.

Signed-off-by: Andy Fleming <afleming@freescale.com>
2008-01-09 16:34:51 -06:00
Timur Tabi
b8ec238503 85xx: add ability to upload QE firmware
Define the layout of a binary blob that contains a QE firmware and instructions
on how to upload it.  Add function qe_upload_firmware() to parse the blob and
perform the actual upload.  Add command-line command "qe fw" to take a firmware
blob in memory and upload it.  Update ft_cpu_setup() on 85xx to create the
'firmware' device tree node if U-Boot has uploaded a firmware.  Fully define
'struct rsp' in immap_qe.h to include the actual RISC Special Registers.

Signed-off-by: Timur Tabi <timur@freescale.com>
2008-01-09 16:28:12 -06:00
Kumar Gala
b009f3eca9 85xx: Remove cache config from configs.h
Either use the standard defines in asm/cache.h or grab the information
at runtime from the L1CFG SPR.

Also, minor cleanup in cache.h to make the code a bit more readable.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2008-01-09 16:25:04 -06:00
robert lazarski
b964e9368f mpc85xx: Add support for ATUM8548 (updated)
Add support for Instituto Atlantico's ATUM8548 board

Signed-off-by: robert lazarski <robertlazarski@gmail.com>
Signed-off-by: Andy Fleming <afleming@freescale.com>
2008-01-09 16:25:04 -06:00
robert lazarski
7bd6104b71 mpc85xx: Add support for ATUM8548 (updated)
Add support for Instituto Atlantico's ATUM8548 board

Signed-off-by: robert lazarski <robertlazarski@gmail.com>
2008-01-09 16:25:03 -06:00
Joe Hamman
9e3ed392d2 mpc85xx: Add support for SBC8548 (updated)
Add support for Wind River's SBC8548 reference board.

Signed-off by: Joe Hamman <joe.hamman@embeddedspecialties.com>
2008-01-09 16:25:03 -06:00
Joe Hamman
11c45ebd46 mpc85xx: Add support for SBC8548 (updated)
Add support for Wind River's SBC8548 reference board.

Signed-off by: Joe Hamman <joe.hamman@embeddedspecialties.com>
Signed-off by: Andy Fleming <afleming@freescale.com>
2008-01-09 16:25:03 -06:00
Anton Vorontsov
64d4bcb087 MPC8568E-MDS: set up QE pario for UART1
To use UART1 on the MPC8568E-MDS, QE pario pins PC[0:3] should
be set up appropriately.

Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
2008-01-09 16:25:03 -06:00
Anton Vorontsov
ad162249cb MPC8568E-MDS: reset UCCs to use them reliably
In order to use GETH1 and GETH2 on the MPC8568E-MDS, we should reset
UCCs.

p.s Similar code exists in the Linux kernel board file (for capability
reasons with older U-Boots), but should be removed some day.

Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
2008-01-09 16:25:03 -06:00
Kumar Gala
2146cf5682 Reworked FSL Book-E TLB macros to be more readable
The old macros made it difficult to know what WIMGE and perm bits
were set for a TLB entry.  Actually use the bit masks for these items
since they are only a single bit.

Also moved the macros into mmu.h out of e500.h since they aren't specific
to e500.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2008-01-09 16:25:03 -06:00
Kumar Gala
1d47273d46 Use FSL Book-E MMU macros from Linux Kernel
Grab the FSL Book-E MAS register macros from Linux.  Also added
defines for page sizes up to 4TB and removed SHAREN since it doesnt
really exist.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2008-01-09 16:25:03 -06:00
Andy Fleming
02df4a270f Fix my own merge stupidity
Way back in August I merged Heiko's patch:
566a494f59: [PCS440EP] upgrade the PCS440EP board

with Jon's CONFIG_COMMANDS patches.

This was done in commit: 6bf6f114dc

However, in the process, I left out some of Heiko's good changes.

Now Heiko's and Jon's patches are properly merged in fat_register_device()

Signed-off-by: Andy Fleming <afleming@freescale.com>
2008-01-09 23:13:00 +01:00
Wolfgang Denk
fc16904ce1 Merge branch 'master' of /home/wd/git/u-boot/custodians 2008-01-09 23:06:57 +01:00
Wolfgang Denk
ecc198c9b9 Merge branch 'master' of git://www.denx.de/git/u-boot-freebsd 2008-01-09 23:06:15 +01:00
Wolfgang Denk
808da52f62 Merge branch 'master' of git+ssh://10.10.0.7/home/wd/git/u-boot/master 2008-01-09 22:53:39 +01:00
James Yang
6636b62a6e Expose parse_line() globally.
Add new function readline_into_buffer() that allows the
output of readline to be put into a pointer to char buffer.

This refactoring allows other functions besides the
main command loop to also use the same input mechanism.

Signed-off-by: James Yang <James.Yang@freescale.com>
Acked-by: Jon Loeliger <jdl@freescale.com>
2008-01-09 22:53:20 +01:00
Wolfgang Denk
cc557950f7 Merge branch 'master' of git://www.denx.de/git/u-boot-usb 2008-01-09 22:41:02 +01:00
Guennadi Liakhovetski
7ca9051348 trivial: fix consequences of a bad merge
Fix what looks like a merge artifact.

Signed-off-by: Guennadi Liakhovetski <lg@denx.de>
2008-01-09 22:27:09 +01:00
Zhang Wei
4785a694c0 Add Ctrl combo key support to usb keyboard driver.
Ctrl combo key support is added, which is very useful to input Ctrl-C
for interrupt current job.
Also add usb_event_poll() calling to usb_kbd_testc(), which can get
key input when tstc() is called.

Signed-off-by: Zhang Wei <wei.zhang@freescale.com>
2008-01-09 21:52:23 +01:00
Marcel Ziswiler
10c7382bc5 fix various comments
Signed-off-by: Marcel Ziswiler <marcel@ziswiler.com>
2008-01-09 21:50:47 +01:00
Marcel Ziswiler
7817cb2083 fix comments with new drivers organization
Signed-off-by: Marcel Ziswiler <marcel@ziswiler.com>
2008-01-09 21:48:49 +01:00
Shinya Kuribayashi
a9b410dc7d Remove the obsolete terse version of do_mii()
We now have more useful version of do_mii() and everybody use it.
Gerald Van Baren says:

> When I originally wrote the mii command 6(!) years ago, I wrote a
> verbose version that printed human readable decomposition of the flags,
> etc., and a terse one that didn't print as much stuff and thus had a
> smaller memory footprint.
>
> It sounds like the terse version has withered and died, apparently
> people are only using the verbose version (which is very understandable,
> I do myself).

Signed-off-by: Shinya Kuribayashi <shinya.kuribayashi@necel.com>
Signed-off-by: Gerald Van Baren <vanbaren@cideas.com>
2008-01-09 21:44:22 +01:00
Mike Frysinger
01c687aa6e Do not reference sha1.c when building mkimage.
remove sha1.o from mkimage linking since it isn't actually used.

Signed-Off-By: Mike Frysinger <vapier@gentoo.org>
2008-01-09 21:42:04 +01:00
Shinya Kuribayashi
b9173af73e common/cmd_mii.c: Add sanity argc check
If type mii command without arguments, we suffer from uninitialized argv[]
entries; for example we MIPS get stuck by TLB error.

Signed-off-by: Shinya Kuribayashi <shinya.kuribayashi@necel.com>
2008-01-09 21:36:29 +01:00
Wolfgang Denk
3b93020d74 Merge branch 'master' of /home/wd/git/u-boot/master/ 2008-01-09 21:34:46 +01:00
Rafal Jaworowski
500856eb17 API for external applications.
This is an API for external (standalone) applications running on top of
U-Boot, and is meant to be more extensible and robust than the existing
jumptable mechanism. It is similar to UNIX syscall approach. See api/README
for more details.

Included is the demo application using this new framework (api_examples).

Please note this is still an experimental feature, and is turned off by
default.

Signed-off-by: Rafal Jaworowski <raj@semihalf.com>
2008-01-09 19:39:36 +01:00
Jon Loeliger
fe8dd0b222 86xx: Remove cache config from configs.h
Just use the standard defines in asm/cache.h.

Signed-off-by: Jon Loeliger <jdl@freescale.com>
2008-01-09 12:14:55 -06:00
Rafal Jaworowski
26a41790f8 Globalize envmatch()
The newly introduced API (routines related to env vars) will need to call
it.

Signed-off-by: Rafal Zabdyr <armo@semihalf.com>
2008-01-09 18:05:27 +01:00
Jon Loeliger
1df170f8b2 Convert MPC8610HPCD to use libfdt.
Assumes the presence of the aliases node in the DTS to
locate the pci and serial nodes for fixups.

Use consistent fdtaddr and fdtfile in environment variables.

Signed-off-by: Jon Loeliger <jdl@freescale.com>
2008-01-09 10:47:31 -06:00
Jon Loeliger
c9974ab0a4 8610: Fix lingering compile warnings.
Turn off DEBUG.

Signed-off-by: Jon Loeliger <jdl@freescale.com>
2008-01-09 10:47:30 -06:00
Wolfgang Denk
6007f3251c Coding Style cleanup, update CHANGELOG
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-01-09 15:14:46 +01:00
Mike Frysinger
fc6414eca5 fix easylogo on big endian dev systems
didnt realize how out of shape easylogo actually was until i tried using it.
this patch does byte swapping as need be on the input tga header since the tga
is in little endian but the host could just as well be big endian.  i didnt
bother using bswap macros or such stuff from system headers as nothing in
POSIX dictates byte swapping functionality.

Signed-Off-By: Mike Frysinger <vapier@gentoo.org>
2008-01-09 15:10:08 +01:00
Mike Frysinger
38d299c2db cleanup easylogo
- make the Makefile not suck
- include proper headers for prototypes
- fix obvious broken handling of strchr() when handling '.' in filenames

Signed-Off-By: Mike Frysinger <vapier@gentoo.org>
2008-01-09 15:09:05 +01:00
raptorbrino@aim.com
883e3925d9 Fix build problems under Cygwin
This patch allows u-boot to build without error in a cygwin
environment.  Cygwin does not define __u64 in it's
include/asm/types.h file.  The -idirafter flag in the u-boot
build causes the inclusion of the cygwin types.h file as opposed
to u-bot/include/asm/types.h file which does define __u64.
Subsequently, sha1.c compile fails due to unknown symbol.

Signed-off-by: Brian Miller <raptorbrino@netscape.net>
2008-01-09 15:07:02 +01:00
Hans-Christian Egtvedt
43ef1c381f cmd_bmp: Add support for displaying gzip compressed bmps
The existing code can show information about a gzip compressed BMP
image, but can't actually display it.

Therefore, move the decompression code out of bmp_info() and use it in
bmp_display() as well in order to display a compressed BMP image.

Also, clean things up a bit and fix a memory leak while we're at it.

[hskinnemoen@atmel.com: a bit of refactoring]
Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
2008-01-09 14:55:18 +01:00
Guennadi Liakhovetski
d197ffd817 Fix and optimize MII operations on FEC (MPC8xx) controllers
This patch fixes several issues at least on a MPC885 based system with two
FEC interfaces used in MII mode.

1. PHY discovery should first read PHY_PHYIDR2 register and only then
   PHY_PHYIDR1 like cpu/mpc8xx/fec.c::mii_discover_phy() does it,
   otherwise the values read are wrong. Also notice, that PHY discovery
   cannot work on MPC88x / MPC87x in setups with both FECs active at all
   in its present form, because for both interfaces the registers from FEC
   1 are used to communicate over MII.

2. Remove code duplication for resetting the FEC by isolating it into a
   separate function.

3. Initialize MII on FEC 1 when communicating over FEC 2 in fec_init().

4. Optimize mii_init() to only reset the FEC 1 controller once.

5. Fix a typo in mii_init() using index i instead of j thus potentially
   leading to unpredictable results.

Signed-off-by: Guennadi Liakhovetski <lg@denx.de>
2008-01-09 14:52:04 +01:00
Guennadi Liakhovetski
6a5e1d75bf Fix endianness conversions in rtl8169 driver
It is unclear on what platforms this driver has been tested, since
noone up to now defines CONFIG_RTL8169 in the board configuration
header. Now it has been fixed for a big-endian mpc8241 based
linkstation platform. This patch presents the necessary endianness
conversion fixes.

Signed-off-by: Guennadi Liakhovetski <lg@denx.de>
2008-01-09 14:37:01 +01:00
Zhang Wei
58694f9709 Add Ctrl combo key support to usb keyboard driver.
Ctrl combo key support is added, which is very useful to input Ctrl-C
for interrupt current job.
Also add usb_event_poll() calling to usb_kbd_testc(), which can get
key input when tstc() is called.

Signed-off-by: Zhang Wei <wei.zhang@freescale.com>
Signed-off-by: Markus Klotzbuecher <mk@denx.de>
2008-01-09 13:58:39 +01:00
Markus Klotzbuecher
6a40ef62c4 Merge git://www.denx.de/git/u-boot
Conflicts:

	board/tqm5200/tqm5200.c
2008-01-09 13:57:10 +01:00
Wolfgang Denk
07eb02687f Coding Style clenaup; update CHANGELOG
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-01-09 13:43:38 +01:00
Matthias Fuchs
c26acc1a43 Remove bit swapping in Xilinx Spartan bitfile loading
This patch removes the unnecessary bit swapping when
booting .bit files with the 'fpga loadb' command.

Signed-off-by: Matthias Fuchs <matthias.fuchs@esd-electronics.com>
2008-01-09 13:37:40 +01:00
Matthias Fuchs
437fc7327f Fix MSB check in Xilinx Spartan slave serial mode
Signed-off-by: Matthias Fuchs <matthias.fuchs@esd-electronics.com>
2008-01-09 13:37:08 +01:00
Matthias Fuchs
3bff4ffa33 Add new Xilinx Spartan FPGA types
Signed-off-by: Matthias Fuchs <matthias.fuchs@esd-electronics.com>
2008-01-09 13:36:28 +01:00
Matthias Fuchs
21d39d598c Add pre and post configuration callbacks for Spartan FPGAs
This patch adds a post configuration callback for Spartan2/3 FPGAs.
pre and post configuration callback are now optional and
not called when the function pointer is set to NULL.

Signed-off-by: Matthias Fuchs <matthias.fuchs@esd-electronics.com>
2008-01-09 13:35:52 +01:00
Matthias Fuchs
0133502e39 Improve configuration of FPGA subsystem
This patch removes the FPGA subsystem configuration through
the CONFIG_FPGA bitmask configuration option.

See README for the new options:

	CONFIG_FPGA,
	CONFIG_FPGA_<vendor>,
	CONFIG_FPGA_<family>

Signed-off-by: Matthias Fuchs <matthias.fuchs@esd-electronics.com>
2008-01-09 13:34:20 +01:00
Matthias Fuchs
95c6bc7d4a Add Epson RX8025 RTC support
Signed-off-by: Matthias Fuchs <matthias.fuchs@esd-electronics.com>
2008-01-09 13:29:27 +01:00
Matthias Fuchs
1208a2dfde serial: Make default_serial_console() a weak function
With this patch it is possible to reimplement default_serial_console()
in board specific code. This will be done in the upcomming PMC440
U-Boot port. This also allows the lwmon board maintainer to
remove the '#if !defined(CONFIG_LWMON) ...' from common/serial.c.

Signed-off-by: Matthias Fuchs <matthias.fuchs@esd-electronics.com>
2008-01-09 13:27:39 +01:00
Harald Welte
d16471ee05 add 'terminal program' functionality
This patch adds a 'cu' like serial terminal command to u-boot
using which you can access other serial ports from the system console.

OpenMoko uses this in their Neo1973 phones to get access to the GSM
Modem and GPS chip from the bootloader.

Signed-off-by: Harald Welte <laforge@openmoko.org>
2008-01-09 13:26:38 +01:00
Harald Welte
62d4f43653 Re-introduce the 'nand read.oob' and 'nand write.oob' commands
that used to exist with the legacy NAND code

Signed-off-by: Harald Welte <laforge@openmoko.org>
2008-01-09 13:23:50 +01:00
Harald Welte
f540c42d95 Fix building with CRAMFS but not JFFS2 support
Signed-off-by: Harald Welte <laforge@openmoko.org>
2008-01-09 13:04:37 +01:00
Jean-Christophe PLAGNIOL-VILLARD
23d0baf967 Allow CONFIG_AUTO_COMPLETE and command history CONFIG_CMDLINE_EDITING at the sametime
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
2008-01-09 11:54:36 +01:00
Jean-Christophe PLAGNIOL-VILLARD
23776ff292 ARM: support board-specific ethernet PHY init
Add until the new phylib will be arrived

Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
2008-01-09 11:54:26 +01:00
Jean-Christophe PLAGNIOL-VILLARD
7b74ebe723 IXP: Add full baud-rate support for ixp42x, ixp45x and ixp46x
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
2008-01-09 11:53:58 +01:00
Jean-Christophe PLAGNIOL-VILLARD
a2df4da31b Add missing file in gitignore and comments
based on Linux source tree's .gitignore files

Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
2008-01-09 11:53:45 +01:00
Wolfgang Denk
435dc8fcdb Coding Style cleanup, update CHANGELOG
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-01-09 11:36:21 +01:00
Wolfgang Denk
2eb6e01049 Merge branch 'master' of git://www.denx.de/git/u-boot-arm 2008-01-09 11:30:15 +01:00
Wolfgang Denk
d2ba6bd8f4 Merge branch 'master' of git://www.denx.de/git/u-boot-fdt 2008-01-09 11:28:56 +01:00
Wolfgang Denk
0b4f579230 Merge branch 'master' of git://www.denx.de/git/u-boot-mpc83xx 2008-01-09 11:27:02 +01:00
Wolfgang Denk
c1d1633409 Merge branch 'master' of /home/wd/git/u-boot/master/ 2008-01-09 11:17:59 +01:00
Stefan Roese
1466ef8db5 Merge branch 'lwmon5-no-ocm' 2008-01-09 10:43:47 +01:00
Stefan Roese
b2e2142c50 POST: Execute SPR test after relocation
On LWMON5 we now use d-cache as init-ram and stack. The SPR POST test uses
self modifying code and this doesn't work with stack in d-cache, since
I can't move the code from d-cache to i-cache. We move the SPR test to
be executed a little later, after relocation. Then stack is located in
SDRAM and this self-modifying code is no problem anymore.

Signed-off-by: Stefan Roese <sr@denx.de>
2008-01-09 10:38:58 +01:00
Stefan Roese
8f24e0637a ppc4xx: Change LWMON5 to not use OCM for init-ram and POST anymore
This patch configures the LWMON5 port to use d-cache as init-ram and
the unused GPT0_COMP6 as POST WORD storage.

Signed-off-by: Stefan Roese <sr@denx.de>
2008-01-09 10:28:20 +01:00
Stefan Roese
1754f50b71 ppc4xx: Add CFG_POST_ALT_WORD_ADDR to support non OCM POST WORD storage
The privious 4xx POST implementation only supported storing the POST
WORD in OCM. Since we need to reserve the OCM on LWMON5 for the logbuffer
we need to store the POST WORD in some other non volatile location.
This patch adds CFG_POST_ALT_WORD_ADDR to specify an address for such
a location.

Signed-off-by: Stefan Roese <sr@denx.de>
2008-01-09 10:25:46 +01:00
Stefan Roese
e02c521d94 ppc4xx: Add 44x cache locking to better support init-ram in d-cache
This patch adds support for locking the init-ram/stack in d-cache,
so that other regions may use d-cache as well

Note, that this current implementation locks exactly 4k of d-cache,
so please make sure that you don't define a bigger init-ram area. Take
a look at the lwmon5 440EPx implementation as a reference.

Signed-off-by: Stefan Roese <sr@denx.de>
2008-01-09 10:23:16 +01:00
Wolfgang Denk
0ddb89601a Fix memset bug in ext2fs_read_file()
ext2fs_read_file() had the function arguments swapped.

Pointed out by Mike Montour, 19 Dec 2007 22:34:25 -0800

Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-01-09 10:16:33 +01:00
Markus Klotzbücher
32d6f1bc09 Fix problems with usb storage devices on MPC5200 /TQM5200
The MPC5200 OHCI controller operates in big endian, so
CFG_OHCI_BE_CONTROLLER must be defined for it to work properly.

Signed-off-by: Markus Klotzbuecher <mk@denx.de>
2008-01-09 10:03:04 +01:00
Wolfgang Denk
46f6e50190 Fix compile problem with new env code.
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-01-09 09:51:14 +01:00
Markus Klotzbücher
64b3727b97 tools: fix fw_printenv tool to compile again
This patch updates the fw_printenv/fw_setenv userspace tool to include
the correct MTD header in order to compile against current kernel
headers. Backward compatibility is preserved by introducing an option
MTD_VERSION which can be set to "old" for compilation using the old MTD
headers. Along with this a number of warnings are fixed.

Signed-off-by: Markus Klotzbuecher <mk@denx.de>
2008-01-09 09:51:12 +01:00
Matthias Fuchs
1f84021a85 ppc4xx: assign PCI interrupts on seuqoia boards
Some operating systems rely on assigned PCI interrupts.

Signed-off-by: Matthias Fuchs <matthias.fuchs@esd-electronics.com>
2008-01-09 06:33:03 +01:00
Matthias Fuchs
6e9233d30a ppc4xx: Move cpu/ppc4xx/vecnum.h into include path
This patch allows the use of 4xx interrupt vector number defines
in board specific code outside cpu/ppc4xx.

Signed-off-by: Matthias Fuchs <matthias.fuchs@esd-electronics.com>
2008-01-09 06:32:58 +01:00
Matthias Fuchs
580d1d3186 ppc4xx: Fix UIC2 vector number base
Signed-off-by: Matthias Fuchs <matthias.fuchs@esd-electronics.com>
2008-01-09 06:32:54 +01:00
Matthias Fuchs
ff5fb8a6cc ppc4xx: Update PLB/PCI divider for PMC440 board
This patch updates the PLB/PCI divider when running at
400MHz CPU frequency from 4 to 3 which results in 44MHz PCI sync clock.

Signed-off-by: Matthias Fuchs <matthias.fuchs@esd-electronics.com>
2008-01-09 06:32:35 +01:00
Matthias Fuchs
7d5d756331 ppc4xx: Disable error message when no NAND chip is installed on PMC440
Add CFG_NAND_QUIET_TEST option to disable error message when
no NAND chip is installed on PMC440 boards.

Disable a couple of config defines that are only used for NAND_U_BOOT.

Signed-off-by: Matthias Fuchs <matthias.fuchs@esd-electronics.com>
2008-01-09 06:32:23 +01:00
Wolfgang Denk
c83d7ca4da Fix compile problem with new env code.
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-01-08 22:58:27 +01:00
Markus Klotzbücher
6de66b3542 tools: fix fw_printenv tool to compile again
This patch updates the fw_printenv/fw_setenv userspace tool to include
the correct MTD header in order to compile against current kernel
headers. Backward compatibility is preserved by introducing an option
MTD_VERSION which can be set to "old" for compilation using the old MTD
headers. Along with this a number of warnings are fixed.

Signed-off-by: Markus Klotzbuecher <mk@denx.de>
2008-01-08 22:53:01 +01:00
Gerald Van Baren
ad3006fe7e LIBFDT: use memmove() instead of memcpy()
This is partial patch from the DTC/libfdt
commit  67b6b33b9b413a450a72135b5dc59c0a1e33e647
Author: David Gibson <david@gibson.dropbear.id.au>
Date:   Wed Nov 21 11:56:14 2007 +1100

    The patch also fixes one genuine bug caught by valgrind -
    _packblocks() in fdt_rw.c was using memcpy() where it should have been
    using memmove().

Signed-off-by: Gerald Van Baren <vanbaren@cideas.com>
2008-01-08 15:03:47 -05:00
David Gibson
aec7135bc3 libfdt: Add more documentation (patch the seventh)
This patch adds more documenting comments to libfdt.h.  Specifically,
these document the read/write functions (not including fdt_open_into()
and fdt_pack(), for now).

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
2008-01-08 15:03:42 -05:00
David Gibson
9d4450b5ad libfdt: Add more documentation (patch the sixth)
This patch adds some more documenting comments to libfdt.h.
Specifically this documents all the write-in-place functions.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
2008-01-08 15:03:34 -05:00
Gerald Van Baren
b60af3d4c1 Fine grained per property /chosen updating.
Implement a suggestion by Scott Wood to make the /chosen handling fine
grained.  Don't overwrite pre-existing properties on a per-property basis,
so if /chosen exists but a necessary /chosen/property doesn't, it gets
created.  If a /chosen property exists, it is NOT overwritten unless the
"force" flag is true.

Signed-off-by: Gerald Van Baren <vanbaren@cideas.com>
2008-01-08 15:03:29 -05:00
Gerald Van Baren
238cb7a423 Improve the FDT help message.
Add a note that "fdt copy" makes the new address active.
Remove most of the extra hints at the end of the fdt help.

Signed-off-by: Gerald Van Baren <vanbaren@cideas.com>
2008-01-08 15:03:18 -05:00
Gerald Van Baren
ea6d8be153 Support setting FDT properties with optional values.
Fix a bug found and documented by Bartlomiej Sieka where the optional
value on "fdt set <path> <prop> [<val>]" wasn't optional.

=> fdt mknode / testnode
=> fdt print /testnode
testnode {
};
=> fdt set /testnode testprop
=> fdt print /testnode
testnode {
        testprop;
};

Signed-off-by: Gerald Van Baren <vanbaren@cideas.com>
2008-01-08 15:03:13 -05:00
Matthias Fuchs
22fb2246df Add fdt_find_and_setprop() to fdt_support.h
fdt_find_and_setprop() is used by several 4xx boards and it's
missing in the appropriate header. This patch eliminates a
warning when building U-Boot for such boards.

Signed-off-by: Matthias Fuchs <matthias.fuchs@esd-electronics.com>
Acked-by: Stefan Roese <sr@denx.de>
2008-01-08 15:03:06 -05:00
Stefan Roese
802b769bac ppc4xx: Return 0 on success in 4xx ethernet driver
Signed-off-by: Stefan Roese <sr@denx.de>
2008-01-08 18:39:30 +01:00
Wolfgang Denk
74ac5facb9 Merge branch 'inka4x0-ng' of /home/m8/git/u-boot/ 2008-01-08 17:15:18 +01:00
Kim Phillips
6775c68683 mpc83xx: fix missed pci_hose -> hose conversion for new libfdt code
Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
2008-01-08 09:59:49 -06:00
Kim Phillips
94fab25f5f mpc83xx: rm remaining FLAT_TREE code
..in board pci.c files

Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
2008-01-08 09:56:42 -06:00
Kim Phillips
b3458d2cd5 mpc83xx: remove FLAT_TREE code
need to rm it from pci code, too!

Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
2008-01-08 09:56:42 -06:00
Kim Phillips
5b8bc606c6 mpc83xx: convert to using do_fixup_*()
convert to using simpler mpc85xx style fdt update code; streamline by
eliminating macros OF_SOC, OF_CPU, etc. which allows us to rm
the old school FLAT_TREE code from 83xx (since the sbc8349 was just
converted over to using libfdt).

Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
2008-01-08 09:56:42 -06:00
Paul Gortmaker
e496865ecc sbc8349: enable libfdt by default on WRS SBC8349 board.
Make libfdt the default for the WRS SBC8349 board.
Parallel of commit 35cc4e4823
done for the other 83xx based boards.  Also fix a typo in CONFIG_PCI.

Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
2008-01-08 09:55:42 -06:00
Paul Gortmaker
2408b3f20b sbc8349: migrate board to libfdt
This adds libfdt support code for the Wind River sbc8349 board.

Parallel of commit 3fde9e8b22 for
the other Freescale 83xx boards.

Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
2008-01-08 09:55:41 -06:00
Paul Gortmaker
27a256a90c sbc8349: Remove board specific ECC code
ECC code is now shared for all 83xx boards, so remove board specific one.
See commit daab8c67d2 for reference.

Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
2008-01-08 09:55:41 -06:00
Kim Phillips
a1e1ac8492 mpc83xx: Remove CONFIG options related to OF that we dont use (on 837x)
continuation of commit 37395fa2b0d9d617f28d44ca11592260ef16105a to 837x

Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
2008-01-08 09:55:41 -06:00
Joakim Tjernlund
ccf21c311e Add support CONFIG_UEC_ETH3 in MPC83xx
Signed-off-by: Joakim Tjernlund <Joakim.Tjernlund@transmode.se>
2008-01-08 09:55:41 -06:00
Kumar Gala
e6af9932d3 Remove CONFIG options related to OF that we dont use
The MPC8360E MDS config defined:
	CONFIG_OF_HAS_BD_T
	CONFIG_OF_HAS_UBOOT_ENV

Which we don't use or ever needed.  This seems like copy-paste feature creep.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2008-01-08 09:55:41 -06:00
Kim Phillips
f602082b4b mpc83xx: supress compiler warning
mpc8360emds.c: In function ‘ft_board_setup’:
mpc8360emds.c:335: warning: assignment discards qualifiers from pointer target type
mpc8360emds.c:345: warning: assignment discards qualifiers from pointer target type

Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
2008-01-08 09:55:41 -06:00
Kim Phillips
c16e44fa83 mpc83xx: fix remaining fdt_find_node_by_path references
rename to fdt_path_offset

Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
2008-01-08 09:55:40 -06:00
Kim Phillips
921d4b19ad mpc83xx: fix CFG_ENV_ADDR and CFG_ENV_SECT_SIZE definitions for 837x
Fix the definitions of CFG_ENV_ADDR and CFG_ENV_SECT_SIZE for 837x.
This change guarantees that the environment will be located on the
first flash sector after the U-Boot image.

Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
2008-01-08 09:55:40 -06:00
Kim Phillips
24f868433b mpc83xx: mpc8360 rev.2.1 erratum 2: replace rgmii-id with rgmii-rxid
u-boot itself uses GMII mode on the 8360.  Fix up UCC phy-connection-type
properties in the device tree so the PHY gets configured for internal delay on
RX only by the OS, as prescribed by mpc8360 rev. 2.1 pb mds erratum #2.

Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
2008-01-08 09:55:40 -06:00
Dave Liu
22b448dbfb mpc83xx: update the CREDITS and MAINTAINERS
update the CREDITS and MAINTAINERS.

Signed-off-by: Dave Liu <daveliu@freescale.com>
2008-01-08 09:55:40 -06:00
Dave Liu
b21add4b42 mpc83xx: add MAINTAINER and MAKEALL entries for the mpc837xemds
Add the MAINTAINER and MAKEALL entries for mpc837xemds

Signed-off-by: Dave Liu <daveliu@freescale.com>
2008-01-08 09:55:40 -06:00
Dave Liu
f8900ce909 mpc83xx: Add the MPC837xEMDS board readme
Add the README.mpc837xemds to /doc

Signed-off-by: Dave Liu <daveliu@freescale.com>
2008-01-08 09:55:40 -06:00
Dave Liu
19580e660c mpc83xx: Add the support of MPC837xEMDS board
The MPC837xEMDS board support:
* DDR2 400MHz hardcoded and SPD init
* Local bus NOR Flash
* I2C, UART, MII and RTC
* eTSEC RGMII
* PCI host

Signed-off-by: Dave Liu <daveliu@freescale.com>
2008-01-08 09:55:39 -06:00
Dave Liu
555da61702 mpc83xx: Add the support of MPC8315E SoC
The MPC8315E SoC including e300c3 core and new IP blocks,
such as TDM, PCI Express and SATA controller.

Signed-off-by: Dave Liu <daveliu@freescale.com>
2008-01-08 09:55:39 -06:00
Dave Liu
03051c3d35 mpc83xx: Add the support of MPC837x SoC
The MPC837x SoC including e300c4 core and new IP blocks,
such as SDHC, PCI Express and SATA controller.

Signed-off-by: Dave Liu <daveliu@freescale.com>
2008-01-08 09:55:39 -06:00
Anton Vorontsov
651d96f7e4 MPC8360E-MDS: configure and enable second UART
Despite user manual, BCSR9.7 is negated (high) on HRST, so
UART2 is disabled. Fix that and configure QE pins properly.

Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
2008-01-08 09:55:39 -06:00
Timur Tabi
b2893e1fcb 83xx: fix CFG_ENV_ADDR and CFG_ENV_SECT_SIZE definitions
Fix the definitions of CFG_ENV_ADDR and CFG_ENV_SECT_SIZE for all of the
currently-defined 83xx boards.  This change guarantees that the environment
will be located on the first flash sector after the U-Boot image.

Signed-off-by: Timur Tabi <timur@freescale.com>
Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
2008-01-08 09:55:39 -06:00
Wolfgang Denk
207f83f102 Merge branch 'master' of git://www.denx.de/git/u-boot-ppc4xx 2008-01-08 13:41:42 +01:00
Peter Pearse
4985ca5af3 Merge with git://www.denx.de/git/u-boot.git 2008-01-07 15:34:22 +00:00
Larry Johnson
e05329516a ppc4xx: Remove weak binding from common Denali data-eye search code
Now that there are no board-specific versions of
"denali_core_search_data_eye()", the weak binding on the common version
can be removed.

Signed-off-by: Larry Johnson <lrj@acm.org>
2008-01-05 10:14:56 +01:00
Stefan Roese
6399b23d60 Merge branch 'katmai-ddr-gda' 2008-01-05 10:13:40 +01:00
Stefan Roese
5ba576c016 ppc4xx: Remove unused CONFIG_ECC_ERROR_RESET from 44x_spd_ddr2.c
Signed-off-by: Stefan Roese <sr@denx.de>
2008-01-05 09:13:46 +01:00
Stefan Roese
845c6c95db ppc4xx: Update Katmai/44x_spd_ddr2.c code for optimal DDR2 setup
On Katmai the complete auto-calibration somehow doesn't seem to
produce the best results, meaning optimal values for RQFD/RFFD.
This was discovered by GDA using a high bandwidth scope,
analyzing the DDR2 signals. GDA provided a fixed value for RQFD,
so now on Katmai "only" RFFD is auto-calibrated.

This patch also adds RDCC calibration as mentioned on page 7 of
the AMCC PowerPC440SP/SPe DDR2 application note:
"DDR1/DDR2 Initialization Sequence and Dynamic Tuning"

Signed-off-by: Stefan Roese <sr@denx.de>
2008-01-05 09:12:41 +01:00
Matthias Fuchs
49db47b8ae ppc4xx: Remove sdram.h from PMC440 board
Signed-off-by: Matthias Fuchs <matthias.fuchs@esd-electronics.com>
2008-01-04 12:00:34 +01:00
Matthias Fuchs
34065a2ce0 ppc4xx: use common denali core defines and data eye search code for PMC440
Signed-off-by: Matthias Fuchs <matthias.fuchs@esd-electronics.com>
2008-01-04 12:00:27 +01:00
Matthias Fuchs
9ac6b6f3d3 ppc4xx: More cleanup for esd's LCD code
Signed-off-by: Matthias Fuchs <matthias.fuchs@esd-electronics.com>
2008-01-04 12:00:15 +01:00
Stefan Roese
fe9c26b330 ppc4xx: Fix Sequoia NAND booting target
The Sequoia NAND booting target now uses the recently extracted
cpu/ppc4xx/denali_data_eye.c file too.

Signed-off-by: Stefan Roese <sr@denx.de>
2008-01-04 12:00:01 +01:00
Lawrence R. Johnson
0ddd969aec ppc4xx: Use CFG_4xx_GPIO_TABLE to configure Korat board
Signed-off-by: Larry Johnson <lrj@acm.org>
2008-01-04 11:39:13 +01:00
Lawrence R. Johnson
b05e8bf58b ppc4xx: Use CFG_4xx_GPIO_TABLE to configure Sequoia board
Note: this patch changes the configuration of some GPIO registers:

   Register      Old Value   New Value
---------------  ----------  ----------
DCR GPIO0_TCR    0x0000000F  0x0000F0CF
DCR GPIO0_TSRH   0x55005000  0x00000000
DCR GPIO1_TCR    0xC2000000  0xE2000000
DCR GPIO1_TSRL   0x0C000000  0x00200000
DCR GPIO1_ISR2L  0x00050000  0x00110000

Signed-off-by: Larry Johnson <lrj@acm.org>
2008-01-04 11:39:05 +01:00
Lawrence R. Johnson
5ab884b254 ppc4xx: Add functionality to GPIO support
This patch makes two additions to GPIO support:

First, it adds function gpio_read_in_bit() to read the a bit from the
GPIO Input Register (GPIOx_IR) in the same way that function
gpio_read_out_bit() reads a bit from the GPIO Output Register
(GPIOx_OR).

Second, it modifies function gpio_set_chip_configuration() to provide
an additional option for configuring the GPIO from the
"CFG_4xx_GPIO_TABLE".

According to the 440EPx User's Manual, when an alternate output is used,
the three-state control is configured in one of two ways, depending on
the particular output.  The first option is to select the corresponding
alternate three-state control in the GPIOx_TRSH/L registers.  The second
option is to select the GPIO Three-State Control Register (GPIOx_TCR) in
the GPIOx_TRSH/L registers, and set the corresponding bit in the
GPIOx_TCR register to enable the output.  For example, the Manual
specifies configuring the GPIO00 Alternate 1 Signal (PreAddr07) to use
the alternate three-state control (first option), and specifies
configuring the GPIO32 Alternate 1 Signal (USB2OM0) with the output
enabled in the GPIOx_TCR register (second option).

Currently, gpio_set_chip_configuration() configures all alternate signal
outputs to use the first option.  This patch allow the second option to
be selected by setting the "out_val" element in the table entry to
"GPIO_OUT_1".  The first option is used when the "out_val" element is
set to "GPIO_OUT_0".  Because "out_val" is not currently used when an
alternate signal is selected, and because all current GPIO tables set
"out_val" to "GPIO_OUT_0" for all alternate signals, this patch should
not change any existing configurations.

Signed-off-by: Larry Johnson <lrj@acm.org>
2008-01-04 11:38:45 +01:00
Larry Johnson
196404cdc1 PPC4xx: Remove sdram.h from board/lwmon5
These definitions are now in "include/ppc440.h".

Signed-off-by: Larry Johnson <lrj@acm.org>
2008-01-04 11:37:48 +01:00
Larry Johnson
ef16fccf96 PPC4xx: Use common code for LWMON5 board SDRAM support
This patch also modifies the functionality of the code so that the data-eye
search is now done with with the cache disabled.

Signed-off-by: Larry Johnson <lrj@acm.org>
2008-01-04 11:37:43 +01:00
Larry Johnson
62cc3951ab PPC4xx: Remove sdram.h from board/amcc/sequoia
These definitions are now in "include/ppc440.h".

Signed-off-by: Larry Johnson <lrj@acm.org>
2008-01-04 11:37:38 +01:00
Larry Johnson
ce3902e176 PPC4xx: Use common code for Sequoia board SDRAM support
Signed-off-by: Larry Johnson <lrj@acm.org>
2008-01-04 11:37:33 +01:00
Matthias Fuchs
8b0c5c1276 net: Add CONFIG_NET_DO_NOT_TRY_ANOTHER option
When CONFIG_NET_DO_NOT_TRY_ANOTHER is defined U-Boot's
networking stack does not automatically switch to
another interface. This patch does not touch the default
behavior.

Signed-off-by: Matthias Fuchs <matthias.fuchs@esd-electronics.com>
Signed-off-by: Ben Warren <biggerbadderben@gmail.com>
2008-01-03 22:54:00 -05:00
Upakul Barkakaty
505be87a65 NET: Proper return code handling in eth_init() function in file eth.c
This patch modifies the return code handling in the eth_init()
function, to be compatible with the handling of the return codes in
the other network stack files. It now returns a 0 on Success and -1 on
error.

Signed-off-by: Upakul Barkakaty <upakul.barkakaty@conexant.com>
Signed-off-by: Ben Warren <biggerbadderben@gmail.com>
2008-01-03 22:39:51 -05:00
Shinya Kuribayashi
5ca2d0953e net/eth.c: Fix env_enetaddr signed overflow
Assigning the output of simple_strtoul(CB:A9:87:65:43:21) to `char', we are
warned as below:

  U-Boot 1.2.0 (Aug 30 2007 - 08:27:37)

  DRAM:  256 MB
  Flash: 32 MB
  In:    serial
  Out:   serial
  Err:   serial
  Net:   NEC-Candy
  Warning: NEC-Candy MAC addresses don't match:
  Address in SROM is         00:00:4C:80:92:A2
  Address in environment is  FFFFFFCB:FFFFFFA9:FFFFFF87:65:43:21

This patch changes env_enetaddr type from `char' to `unsigned char'.

Cc: Masaki Ishikawa <ishikawa-masaki@cnt.mxe.nes.nec.co.jp>
Signed-off-by: Shinya Kuribayashi <shinya.kuribayashi@necel.com>
Signed-off-by: Ben Warren <biggerbadderben@gmail.com>
2008-01-03 22:37:13 -05:00
Rafal Jaworowski
f85b607105 Introduce new eth_receive routine
The purpose of this routine is receiving a single network frame, outside of
U-Boot's NetLoop(). Exporting it to standalone programs that run on top of
U-Boot will let them utilise networking facilities. For sending a raw frame
the already existing eth_send() can be used.

The direct consumer of this routine is the newly introduced API layer for
external applications (enabled with CONFIG_API).

Signed-off-by: Rafal Jaworowski <raj@semihalf.com>
Signed-off-by: Piotr Kruszynski <ppk@semihalf.com>
Signed-off-by: Ben Warren <biggerbadderben@gmail.com>
2008-01-03 21:36:50 -05:00
Jon Loeliger
5c740711f0 8610: Move include of config.h earlier.
Include config.h earlier in the set of #includes
so as to avoid a incidental and duplicate definition
of CFG_CACHELINE_SIZE.

Signed-off-by: Jon Loeliger
2008-01-03 10:41:04 -06:00
Jon Loeliger
61d3421bde Don't slam #undef DEBUG in the 8641HPCN config file.
Doing so prevents it from being individually set
and useful in other files.

Signed-off-by: Jon Loeliger <jdl@freescale.com>
2008-01-03 10:27:23 -06:00
Jon Loeliger
ea9f7395ec Convert MPC8641HPCN to use libfdt.
Assumes the presence of the aliases node in the DTS to
locate the ethernet, pci and serial nodes for fixups.

Use consistent fdtaddr and fdtfile in environment variables.

Signed-off-by: Jon Loeliger <jdl@freescale.com>
2008-01-03 10:27:03 -06:00
Jon Loeliger
2c3536425d Merge commit 'wd/master' 2008-01-03 09:46:55 -06:00
Stefan Roese
ce37422d00 cfi_flash: Fix bug in flash_isset() to use correct 32bit function
This bug was detected on the LWMON5 target which has 2 Intel 16bit wide
flash chips connected to a 32bit wide port.

Signed-off-by: Stefan Roese <sr@denx.de>
2008-01-02 16:07:01 +01:00
Wolfgang Denk
1182e9f8e3 Fix compile problem introduced by "cleanup" commit 3dfd708c
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-01-02 15:58:44 +01:00
Wolfgang Denk
1aaab9bfae Make scripts and Makefiles POSIX compliant
The bash builtin versions of the "test" (resp. "[") command allow
using "==" for string comparisons, but POSIX compatible implemen-
tations (like /usr/bin/test) insist on using "=" only. On such systems
you will see:

	$ /usr/bin/test a == a && echo OK
	/usr/bin/test: ==: binary operator expected

This patch fixes Makefiles and scripts to use POSIX style.

Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-01-02 15:54:45 +01:00
Stefan Roese
47cc23cbe9 cfi_flash: Fix bug in flash_isset() to use correct 32bit function
This bug was detected on the LWMON5 target which has 2 Intel 16bit wide
flash chips connected to a 32bit wide port.

Signed-off-by: Stefan Roese <sr@denx.de>
2008-01-02 14:05:37 +01:00
Wolfgang Denk
8f8b52ea5b Merge branch 'master' of /home/wd/git/u-boot/custodians 2008-01-02 12:39:04 +01:00
Wolfgang Denk
3dfd708cc1 Minor coding style cleanup.
Signed-off-by: Wolfgang Denk <wd@denx.de>
2008-01-02 12:38:43 +01:00
Wolfgang Denk
d2995fe392 Merge branch 'master' of git://www.denx.de/git/u-boot-cfi-flash 2008-01-02 11:30:58 +01:00
Stefan Roese
feaa43f3a8 Merge branch 'for-1.3.2-ver2'
Conflicts:

	cpu/ppc4xx/fdt.c
	include/configs/kilauea.h
	include/configs/sequoia.h

Signed-off-by: Stefan Roese <sr@denx.de>
2007-12-29 09:23:11 +01:00
Stefan Roese
e174ac34ad ppc4xx: Coding style cleanup
Signed-off-by: Stefan Roese <sr@denx.de>
2007-12-28 17:29:56 +01:00
Matthias Fuchs
8ba132cab1 ppc4xx: Complete PMC440 board support
This patch brings the PMC440 board configuration file.
Finally it enables the PMC440 board support.

Signed-off-by: Matthias Fuchs <matthias.fuchs@esd-electronics.com>
2007-12-28 17:22:20 +01:00
Matthias Fuchs
407843a582 ppc4xx: Add FPGA support and BSP commands for PMC440 boards
This patch adds some BSP commands and FPGA booting support
for esd's PMC440 boards.

Signed-off-by: Matthias Fuchs <matthias.fuchs@esd-electronics.com>
2007-12-28 17:22:14 +01:00
Matthias Fuchs
72c5d52aed ppc4xx: Add initial esd PMC440 board files
This patch adds the first files for the new esd PMC440 boards.
The next two patches will complete the PMC440 board support.

Signed-off-by: Matthias Fuchs <matthias.fuchs@esd-electronics.com>
2007-12-28 17:22:09 +01:00
Matthias Fuchs
f6e0f1f618 ppc4xx: Add EEPROM write protection for PLU405 boards + misc. updates
- add EEPROM write protection for esd PLU405 boards.
- initialize NAND GPIOs
- use correct io accessors
- cleanup

Signed-off-by: Matthias Fuchs <matthias.fuchs@esd-electronics.com>
2007-12-28 17:21:45 +01:00
Matthias Fuchs
77660c4b59 ppc4xx: use correct io accessors for esd's LCD code
This patch fixes esd's LCD dectection code to work correctly with
newer gcc versions.

Signed-off-by: Matthias Fuchs <matthias.fuchs@esd-electronics.com>
2007-12-28 17:21:38 +01:00
Matthias Fuchs
b56bd0fcfc ppc4xx: Maintenance patch for VOH405 boards
- add EEPROM write protection
- initialize NAND GPIOs
- use correct io accessors
- slow down I2C clock to 100kHz
- enable ext. I2C bus
- cleanup

Signed-off-by: Matthias Fuchs <matthias.fuchs@esd-electronics.com>
2007-12-28 17:20:12 +01:00
Stefan Roese
c05569066d ppc4xx: Enable 405EP PCI arbiter per default on all boards
In an attmemt to clean up the 4xx start.S file, I removed the enabling
of the internal 405EP PCI arbiter. This is needed for multiple other
405EP platforms, like most of the esd 405EP. Now the internal PCI
arbiter is enabled again per default as it has been before.

Signed-off-by: Stefan Roese <sr@denx.de>
Acked-by: Matthias Fuchs <matthias.fuchs@esd-electronics.com>
2007-12-28 16:39:15 +01:00
Stefan Roese
bec9264616 ppc4xx: Fix bug in cpu_init.c (405EP instead of 450EP)
Signed-off-by: Stefan Roese <sr@denx.de>
Acked-by: Matthias Fuchs <matthias.fuchs@esd-electronics.com>
2007-12-28 16:39:11 +01:00
Stefan Roese
fb83a65c60 ppc4xx: Fix compilation problem of kilauea/haleakala nand booting target
Use correct link to nand_ecc now located in drivers/mtd/nand/ for the
platforms mentioned above.

Signed-off-by: Stefan Roese <sr@denx.de>
2007-12-28 06:06:04 +01:00
Stefan Roese
bb701283a8 Merge branch 'master' of /home/stefan/git/u-boot/u-boot into for-1.3.2-ver2 2007-12-27 19:37:26 +01:00
Matthias Fuchs
b568fd2557 Remove CPCI440 board
This board never left prototyping state and it
became a millstone round my neck. So remove it.

Signed-off-by: Matthias Fuchs <matthias.fuchs@esd-electronics.com>
2007-12-27 19:35:37 +01:00
Larry Johnson
c591dffe0c Add support for Korat PPC440EPx board
These patches add support for the PPC440EPx-based "Korat" board to
U-Boot.  They are based primarily on support for the Sequoia board.

Signed-off-by: Larry Johnson <lrj@acm.org>
2007-12-27 19:35:37 +01:00
Larry Johnson
87dc096829 Add configuration file for Korat board
This patch supplies the configuration file for the Korat PPC440EPx-
processor board.

Signed-off-by: Larry Johnson <lrj@acm.org>
2007-12-27 19:35:36 +01:00
Larry Johnson
8eb52d5d98 Add denali_data_eye.o and denali_spd_ddr2.o to PPC4xx Makefile
Signed-off-by: Larry Johnson <lrj@acm.org>
2007-12-27 19:35:36 +01:00
Larry Johnson
aba19604d8 Add 440EPx DDR2 SPD DIMM support
This patch adds SPD DDR2 support for the 440EPx ("Denali") SDRAM
controller.  It should also work on the 440GRx.  It is based on the DDR2
SPD code for the 440EP/440EPx, but makes no provision for DDR1 support.

This code has been tested on prototype Korat boards with three Kingston
DIMMS: 512 MiB ECC (one rank), 512 MiB non-ECC (one rank) and 1 GiB ECC
(two ranks).  The Korat board has a single DIMM socket, but support has
been provided (though not tested) for boards with two DIMM sockets.

Signed-off-by: Larry Johnson <lrj@acm.org>
2007-12-27 19:35:36 +01:00
Larry Johnson
8a24a69630 Copy 440EPx/GRx SDRAM data-eye search to common directory
This patch creates a non-board-specific file for performing the SDRAM
data-eye search.  It also adds ECC error checking to the test of valid
data on readback when ECC is enabled.

Signed-off-by: Larry Johnson <lrj@acm.org>
2007-12-27 19:35:36 +01:00
Larry Johnson
c46f53333b Add definitions for 440EPx/GRx SDRAM controller to ppc440.h
This patch adds the Denali SDRAM controller definitions to "ppc440.h".
It also fixes two typos in the definitions, so the board-specific
"sdram.h" files containing these definitions are also fixed to avoid
compiler warnings.

Signed-off-by: Larry Johnson <lrj@acm.org>
2007-12-27 19:35:36 +01:00
Larry Johnson
c348578bf6 Add Ethernet 1000BASE-X support for PPC4xx
This patch adds a new switch: "CONFIG_PHY_DYNAMIC_ANEG".  When this symbol
is defined, the PHY will advertise it's capabilities for autonegotiation
based on the capabilities shown in the PHY's status registers, including
1000BASE-X.  When "CONFIG_PHY_DYNAMIC_ANEG" is not defined, the PHY will
advertise hard-coded capabilities, as before.

Signed-off-by: Larry Johnson <lrj@acm.org>
2007-12-27 19:35:36 +01:00
Larry Johnson
9e2c347151 Add driver for National Semiconductor LM73 temperature sensor
This driver is based on the driver for the LM75.

Signed-off-by: Larry Johnson <lrj@acm.org>
2007-12-27 19:35:35 +01:00
Larry Johnson
1261827868 Add driver for STMicroelectronics M41T60 RTC
This driver is based on the driver for the M41T11.  In the intended
application, the RTC will be powered by a large capacitor, rather than a
battery.  The driver therefore checks to see whether the RTC has lost
power.  The chip's OUT bit is normally reset from its power-up state.  If
the OUT bit is read as set, or if the date and time are not valid, then the
RTC is assumed to have lost power, and its date and time are reset to
1900-01-01 00:00:00.

Support for adjusting the speed of the clock to improve accuracy is
provided through an environment variable.

Signed-off-by: Larry Johnson <lrj@acm.org>
2007-12-27 19:35:35 +01:00
Larry Johnson
d3471173e1 Use out_be32() and friends to access memory-mapped registers in sequoia.c
Signed-off-by: Larry Johnson <lrj@acm.org>
2007-12-27 19:35:35 +01:00
Larry Johnson
c68f59fe3e Use definitions from "asm-ppc/mmu.h" in init.S for Sequoia
Signed-off-by: Larry Johnson <lrj@acm.org>
2007-12-27 19:35:35 +01:00
Larry Johnson
0d9cdeac1d Cosmetic changes to ECC POST for AMCC Denali core
Signed-off-by: Larry Johnson <lrj@acm.org>
2007-12-27 19:35:35 +01:00
Stefan Roese
2e583d6c81 ppc4xx: Fix compilation problem in 405 cache POST test
Signed-off-by: Stefan Roese <sr@denx.de>
2007-12-27 19:35:35 +01:00
Stefan Roese
42d55ea0bd ppc4xx: Move virtual address of POST cache test to bigger address
On Sequoia & LWMON5 the virtual address of the POST cache test is now
moved to a bigger address. This enables usage of more memory on those
boards.

Signed-off-by: Stefan Roese <sr@denx.de>
2007-12-27 19:35:35 +01:00
Stefan Roese
d91722102c ppc4xx: Fix problem in 44x cache POST routine
As repoted by Larry Johnson, running "diag run cache" caused a crash
in U-Boot. This problem was introduced by a patch that removed the
TLB entry for the cache test after the test has completed. Since this
TLB was only setup once, a 2nd attempt to run this cache test
failed with a crash. Now this TLB entry is created every time the
routine is called.

Signed-off-by: Stefan Roese <sr@denx.de>
2007-12-27 19:35:34 +01:00
Stefan Roese
b0265b576b ppc4xx: Update Makalu fdt support
Signed-off-by: Stefan Roese <sr@denx.de>
2007-12-27 19:35:34 +01:00
Stefan Roese
bf8324e4a5 ppc4xx: Add fdt support to AMCC Katmai eval board
Signed-off-by: Stefan Roese <sr@denx.de>
2007-12-27 19:35:34 +01:00
Stefan Roese
328a340392 ppc4xx: fdt: Cleanup setup of cpu node setup
Now the cpu node setup ("timebase-frequency" and "clock-frequency") is
without using the absolute path to the cpu node. This makes it possible
to use this U-Boot version with both versions of cpu-node naming
"cpu@0" and the former "PowerPC,440EPx@0".

Signed-off-by: Stefan Roese <sr@denx.de>
2007-12-27 19:35:34 +01:00
Stefan Roese
7812bc4a2e ppc4xx: Fix lwmon5 compilation problem
Now that the 440EPx ECC test is not board specific anymore
remove this Makefile.

Signed-off-by: Stefan Roese <sr@denx.de>
2007-12-27 19:35:34 +01:00
Anatolij Gustschin
42ed33ffe1 Fix ppc4xx clear_bss() code
ppc4xx clear_bss() fails if BSS segment size is not
divisible by 4 without remainder. This patch provides
fix for this problem.

Signed-off-by: Anatolij Gustschin <agust@denx.de>
2007-12-27 19:35:34 +01:00
Niklaus Giger
85dc2a7f82 PPC4xx: Minimal changes to add vxWorks support
Signed-off-by: Niklaus Giger <niklaus.giger@netstal.com>
2007-12-27 19:35:34 +01:00
Markus Klotzbücher
052440b022 ppc4xx: Add CONFIG_BOOTP_SUBNETMASK to Sequoia board config
When using dhcp/bootp the "netmask" environment variable is not
set because CONFIG_BOOTP_SUBNETMASK is not defined. But usually this is
desireable, so the following patch adds this this option to the board
config.

Signed-off-by: Markus Klotzbuecher <mk@denx.de>
Signed-off-by: Stefan Roese <sr@denx.de>
2007-12-27 19:35:33 +01:00
Larry Johnson
a724a9b40c Fix/enhance ECC POST for 440EPx/GRx
This patch allows the ECC POST to be used for different boards with the
PPC440 Denali SDRAM controller.  Modifications include skipping the test
if ECC is not enabled (as for non-ECC DIMMs) and adding synchronization
to prevent timing errors.

Signed-off-by: Larry Johnson <lrj@acm.org>
2007-12-27 19:35:33 +01:00
Larry Johnson
454a6cf8d4 PPC4xx: Move/rename ECC POST for 440EPx/GRx
Signed-off-by: Larry Johnson <lrj@acm.org>
2007-12-27 19:35:33 +01:00
Matthias Fuchs
c29d2d3680 ppc4xx: use correct io accessors for 4xx ethernet POST
Signed-off-by: Matthias Fuchs <matthias.fuchs@esd-electronics.com>
2007-12-27 19:35:33 +01:00
Matthias Fuchs
ba79fde58a ppc4xx: fix flush + invalidate_dcache_range arguments
flush + invalidate_dcache_range() expect the start and stop+1 address.
So the stop address is the first address behind (!) the range.

Signed-off-by: Matthias Fuchs <matthias.fuchs@esd-electronics.com>
2007-12-27 19:35:33 +01:00
Stefan Roese
871e6ce188 ppc4xx: fdt: use fdt_fixup_ethernet()
By using aliases in the dts file, the ethernet node fixup is
much easier with the recently added functions.

Please note that the dts file needs the aliases for this to work.

Signed-off-by: Stefan Roese <sr@denx.de>
2007-12-27 19:35:33 +01:00
Stefan Roese
136288847e ppc4xx: Bring 4xx fdt support up-to-date
This patch update the 4xx fdt support. It enabled fdt booting
on the AMCC Kilauea and Sequoia for now. More can follow later
quite easily.

Signed-off-by: Stefan Roese <sr@denx.de>
2007-12-27 19:35:32 +01:00
Stefan Roese
0dc80e2759 cfi_flash: Add missing check for erased dest to flash_write_cfibuffer()
The check for an sufficiently erased destination was missing in the
buffered write function of the cfi flash driver (when
CFG_FLASH_USE_BUFFER_WRITE is defined). This patch adds this check to that
writing to such a region will fail with the currect error message.

Signed-off-by: Stefan Roese <sr@denx.de>
2007-12-27 07:50:54 +01:00
Wolfgang Denk
0dcfe3a225 Merge branch 'master' of /home/wd/git/u-boot/custodians 2007-12-27 02:01:15 +01:00
Martin Krause
33ed73bc0e Some configuration updates for the TQM5200 based TB5200 board:
- enable command line history
- increase malloc space (because of bigger flash sectors)

Signed-off-by: Martin Krause <martin.krause@tqs.de>
2007-12-27 02:00:56 +01:00
Martin Krause
e318d9e902 TQM8xx: use the CFI flash driver on all TQM8xx boards
Signed-off-by: Martin Krause <martin.krause@tqs.de>
2007-12-27 02:00:10 +01:00
Martin Krause
11d9eec479 TQM885D: adjust for doubled flash sector size + some minor fixes
Signed-off-by: Martin Krause <martin.krause@tqs.de>
2007-12-27 02:00:00 +01:00
Jens Gehrlein
22d1a56cbf TQM885D: Exchanged SDRAM timing by a more relaxed timing.
CAS-Latency=2, Write Recovery Time tWR=2
The max. supported bus frequency is 66 MHz. Therefore, changed
threshold to switch from 1:1 mode to 2:1 from 80 MHz to 66 MHz.

Signed-off-by: Martin Krause <martin.krause@tqs.de>
2007-12-27 01:59:50 +01:00
Martin Krause
b988b8cd44 TQM885D: use calculated cpuclk instead of measuring it
On the TQM885D the measurement of cpuclk with the PIT reference
timer ist not necessary. Since all module variants use the same
external 10 MHz oscillator, the cpuclk only depends on the PLL
configuration - which is readable by software.

Signed-off-by: Martin Krause <martin.krause@tqs.de>
2007-12-27 01:59:42 +01:00
Jens Gehrlein
492c704986 TQM885D: fix SDRAM refresh
At 133 MHz the current SDRAM refresh rate is too fast
(measured 4 * 1.17 us).
CFG_MAMR_PTA changes from 39 to 128. This result
in a refresh rate of 4 * 7.8 us at the default clock
66 MHz. At 133 MHz the value will be then 4 * 3.8 us.
This is a compromise until a new method is found to
adjust the refresh rate.

Signed-off-by: Martin Krause <martin.krause@tqs.de>
2007-12-27 01:59:33 +01:00
Jens Gehrlein
dabad4b9bc TQM860M: Support for 10col SDRAMs, max. 128 MiB
Signed-off-by: Martin Krause <martin.krause@tqs.de>
2007-12-27 01:59:17 +01:00
Wolfgang Denk
61fb15c516 Fix coding style issues; update CHANGELOG.
Signed-off-by: Wolfgang Denk <wd@denx.de>
2007-12-27 01:52:50 +01:00
Wolfgang Denk
6e1bbe6e3e Merge branch 'master' of /home/wd/git/u-boot/custodians 2007-12-27 01:13:05 +01:00
Wolfgang Denk
81b38be863 Merge branch 'master' of git://www.denx.de/git/u-boot-sh
Conflicts:

	MAINTAINERS

Signed-off-by: Wolfgang Denk <wd@denx.de>
2007-12-27 01:12:56 +01:00
Wolfgang Denk
58bbc77eb0 Merge branch 'master' of /home/wd/git/u-boot/custodians 2007-12-27 00:46:17 +01:00
Wolfgang Denk
f77ac3d657 Merge branch 'master' of git://www.denx.de/git/u-boot-avr32 2007-12-27 00:46:08 +01:00
Wolfgang Denk
3f523edb14 Merge branch 'master' of git://www.denx.de/git/u-boot-mpc85xx 2007-12-27 00:35:03 +01:00
Wolfgang Denk
bd878eb024 Merge branch 'testing' of git://www.denx.de/git/u-boot-fdt 2007-12-27 00:22:24 +01:00
Haavard Skinnemoen
467bcee11f cfi_flash: Add manufacturer-specific fixups
Run fixups based on the JEDEC manufacturer ID independent of the
command set ID.

This changes current behaviour: Previously, geometry reversal for AMD
chips were done based on the command set ID, while they are now done
based on the JEDEC manufacturer and device ID.

Also add fixup for top-boot Atmel chips. A fixup is needed for
AT49BV6416(T) too, but since u-boot currently only reads the low byte
of the device ID, there's no way to tell it apart from AT49BV642D,
which should not have this fixup. Since AT49BV642D support is
necessary to get ATNGW100 board support into mainline, I've commented
out the fixup for now.

Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
2007-12-17 15:48:38 +01:00
Haavard Skinnemoen
0ddf06ddf6 cfi_flash: Add cmdset-specific init functions
Move things like reading JEDEC IDs and fixing up geometry reversal
into separate functions. The geometry reversal fixup is now performed
by altering the qry structure directly, which makes the sector init
code slightly cleaner.

Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
2007-12-17 15:48:31 +01:00
Haavard Skinnemoen
e23741f4a6 cfi_flash: Read whole QRY structure in one go
Read out the whole CFI Standard Query structure after successful cfi
identification. This allows subsequent code to access this information
directly without having to go through flash_read_uchar() and friends.

Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
2007-12-17 15:48:25 +01:00
Haavard Skinnemoen
df9c25ea04 AVR32: Fix logic inversion in disable_interrupts()
disable_interrupts() should return nonzero if interrupts were
_enabled_ before, not disabled.

Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
2007-12-17 11:02:44 +01:00
Haavard Skinnemoen
acac475212 AVR32: Enable interrupts at bootup
The timer code depends on the timer interrupt to keep track of the
upper 32 bits of the cycle counter. This obviously doesn't work when
interrupts are disabled the whole time.

Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
2007-12-17 10:43:16 +01:00
Haavard Skinnemoen
9570bcd87f AVR32: Fix wrong pin setup for USART3
As reported by Gerhard Berghofer:

in "gpio_enable_usart3" the correct pins for USART 3 are PB17 and PB18
instead of PB18 and PB19.

which is obviously correct. There's currently no code that uses
USART3, but custom boards may run into problems.

Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
2007-12-17 10:35:02 +01:00
Haavard Skinnemoen
09ea0de03d README: Remove ATSTK1000 daughterboard list
As noted by Kim Phillips, these lists tend to become out of date.

Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
2007-12-17 10:35:02 +01:00
Haavard Skinnemoen
c81cbbad21 Add ATSTK100[234] to MAINTAINERS
Add all the ATSTK1000 daughterboards to MAINTAINERS along with their
"mother". Also update the entry for ATSTK1000 to be not only about the
AP7000 CPU; it's intended to handle all CPUs in the AT32AP family.

Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
2007-12-17 10:35:02 +01:00
Haavard Skinnemoen
64ff2357b1 AVR32: Add support for the ATSTK1004 board
ATSTK1004 is a daughterboard for ATSTK1000 with the AT32AP7002 CPU,
which is a derivative of AT32AP7000.

Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
2007-12-17 10:35:01 +01:00
Haavard Skinnemoen
667568db15 AVR32: Add support for the ATSTK1003 board
ATSTK1003 is a daughterboard for ATSTK1000 with the AT32AP7001 CPU,
which is a derivative of AT32AP7000.

Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
2007-12-17 10:34:54 +01:00
Haavard Skinnemoen
5fee84a794 AVR32: Make some AT32AP700x peripherals optional
Add a chip-features file providing definitions of the form

AT32AP700x_CHIP_HAS_<peripheral>

to indicate the availability of the given peripheral on the currently
selected chip.

Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
2007-12-17 10:34:12 +01:00
Haavard Skinnemoen
36f28f8a96 AVR32: Rename at32ap7000 -> at32ap700x
The SoC-specific code for all the AT32AP700x CPUs is practically
identical; the only difference is that some chips have less features
than others. By doing this rename, we can add support for the AP7000
derivatives simply by making some features conditional.

Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
2007-12-17 10:34:12 +01:00
Haavard Skinnemoen
4d5fa99c73 atmel_mci: Show SR when block read fails
Show controller status as well as card status when an error occurs
during block read.

Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
2007-12-17 10:34:11 +01:00
Stefan Roese
8697e6a19b ppc4xx: Bring 4xx fdt support up-to-date
This patch update the 4xx fdt support. It enabled fdt booting
on the AMCC Kilauea and Sequoia for now. More can follow later
quite easily.

Signed-off-by: Stefan Roese <sr@denx.de>
2007-12-13 14:52:53 +01:00
Stefan Roese
a449c500b1 Merge commit 'u-boot-fdt/testing' 2007-12-13 14:02:42 +01:00
Haavard Skinnemoen
12d30aa797 cfi_flash: Use map_physmem() and unmap_physmem()
Use map_physmem() and unmap_physmem() to convert from physical to
virtual addresses. This gives the arch a chance to provide an uncached
mapping for flash accesses.

Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
2007-12-13 13:15:22 +01:00
Haavard Skinnemoen
4d7d6936eb Introduce map_physmem() and unmap_physmem()
map_physmem() returns a virtual address which can be used to access a
given physical address without involving the cache. unmap_physmem()
should be called when the virtual address returned by map_physmem() is
no longer needed.

This patch adds a stub implementation which simply returns the
physical address cast to a uchar * for all architectures except AVR32,
which converts the physical address to an uncached virtual mapping.
unmap_physmem() is a no-op on all architectures, but if any
architecture needs to do such mappings through the TLB, this is the
hook where those TLB entries can be invalidated.

Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
2007-12-13 13:15:16 +01:00
Haavard Skinnemoen
cdbaefb5f5 cfi_flash: Introduce read and write accessors
Introduce flash_read{8,16,32,64) and flash_write{8,16,32,64} and use
them to access the flash memory. This makes it clearer when the flash
is actually being accessed; merely dereferencing a volatile pointer
looks just like any other kind of access.

Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
2007-12-13 13:15:11 +01:00
Haavard Skinnemoen
812711ce6b Implement __raw_{read,write}[bwl] on all architectures
This adds implementations of __raw_read[bwl] and __raw_write[bwl] to
m68k, ppc, nios and nios2. The m68k and ppc implementations were taken
from Linux.

Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
2007-12-13 13:15:04 +01:00
Haavard Skinnemoen
be60a9021c cfi_flash: Reorder functions and eliminate extra prototypes
Reorder the functions in cfi_flash.c so that each function only uses
functions that have been defined before it. This allows the static
prototype declarations near the top to be eliminated and might allow
gcc to do a better job inlining functions.

Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
2007-12-13 13:14:55 +01:00
Haavard Skinnemoen
3055793bcb cfi_flash: Make some needlessly global functions static
Make functions not declared in any header file static.

Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
2007-12-13 13:12:46 +01:00
Haavard Skinnemoen
7e5b9b4715 cfi_flash: Break long lines
This patch tries to keep all lines in the cfi_flash driver below 80
columns. There are a few lines left which don't fit this requirement
because I couldn't find any trivial way to break them (i.e. it would
take some restructuring, which I intend to do in a later patch.)

Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
2007-12-13 13:11:45 +01:00
Bartlomiej Sieka
42026c9cb3 CFI: synchronize command offsets with Linux CFI driver
Fixes non-working CFI Flash on the Inka4x0 board.

Signed-off-by: Bartlomiej Sieka <tur@semihalf.com>
2007-12-13 12:00:37 +01:00
Kumar Gala
8ff3de61fc Handle MPC85xx PCIe reset errata (PCI-Ex 38)
On the MPC85xx boards that have PCIe enable the PCIe errata fix.
(MPC8544DS, MPC8548CDS, MPC8568MDS).

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2007-12-11 22:34:20 -06:00
Kumar Gala
82ac8c9714 Update Freescale MPC85xx ADS/CDS/MDS board config
* Enabled CONFIG_CMD_ELF

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2007-12-11 22:34:20 -06:00
Kumar Gala
d435793229 Handle Asynchronous DDR clock on 85xx
The MPC8572 introduces the concept of an asynchronous DDR clock with
regards to the platform clock.

Introduce get_ddr_freq() to report the DDR freq regardless of sync/async
mode.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2007-12-11 22:34:20 -06:00
Kumar Gala
22abb2d2ea Update Freescale MPC85xx ADS/CDS/MDS board config
* Removed some misc environment setup
* Enabled CONFIG_CMDLINE_EDITING

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2007-12-11 22:34:20 -06:00
Kumar Gala
415a613bab Move the MPC8541/MPC8555/MPC8548 CDS board under board/freescale.
Minor path corrections needed to ensure buildability.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2007-12-11 22:34:20 -06:00
Kumar Gala
c2d943ffbf Move the MPC8540 ADS board under board/freescale.
Minor path corrections needed to ensure buildability.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2007-12-11 22:34:20 -06:00
Kumar Gala
870ceac5b3 Move the MPC8560 ADS board under board/freescale.
Minor path corrections needed to ensure buildability.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2007-12-11 22:34:20 -06:00
Kumar Gala
acbca876fb Move the MPC8568 MDS board under board/freescale.
Minor path corrections needed to ensure buildability.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2007-12-11 22:34:20 -06:00
Kumar Gala
a853d56c59 Use standard LAWAR_TRGT_IF_* defines for LAW setup on 85xx
We already had defines for LAWAR_TRGT_IF_* that we should use
rather than creating new ones.  Also, added some missing defines for
PCIE targets.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2007-12-11 22:34:20 -06:00
Kumar Gala
04db400892 Stop using immap_t on 85xx
In the future the offsets to various blocks may not be in same location.
Move to using CFG_MPC85xx_*_ADDR as the base of the registers
instead of getting it via &immap.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2007-12-11 22:34:20 -06:00
Kumar Gala
2714223f8e Remove CONFIG_OF_FLAT_TREE related code from mpc85xx since we now use libfdt
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2007-12-11 22:34:20 -06:00
Kumar Gala
c480861bf0 Update MPC8568 MDS to use libfdt
Updated the MPC8568 MDS config to use libfdt and assume use of aliases for
ethernet, pci, and serial for the various fixups that are done.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2007-12-11 22:34:20 -06:00
Haiying Wang
1563f56e0c Add PCI Express support on MPC8568MDS
Signed-off-by: Haiying Wang <Haiying.Wang@freescale.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2007-12-11 22:34:19 -06:00
Kumar Gala
b90d254976 Update MPC85xx CDS to use libfdt
Updated the MPC85xx CDS config to use libfdt and assume use of aliases for
ethernet, pci, and serial for the various fixups that are done.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2007-12-11 22:34:19 -06:00
Kumar Gala
0fd5ec66b1 Update MPC8540 ADS to use libfdt
Updated the MPC8540 ADS config to use libfdt and assume use of aliases for
ethernet, pci, and serial for the various fixups that are done.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2007-12-11 22:34:19 -06:00
Kumar Gala
5ce715802f Update MPC8560 ADS to use libfdt
Updated the MPC8560 ADS config to use libfdt and assume use of aliases for
ethernet, pci, and serial for the various fixups that are done.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2007-12-11 22:34:19 -06:00
Kumar Gala
aafeefbdb8 Stop using immap_t for cpm offset on 85xx
In the future the offsets to various blocks may not be in same location.
Move to using CFG_MPC85xx_CPM_ADDR as the base of the CPM registers
instead of getting it via &immap->im_cpm.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2007-12-11 22:34:19 -06:00
Kumar Gala
f59b55a5b8 Stop using immap_t for guts offset on 85xx
In the future the offsets to various blocks may not be in same location.
Move to using CFG_MPC85xx_GUTS_ADDR as the base of the guts registers
instead of getting it via &immap->im_gur.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2007-12-11 22:34:19 -06:00
Kumar Gala
50c03c8cf4 Update MPC8544 DS config
* Removed HAS_ETH2/HAS_ETH3 - MPC8544 only has TSEC1/2
* Removed some misc environment setup
* Moved to using fdtfile & fdtaddr as fdt env var names
* Enabled CONFIG_CMDLINE_EDITING

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2007-12-11 22:34:19 -06:00
Kumar Gala
addce57e2e Update MPC8544DS to use libfdt
Updated the MPC8544DS config to use libfdt and assume use of aliases for
ethernet, pci, and serial for the various fixups that are done.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2007-12-11 22:34:19 -06:00
Kumar Gala
f852ce72f1 Add libfdt based ft_cpu_setup for mpc85xx
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2007-12-11 22:34:19 -06:00
Stefan Roese
3b9abdc448 ppc4xx: Correct GPIO offset in gpio_config()
Thanks to Gary Jennejohn for pointing this out.

Signed-off-by: Stefan Roese <sr@denx.de>
2007-12-11 13:38:19 +01:00
Stefan Roese
8809a2713b rtc: Fix merging problem
Signed-off-by: Stefan Roese <sr@denx.de>
2007-12-11 11:46:01 +01:00
Stefan Roese
9caeaadf50 Merge commit 'u-boot/master' into for-1.3.1
Conflicts:

	drivers/rtc/Makefile
2007-12-11 11:34:54 +01:00
Stefan Roese
7cfc12a7dc ppc4xx: 405EX: Correctly enable USB pins
This patch selects the USB data pins in the 405EX GPIO and MFC (multi
function control) registers. This is done for the AMCC Kilauea and
Makalu eval boards.

Signed-off-by: Stefan Roese <sr@denx.de>
2007-12-08 14:47:34 +01:00
Stefan Roese
9692c2734a CFI: Coding style cleanup
Signed-off-by: Stefan Roese <sr@denx.de>
2007-12-08 08:25:09 +01:00
Michael Schwingen
81b20ccc2d CFI: support JEDEC flash roms in CFI-flash framework
The following patch adds support for non-CFI flash ROMS, by hooking into the
CFI flash code and using most of its code, as recently discussed here in the
thread "Mixing CFI and non-CFI flashs".

Signed-off-by: Michael Schwingen <michael@schwingen.org>
Signed-off-by: Stefan Roese <sr@denx.de>
2007-12-08 08:16:50 +01:00
Gerald Van Baren
c01b17dd85 Conditionally compile fdt_fixup_ethernet()
Fix compiler warnings: On boards that don't have ethernets defined,
don't compile fdt_fixup_ethernet().
2007-12-07 20:51:25 -05:00
Kumar Gala
246d4ae6bc Convert boards that set memory node to use fdt_fixup_memory()
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2007-12-07 20:51:25 -05:00
Kumar Gala
151c8b09b3 Added fdt_fixup_stdout that uses aliases to set linux,stdout-path
We use a combination of the serialN alias and CONFIG_CONS_INDEX to
determine which serial alias we should set linux,stdout-path to.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2007-12-07 20:51:25 -05:00
Kumar Gala
3c9272813f Add common memory fixup function
Add the function fdt_fixup_memory() to fixup the /memory node of the fdt

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2007-12-07 20:51:25 -05:00
Kumar Gala
9c9109e7fc Conditionally compile fdt_support.c
Modify common/Makefile to conditionally compile fdt_support.c based
on CONFIG_OF_LIBFDT.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2007-12-07 20:51:25 -05:00
Kumar Gala
d88e7ba098 Fix build breakage due to libfdt import
The IDS8247 got lost in the update and need an API update
do to rename of functions in libfdt.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2007-12-07 20:51:24 -05:00
Gerald Van Baren
28f384b171 Add spaces around the = in the fdt print format.
Signed-off-by: Gerald Van Baren <vanbaren@cideas.com>
2007-12-07 20:51:24 -05:00
Jon Loeliger
f743931f9b Merge commit 'wd/master' 2007-12-06 11:27:32 -06:00
Nobuhiro Iwamatsu
29592ecba3 sh: Moved driver of the SuperH dependence
The composition of the directory in the drivers/ changed.
I moved SuperH serial driver and marubun PCMCIA driver.

Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
2007-12-07 01:25:38 +09:00
Nobuhiro Iwamatsu
749ae4c697 Merge git://www.denx.de/git/u-boot 2007-12-07 01:20:25 +09:00
Nobuhiro Iwamatsu
521dcd30b9 Merge git://www.denx.de/git/u-boot
Conflicts:

	drivers/Makefile
2007-12-07 01:20:16 +09:00
Stefan Roese
a27044b14a ppc4xx: Enable hardware-fix for PCI/DMA errata on AMCC 440SP/SPe boards
This patch enables the hardware-fix for the PCI/DMA errata's 19+22 by
setting the FIXD bit in the SDR0_MFR register. Here a description of the
symptoms:

Problem Description
------------------------------
If a DMA is performed between memory and PCI with the DMA 1 Controller
using prefetch, and as a result uses a special purpose buffer selected by
the PCIXn Bridge Options 1 Register (PCIXn_BRDGOPT1[RBP7] - bits 31-29),
the first part of the transfer sequence is performed twice. The
PPC440SPe PCI Controller requests more data than was needed such that in
the case of enforce memory protection, a host CPU  exception can occur.
No data is corrupted, because data transfer is stopped in the PCI
Controller. Prefetch enable is specified by setting DMA Configuration
Register (I2O0_DMAx_CFG[DXEPD] - bit 31) to 0.

Behavior that may be observed in a running system
---------------------------------------------------------------------------

1. DMA performance is decreased because of the double access on the PCI bus
interface.
2. If an illegal access to some address on the PCI bus is detected at the
system level, a machine check or similar system error may occur.

Workarounds Available
----------------------------------

1. Do not program prefetch. Note that a prefetch command cannot be programmed
without selecting a special purpose buffer.
2. To avoid crossing a physical boundary of the PCI slave device, add 512
bytes of address to the PCI address range.

This patch was originally provided by Pravin M. Bathija <pbathija@amcc.com>
from AMCC and slighly changed.

Signed-off-by: Pravin M. Bathija <pbathija@amcc.com>
Signed-off-by: Stefan Roese <sr@denx.de>
2007-12-06 05:58:43 +01:00
Stefan Roese
a90921f71d ppc4xx: Yosemite/Yellowstone: Add DTT AD7414 support
Signed-off-by: Stefan Roese <sr@denx.de>
2007-12-04 16:29:48 +01:00
Stefan Roese
e15e33433e ppc4xx: Kilauea: Add PCIe reset assertion upon power-up
This manual PCIe reset triggering solves the problem seen with the
Intel EPRO/1000 card, which was not detected (link not established)
upon power-up reset.

Signed-off-by: Stefan Roese <sr@denx.de>
2007-11-30 07:15:41 +01:00
Nobuhiro Iwamatsu
260eea5676 sh: Add SuperH boards maintainer to MAINTAINERS file
Add MS7750SE and MS7722SE's board maintainer to MAINTAINERS file.

Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
2007-11-29 01:21:54 +09:00
Nobuhiro Iwamatsu
aa9c4f1d22 sh: Add ms7750se support in MAKEALL
Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
2007-11-29 01:17:58 +09:00
Jean-Christophe PLAGNIOL-VILLARD
c714437342 sh: Add sh3 and sh4 support in MAKEALL
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
2007-11-29 01:17:53 +09:00
Nobuhiro Iwamatsu
130080874a sh: Add document for SuperH.
This document is a summary of information concerning SuperH of U-Boot.

Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
2007-11-29 01:17:48 +09:00
Nobuhiro Iwamatsu
33ecdc2f9d sh: Add marubun's pcmcia driver
Marubun pcmcia is a chip for PCMCIA used with SuperH.
Of course, this can be used even by other architectures.
When use this driver, came to be able to use CompactFlash
and Ethernet.

Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
2007-11-29 01:17:43 +09:00
Nobuhiro Iwamatsu
febd86b969 sh: Update SuperH SCIF driver
- Changed volatile unsigned to vu_.
- Changed Makefile for kconfig.

Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
2007-11-29 01:17:31 +09:00
Nobuhiro Iwamatsu
7fc792895b Merge git://www.denx.de/git/u-boot
Conflicts:

	drivers/Makefile
2007-11-29 00:56:37 +09:00
Jon Loeliger
83c5c9b71b Merge commit 'wd/master' 2007-11-27 11:15:26 -06:00
Stefan Roese
8be7609036 ppc4xx: Kilauea & Makalu: Fix ext IRQ pin multiplexing
After an error in the AMCC 405EX users manual now correctly configure
IRQ2 (Kilauea)/IRQ0 (Makalu) as alternate 2 signal for external IRQ
usage.

Signed-off-by: Stefan Roese <sr@denx.de>
2007-11-27 11:57:35 +01:00
Stefan Roese
63362cfc6b ppc4xx: Makalu: Change EBC setup for CS0 to enable 400MHz usage
As suggested by Senao, use a different EBC_PB0AP setup for 400MHz
operation.

Signed-off-by: Stefan Roese <sr@denx.de>
2007-11-26 15:06:14 +01:00
Stefan Roese
ca1ce22628 ppc4xx: Kilauea: Configure pin mux to use ext IRQ2 as interrupt
Signed-off-by: Stefan Roese <sr@denx.de>
2007-11-26 15:01:45 +01:00
Jon Loeliger
68b88999da 8610HPCD: Enable the 8610 Display Interface Unit
Signed-off-by: Jon Loeliger <jdl@freescale.com>
2007-11-20 15:02:26 -06:00
Jon Loeliger
74f89faa9d Move 8610 DIU interface structure definitions to header file.
These two structures are still needed during the
initialization and setup of the DIU hardware.
So move them to the fsl_diu_fb.h file for now.
Official "blah".

Noticed-by: York Sun <yorksun@freescale.com>
Signed-off-by: Jon Loeliger <jdl@freescale.com>
2007-11-20 15:00:53 -06:00
Jon Loeliger
890e9413c0 Merge commit 'remotes/wd/master' 2007-11-20 14:34:57 -06:00
Stefan Roese
653811a3c2 ppc4xx: Correct 405EX PCIe UTL register mapping
Map 4k mem space for UTL registers for each port.

Signed-off-by: Stefan Roese <sr@denx.de>
2007-11-18 14:44:44 +01:00
Stefan Roese
9ea61b5796 ppc4xx: Update AMCC Kilauea config file
- Use generic GPIO configuration framework (CFG_4xx_GPIO_TABLE)

Signed-off-by: Stefan Roese <sr@denx.de>
2007-11-17 14:52:29 +01:00
Stefan Roese
f31d38b9ee ppc4xx: Enable 405EX PCIe UTL register configuration
Till now the UTL registers on 405EX were not initialized but left with
their default values. This patch new initializes some of the UTL
registers on 405EX.

Signed-off-by: Stefan Roese <sr@denx.de>
2007-11-16 14:16:54 +01:00
Stefan Roese
ecdcbd4f8c ppc4xx: Update AMCC Makalu for board rev 1.1
This patch adds changes needed for Makalu rev 1.1:

- Enable 2nd DDR2 bank resulting in 256MByte of SDRAM
- Enable 2nd ethernet port EMAC1
- Use generic GPIO configuration framework (CFG_4xx_GPIO_TABLE)
- Reset PCIe ports via GPIO upon bootup

Signed-off-by: Stefan Roese <sr@denx.de>
2007-11-16 14:00:59 +01:00
Stefan Roese
c9672f81f1 ppc4xx: Small AMCC Kilauea cleanup
Remove not needed pci_target_init() function.

Signed-off-by: Stefan Roese <sr@denx.de>
2007-11-15 14:25:09 +01:00
Stefan Roese
aee747f19b ppc4xx: Enable 440 GPIO init table CFG_440_GPIO_TABLE for 405 platforms
- Rename CFG_440_GPIO_TABLE to CFG_4xx_GPIO_TABLE
- Cleanup of the 4xx GPIO functions
- Move some GPIO defines from the cpu headers ppc405.h/ppc440.h into gpio.h

Signed-off-by: Stefan Roese <sr@denx.de>
2007-11-15 14:23:55 +01:00
Stefan Roese
8ada0ebf38 ppc4xx: AMCC Taihu board config file cleanup
This patch makes the AMCC Taihu a little more compatible to the other
AMCC eval boards.

Signed-off-by: Stefan Roese <sr@denx.de>
2007-11-15 14:20:08 +01:00
Marian Balakowicz
5e71c51d74 [INKA4x0] NG hardware: flash support
Disabled and remove inka4x0 custom flash driver, use CFI flash
driver instead.

Signed-off-by: Marian Balakowicz <m8@semihalf.com>
2007-11-15 13:37:28 +01:00
Marian Balakowicz
5fb6d7191e [INKA4x0] NG hardware: SDRAM support
Add support for three new DDR chips that may  be present on a NG
INKA4x0 hardware: HYB25D512160BF-5, K4H511638C-7CB3, T46V32M16BN-6IT.

Cleanup board/inka4x0/mt48lc16m16a2-75.h file.

Signed-off-by: Marian Balakowicz <m8@semihalf.com>
2007-11-15 13:29:55 +01:00
Marian Balakowicz
f23cb34c36 [INKA4x0] NG hardware: platform code update
- Cleanup compile warnings.
- Add missing '\0' in default environment.
- Increase CFG_MONITOR_LEN to 256 KiB.
- Add required CFG_USE_PPCENV.

Signed-off-by: Marian Balakowicz <m8@semihalf.com>
2007-11-15 13:24:43 +01:00
Peter Pearse
2ae64f5135 Remove warnings re CONFIG_EXTRA_ENV_SETTINGS
Remove warnings re onenand_read() & write()
2007-11-15 08:58:00 +00:00
Peter Pearse
2db916e144 Correction patch 2007-11-15 08:45:13 +00:00
Peter Pearse
dd28e10d94 Merge with git://www.denx.de/git/u-boot.git 2007-11-15 08:43:40 +00:00
Roy Zang
1d8a49eca1 Enable ULi1575 Ethernet support in 8610HPCD config
Signed-off-by: Roy Zang <tie-fei.zang@freescale.com>
Acked-by: Jon Loeliger <jdl@freescale.com>
2007-11-13 12:47:16 -06:00
Stefan Roese
7d0a4066b5 ppc4xx: Fix 405EX PCIe UTLSET register setup
Signed-off-by: Stefan Roese <sr@denx.de>
2007-11-13 08:06:11 +01:00
Matthias Fuchs
2d14684341 ppc4xx: Use generic usb-ohci driver for sequoia board
This patch makes the sequoia board use the generic usb-ohci driver
instead of cpu/ppc4xx/usb_ohci.c.

Signed-off-by: Matthias Fuchs <matthias.fuchs@esd-electronics.com>
Signed-off-by: Stefan Roese <sr@denx.de>
2007-11-09 16:42:15 +01:00
Matthias Fuchs
9be659ac08 ppc4xx: Make USB working with CONFIG_4xx_DCACHE defined
This patch disables the 44x d-cache on 'usb start' and
reenables it on 'usb stop'. This should be seen as a
temporary fix until the generic usb-ohci driver can
life with d-cache enabled.

Signed-off-by: Matthias Fuchs <matthias.fuchs@esd-electronics.com>
Signed-off-by: Stefan Roese <sr@denx.de>
2007-11-09 16:42:15 +01:00
Matthias Fuchs
fbde2169d2 ppc4xx: Remove redundant code from 4xx network driver
This patch removes some redundant code and decrements the end
address of cache flush and invalidate by 1.

Signed-off-by: Matthias Fuchs <matthias.fuchs@esd-electronics.com>
Signed-off-by: Stefan Roese <sr@denx.de>
2007-11-09 16:42:15 +01:00
Peter Pearse
5ca9881aad Add apollon board support
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
2007-11-09 15:24:26 +00:00
Stefan Roese
b53313dbfc ppc4xx: Remove In:/Out:/Err: boot output for AMCC Kilauea
Signed-off-by: Stefan Roese <sr@denx.de>
2007-11-09 12:19:58 +01:00
Stefan Roese
c7f69c3402 ppc4xx: Make output a little shorter on I2C bootrom detection
Most 4xx PPC capable of using an I2C bootrom for bootstrap setting
already print a line with the information which I2C bootrom is
used for bootstrap configuration. So we don't need this extra line
with "I2C boot EEPROM en-/dis-abled".

This patch also has a little code cleanup integrated.

Signed-off-by: Stefan Roese <sr@denx.de>
2007-11-09 12:18:54 +01:00
Jon Loeliger
f1cd7aabbb Merge branch 'mpc8610' 2007-11-07 14:17:05 -06:00
Jon Loeliger
b0a41a1184 Merge branch 'for-1.3.0' 2007-11-07 14:16:49 -06:00
Jon Loeliger
59e7965922 Merge commit 'remotes/wd/master' 2007-11-07 14:16:14 -06:00
York Sun
070ba56115 8610: Add console frame buffer support to FSL 8610 DIU driver.
Add cfb console support to FSL 8610 DIU driver.
Inspect board version from PIXIS to obtain correct pixel format.

Use #define CONFIG_VIDEO in config file to enable fb console.

To switch monitor, set monitor variable to
0 - DVI, 1 - Single link LVDS, 2 - Double link LVDS
followed by "diufb init".

Preserve logo bitmap at the top of the fb console.

Signed-off-by: York Sun <yorksun@freescale.com>
Signed-off-by: Jon Loeliger <jdl@freescale.com>
2007-11-07 14:09:09 -06:00
York Sun
a877880c69 8610: Add 8610 DIU display driver
1280x1024 and 1024x768 @ 32 bpp are supported now.
DVI, Single-link LVDS, Double-link LVDS are all supported.

Environmental variable "monitor" is used to specify monitor port.

A new command "diufb" is introduced to reinitialize monitor
and display a BMP file in the memory. So far, 1-bit, 4-bit,
8-bit and 24-bit BMP formats are supported.

    diufb init
        - initialize the diu driver
    Enable the port specified in the environmental variable "monitor"

    diufb addr
        - display bmp file in memory.
    The bmp image should be no bigger than the resolution, 1280x1024
    for DVI and double-link LVDS, 1024x768 for single-link LVDS.

Note, this driver allocate memory but doesn't free it after use
It is written on purpose -- to avoid a failure of reallocation
due to memory fragement.

ECC of DDR is disabled for DIU performance. L2 data cache is also disabled.

Signed-off-by: York Sun <yorksun@freescale.com>
Signed-off-by: Jon loeliger <jdl@freescale.com>
2007-11-07 14:09:09 -06:00
York Sun
52e5ddfecd FSL: Add a freescale bitmap logo.
This Freescale logo is a 340 x 128 x 4bpp BMP file
that can be displayed by the DIU Framebuffer driver.

Signed-off-by: York Sun <yorksun@freescale.com>
Signed-off-by: Jon Loeliger <jdl@freescale.com>
2007-11-07 14:09:08 -06:00
York Sun
1815338fbd 8610: Make some extra debug environment variables conditional.
One may #define ENV_DEBUG to get them back again.

Signed-off-by: York Sun <yorksun@freescale.com>
2007-11-07 14:09:08 -06:00
Jason Jin
761421ccca 8610: Actually enable pixis_reset CONFIGs
Signed-off-by: Jason Jin <Jason.jin@freescale.com>
2007-11-07 14:09:08 -06:00
Jason Jin
f3bceaab23 Fix the BAT definition of PCI IO on 8610 board
The address in the BAT register is aligned with the BAT size.
The original definition actually did not define BAT for PCIE2 IO.
This patch fix this.

Signed-off-by: Jason Jin <Jason.jin@freescale.com>
2007-11-07 14:09:08 -06:00
Jason Jin
9f23ca334a Unify pixis_reset altbank across board families
Basically, refactor the CFG_PIXIS_VBOOT_MASK values
into the separate board config files.

Signed-off-by: Jason Jin <Jason.jin@freescale.com>
Signed-off-by: Jon Loeliger <jdl@freescale.com>
2007-11-07 14:08:45 -06:00
Jason Jin
a8318ec205 make 8610 board use pixis reset
Signed-off-by: Jason Jin <Jason.jin@freescale.com>
2007-11-07 14:08:45 -06:00
Jon Loeliger
9c84709eed 86xx: Fix broken variable reference when #def DEBUGing.
Sometimes you can't reference the DDR2 controller variables.

Signed-off-by: Jon Loeliger <jdl@freescale.com>
2007-11-07 14:08:45 -06:00
Jon Loeliger
607b3ae27e Merge commit 'remotes/wd/master' into newmaster 2007-11-07 14:08:15 -06:00
Stefan Roese
654f38b3a3 ppc4xx: Make output a little shorter on PCIe detection
Now not max 3 lines but 2 lines are printed per PCIe port.

Signed-off-by: Stefan Roese <sr@denx.de>
2007-11-05 07:43:05 +01:00
Stefan Roese
3d6cb3b24a ppc4xx: Add AMCC Kilauea/Haleakala NAND booting support
This patch adds NAND booting support for the AMCC 405EX(r) eval boards.
Again, only one image supports both targets.

Signed-off-by: Stefan Roese <sr@denx.de>
2007-11-03 12:08:28 +01:00
Jon Loeliger
3cac27c1d4 Merge commit 'remotes/wd/master' 2007-11-02 15:22:01 -05:00
Stefan Roese
5d96d40d3f ppc4xx: Fix acadia_nand build problem
Since the cache handling functions were moved from start.S into cache.S
the acadia NAND booting Makfile needs to be adapted accordingly.

Signed-off-by: Stefan Roese <sr@denx.de>
2007-10-31 21:21:47 +01:00
Stefan Roese
ea2e142843 ppc4xx: Add CONFIG_4xx_DCACHE compile options to enable cached SDRAM
This patch adds the CONFIG_4xx_DCACHE options to some SDRAM init files
and to the Sequoia TLB init code. Now the cache can be enabled on 44x
boards by defining CONFIG_4xx_DCACHE in the board config file. This
option will disappear, when more boards use is successfully and no
more known problems exist.

This is tested successfully on Sequoia and Katmai. The only problem that
needs to be fixed is, that USB is not working on Sequoia right now, since
it will need some cache handling code too, similar to the 4xx EMAC driver.

Signed-off-by: Stefan Roese <sr@denx.de>
2007-10-31 21:21:47 +01:00
Stefan Roese
3db93b8bed ppc4xx: Enable CPU POST test for 4xx with dcache enabled
Now with caches enabled (i- and d-cache) on 44x, we need a chance to
disable the cache for the CPU POST tests, since these tests consist
of self modifying code. This is done via the new change_tlb() function.

Signed-off-by: Stefan Roese <sr@denx.de>
2007-10-31 21:21:47 +01:00
Stefan Roese
f71b2888b4 ppc4xx: Change 4xx POST ethernet test to handle cached memory too
This patch enables the 4xx EMAC POST driver to work too, when dcache is
enabled.

Signed-off-by: Stefan Roese <sr@denx.de>
2007-10-31 21:21:47 +01:00
Stefan Roese
a268590406 ppc4xx: Remove temporary TLB entry in POST cache test only for 440
Signed-off-by: Stefan Roese <sr@denx.de>
2007-10-31 21:21:47 +01:00
Stefan Roese
ff768cb168 ppc4xx: Change 4xx ethernet driver to handle cached memory too
This patch enables the 4xx EMAC driver to work too, when dcache is
enabled.

Signed-off-by: Stefan Roese <sr@denx.de>
2007-10-31 21:21:47 +01:00
Stefan Roese
483e09a223 ppc4xx: Add change_tlb function to modify I attribute of TLB(s)
This function is used to either turn cache on or off in a specific
memory area.

Signed-off-by: Stefan Roese <sr@denx.de>
2007-10-31 21:21:47 +01:00
Stefan Roese
d25dfe08fb ppc4xx: Remove cache definition from 4xx board config files
All 4xx board config files don't need the cache definitions anymore.
These are now defined in common headers.

Signed-off-by: Stefan Roese <sr@denx.de>
2007-10-31 21:21:47 +01:00
Stefan Roese
9b94ac61d2 ppc4xx: Rework 4xx cache support
New cache handling functions added and all existing functions
moved from start.S into seperate cache.S.

Signed-off-by: Stefan Roese <sr@denx.de>
2007-10-31 21:21:46 +01:00
Stefan Roese
06713773da ppc4xx: Remove compiler warning from previous commit
Signed-off-by: Stefan Roese <sr@denx.de>
2007-10-31 21:21:46 +01:00
Stefan Roese
6fa397df67 ppc4xx: Remove temporary TLB entry in POST cache test
Signed-off-by: Stefan Roese <sr@denx.de>
2007-10-31 21:21:46 +01:00
Stefan Roese
1338e6a818 ppc4xx: Change autonegotiation timeout from 4 to 5 seconds
I lately noticed, that newer 4xx board with GBit support sometimes don't
finish link autonegotiation in 4 seconds. Changing this timeout to 5
seconds seems fine here.

Signed-off-by: Stefan Roese <sr@denx.de>
2007-10-31 21:21:46 +01:00
Stefan Roese
2d83476a4c ppc4xx: Change 4xx_enet & miiphy to use out_be32() and friends
This patch changes all in32/out32 calls to use the recommended in_be32/
out_be32 macros instead.

Signed-off-by: Stefan Roese <sr@denx.de>
2007-10-31 21:21:46 +01:00
Stefan Roese
7d47cee2cc ppc4xx: Fix POST ethernet test for Haleakala
The POST ethernet test needed to be changed to dynamically determine
the count of ethernet devices. This code is cloned from the 4xx
ethernet driver.

Signed-off-by: Stefan Roese <sr@denx.de>
2007-10-31 21:20:51 +01:00
Stefan Roese
f10493c6d7 ppc4xx: Correct UART input clock calculation and passing to fdt
We now use a value in the gd (global data) structure for the UART input
frequency, since the PPC4xx_SYS_INFO struct is always rewritten completely
in get_sys_info().

Signed-off-by: Stefan Roese <sr@denx.de>
2007-10-31 21:20:51 +01:00
Stefan Roese
353f2688b4 ppc4xx: Add initial AMCC Haleakala PPC405EXr eval board support
The Haleakala is nearly identical with the Kilauea eval board. The only
difference is that the 405EXr only supports one EMAC and one PCIe
interface. This patch adds support for the Haleakala board by using
the identical image for Kilauea and Haleakala. The distinction is done
by comparing the PVR.

Signed-off-by: Stefan Roese <sr@denx.de>
2007-10-31 21:20:51 +01:00
Eugene O'Brien
9f798766aa ppc4xx: Fixed offset of refresh rate type for Bamboo on-board DDR SDRAM
This patch also adds a note to the fixed DDR setup for Bamboo NAND booting:

Note:
As found out by Eugene O'Brien <eugene.obrien@advantechamt.com>, the fixed
DDR setup has problems (U-Boot crashes randomly upon TFTP), when the DIMM
modules are still plugged in. So it is recommended to remove the DIMM
modules while using the NAND booting code with the fixed SDRAM setup!

Signed-off-by: Eugene O'Brien <eugene.obrien@advantechamt.com>
Signed-off-by: Stefan Roese <sr@denx.de>
2007-10-31 21:20:51 +01:00
Stefan Roese
afe9fa59cb ppc4xx: Add SNTP support to AMCC Katmai, Kilauea & Makalu boards
Signed-off-by: Stefan Roese <sr@denx.de>
2007-10-31 21:20:51 +01:00
Stefan Roese
3248f63ad8 ppc4xx: Rework of 4xx serial driver (4)
Change 4xx_uart.c:

- Use in_8/out_8 macros instead of in8/out8
- No need for UART_BASE marco anymore, now really handled via function
  parameter
- serial_init_common() introduced
- Further coding style cleanup

Signed-off-by: Stefan Roese <sr@denx.de>
2007-10-31 21:20:51 +01:00
Stefan Roese
e61cb8163a ppc4xx: Rework of 4xx serial driver (3)
Change all linker scripts to reference the changed driver name iop480_uart.o.

Signed-off-by: Stefan Roese <sr@denx.de>
2007-10-31 21:20:51 +01:00
Stefan Roese
882ae41274 ppc4xx: Rework of 4xx serial driver (2)
Change all linker scripts to reference the changed driver name 4xx_uart.o.

Note: In most cased all these explicit referencing of these object files
in the linker scripts is not neccessary. Only for manually embedded
environment into the U-Boot image, which is not done is most cases.

Signed-off-by: Stefan Roese <sr@denx.de>
2007-10-31 21:20:51 +01:00
Stefan Roese
ad31e40bed ppc4xx: Rework of 4xx serial driver (1)
This patch starts the rework of the PPC4xx serial driver. First we split
the file into two seperate files, one 4xx_uart.c with the 405/440 UART
handling code and the other one iop480_uart.c with the UART code for the
PLX-Tech IOP480 PPC (PPC403 based).

Signed-off-by: Stefan Roese <sr@denx.de>
2007-10-31 21:20:50 +01:00
Stefan Roese
764e7417ee ppc4xx: Correct UART input clock calculation and passing to fdt
Signed-off-by: Stefan Roese <sr@denx.de>
2007-10-31 21:20:50 +01:00
Stefan Roese
211ea91ac6 ppc4xx: Add initial AMCC Makalu 405EX support
Signed-off-by: Stefan Roese <sr@denx.de>
2007-10-31 21:20:50 +01:00
Stefan Roese
fa8aea2045 ppc4xx: Add freqUART to CPU speed detection
This value is needed later for the device tree configuration of
the uart clock.

Signed-off-by: Stefan Roese <sr@denx.de>
2007-10-31 21:20:50 +01:00
Stefan Roese
837c730b4d ppc: Small Kilauea cleanup of config file
Signed-off-by: Stefan Roese <sr@denx.de>
2007-10-31 21:20:50 +01:00
Stefan Roese
758c037aee rtc: Add Xicor/Intersil X1205 RTC support
This patch adds support for the Xicor/Intersil X1205 RTC used on the
AMCC Makalu eval board. This driver is basically cloned from the Linux
driver version (2.6.23).

This patch also introduces the Linux bcd.h header for the BCD2BIN/
BIN2BCD conversions. In the future some of the other U-Boot RTC driver
should be converted to also use this header instead of implementing
their own local copy of these functions/macros.

Signed-off-by: Stefan Roese <sr@denx.de>
2007-10-31 21:20:50 +01:00
Stefan Roese
087dfdb79b ppc4xx: Consolidate some of the 405 and 440 macros/structs into 4xx
This patch moves some common 4xx macros and the PPC405_SYS_INFO/
PPC440_SYS_INFO structure into the common ppc4xx.h header.

Lot's of other macros are good candidates to be consolidated this way
in the future.

Signed-off-by: Stefan Roese <sr@denx.de>
2007-10-31 21:20:50 +01:00
Stefan Roese
770c7af580 ppc4xx: Fix size setup in Kilauea DDR2 init routine
The size was initilized wrong. Instead of 256MB, the DDR2 controller
was setup to 512MB. Now the correct values is used.

This patch also does a little cleanup and adds a comment here.

Signed-off-by: Stefan Roese <sr@denx.de>
2007-10-31 21:20:50 +01:00
Eugene O'Brien
f6ba9b5660 ppc4xx: Define CONFIG_BOOKE for all PPC440 based processors
CONFIG_BOOKE must be defined for PPC440 processors so that the proper SPR
number is used to access system registers.

Signed-off-by: Eugene O'Brien <eugene.obrien@advantechamt.com>
Signed-off-by: Stefan Roese <sr@denx.de>
2007-10-31 21:20:50 +01:00
Stefan Roese
c36c681603 ppc4xx: Change inbound PCIe location for endpoint tests on Katmai
On Yucca & Katmai, the inbound memory map pointed to 0x4.0000.0000, which
is the internal SRAM. Since I now ported and tested this endpoint mode
on Kilauea successfully to map to 0 (SDRAM), I also changed this for
Katmai.

Yucca will stay at internal SRAM for now. Not sure if somebody relies on
this setup.

Signed-off-by: Stefan Roese <sr@denx.de>
2007-10-31 21:20:50 +01:00
Stefan Roese
5cb4af4791 ppc4xx: Add PCIe endpoint support on Kilauea (405EX)
This patch adds endpoint support for the AMCC Kilauea eval board. It can
be tested by connecting a reworked PCIe cable (only 1x lane singles
connected) to another root-complex.

In this test setup, a 64MB inbound window is configured at BAR0 which maps
to 0 on the PLB side. So accessing this BAR0 from the root-complex will
access the first 64MB of the SDRAM on the PPC side.

Signed-off-by: Stefan Roese <sr@denx.de>
2007-10-31 21:20:50 +01:00
Stefan Roese
d4cb2d1794 ppc4xx: Dynamic configuration of 4xx PCIe mode as root or endpoint mode
This patch adds support for dynamic configuration of PCIe ports for the
AMCC PPC4xx boards equipped with PCIe interfaces. These are the PPC440SPe
boards Yucca & Katmai and the 405EX board Kilauea.

This dynamic configuration is done via the "pcie_mode" environement
variable. This variable can be set to "EP" or "RP" for endpoint or
rootpoint mode. Multiple values can be joined via the ":" delimiter.
Here an example:

pcie_mode=RP:EP:EP

This way, PCIe port 0 will be configured as rootpoint, PCIe port 1 and 2
as endpoint.

Per default Yucca will be configured as:
pcie_mode=RP:EP:EP

Per default Katmai will be configured as:
pcie_mode=RP:RP:REP

Per default Kilauea will be configured as:
pcie_mode=RP:RP

Signed-off-by: Tirumala R Marri <tmarri@amcc.com>
Signed-off-by: Stefan Roese <sr@denx.de>
2007-10-31 21:20:50 +01:00
Stefan Roese
fd671802b6 ppc4xx: Enable device tree support (fdt) on Kilauea per default
This patch enables the fdt support on the AMCC Kilauea eval board.
Additionally now EBC ranges fdt fixup is included to support NOR
FLASH mapping via the Linux physmap_of driver.

This Kilauea port now support booting arch/ppc and arch/powerpc
Linux kernels. The default environment "net_nfs" is for arch/ppc
and "net_nfs_fdt" is for arch/powerpc. In the long run, arch/ppc
support will be removed.

Signed-off-by: Stefan Roese <sr@denx.de>
2007-10-31 21:20:50 +01:00
Stefan Roese
4994ffd890 ppc4xx: Add additional debug info to 4xx fdt support
Signed-off-by: Stefan Roese <sr@denx.de>
2007-10-31 21:20:50 +01:00
Stefan Roese
db3232ddb0 ppc4xx: Fix small merge problems with CPCI440 and Acadia boards
Signed-off-by: Stefan Roese <sr@denx.de>
2007-10-31 21:20:50 +01:00
Stefan Roese
1941cce71b ppc4xx: Fix small merge problem in 4xx_enet.c
Signed-off-by: Stefan Roese <sr@denx.de>
2007-10-31 21:20:49 +01:00
Stefan Roese
566806ca1a ppc4xx: Add initial AMCC Kilauea 405EX support
Signed-off-by: Stefan Roese <sr@denx.de>
2007-10-31 21:20:49 +01:00
Stefan Roese
dbbd125721 ppc4xx: Add PPC405EX support
Signed-off-by: Stefan Roese <sr@denx.de>
2007-10-31 21:20:49 +01:00
Stefan Roese
1d7b874e9c ppc4xx: Cleanup of 4xx PCI and PCIe support (renaming)
Signed-off-by: Stefan Roese <sr@denx.de>
2007-10-31 21:20:49 +01:00
Stefan Roese
4f14ed6230 ppc4xx: Add initial fdt support to 4xx (first needed on 405EX)
Signed-off-by: Stefan Roese <sr@denx.de>
2007-10-31 21:20:49 +01:00
Stefan Roese
a424a8bb29 POST: Add 405EX support to 4xx UART POST test
Signed-off-by: Stefan Roese <sr@denx.de>
2007-10-31 21:20:49 +01:00
Stefan Roese
4f2e92c11f DTT: Prepare DS1775 driver for use of different I2C addresses
Signed-off-by: Stefan Roese <sr@denx.de>
2007-10-31 21:20:49 +01:00
Stefan Roese
19e93b1e16 ppc4xx: 4xx_pcie: Change PCIe status output to match common style
Signed-off-by: Stefan Roese <sr@denx.de>
2007-10-31 21:20:49 +01:00
Stefan Roese
ff68f66bcb ppc4xx: 4xx_pcie: Disable debug output as default
Signed-off-by: Stefan Roese <sr@denx.de>
2007-10-31 21:20:49 +01:00
Stefan Roese
97923770cb ppc4xx: 4xx_pcie: More general cleanup and 405EX PCIe support added
Signed-off-by: Stefan Roese <sr@denx.de>
2007-10-31 21:20:49 +01:00
Stefan Roese
4dbee8a90d ppc4xx: 4xx_pcie: Change CFG_PCIE_MEMSIZE to 128MB on Yucca & Katmai
128MB seems to be the smallest possible value for the memory size
for on PCIe port. With this change now the BAR's of the PCIe cards
are accessible under U-Boot.

One big note: This only works for PCIe port 0 & 1. For port 2 this
currently doesn't work, since the base address is now 0xc0000000
(0xb0000000 + 2 * 0x08000000), and this is already occupied by
CFG_PCIE0_CFGBASE. But solving this issue for port 2 would mean
to change the base addresses completely and this change would have
too much impact right now.

This patch adds debug output to the 4xx pcie driver too.

Signed-off-by: Stefan Roese <sr@denx.de>
2007-10-31 21:20:49 +01:00
Stefan Roese
6d95289281 ppc4xx: 4xx_pcie: Fix problem with SDRN access using port number as idx
Signed-off-by: Stefan Roese <sr@denx.de>
2007-10-31 21:20:49 +01:00
Stefan Roese
3048bcbf0b ppc4xx: Rename 405gp_pci to 4xx_pci since its used on all 4xx platforms
These files were introduced with the IBM 405GP but are currently used on all
4xx PPC platforms. So the name doesn't match the content anymore. This patch
renames the files to 4xx_pci.c/h.

Signed-off-by: Stefan Roese <sr@denx.de>
2007-10-31 21:20:49 +01:00
Stefan Roese
94276eb0a7 ppc4xx: Add a comment for 405EX PCIe endpoint configuration
Signed-off-by: Stefan Roese <sr@denx.de>
2007-10-31 21:20:49 +01:00
Stefan Roese
03d344bb6a ppc4xx: Make 440SPe PCIe code more generic to use on different 4xx PPCs (3)
(3) This patch introduces macros like SDRN_PESDR_DLPSET(port) to access
    the SDR registers of the PCIe ports. This makes the overall design
    clearer, since it removed a lot of switch statements which are not
    needed anymore.

    Also, the functions ppc4xx_init_pcie_rootport() and
    ppc4xx_init_pcie_entport() are merged into a single function
    ppc4xx_init_pcie_port(), since most of the code was duplicated.
    This makes maintainance and porting to other 4xx platforms
    easier.

Signed-off-by: Stefan Roese <sr@denx.de>
2007-10-31 21:20:49 +01:00
Stefan Roese
026f711068 ppc4xx: Make 440SPe PCIe code more generic to use on different 4xx PPCs (2)
This patch is the first patch of a series to make the 440SPe PCIe code
usable on different 4xx PPC platforms. In preperation for the new 405EX
which is also equipped with PCIe interfaces.

(2) This patch renames the functions from 440spe_ to 4xx_ with a
    little additional cleanup

Signed-off-by: Stefan Roese <sr@denx.de>
2007-10-31 21:20:49 +01:00
Stefan Roese
c7c6da2302 ppc4xx: Make 440SPe PCIe code more generic to use on different 4xx PPCs (1)
This patch is the first patch of a series to make the 440SPe PCIe code
usable on different 4xx PPC platforms. In preperation for the new 405EX
which is also equipped with PCIe interfaces.

(1) This patch renames the files from 440spe_pcie to 4xx_pcie

Signed-off-by: Stefan Roese <sr@denx.de>
2007-10-31 21:20:48 +01:00
Marian Balakowicz
245a362ad3 TQM5200: Call usb_cpu_init() during board init
usb_cpu_init() configures GPS USB pins, clocks, etc. and
is required for proper operation of kernel USB subsystem.
This setup was previously done in the kernel by the fixup
code which is being removed, thus low level init must be
done by U-boot now.

Signed-off-by: Marian Balakowicz <m8@semihalf.com>
Signed-off-by: Markus Klotzbuecher <mk@denx.de>
2007-10-31 10:39:50 +01:00
Zhang Wei
b5af773f8d Fix the issue of usb_kbd driver missing the scan code of key 'z'.
The scan code of the key 'z' is 0x1d, which should be handled.

The change has be tested on NOVATEK USB keyboard and ULI PCI OHCI
controller.

Signed-off-by: Zhang Wei <wei.zhang@freescale.com>
Signed-off-by: Markus Klotzbuecher <mk@denx.de>
2007-10-31 10:08:21 +01:00
Rodolfo Giometti
85ac988e86 PXA USB OHCI: "usb stop" implementation.
Some USB keys need to be switched off before loading the kernel
otherwise they can remain in an undefined status which prevents them
to be correctly recognized by the kernel.

Signed-off-by: Rodolfo Giometti <giometti@linux.it>
Signed-off-by: Markus Klotzbuecher <mk@denx.de>
2007-10-31 10:07:47 +01:00
Jon Loeliger
3c89d75409 Initial mpc8610hpcd Makefile files.
Signed-off-by: Ed Swarthout <Ed.Swarthout@freescale.com>
Signed-off-by: Mahesh Jade <mahesh.jade@freescale.com>
Signed-off-by: Jason Jin <Jason.jin@freescale.com>
Signed-off-by: Jon Loeliger <jdl@freescale.com>
2007-10-17 15:01:54 -05:00
Jon Loeliger
9553df86d3 Initial mpc8610hpcd cpu/, README and include/ files.
Signed-off-by: Ed Swarthout <Ed.Swarthout@freescale.com>
Signed-off-by: Mahesh Jade <mahesh.jade@freescale.com>
Signed-off-by: Jason Jin <Jason.jin@freescale.com>
Signed-off-by: Jon Loeliger <jdl@freescale.com>
2007-10-17 15:01:47 -05:00
Jon Loeliger
3dd2db53ce Initial mpc8610hpcd board files.
Signed-off-by: Ed Swarthout <Ed.Swarthout@freescale.com>
Signed-off-by: Mahesh Jade <mahesh.jade@freescale.com>
Signed-off-by: Jason Jin <Jason.jin@freescale.com>
Signed-off-by: Jon Loeliger <jdl@freescale.com>
2007-10-17 15:01:33 -05:00
Nobuhiro Iwamatsu
eda3e1e661 sh: Add support command of ide with sh
Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
2007-09-23 02:42:38 +09:00
Nobuhiro Iwamatsu
d91ea45d15 sh: Update Makefile
Add support MS7722SE01 to Makefile.

Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
2007-09-23 02:38:42 +09:00
Nobuhiro Iwamatsu
6c0bbdccd3 sh: Add support Renesas sh7722 processor and Hitachi MS7722SE01 board
Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
2007-09-23 02:31:13 +09:00
Nobuhiro Iwamatsu
047375bfa4 sh: Update MS7750SE01 platform
Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
2007-09-23 02:19:24 +09:00
Nobuhiro Iwamatsu
516ad760db sh: Remove comment out code from include/asm-sh/cpu_sh4.h
Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
2007-09-23 02:17:08 +09:00
Nobuhiro Iwamatsu
b02bad1286 sh: Update core code of SuperH.
Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
2007-09-23 02:12:30 +09:00
Nobuhiro Iwamatsu
b8685affe6 Merge git://www.denx.de/git/u-boot
Conflicts:

	CREDITS
2007-09-23 01:29:43 +09:00
Nobuhiro Iwamatsu
69df3c4da0 sh: MS7750SE support.
This adds support for the Hitachi MS7750SE.

Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
2007-05-13 21:01:03 +09:00
Nobuhiro Iwamatsu
0b135cfc2e sh: First support code of SuperH.
Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
2007-05-13 20:58:00 +09:00
2306 changed files with 239927 additions and 70813 deletions

39
.gitignore vendored
View File

@@ -1,13 +1,48 @@
#
# NOTE! Don't add files that are generated in specific
# subdirectories here. Add them in the ".gitignore" file
# in that subdirectory instead.
#
# Normal rules
#
*.rej
*.orig *.orig
*.a *.a
*.o *.o
*.depend *~
System.map *.patch
#
# Top-level generic files
#
/System.map
/u-boot /u-boot
/u-boot.hex
/u-boot.map /u-boot.map
/u-boot.bin /u-boot.bin
/u-boot.srec /u-boot.srec
/u-boot.ldr
/u-boot.ldr.hex
/u-boot.ldr.srec
#
# Generated files
#
*.depend
/LOG /LOG
/errlog /errlog
/reloc_off /reloc_off
# stgit generated dirs
patches-*
.stgit-edit.txt
# quilt's files
patches
series
# cscope files
cscope.*

16074
CHANGELOG

File diff suppressed because it is too large Load Diff

42
CREDITS
View File

@@ -117,7 +117,7 @@ N: Arun Dharankar
E: ADharankar@ATTBI.Com E: ADharankar@ATTBI.Com
D: threads / scheduler example code D: threads / scheduler example code
N: K<EFBFBD>ri Dav<EFBFBD><EFBFBD>sson N: K?ri Dav??sson
E: kd@flaga.is E: kd@flaga.is
D: FLAGA DM Support D: FLAGA DM Support
@@ -143,7 +143,7 @@ E: info@elste.org
D: Port for the ModNET50 Board, NET+50 CPU Port D: Port for the ModNET50 Board, NET+50 CPU Port
W: http://www.imms.de W: http://www.imms.de
N: Daniel Engstr<EFBFBD>m N: Daniel Engstr?m
E: daniel@omicron.se E: daniel@omicron.se
D: x86 port, Support for sc520_cdp board D: x86 port, Support for sc520_cdp board
@@ -236,6 +236,10 @@ E: mark.jonas@freescale.com
D: Support for Freescale Total5200 platform D: Support for Freescale Total5200 platform
W: http://www.mobilegt.com/ W: http://www.mobilegt.com/
N: Mark Jonas
E: mark.jonas@de.bosch.com
D: Support for MPR2 board
N: Sam Song N: Sam Song
E: samsongshu@yahoo.com.cn E: samsongshu@yahoo.com.cn
D: Port to the RPXlite_DW board D: Port to the RPXlite_DW board
@@ -290,7 +294,7 @@ W: http://www.leox.org
N: TsiChung Liew N: TsiChung Liew
E: Tsi-Chung.Liew@freescale.com E: Tsi-Chung.Liew@freescale.com
D: Support for ColdFire MCF523x, MCF532x, MCF5445x D: Support for ColdFire MCF523x, MCF532x, MCF5445x, MCF547x_8x
W: www.freescale.com W: www.freescale.com
N: Leif Lindholm N: Leif Lindholm
@@ -303,6 +307,11 @@ D: Support for Nios Stratix Development Kit (DK-1S10)
D: Support for SSV ADNP/ESC1 (Nios Cyclone) D: Support for SSV ADNP/ESC1 (Nios Cyclone)
W: http://www.li-pro.net W: http://www.li-pro.net
N: Dave Liu
E: daveliu@freescale.com
D: Support for MPC8315, MPC832x, MPC8360, MPC837x
W: www.freescale.com
N: Raymond Lo N: Raymond Lo
E: lo@routefree.com E: lo@routefree.com
D: Support for DOS partitions D: Support for DOS partitions
@@ -334,7 +343,7 @@ N: Frank Morauf
E: frank.morauf@salzbrenner.com E: frank.morauf@salzbrenner.com
D: Support for Embedded Planet RPX Super Board D: Support for Embedded Planet RPX Super Board
N: David M<EFBFBD>ller N: David M?ller
E: d.mueller@elsoft.ch E: d.mueller@elsoft.ch
D: Support for Samsung ARM920T SMDK2410 eval board D: Support for Samsung ARM920T SMDK2410 eval board
@@ -386,6 +395,10 @@ E: dan.poirot@windriver.com
D: Support for the Wind River sbc405, sbc8240 board D: Support for the Wind River sbc405, sbc8240 board
W: http://www.windriver.com W: http://www.windriver.com
N: Stelian Pop
E: stelian.pop@leadtechdesign.com
D: Atmel AT91CAP9ADK support
N: Stefan Roese N: Stefan Roese
E: sr@denx.de E: sr@denx.de
D: AMCC PPC4xx Support D: AMCC PPC4xx Support
@@ -422,6 +435,7 @@ D: Support for EP82xxM
N: Art Shipkowski N: Art Shipkowski
E: art@videon-central.com E: art@videon-central.com
D: Support for NetSilicon NS7520 D: Support for NetSilicon NS7520
D: Support for ColdFire MCF5275
N: Michal Simek N: Michal Simek
E: monstr@monstr.eu E: monstr@monstr.eu
@@ -499,3 +513,23 @@ N: Alex Zuepke
E: azu@sysgo.de E: azu@sysgo.de
D: Overall improvements on StrongARM, ARM720TDMI; Support for Tuxscreen; initial PCMCIA support for ARM D: Overall improvements on StrongARM, ARM720TDMI; Support for Tuxscreen; initial PCMCIA support for ARM
W: www.elinos.com W: www.elinos.com
N: Nobuhiro Iwamatsu
E: iwamatsu@nigauri.org
D: Support for SuperH, MS7750SE01 and MS7722SE01 boards.
W: http://www.nigauri.org/~iwamatsu/
N: Alan Lu
E: alnalu001@gmail.com
D: Support for Artila M-501 starter kit
W: http://www.artila.com/
N: Kimmo Leppala
E: kimmo.leppala@sysart.fi
D: Support for Artila M-501 starter kit
W: http://www.sysart.fi/
N: Timo Tuunainen
E: timo.tuunainen@sysart.fi
D: Support for Artila M-501 starter kit
W: http://www.sysart.fi/

View File

@@ -58,6 +58,10 @@ Conn Clark <clark@esteem.com>
ESTEEM192E MPC8xx ESTEEM192E MPC8xx
Joe D'Abbraccio <ljd015@freescale.com>
MPC837xERDB MPC837x
K<EFBFBD>ri Dav<61><76>sson <kd@flaga.is> K<EFBFBD>ri Dav<61><76>sson <kd@flaga.is>
FLAGADM MPC823 FLAGADM MPC823
@@ -146,11 +150,11 @@ Matthias Fuchs <matthias.fuchs@esd-electronics.com>
CPCI4052 PPC405GP CPCI4052 PPC405GP
CPCI405AB PPC405GP CPCI405AB PPC405GP
CPCI405DT PPC405GP CPCI405DT PPC405GP
CPCI440 PPC440GP
CPCIISER4 PPC405GP CPCIISER4 PPC405GP
DASA_SIM IOP480 (PPC401) DASA_SIM IOP480 (PPC401)
DP405 PPC405EP DP405 PPC405EP
DU405 PPC405GP DU405 PPC405GP
DU440 PPC440EPx
G2000 PPC405EP G2000 PPC405EP
HH405 PPC405EP HH405 PPC405EP
HUB405 PPC405EP HUB405 PPC405EP
@@ -159,6 +163,7 @@ Matthias Fuchs <matthias.fuchs@esd-electronics.com>
PCI405 PPC405GP PCI405 PPC405GP
PLU405 PPC405EP PLU405 PPC405EP
PMC405 PPC405GP PMC405 PPC405GP
PMC440 PPC440EPx
VOH405 PPC405EP VOH405 PPC405EP
VOM405 PPC405EP VOM405 PPC405EP
WUH405 PPC405EP WUH405 PPC405EP
@@ -167,6 +172,7 @@ Matthias Fuchs <matthias.fuchs@esd-electronics.com>
Niklaus Giger <niklaus.giger@netstal.com> Niklaus Giger <niklaus.giger@netstal.com>
HCU4 PPC405GPr HCU4 PPC405GPr
MCU25 PPC405GPr
HCU5 PPC440EPx HCU5 PPC440EPx
Frank Gottschling <fgottschling@eltec.de> Frank Gottschling <fgottschling@eltec.de>
@@ -190,6 +196,7 @@ Howard Gray <mvsensor@matrix-vision.de>
Joe Hamman <joe.hamman@embeddedspecialties.com> Joe Hamman <joe.hamman@embeddedspecialties.com>
sbc8548 MPC8548
sbc8641d MPC8641D sbc8641d MPC8641D
Klaus Heydeck <heydeck@kieback-peter.de> Klaus Heydeck <heydeck@kieback-peter.de>
@@ -204,6 +211,10 @@ Murray Jensen <Murray.Jensen@csiro.au>
cogent_mpc8260 MPC8260 cogent_mpc8260 MPC8260
hymod MPC8260 hymod MPC8260
Larry Johnson <lrj@acm.org>
korat PPC440EPx
Brad Kemp <Brad.Kemp@seranoa.com> Brad Kemp <Brad.Kemp@seranoa.com>
ppmc8260 MPC8260 ppmc8260 MPC8260
@@ -217,13 +228,20 @@ Thomas Lange <thomas@corelatus.se>
GTH MPC860 GTH MPC860
Robert Lazarski <robertlazarski@gmail.com>
ATUM8548 MPC8548
The LEOX team <team@leox.org> The LEOX team <team@leox.org>
ELPT860 MPC860T ELPT860 MPC860T
Dave Liu <daveliu@freescale.com> Dave Liu <daveliu@freescale.com>
MPC8315ERDB MPC8315
MPC832XEMDS MPC832x
MPC8360EMDS MPC8360 MPC8360EMDS MPC8360
MPC837XEMDS MPC837x
Nye Liu <nyet@zumanetworks.com> Nye Liu <nyet@zumanetworks.com>
@@ -302,9 +320,14 @@ Stefan Roese <sr@denx.de>
alpr PPC440GX alpr PPC440GX
bamboo PPC440EP bamboo PPC440EP
bunbinga PPC405EP bunbinga PPC405EP
canyonlands PPC460EX
ebony PPC440GP ebony PPC440GP
glacier PPC460GT
haleakala PPC405EXr
katmai PPC440SPe katmai PPC440SPe
kilauea PPC405EX
lwmon5 PPC440EPx lwmon5 PPC440EPx
makalu PPC405EX
ocotea PPC440GX ocotea PPC440GX
p3p440 PPC440GP p3p440 PPC440GP
pcs440ep PPC440EP pcs440ep PPC440EP
@@ -329,6 +352,17 @@ Travis Sawyer (travis.sawyer@sandburst.com>
METROBOX PPC440GX METROBOX PPC440GX
XPEDITE1K PPC440GX XPEDITE1K PPC440GX
Heiko Schocher <hs@denx.de>
ids8247 MPC8247
jupiter MPC5200
mgcoge MPC8247
mgsuvd MPC852
municse MPC5200
sc3 PPC405GP
uc101 MPC5200
Peter De Schrijver <p2@mind.be> Peter De Schrijver <p2@mind.be>
ML2 PPC4xx ML2 PPC4xx
@@ -357,6 +391,10 @@ David Updegraff <dave@cray.com>
CRAYL1 PPC4xx CRAYL1 PPC4xx
Anton Vorontsov <avorontsov@ru.mvista.com>
MPC8360ERDK MPC8360
Josef Wagner <Wagner@Microsys.de> Josef Wagner <Wagner@Microsys.de>
CPC45 MPC8245 CPC45 MPC8245
@@ -370,6 +408,10 @@ John Zhan <zhanz@sinovee.com>
svm_sc8xx MPC8xx svm_sc8xx MPC8xx
Guennadi Liakhovetski <g.liakhovetski@gmx.de>
linkstation MPC8241
------------------------------------------------------------------------- -------------------------------------------------------------------------
Unknown / orphaned boards: Unknown / orphaned boards:
@@ -492,6 +534,11 @@ Dave Peverley <dpeverley@mpc-data.co.uk>
omap730p2 ARM926EJS omap730p2 ARM926EJS
Stelian Pop <stelian.pop@leadtechdesign.com>
at91cap9adk ARM926EJS (AT91CAP9 SoC)
at91sam9260ek ARM926EJS (AT91SAM9260 SoC)
Stefan Roese <sr@denx.de> Stefan Roese <sr@denx.de>
ixdpg425 xscale ixdpg425 xscale
@@ -517,11 +564,22 @@ Richard Woodruff <r-woodruff2@ti.com>
omap2420h4 ARM1136EJS omap2420h4 ARM1136EJS
Kyungmin Park <kyungmin.park@samsung.com>
apollon ARM1136EJS
Alex Z<>pke <azu@sysgo.de> Alex Z<>pke <azu@sysgo.de>
lart SA1100 lart SA1100
dnp1110 SA1110 dnp1110 SA1110
Michael Schwingen <michael@schwingen.org>
actux1 xscale
actux2 xscale
actux3 xscale
actux4 xscale
######################################################################### #########################################################################
# x86 Systems: # # x86 Systems: #
# # # #
@@ -549,6 +607,9 @@ Thomas Lange <thomas@corelatus.se>
dbau1x00 MIPS32 Au1000 dbau1x00 MIPS32 Au1000
gth2 MIPS32 Au1000 gth2 MIPS32 Au1000
Vlad Lungu <vlad.lungu@windriver.com>
qemu_mips MIPS32
######################################################################### #########################################################################
# Nios-32 Systems: # # Nios-32 Systems: #
# # # #
@@ -607,15 +668,15 @@ Matthias Fuchs <matthias.fuchs@esd-electronics.com>
TASREG MCF5249 TASREG MCF5249
Zachary P. Landau <zachary.landau@labxtechnologies.com>
r5200 mcf52x2
TsiChung Liew <Tsi-Chung.Liew@freescale.com> TsiChung Liew <Tsi-Chung.Liew@freescale.com>
M52277EVB mcf5227x
M5235EVB mcf52x2 M5235EVB mcf52x2
M5329EVB mcf532x M5329EVB mcf532x
M5373EVB mcf532x
M54455EVB mcf5445x M54455EVB mcf5445x
M5475EVB mcf547x_8x
M5485EVB mcf547x_8x
Hayden Fraser <Hayden.Fraser@freescale.com> Hayden Fraser <Hayden.Fraser@freescale.com>
@@ -630,7 +691,52 @@ Hayden Fraser <Hayden.Fraser@freescale.com>
Haavard Skinnemoen <hskinnemoen@atmel.com> Haavard Skinnemoen <hskinnemoen@atmel.com>
ATSTK1000 AT32AP7000 ATSTK1000 AT32AP7xxx
ATSTK1002 AT32AP7000
ATSTK1003 AT32AP7001
ATSTK1004 AT32AP7002
ATNGW100 AT32AP7000
#########################################################################
# SuperH Systems: #
# #
# Maintainer Name, Email Address #
# Board CPU #
#########################################################################
Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
MS7750SE SH7750
MS7722SE SH7722
R7780MP SH7780
R2DPlus SH7751R
Mark Jonas <mark.jonas@de.bosch.com>
mpr2 SH7720
Yoshihiro Shimoda <shimoda.yoshihiro@renesas.com>
MS7720SE SH7720
Yusuke Goda <goda.yusuke@renesas.com>
MIGO-R SH7722
#########################################################################
# Blackfin Systems: #
# #
# Maintainer Name, Email Address #
# Board CPU #
#########################################################################
Mike Frysinger <vapier@gentoo.org>
Blackfin Team <u-boot-devel@blackfin.uclinux.org>
BF533-EZKIT BF533
BF533-STAMP BF533
BF537-STAMP BF537
BF561-EZKIT BF561
######################################################################### #########################################################################
# End of MAINTAINERS list # # End of MAINTAINERS list #

126
MAKEALL
View File

@@ -42,10 +42,12 @@ LIST_5xxx=" \
fo300 \ fo300 \
icecube_5100 \ icecube_5100 \
icecube_5200 \ icecube_5200 \
inka4x0 \
lite5200b \ lite5200b \
mcc200 \ mcc200 \
mecp5200 \ mecp5200 \
motionpro \ motionpro \
munices \
o2dnt \ o2dnt \
pf5200 \ pf5200 \
PM520 \ PM520 \
@@ -107,6 +109,7 @@ LIST_8xx=" \
lwmon \ lwmon \
MBX \ MBX \
MBX860T \ MBX860T \
mgsuvd \
MHPC \ MHPC \
MPC86xADS \ MPC86xADS \
MPC885ADS \ MPC885ADS \
@@ -135,6 +138,7 @@ LIST_8xx=" \
SPD823TS \ SPD823TS \
svm_sc8xx \ svm_sc8xx \
SXNI855T \ SXNI855T \
TK885D \
TOP860 \ TOP860 \
TQM823L \ TQM823L \
TQM823L_LCD \ TQM823L_LCD \
@@ -162,13 +166,14 @@ LIST_4xx=" \
bamboo_nand \ bamboo_nand \
bubinga \ bubinga \
CANBT \ CANBT \
canyonlands \
canyonlands_nand \
CMS700 \ CMS700 \
CPCI2DP \ CPCI2DP \
CPCI405 \ CPCI405 \
CPCI4052 \ CPCI4052 \
CPCI405AB \ CPCI405AB \
CPCI405DT \ CPCI405DT \
CPCI440 \
CPCIISER4 \ CPCIISER4 \
CRAYL1 \ CRAYL1 \
csb272 \ csb272 \
@@ -176,10 +181,14 @@ LIST_4xx=" \
DASA_SIM \ DASA_SIM \
DP405 \ DP405 \
DU405 \ DU405 \
DU440 \
ebony \ ebony \
ERIC \ ERIC \
EXBITGEN \ EXBITGEN \
G2000 \ G2000 \
glacier \
haleakala \
haleakala_nand \
hcu4 \ hcu4 \
hcu5 \ hcu5 \
HH405 \ HH405 \
@@ -187,8 +196,13 @@ LIST_4xx=" \
JSE \ JSE \
KAREF \ KAREF \
katmai \ katmai \
kilauea \
kilauea_nand \
korat \
luan \ luan \
lwmon5 \ lwmon5 \
makalu \
mcu25 \
METROBOX \ METROBOX \
MIP405 \ MIP405 \
MIP405T \ MIP405T \
@@ -203,6 +217,7 @@ LIST_4xx=" \
PIP405 \ PIP405 \
PLU405 \ PLU405 \
PMC405 \ PMC405 \
PMC440 \
PPChameleonEVB \ PPChameleonEVB \
rainier \ rainier \
sbc405 \ sbc405 \
@@ -246,6 +261,7 @@ LIST_824x=" \
debris \ debris \
eXalion \ eXalion \
HIDDEN_DRAGON \ HIDDEN_DRAGON \
linkstation_HGLAN \
MOUSSE \ MOUSSE \
MUSENKI \ MUSENKI \
MVBLUE \ MVBLUE \
@@ -274,6 +290,7 @@ LIST_8260=" \
hymod \ hymod \
IPHASE4539 \ IPHASE4539 \
ISPAN \ ISPAN \
mgcoge \
MPC8260ADS \ MPC8260ADS \
MPC8266ADS \ MPC8266ADS \
MPC8272ADS \ MPC8272ADS \
@@ -289,6 +306,7 @@ LIST_8260=" \
TQM8260_AC \ TQM8260_AC \
TQM8260_AD \ TQM8260_AD \
TQM8260_AE \ TQM8260_AE \
TQM8272 \
ZPC1900 \ ZPC1900 \
" "
@@ -299,6 +317,7 @@ LIST_8260=" \
LIST_83xx=" \ LIST_83xx=" \
MPC8313ERDB_33 \ MPC8313ERDB_33 \
MPC8313ERDB_66 \ MPC8313ERDB_66 \
MPC8315ERDB \
MPC8323ERDB \ MPC8323ERDB \
MPC832XEMDS \ MPC832XEMDS \
MPC832XEMDS_ATM \ MPC832XEMDS_ATM \
@@ -307,6 +326,10 @@ LIST_83xx=" \
MPC8349ITXGP \ MPC8349ITXGP \
MPC8360EMDS \ MPC8360EMDS \
MPC8360EMDS_ATM \ MPC8360EMDS_ATM \
MPC8360ERDK_33 \
MPC8360ERDK_66 \
MPC837XEMDS \
MPC837XERDB \
sbc8349 \ sbc8349 \
TQM834x \ TQM834x \
" "
@@ -317,6 +340,7 @@ LIST_83xx=" \
######################################################################### #########################################################################
LIST_85xx=" \ LIST_85xx=" \
ATUM8548 \
MPC8540ADS \ MPC8540ADS \
MPC8540EVAL \ MPC8540EVAL \
MPC8541CDS \ MPC8541CDS \
@@ -328,6 +352,7 @@ LIST_85xx=" \
PM854 \ PM854 \
PM856 \ PM856 \
sbc8540 \ sbc8540 \
sbc8548 \
sbc8560 \ sbc8560 \
stxgp3 \ stxgp3 \
stxssa \ stxssa \
@@ -342,6 +367,7 @@ LIST_85xx=" \
######################################################################### #########################################################################
LIST_86xx=" \ LIST_86xx=" \
MPC8610HPCD \
MPC8641HPCN \ MPC8641HPCN \
sbc8641d \ sbc8641d \
" "
@@ -362,12 +388,6 @@ LIST_74xx=" \
ZUMA \ ZUMA \
" "
LIST_TSEC=" \
${LIST_85xx} \
${LIST_86xx} \
${LIST_83xx} \
"
LIST_7xx=" \ LIST_7xx=" \
BAB7xx \ BAB7xx \
CPCI750 \ CPCI750 \
@@ -376,6 +396,16 @@ LIST_7xx=" \
ppmc7xx \ ppmc7xx \
" "
#########################################################################
## PowerPC groups
#########################################################################
LIST_TSEC=" \
${LIST_83xx} \
${LIST_85xx} \
${LIST_86xx} \
"
LIST_ppc=" \ LIST_ppc=" \
${LIST_5xx} \ ${LIST_5xx} \
${LIST_512x} \ ${LIST_512x} \
@@ -427,7 +457,9 @@ LIST_ARM7=" \
######################################################################### #########################################################################
LIST_ARM9=" \ LIST_ARM9=" \
at91cap9adk \
at91rm9200dk \ at91rm9200dk \
at91sam9260ek \
cmc_pu2 \ cmc_pu2 \
ap920t \ ap920t \
ap922_XA10 \ ap922_XA10 \
@@ -439,7 +471,10 @@ LIST_ARM9=" \
cp926ejs \ cp926ejs \
cp946es \ cp946es \
cp966 \ cp966 \
csb637 \
kb9202 \
lpd7a400 \ lpd7a400 \
m501sk \
mp2usb \ mp2usb \
mx1ads \ mx1ads \
mx1fs2 \ mx1fs2 \
@@ -447,6 +482,7 @@ LIST_ARM9=" \
omap1510inn \ omap1510inn \
omap1610h2 \ omap1610h2 \
omap1610inn \ omap1610inn \
omap5912osk \
omap730p2 \ omap730p2 \
sbc2410x \ sbc2410x \
scb9328 \ scb9328 \
@@ -477,6 +513,10 @@ LIST_ARM10=" \
LIST_ARM11=" \ LIST_ARM11=" \
cp1136 \ cp1136 \
omap2420h4 \ omap2420h4 \
apollon \
imx31_litekit \
imx31_phycore \
mx31ads \
" "
######################################################################### #########################################################################
@@ -501,12 +541,19 @@ LIST_pxa=" \
" "
LIST_ixp=" \ LIST_ixp=" \
actux1 \
actux2 \
actux3 \
actux4 \
ixdp425 \ ixdp425 \
ixdpg425 \ ixdpg425 \
pdnb3 \ pdnb3 \
scpu \ scpu \
" "
#########################################################################
## ARM groups
#########################################################################
LIST_arm=" \ LIST_arm=" \
${LIST_SA} \ ${LIST_SA} \
@@ -524,6 +571,7 @@ LIST_arm=" \
LIST_mips4kc=" \ LIST_mips4kc=" \
incaip \ incaip \
qemu_mips \
" "
LIST_mips5kc=" \ LIST_mips5kc=" \
@@ -610,8 +658,8 @@ LIST_nios2=" \
######################################################################### #########################################################################
LIST_microblaze=" \ LIST_microblaze=" \
suzaku \
ml401 \ ml401 \
suzaku \
xupv2p \ xupv2p \
" "
@@ -624,15 +672,19 @@ LIST_coldfire=" \
EB+MCF-EV123 \ EB+MCF-EV123 \
EB+MCF-EV123_internal \ EB+MCF-EV123_internal \
idmr \ idmr \
M52277EVB \
M5235EVB \ M5235EVB \
M5249EVB \ M5249EVB \
M5253EVB \ M5253EVB \
M5271EVB \ M5271EVB \
M5272C3 \ M5272C3 \
M5275EVB \
M5282EVB \ M5282EVB \
M5329EVB \ M5329AFEE \
M5373EVB \
M54455EVB \ M54455EVB \
r5200 \ M5475AFE \
M5485AFE \
TASREG \ TASREG \
" "
@@ -642,6 +694,9 @@ LIST_coldfire=" \
LIST_avr32=" \ LIST_avr32=" \
atstk1002 \ atstk1002 \
atstk1003 \
atstk1004 \
atngw100 \
" "
######################################################################### #########################################################################
@@ -655,6 +710,34 @@ LIST_blackfin=" \
bf561-ezkit \ bf561-ezkit \
" "
#########################################################################
## SH Systems
#########################################################################
LIST_sh3=" \
mpr2 \
ms7720se \
"
LIST_sh4=" \
ms7750se \
ms7722se \
Migo-R \
r7780mp \
r2dplus \
"
LIST_sh=" \
${LIST_sh3} \
${LIST_sh4} \
"
#########################################################################
## SPARC Systems
#########################################################################
LIST_sparc="gr_xc3s_1500 gr_cpci_ax2000 gr_ep2s60 grsim grsim_leon2"
#----------------------------------------------------------------------- #-----------------------------------------------------------------------
#----- for now, just run PPC by default ----- #----- for now, just run PPC by default -----
@@ -671,7 +754,7 @@ build_target() {
${MAKE} ${JOBS} all 2>&1 >${LOG_DIR}/$target.MAKELOG \ ${MAKE} ${JOBS} all 2>&1 >${LOG_DIR}/$target.MAKELOG \
| tee ${LOG_DIR}/$target.ERR | tee ${LOG_DIR}/$target.ERR
${CROSS_COMPILE:-ppc_8xx-}size ${BUILD_DIR}/u-boot \ ${CROSS_COMPILE}size ${BUILD_DIR}/u-boot \
| tee -a ${LOG_DIR}/$target.MAKELOG | tee -a ${LOG_DIR}/$target.MAKELOG
} }
@@ -681,15 +764,18 @@ build_target() {
for arg in $@ for arg in $@
do do
case "$arg" in case "$arg" in
arm|SA|ARM7|ARM9|ARM10|ARM11|ixp|pxa| \ arm|SA|ARM7|ARM9|ARM10|ARM11|ixp|pxa \
avr32| \ |avr32 \
blackfin| \ |blackfin \
coldfire| \ |coldfire \
microblaze| \ |microblaze \
mips|mips_el| \ |mips|mips_el \
nios|nios2| \ |nios|nios2 \
ppc|5xx|5xxx|512x|8xx|8220|824x|8260|83xx|85xx|86xx|4xx|7xx|74xx| \ |ppc|5xx|5xxx|512x|8xx|8220|824x|8260|83xx|85xx|86xx|4xx|7xx|74xx|TSEC \
x86|I486|TSEC) |sh|sh3|sh4 \
|sparc \
|x86|I486 \
)
for target in `eval echo '$LIST_'${arg}` for target in `eval echo '$LIST_'${arg}`
do do
build_target ${target} build_target ${target}

1009
Makefile

File diff suppressed because it is too large Load Diff

402
README
View File

@@ -1,5 +1,5 @@
# #
# (C) Copyright 2000 - 2005 # (C) Copyright 2000 - 2008
# Wolfgang Denk, DENX Software Engineering, wd@denx.de. # Wolfgang Denk, DENX Software Engineering, wd@denx.de.
# #
# See file CREDITS for list of people who contributed to this # See file CREDITS for list of people who contributed to this
@@ -51,7 +51,8 @@ Makefile have been tested to some extent and can be considered
"working". In fact, many of them are used in production systems. "working". In fact, many of them are used in production systems.
In case of problems see the CHANGELOG and CREDITS files to find out In case of problems see the CHANGELOG and CREDITS files to find out
who contributed the specific port. who contributed the specific port. The MAINTAINERS file lists board
maintainers.
Where to get help: Where to get help:
@@ -65,6 +66,22 @@ before asking FAQ's. Please see
http://lists.sourceforge.net/lists/listinfo/u-boot-users/ http://lists.sourceforge.net/lists/listinfo/u-boot-users/
Where to get source code:
=========================
The U-Boot source code is maintained in the git repository at
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
available for FTP download from the ftp://ftp.denx.de/pub/u-boot/
directory.
Pre-built (and tested) images are available from
ftp://ftp.denx.de/pub/u-boot/images/
Where we come from: Where we come from:
=================== ===================
@@ -81,6 +98,7 @@ Where we come from:
- 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)
- current project page: see http://www.denx.de/wiki/UBoot
Names and Spelling: Names and Spelling:
@@ -135,9 +153,13 @@ Directory Hierarchy:
- at32ap Files specific to Atmel AVR32 AP CPUs - at32ap Files specific to Atmel AVR32 AP CPUs
- i386 Files specific to i386 CPUs - i386 Files specific to i386 CPUs
- ixp Files specific to Intel XScale IXP CPUs - ixp Files specific to Intel XScale IXP CPUs
- leon2 Files specific to Gaisler LEON2 SPARC CPU
- leon3 Files specific to Gaisler LEON3 SPARC CPU
- mcf52x2 Files specific to Freescale ColdFire MCF52x2 CPUs - mcf52x2 Files specific to Freescale ColdFire MCF52x2 CPUs
- mcf5227x Files specific to Freescale ColdFire MCF5227x CPUs
- mcf532x Files specific to Freescale ColdFire MCF5329 CPUs - mcf532x Files specific to Freescale ColdFire MCF5329 CPUs
- mcf5445x Files specific to Freescale ColdFire MCF5445x CPUs - mcf5445x Files specific to Freescale ColdFire MCF5445x CPUs
- mcf547x_8x Files specific to Freescale ColdFire MCF547x_8x CPUs
- mips Files specific to MIPS CPUs - mips Files specific to MIPS CPUs
- mpc5xx Files specific to Freescale MPC5xx CPUs - mpc5xx Files specific to Freescale MPC5xx CPUs
- mpc5xxx Files specific to Freescale MPC5xxx CPUs - mpc5xxx Files specific to Freescale MPC5xxx CPUs
@@ -166,6 +188,7 @@ Directory Hierarchy:
- lib_mips Files generic to MIPS architecture - lib_mips Files generic to MIPS architecture
- lib_nios Files generic to NIOS architecture - lib_nios Files generic to NIOS architecture
- lib_ppc Files generic to PowerPC architecture - lib_ppc Files generic to PowerPC architecture
- lib_sparc Files generic to SPARC architecture
- libfdt Library files to support flattened device trees - libfdt Library files to support flattened device trees
- net Networking code - net Networking code
- post Power On Self Test - post Power On Self Test
@@ -235,9 +258,7 @@ The following options need to be configured:
- Board Type: Define exactly one, e.g. CONFIG_MPC8540ADS. - Board Type: Define exactly one, e.g. CONFIG_MPC8540ADS.
- CPU Daughterboard Type: (if CONFIG_ATSTK1000 is defined) - CPU Daughterboard Type: (if CONFIG_ATSTK1000 is defined)
Define exactly one of Define exactly one, e.g. CONFIG_ATSTK1002
CONFIG_ATSTK1002
- CPU Module Type: (if CONFIG_COGENT is defined) - CPU Module Type: (if CONFIG_COGENT is defined)
Define exactly one of Define exactly one of
@@ -354,19 +375,6 @@ The following options need to be configured:
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_HAS_BD_T
* CONFIG_OF_LIBFDT - enables the "fdt bd_t" command
* CONFIG_OF_FLAT_TREE - The resulting flat device tree
will have a copy of the bd_t. Space should be
pre-allocated in the dts for the bd_t.
CONFIG_OF_HAS_UBOOT_ENV
* CONFIG_OF_LIBFDT - enables the "fdt env" command
* CONFIG_OF_FLAT_TREE - The resulting flat device tree
will have a copy of u-boot's environment variables
CONFIG_OF_BOARD_SETUP CONFIG_OF_BOARD_SETUP
Board code has addition modification that it wants to make Board code has addition modification that it wants to make
@@ -615,7 +623,6 @@ The following options need to be configured:
CONFIG_CMD_SPI * SPI serial bus support CONFIG_CMD_SPI * SPI serial bus support
CONFIG_CMD_USB * USB support CONFIG_CMD_USB * USB support
CONFIG_CMD_VFD * VFD support (TRAB) CONFIG_CMD_VFD * VFD support (TRAB)
CONFIG_CMD_BSP * Board SPecific functions
CONFIG_CMD_CDP * Cisco Discover Protocol support CONFIG_CMD_CDP * Cisco Discover Protocol support
CONFIG_CMD_FSL * Microblaze FSL support CONFIG_CMD_FSL * Microblaze FSL support
@@ -664,12 +671,15 @@ The following options need to be configured:
CONFIG_RTC_MPC8xx - use internal RTC of MPC8xx CONFIG_RTC_MPC8xx - use internal RTC of MPC8xx
CONFIG_RTC_PCF8563 - use Philips PCF8563 RTC CONFIG_RTC_PCF8563 - use Philips PCF8563 RTC
CONFIG_RTC_MC13783 - use MC13783 RTC
CONFIG_RTC_MC146818 - use MC146818 RTC CONFIG_RTC_MC146818 - use MC146818 RTC
CONFIG_RTC_DS1307 - use Maxim, Inc. DS1307 RTC CONFIG_RTC_DS1307 - use Maxim, Inc. DS1307 RTC
CONFIG_RTC_DS1337 - use Maxim, Inc. DS1337 RTC CONFIG_RTC_DS1337 - use Maxim, Inc. DS1337 RTC
CONFIG_RTC_DS1338 - use Maxim, Inc. DS1338 RTC CONFIG_RTC_DS1338 - use Maxim, Inc. DS1338 RTC
CONFIG_RTC_DS164x - use Dallas DS164x RTC CONFIG_RTC_DS164x - use Dallas DS164x RTC
CONFIG_RTC_ISL1208 - use Intersil ISL1208 RTC
CONFIG_RTC_MAX6900 - use Maxim, Inc. MAX6900 RTC CONFIG_RTC_MAX6900 - use Maxim, Inc. MAX6900 RTC
CFG_RTC_DS1337_NOOSC - Turn off the OSC output for DS1337
Note that if the RTC uses I2C, then the I2C interface Note that if the RTC uses I2C, then the I2C interface
must also be configured. See I2C Support, below. must also be configured. See I2C Support, below.
@@ -686,8 +696,8 @@ The following options need to be configured:
and/or CONFIG_ISO_PARTITION and/or CONFIG_ISO_PARTITION
If IDE or SCSI support is enabled (CONFIG_CMD_IDE or If IDE or SCSI support is enabled (CONFIG_CMD_IDE or
CONFIG_CMD_SCSI) you must configure support for at least CONFIG_CMD_SCSI) you must configure support for at
one partition type as well. least one partition type as well.
- IDE Reset method: - IDE Reset method:
CONFIG_IDE_RESET_ROUTINE - this is defined in several CONFIG_IDE_RESET_ROUTINE - this is defined in several
@@ -731,6 +741,9 @@ The following options need to be configured:
CONFIG_E1000 CONFIG_E1000
Support for Intel 8254x gigabit chips. Support for Intel 8254x gigabit chips.
CONFIG_E1000_FALLBACK_MAC
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
@@ -926,7 +939,7 @@ The following options need to be configured:
(i.e. setenv videomode 317; saveenv; reset;) (i.e. setenv videomode 317; saveenv; reset;)
- "videomode=bootargs" all the video parameters are parsed - "videomode=bootargs" all the video parameters are parsed
from the bootargs. (See drivers/videomodes.c) from the bootargs. (See drivers/video/videomodes.c)
CONFIG_VIDEO_SED13806 CONFIG_VIDEO_SED13806
@@ -1131,6 +1144,20 @@ The following options need to be configured:
of the "hostname" environment variable is passed as of the "hostname" environment variable is passed as
option 12 to the DHCP server. option 12 to the DHCP server.
CONFIG_BOOTP_DHCP_REQUEST_DELAY
A 32bit value in microseconds for a delay between
receiving a "DHCP Offer" and sending the "DHCP Request".
This fixes a problem with certain DHCP servers that don't
respond 100% of the time to a "DHCP request". E.g. On an
AT91RM9200 processor running at 180MHz, this delay needed
to be *at least* 15,000 usec before a Windows Server 2003
DHCP server would reply 100% of the time. I recommend at
least 50,000 usec to be safe. The alternative is to hope
that one of the retries will be successful but note that
the DHCP timeout and retry process takes a longer than
this delay.
- CDP Options: - CDP Options:
CONFIG_CDP_DEVICE_ID CONFIG_CDP_DEVICE_ID
@@ -1355,7 +1382,7 @@ The following options need to be configured:
CONFIG_FSL_I2C CONFIG_FSL_I2C
Define this option if you want to use Freescale's I2C driver in Define this option if you want to use Freescale's I2C driver in
drivers/fsl_i2c.c. drivers/i2c/fsl_i2c.c.
- SPI Support: CONFIG_SPI - SPI Support: CONFIG_SPI
@@ -1379,15 +1406,37 @@ The following options need to be configured:
SPI configuration items (port pins to use, etc). For SPI configuration items (port pins to use, etc). For
an example, see include/configs/sacsng.h. an example, see include/configs/sacsng.h.
- FPGA Support: CONFIG_FPGA_COUNT CONFIG_HARD_SPI
Enables a hardware SPI driver for general-purpose reads
and writes. As with CONFIG_SOFT_SPI, the board configuration
must define a list of chip-select function pointers.
Currently supported on some MPC8xxx processors. For an
example, see include/configs/mpc8349emds.h.
CONFIG_MXC_SPI
Enables the driver for the SPI controllers on i.MX and MXC
SoCs. Currently only i.MX31 is supported.
- FPGA Support: CONFIG_FPGA
Enables FPGA subsystem.
CONFIG_FPGA_<vendor>
Enables support for specific chip vendors.
(ALTERA, XILINX)
CONFIG_FPGA_<family>
Enables support for FPGA family.
(SPARTAN2, SPARTAN3, VIRTEX2, CYCLONE2, ACEX1K, ACEX)
CONFIG_FPGA_COUNT
Specify the number of FPGA devices to support. Specify the number of FPGA devices to support.
CONFIG_FPGA
Used to specify the types of FPGA devices. For example,
#define CONFIG_FPGA CFG_XILINX_VIRTEX2
CFG_FPGA_PROG_FEEDBACK CFG_FPGA_PROG_FEEDBACK
Enable printing of hash marks during FPGA configuration. Enable printing of hash marks during FPGA configuration.
@@ -1511,6 +1560,10 @@ The following options need to be configured:
before giving up the operation. If not defined, a before giving up the operation. If not defined, a
default value of 5 is used. default value of 5 is used.
CONFIG_ARP_TIMEOUT
Timeout waiting for an ARP reply in milliseconds.
- Command Interpreter: - Command Interpreter:
CONFIG_AUTO_COMPLETE CONFIG_AUTO_COMPLETE
@@ -1642,6 +1695,8 @@ The following options need to be configured:
example, some LED's) on your board. At the moment, example, some LED's) on your board. At the moment,
the following checkpoints are implemented: the following checkpoints are implemented:
Legacy uImage format:
Arg Where When Arg Where When
1 common/cmd_bootm.c before attempting to boot an image 1 common/cmd_bootm.c before attempting to boot an image
-1 common/cmd_bootm.c Image header has bad magic number -1 common/cmd_bootm.c Image header has bad magic number
@@ -1652,25 +1707,26 @@ The following options need to be configured:
4 common/cmd_bootm.c Image data has correct checksum 4 common/cmd_bootm.c Image data has correct checksum
-4 common/cmd_bootm.c Image is for unsupported architecture -4 common/cmd_bootm.c Image is for unsupported architecture
5 common/cmd_bootm.c Architecture check OK 5 common/cmd_bootm.c Architecture check OK
-5 common/cmd_bootm.c Wrong Image Type (not kernel, multi, standalone) -5 common/cmd_bootm.c Wrong Image Type (not kernel, multi)
6 common/cmd_bootm.c Image Type check OK 6 common/cmd_bootm.c Image Type check OK
-6 common/cmd_bootm.c gunzip uncompression error -6 common/cmd_bootm.c gunzip uncompression error
-7 common/cmd_bootm.c Unimplemented compression type -7 common/cmd_bootm.c Unimplemented compression type
7 common/cmd_bootm.c Uncompression OK 7 common/cmd_bootm.c Uncompression OK
-8 common/cmd_bootm.c Wrong Image Type (not kernel, multi, standalone) 8 common/cmd_bootm.c No uncompress/copy overwrite error
8 common/cmd_bootm.c Image Type check OK
-9 common/cmd_bootm.c Unsupported OS (not Linux, BSD, VxWorks, QNX) -9 common/cmd_bootm.c Unsupported OS (not Linux, BSD, VxWorks, QNX)
9 common/cmd_bootm.c Start initial ramdisk verification
-10 common/cmd_bootm.c Ramdisk header has bad magic number 9 common/image.c Start initial ramdisk verification
-11 common/cmd_bootm.c Ramdisk header has bad checksum -10 common/image.c Ramdisk header has bad magic number
10 common/cmd_bootm.c Ramdisk header is OK -11 common/image.c Ramdisk header has bad checksum
-12 common/cmd_bootm.c Ramdisk data has bad checksum 10 common/image.c Ramdisk header is OK
11 common/cmd_bootm.c Ramdisk data has correct checksum -12 common/image.c Ramdisk data has bad checksum
12 common/cmd_bootm.c Ramdisk verification complete, start loading 11 common/image.c Ramdisk data has correct checksum
-13 common/cmd_bootm.c Wrong Image Type (not PPC Linux Ramdisk) 12 common/image.c Ramdisk verification complete, start loading
13 common/cmd_bootm.c Start multifile image verification -13 common/image.c Wrong Image Type (not PPC Linux Ramdisk)
14 common/cmd_bootm.c No initial ramdisk, no multifile, continue. 13 common/image.c Start multifile image verification
15 common/cmd_bootm.c All preparation done, transferring control to OS 14 common/image.c No initial ramdisk, no multifile, continue.
15 lib_<arch>/bootm.c All preparation done, transferring control to OS
-30 lib_ppc/board.c Fatal error, hang the system -30 lib_ppc/board.c Fatal error, hang the system
-31 post/post.c POST test failed, detected by post_output_backlog() -31 post/post.c POST test failed, detected by post_output_backlog()
@@ -1740,6 +1796,59 @@ The following options need to be configured:
-83 common/cmd_net.c some error in automatic boot or autoscript -83 common/cmd_net.c some error in automatic boot or autoscript
84 common/cmd_net.c end without errors 84 common/cmd_net.c end without errors
FIT uImage format:
Arg Where When
100 common/cmd_bootm.c Kernel FIT Image has correct format
-100 common/cmd_bootm.c Kernel FIT Image has incorrect format
101 common/cmd_bootm.c No Kernel subimage unit name, using configuration
-101 common/cmd_bootm.c Can't get configuration for kernel subimage
102 common/cmd_bootm.c Kernel unit name specified
-103 common/cmd_bootm.c Can't get kernel subimage node offset
103 common/cmd_bootm.c Found configuration node
104 common/cmd_bootm.c Got kernel subimage node offset
-104 common/cmd_bootm.c Kernel subimage hash verification failed
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
-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)
-109 common/cmd_bootm.c Can't get kernel subimage type
-110 common/cmd_bootm.c Can't get kernel subimage comp
-111 common/cmd_bootm.c Can't get kernel subimage os
-112 common/cmd_bootm.c Can't get kernel subimage load address
-113 common/cmd_bootm.c Image uncompress/copy overwrite error
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 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
125 common/image.c Got ramdisk subimage node offset
-125 common/image.c Ramdisk subimage hash verification failed
126 common/image.c Ramdisk subimage hash verification OK
-126 common/image.c Ramdisk subimage for unsupported architecture
127 common/image.c Architecture check OK
-127 common/image.c Can't get ramdisk subimage data/size
128 common/image.c Got ramdisk subimage data/size
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
131 common/cmd_doc.c FIT image format OK
-140 common/cmd_ide.c Icorrect FIT image format
141 common/cmd_ide.c FIT image format OK
-150 common/cmd_nand.c Icorrect FIT image format
151 common/cmd_nand.c FIT image format OK
Modem Support: Modem Support:
-------------- --------------
@@ -1836,6 +1945,27 @@ Configuration Settings:
Scratch address used by the alternate memory test Scratch address used by the alternate memory test
You only need to set this if address zero isn't writeable You only need to set this if address zero isn't writeable
- 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
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
board ports in arch/powerpc with bootwrapper support that
recalculate the memory size from the SDRAM controller setup
will have to get fixed in Linux additionally.
This option can be used as a workaround for the 440EPx/GRx
CHIP 11 errata where the last 256 bytes in SDRAM shouldn't
be touched.
WARNING: Please make sure that this value is a multiple of
the Linux page size (normally 4k). If this is not the case,
then the end address of the Linux memory will be located at a
non page size aligned address and this could cause major
problems.
- CFG_TFTP_LOADADDR: - CFG_TFTP_LOADADDR:
Default load address for network file downloads Default load address for network file downloads
@@ -1876,8 +2006,11 @@ Configuration Settings:
- CFG_BOOTMAPSZ: - CFG_BOOTMAPSZ:
Maximum size of memory mapped by the startup code of Maximum size of memory mapped by the startup code of
the Linux kernel; all data that must be processed by the Linux kernel; all data that must be processed by
the Linux kernel (bd_info, boot arguments, eventually the Linux kernel (bd_info, boot arguments, FDT blob if
initrd image) must be put below this limit. used) must be put below this limit, unless "bootm_low"
enviroment variable is defined and non-zero. In such case
all data for the Linux kernel must be between "bootm_low"
and "bootm_low" + CFG_BOOTMAPSZ.
- CFG_MAX_FLASH_BANKS: - CFG_MAX_FLASH_BANKS:
Max number of Flash memory banks Max number of Flash memory banks
@@ -1922,12 +2055,24 @@ Configuration Settings:
This option also enables the building of the cfi_flash driver This option also enables the building of the cfi_flash driver
in the drivers directory in the drivers directory
- CFG_FLASH_USE_BUFFER_WRITE
Use buffered writes to flash.
- CONFIG_FLASH_SPANSION_S29WS_N
s29ws-n MirrorBit flash has non-standard addresses for buffered
write commands.
- CFG_FLASH_QUIET_TEST - CFG_FLASH_QUIET_TEST
If this option is defined, the common CFI flash doesn't If this option is defined, the common CFI flash doesn't
print it's warning upon not recognized FLASH banks. This print it's warning upon not recognized FLASH banks. This
is useful, if some of the configured banks are only is useful, if some of the configured banks are only
optionally available. optionally available.
- CONFIG_FLASH_SHOW_PROGRESS
If defined (must be an integer), print out countdown
digits and dots. Recommended value: 45 (9..1) for 80
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
@@ -2271,6 +2416,10 @@ Low Level (hardware related) configuration options:
enable I2C microcode relocation patch (MPC8xx); enable I2C microcode relocation patch (MPC8xx);
define relocation offset in DPRAM [DSP2] define relocation offset in DPRAM [DSP2]
- CFG_SMC_UCODE_PATCH, CFG_SMC_DPMEM_OFFSET [0x1FC0]:
enable SMC microcode relocation patch (MPC8xx);
define relocation offset in DPRAM [SMC1]
- CFG_SPI_UCODE_PATCH, CFG_SPI_DPMEM_OFFSET [0x1FC0]: - CFG_SPI_UCODE_PATCH, CFG_SPI_DPMEM_OFFSET [0x1FC0]:
enable SPI microcode relocation patch (MPC8xx); enable SPI microcode relocation patch (MPC8xx);
define relocation offset in DPRAM [SCC4] define relocation offset in DPRAM [SCC4]
@@ -2297,22 +2446,24 @@ Low Level (hardware related) configuration options:
Overrides the default PCI memory map in cpu/mpc8260/pci.c if set. Overrides the default PCI memory map in cpu/mpc8260/pci.c if set.
- CONFIG_SPD_EEPROM - CONFIG_SPD_EEPROM
Get DDR timing information from an I2C EEPROM. Common with pluggable Get DDR timing information from an I2C EEPROM. Common
memory modules such as SODIMMs with pluggable memory modules such as SODIMMs
SPD_EEPROM_ADDRESS SPD_EEPROM_ADDRESS
I2C address of the SPD EEPROM I2C address of the SPD EEPROM
- CFG_SPD_BUS_NUM - CFG_SPD_BUS_NUM
If SPD EEPROM is on an I2C bus other than the first one, specify here. If SPD EEPROM is on an I2C bus other than the first
Note that the value must resolve to something your driver can deal with. one, specify here. Note that the value must resolve
to something your driver can deal with.
- CFG_83XX_DDR_USES_CS0 - CFG_83XX_DDR_USES_CS0
Only for 83xx systems. If specified, then DDR should be configured Only for 83xx systems. If specified, then DDR should
using CS0 and CS1 instead of CS2 and CS3. be configured using CS0 and CS1 instead of CS2 and CS3.
- CFG_83XX_DDR_USES_CS0 - CFG_83XX_DDR_USES_CS0
Only for 83xx systems. If specified, then DDR should be configured Only for 83xx systems. If specified, then DDR should
using CS0 and CS1 instead of CS2 and CS3. be configured using CS0 and CS1 instead of CS2 and CS3.
- CONFIG_ETHER_ON_FEC[12] - CONFIG_ETHER_ON_FEC[12]
Define to enable FEC[12] on a 8xx series processor. Define to enable FEC[12] on a 8xx series processor.
@@ -2378,20 +2529,21 @@ Low Level (hardware related) configuration options:
Building the Software: Building the Software:
====================== ======================
Building U-Boot has been tested in native PPC environments (on a Building U-Boot has been tested in several native build environments
PowerBook G3 running LinuxPPC 2000) and in cross environments and in many different cross environments. Of course we cannot support
(running RedHat 6.x and 7.x Linux on x86, Solaris 2.6 on a SPARC, and all possibly existing versions of cross development tools in all
NetBSD 1.5 on x86). (potentially obsolete) versions. In case of tool chain problems we
recommend to use the ELDK (see http://www.denx.de/wiki/DULG/ELDK)
which is extensively used to build and test U-Boot.
If you are not using a native PPC environment, it is assumed that you If you are not using a native environment, it is assumed that you
have the GNU cross compiling tools available in your path and named have GNU cross compiling tools available in your path. In this case,
with a prefix of "powerpc-linux-". If this is not the case, (e.g. if you must set the environment variable CROSS_COMPILE in your shell.
you are using Monta Vista's Hard Hat Linux CDK 1.2) you must change Note that no changes to the Makefile or any other source files are
the definition of CROSS_COMPILE in Makefile. For HHL on a 4xx CPU, necessary. For example using the ELDK on a 4xx CPU, please enter:
change it to:
CROSS_COMPILE = ppc_4xx-
$ CROSS_COMPILE=ppc_4xx-
$ export CROSS_COMPILE
U-Boot is intended to be simple to build. After installing the U-Boot is intended to be simple to build. After installing the
sources you must configure U-Boot for one specific board type. This sources you must configure U-Boot for one specific board type. This
@@ -2399,8 +2551,8 @@ is done by typing:
make NAME_config make NAME_config
where "NAME_config" is the name of one of the existing where "NAME_config" is the name of one of the existing configu-
configurations; see the main Makefile for supported names. rations; see the main Makefile for supported names.
Note: for some board special configuration names may exist; check if 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
@@ -2480,7 +2632,7 @@ If you have modified U-Boot sources (for instance added a new board
or support for new devices, a new CPU, etc.) you are expected to or support for new devices, a new CPU, etc.) you are expected to
provide feedback to the other developers. The feedback normally takes provide feedback to the other developers. The feedback normally takes
the form of a "patch", i. e. a context diff against a certain (latest the form of a "patch", i. e. a context diff against a certain (latest
official or latest in CVS) version of U-Boot sources. official or latest in the git repository) version of U-Boot sources.
But before you submit such a patch, please verify that your modifi- But before you submit such a patch, please verify that your modifi-
cation did not break existing code. At least make sure that *ALL* of cation did not break existing code. At least make sure that *ALL* of
@@ -2488,8 +2640,8 @@ the supported boards compile WITHOUT ANY compiler warnings. To do so,
just run the "MAKEALL" script, which will configure and build U-Boot just run the "MAKEALL" script, which will configure and build U-Boot
for ALL supported system. Be warned, this will take a while. You can for ALL supported system. Be warned, this will take a while. You can
select which (cross) compiler to use by passing a `CROSS_COMPILE' select which (cross) compiler to use by passing a `CROSS_COMPILE'
environment variable to the script, i. e. to use the cross tools from environment variable to the script, i. e. to use the ELDK cross tools
MontaVista's Hard Hat Linux you can type you can type
CROSS_COMPILE=ppc_8xx- MAKEALL CROSS_COMPILE=ppc_8xx- MAKEALL
@@ -2497,20 +2649,21 @@ or to build on a native PowerPC system you can type
CROSS_COMPILE=' ' MAKEALL CROSS_COMPILE=' ' MAKEALL
When using the MAKEALL script, the default behaviour is to build U-Boot When using the MAKEALL script, the default behaviour is to build
in the source directory. This location can be changed by setting the U-Boot in the source directory. This location can be changed by
BUILD_DIR environment variable. Also, for each target built, the MAKEALL setting the BUILD_DIR environment variable. Also, for each target
script saves two log files (<target>.ERR and <target>.MAKEALL) in the built, the MAKEALL script saves two log files (<target>.ERR and
<source dir>/LOG directory. This default location can be changed by <target>.MAKEALL) in the <source dir>/LOG directory. This default
setting the MAKEALL_LOGDIR environment variable. For example: location can be changed by setting the MAKEALL_LOGDIR environment
variable. For example:
export BUILD_DIR=/tmp/build export BUILD_DIR=/tmp/build
export MAKEALL_LOGDIR=/tmp/log export MAKEALL_LOGDIR=/tmp/log
CROSS_COMPILE=ppc_8xx- MAKEALL CROSS_COMPILE=ppc_8xx- MAKEALL
With the above settings build objects are saved in the /tmp/build, log With the above settings build objects are saved in the /tmp/build,
files are saved in the /tmp/log and the source tree remains clean during log files are saved in the /tmp/log and the source tree remains clean
the whole build process. during the whole build process.
See also "U-Boot Porting Guide" below. See also "U-Boot Porting Guide" below.
@@ -2602,11 +2755,33 @@ Some configuration options can be set using Environment Variables:
bootfile - Name of the image to load with TFTP bootfile - Name of the image to load with TFTP
bootm_low - Memory range available for image processing in the bootm
command can be restricted. This variable is given as
a hexadecimal number and defines lowest address allowed
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.
bootm_size - Memory range available for image processing in the bootm
command can be restricted. This variable is given as
a hexadecimal number and defines the size of the region
allowed for use by the bootm command. See also "bootm_low"
environment variable.
autoload - if set to "no" (any string beginning with 'n'), autoload - if set to "no" (any string beginning with 'n'),
"bootp" will just load perform a lookup of the "bootp" will just load perform a lookup of the
configuration from the BOOTP server, but not try to configuration from the BOOTP server, but not try to
load any image using TFTP load any image using TFTP
autoscript - if set to "yes" commands like "loadb", "loady",
"bootp", "tftpb", "rarpboot" and "nfs" will attempt
to automatically run script images (by internally
calling "autoscript").
autoscript_uname - if script image is in a format (FIT) this
variable is used to get script subimage unit name.
autostart - if set to "yes", an image loaded using the "bootp", autostart - if set to "yes", an image loaded using the "bootp",
"rarpboot", "tftpboot" or "diskboot" commands will "rarpboot", "tftpboot" or "diskboot" commands will
be automatically started (by internally calling be automatically started (by internally calling
@@ -2680,6 +2855,10 @@ Some configuration options can be set using Environment Variables:
=> setenv ethact SCC ETHERNET => setenv ethact SCC ETHERNET
=> ping 10.0.0.1 # traffic sent on SCC ETHERNET => ping 10.0.0.1 # traffic sent on SCC ETHERNET
ethrotate - When set to "no" U-Boot does not go through all
available network interfaces.
It just stays at the currently selected interface.
netretry - When set to "no" each network operation will netretry - When set to "no" each network operation will
either succeed or fail without retrying. either succeed or fail without retrying.
When set to "once" the network operation will When set to "once" the network operation will
@@ -2688,6 +2867,9 @@ Some configuration options can be set using Environment Variables:
Useful on scripts which control the retry operation Useful on scripts which control the retry operation
themselves. themselves.
npe_ucode - see CONFIG_IXP4XX_NPE_EXT_UCOD
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.
@@ -2814,10 +2996,24 @@ o If neither SROM nor the environment contain a MAC address, an error
Image Formats: Image Formats:
============== ==============
The "boot" commands of this monitor operate on "image" files which U-Boot is capable of booting (and performing other auxiliary operations on)
can be basicly anything, preceeded by a special header; see the images in two formats:
definitions in include/image.h for details; basicly, the header
defines the following image properties: New uImage format (FIT)
-----------------------
Flexible and powerful format based on Flattened Image Tree -- FIT (similar
to Flattened Device Tree). It allows the use of images with multiple
components (several kernels, ramdisks, etc.), with contents protected by
SHA1, MD5 or CRC32. More details are found in the doc/uImage.FIT directory.
Old uImage format
-----------------
Old image format is based on binary files which can be basically anything,
preceded by a special header; see the definitions in include/image.h for
details; basically, the header defines the following image properties:
* Target Operating System (Provisions for OpenBSD, NetBSD, FreeBSD, * Target Operating System (Provisions for OpenBSD, NetBSD, FreeBSD,
4.4BSD, Linux, SVR4, Esix, Solaris, Irix, SCO, Dell, NCR, VxWorks, 4.4BSD, Linux, SVR4, Esix, Solaris, Irix, SCO, Dell, NCR, VxWorks,
@@ -3471,7 +3667,7 @@ GCC's implementation.
For PowerPC, the following registers have specific use: For PowerPC, the following registers have specific use:
R1: stack pointer R1: stack pointer
R2: TOC pointer R2: reserved for system use
R3-R4: parameter passing and return values R3-R4: parameter passing and return values
R5-R10: parameter passing R5-R10: parameter passing
R13: small data area pointer R13: small data area pointer
@@ -3480,7 +3676,7 @@ For PowerPC, the following registers have specific use:
(U-Boot also uses R14 as internal GOT pointer.) (U-Boot also uses R14 as internal GOT pointer.)
==> U-Boot will use R29 to hold a pointer to the global data ==> U-Boot will use R2 to hold a pointer to the global data
Note: on PPC, we could use a static initializer (since the Note: on PPC, we could use a static initializer (since the
address of the global data structure is known at compile time), address of the global data structure is known at compile time),
@@ -3489,6 +3685,11 @@ For PowerPC, the following registers have specific use:
average for all boards 752 bytes for the whole U-Boot image, average for all boards 752 bytes for the whole U-Boot image,
624 text + 127 data). 624 text + 127 data).
On Blackfin, the normal C ABI (except for P5) is followed as documented here:
http://docs.blackfin.uclinux.org/doku.php?id=application_binary_interface
==> U-Boot will use P5 to hold a pointer to the global data
On ARM, the following registers are used: On ARM, the following registers are used:
R0: function argument word/integer result R0: function argument word/integer result
@@ -3689,6 +3890,8 @@ may be rejected, even when they contain important and valuable stuff.
Patches shall be sent to the u-boot-users mailing list. Patches shall be sent to the u-boot-users mailing list.
Please see http://www.denx.de/wiki/UBoot/Patches for details.
When you send a patch, please include the following information with When you send a patch, please include the following information with
it: it:
@@ -3709,18 +3912,23 @@ it:
* If your patch adds new configuration options, don't forget to * If your patch adds new configuration options, don't forget to
document these in the README file. document these in the README file.
* The patch itself. If you are accessing the CVS repository use "cvs * The patch itself. If you are using git (which is *strongly*
update; cvs diff -puRN"; else, use "diff -purN OLD NEW". If your recommended) you can easily generate the patch using the
version of diff does not support these options, then get the latest "git-format-patch". If you then use "git-send-email" to send it to
version of GNU diff. the U-Boot mailing list, you will avoid most of the common problems
with some other mail clients.
The current directory when running this command shall be the top If you cannot use git, use "diff -purN OLD NEW". If your version of
level directory of the U-Boot source tree, or it's parent directory diff does not support these options, then get the latest version of
(i. e. please make sure that your patch includes sufficient GNU diff.
directory information for the affected files).
We accept patches as plain text, MIME attachments or as uuencoded The current directory when running this command shall be the parent
gzipped text. directory of the U-Boot source tree (i. e. please make sure that
your patch includes sufficient directory information for the
affected files).
We prefer patches as plain text. MIME attachments are discouraged,
and compressed attachments must not be used.
* If one logical set of modifications affects or creates several * If one logical set of modifications affects or creates several
files, all these changes shall be submitted in a SINGLE patch file. files, all these changes shall be submitted in a SINGLE patch file.
@@ -3747,4 +3955,6 @@ Notes:
modification. modification.
* Remember that there is a size limit of 40 kB per message on the * Remember that there is a size limit of 40 kB per message on the
u-boot-users mailing list. Compression may help. u-boot-users mailing list. Bigger patches will be moderated. If
they are reasonable and not bigger than 100 kB, they will be
acknowledged. Even bigger patches should be avoided.

39
api/Makefile Normal file
View File

@@ -0,0 +1,39 @@
#
# (C) Copyright 2007 Semihalf
#
# 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 Foundatio; 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)libapi.a
COBJS-$(CONFIG_API) += api.o api_net.o api_storage.o api_platform-$(ARCH).o
COBJS := $(COBJS-y)
SRCS := $(COBJS:.o=.c)
OBJS := $(addprefix $(obj),$(COBJS))
$(LIB): $(obj).depend $(OBJS)
$(AR) $(ARFLAGS) $@ $(OBJS)
# defines $(obj).depend target
include $(SRCTREE)/rules.mk
sinclude $(obj).depend

55
api/README Normal file
View File

@@ -0,0 +1,55 @@
U-Boot machine/arch independent API for external apps
=====================================================
1. Main assumptions
- there is a single entry point (syscall) to the API
- per current design the syscall is a C-callable function in the U-Boot
text, which might evolve into a real syscall using machine exception trap
once this initial version proves functional
- the consumer app is responsible for producing appropriate context (call
number and arguments)
- upon entry, the syscall dispatches the call to other (existing) U-Boot
functional areas like networking or storage operations
- consumer application will recognize the API is available by searching
a specified (assumed by convention) range of address space for the
signature
- the U-Boot integral part of the API is meant to be thin and non-intrusive,
leaving as much processing as possible on the consumer application side,
for example it doesn't keep states, but relies on hints from the app and
so on
- optional (CONFIG_API)
2. Calls
- console related (getc, putc, tstc etc.)
- system (reset, platform info)
- time (delay, current)
- env vars (enumerate all, get, set)
- devices (enumerate all, open, close, read, write); currently two classes
of devices are recognized and supported: network and storage (ide, scsi,
usb etc.)
3. Structure overview
- core API, integral part of U-Boot, mandatory
- implements the single entry point (mimics UNIX syscall)
- glue
- entry point at the consumer side, allows to make syscall, mandatory
part
- helper conveniency wrappers so that consumer app does not have to use
the syscall directly, but in a more friendly manner (a la libc calls),
optional part
- consumer application
- calls directly, or leverages the provided glue mid-layer

669
api/api.c Normal file
View File

@@ -0,0 +1,669 @@
/*
* (C) Copyright 2007 Semihalf
*
* Written by: Rafal Jaworowski <raj@semihalf.com>
*
* 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 <config.h>
#if defined(CONFIG_API)
#include <command.h>
#include <common.h>
#include <malloc.h>
#include <environment.h>
#include <linux/types.h>
#include <api_public.h>
#include "api_private.h"
#define DEBUG
#undef DEBUG
/* U-Boot routines needed */
extern int do_reset (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
/*****************************************************************************
*
* This is the API core.
*
* API_ functions are part of U-Boot code and constitute the lowest level
* calls:
*
* - they know what values they need as arguments
* - their direct return value pertains to the API_ "shell" itself (0 on
* success, some error code otherwise)
* - if the call returns a value it is buried within arguments
*
****************************************************************************/
#ifdef DEBUG
#define debugf(fmt, args...) do { printf("%s(): ", __func__); printf(fmt, ##args); } while (0)
#else
#define debugf(fmt, args...)
#endif
typedef int (*cfp_t)(va_list argp);
static int calls_no;
/*
* pseudo signature:
*
* int API_getc(int *c)
*/
static int API_getc(va_list ap)
{
int *c;
if ((c = (int *)va_arg(ap, u_int32_t)) == NULL)
return API_EINVAL;
*c = getc();
return 0;
}
/*
* pseudo signature:
*
* int API_tstc(int *c)
*/
static int API_tstc(va_list ap)
{
int *t;
if ((t = (int *)va_arg(ap, u_int32_t)) == NULL)
return API_EINVAL;
*t = tstc();
return 0;
}
/*
* pseudo signature:
*
* int API_putc(char *ch)
*/
static int API_putc(va_list ap)
{
char *c;
if ((c = (char *)va_arg(ap, u_int32_t)) == NULL)
return API_EINVAL;
putc(*c);
return 0;
}
/*
* pseudo signature:
*
* int API_puts(char **s)
*/
static int API_puts(va_list ap)
{
char *s;
if ((s = (char *)va_arg(ap, u_int32_t)) == NULL)
return API_EINVAL;
puts(s);
return 0;
}
/*
* pseudo signature:
*
* int API_reset(void)
*/
static int API_reset(va_list ap)
{
do_reset(NULL, 0, 0, NULL);
/* NOT REACHED */
return 0;
}
/*
* pseudo signature:
*
* int API_get_sys_info(struct sys_info *si)
*
* fill out the sys_info struct containing selected parameters about the
* machine
*/
static int API_get_sys_info(va_list ap)
{
struct sys_info *si;
si = (struct sys_info *)va_arg(ap, u_int32_t);
if (si == NULL)
return API_ENOMEM;
return (platform_sys_info(si)) ? 0 : API_ENODEV;
}
/*
* pseudo signature:
*
* int API_udelay(unsigned long *udelay)
*/
static int API_udelay(va_list ap)
{
unsigned long *d;
if ((d = (unsigned long *)va_arg(ap, u_int32_t)) == NULL)
return API_EINVAL;
udelay(*d);
return 0;
}
/*
* pseudo signature:
*
* int API_get_timer(unsigned long *current, unsigned long *base)
*/
static int API_get_timer(va_list ap)
{
unsigned long *base, *cur;
cur = (unsigned long *)va_arg(ap, u_int32_t);
if (cur == NULL)
return API_EINVAL;
base = (unsigned long *)va_arg(ap, u_int32_t);
if (base == NULL)
return API_EINVAL;
*cur = get_timer(*base);
return 0;
}
/*****************************************************************************
*
* pseudo signature:
*
* int API_dev_enum(struct device_info *)
*
*
* cookies uniqely identify the previously enumerated device instance and
* provide a hint for what to inspect in current enum iteration:
*
* - net: &eth_device struct address from list pointed to by eth_devices
*
* - storage: block_dev_desc_t struct address from &ide_dev_desc[n],
* &scsi_dev_desc[n] and similar tables
*
****************************************************************************/
static int API_dev_enum(va_list ap)
{
struct device_info *di;
/* arg is ptr to the device_info struct we are going to fill out */
di = (struct device_info *)va_arg(ap, u_int32_t);
if (di == NULL)
return API_EINVAL;
if (di->cookie == NULL) {
/* start over - clean up enumeration */
dev_enum_reset(); /* XXX shouldn't the name contain 'stor'? */
debugf("RESTART ENUM\n");
/* net device enumeration first */
if (dev_enum_net(di))
return 0;
}
/*
* The hidden assumption is there can only be one active network
* device and it is identified upon enumeration (re)start, so there's
* no point in trying to find network devices in other cases than the
* (re)start and hence the 'next' device can only be storage
*/
if (!dev_enum_storage(di))
/* make sure we mark there are no more devices */
di->cookie = NULL;
return 0;
}
static int API_dev_open(va_list ap)
{
struct device_info *di;
int err = 0;
/* arg is ptr to the device_info struct */
di = (struct device_info *)va_arg(ap, u_int32_t);
if (di == NULL)
return API_EINVAL;
/* Allow only one consumer of the device at a time */
if (di->state == DEV_STA_OPEN)
return API_EBUSY;
if (di->cookie == NULL)
return API_ENODEV;
if (di->type & DEV_TYP_STOR)
err = dev_open_stor(di->cookie);
else if (di->type & DEV_TYP_NET)
err = dev_open_net(di->cookie);
else
err = API_ENODEV;
if (!err)
di->state = DEV_STA_OPEN;
return err;
}
static int API_dev_close(va_list ap)
{
struct device_info *di;
int err = 0;
/* arg is ptr to the device_info struct */
di = (struct device_info *)va_arg(ap, u_int32_t);
if (di == NULL)
return API_EINVAL;
if (di->state == DEV_STA_CLOSED)
return 0;
if (di->cookie == NULL)
return API_ENODEV;
if (di->type & DEV_TYP_STOR)
err = dev_close_stor(di->cookie);
else if (di->type & DEV_TYP_NET)
err = dev_close_net(di->cookie);
else
/*
* In case of unknown device we cannot change its state, so
* only return error code
*/
err = API_ENODEV;
if (!err)
di->state = DEV_STA_CLOSED;
return err;
}
/*
* Notice: this is for sending network packets only, as U-Boot does not
* support writing to storage at the moment (12.2007)
*
* pseudo signature:
*
* int API_dev_write(
* struct device_info *di,
* void *buf,
* int *len
* )
*
* buf: ptr to buffer from where to get the data to send
*
* len: length of packet to be sent (in bytes)
*
*/
static int API_dev_write(va_list ap)
{
struct device_info *di;
void *buf;
int *len;
int err = 0;
/* 1. arg is ptr to the device_info struct */
di = (struct device_info *)va_arg(ap, u_int32_t);
if (di == NULL)
return API_EINVAL;
/* XXX should we check if device is open? i.e. the ->state ? */
if (di->cookie == NULL)
return API_ENODEV;
/* 2. arg is ptr to buffer from where to get data to write */
buf = (void *)va_arg(ap, u_int32_t);
if (buf == NULL)
return API_EINVAL;
/* 3. arg is length of buffer */
len = (int *)va_arg(ap, u_int32_t);
if (len == NULL)
return API_EINVAL;
if (*len <= 0)
return API_EINVAL;
if (di->type & DEV_TYP_STOR)
/*
* write to storage is currently not supported by U-Boot:
* no storage device implements block_write() method
*/
return API_ENODEV;
else if (di->type & DEV_TYP_NET)
err = dev_write_net(di->cookie, buf, *len);
else
err = API_ENODEV;
return err;
}
/*
* pseudo signature:
*
* int API_dev_read(
* struct device_info *di,
* void *buf,
* size_t *len,
* unsigned long *start
* size_t *act_len
* )
*
* buf: ptr to buffer where to put the read data
*
* len: ptr to length to be read
* - network: len of packet to read (in bytes)
* - storage: # of blocks to read (can vary in size depending on define)
*
* start: ptr to start block (only used for storage devices, ignored for
* network)
*
* act_len: ptr to where to put the len actually read
*/
static int API_dev_read(va_list ap)
{
struct device_info *di;
void *buf;
lbasize_t *len_stor, *act_len_stor;
lbastart_t *start;
int *len_net, *act_len_net;
/* 1. arg is ptr to the device_info struct */
di = (struct device_info *)va_arg(ap, u_int32_t);
if (di == NULL)
return API_EINVAL;
/* XXX should we check if device is open? i.e. the ->state ? */
if (di->cookie == NULL)
return API_ENODEV;
/* 2. arg is ptr to buffer from where to put the read data */
buf = (void *)va_arg(ap, u_int32_t);
if (buf == NULL)
return API_EINVAL;
if (di->type & DEV_TYP_STOR) {
/* 3. arg - ptr to var with # of blocks to read */
len_stor = (lbasize_t *)va_arg(ap, u_int32_t);
if (!len_stor)
return API_EINVAL;
if (*len_stor <= 0)
return API_EINVAL;
/* 4. arg - ptr to var with start block */
start = (lbastart_t *)va_arg(ap, u_int32_t);
/* 5. arg - ptr to var where to put the len actually read */
act_len_stor = (lbasize_t *)va_arg(ap, u_int32_t);
if (!act_len_stor)
return API_EINVAL;
*act_len_stor = dev_read_stor(di->cookie, buf, *len_stor, *start);
} else if (di->type & DEV_TYP_NET) {
/* 3. arg points to the var with length of packet to read */
len_net = (int *)va_arg(ap, u_int32_t);
if (!len_net)
return API_EINVAL;
if (*len_net <= 0)
return API_EINVAL;
/* 4. - ptr to var where to put the len actually read */
act_len_net = (int *)va_arg(ap, u_int32_t);
if (!act_len_net)
return API_EINVAL;
*act_len_net = dev_read_net(di->cookie, buf, *len_net);
} else
return API_ENODEV;
return 0;
}
/*
* pseudo signature:
*
* int API_env_get(const char *name, char **value)
*
* name: ptr to name of env var
*/
static int API_env_get(va_list ap)
{
char *name, **value;
if ((name = (char *)va_arg(ap, u_int32_t)) == NULL)
return API_EINVAL;
if ((value = (char **)va_arg(ap, u_int32_t)) == NULL)
return API_EINVAL;
*value = getenv(name);
return 0;
}
/*
* pseudo signature:
*
* int API_env_set(const char *name, const char *value)
*
* name: ptr to name of env var
*
* value: ptr to value to be set
*/
static int API_env_set(va_list ap)
{
char *name, *value;
if ((name = (char *)va_arg(ap, u_int32_t)) == NULL)
return API_EINVAL;
if ((value = (char *)va_arg(ap, u_int32_t)) == NULL)
return API_EINVAL;
setenv(name, value);
return 0;
}
/*
* pseudo signature:
*
* int API_env_enum(const char *last, char **next)
*
* last: ptr to name of env var found in last iteration
*/
static int API_env_enum(va_list ap)
{
int i, n;
char *last, **next;
last = (char *)va_arg(ap, u_int32_t);
if ((next = (char **)va_arg(ap, u_int32_t)) == NULL)
return API_EINVAL;
if (last == NULL)
/* start over */
*next = ((char *)env_get_addr(0));
else {
*next = last;
for (i = 0; env_get_char(i) != '\0'; i = n + 1) {
for (n = i; env_get_char(n) != '\0'; ++n) {
if (n >= CFG_ENV_SIZE) {
/* XXX shouldn't we set *next = NULL?? */
return 0;
}
}
if (envmatch((uchar *)last, i) < 0)
continue;
/* try to get next name */
i = n + 1;
if (env_get_char(i) == '\0') {
/* no more left */
*next = NULL;
return 0;
}
*next = ((char *)env_get_addr(i));
return 0;
}
}
return 0;
}
static cfp_t calls_table[API_MAXCALL] = { NULL, };
/*
* The main syscall entry point - this is not reentrant, only one call is
* serviced until finished.
*
* e.g. syscall(1, int *, u_int32_t, u_int32_t, u_int32_t, u_int32_t);
*
* call: syscall number
*
* retval: points to the return value placeholder, this is the place the
* syscall puts its return value, if NULL the caller does not
* expect a return value
*
* ... syscall arguments (variable number)
*
* returns: 0 if the call not found, 1 if serviced
*/
int syscall(int call, int *retval, ...)
{
va_list ap;
int rv;
if (call < 0 || call >= calls_no) {
debugf("invalid call #%d\n", call);
return 0;
}
if (calls_table[call] == NULL) {
debugf("syscall #%d does not have a handler\n", call);
return 0;
}
va_start(ap, retval);
rv = calls_table[call](ap);
if (retval != NULL)
*retval = rv;
return 1;
}
void api_init(void)
{
struct api_signature *sig = NULL;
/* TODO put this into linker set one day... */
calls_table[API_RSVD] = NULL;
calls_table[API_GETC] = &API_getc;
calls_table[API_PUTC] = &API_putc;
calls_table[API_TSTC] = &API_tstc;
calls_table[API_PUTS] = &API_puts;
calls_table[API_RESET] = &API_reset;
calls_table[API_GET_SYS_INFO] = &API_get_sys_info;
calls_table[API_UDELAY] = &API_udelay;
calls_table[API_GET_TIMER] = &API_get_timer;
calls_table[API_DEV_ENUM] = &API_dev_enum;
calls_table[API_DEV_OPEN] = &API_dev_open;
calls_table[API_DEV_CLOSE] = &API_dev_close;
calls_table[API_DEV_READ] = &API_dev_read;
calls_table[API_DEV_WRITE] = &API_dev_write;
calls_table[API_ENV_GET] = &API_env_get;
calls_table[API_ENV_SET] = &API_env_set;
calls_table[API_ENV_ENUM] = &API_env_enum;
calls_no = API_MAXCALL;
debugf("API initialized with %d calls\n", calls_no);
dev_stor_init();
/*
* Produce the signature so the API consumers can find it
*/
sig = malloc(sizeof(struct api_signature));
if (sig == NULL) {
printf("API: could not allocate memory for the signature!\n");
return;
}
debugf("API sig @ 0x%08x\n", sig);
memcpy(sig->magic, API_SIG_MAGIC, 8);
sig->version = API_SIG_VERSION;
sig->syscall = &syscall;
sig->checksum = 0;
sig->checksum = crc32(0, (unsigned char *)sig,
sizeof(struct api_signature));
debugf("syscall entry: 0x%08x\n", sig->syscall);
}
void platform_set_mr(struct sys_info *si, unsigned long start, unsigned long size,
int flags)
{
int i;
if (!si->mr || !size || (flags == 0))
return;
/* find free slot */
for (i = 0; i < si->mr_no; i++)
if (si->mr[i].flags == 0) {
/* insert new mem region */
si->mr[i].start = start;
si->mr[i].size = size;
si->mr[i].flags = flags;
return;
}
}
#endif /* CONFIG_API */

113
api/api_net.c Normal file
View File

@@ -0,0 +1,113 @@
/*
* (C) Copyright 2007 Semihalf
*
* Written by: Rafal Jaworowski <raj@semihalf.com>
*
* 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 <config.h>
#if defined(CONFIG_API)
#include <common.h>
#include <net.h>
#include <linux/types.h>
#include <api_public.h>
DECLARE_GLOBAL_DATA_PTR;
#define DEBUG
#undef DEBUG
#if !defined(CONFIG_NET_MULTI)
#error "API/net is currently only available for platforms with CONFIG_NET_MULTI"
#endif
#ifdef DEBUG
#define debugf(fmt, args...) do { printf("%s(): ", __func__); printf(fmt, ##args); } while (0)
#else
#define debugf(fmt, args...)
#endif
#define errf(fmt, args...) do { printf("ERROR @ %s(): ", __func__); printf(fmt, ##args); } while (0)
static int dev_valid_net(void *cookie)
{
return ((void *)eth_get_dev() == cookie) ? 1 : 0;
}
int dev_open_net(void *cookie)
{
if (!dev_valid_net(cookie))
return API_ENODEV;
if (eth_init(gd->bd) < 0)
return API_EIO;
return 0;
}
int dev_close_net(void *cookie)
{
if (!dev_valid_net(cookie))
return API_ENODEV;
eth_halt();
return 0;
}
/*
* There can only be one active eth interface at a time - use what is
* currently set to eth_current
*/
int dev_enum_net(struct device_info *di)
{
struct eth_device *eth_current = eth_get_dev();
di->type = DEV_TYP_NET;
di->cookie = (void *)eth_current;
if (di->cookie == NULL)
return 0;
memcpy(di->di_net.hwaddr, eth_current->enetaddr, 6);
debugf("device found, returning cookie 0x%08x\n",
(u_int32_t)di->cookie);
return 1;
}
int dev_write_net(void *cookie, void *buf, int len)
{
/* XXX verify that cookie points to a valid net device??? */
return eth_send(buf, len);
}
int dev_read_net(void *cookie, void *buf, int len)
{
/* XXX verify that cookie points to a valid net device??? */
return eth_receive(buf, len);
}
#endif /* CONFIG_API */

60
api/api_platform-arm.c Normal file
View File

@@ -0,0 +1,60 @@
/*
* (C) Copyright 2007 Semihalf
*
* Written by: Rafal Jaworowski <raj@semihalf.com>
*
* 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
*
*
* This file contains routines that fetch data from ARM-dependent sources
* (bd_info etc.)
*
*/
#include <config.h>
#if defined(CONFIG_API)
#include <linux/types.h>
#include <api_public.h>
#include <asm/u-boot.h>
#include <asm/global_data.h>
#include "api_private.h"
DECLARE_GLOBAL_DATA_PTR;
/*
* Important notice: handling of individual fields MUST be kept in sync with
* include/asm-arm/u-boot.h and include/asm-arm/global_data.h, so any changes
* need to reflect their current state and layout of structures involved!
*/
int platform_sys_info(struct sys_info *si)
{
int i;
for (i = 0; i < CONFIG_NR_DRAM_BANKS; i++)
platform_set_mr(si, gd->bd->bi_dram[i].start,
gd->bd->bi_dram[i].size, MR_ATTR_DRAM);
return 1;
}
#endif /* CONFIG_API */

79
api/api_platform-ppc.c Normal file
View File

@@ -0,0 +1,79 @@
/*
* (C) Copyright 2007 Semihalf
*
* Written by: Rafal Jaworowski <raj@semihalf.com>
*
* 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
*
*
* This file contains routines that fetch data from PowerPC-dependent sources
* (bd_info etc.)
*
*/
#include <config.h>
#if defined(CONFIG_API)
#include <linux/types.h>
#include <api_public.h>
#include <asm/u-boot.h>
#include <asm/global_data.h>
#include "api_private.h"
DECLARE_GLOBAL_DATA_PTR;
/*
* Important notice: handling of individual fields MUST be kept in sync with
* include/asm-ppc/u-boot.h and include/asm-ppc/global_data.h, so any changes
* need to reflect their current state and layout of structures involved!
*/
int platform_sys_info(struct sys_info *si)
{
si->clk_bus = gd->bus_clk;
si->clk_cpu = gd->cpu_clk;
#if defined(CONFIG_5xx) || defined(CONFIG_8xx) || defined(CONFIG_8260) || \
defined(CONFIG_E500) || defined(CONFIG_MPC86xx)
#define bi_bar bi_immr_base
#elif defined(CONFIG_MPC5xxx)
#define bi_bar bi_mbar_base
#elif defined(CONFIG_MPC83XX)
#define bi_bar bi_immrbar
#elif defined(CONFIG_MPC8220)
#define bi_bar bi_mbar_base
#endif
#if defined(bi_bar)
si->bar = gd->bd->bi_bar;
#undef bi_bar
#else
si->bar = NULL;
#endif
platform_set_mr(si, gd->bd->bi_memstart, gd->bd->bi_memsize, MR_ATTR_DRAM);
platform_set_mr(si, gd->bd->bi_flashstart, gd->bd->bi_flashsize, MR_ATTR_FLASH);
platform_set_mr(si, gd->bd->bi_sramstart, gd->bd->bi_sramsize, MR_ATTR_SRAM);
return 1;
}
#endif /* CONFIG_API */

48
api/api_private.h Normal file
View File

@@ -0,0 +1,48 @@
/*
* (C) Copyright 2007 Semihalf
*
* Written by: Rafal Jaworowski <raj@semihalf.com>
*
* 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
*
*/
#ifndef _API_PRIVATE_H_
#define _API_PRIVATE_H_
void api_init(void);
void platform_set_mr(struct sys_info *, unsigned long, unsigned long, int);
int platform_sys_info(struct sys_info *);
void dev_enum_reset(void);
int dev_enum_storage(struct device_info *);
int dev_enum_net(struct device_info *);
int dev_open_stor(void *);
int dev_open_net(void *);
int dev_close_stor(void *);
int dev_close_net(void *);
lbasize_t dev_read_stor(void *, void *, lbasize_t, lbastart_t);
int dev_read_net(void *, void *, int);
int dev_write_net(void *, void *, int);
void dev_stor_init(void);
#endif /* _API_PRIVATE_H_ */

370
api/api_storage.c Normal file
View File

@@ -0,0 +1,370 @@
/*
* (C) Copyright 2007 Semihalf
*
* Written by: Rafal Jaworowski <raj@semihalf.com>
*
* 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 <config.h>
#if defined(CONFIG_API)
#include <common.h>
#include <api_public.h>
#define DEBUG
#undef DEBUG
#ifdef DEBUG
#define debugf(fmt, args...) do { printf("%s(): ", __func__); printf(fmt, ##args); } while (0)
#else
#define debugf(fmt, args...)
#endif
#define errf(fmt, args...) do { printf("ERROR @ %s(): ", __func__); printf(fmt, ##args); } while (0)
#define ENUM_IDE 0
#define ENUM_USB 1
#define ENUM_SCSI 2
#define ENUM_MMC 3
#define ENUM_MAX 4
struct stor_spec {
int max_dev;
int enum_started;
int enum_ended;
int type; /* "external" type: DT_STOR_{IDE,USB,etc} */
char name[4];
};
static struct stor_spec specs[ENUM_MAX] = { { 0, 0, 0, 0, "" }, };
void dev_stor_init(void)
{
#if defined(CONFIG_CMD_IDE)
specs[ENUM_IDE].max_dev = CFG_IDE_MAXDEVICE;
specs[ENUM_IDE].enum_started = 0;
specs[ENUM_IDE].enum_ended = 0;
specs[ENUM_IDE].type = DEV_TYP_STOR | DT_STOR_IDE;
specs[ENUM_IDE].name = "ide";
#endif
#if defined(CONFIG_CMD_USB)
specs[ENUM_USB].max_dev = USB_MAX_STOR_DEV;
specs[ENUM_USB].enum_started = 0;
specs[ENUM_USB].enum_ended = 0;
specs[ENUM_USB].type = DEV_TYP_STOR | DT_STOR_USB;
specs[ENUM_USB].name = "usb";
#endif
#if defined(CONFIG_CMD_SCSI)
specs[ENUM_SCSI].max_dev = CFG_SCSI_MAX_DEVICE;
specs[ENUM_SCSI].enum_started = 0;
specs[ENUM_SCSI].enum_ended = 0;
specs[ENUM_SCSI].type = DEV_TYP_STOR | DT_STOR_SCSI;
specs[ENUM_SCSI].name = "scsi";
#endif
}
/*
* Finds next available device in the storage group
*
* type: storage group type - ENUM_IDE, ENUM_SCSI etc.
*
* first: if 1 the first device in the storage group is returned (if
* exists), if 0 the next available device is searched
*
* more: returns 0/1 depending if there are more devices in this group
* available (for future iterations)
*
* returns: 0/1 depending if device found in this iteration
*/
static int dev_stor_get(int type, int first, int *more, struct device_info *di)
{
int found = 0;
*more = 0;
int i;
block_dev_desc_t *dd;
if (first) {
di->cookie = (void *)get_dev(specs[type].name, 0);
found = 1;
} else {
for (i = 0; i < specs[type].max_dev; i++)
if (di->cookie == (void *)get_dev(specs[type].name, i)) {
/* previous cookie found -- advance to the
* next device, if possible */
if (++i >= specs[type].max_dev) {
/* out of range, no more to enum */
di->cookie = NULL;
break;
}
di->cookie = (void *)get_dev(specs[type].name, i);
found = 1;
/* provide hint if there are more devices in
* this group to enumerate */
if ((i + 1) < specs[type].max_dev)
*more = 1;
break;
}
}
if (found) {
di->type = specs[type].type;
if (di->cookie != NULL) {
dd = (block_dev_desc_t *)di->cookie;
if (dd->type == DEV_TYPE_UNKNOWN) {
debugf("device instance exists, but is not active..");
found = 0;
} else {
di->di_stor.block_count = dd->lba;
di->di_stor.block_size = dd->blksz;
}
}
} else
di->cookie = NULL;
return found;
}
/*
* returns: ENUM_IDE, ENUM_USB etc. based on block_dev_desc_t
*/
static int dev_stor_type(block_dev_desc_t *dd)
{
int i, j;
for (i = ENUM_IDE; i < ENUM_MAX; i++)
for (j = 0; j < specs[i].max_dev; j++)
if (dd == get_dev(specs[i].name, j))
return i;
return ENUM_MAX;
}
/*
* returns: 0/1 whether cookie points to some device in this group
*/
static int dev_is_stor(int type, struct device_info *di)
{
return (dev_stor_type(di->cookie) == type) ? 1 : 0;
}
static int dev_enum_stor(int type, struct device_info *di)
{
int found = 0, more = 0;
debugf("called, type %d\n", type);
/*
* Formulae for enumerating storage devices:
* 1. if cookie (hint from previous enum call) is NULL we start again
* with enumeration, so return the first available device, done.
*
* 2. if cookie is not NULL, check if it identifies some device in
* this group:
*
* 2a. if cookie is a storage device from our group (IDE, USB etc.),
* return next available (if exists) in this group
*
* 2b. if it isn't device from our group, check if such devices were
* ever enumerated before:
* - if not, return the first available device from this group
* - else return 0
*/
if (di->cookie == NULL) {
debugf("group%d - enum restart\n", type);
/*
* 1. Enumeration (re-)started: take the first available
* device, if exists
*/
found = dev_stor_get(type, 1, &more, di);
specs[type].enum_started = 1;
} else if (dev_is_stor(type, di)) {
debugf("group%d - enum continued for the next device\n", type);
if (specs[type].enum_ended) {
debugf("group%d - nothing more to enum!\n", type);
return 0;
}
/* 2a. Attempt to take a next available device in the group */
found = dev_stor_get(type, 0, &more, di);
} else {
if (specs[type].enum_ended) {
debugf("group %d - already enumerated, skipping\n", type);
return 0;
}
debugf("group%d - first time enum\n", type);
if (specs[type].enum_started == 0) {
/*
* 2b. If enumerating devices in this group did not
* happen before, it means the cookie pointed to a
* device frome some other group (another storage
* group, or network); in this case try to take the
* first available device from our group
*/
specs[type].enum_started = 1;
/*
* Attempt to take the first device in this group:
*'first element' flag is set
*/
found = dev_stor_get(type, 1, &more, di);
} else {
errf("group%d - out of order iteration\n", type);
found = 0;
more = 0;
}
}
/*
* If there are no more devices in this group, consider its
* enumeration finished
*/
specs[type].enum_ended = (!more) ? 1 : 0;
if (found)
debugf("device found, returning cookie 0x%08x\n",
(u_int32_t)di->cookie);
else
debugf("no device found\n");
return found;
}
void dev_enum_reset(void)
{
int i;
for (i = 0; i < ENUM_MAX; i ++) {
specs[i].enum_started = 0;
specs[i].enum_ended = 0;
}
}
int dev_enum_storage(struct device_info *di)
{
int i;
/*
* check: ide, usb, scsi, mmc
*/
for (i = ENUM_IDE; i < ENUM_MAX; i ++) {
if (dev_enum_stor(i, di))
return 1;
}
return 0;
}
static int dev_stor_is_valid(int type, block_dev_desc_t *dd)
{
int i;
for (i = 0; i < specs[type].max_dev; i++)
if (dd == get_dev(specs[type].name, i))
if (dd->type != DEV_TYPE_UNKNOWN)
return 1;
return 0;
}
int dev_open_stor(void *cookie)
{
int type = dev_stor_type(cookie);
if (type == ENUM_MAX)
return API_ENODEV;
if (dev_stor_is_valid(type, (block_dev_desc_t *)cookie))
return 0;
return API_ENODEV;
}
int dev_close_stor(void *cookie)
{
/*
* Not much to do as we actually do not alter storage devices upon
* close
*/
return 0;
}
static int dev_stor_index(block_dev_desc_t *dd)
{
int i, type;
type = dev_stor_type(dd);
for (i = 0; i < specs[type].max_dev; i++)
if (dd == get_dev(specs[type].name, i))
return i;
return (specs[type].max_dev);
}
lbasize_t dev_read_stor(void *cookie, void *buf, lbasize_t len, lbastart_t start)
{
int type;
block_dev_desc_t *dd = (block_dev_desc_t *)cookie;
if ((type = dev_stor_type(dd)) == ENUM_MAX)
return 0;
if (!dev_stor_is_valid(type, dd))
return 0;
if ((dd->block_read) == NULL) {
debugf("no block_read() for device 0x%08x\n");
return 0;
}
return (dd->block_read(dev_stor_index(dd), start, len, buf));
}
#endif /* CONFIG_API */

109
api_examples/Makefile Normal file
View File

@@ -0,0 +1,109 @@
#
# (C) Copyright 2007 Semihalf
#
# 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 Foundatio; 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
#
ifeq ($(ARCH),ppc)
LOAD_ADDR = 0x40000
endif
#ifeq ($(ARCH),arm)
#LOAD_ADDR = 0xc100000
#endif
include $(TOPDIR)/config.mk
ELF-$(CONFIG_API) += demo
BIN-$(CONFIG_API) += demo.bin
ELF := $(ELF-y)
BIN := $(BIN-y)
#CFLAGS += -v
COBJS-$(CONFIG_API) += $(ELF:=.o)
SOBJS-$(CONFIG_API) += crt0.o
ifeq ($(ARCH),ppc)
SOBJS-$(CONFIG_API) += ppcstring.o
endif
COBJS := $(COBJS-y)
SOBJS := $(SOBJS-y)
LIB = $(obj)libglue.a
LIBCOBJS-$(CONFIG_API) += glue.o crc32.o ctype.o string.o vsprintf.o \
libgenwrap.o
LIBCOBJS := $(LIBCOBJS-y)
LIBOBJS = $(addprefix $(obj),$(SOBJS) $(LIBCOBJS))
SRCS := $(COBJS:.o=.c) $(LIBCOBJS:.o=.c) $(SOBJS:.o=.S)
OBJS := $(addprefix $(obj),$(COBJS))
ELF := $(addprefix $(obj),$(ELF))
BIN := $(addprefix $(obj),$(BIN))
gcclibdir := $(shell dirname `$(CC) -print-libgcc-file-name`)
CPPFLAGS += -I..
all: $(obj).depend $(OBJS) $(LIB) $(ELF) $(BIN)
#########################################################################
$(LIB): $(obj).depend $(LIBOBJS)
$(AR) $(ARFLAGS) $@ $(LIBOBJS)
$(ELF):
$(obj)%: $(obj)%.o $(LIB)
$(LD) $(obj)crt0.o -Ttext $(LOAD_ADDR) \
-o $@ $< $(LIB) \
-L$(gcclibdir) -lgcc
$(BIN):
$(obj)%.bin: $(obj)%
$(OBJCOPY) -O binary $< $@ 2>/dev/null
$(obj)crc32.c:
@rm -f $(obj)crc32.c
ln -s $(src)../lib_generic/crc32.c $(obj)crc32.c
$(obj)ctype.c:
@rm -f $(obj)ctype.c
ln -s $(src)../lib_generic/ctype.c $(obj)ctype.c
$(obj)string.c:
@rm -f $(obj)string.c
ln -s $(src)../lib_generic/string.c $(obj)string.c
$(obj)vsprintf.c:
@rm -f $(obj)vsprintf.c
ln -s $(src)../lib_generic/vsprintf.c $(obj)vsprintf.c
ifeq ($(ARCH),ppc)
$(obj)ppcstring.S:
@rm -f $(obj)ppcstring.S
ln -s $(src)../lib_ppc/ppcstring.S $(obj)ppcstring.S
endif
#########################################################################
# defines $(obj).depend target
include $(SRCTREE)/rules.mk
sinclude $(obj).depend
#########################################################################

50
api_examples/crt0.S Normal file
View File

@@ -0,0 +1,50 @@
/*
* (C) Copyright 2007 Semihalf
*
* Written by: Rafal Jaworowski <raj@semihalf.com>
*
* 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
*
*/
#if defined(CONFIG_PPC)
.text
.globl _start
_start:
b main
.globl syscall
syscall:
lis %r11, syscall_ptr@ha
addi %r11, %r11, syscall_ptr@l
lwz %r11, 0(%r11)
mtctr %r11
bctr
.globl syscall_ptr
syscall_ptr:
.align 4
.long 0
#else
#error No support for this arch!
#endif

258
api_examples/demo.c Normal file
View File

@@ -0,0 +1,258 @@
/*
* (C) Copyright 2007 Semihalf
*
* Written by: Rafal Jaworowski <raj@semihalf.com>
*
* 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 <common.h>
#include <linux/types.h>
#include <api_public.h>
#include "glue.h"
#define errf(fmt, args...) do { printf("ERROR @ %s(): ", __func__); printf(fmt, ##args); } while (0)
void test_dump_si(struct sys_info *);
void test_dump_di(int);
void test_dump_sig(struct api_signature *);
char buf[2048];
#define WAIT_SECS 5
int main(int argc, char *argv[])
{
int rv = 0;
int h, i, j;
int devs_no;
struct api_signature *sig = NULL;
ulong start, now;
struct device_info *di;
if (!api_search_sig(&sig))
return -1;
syscall_ptr = sig->syscall;
if (syscall_ptr == NULL)
return -2;
if (sig->version > API_SIG_VERSION)
return -3;
printf("API signature found @%x\n", sig);
test_dump_sig(sig);
printf("\n*** Consumer API test ***\n");
printf("syscall ptr 0x%08x@%08x\n", syscall_ptr, &syscall_ptr);
/* console activities */
ub_putc('B');
printf("*** Press any key to continue ***\n");
printf("got char 0x%x\n", ub_getc());
/* system info */
test_dump_si(ub_get_sys_info());
/* timing */
printf("\n*** Timing - wait a couple of secs ***\n");
start = ub_get_timer(0);
printf("\ntime: start %lu\n\n", start);
for (i = 0; i < WAIT_SECS; i++)
for (j = 0; j < 1000; j++)
ub_udelay(1000); /* wait 1 ms */
/* this is the number of milliseconds that passed from ub_get_timer(0) */
now = ub_get_timer(start);
printf("\ntime: now %lu\n\n", now);
/* enumerate devices */
printf("\n*** Enumerate devices ***\n");
devs_no = ub_dev_enum();
printf("Number of devices found: %d\n", devs_no);
if (devs_no == 0)
return -1;
printf("\n*** Show devices ***\n");
for (i = 0; i < devs_no; i++) {
test_dump_di(i);
printf("\n");
}
printf("\n*** Operations on devices ***\n");
/* test opening a device already opened */
h = 0;
if ((rv = ub_dev_open(h)) != 0) {
errf("open device %d error %d\n", h, rv);
return -1;
}
if ((rv = ub_dev_open(h)) != 0)
errf("open device %d error %d\n", h, rv);
ub_dev_close(h);
/* test storage */
printf("Trying storage devices...\n");
for (i = 0; i < devs_no; i++) {
di = ub_dev_get(i);
if (di->type & DEV_TYP_STOR)
break;
}
if (i == devs_no)
printf("No storage devices available\n");
else {
if ((rv = ub_dev_open(i)) != 0)
errf("open device %d error %d\n", i, rv);
else if ((rv = ub_dev_read(i, &buf, 200, 20)) != 0)
errf("could not read from device %d, error %d\n", i, rv);
ub_dev_close(i);
}
/* test networking */
printf("Trying network devices...\n");
for (i = 0; i < devs_no; i++) {
di = ub_dev_get(i);
if (di->type == DEV_TYP_NET)
break;
}
if (i == devs_no)
printf("No network devices available\n");
else {
if ((rv = ub_dev_open(i)) != 0)
errf("open device %d error %d\n", i, rv);
else if ((rv = ub_dev_send(i, &buf, 2048)) != 0)
errf("could not send to device %d, error %d\n", i, rv);
ub_dev_close(i);
}
if (ub_dev_close(h) != 0)
errf("could not close device %d\n", h);
printf("\n*** Env vars ***\n");
printf("ethact = %s\n", ub_env_get("ethact"));
printf("old fileaddr = %s\n", ub_env_get("fileaddr"));
ub_env_set("fileaddr", "deadbeef");
printf("new fileaddr = %s\n", ub_env_get("fileaddr"));
const char *env = NULL;
while ((env = ub_env_enum(env)) != NULL)
printf("%s = %s\n", env, ub_env_get(env));
/* reset */
ub_reset();
printf("\nHmm, reset returned...?!\n");
return rv;
}
void test_dump_sig(struct api_signature *sig)
{
printf("signature:\n");
printf(" version\t= %d\n", sig->version);
printf(" checksum\t= 0x%08x\n", sig->checksum);
printf(" sc entry\t= 0x%08x\n", sig->syscall);
}
void test_dump_si(struct sys_info *si)
{
int i;
printf("sys info:\n");
printf(" clkbus\t= 0x%08x\n", si->clk_bus);
printf(" clkcpu\t= 0x%08x\n", si->clk_cpu);
printf(" bar\t\t= 0x%08x\n", si->bar);
printf("---\n");
for (i = 0; i < si->mr_no; i++) {
if (si->mr[i].flags == 0)
break;
printf(" start\t= 0x%08lx\n", si->mr[i].start);
printf(" size\t= 0x%08lx\n", si->mr[i].size);
switch(si->mr[i].flags & 0x000F) {
case MR_ATTR_FLASH:
printf(" type FLASH\n");
break;
case MR_ATTR_DRAM:
printf(" type DRAM\n");
break;
case MR_ATTR_SRAM:
printf(" type SRAM\n");
break;
default:
printf(" type UNKNOWN\n");
}
printf("---\n");
}
}
static char * test_stor_typ(int type)
{
if (type & DT_STOR_IDE)
return "IDE";
if (type & DT_STOR_SCSI)
return "SCSI";
if (type & DT_STOR_USB)
return "USB";
if (type & DT_STOR_MMC);
return "MMC";
return "Unknown";
}
void test_dump_di(int handle)
{
int i;
struct device_info *di = ub_dev_get(handle);
printf("device info (%d):\n", handle);
printf(" cookie\t= 0x%08x\n", (uint32_t)di->cookie);
printf(" type\t\t= 0x%08x\n", di->type);
if (di->type == DEV_TYP_NET) {
printf(" hwaddr\t= ");
for (i = 0; i < 6; i++)
printf("%02x ", di->di_net.hwaddr[i]);
printf("\n");
} else if (di->type & DEV_TYP_STOR) {
printf(" type\t\t= %s\n", test_stor_typ(di->type));
printf(" blk size\t\t= %d\n", di->di_stor.block_size);
printf(" blk count\t\t= %d\n", di->di_stor.block_count);
}
}

405
api_examples/glue.c Normal file
View File

@@ -0,0 +1,405 @@
/*
* (C) Copyright 2007 Semihalf
*
* Written by: Rafal Jaworowski <raj@semihalf.com>
*
* 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 <common.h>
#include <linux/types.h>
#include <api_public.h>
#include "glue.h"
static int valid_sig(struct api_signature *sig)
{
uint32_t checksum;
struct api_signature s;
if (sig == NULL)
return 0;
/*
* Clear the checksum field (in the local copy) so as to calculate the
* CRC with the same initial contents as at the time when the sig was
* produced
*/
s = *sig;
s.checksum = 0;
checksum = crc32(0, (unsigned char *)&s, sizeof(struct api_signature));
if (checksum != sig->checksum)
return 0;
return 1;
}
/*
* Searches for the U-Boot API signature
*
* returns 1/0 depending on found/not found result
*/
int api_search_sig(struct api_signature **sig) {
unsigned char *sp;
if (sig == NULL)
return 0;
sp = (unsigned char *)API_SEARCH_START;
while ((sp + (int)API_SIG_MAGLEN) < (unsigned char *)API_SEARCH_END) {
if (!memcmp(sp, API_SIG_MAGIC, API_SIG_MAGLEN)) {
*sig = (struct api_signature *)sp;
if (valid_sig(*sig))
return 1;
}
sp += API_SIG_MAGLEN;
}
*sig = NULL;
return 0;
}
/****************************************
*
* console
*
****************************************/
int ub_getc(void)
{
int c;
if (!syscall(API_GETC, NULL, (uint32_t)&c))
return -1;
return c;
}
int ub_tstc(void)
{
int t;
if (!syscall(API_TSTC, NULL, (uint32_t)&t))
return -1;
return t;
}
void ub_putc(char c)
{
syscall(API_PUTC, NULL, (uint32_t)&c);
}
void ub_puts(const char *s)
{
syscall(API_PUTS, NULL, (uint32_t)s);
}
/****************************************
*
* system
*
****************************************/
void ub_reset(void)
{
syscall(API_RESET, NULL);
}
#define MR_MAX 5
static struct mem_region mr[MR_MAX];
static struct sys_info si;
struct sys_info * ub_get_sys_info(void)
{
int err = 0;
memset(&si, 0, sizeof(struct sys_info));
si.mr = mr;
si.mr_no = MR_MAX;
memset(&mr, 0, sizeof(mr));
if (!syscall(API_GET_SYS_INFO, &err, (u_int32_t)&si))
return NULL;
return ((err) ? NULL : &si);
}
/****************************************
*
* timing
*
****************************************/
void ub_udelay(unsigned long usec)
{
syscall(API_UDELAY, NULL, &usec);
}
unsigned long ub_get_timer(unsigned long base)
{
unsigned long cur;
if (!syscall(API_GET_TIMER, NULL, &cur, &base))
return 0;
return cur;
}
/****************************************************************************
*
* devices
*
* Devices are identified by handles: numbers 0, 1, 2, ..., MAX_DEVS-1
*
***************************************************************************/
#define MAX_DEVS 6
static struct device_info devices[MAX_DEVS];
struct device_info * ub_dev_get(int i)
{
return ((i < 0 || i >= MAX_DEVS) ? NULL : &devices[i]);
}
/*
* Enumerates the devices: fills out device_info elements in the devices[]
* array.
*
* returns: number of devices found
*/
int ub_dev_enum(void)
{
struct device_info *di;
int n = 0;
memset(&devices, 0, sizeof(struct device_info) * MAX_DEVS);
di = &devices[0];
if (!syscall(API_DEV_ENUM, NULL, di))
return 0;
while (di->cookie != NULL) {
if (++n >= MAX_DEVS)
break;
/* take another device_info */
di++;
/* pass on the previous cookie */
di->cookie = devices[n - 1].cookie;
if (!syscall(API_DEV_ENUM, NULL, di))
return 0;
}
return n;
}
/*
* handle: 0-based id of the device
*
* returns: 0 when OK, err otherwise
*/
int ub_dev_open(int handle)
{
struct device_info *di;
int err = 0;
if (handle < 0 || handle >= MAX_DEVS)
return API_EINVAL;
di = &devices[handle];
if (!syscall(API_DEV_OPEN, &err, di))
return -1;
return err;
}
int ub_dev_close(int handle)
{
struct device_info *di;
if (handle < 0 || handle >= MAX_DEVS)
return API_EINVAL;
di = &devices[handle];
if (!syscall(API_DEV_CLOSE, NULL, di))
return -1;
return 0;
}
/*
*
* Validates device for read/write, it has to:
*
* - have sane handle
* - be opened
*
* returns: 0/1 accordingly
*/
static int dev_valid(int handle)
{
if (handle < 0 || handle >= MAX_DEVS)
return 0;
if (devices[handle].state != DEV_STA_OPEN)
return 0;
return 1;
}
static int dev_stor_valid(int handle)
{
if (!dev_valid(handle))
return 0;
if (!(devices[handle].type & DEV_TYP_STOR))
return 0;
return 1;
}
int ub_dev_read(int handle, void *buf, lbasize_t len, lbastart_t start)
{
struct device_info *di;
lbasize_t act_len;
int err = 0;
if (!dev_stor_valid(handle))
return API_ENODEV;
di = &devices[handle];
if (!syscall(API_DEV_READ, &err, di, buf, &len, &start, &act_len))
return -1;
if (err)
return err;
if (act_len != len)
return API_EIO;
return 0;
}
static int dev_net_valid(int handle)
{
if (!dev_valid(handle))
return 0;
if (devices[handle].type != DEV_TYP_NET)
return 0;
return 1;
}
int ub_dev_recv(int handle, void *buf, int len)
{
struct device_info *di;
int err = 0, act_len;
if (!dev_net_valid(handle))
return API_ENODEV;
di = &devices[handle];
if (!syscall(API_DEV_READ, &err, di, buf, &len, &act_len))
return -1;
if (err)
return -1;
return act_len;
}
int ub_dev_send(int handle, void *buf, int len)
{
struct device_info *di;
int err = 0;
if (!dev_net_valid(handle))
return API_ENODEV;
di = &devices[handle];
if (!syscall(API_DEV_WRITE, &err, di, buf, &len))
return -1;
return err;
}
/****************************************
*
* env vars
*
****************************************/
char * ub_env_get(const char *name)
{
char *value;
if (!syscall(API_ENV_GET, NULL, (uint32_t)name, (uint32_t)&value))
return NULL;
return value;
}
void ub_env_set(const char *name, char *value)
{
syscall(API_ENV_SET, NULL, (uint32_t)name, (uint32_t)value);
}
static char env_name[256];
const char * ub_env_enum(const char *last)
{
const char *env, *str;
int i;
env = NULL;
/*
* It's OK to pass only the name piece as last (and not the whole
* 'name=val' string), since the API_ENUM_ENV call uses envmatch()
* internally, which handles such case
*/
if (!syscall(API_ENV_ENUM, NULL, (uint32_t)last, (uint32_t)&env))
return NULL;
if (!env)
/* no more env. variables to enumerate */
return NULL;
/* next enumerated env var */
memset(env_name, 0, 256);
for (i = 0, str = env; *str != '=' && *str != '\0';)
env_name[i++] = *str++;
env_name[i] = '\0';
return env_name;
}

76
api_examples/glue.h Normal file
View File

@@ -0,0 +1,76 @@
/*
* (C) Copyright 2007 Semihalf
*
* Written by: Rafal Jaworowski <raj@semihalf.com>
*
* 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
*
*/
/*
* This is the header file for conveniency wrapper routines (API glue)
*/
#ifndef _API_GLUE_H_
#define _API_GLUE_H_
#define API_SEARCH_START (255 * 1024 * 1024) /* start at 1MB below top RAM */
#define API_SEARCH_END (256 * 1024 * 1024 - 1) /* ...and search to the end */
int syscall(int, int *, ...);
void * syscall_ptr;
int api_search_sig(struct api_signature **sig);
/*
* ub_ library calls are part of the application, not U-Boot code! They are
* front-end wrappers that are used by the consumer application: they prepare
* arguments for particular syscall and jump to the low level syscall()
*/
/* console */
int ub_getc(void);
int ub_tstc(void);
void ub_putc(char c);
void ub_puts(const char *s);
/* system */
void ub_reset(void);
struct sys_info * ub_get_sys_info(void);
/* time */
void ub_udelay(unsigned long);
unsigned long ub_get_timer(unsigned long);
/* env vars */
char * ub_env_get(const char *name);
void ub_env_set(const char *name, char *value);
const char * ub_env_enum(const char *last);
/* devices */
int ub_dev_enum(void);
int ub_dev_open(int handle);
int ub_dev_close(int handle);
int ub_dev_read(int handle, void *buf,
lbasize_t len, lbastart_t start);
int ub_dev_send(int handle, void *buf, int len);
int ub_dev_recv(int handle, void *buf, int len);
struct device_info * ub_dev_get(int);
#endif /* _API_GLUE_H_ */

95
api_examples/libgenwrap.c Normal file
View File

@@ -0,0 +1,95 @@
/*
* (C) Copyright 2007 Semihalf
*
* Written by: Rafal Jaworowski <raj@semihalf.com>
*
* 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
*
*
* This is is a set of wrappers/stubs that allow to use certain routines from
* U-Boot's lib_generic in the standalone app. This way way we can re-use
* existing code e.g. operations on strings and similar.
*
*/
#include <common.h>
#include <linux/types.h>
#include <api_public.h>
#include "glue.h"
/*
* printf() and vprintf() are stolen from u-boot/common/console.c
*/
void printf (const char *fmt, ...)
{
va_list args;
uint i;
char printbuffer[256];
va_start (args, fmt);
/* For this to work, printbuffer must be larger than
* anything we ever want to print.
*/
i = vsprintf (printbuffer, fmt, args);
va_end (args);
/* Print the string */
ub_puts (printbuffer);
}
void vprintf (const char *fmt, va_list args)
{
uint i;
char printbuffer[256];
/* For this to work, printbuffer must be larger than
* anything we ever want to print.
*/
i = vsprintf (printbuffer, fmt, args);
/* Print the string */
ub_puts (printbuffer);
}
void putc (const char c)
{
ub_putc(c);
}
void udelay(unsigned long usec)
{
ub_udelay(usec);
}
void do_reset (void)
{
ub_reset();
}
void *malloc (size_t len)
{
return NULL;
}
void hang (void)
{
while (1) ;
}

View File

@@ -21,4 +21,19 @@
# MA 02111-1307 USA # MA 02111-1307 USA
# #
PLATFORM_CPPFLAGS += -DCONFIG_BLACKFIN -D__BLACKFIN__ CONFIG_BFIN_CPU := $(strip $(subst ",,$(CONFIG_BFIN_CPU)))
CONFIG_BFIN_BOOT_MODE := $(strip $(subst ",,$(CONFIG_BFIN_BOOT_MODE)))
PLATFORM_RELFLAGS += -ffixed-P5
PLATFORM_CPPFLAGS += -DCONFIG_BLACKFIN
ifneq (,$(CONFIG_BFIN_CPU))
PLATFORM_RELFLAGS += -mcpu=$(CONFIG_BFIN_CPU)
endif
SYM_PREFIX = _
LDR_FLAGS += --use-vmas
ifneq (,$(findstring s,$(MAKEFLAGS)))
LDR_FLAGS += --quiet
endif

View File

@@ -22,7 +22,7 @@
# MA 02111-1307 USA # MA 02111-1307 USA
# #
sinclude $(TOPDIR)/board/$(BOARDDIR)/textbase.mk sinclude $(OBJTREE)/board/$(BOARDDIR)/textbase.mk
ifndef TEXT_BASE ifndef TEXT_BASE
TEXT_BASE = 0xFE000000 TEXT_BASE = 0xFE000000
endif endif

View File

@@ -132,7 +132,7 @@ uint mii_send(uint mii_cmd)
return (mii_reply & 0xffff); /* data read from phy */ return (mii_reply & 0xffff); /* data read from phy */
} }
#endif /* CFG_DISCOVER_PHY || (CONFIG_COMMANDS & CONFIG_CMD_MII) */ #endif /* CFG_DISCOVER_PHY || CONFIG_CMD_MII */
#if defined(CFG_DISCOVER_PHY) #if defined(CFG_DISCOVER_PHY)
int mii_discover_phy(struct eth_device *dev) int mii_discover_phy(struct eth_device *dev)

View File

@@ -22,7 +22,6 @@
*/ */
OUTPUT_ARCH(m68k) OUTPUT_ARCH(m68k)
SEARCH_DIR(/lib); SEARCH_DIR(/usr/lib); SEARCH_DIR(/usr/local/lib);
/* Do we need any of these for elf? /* Do we need any of these for elf?
__DYNAMIC = 0; */ __DYNAMIC = 0; */
SECTIONS SECTIONS
@@ -126,7 +125,7 @@ SECTIONS
__init_end = .; __init_end = .;
__bss_start = .; __bss_start = .;
.bss : .bss (NOLOAD) :
{ {
_sbss = .; _sbss = .;
*(.sbss) *(.scommon) *(.sbss) *(.scommon)

View File

@@ -31,7 +31,6 @@
*/ */
OUTPUT_ARCH(powerpc) OUTPUT_ARCH(powerpc)
SEARCH_DIR(/lib); SEARCH_DIR(/usr/lib); SEARCH_DIR(/usr/local/lib); SEARCH_DIR(/usr/local/powerpc-any-elf/lib);
/* Do we need any of these for elf? /* Do we need any of these for elf?
__DYNAMIC = 0; */ __DYNAMIC = 0; */
SECTIONS SECTIONS
@@ -142,7 +141,7 @@ SECTIONS
__init_end = .; __init_end = .;
__bss_start = .; __bss_start = .;
.bss : .bss (NOLOAD) :
{ {
*(.sbss) *(.scommon) *(.sbss) *(.scommon)
*(.dynbss) *(.dynbss)

View File

@@ -31,7 +31,6 @@
*/ */
OUTPUT_ARCH(powerpc) OUTPUT_ARCH(powerpc)
SEARCH_DIR(/lib); SEARCH_DIR(/usr/lib); SEARCH_DIR(/usr/local/lib); SEARCH_DIR(/usr/local/powerpc-any-elf/lib);
/* Do we need any of these for elf? /* Do we need any of these for elf?
__DYNAMIC = 0; */ __DYNAMIC = 0; */
SECTIONS SECTIONS

View File

@@ -29,7 +29,6 @@
*/ */
OUTPUT_ARCH(powerpc) OUTPUT_ARCH(powerpc)
SEARCH_DIR(/lib); SEARCH_DIR(/usr/lib); SEARCH_DIR(/usr/local/lib); SEARCH_DIR(/usr/local/powerpc-any-elf/lib);
/* Do we need any of these for elf? /* Do we need any of these for elf?
__DYNAMIC = 0; */ __DYNAMIC = 0; */
SECTIONS SECTIONS
@@ -128,7 +127,7 @@ SECTIONS
__init_end = .; __init_end = .;
__bss_start = .; __bss_start = .;
.bss : .bss (NOLOAD) :
{ {
*(.sbss) *(.scommon) *(.sbss) *(.scommon)
*(.dynbss) *(.dynbss)

View File

@@ -26,7 +26,6 @@
*/ */
OUTPUT_ARCH(powerpc) OUTPUT_ARCH(powerpc)
SEARCH_DIR(/lib); SEARCH_DIR(/usr/lib); SEARCH_DIR(/usr/local/lib); SEARCH_DIR(/usr/local/powerpc-any-elf/lib);
/* Do we need any of these for elf? /* Do we need any of these for elf?
__DYNAMIC = 0; */ __DYNAMIC = 0; */
SECTIONS SECTIONS
@@ -126,7 +125,7 @@ SECTIONS
__init_end = .; __init_end = .;
__bss_start = .; __bss_start = .;
.bss : .bss (NOLOAD) :
{ {
*(.sbss) *(.scommon) *(.sbss) *(.scommon)
*(.dynbss) *(.dynbss)

View File

@@ -26,7 +26,6 @@
*/ */
OUTPUT_ARCH(powerpc) OUTPUT_ARCH(powerpc)
SEARCH_DIR(/lib); SEARCH_DIR(/usr/lib); SEARCH_DIR(/usr/local/lib); SEARCH_DIR(/usr/local/powerpc-any-elf/lib);
/* Do we need any of these for elf? /* Do we need any of these for elf?
__DYNAMIC = 0; */ __DYNAMIC = 0; */
SECTIONS SECTIONS
@@ -126,7 +125,7 @@ SECTIONS
__init_end = .; __init_end = .;
__bss_start = .; __bss_start = .;
.bss : .bss (NOLOAD) :
{ {
*(.sbss) *(.scommon) *(.sbss) *(.scommon)
*(.dynbss) *(.dynbss)

48
board/MigoR/Makefile Normal file
View File

@@ -0,0 +1,48 @@
#
# Copyright (C) 2007
# Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
#
# Copyright (C) 2007
# Kenati Technologies, Inc.
#
# board/MigoR/Makefile
#
# 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 = lib$(BOARD).a
OBJS := migo_r.o
SOBJS := lowlevel_init.o
$(LIB): $(OBJS) $(SOBJS)
$(AR) crv $@ $(OBJS) $(SOBJS)
clean:
rm -f $(SOBJS) $(OBJS)
distclean: clean
rm -f $(LIB) core *.bak .depend
#########################################################################
.depend: Makefile $(SOBJS:.o=.S) $(OBJS:.o=.c)
$(CC) -M $(CPPFLAGS) $(SOBJS:.o=.S) $(OBJS:.o=.c) > $@
-include .depend
#########################################################################

31
board/MigoR/config.mk Normal file
View File

@@ -0,0 +1,31 @@
#
# Copyright (C) 2007
# Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
#
# Copyright (C) 2007
# Kenati Technologies, Inc.
#
# board/MigoR/config.mk
#
# 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
#
# TEXT_BASE refers to image _after_ relocation.
#
# NOTE: Must match value used in u-boot.lds (in this directory).
#
TEXT_BASE = 0x8FFC0000

264
board/MigoR/lowlevel_init.S Normal file
View File

@@ -0,0 +1,264 @@
/*
* Copyright (C) 2007
* Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
*
* Copyright (C) 2007
* Kenati Technologies, Inc.
*
* board/MigoR/lowlevel_init.S
*
* 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>
#include <version.h>
#include <asm/processor.h>
/*
* Board specific low level init code, called _very_ early in the
* startup sequence. Relocation to SDRAM has not happened yet, no
* stack is available, bss section has not been initialised, etc.
*
* (Note: As no stack is available, no subroutines can be called...).
*/
.global lowlevel_init
.text
.align 2
lowlevel_init:
mov.l CCR_A, r1 ! Address of Cache Control Register
mov.l CCR_D, r0 ! Instruction Cache Invalidate
mov.l r0, @r1
mov.l MMUCR_A, r1 ! Address of MMU Control Register
mov.l MMUCR_D, r0 ! TI == TLB Invalidate bit
mov.l r0, @r1
mov.l MSTPCR0_A, r1 ! Address of Power Control Register 0
mov.l MSTPCR0_D, r0 !
mov.l r0, @r1
mov.l MSTPCR2_A, r1 ! Address of Power Control Register 2
mov.l MSTPCR2_D, r0 !
mov.l r0, @r1
mov.l PFC_PULCR_A, r1
mov.w PFC_PULCR_D, r0
mov.w r0,@r1
mov.l PFC_DRVCR_A, r1
mov.w PFC_DRVCR_D, r0
mov.w r0, @r1
mov.l SBSCR_A, r1 !
mov.w SBSCR_D, r0 !
mov.w r0, @r1
mov.l PSCR_A, r1 !
mov.w PSCR_D, r0 !
mov.w r0, @r1
mov.l RWTCSR_A, r1 ! 0xA4520004 (Watchdog Control / Status Register)
mov.w RWTCSR_D_1, r0 ! 0xA507 -> timer_STOP/WDT_CLK=max
mov.w r0, @r1
mov.l RWTCNT_A, r1 ! 0xA4520000 (Watchdog Count Register)
mov.w RWTCNT_D, r0 ! 0x5A00 -> Clear
mov.w r0, @r1
mov.l RWTCSR_A, r1 ! 0xA4520004 (Watchdog Control / Status Register)
mov.w RWTCSR_D_2, r0 ! 0xA504 -> timer_STOP/CLK=500ms
mov.w r0, @r1
mov.l DLLFRQ_A, r1 ! 20080115
mov.l DLLFRQ_D, r0 ! 20080115
mov.l r0, @r1
mov.l FRQCR_A, r1 ! 0xA4150000 Frequency control register
mov.l FRQCR_D, r0 ! 20080115
mov.l r0, @r1
mov.l CCR_A, r1 ! Address of Cache Control Register
mov.l CCR_D_2, r0 ! ??
mov.l r0, @r1
bsc_init:
mov.l CMNCR_A, r1 ! CMNCR address -> R1
mov.l CMNCR_D, r0 ! CMNCR data -> R0
mov.l r0, @r1 ! CMNCR set
mov.l CS0BCR_A, r1 ! CS0BCR address -> R1
mov.l CS0BCR_D, r0 ! CS0BCR data -> R0
mov.l r0, @r1 ! CS0BCR set
mov.l CS4BCR_A, r1 ! CS4BCR address -> R1
mov.l CS4BCR_D, r0 ! CS4BCR data -> R0
mov.l r0, @r1 ! CS4BCR set
mov.l CS5ABCR_A, r1 ! CS5ABCR address -> R1
mov.l CS5ABCR_D, r0 ! CS5ABCR data -> R0
mov.l r0, @r1 ! CS5ABCR set
mov.l CS5BBCR_A, r1 ! CS5BBCR address -> R1
mov.l CS5BBCR_D, r0 ! CS5BBCR data -> R0
mov.l r0, @r1 ! CS5BBCR set
mov.l CS6ABCR_A, r1 ! CS6ABCR address -> R1
mov.l CS6ABCR_D, r0 ! CS6ABCR data -> R0
mov.l r0, @r1 ! CS6ABCR set
mov.l CS0WCR_A, r1 ! CS0WCR address -> R1
mov.l CS0WCR_D, r0 ! CS0WCR data -> R0
mov.l r0, @r1 ! CS0WCR set
mov.l CS4WCR_A, r1 ! CS4WCR address -> R1
mov.l CS4WCR_D, r0 ! CS4WCR data -> R0
mov.l r0, @r1 ! CS4WCR set
mov.l CS5AWCR_A, r1 ! CS5AWCR address -> R1
mov.l CS5AWCR_D, r0 ! CS5AWCR data -> R0
mov.l r0, @r1 ! CS5AWCR set
mov.l CS5BWCR_A, r1 ! CS5BWCR address -> R1
mov.l CS5BWCR_D, r0 ! CS5BWCR data -> R0
mov.l r0, @r1 ! CS5BWCR set
mov.l CS6AWCR_A, r1 ! CS6AWCR address -> R1
mov.l CS6AWCR_D, r0 ! CS6AWCR data -> R0
mov.l r0, @r1 ! CS6AWCR set
! SDRAM initialization
mov.l SDCR_A, r1 ! SB_SDCR address -> R1
mov.l SDCR_D, r0 ! SB_SDCR data -> R0
mov.l r0, @r1 ! SB_SDCR set
mov.l SDWCR_A, r1 ! SB_SDWCR address -> R1
mov.l SDWCR_D, r0 ! SB_SDWCR data -> R0
mov.l r0, @r1 ! SB_SDWCR set
mov.l SDPCR_A, r1 ! SB_SDPCR address -> R1
mov.l SDPCR_D, r0 ! SB_SDPCR data -> R0
mov.l r0, @r1 ! SB_SDPCR set
mov.l RTCOR_A, r1 ! SB_RTCOR address -> R1
mov.l RTCOR_D, r0 ! SB_RTCOR data -> R0
mov.l r0, @r1 ! SB_RTCOR set
mov.l RTCNT_A, r1 ! SB_RTCNT address -> R1
mov.l RTCNT_D, r0 ! SB_RTCNT data -> R0
mov.l r0, @r1
mov.l RTCSR_A, r1 ! SB_RTCSR address -> R1
mov.l RTCSR_D, r0 ! SB_RTCSR data -> R0
mov.l r0, @r1 ! SB_RTCSR set
mov.l RFCR_A, r1 ! SB_RFCR address -> R1
mov.l RFCR_D, r0 ! SB_RFCR data -> R0
mov.l r0, @r1
mov.l SDMR3_A, r1 ! SDMR3 address -> R1
mov #0x00, r0 ! SDMR3 data -> R0
mov.b r0, @r1 ! SDMR3 set
! BL bit off (init = ON) (?!?)
stc sr, r0 ! BL bit off(init=ON)
mov.l SR_MASK_D, r1
and r1, r0
ldc r0, sr
rts
mov #0, r0
.align 4
CCR_A: .long CCR
MMUCR_A: .long MMUCR
MSTPCR0_A: .long MSTPCR0
MSTPCR2_A: .long MSTPCR2
PFC_PULCR_A: .long PULCR
PFC_DRVCR_A: .long DRVCR
SBSCR_A: .long SBSCR
PSCR_A: .long PSCR
RWTCSR_A: .long RWTCSR
RWTCNT_A: .long RWTCNT
FRQCR_A: .long FRQCR
PLLCR_A: .long PLLCR
DLLFRQ_A: .long DLLFRQ
CCR_D: .long 0x00000800
CCR_D_2: .long 0x00000103
MMUCR_D: .long 0x00000004
MSTPCR0_D: .long 0x00001001
MSTPCR2_D: .long 0xffffffff
PFC_PULCR_D: .long 0x6000
PFC_DRVCR_D: .long 0x0464
FRQCR_D: .long 0x07033639
PLLCR_D: .long 0x00005000
DLLFRQ_D: .long 0x000004F6 ! 20080115
CMNCR_A: .long CMNCR
CMNCR_D: .long 0x0000001B ! 20080115
CS0BCR_A: .long CS0BCR ! Flash bank 1
CS0BCR_D: .long 0x24920400
CS4BCR_A: .long CS4BCR !
CS4BCR_D: .long 0x10003400 ! 20080115
CS5ABCR_A: .long CS5ABCR !
CS5ABCR_D: .long 0x24920400
CS5BBCR_A: .long CS5BBCR !
CS5BBCR_D: .long 0x24920400
CS6ABCR_A: .long CS6ABCR !
CS6ABCR_D: .long 0x24920400
CS0WCR_A: .long CS0WCR
CS0WCR_D: .long 0x00000380
CS4WCR_A: .long CS4WCR
CS4WCR_D: .long 0x00100A81 ! 20080115
CS5AWCR_A: .long CS5AWCR
CS5AWCR_D: .long 0x00000300
CS5BWCR_A: .long CS5BWCR
CS5BWCR_D: .long 0x00000300
CS6AWCR_A: .long CS6AWCR
CS6AWCR_D: .long 0x00000300
SDCR_A: .long SBSC_SDCR
SDCR_D: .long 0x80160809 ! 20080115
SDWCR_A: .long SBSC_SDWCR
SDWCR_D: .long 0x0014450C ! 20080115
SDPCR_A: .long SBSC_SDPCR
SDPCR_D: .long 0x00000087
RTCOR_A: .long SBSC_RTCOR
RTCNT_A: .long SBSC_RTCNT
RTCNT_D: .long 0xA55A0012
RTCOR_D: .long 0xA55A001C ! 20080115
RTCSR_A: .long SBSC_RTCSR
RFCR_A: .long SBSC_RFCR
RFCR_D: .long 0xA55A0221
RTCSR_D: .long 0xA55A009a ! 20080115
SDMR3_A: .long 0xFE581180 ! 20080115
SR_MASK_D: .long 0xEFFFFF0F
.align 2
SBSCR_D: .word 0x0044
PSCR_D: .word 0x0000
RWTCSR_D_1: .word 0xA507
RWTCSR_D_2: .word 0xA504 ! 20080115
RWTCNT_D: .word 0x5A00

53
board/MigoR/migo_r.c Normal file
View File

@@ -0,0 +1,53 @@
/*
* Copyright (C) 2007
* Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
*
* Copyright (C) 2007
* Kenati Technologies, Inc.
*
* board/MigoR/migo_r.c
*
* 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 <common.h>
#include <asm/io.h>
#include <asm/processor.h>
int checkboard(void)
{
puts("BOARD: Renesas MigoR\n");
return 0;
}
int board_init(void)
{
return 0;
}
int dram_init (void)
{
DECLARE_GLOBAL_DATA_PTR;
gd->bd->bi_memstart = CFG_SDRAM_BASE;
gd->bd->bi_memsize = CFG_SDRAM_SIZE;
printf("DRAM: %dMB\n", CFG_SDRAM_SIZE / (1024 * 1024));
return 0;
}
void led_set_state (unsigned short value)
{
}

105
board/MigoR/u-boot.lds Normal file
View File

@@ -0,0 +1,105 @@
/*
* Copyrigth (c) 2007
* Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
*
* 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-sh-linux", "elf32-sh-linux", "elf32-sh-linux")
OUTPUT_ARCH(sh)
ENTRY(_start)
SECTIONS
{
/*
Base address of internal SDRAM is 0x0C000000.
Although size of SDRAM can be either 16 or 32 MBytes,
we assume 16 MBytes (ie ignore upper half if the full
32 MBytes is present).
NOTE: This address must match with the definition of
TEXT_BASE in config.mk (in this directory).
*/
. = 0x8C000000 + (64*1024*1024) - (256*1024);
PROVIDE (reloc_dst = .);
PROVIDE (_ftext = .);
PROVIDE (_fcode = .);
PROVIDE (_start = .);
.text :
{
cpu/sh4/start.o (.text)
. = ALIGN(8192);
common/environment.o (.ppcenv)
. = ALIGN(8192);
common/environment.o (.ppcenvr)
. = ALIGN(8192);
*(.text)
. = ALIGN(4);
} =0xFF
PROVIDE (_ecode = .);
.rodata :
{
*(.rodata)
. = ALIGN(4);
}
PROVIDE (_etext = .);
PROVIDE (_fdata = .);
.data :
{
*(.data)
. = ALIGN(4);
}
PROVIDE (_edata = .);
PROVIDE (_fgot = .);
.got :
{
*(.got)
. = ALIGN(4);
}
PROVIDE (_egot = .);
PROVIDE (__u_boot_cmd_start = .);
.u_boot_cmd :
{
*(.u_boot_cmd)
. = ALIGN(4);
}
PROVIDE (__u_boot_cmd_end = .);
PROVIDE (reloc_dst_end = .);
/* _reloc_dst_end = .; */
PROVIDE (bss_start = .);
PROVIDE (__bss_start = .);
.bss :
{
*(.bss)
. = ALIGN(4);
}
PROVIDE (bss_end = .);
PROVIDE (_end = .);
}

View File

@@ -22,7 +22,6 @@
*/ */
OUTPUT_ARCH(powerpc) OUTPUT_ARCH(powerpc)
SEARCH_DIR(/lib); SEARCH_DIR(/usr/lib); SEARCH_DIR(/usr/local/lib); SEARCH_DIR(/usr/local/powerpc-any-elf/lib);
/* Do we need any of these for elf? /* Do we need any of these for elf?
__DYNAMIC = 0; */ __DYNAMIC = 0; */
SECTIONS SECTIONS
@@ -130,7 +129,7 @@ SECTIONS
__init_end = .; __init_end = .;
__bss_start = .; __bss_start = .;
.bss : .bss (NOLOAD) :
{ {
*(.sbss) *(.scommon) *(.sbss) *(.scommon)
*(.dynbss) *(.dynbss)

View File

@@ -22,7 +22,6 @@
*/ */
OUTPUT_ARCH(powerpc) OUTPUT_ARCH(powerpc)
SEARCH_DIR(/lib); SEARCH_DIR(/usr/lib); SEARCH_DIR(/usr/local/lib); SEARCH_DIR(/usr/local/powerpc-any-elf/lib);
/* Do we need any of these for elf? /* Do we need any of these for elf?
__DYNAMIC = 0; */ __DYNAMIC = 0; */
SECTIONS SECTIONS

View File

@@ -22,7 +22,6 @@
*/ */
OUTPUT_ARCH(powerpc) OUTPUT_ARCH(powerpc)
SEARCH_DIR(/lib); SEARCH_DIR(/usr/lib); SEARCH_DIR(/usr/local/lib); SEARCH_DIR(/usr/local/powerpc-any-elf/lib);
/* Do we need any of these for elf? /* Do we need any of these for elf?
__DYNAMIC = 0; */ __DYNAMIC = 0; */
SECTIONS SECTIONS
@@ -130,7 +129,7 @@ SECTIONS
__init_end = .; __init_end = .;
__bss_start = .; __bss_start = .;
.bss : .bss (NOLOAD) :
{ {
*(.sbss) *(.scommon) *(.sbss) *(.scommon)
*(.dynbss) *(.dynbss)

View File

@@ -22,7 +22,6 @@
*/ */
OUTPUT_ARCH(powerpc) OUTPUT_ARCH(powerpc)
SEARCH_DIR(/lib); SEARCH_DIR(/usr/lib); SEARCH_DIR(/usr/local/lib); SEARCH_DIR(/usr/local/powerpc-any-elf/lib);
/* Do we need any of these for elf? /* Do we need any of these for elf?
__DYNAMIC = 0; */ __DYNAMIC = 0; */
SECTIONS SECTIONS

View File

@@ -22,7 +22,6 @@
*/ */
OUTPUT_ARCH(powerpc) OUTPUT_ARCH(powerpc)
SEARCH_DIR(/lib); SEARCH_DIR(/usr/lib); SEARCH_DIR(/usr/local/lib); SEARCH_DIR(/usr/local/powerpc-any-elf/lib);
/* Do we need any of these for elf? /* Do we need any of these for elf?
__DYNAMIC = 0; */ __DYNAMIC = 0; */
SECTIONS SECTIONS
@@ -130,7 +129,7 @@ SECTIONS
__init_end = .; __init_end = .;
__bss_start = .; __bss_start = .;
.bss : .bss (NOLOAD) :
{ {
*(.sbss) *(.scommon) *(.sbss) *(.scommon)
*(.dynbss) *(.dynbss)

View File

@@ -22,7 +22,6 @@
*/ */
OUTPUT_ARCH(powerpc) OUTPUT_ARCH(powerpc)
SEARCH_DIR(/lib); SEARCH_DIR(/usr/lib); SEARCH_DIR(/usr/local/lib); SEARCH_DIR(/usr/local/powerpc-any-elf/lib);
/* Do we need any of these for elf? /* Do we need any of these for elf?
__DYNAMIC = 0; */ __DYNAMIC = 0; */
SECTIONS SECTIONS

View File

@@ -22,7 +22,6 @@
*/ */
OUTPUT_ARCH(powerpc) OUTPUT_ARCH(powerpc)
SEARCH_DIR(/lib); SEARCH_DIR(/usr/lib); SEARCH_DIR(/usr/local/lib); SEARCH_DIR(/usr/local/powerpc-any-elf/lib);
/* Do we need any of these for elf? /* Do we need any of these for elf?
__DYNAMIC = 0; */ __DYNAMIC = 0; */
SECTIONS SECTIONS
@@ -132,7 +131,7 @@ SECTIONS
__init_end = .; __init_end = .;
__bss_start = .; __bss_start = .;
.bss : .bss (NOLOAD) :
{ {
*(.sbss) *(.scommon) *(.sbss) *(.scommon)
*(.dynbss) *(.dynbss)

50
board/actux1/Makefile Normal file
View File

@@ -0,0 +1,50 @@
#
# (C) Copyright 2000-2006
# Wolfgang Denk, DENX Software Engineering, wd@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
#
include $(TOPDIR)/config.mk
LIB = $(obj)lib$(BOARD).a
COBJS := actux1.o
SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c)
OBJS := $(addprefix $(obj),$(COBJS))
SOBJS := $(addprefix $(obj),$(SOBJS))
$(LIB): $(obj).depend $(OBJS)
$(AR) $(ARFLAGS) $@ $(OBJS)
clean:
rm -f $(SOBJS) $(OBJS)
distclean: clean
rm -f $(LIB) core *.bak .depend
#########################################################################
# defines $(obj).depend target
include $(SRCTREE)/rules.mk
sinclude $(obj).depend
#########################################################################

160
board/actux1/actux1.c Normal file
View File

@@ -0,0 +1,160 @@
/*
* (C) Copyright 2007
* Michael Schwingen, michael@schwingen.org
*
* (C) Copyright 2006
* Stefan Roese, DENX Software Engineering, sr@denx.de.
*
* (C) Copyright 2002
* Kyle Harris, Nexus Technologies, Inc. kharris@nexus-tech.net
*
* (C) Copyright 2002
* Sysgo Real-Time Solutions, GmbH <www.elinos.com>
* Marius Groeger <mgroeger@sysgo.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
*/
#include <common.h>
#include <command.h>
#include <malloc.h>
#include <asm/arch/ixp425.h>
#include <asm/io.h>
#include <miiphy.h>
#include "actux1_hw.h"
DECLARE_GLOBAL_DATA_PTR;
int board_init (void)
{
gd->bd->bi_arch_number = MACH_TYPE_ACTUX1;
/* adress of boot parameters */
gd->bd->bi_boot_params = 0x00000100;
GPIO_OUTPUT_CLEAR (CFG_GPIO_IORST);
GPIO_OUTPUT_ENABLE (CFG_GPIO_IORST);
/* Setup GPIO's for PCI INTA */
GPIO_OUTPUT_DISABLE (CFG_GPIO_PCI1_INTA);
GPIO_INT_ACT_LOW_SET (CFG_GPIO_PCI1_INTA);
/* Setup GPIO's for 33MHz clock output */
GPIO_OUTPUT_ENABLE (CFG_GPIO_PCI_CLK);
GPIO_OUTPUT_ENABLE (CFG_GPIO_EXTBUS_CLK);
*IXP425_GPIO_GPCLKR = 0x011001FF;
/* CS5: Debug port */
*IXP425_EXP_CS5 = 0x9d520003;
/* CS6: HwRel */
*IXP425_EXP_CS6 = 0x81860001;
/* CS7: LEDs */
*IXP425_EXP_CS7 = 0x80900003;
udelay (533);
GPIO_OUTPUT_SET (CFG_GPIO_IORST);
ACTUX1_LED1 (2);
ACTUX1_LED2 (2);
ACTUX1_LED3 (0);
ACTUX1_LED4 (0);
ACTUX1_LED5 (0);
ACTUX1_LED6 (0);
ACTUX1_LED7 (0);
ACTUX1_HS (ACTUX1_HS_DCD);
return 0;
}
/*
* Check Board Identity
*/
int checkboard (void)
{
char *s = getenv ("serial#");
puts ("Board: AcTux-1 rev.");
putc (ACTUX1_BOARDREL + 'A' - 1);
if (s != NULL) {
puts (", serial# ");
puts (s);
}
putc ('\n');
return (0);
}
/*************************************************************************
* get_board_rev() - setup to pass kernel board revision information
* 0 = reserved
* 1 = Rev. A
* 2 = Rev. B
*************************************************************************/
u32 get_board_rev (void)
{
return ACTUX1_BOARDREL;
}
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);
}
#if defined(CONFIG_CMD_PCI) || defined(CONFIG_PCI)
extern struct pci_controller hose;
extern void pci_ixp_init (struct pci_controller *hose);
void pci_init_board (void)
{
extern void pci_ixp_init (struct pci_controller *hose);
pci_ixp_init (&hose);
}
#endif
void reset_phy (void)
{
u16 id1, id2;
/* initialize the PHY */
miiphy_reset ("NPE0", CONFIG_PHY_ADDR);
miiphy_read ("NPE0", CONFIG_PHY_ADDR, PHY_PHYIDR1, &id1);
miiphy_read ("NPE0", CONFIG_PHY_ADDR, PHY_PHYIDR2, &id2);
id2 &= 0xFFF0; /* mask out revision bits */
if (id1 == 0x13 && id2 == 0x78e0) {
/*
* LXT971/LXT972 PHY: set LED outputs:
* LED1(green) = Link/ACT,
* LED2 (unused) = LINK,
* LED3(red) = Coll
*/
miiphy_write ("NPE0", CONFIG_PHY_ADDR, 20, 0xD432);
} else if (id1 == 0x143 && id2 == 0xbc30) {
/* BCM5241: default values are OK */
} else
printf ("unknown ethernet PHY ID: %x %x\n", id1, id2);
}

57
board/actux1/actux1_hw.h Normal file
View File

@@ -0,0 +1,57 @@
/*
* (C) Copyright 2007
* Michael Schwingen, michael@schwingen.org
*
* hardware register definitions for the AcTux-1 board.
*
* 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
*/
#ifndef _ACTUX1_HW_H
#define _ACTUX1_HW_H
/* 0 = LED off,1 = green, 2 = red, 3 = orange */
#define ACTUX1_LED1(a) writeb((a), IXP425_EXP_BUS_CS7_BASE_PHYS + 0)
#define ACTUX1_LED2(a) writeb((a), IXP425_EXP_BUS_CS7_BASE_PHYS + 1)
#define ACTUX1_LED3(a) writeb((a), IXP425_EXP_BUS_CS7_BASE_PHYS + 2)
#define ACTUX1_LED4(a) writeb((a)^3, IXP425_EXP_BUS_CS7_BASE_PHYS + 3)
#define ACTUX1_LED5(a) writeb((a)^3, IXP425_EXP_BUS_CS7_BASE_PHYS + 4)
#define ACTUX1_LED6(a) writeb((a)^3, IXP425_EXP_BUS_CS7_BASE_PHYS + 5)
#define ACTUX1_LED7(a) writeb((a)^3, IXP425_EXP_BUS_CS7_BASE_PHYS + 6)
#define ACTUX1_HS(a) writeb((a), IXP425_EXP_BUS_CS7_BASE_PHYS + 7)
#define ACTUX1_HS_DCD 0x01
#define ACTUX1_HS_DSR 0x02
#define ACTUX1_DBG_PORT IXP425_EXP_BUS_CS5_BASE_PHYS
#define ACTUX1_BOARDREL (readb(IXP425_EXP_BUS_CS6_BASE_PHYS) & 0x0F)
/* GPIO settings */
#define CFG_GPIO_PCI1_INTA 2
#define CFG_GPIO_PCI2_INTA 3
#define CFG_GPIO_I2C_SDA 4
#define CFG_GPIO_I2C_SCL 5
#define CFG_GPIO_DBGJUMPER 9
#define CFG_GPIO_BUTTON1 10
#define CFG_GPIO_DBGSENSE 11
#define CFG_GPIO_DTR 12
#define CFG_GPIO_IORST 13 /* Out */
#define CFG_GPIO_PCI_CLK 14 /* Out */
#define CFG_GPIO_EXTBUS_CLK 15 /* Out */
#endif

4
board/actux1/config.mk Normal file
View File

@@ -0,0 +1,4 @@
TEXT_BASE = 0x00e00000
# include NPE ethernet driver
BOARDLIBS = cpu/ixp/npe/libnpe.a

69
board/actux1/u-boot.lds Normal file
View File

@@ -0,0 +1,69 @@
/*
* (C) Copyright 2000
* Wolfgang Denk, DENX Software Engineering, wd@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-bigarm", "elf32-bigarm", "elf32-bigarm")
OUTPUT_ARCH (arm)
ENTRY (_start)
SECTIONS
{
. = 0x00000000;
. = ALIGN (4);
.text : {
cpu/ixp/start.o(.text)
lib_generic/string.o(.text)
lib_generic/vsprintf.o(.text)
lib_arm/board.o(.text)
common/dlmalloc.o(.text)
cpu/ixp/cpu.o(.text)
. = env_offset;
common/environment.o(.ppcenv)
* (.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 =.;
}

50
board/actux2/Makefile Normal file
View File

@@ -0,0 +1,50 @@
#
# (C) Copyright 2000-2006
# Wolfgang Denk, DENX Software Engineering, wd@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
#
include $(TOPDIR)/config.mk
LIB = $(obj)lib$(BOARD).a
COBJS := actux2.o
SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c)
OBJS := $(addprefix $(obj),$(COBJS))
SOBJS := $(addprefix $(obj),$(SOBJS))
$(LIB): $(obj).depend $(OBJS)
$(AR) $(ARFLAGS) $@ $(OBJS)
clean:
rm -f $(SOBJS) $(OBJS)
distclean: clean
rm -f $(LIB) core *.bak .depend
#########################################################################
# defines $(obj).depend target
include $(SRCTREE)/rules.mk
sinclude $(obj).depend
#########################################################################

136
board/actux2/actux2.c Normal file
View File

@@ -0,0 +1,136 @@
/*
* (C) Copyright 2007
* Michael Schwingen, michael@schwingen.org
*
* (C) Copyright 2006
* Stefan Roese, DENX Software Engineering, sr@denx.de.
*
* (C) Copyright 2002
* Kyle Harris, Nexus Technologies, Inc. kharris@nexus-tech.net
*
* (C) Copyright 2002
* Sysgo Real-Time Solutions, GmbH <www.elinos.com>
* Marius Groeger <mgroeger@sysgo.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
*/
#include <common.h>
#include <command.h>
#include <malloc.h>
#include <asm/arch/ixp425.h>
#include <asm/io.h>
#include <miiphy.h>
#include "actux2_hw.h"
DECLARE_GLOBAL_DATA_PTR;
int board_init (void)
{
gd->bd->bi_arch_number = MACH_TYPE_ACTUX2;
/* adress of boot parameters */
gd->bd->bi_boot_params = 0x00000100;
GPIO_OUTPUT_ENABLE (CFG_GPIO_IORST);
GPIO_OUTPUT_ENABLE (CFG_GPIO_ETHRST);
GPIO_OUTPUT_ENABLE (CFG_GPIO_DSR);
GPIO_OUTPUT_ENABLE (CFG_GPIO_DCD);
GPIO_OUTPUT_CLEAR (CFG_GPIO_IORST);
GPIO_OUTPUT_CLEAR (CFG_GPIO_ETHRST);
GPIO_OUTPUT_CLEAR (CFG_GPIO_DSR);
GPIO_OUTPUT_SET (CFG_GPIO_DCD);
/* Setup GPIO's for Interrupt inputs */
GPIO_OUTPUT_DISABLE (CFG_GPIO_DBGINT);
GPIO_OUTPUT_DISABLE (CFG_GPIO_ETHINT);
/* Setup GPIO's for 33MHz clock output */
GPIO_OUTPUT_ENABLE (CFG_GPIO_PCI_CLK);
GPIO_OUTPUT_ENABLE (CFG_GPIO_EXTBUS_CLK);
*IXP425_GPIO_GPCLKR = 0x011001FF;
/* CS1: IPAC-X */
*IXP425_EXP_CS1 = 0x94d10013;
/* CS5: Debug port */
*IXP425_EXP_CS5 = 0x9d520003;
/* CS6: HW release register */
*IXP425_EXP_CS6 = 0x81860001;
/* CS7: LEDs */
*IXP425_EXP_CS7 = 0x80900003;
udelay (533);
GPIO_OUTPUT_SET (CFG_GPIO_IORST);
GPIO_OUTPUT_SET (CFG_GPIO_ETHRST);
ACTUX2_LED1 (1);
ACTUX2_LED2 (0);
ACTUX2_LED3 (0);
ACTUX2_LED4 (0);
return 0;
}
/*
* Check Board Identity
*/
int checkboard (void)
{
char *s = getenv ("serial#");
puts ("Board: AcTux-2 rev.");
putc (ACTUX2_BOARDREL + 'A' - 1);
if (s != NULL) {
puts (", serial# ");
puts (s);
}
putc ('\n');
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);
}
/*************************************************************************
* get_board_rev() - setup to pass kernel board revision information
* 0 = reserved
* 1 = Rev. A
* 2 = Rev. B
*************************************************************************/
u32 get_board_rev (void)
{
return ACTUX2_BOARDREL;
}
void reset_phy (void)
{
/* init IcPlus IP175C ethernet switch to native IP175C mode */
miiphy_write ("NPE0", 29, 31, 0x175C);
}

59
board/actux2/actux2_hw.h Normal file
View File

@@ -0,0 +1,59 @@
/*
* (C) Copyright 2007
* Michael Schwingen, michael@schwingen.org
*
* hardware register definitions for the AcTux-2 board.
*
* 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
*/
#ifndef _ACTUX2_HW_H
#define _ACTUX2_HW_H
/* 0 = LED off,1 = green, 2 = red, 3 = orange */
#define ACTUX2_LED1(a) writeb((a ? 2 : 0), IXP425_EXP_BUS_CS7_BASE_PHYS + 0)
#define ACTUX2_LED2(a) writeb((a ? 2 : 0), IXP425_EXP_BUS_CS7_BASE_PHYS + 1)
#define ACTUX2_LED3(a) writeb((a ? 0 : 2), IXP425_EXP_BUS_CS7_BASE_PHYS + 2)
#define ACTUX2_LED4(a) writeb((a ? 0 : 2), IXP425_EXP_BUS_CS7_BASE_PHYS + 3)
#define ACTUX2_DBG_PORT IXP425_EXP_BUS_CS5_BASE_PHYS
#define ACTUX2_BOARDREL (readb(IXP425_EXP_BUS_CS6_BASE_PHYS) & 0x0F)
#define ACTUX2_OPTION (readb(IXP425_EXP_BUS_CS6_BASE_PHYS) & 0xF0)
/*
* GPIO settings
*/
#define CFG_GPIO_DBGINT 0
#define CFG_GPIO_ETHINT 1
#define CFG_GPIO_ETHRST 2 /* Out */
#define CFG_GPIO_LED5_GN 3 /* Out */
#define CFG_GPIO_UNUSED4 4
#define CFG_GPIO_UNUSED5 5
#define CFG_GPIO_DSR 6 /* Out */
#define CFG_GPIO_DCD 7 /* Out */
#define CFG_GPIO_IPAC_INT 8
#define CFG_GPIO_DBGJUMPER 9
#define CFG_GPIO_BUTTON1 10
#define CFG_GPIO_DBGSENSE 11
#define CFG_GPIO_DTR 12
#define CFG_GPIO_IORST 13 /* Out */
#define CFG_GPIO_PCI_CLK 14 /* Out */
#define CFG_GPIO_EXTBUS_CLK 15 /* Out */
#endif

4
board/actux2/config.mk Normal file
View File

@@ -0,0 +1,4 @@
TEXT_BASE = 0x00e00000
# include NPE ethernet driver
BOARDLIBS = cpu/ixp/npe/libnpe.a

74
board/actux2/u-boot.lds Normal file
View File

@@ -0,0 +1,74 @@
/*
* (C) Copyright 2000
* Wolfgang Denk, DENX Software Engineering, wd@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-bigarm", "elf32-bigarm", "elf32-bigarm")
OUTPUT_ARCH (arm)
ENTRY (_start)
SECTIONS
{
. = 0x00000000;
. = ALIGN (4);
.text : {
cpu/ixp/start.o(.text)
lib_generic/string.o(.text)
lib_generic/vsprintf.o(.text)
lib_arm/board.o(.text)
common/dlmalloc.o(.text)
cpu/ixp/cpu.o(.text)
. = env_offset;
common/environment.o (.ppcenv)
* (.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 =.;
}

50
board/actux3/Makefile Normal file
View File

@@ -0,0 +1,50 @@
#
# (C) Copyright 2000-2006
# Wolfgang Denk, DENX Software Engineering, wd@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
#
include $(TOPDIR)/config.mk
LIB = $(obj)lib$(BOARD).a
COBJS := actux3.o
SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c)
OBJS := $(addprefix $(obj),$(COBJS))
SOBJS := $(addprefix $(obj),$(SOBJS))
$(LIB): $(obj).depend $(OBJS)
$(AR) $(ARFLAGS) $@ $(OBJS)
clean:
rm -f $(SOBJS) $(OBJS)
distclean: clean
rm -f $(LIB) core *.bak .depend
#########################################################################
# defines $(obj).depend target
include $(SRCTREE)/rules.mk
sinclude $(obj).depend
#########################################################################

164
board/actux3/actux3.c Normal file
View File

@@ -0,0 +1,164 @@
/*
* (C) Copyright 2007
* Michael Schwingen, michael@schwingen.org
*
* (C) Copyright 2006
* Stefan Roese, DENX Software Engineering, sr@denx.de.
*
* (C) Copyright 2002
* Kyle Harris, Nexus Technologies, Inc. kharris@nexus-tech.net
*
* (C) Copyright 2002
* Sysgo Real-Time Solutions, GmbH <www.elinos.com>
* Marius Groeger <mgroeger@sysgo.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
*/
#include <common.h>
#include <command.h>
#include <malloc.h>
#include <asm/arch/ixp425.h>
#include <asm/io.h>
#include <miiphy.h>
#include "actux3_hw.h"
DECLARE_GLOBAL_DATA_PTR;
int board_init (void)
{
gd->bd->bi_arch_number = MACH_TYPE_ACTUX3;
/* adress of boot parameters */
gd->bd->bi_boot_params = 0x00000100;
GPIO_OUTPUT_ENABLE (CFG_GPIO_IORST);
GPIO_OUTPUT_ENABLE (CFG_GPIO_ETHRST);
GPIO_OUTPUT_ENABLE (CFG_GPIO_DSR);
GPIO_OUTPUT_ENABLE (CFG_GPIO_DCD);
GPIO_OUTPUT_ENABLE (CFG_GPIO_LED5_GN);
GPIO_OUTPUT_ENABLE (CFG_GPIO_LED6_RT);
GPIO_OUTPUT_ENABLE (CFG_GPIO_LED6_GN);
GPIO_OUTPUT_CLEAR (CFG_GPIO_IORST);
GPIO_OUTPUT_CLEAR (CFG_GPIO_ETHRST);
GPIO_OUTPUT_CLEAR (CFG_GPIO_DSR);
GPIO_OUTPUT_SET (CFG_GPIO_DCD);
GPIO_OUTPUT_CLEAR (CFG_GPIO_LED5_GN);
GPIO_OUTPUT_CLEAR (CFG_GPIO_LED6_RT);
GPIO_OUTPUT_CLEAR (CFG_GPIO_LED6_GN);
/*
* Setup GPIO's for Interrupt inputs
*/
GPIO_OUTPUT_DISABLE (CFG_GPIO_DBGINT);
GPIO_OUTPUT_DISABLE (CFG_GPIO_ETHINT);
/*
* Setup GPIO's for 33MHz clock output
*/
GPIO_OUTPUT_ENABLE (CFG_GPIO_PCI_CLK);
GPIO_OUTPUT_ENABLE (CFG_GPIO_EXTBUS_CLK);
*IXP425_GPIO_GPCLKR = 0x011001FF;
/* CS1: IPAC-X */
*IXP425_EXP_CS1 = 0x94d10013;
/* CS5: Debug port */
*IXP425_EXP_CS5 = 0x9d520003;
/* CS6: Release/Option register */
*IXP425_EXP_CS6 = 0x81860001;
/* CS7: LEDs */
*IXP425_EXP_CS7 = 0x80900003;
udelay (533);
GPIO_OUTPUT_SET (CFG_GPIO_IORST);
GPIO_OUTPUT_SET (CFG_GPIO_ETHRST);
ACTUX3_LED1_RT (1);
ACTUX3_LED1_GN (0);
ACTUX3_LED2_RT (0);
ACTUX3_LED2_GN (0);
ACTUX3_LED3_RT (0);
ACTUX3_LED3_GN (0);
ACTUX3_LED4_GN (0);
ACTUX3_LED5_RT (0);
return 0;
}
/*
* Check Board Identity
*/
int checkboard (void)
{
char *s = getenv ("serial#");
puts ("Board: AcTux-3 rev.");
putc (ACTUX3_BOARDREL + 'A' - 1);
if (s != NULL) {
puts (", serial# ");
puts (s);
}
putc ('\n');
return (0);
}
/*************************************************************************
* get_board_rev() - setup to pass kernel board revision information
* 0 = reserved
* 1 = Rev. A
* 2 = Rev. B
*************************************************************************/
u32 get_board_rev (void)
{
return ACTUX3_BOARDREL;
}
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);
}
void reset_phy (void)
{
int i;
/* initialize the PHY */
miiphy_reset ("NPE0", CONFIG_PHY_ADDR);
/* all LED outputs = Link/Act */
miiphy_write ("NPE0", CONFIG_PHY_ADDR, 0x16, 0x0AAA);
/*
* The Marvell 88E6060 switch comes up with all ports disabled.
* set all ethernet switch ports to forwarding state
*/
for (i = 1; i <= 5; i++)
miiphy_write ("NPE0", CONFIG_PHY_ADDR + 8 + i, 0x04, 0x03);
}

60
board/actux3/actux3_hw.h Normal file
View File

@@ -0,0 +1,60 @@
/*
* (C) Copyright 2007
* Michael Schwingen, michael@schwingen.org
*
* hardware register definitions for the AcTux-3 board.
*
* 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
*/
#ifndef _ACTUX3_HW_H
#define _ACTUX3_HW_H
/* 0 = LED off,1 = ON */
#define ACTUX3_LED1_RT(a) writeb((a), IXP425_EXP_BUS_CS7_BASE_PHYS + 0)
#define ACTUX3_LED1_GN(a) writeb((a), IXP425_EXP_BUS_CS7_BASE_PHYS + 1)
#define ACTUX3_LED2_RT(a) writeb((a), IXP425_EXP_BUS_CS7_BASE_PHYS + 2)
#define ACTUX3_LED2_GN(a) writeb((a), IXP425_EXP_BUS_CS7_BASE_PHYS + 3)
#define ACTUX3_LED3_RT(a) writeb((a), IXP425_EXP_BUS_CS7_BASE_PHYS + 4)
#define ACTUX3_LED3_GN(a) writeb((a), IXP425_EXP_BUS_CS7_BASE_PHYS + 5)
#define ACTUX3_LED4_GN(a) writeb((a)^1, IXP425_EXP_BUS_CS7_BASE_PHYS + 6)
#define ACTUX3_LED5_RT(a) writeb((a), IXP425_EXP_BUS_CS7_BASE_PHYS + 7)
#define ACTUX3_DBG_PORT IXP425_EXP_BUS_CS5_BASE_PHYS
#define ACTUX3_BOARDREL (readb(IXP425_EXP_BUS_CS6_BASE_PHYS) & 0x0F)
#define ACTUX3_OPTION (readb(IXP425_EXP_BUS_CS6_BASE_PHYS) & 0xF0)
/* GPIO settings */
#define CFG_GPIO_DBGINT 0
#define CFG_GPIO_ETHINT 1
#define CFG_GPIO_ETHRST 2 /* Out */
#define CFG_GPIO_LED5_GN 3 /* Out */
#define CFG_GPIO_LED6_RT 4 /* Out */
#define CFG_GPIO_LED6_GN 5 /* Out */
#define CFG_GPIO_DSR 6 /* Out */
#define CFG_GPIO_DCD 7 /* Out */
#define CFG_GPIO_DBGJUMPER 9
#define CFG_GPIO_BUTTON1 10
#define CFG_GPIO_DBGSENSE 11
#define CFG_GPIO_DTR 12
#define CFG_GPIO_IORST 13 /* Out */
#define CFG_GPIO_PCI_CLK 14 /* Out */
#define CFG_GPIO_EXTBUS_CLK 15 /* Out */
#endif

4
board/actux3/config.mk Normal file
View File

@@ -0,0 +1,4 @@
TEXT_BASE = 0x00e00000
# include NPE ethernet driver
BOARDLIBS = cpu/ixp/npe/libnpe.a

74
board/actux3/u-boot.lds Normal file
View File

@@ -0,0 +1,74 @@
/*
* (C) Copyright 2000
* Wolfgang Denk, DENX Software Engineering, wd@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-bigarm", "elf32-bigarm", "elf32-bigarm")
OUTPUT_ARCH (arm)
ENTRY (_start)
SECTIONS
{
. = 0x00000000;
. = ALIGN (4);
.text : {
cpu/ixp/start.o (.text)
lib_generic/string.o (.text)
lib_generic/vsprintf.o (.text)
lib_arm/board.o (.text)
common/dlmalloc.o (.text)
cpu/ixp/cpu.o (.text)
. = env_offset;
common/environment.o (.ppcenv)
* (.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 =.;
}

50
board/actux4/Makefile Normal file
View File

@@ -0,0 +1,50 @@
#
# (C) Copyright 2000-2006
# Wolfgang Denk, DENX Software Engineering, wd@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
#
include $(TOPDIR)/config.mk
LIB = $(obj)lib$(BOARD).a
COBJS := actux4.o
SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c)
OBJS := $(addprefix $(obj),$(COBJS))
SOBJS := $(addprefix $(obj),$(SOBJS))
$(LIB): $(obj).depend $(OBJS)
$(AR) $(ARFLAGS) $@ $(OBJS)
clean:
rm -f $(SOBJS) $(OBJS)
distclean: clean
rm -f $(LIB) core *.bak .depend
#########################################################################
# defines $(obj).depend target
include $(SRCTREE)/rules.mk
sinclude $(obj).depend
#########################################################################

132
board/actux4/actux4.c Normal file
View File

@@ -0,0 +1,132 @@
/*
* (C) Copyright 2007
* Michael Schwingen, michael@schwingen.org
*
* (C) Copyright 2006
* Stefan Roese, DENX Software Engineering, sr@denx.de.
*
* (C) Copyright 2002
* Kyle Harris, Nexus Technologies, Inc. kharris@nexus-tech.net
*
* (C) Copyright 2002
* Sysgo Real-Time Solutions, GmbH <www.elinos.com>
* Marius Groeger <mgroeger@sysgo.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
*/
#include <common.h>
#include <command.h>
#include <malloc.h>
#include <asm/arch/ixp425.h>
#include <miiphy.h>
#include "actux4_hw.h"
DECLARE_GLOBAL_DATA_PTR;
int board_init (void)
{
gd->bd->bi_arch_number = MACH_TYPE_ACTUX4;
/* adress of boot parameters */
gd->bd->bi_boot_params = 0x00000100;
GPIO_OUTPUT_CLEAR (CFG_GPIO_nPWRON);
GPIO_OUTPUT_ENABLE (CFG_GPIO_nPWRON);
GPIO_OUTPUT_CLEAR (CFG_GPIO_IORST);
GPIO_OUTPUT_ENABLE (CFG_GPIO_IORST);
/* led not populated on board*/
GPIO_OUTPUT_ENABLE (CFG_GPIO_LED3);
GPIO_OUTPUT_SET (CFG_GPIO_LED3);
/* middle LED */
GPIO_OUTPUT_ENABLE (CFG_GPIO_LED2);
GPIO_OUTPUT_SET (CFG_GPIO_LED2);
/* right LED */
/* weak pulldown = LED weak on */
GPIO_OUTPUT_DISABLE (CFG_GPIO_LED1);
GPIO_OUTPUT_SET (CFG_GPIO_LED1);
/* Setup GPIO's for Interrupt inputs */
GPIO_OUTPUT_DISABLE (CFG_GPIO_USBINTA);
GPIO_OUTPUT_DISABLE (CFG_GPIO_USBINTB);
GPIO_OUTPUT_DISABLE (CFG_GPIO_USBINTC);
GPIO_OUTPUT_DISABLE (CFG_GPIO_RTCINT);
GPIO_OUTPUT_DISABLE (CFG_GPIO_PCI_INTA);
GPIO_OUTPUT_DISABLE (CFG_GPIO_PCI_INTB);
GPIO_INT_ACT_LOW_SET (CFG_GPIO_USBINTA);
GPIO_INT_ACT_LOW_SET (CFG_GPIO_USBINTB);
GPIO_INT_ACT_LOW_SET (CFG_GPIO_USBINTC);
GPIO_INT_ACT_LOW_SET (CFG_GPIO_RTCINT);
GPIO_INT_ACT_LOW_SET (CFG_GPIO_PCI_INTA);
GPIO_INT_ACT_LOW_SET (CFG_GPIO_PCI_INTB);
/* Setup GPIO's for 33MHz clock output */
*IXP425_GPIO_GPCLKR = 0x011001FF;
GPIO_OUTPUT_ENABLE (CFG_GPIO_EXTBUS_CLK);
GPIO_OUTPUT_ENABLE (CFG_GPIO_PCI_CLK);
*IXP425_EXP_CS1 = 0xbd113c42;
udelay (10000);
GPIO_OUTPUT_SET (CFG_GPIO_IORST);
udelay (10000);
GPIO_OUTPUT_CLEAR (CFG_GPIO_IORST);
udelay (10000);
GPIO_OUTPUT_SET (CFG_GPIO_IORST);
return 0;
}
/* Check Board Identity */
int checkboard (void)
{
puts ("Board: AcTux-4\n");
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);
}
/*
* Hardcoded flash setup:
* Flash 0 is a non-CFI SST 39VF020 flash, 8 bit flash / 8 bit bus.
* Flash 1 is an Intel *16 flash using the CFI driver.
*/
ulong board_flash_get_legacy (ulong base, int banknum, flash_info_t * info)
{
if (banknum == 0) { /* non-CFI boot flash */
info->portwidth = 1;
info->chipwidth = 1;
info->interface = FLASH_CFI_X8;
return 1;
} else
return 0;
}

49
board/actux4/actux4_hw.h Normal file
View File

@@ -0,0 +1,49 @@
/*
* (C) Copyright 2007
* Michael Schwingen, michael@schwingen.org
*
* hardware register definitions for the AcTux-4 board.
*
* 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
*/
#ifndef _ACTUX4_HW_H
#define _ACTUX4_HW_H
/*
* GPIO settings
*/
#define CFG_GPIO_USBINTA 0
#define CFG_GPIO_USBINTB 1
#define CFG_GPIO_USBINTC 2
#define CFG_GPIO_nPWRON 3 /* Out */
#define CFG_GPIO_I2C_SCL 4
#define CFG_GPIO_I2C_SDA 5
#define CFG_GPIO_PCI_INTB 6
#define CFG_GPIO_BUTTON1 7
#define CFG_GPIO_LED1 8 /* Out */
#define CFG_GPIO_RTCINT 9
#define CFG_GPIO_LED2 10 /* Out */
#define CFG_GPIO_PCI_INTA 11
#define CFG_GPIO_IORST 12 /* Out */
#define CFG_GPIO_LED3 13 /* Out */
#define CFG_GPIO_PCI_CLK 14 /* Out */
#define CFG_GPIO_EXTBUS_CLK 15 /* Out */
#endif

4
board/actux4/config.mk Normal file
View File

@@ -0,0 +1,4 @@
TEXT_BASE = 0x00e00000
# include NPE ethernet driver
BOARDLIBS = cpu/ixp/npe/libnpe.a

65
board/actux4/u-boot.lds Normal file
View File

@@ -0,0 +1,65 @@
/*
* (C) Copyright 2000
* Wolfgang Denk, DENX Software Engineering, wd@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-bigarm", "elf32-bigarm", "elf32-bigarm")
OUTPUT_ARCH (arm)
ENTRY (_start)
SECTIONS
{
. = 0x00000000;
. = ALIGN (4);
.text : {
cpu/ixp/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 =.;
}

View File

@@ -26,6 +26,9 @@
#include <common.h> #include <common.h>
#include <mpc8xx.h> #include <mpc8xx.h>
#if defined(CONFIG_OF_LIBFDT)
#include <libfdt.h>
#endif
/* /*
* SDRAM is single Samsung K4S643232F-T70 chip (8MB) * SDRAM is single Samsung K4S643232F-T70 chip (8MB)
@@ -111,3 +114,11 @@ int checkboard( void )
return 0; return 0;
} }
#if defined(CONFIG_OF_BOARD_SETUP)
void ft_board_setup(void *blob, bd_t *bd)
{
ft_cpu_setup(blob, bd);
}
#endif

View File

@@ -112,7 +112,7 @@ SECTIONS
__init_end = .; __init_end = .;
__bss_start = .; __bss_start = .;
.bss : .bss (NOLOAD) :
{ {
*(.sbss) *(.scommon) *(.sbss) *(.scommon)
*(.dynbss) *(.dynbss)

View File

@@ -25,8 +25,10 @@ include $(TOPDIR)/config.mk
LIB = $(obj)lib$(BOARD).a LIB = $(obj)lib$(BOARD).a
COBJS := $(BOARD).o COBJS-y := $(BOARD).o
COBJS-$(CONFIG_PCI) += pci.o
COBJS := $(COBJS-y)
SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c) SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c)
OBJS := $(addprefix $(obj),$(COBJS)) OBJS := $(addprefix $(obj),$(COBJS))
SOBJS := $(addprefix $(obj),$(SOBJS)) SOBJS := $(addprefix $(obj),$(SOBJS))

View File

@@ -25,6 +25,7 @@
#include <mpc512x.h> #include <mpc512x.h>
#include <asm/bitops.h> #include <asm/bitops.h>
#include <command.h> #include <command.h>
#include <fdt_support.h>
/* Clocks in use */ /* Clocks in use */
#define SCCR1_CLOCKS_EN (CLOCK_SCCR1_CFG_EN | \ #define SCCR1_CLOCKS_EN (CLOCK_SCCR1_CFG_EN | \
@@ -32,7 +33,9 @@
CLOCK_SCCR1_PSC_EN(CONFIG_PSC_CONSOLE) | \ CLOCK_SCCR1_PSC_EN(CONFIG_PSC_CONSOLE) | \
CLOCK_SCCR1_PSCFIFO_EN | \ CLOCK_SCCR1_PSCFIFO_EN | \
CLOCK_SCCR1_DDR_EN | \ CLOCK_SCCR1_DDR_EN | \
CLOCK_SCCR1_FEC_EN) CLOCK_SCCR1_FEC_EN | \
CLOCK_SCCR1_PCI_EN | \
CLOCK_SCCR1_TPR_EN)
#define SCCR2_CLOCKS_EN (CLOCK_SCCR2_MEM_EN | \ #define SCCR2_CLOCKS_EN (CLOCK_SCCR2_MEM_EN | \
CLOCK_SCCR2_SPDIF_EN | \ CLOCK_SCCR2_SPDIF_EN | \
@@ -124,24 +127,24 @@ long int fixed_sdram (void)
im->mddrc.prioman_config2 = CFG_MDDRCGRP_PM_CFG2; im->mddrc.prioman_config2 = CFG_MDDRCGRP_PM_CFG2;
im->mddrc.hiprio_config = CFG_MDDRCGRP_HIPRIO_CFG; im->mddrc.hiprio_config = CFG_MDDRCGRP_HIPRIO_CFG;
im->mddrc.lut_table0_main_upper = CFG_MDDRCGRP_LUT0_MU; im->mddrc.lut_table0_main_upper = CFG_MDDRCGRP_LUT0_MU;
im->mddrc.lut_table1_main_upper = CFG_MDDRCGRP_LUT1_MU;
im->mddrc.lut_table2_main_upper = CFG_MDDRCGRP_LUT2_MU;
im->mddrc.lut_table3_main_upper = CFG_MDDRCGRP_LUT3_MU;
im->mddrc.lut_table4_main_upper = CFG_MDDRCGRP_LUT4_MU;
im->mddrc.lut_table0_main_lower = CFG_MDDRCGRP_LUT0_ML; im->mddrc.lut_table0_main_lower = CFG_MDDRCGRP_LUT0_ML;
im->mddrc.lut_table1_main_upper = CFG_MDDRCGRP_LUT1_MU;
im->mddrc.lut_table1_main_lower = CFG_MDDRCGRP_LUT1_ML; im->mddrc.lut_table1_main_lower = CFG_MDDRCGRP_LUT1_ML;
im->mddrc.lut_table2_main_upper = CFG_MDDRCGRP_LUT2_MU;
im->mddrc.lut_table2_main_lower = CFG_MDDRCGRP_LUT2_ML; im->mddrc.lut_table2_main_lower = CFG_MDDRCGRP_LUT2_ML;
im->mddrc.lut_table3_main_upper = CFG_MDDRCGRP_LUT3_MU;
im->mddrc.lut_table3_main_lower = CFG_MDDRCGRP_LUT3_ML; im->mddrc.lut_table3_main_lower = CFG_MDDRCGRP_LUT3_ML;
im->mddrc.lut_table4_main_upper = CFG_MDDRCGRP_LUT4_MU;
im->mddrc.lut_table4_main_lower = CFG_MDDRCGRP_LUT4_ML; im->mddrc.lut_table4_main_lower = CFG_MDDRCGRP_LUT4_ML;
im->mddrc.lut_table0_alternate_upper = CFG_MDDRCGRP_LUT0_AU; im->mddrc.lut_table0_alternate_upper = CFG_MDDRCGRP_LUT0_AU;
im->mddrc.lut_table0_alternate_lower = CFG_MDDRCGRP_LUT0_AL;
im->mddrc.lut_table1_alternate_upper = CFG_MDDRCGRP_LUT1_AU; im->mddrc.lut_table1_alternate_upper = CFG_MDDRCGRP_LUT1_AU;
im->mddrc.lut_table2_alternate_upper = CFG_MDDRCGRP_LUT2_AU;
im->mddrc.lut_table3_alternate_upper = CFG_MDDRCGRP_LUT3_AU;
im->mddrc.lut_table4_alternate_upper = CFG_MDDRCGRP_LUT4_AU;
im->mddrc.lut_table0_alternate_lower = CFG_MDDRCGRP_LUT0_AU;
im->mddrc.lut_table1_alternate_lower = CFG_MDDRCGRP_LUT1_AL; im->mddrc.lut_table1_alternate_lower = CFG_MDDRCGRP_LUT1_AL;
im->mddrc.lut_table2_alternate_upper = CFG_MDDRCGRP_LUT2_AU;
im->mddrc.lut_table2_alternate_lower = CFG_MDDRCGRP_LUT2_AL; im->mddrc.lut_table2_alternate_lower = CFG_MDDRCGRP_LUT2_AL;
im->mddrc.lut_table3_alternate_upper = CFG_MDDRCGRP_LUT3_AU;
im->mddrc.lut_table3_alternate_lower = CFG_MDDRCGRP_LUT3_AL; im->mddrc.lut_table3_alternate_lower = CFG_MDDRCGRP_LUT3_AL;
im->mddrc.lut_table4_alternate_upper = CFG_MDDRCGRP_LUT4_AU;
im->mddrc.lut_table4_alternate_lower = CFG_MDDRCGRP_LUT4_AL; im->mddrc.lut_table4_alternate_lower = CFG_MDDRCGRP_LUT4_AL;
/* Initialize MDDRC */ /* Initialize MDDRC */
@@ -154,18 +157,26 @@ long int fixed_sdram (void)
for (i = 0; i < 10; i++) for (i = 0; i < 10; i++)
im->mddrc.ddr_command = CFG_MICRON_NOP; im->mddrc.ddr_command = CFG_MICRON_NOP;
im->mddrc.ddr_command = CFG_MICRON_PCHG_ALL;
im->mddrc.ddr_command = CFG_MICRON_NOP;
im->mddrc.ddr_command = CFG_MICRON_RFSH;
im->mddrc.ddr_command = CFG_MICRON_NOP;
im->mddrc.ddr_command = CFG_MICRON_RFSH;
im->mddrc.ddr_command = CFG_MICRON_NOP;
im->mddrc.ddr_command = CFG_MICRON_INIT_DEV_OP;
im->mddrc.ddr_command = CFG_MICRON_NOP;
im->mddrc.ddr_command = CFG_MICRON_EM2;
im->mddrc.ddr_command = CFG_MICRON_NOP;
im->mddrc.ddr_command = CFG_MICRON_PCHG_ALL; im->mddrc.ddr_command = CFG_MICRON_PCHG_ALL;
im->mddrc.ddr_command = CFG_MICRON_EM2; im->mddrc.ddr_command = CFG_MICRON_EM2;
im->mddrc.ddr_command = CFG_MICRON_EM3; im->mddrc.ddr_command = CFG_MICRON_EM3;
im->mddrc.ddr_command = CFG_MICRON_EN_DLL; im->mddrc.ddr_command = CFG_MICRON_EN_DLL;
im->mddrc.ddr_command = CFG_MICRON_RST_DLL; im->mddrc.ddr_command = CFG_MICRON_INIT_DEV_OP;
im->mddrc.ddr_command = CFG_MICRON_PCHG_ALL; im->mddrc.ddr_command = CFG_MICRON_PCHG_ALL;
im->mddrc.ddr_command = CFG_MICRON_RFSH; im->mddrc.ddr_command = CFG_MICRON_RFSH;
im->mddrc.ddr_command = CFG_MICRON_INIT_DEV_OP; im->mddrc.ddr_command = CFG_MICRON_INIT_DEV_OP;
im->mddrc.ddr_command = CFG_MICRON_OCD_DEFAULT; im->mddrc.ddr_command = CFG_MICRON_OCD_DEFAULT;
im->mddrc.ddr_command = CFG_MICRON_OCD_EXIT; im->mddrc.ddr_command = CFG_MICRON_PCHG_ALL;
for (i = 0; i < 10; i++)
im->mddrc.ddr_command = CFG_MICRON_NOP; im->mddrc.ddr_command = CFG_MICRON_NOP;
/* Start MDDRC */ /* Start MDDRC */
@@ -179,8 +190,24 @@ int checkboard (void)
{ {
ushort brd_rev = *(vu_short *) (CFG_CPLD_BASE + 0x00); ushort brd_rev = *(vu_short *) (CFG_CPLD_BASE + 0x00);
uchar cpld_rev = *(vu_char *) (CFG_CPLD_BASE + 0x02); uchar cpld_rev = *(vu_char *) (CFG_CPLD_BASE + 0x02);
volatile immap_t *im = (immap_t *) CFG_IMMR;
volatile unsigned long *reg;
int i;
printf ("Board: ADS5121 rev. 0x%04x (CPLD rev. 0x%02x)\n", printf ("Board: ADS5121 rev. 0x%04x (CPLD rev. 0x%02x)\n",
brd_rev, cpld_rev); brd_rev, cpld_rev);
/* change the slew rate on all pata pins to max */
reg = (unsigned long *) &(im->io_ctrl.regs[PATA_CE1_IDX]);
for (i = 0; i < 9; i++)
reg[i] |= 0x00000003;
return 0; return 0;
} }
#if defined(CONFIG_OF_LIBFDT) && defined(CONFIG_OF_BOARD_SETUP)
void ft_board_setup(void *blob, bd_t *bd)
{
ft_cpu_setup(blob, bd);
fdt_fixup_memory(blob, (u64)bd->bi_memstart, (u64)bd->bi_memsize);
}
#endif /* defined(CONFIG_OF_LIBFDT) && defined(CONFIG_OF_BOARD_SETUP) */

213
board/ads5121/pci.c Normal file
View File

@@ -0,0 +1,213 @@
/*
* Copyright (C) Freescale Semiconductor, Inc. 2006, 2007. All rights reserved.
*
* 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 <common.h>
#include <asm/mmu.h>
#include <asm/global_data.h>
#include <pci.h>
#if defined(CONFIG_OF_LIBFDT)
#include <libfdt.h>
#include <fdt_support.h>
#endif
DECLARE_GLOBAL_DATA_PTR;
/* System RAM mapped to PCI space */
#define CONFIG_PCI_SYS_MEM_BUS CFG_SDRAM_BASE
#define CONFIG_PCI_SYS_MEM_PHYS CFG_SDRAM_BASE
static struct pci_controller pci_hose;
/**************************************************************************
* pci_init_board()
*
*/
void
pci_init_board(void)
{
volatile immap_t *immr = (immap_t *) CFG_IMMR;
volatile law512x_t *pci_law;
volatile pot512x_t *pci_pot;
volatile pcictrl512x_t *pci_ctrl;
volatile pciconf512x_t *pci_conf;
u16 reg16;
u32 reg32;
u32 dev;
struct pci_controller *hose;
/* Set PCI divider for 33MHz */
reg32 = immr->clk.scfr[0];
reg32 &= ~(SCFR1_PCI_DIV_MASK);
reg32 |= SCFR1_PCI_DIV << SCFR1_PCI_DIV_SHIFT;
immr->clk.scfr[0] = reg32;
pci_law = immr->sysconf.pcilaw;
pci_pot = immr->ios.pot;
pci_ctrl = &immr->pci_ctrl;
pci_conf = &immr->pci_conf;
hose = &pci_hose;
/*
* Release PCI RST Output signal
*/
pci_ctrl->gcr = 0;
udelay(2000);
pci_ctrl->gcr = 1;
/* We need to wait at least a 1sec based on PCI specs */
{
int i;
for (i = 0; i < 1000; i++)
udelay(1000);
}
/*
* Configure PCI Local Access Windows
*/
pci_law[0].bar = CFG_PCI_MEM_PHYS & LAWBAR_BAR;
pci_law[0].ar = LAWAR_EN | LAWAR_SIZE_512M;
pci_law[1].bar = CFG_PCI_IO_PHYS & LAWBAR_BAR;
pci_law[1].ar = LAWAR_EN | LAWAR_SIZE_16M;
/*
* Configure PCI Outbound Translation Windows
*/
/* PCI mem space - prefetch */
pci_pot[0].potar = (CFG_PCI_MEM_BASE >> 12) & POTAR_TA_MASK;
pci_pot[0].pobar = (CFG_PCI_MEM_PHYS >> 12) & POBAR_BA_MASK;
pci_pot[0].pocmr = POCMR_EN | POCMR_PRE | POCMR_CM_256M;
/* PCI IO space */
pci_pot[1].potar = (CFG_PCI_IO_BASE >> 12) & POTAR_TA_MASK;
pci_pot[1].pobar = (CFG_PCI_IO_PHYS >> 12) & POBAR_BA_MASK;
pci_pot[1].pocmr = POCMR_EN | POCMR_IO | POCMR_CM_16M;
/* PCI mmio - non-prefetch mem space */
pci_pot[2].potar = (CFG_PCI_MMIO_BASE >> 12) & POTAR_TA_MASK;
pci_pot[2].pobar = (CFG_PCI_MMIO_PHYS >> 12) & POBAR_BA_MASK;
pci_pot[2].pocmr = POCMR_EN | POCMR_CM_256M;
/*
* Configure PCI Inbound Translation Windows
*/
/* we need RAM mapped to PCI space for the devices to
* access main memory */
pci_ctrl[0].pitar1 = 0x0;
pci_ctrl[0].pibar1 = 0x0;
pci_ctrl[0].piebar1 = 0x0;
pci_ctrl[0].piwar1 = PIWAR_EN | PIWAR_PF | PIWAR_RTT_SNOOP |
PIWAR_WTT_SNOOP | (__ilog2(gd->ram_size) - 1);
hose->first_busno = 0;
hose->last_busno = 0xff;
/* PCI memory prefetch space */
pci_set_region(hose->regions + 0,
CFG_PCI_MEM_BASE,
CFG_PCI_MEM_PHYS,
CFG_PCI_MEM_SIZE,
PCI_REGION_MEM|PCI_REGION_PREFETCH);
/* PCI memory space */
pci_set_region(hose->regions + 1,
CFG_PCI_MMIO_BASE,
CFG_PCI_MMIO_PHYS,
CFG_PCI_MMIO_SIZE,
PCI_REGION_MEM);
/* PCI IO space */
pci_set_region(hose->regions + 2,
CFG_PCI_IO_BASE,
CFG_PCI_IO_PHYS,
CFG_PCI_IO_SIZE,
PCI_REGION_IO);
/* System memory space */
pci_set_region(hose->regions + 3,
CONFIG_PCI_SYS_MEM_BUS,
CONFIG_PCI_SYS_MEM_PHYS,
gd->ram_size,
PCI_REGION_MEM | PCI_REGION_MEMORY);
hose->region_count = 4;
pci_setup_indirect(hose,
(CFG_IMMR + 0x8300),
(CFG_IMMR + 0x8304));
pci_register_hose(hose);
/*
* Write to Command register
*/
reg16 = 0xff;
dev = PCI_BDF(hose->first_busno, 0, 0);
pci_hose_read_config_word(hose, dev, PCI_COMMAND, &reg16);
reg16 |= PCI_COMMAND_SERR | PCI_COMMAND_MASTER | PCI_COMMAND_MEMORY;
pci_hose_write_config_word(hose, dev, PCI_COMMAND, reg16);
/*
* Clear non-reserved bits in status register.
*/
pci_hose_write_config_word(hose, dev, PCI_STATUS, 0xffff);
pci_hose_write_config_byte(hose, dev, PCI_LATENCY_TIMER, 0x80);
pci_hose_write_config_byte(hose, dev, PCI_CACHE_LINE_SIZE, 0x08);
#ifdef CONFIG_PCI_SCAN_SHOW
printf("PCI: Bus Dev VenId DevId Class Int\n");
#endif
/*
* Hose scan.
*/
hose->last_busno = pci_hose_scan(hose);
}
#if defined(CONFIG_OF_LIBFDT)
void ft_pci_setup(void *blob, bd_t *bd)
{
int nodeoffset;
int tmp[2];
const char *path;
nodeoffset = fdt_path_offset(blob, "/aliases");
if (nodeoffset >= 0) {
path = fdt_getprop(blob, nodeoffset, "pci", NULL);
if (path) {
tmp[0] = cpu_to_be32(pci_hose.first_busno);
tmp[1] = cpu_to_be32(pci_hose.last_busno);
do_fixup_by_path(blob, path, "bus-range",
&tmp, sizeof(tmp), 1);
tmp[0] = cpu_to_be32(gd->pci_clk);
do_fixup_by_path(blob, path, "clock-frequency",
&tmp, sizeof(tmp[0]), 1);
}
}
}
#endif /* CONFIG_OF_LIBFDT */

View File

@@ -109,7 +109,7 @@ SECTIONS
__init_end = .; __init_end = .;
__bss_start = .; __bss_start = .;
.bss : .bss (NOLOAD) :
{ {
*(.sbss) *(.scommon) *(.sbss) *(.scommon)
*(.dynbss) *(.dynbss)

View File

@@ -51,6 +51,6 @@ SECTIONS
. = ALIGN(4); . = ALIGN(4);
__bss_start = .; __bss_start = .;
.bss : { *(.bss) } .bss (NOLOAD) : { *(.bss) }
_end = .; _end = .;
} }

View File

@@ -61,7 +61,7 @@ SECTIONS
__bss_start = .; __bss_start = .;
. = ALIGN(4); . = ALIGN(4);
.bss : .bss (NOLOAD) :
{ {
*(.bss) *(.bss)
} }

View File

@@ -61,7 +61,7 @@ SECTIONS
__bss_start = .; __bss_start = .;
. = ALIGN(4); . = ALIGN(4);
.bss : .bss (NOLOAD) :
{ {
*(.bss) *(.bss)
} }

View File

@@ -87,7 +87,7 @@ SECTIONS
* bss follows. We keep it adjacent to simplify init code. * bss follows. We keep it adjacent to simplify init code.
*/ */
__bss_start = .; __bss_start = .;
.sbss : .sbss (NOLOAD) :
{ {
*(.sbss) *(.sbss)
*(.sbss.*) *(.sbss.*)
@@ -95,7 +95,7 @@ SECTIONS
*(.scommon) *(.scommon)
} }
. = ALIGN(4); . = ALIGN(4);
.bss : .bss (NOLOAD) :
{ {
*(.bss) *(.bss)
*(.bss.*) *(.bss.*)

View File

@@ -87,7 +87,7 @@ SECTIONS
* bss follows. We keep it adjacent to simplify init code. * bss follows. We keep it adjacent to simplify init code.
*/ */
__bss_start = .; __bss_start = .;
.sbss : .sbss (NOLOAD) :
{ {
*(.sbss) *(.sbss)
*(.sbss.*) *(.sbss.*)
@@ -95,7 +95,7 @@ SECTIONS
*(.scommon) *(.scommon)
} }
. = ALIGN(4); . = ALIGN(4);
.bss : .bss (NOLOAD) :
{ {
*(.bss) *(.bss)
*(.bss.*) *(.bss.*)

View File

@@ -87,7 +87,7 @@ SECTIONS
* bss follows. We keep it adjacent to simplify init code. * bss follows. We keep it adjacent to simplify init code.
*/ */
__bss_start = .; __bss_start = .;
.sbss : .sbss (NOLOAD) :
{ {
*(.sbss) *(.sbss)
*(.sbss.*) *(.sbss.*)
@@ -95,7 +95,7 @@ SECTIONS
*(.scommon) *(.scommon)
} }
. = ALIGN(4); . = ALIGN(4);
.bss : .bss (NOLOAD) :
{ {
*(.bss) *(.bss)
*(.bss.*) *(.bss.*)

View File

@@ -28,7 +28,7 @@
sinclude $(OBJTREE)/board/$(BOARDDIR)/config.tmp sinclude $(OBJTREE)/board/$(BOARDDIR)/config.tmp
ifndef TEXT_BASE ifndef TEXT_BASE
TEXT_BASE = 0xFFFC0000 TEXT_BASE = 0xFFF80000
endif endif
ifeq ($(debug),1) ifeq ($(debug),1)

View File

@@ -117,7 +117,9 @@ long int initdram(int board_type)
return (CFG_MBYTES_RAM << 20); return (CFG_MBYTES_RAM << 20);
} }
#ifndef CONFIG_NAND_SPL
int testdram(void) int testdram(void)
{ {
return (0); return (0);
} }
#endif

View File

@@ -22,7 +22,6 @@
*/ */
OUTPUT_ARCH(powerpc) OUTPUT_ARCH(powerpc)
SEARCH_DIR(/lib); SEARCH_DIR(/usr/lib); SEARCH_DIR(/usr/local/lib); SEARCH_DIR(/usr/local/powerpc-any-elf/lib);
SECTIONS SECTIONS
{ {
/* Read-only sections, merged into text segment: */ /* Read-only sections, merged into text segment: */
@@ -124,7 +123,7 @@ SECTIONS
__init_end = .; __init_end = .;
__bss_start = .; __bss_start = .;
.bss : .bss (NOLOAD) :
{ {
*(.sbss) *(.scommon) *(.sbss) *(.scommon)
*(.dynbss) *(.dynbss)

View File

@@ -22,7 +22,6 @@
*/ */
OUTPUT_ARCH(powerpc) OUTPUT_ARCH(powerpc)
SEARCH_DIR(/lib); SEARCH_DIR(/usr/lib); SEARCH_DIR(/usr/local/lib); SEARCH_DIR(/usr/local/powerpc-any-elf/lib);
/* Do we need any of these for elf? /* Do we need any of these for elf?
__DYNAMIC = 0; */ __DYNAMIC = 0; */
SECTIONS SECTIONS
@@ -125,7 +124,7 @@ SECTIONS
__init_end = .; __init_end = .;
__bss_start = .; __bss_start = .;
.bss : .bss (NOLOAD) :
{ {
*(.sbss) *(.scommon) *(.sbss) *(.scommon)
*(.dynbss) *(.dynbss)

View File

@@ -67,13 +67,13 @@ const unsigned char cfg_simulate_spd_eeprom[128] = {
0x00, /* Module data width continued: +0 */ 0x00, /* Module data width continued: +0 */
0x04, /* 2.5 Volt */ 0x04, /* 2.5 Volt */
0x75, /* SDRAM Cycle Time (cas latency 2.5) = 7.5 ns */ 0x75, /* SDRAM Cycle Time (cas latency 2.5) = 7.5 ns */
0x00, /* SDRAM Access from clock */
#ifdef CONFIG_DDR_ECC #ifdef CONFIG_DDR_ECC
0x02, /* ECC ON : 02 OFF : 00 */ 0x02, /* ECC ON : 02 OFF : 00 */
#else #else
0x00, /* ECC ON : 02 OFF : 00 */ 0x00, /* ECC ON : 02 OFF : 00 */
#endif #endif
0x82, /* refresh Rate Type: Normal (15.625us) + Self refresh */ 0x82, /* refresh Rate Type: Normal (7.8us) + Self refresh */
0,
0, 0,
0, 0,
0x01, /* wcsbc = 1 */ 0x01, /* wcsbc = 1 */

View File

@@ -22,7 +22,6 @@
*/ */
OUTPUT_ARCH(powerpc) OUTPUT_ARCH(powerpc)
SEARCH_DIR(/lib); SEARCH_DIR(/usr/lib); SEARCH_DIR(/usr/local/lib); SEARCH_DIR(/usr/local/powerpc-any-elf/lib);
SECTIONS SECTIONS
{ {
/* Read-only sections, merged into text segment: */ /* Read-only sections, merged into text segment: */
@@ -124,7 +123,7 @@ SECTIONS
__init_end = .; __init_end = .;
__bss_start = .; __bss_start = .;
.bss : .bss (NOLOAD) :
{ {
*(.sbss) *(.scommon) *(.sbss) *(.scommon)
*(.dynbss) *(.dynbss)

View File

@@ -22,7 +22,6 @@
*/ */
OUTPUT_ARCH(powerpc) OUTPUT_ARCH(powerpc)
SEARCH_DIR(/lib); SEARCH_DIR(/usr/lib); SEARCH_DIR(/usr/local/lib); SEARCH_DIR(/usr/local/powerpc-any-elf/lib);
/* Do we need any of these for elf? /* Do we need any of these for elf?
__DYNAMIC = 0; */ __DYNAMIC = 0; */
SECTIONS SECTIONS
@@ -133,7 +132,7 @@ SECTIONS
__init_end = .; __init_end = .;
__bss_start = .; __bss_start = .;
.bss : .bss (NOLOAD) :
{ {
*(.sbss) *(.scommon) *(.sbss) *(.scommon)
*(.dynbss) *(.dynbss)

View File

@@ -22,7 +22,6 @@
*/ */
OUTPUT_ARCH(powerpc) OUTPUT_ARCH(powerpc)
SEARCH_DIR(/lib); SEARCH_DIR(/usr/lib); SEARCH_DIR(/usr/local/lib); SEARCH_DIR(/usr/local/powerpc-any-elf/lib);
/* Do we need any of these for elf? /* Do we need any of these for elf?
__DYNAMIC = 0; */ __DYNAMIC = 0; */
SECTIONS SECTIONS
@@ -62,19 +61,6 @@ SECTIONS
/* the sector layout of our flash chips! XXX FIXME XXX */ /* the sector layout of our flash chips! XXX FIXME XXX */
cpu/ppc4xx/start.o (.text) cpu/ppc4xx/start.o (.text)
cpu/ppc4xx/kgdb.o (.text)
cpu/ppc4xx/traps.o (.text)
cpu/ppc4xx/interrupts.o (.text)
cpu/ppc4xx/serial.o (.text)
cpu/ppc4xx/cpu_init.o (.text)
cpu/ppc4xx/speed.o (.text)
common/dlmalloc.o (.text)
lib_generic/crc32.o (.text)
lib_ppc/extable.o (.text)
lib_generic/zlib.o (.text)
/* . = env_offset;*/
/* common/environment.o(.text)*/
*(.text) *(.text)
*(.fixup) *(.fixup)
@@ -138,7 +124,7 @@ SECTIONS
__init_end = .; __init_end = .;
__bss_start = .; __bss_start = .;
.bss : .bss (NOLOAD) :
{ {
*(.sbss) *(.scommon) *(.sbss) *(.scommon)
*(.dynbss) *(.dynbss)

View File

@@ -0,0 +1,52 @@
#
# (C) Copyright 2008
# Stefan Roese, DENX Software Engineering, sr@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
#
include $(TOPDIR)/config.mk
LIB = $(obj)lib$(BOARD).a
COBJS := $(BOARD).o
COBJS += bootstrap.o
SOBJS := init.o
SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c)
OBJS := $(addprefix $(obj),$(COBJS))
SOBJS := $(addprefix $(obj),$(SOBJS))
$(LIB): $(OBJS) $(SOBJS)
$(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
clean:
rm -f $(SOBJS) $(OBJS)
distclean: clean
rm -f $(LIB) core *.bak .depend
#########################################################################
# defines $(obj).depend target
include $(SRCTREE)/rules.mk
sinclude $(obj).depend
#########################################################################

View File

@@ -0,0 +1,183 @@
/*
* (C) Copyright 2008
* Stefan Roese, DENX Software Engineering, sr@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
*
*/
#include <common.h>
#include <command.h>
#include <i2c.h>
#include <asm/io.h>
/*
* NOR and NAND boot options change bytes 5, 6, 8, 9, 11. The
* values are independent of the rest of the clock settings.
*/
#define NAND_COMPATIBLE 0x01
#define NOR_COMPATIBLE 0x02
#define I2C_EEPROM_ADDR 0x52
static char *config_labels[] = {
"CPU: 600 PLB: 200 OPB: 100 EBC: 100",
"CPU: 800 PLB: 200 OPB: 100 EBC: 100",
NULL
};
static u8 boot_configs[][17] = {
{
(NAND_COMPATIBLE | NOR_COMPATIBLE),
0x86, 0x80, 0xce, 0x1f, 0x79, 0x80, 0x00, 0xa0, 0x40, 0x08,
0x23, 0x50, 0x0d, 0x05, 0x00, 0x00
},
{
(NAND_COMPATIBLE | NOR_COMPATIBLE),
0x86, 0x80, 0xba, 0x14, 0x99, 0x80, 0x00, 0xa0, 0x40, 0x08,
0x23, 0x50, 0x0d, 0x05, 0x00, 0x00
},
{
0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
}
};
/*
* Bytes 5,6,8,9,11 change for NAND boot
*/
#if 0
/*
* Values for 512 page size NAND chips, not used anymore, just
* keep them here for reference
*/
static u8 nand_boot[] = {
0x90, 0x01, 0xa0, 0x68, 0x58
};
#else
/*
* Values for 2k page size NAND chips
*/
static u8 nand_boot[] = {
0x90, 0x01, 0xa0, 0xe8, 0x58
};
#endif
static int do_bootstrap(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
{
u8 *buf, b_nand;
int x, y, nbytes, selcfg;
extern char console_buffer[];
if (argc < 2) {
printf("Usage:\n%s\n", cmdtp->usage);
return 1;
}
if ((strcmp(argv[1], "nor") != 0) &&
(strcmp(argv[1], "nand") != 0)) {
printf("Unsupported boot-device - only nor|nand support\n");
return 1;
}
/* set the nand flag based on provided input */
if ((strcmp(argv[1], "nand") == 0))
b_nand = 1;
else
b_nand = 0;
printf("Available configurations: \n\n");
if (b_nand) {
for(x = 0, y = 0; boot_configs[x][0] != 0; x++) {
/* filter on nand compatible */
if (boot_configs[x][0] & NAND_COMPATIBLE) {
printf(" %d - %s\n", (y+1), config_labels[x]);
y++;
}
}
} else {
for(x = 0, y = 0; boot_configs[x][0] != 0; x++) {
/* filter on nor compatible */
if (boot_configs[x][0] & NOR_COMPATIBLE) {
printf(" %d - %s\n", (y+1), config_labels[x]);
y++;
}
}
}
do {
nbytes = readline(" Selection [1-x / quit]: ");
if (nbytes) {
if (strcmp(console_buffer, "quit") == 0)
return 0;
selcfg = simple_strtol(console_buffer, NULL, 10);
if ((selcfg < 1) || (selcfg > y))
nbytes = 0;
}
} while (nbytes == 0);
y = (selcfg - 1);
for (x = 0; boot_configs[x][0] != 0; x++) {
if (b_nand) {
if (boot_configs[x][0] & NAND_COMPATIBLE) {
if (y > 0)
y--;
else if (y < 1)
break;
}
} else {
if (boot_configs[x][0] & NOR_COMPATIBLE) {
if (y > 0)
y--;
else if (y < 1)
break;
}
}
}
buf = &boot_configs[x][1];
if (b_nand) {
buf[5] = nand_boot[0];
buf[6] = nand_boot[1];
buf[8] = nand_boot[2];
buf[9] = nand_boot[3];
buf[11] = nand_boot[4];
}
if (i2c_write(I2C_EEPROM_ADDR, 0, 1, buf, 16) != 0)
printf("Error writing to EEPROM at address 0x%x\n", I2C_EEPROM_ADDR);
udelay(CFG_EEPROM_PAGE_WRITE_DELAY_MS * 1000);
printf("Done\n");
printf("Please power-cycle the board for the changes to take effect\n");
return 0;
}
U_BOOT_CMD(
bootstrap, 2, 0, do_bootstrap,
"bootstrap - program the I2C bootstrap EEPROM\n",
"<nand|nor> - strap to boot from NAND or NOR flash\n"
);

View File

@@ -0,0 +1,512 @@
/*
* (C) Copyright 2008
* Stefan Roese, DENX Software Engineering, sr@denx.de.
*
* 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 <common.h>
#include <ppc440.h>
#include <libfdt.h>
#include <fdt_support.h>
#include <asm/processor.h>
#include <asm/io.h>
#include <asm/mmu.h>
#include <asm/4xx_pcie.h>
#include <asm/gpio.h>
extern flash_info_t flash_info[CFG_MAX_FLASH_BANKS]; /* info for FLASH chips */
DECLARE_GLOBAL_DATA_PTR;
#define CFG_BCSR3_PCIE 0x10
#define BOARD_CANYONLANDS_PCIE 1
#define BOARD_CANYONLANDS_SATA 2
#define BOARD_GLACIER 3
int board_early_init_f(void)
{
u32 sdr0_cust0;
u32 pvr = get_pvr();
/*
* Setup the interrupt controller polarities, triggers, etc.
*/
mtdcr(uic0sr, 0xffffffff); /* clear all */
mtdcr(uic0er, 0x00000000); /* disable all */
mtdcr(uic0cr, 0x00000005); /* ATI & UIC1 crit are critical */
mtdcr(uic0pr, 0xffffffff); /* per ref-board manual */
mtdcr(uic0tr, 0x00000000); /* per ref-board manual */
mtdcr(uic0vr, 0x00000000); /* int31 highest, base=0x000 */
mtdcr(uic0sr, 0xffffffff); /* clear all */
mtdcr(uic1sr, 0xffffffff); /* clear all */
mtdcr(uic1er, 0x00000000); /* disable all */
mtdcr(uic1cr, 0x00000000); /* all non-critical */
mtdcr(uic1pr, 0xffffffff); /* per ref-board manual */
mtdcr(uic1tr, 0x00000000); /* per ref-board manual */
mtdcr(uic1vr, 0x00000000); /* int31 highest, base=0x000 */
mtdcr(uic1sr, 0xffffffff); /* clear all */
mtdcr(uic2sr, 0xffffffff); /* clear all */
mtdcr(uic2er, 0x00000000); /* disable all */
mtdcr(uic2cr, 0x00000000); /* all non-critical */
mtdcr(uic2pr, 0xffffffff); /* per ref-board manual */
mtdcr(uic2tr, 0x00000000); /* per ref-board manual */
mtdcr(uic2vr, 0x00000000); /* int31 highest, base=0x000 */
mtdcr(uic2sr, 0xffffffff); /* clear all */
mtdcr(uic3sr, 0xffffffff); /* clear all */
mtdcr(uic3er, 0x00000000); /* disable all */
mtdcr(uic3cr, 0x00000000); /* all non-critical */
mtdcr(uic3pr, 0xffffffff); /* per ref-board manual */
mtdcr(uic3tr, 0x00000000); /* per ref-board manual */
mtdcr(uic3vr, 0x00000000); /* int31 highest, base=0x000 */
mtdcr(uic3sr, 0xffffffff); /* clear all */
/* SDR Setting - enable NDFC */
mfsdr(SDR0_CUST0, sdr0_cust0);
sdr0_cust0 = SDR0_CUST0_MUX_NDFC_SEL |
SDR0_CUST0_NDFC_ENABLE |
SDR0_CUST0_NDFC_BW_8_BIT |
SDR0_CUST0_NDFC_ARE_MASK |
SDR0_CUST0_NDFC_BAC_ENCODE(3) |
(0x80000000 >> (28 + CFG_NAND_CS));
mtsdr(SDR0_CUST0, sdr0_cust0);
/*
* Configure PFC (Pin Function Control) registers
* UART0: 4 pins
*/
mtsdr(SDR0_PFC1, 0x00040000);
/* Enable PCI host functionality in SDR0_PCI0 */
mtsdr(SDR0_PCI0, 0xe0000000);
/* Enable ethernet and take out of reset */
out_8((void *)CFG_BCSR_BASE + 6, 0);
/* Remove NOR-FLASH, NAND-FLASH & EEPROM hardware write protection */
out_8((void *)CFG_BCSR_BASE + 5, 0);
/* Enable USB host & USB-OTG */
out_8((void *)CFG_BCSR_BASE + 7, 0);
mtsdr(SDR0_SRST1, 0); /* Pull AHB out of reset default=1 */
/* Setup PLB4-AHB bridge based on the system address map */
mtdcr(AHB_TOP, 0x8000004B);
mtdcr(AHB_BOT, 0x8000004B);
if ((pvr == PVR_460EX_RA) || (pvr == PVR_460EX_SE_RA)) {
/*
* Configure USB-STP pins as alternate and not GPIO
* It seems to be neccessary to configure the STP pins as GPIO
* input at powerup (perhaps while USB reset is asserted). So
* we configure those pins to their "real" function now.
*/
gpio_config(16, GPIO_OUT, GPIO_ALT1, GPIO_OUT_1);
gpio_config(19, GPIO_OUT, GPIO_ALT1, GPIO_OUT_1);
}
return 0;
}
static void canyonlands_sata_init(int board_type)
{
u32 reg;
if (board_type == BOARD_CANYONLANDS_SATA) {
/* Put SATA in reset */
SDR_WRITE(SDR0_SRST1, 0x00020001);
/* Set the phy for SATA, not PCI-E port 0 */
reg = SDR_READ(PESDR0_PHY_CTL_RST);
SDR_WRITE(PESDR0_PHY_CTL_RST, (reg & 0xeffffffc) | 0x00000001);
reg = SDR_READ(PESDR0_L0CLK);
SDR_WRITE(PESDR0_L0CLK, (reg & 0xfffffff8) | 0x00000007);
SDR_WRITE(PESDR0_L0CDRCTL, 0x00003111);
SDR_WRITE(PESDR0_L0DRV, 0x00000104);
/* Bring SATA out of reset */
SDR_WRITE(SDR0_SRST1, 0x00000000);
}
}
int checkboard(void)
{
char *s = getenv("serial#");
u32 pvr = get_pvr();
if ((pvr == PVR_460GT_RA) || (pvr == PVR_460GT_SE_RA)) {
printf("Board: Glacier - AMCC PPC460GT Evaluation Board");
gd->board_type = BOARD_GLACIER;
} else {
printf("Board: Canyonlands - AMCC PPC460EX Evaluation Board");
if (in_8((void *)(CFG_BCSR_BASE + 3)) & CFG_BCSR3_PCIE)
gd->board_type = BOARD_CANYONLANDS_PCIE;
else
gd->board_type = BOARD_CANYONLANDS_SATA;
}
switch (gd->board_type) {
case BOARD_CANYONLANDS_PCIE:
case BOARD_GLACIER:
puts(", 2*PCIe");
break;
case BOARD_CANYONLANDS_SATA:
puts(", 1*PCIe/1*SATA");
break;
}
printf(", Rev. %X", in_8((void *)(CFG_BCSR_BASE + 0)));
if (s != NULL) {
puts(", serial# ");
puts(s);
}
putc('\n');
canyonlands_sata_init(gd->board_type);
return (0);
}
/*
* Override the default functions in cpu/ppc4xx/44x_spd_ddr2.c with
* board specific values.
*/
u32 ddr_wrdtr(u32 default_val) {
return (SDRAM_WRDTR_LLWP_1_CYC | SDRAM_WRDTR_WTR_180_DEG_ADV | 0x823);
}
u32 ddr_clktr(u32 default_val) {
return (SDRAM_CLKTR_CLKP_90_DEG_ADV);
}
#if defined(CONFIG_NAND_U_BOOT)
/*
* NAND booting U-Boot version uses a fixed initialization, since the whole
* I2C SPD DIMM autodetection/calibration doesn't fit into the 4k of boot
* code.
*/
long int initdram(int board_type)
{
return CFG_MBYTES_SDRAM << 20;
}
#endif
#if defined(CFG_DRAM_TEST)
int testdram(void)
{
unsigned long *mem = (unsigned long *)0;
const unsigned long kend = (1024 / sizeof(unsigned long));
unsigned long k, n;
mtmsr(0);
for (k = 0; k < CFG_KBYTES_SDRAM;
++k, mem += (1024 / sizeof(unsigned long))) {
if ((k & 1023) == 0) {
printf("%3d MB\r", k / 1024);
}
memset(mem, 0xaaaaaaaa, 1024);
for (n = 0; n < kend; ++n) {
if (mem[n] != 0xaaaaaaaa) {
printf("SDRAM test fails at: %08x\n",
(uint) & mem[n]);
return 1;
}
}
memset(mem, 0x55555555, 1024);
for (n = 0; n < kend; ++n) {
if (mem[n] != 0x55555555) {
printf("SDRAM test fails at: %08x\n",
(uint) & mem[n]);
return 1;
}
}
}
printf("SDRAM test passes\n");
return 0;
}
#endif
/*
* pci_target_init
*
* The bootstrap configuration provides default settings for the pci
* inbound map (PIM). But the bootstrap config choices are limited and
* may not be sufficient for a given board.
*/
#if defined(CONFIG_PCI) && defined(CFG_PCI_TARGET_INIT)
void pci_target_init(struct pci_controller * hose )
{
/*
* Disable everything
*/
out_le32((void *)PCIX0_PIM0SA, 0); /* disable */
out_le32((void *)PCIX0_PIM1SA, 0); /* disable */
out_le32((void *)PCIX0_PIM2SA, 0); /* disable */
out_le32((void *)PCIX0_EROMBA, 0); /* disable expansion rom */
/*
* Map all of SDRAM to PCI address 0x0000_0000. Note that the 440
* strapping options to not support sizes such as 128/256 MB.
*/
out_le32((void *)PCIX0_PIM0LAL, CFG_SDRAM_BASE);
out_le32((void *)PCIX0_PIM0LAH, 0);
out_le32((void *)PCIX0_PIM0SA, ~(gd->ram_size - 1) | 1);
out_le32((void *)PCIX0_BAR0, 0);
/*
* Program the board's subsystem id/vendor id
*/
out_le16((void *)PCIX0_SBSYSVID, CFG_PCI_SUBSYS_VENDORID);
out_le16((void *)PCIX0_SBSYSID, CFG_PCI_SUBSYS_DEVICEID);
out_le16((void *)PCIX0_CMD, in16r(PCIX0_CMD) | PCI_COMMAND_MEMORY);
}
#endif /* defined(CONFIG_PCI) && defined(CFG_PCI_TARGET_INIT) */
#if defined(CONFIG_PCI)
/*
* is_pci_host
*
* This routine is called to determine if a pci scan should be
* performed. With various hardware environments (especially cPCI and
* PPMC) it's insufficient to depend on the state of the arbiter enable
* bit in the strap register, or generic host/adapter assumptions.
*
* Rather than hard-code a bad assumption in the general 440 code, the
* 440 pci code requires the board to decide at runtime.
*
* Return 0 for adapter mode, non-zero for host (monarch) mode.
*/
int is_pci_host(struct pci_controller *hose)
{
/* Board is always configured as host. */
return (1);
}
static struct pci_controller pcie_hose[2] = {{0},{0}};
void pcie_setup_hoses(int busno)
{
struct pci_controller *hose;
int i, bus;
int ret = 0;
char *env;
unsigned int delay;
int start;
/*
* assume we're called after the PCIX hose is initialized, which takes
* bus ID 0 and therefore start numbering PCIe's from 1.
*/
bus = busno;
/*
* Canyonlands with SATA enabled has only one PCIe slot
* (2nd one).
*/
if (gd->board_type == BOARD_CANYONLANDS_SATA)
start = 1;
else
start = 0;
for (i = start; i <= 1; i++) {
if (is_end_point(i))
ret = ppc4xx_init_pcie_endport(i);
else
ret = ppc4xx_init_pcie_rootport(i);
if (ret) {
printf("PCIE%d: initialization as %s failed\n", i,
is_end_point(i) ? "endpoint" : "root-complex");
continue;
}
hose = &pcie_hose[i];
hose->first_busno = bus;
hose->last_busno = bus;
hose->current_busno = bus;
/* setup mem resource */
pci_set_region(hose->regions + 0,
CFG_PCIE_MEMBASE + i * CFG_PCIE_MEMSIZE,
CFG_PCIE_MEMBASE + i * CFG_PCIE_MEMSIZE,
CFG_PCIE_MEMSIZE,
PCI_REGION_MEM);
hose->region_count = 1;
pci_register_hose(hose);
if (is_end_point(i)) {
ppc4xx_setup_pcie_endpoint(hose, i);
/*
* Reson for no scanning is endpoint can not generate
* upstream configuration accesses.
*/
} else {
ppc4xx_setup_pcie_rootpoint(hose, i);
env = getenv ("pciscandelay");
if (env != NULL) {
delay = simple_strtoul(env, NULL, 10);
if (delay > 5)
printf("Warning, expect noticable delay before "
"PCIe scan due to 'pciscandelay' value!\n");
mdelay(delay * 1000);
}
/*
* Config access can only go down stream
*/
hose->last_busno = pci_hose_scan(hose);
bus = hose->last_busno + 1;
}
}
}
#endif /* CONFIG_PCI */
int board_early_init_r (void)
{
/*
* Canyonlands has 64MBytes of NOR FLASH (Spansion 29GL512), but the
* boot EBC mapping only supports a maximum of 16MBytes
* (4.ff00.0000 - 4.ffff.ffff).
* To solve this problem, the FLASH has to get remapped to another
* EBC address which accepts bigger regions:
*
* 0xfc00.0000 -> 4.cc00.0000
*/
/* Remap the NOR FLASH to 0xcc00.0000 ... 0xcfff.ffff */
#if defined(CONFIG_NAND_U_BOOT) || defined(CONFIG_NAND_SPL)
mtebc(pb3cr, CFG_FLASH_BASE_PHYS_L | 0xda000);
#else
mtebc(pb0cr, CFG_FLASH_BASE_PHYS_L | 0xda000);
#endif
/* Remove TLB entry of boot EBC mapping */
remove_tlb(CFG_BOOT_BASE_ADDR, 16 << 20);
/* Add TLB entry for 0xfc00.0000 -> 0x4.cc00.0000 */
program_tlb(CFG_FLASH_BASE_PHYS, CFG_FLASH_BASE, CFG_FLASH_SIZE,
TLB_WORD2_I_ENABLE);
/*
* Now accessing of the whole 64Mbytes of NOR FLASH at virtual address
* 0xfc00.0000 is possible
*/
/*
* Clear potential errors resulting from auto-calibration.
* If not done, then we could get an interrupt later on when
* exceptions are enabled.
*/
set_mcsr(get_mcsr());
return 0;
}
int misc_init_r(void)
{
u32 sdr0_srst1 = 0;
u32 eth_cfg;
u32 pvr = get_pvr();
/*
* Set EMAC mode/configuration (GMII, SGMII, RGMII...).
* This is board specific, so let's do it here.
*/
mfsdr(SDR0_ETH_CFG, eth_cfg);
/* disable SGMII mode */
eth_cfg &= ~(SDR0_ETH_CFG_SGMII2_ENABLE |
SDR0_ETH_CFG_SGMII1_ENABLE |
SDR0_ETH_CFG_SGMII0_ENABLE);
/* Set the for 2 RGMII mode */
/* GMC0 EMAC4_0, GMC0 EMAC4_1, RGMII Bridge 0 */
eth_cfg &= ~SDR0_ETH_CFG_GMC0_BRIDGE_SEL;
if ((pvr == PVR_460EX_RA) || (pvr == PVR_460EX_SE_RA))
eth_cfg |= SDR0_ETH_CFG_GMC1_BRIDGE_SEL;
else
eth_cfg &= ~SDR0_ETH_CFG_GMC1_BRIDGE_SEL;
mtsdr(SDR0_ETH_CFG, eth_cfg);
/*
* The AHB Bridge core is held in reset after power-on or reset
* so enable it now
*/
mfsdr(SDR0_SRST1, sdr0_srst1);
sdr0_srst1 &= ~SDR0_SRST1_AHB;
mtsdr(SDR0_SRST1, sdr0_srst1);
return 0;
}
#if defined(CONFIG_OF_LIBFDT) && defined(CONFIG_OF_BOARD_SETUP)
void ft_board_setup(void *blob, bd_t *bd)
{
u32 val[4];
int rc;
ft_cpu_setup(blob, bd);
/* Fixup NOR mapping */
val[0] = 0; /* chip select number */
val[1] = 0; /* always 0 */
val[2] = CFG_FLASH_BASE_PHYS_L; /* we fixed up this address */
val[3] = gd->bd->bi_flashsize;
rc = fdt_find_and_setprop(blob, "/plb/opb/ebc", "ranges",
val, sizeof(val), 1);
if (rc) {
printf("Unable to update property NOR mapping, err=%s\n",
fdt_strerror(rc));
}
if (gd->board_type == BOARD_CANYONLANDS_SATA) {
/*
* When SATA is selected we need to disable the first PCIe
* node in the device tree, so that Linux doesn't initialize
* it.
*/
rc = fdt_find_and_setprop(blob, "/plb/pciex@d00000000", "status",
"disabled", sizeof("disabled"), 1);
if (rc) {
printf("Unable to update property status in PCIe node, err=%s\n",
fdt_strerror(rc));
}
}
if (gd->board_type == BOARD_CANYONLANDS_PCIE) {
/*
* When PCIe is selected we need to disable the SATA
* node in the device tree, so that Linux doesn't initialize
* it.
*/
rc = fdt_find_and_setprop(blob, "/plb/sata@bffd1000", "status",
"disabled", sizeof("disabled"), 1);
if (rc) {
printf("Unable to update property status in PCIe node, err=%s\n",
fdt_strerror(rc));
}
}
}
#endif /* defined(CONFIG_OF_LIBFDT) && defined(CONFIG_OF_BOARD_SETUP) */

View File

@@ -0,0 +1,41 @@
#
# (C) Copyright 2008
# Wolfgang Denk, DENX Software Engineering, wd@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
#
#
# AMCC 460EX/460GT Evaluation Board (Canyonlands) board
#
sinclude $(OBJTREE)/board/$(BOARDDIR)/config.tmp
ifndef TEXT_BASE
TEXT_BASE = 0xFFFA0000
endif
PLATFORM_CPPFLAGS += -DCONFIG_440=1
ifeq ($(debug),1)
PLATFORM_CPPFLAGS += -DDEBUG
endif
ifeq ($(dbcr),1)
PLATFORM_CPPFLAGS += -DCFG_INIT_DBCR=0x8cff0000
endif

View File

@@ -0,0 +1,123 @@
/*
* (C) Copyright 2008
* Stefan Roese, DENX Software Engineering, sr@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
*/
#include <ppc_asm.tmpl>
#include <config.h>
#include <asm-ppc/mmu.h>
/**************************************************************************
* TLB TABLE
*
* This table is used by the cpu boot code to setup the initial tlb
* entries. Rather than make broad assumptions in the cpu source tree,
* this table lets each board set things up however they like.
*
* Pointer to the table is returned in r1
*
*************************************************************************/
.section .bootpg,"ax"
.globl tlbtab
tlbtab:
tlbtab_start
/*
* BOOT_CS (FLASH) must be first. Before relocation SA_I can be off to
* use the speed up boot process. It is patched after relocation to
* enable SA_I
*/
#ifndef CONFIG_NAND_SPL
tlbentry(CFG_BOOT_BASE_ADDR, SZ_16M, CFG_BOOT_BASE_ADDR, 4, AC_R|AC_W|AC_X|SA_G) /* TLB 0 */
#else
tlbentry(CFG_NAND_BOOT_SPL_SRC, SZ_4K, CFG_NAND_BOOT_SPL_SRC, 4, AC_R|AC_W|AC_X|SA_G)
tlbentry(CFG_SDRAM_BASE, SZ_256M, CFG_SDRAM_BASE, 0, AC_R|AC_W|AC_X|SA_G|SA_I)
tlbentry(256 << 20, SZ_256M, 256 << 20, 0, AC_R|AC_W|AC_X|SA_G|SA_I)
#endif
/*
* TLB entries for SDRAM are not needed on this platform.
* They are dynamically generated in the SPD DDR(2) detection
* routine.
*/
#ifdef CFG_INIT_RAM_DCACHE
/* TLB-entry for init-ram in dcache (SA_I must be turned off!) */
tlbentry(CFG_INIT_RAM_ADDR, SZ_4K, CFG_INIT_RAM_ADDR, 0, AC_R|AC_W|AC_X|SA_G)
#endif
tlbentry(CFG_PCI_BASE, SZ_256M, 0x00000000, 0xC, AC_R|AC_W|SA_G|SA_I)
tlbentry(CFG_PCI_MEMBASE, SZ_256M, 0x20000000, 0xC, AC_R|AC_W|SA_G|SA_I)
tlbentry(CFG_PCIE_MEMBASE, SZ_256M, 0xB0000000, 0xD, AC_R|AC_W|SA_G|SA_I)
tlbentry(CFG_PCIE0_CFGBASE, SZ_16M, 0x00000000, 0xD, AC_R|AC_W|SA_G|SA_I)
tlbentry(CFG_PCIE1_CFGBASE, SZ_16M, 0x20000000, 0xD, AC_R|AC_W|SA_G|SA_I)
tlbentry(CFG_PCIE0_XCFGBASE, SZ_1K, 0x10000000, 0xD, AC_R|AC_W|SA_G|SA_I)
tlbentry(CFG_PCIE1_XCFGBASE, SZ_1K, 0x30000000, 0xD, AC_R|AC_W|SA_G|SA_I)
/* PCIe UTL register */
tlbentry(CFG_PCIE_BASE, SZ_16K, 0x08010000, 0xC, AC_R|AC_W|SA_G|SA_I)
/* TLB-entry for NAND */
tlbentry(CFG_NAND_ADDR, SZ_16M, CFG_NAND_ADDR, 4, AC_R|AC_W|AC_X|SA_G|SA_I)
/* TLB-entry for CPLD */
tlbentry(CFG_BCSR_BASE, SZ_1K, CFG_BCSR_BASE, 4, AC_R|AC_W|SA_G|SA_I)
/* TLB-entry for OCM */
tlbentry(CFG_OCM_BASE, SZ_16K, 0x00040000, 4, AC_R|AC_W|AC_X|SA_I)
/* TLB-entry for Local Configuration registers => peripherals */
tlbentry(CFG_LOCAL_CONF_REGS, SZ_16M, CFG_LOCAL_CONF_REGS, 4, AC_R|AC_W|AC_X|SA_G|SA_I)
/* AHB: Internal USB Peripherals (USB, SATA) */
tlbentry(CFG_AHB_BASE, SZ_1M, 0xbff00000, 4, AC_R|AC_W|AC_X|SA_G|SA_I)
tlbtab_end
#if defined(CONFIG_NAND_U_BOOT) && !defined(CONFIG_NAND_SPL)
/*
* For NAND booting the first TLB has to be reconfigured to full size
* and with caching disabled after running from RAM!
*/
#define TLB00 TLB0(CFG_BOOT_BASE_ADDR, SZ_256M)
#define TLB01 TLB1(CFG_BOOT_BASE_ADDR, 1)
#define TLB02 TLB2(AC_R|AC_W|AC_X|SA_G|SA_I)
.globl reconfig_tlb0
reconfig_tlb0:
sync
isync
addi r4,r0,0x0000 /* TLB entry #0 */
lis r5,TLB00@h
ori r5,r5,TLB00@l
tlbwe r5,r4,0x0000 /* Save it out */
lis r5,TLB01@h
ori r5,r5,TLB01@l
tlbwe r5,r4,0x0001 /* Save it out */
lis r5,TLB02@h
ori r5,r5,TLB02@l
tlbwe r5,r4,0x0002 /* Save it out */
sync
isync
blr
#endif

View File

@@ -0,0 +1,136 @@
/*
* (C) Copyright 2008
* Stefan Roese, DENX Software Engineering, sr@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_ARCH(powerpc)
SECTIONS
{
/* Read-only sections, merged into text segment: */
. = + SIZEOF_HEADERS;
.interp : { *(.interp) }
.hash : { *(.hash) }
.dynsym : { *(.dynsym) }
.dynstr : { *(.dynstr) }
.rel.text : { *(.rel.text) }
.rela.text : { *(.rela.text) }
.rel.data : { *(.rel.data) }
.rela.data : { *(.rela.data) }
.rel.rodata : { *(.rel.rodata) }
.rela.rodata : { *(.rela.rodata) }
.rel.got : { *(.rel.got) }
.rela.got : { *(.rela.got) }
.rel.ctors : { *(.rel.ctors) }
.rela.ctors : { *(.rela.ctors) }
.rel.dtors : { *(.rel.dtors) }
.rela.dtors : { *(.rela.dtors) }
.rel.bss : { *(.rel.bss) }
.rela.bss : { *(.rela.bss) }
.rel.plt : { *(.rel.plt) }
.rela.plt : { *(.rela.plt) }
.init : { *(.init) }
.plt : { *(.plt) }
.text :
{
/* WARNING - the following is hand-optimized to fit within */
/* the sector layout of our flash chips! XXX FIXME XXX */
cpu/ppc4xx/start.o (.text)
/* Align to next NAND block */
. = ALIGN(0x20000);
common/environment.o (.ppcenv)
/* Keep some space here for redundant env and potential bad env blocks */
. = ALIGN(0x80000);
*(.text)
*(.fixup)
*(.got1)
}
_etext = .;
PROVIDE (etext = .);
.rodata :
{
*(.rodata)
*(.rodata1)
*(.rodata.str1.4)
}
.fini : { *(.fini) } =0
.ctors : { *(.ctors) }
.dtors : { *(.dtors) }
/* Read-write section, merged into data segment: */
. = (. + 0x00FF) & 0xFFFFFF00;
_erotext = .;
PROVIDE (erotext = .);
.reloc :
{
*(.got)
_GOT2_TABLE_ = .;
*(.got2)
_FIXUP_TABLE_ = .;
*(.fixup)
}
__got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >>2;
__fixup_entries = (. - _FIXUP_TABLE_)>>2;
.data :
{
*(.data)
*(.data1)
*(.sdata)
*(.sdata2)
*(.dynamic)
CONSTRUCTORS
}
_edata = .;
PROVIDE (edata = .);
. = .;
__u_boot_cmd_start = .;
.u_boot_cmd : { *(.u_boot_cmd) }
__u_boot_cmd_end = .;
. = .;
__start___ex_table = .;
__ex_table : { *(__ex_table) }
__stop___ex_table = .;
. = ALIGN(256);
__init_begin = .;
.text.init : { *(.text.init) }
.data.init : { *(.data.init) }
. = ALIGN(256);
__init_end = .;
__bss_start = .;
.bss (NOLOAD) :
{
*(.sbss) *(.scommon)
*(.dynbss)
*(.bss)
*(COMMON)
}
_end = . ;
PROVIDE (end = .);
}

View File

@@ -0,0 +1,143 @@
/*
* (C) Copyright 2008
* Wolfgang Denk, DENX Software Engineering, wd@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_ARCH(powerpc)
/* Do we need any of these for elf?
__DYNAMIC = 0; */
SECTIONS
{
.resetvec 0xFFFFFFFC :
{
*(.resetvec)
} = 0xffff
.bootpg 0xFFFFF000 :
{
cpu/ppc4xx/start.o (.bootpg)
} = 0xffff
/* Read-only sections, merged into text segment: */
. = + SIZEOF_HEADERS;
.interp : { *(.interp) }
.hash : { *(.hash) }
.dynsym : { *(.dynsym) }
.dynstr : { *(.dynstr) }
.rel.text : { *(.rel.text) }
.rela.text : { *(.rela.text) }
.rel.data : { *(.rel.data) }
.rela.data : { *(.rela.data) }
.rel.rodata : { *(.rel.rodata) }
.rela.rodata : { *(.rela.rodata) }
.rel.got : { *(.rel.got) }
.rela.got : { *(.rela.got) }
.rel.ctors : { *(.rel.ctors) }
.rela.ctors : { *(.rela.ctors) }
.rel.dtors : { *(.rel.dtors) }
.rela.dtors : { *(.rela.dtors) }
.rel.bss : { *(.rel.bss) }
.rela.bss : { *(.rela.bss) }
.rel.plt : { *(.rel.plt) }
.rela.plt : { *(.rela.plt) }
.init : { *(.init) }
.plt : { *(.plt) }
.text :
{
/* WARNING - the following is hand-optimized to fit within */
/* the sector layout of our flash chips! XXX FIXME XXX */
cpu/ppc4xx/start.o (.text)
board/amcc/canyonlands/init.o (.text)
*(.text)
*(.fixup)
*(.got1)
}
_etext = .;
PROVIDE (etext = .);
.rodata :
{
*(.rodata)
*(.rodata1)
*(.rodata.str1.4)
}
.fini : { *(.fini) } =0
.ctors : { *(.ctors) }
.dtors : { *(.dtors) }
/* Read-write section, merged into data segment: */
. = (. + 0x00FF) & 0xFFFFFF00;
_erotext = .;
PROVIDE (erotext = .);
.reloc :
{
*(.got)
_GOT2_TABLE_ = .;
*(.got2)
_FIXUP_TABLE_ = .;
*(.fixup)
}
__got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >>2;
__fixup_entries = (. - _FIXUP_TABLE_)>>2;
.data :
{
*(.data)
*(.data1)
*(.sdata)
*(.sdata2)
*(.dynamic)
CONSTRUCTORS
}
_edata = .;
PROVIDE (edata = .);
. = .;
__u_boot_cmd_start = .;
.u_boot_cmd : { *(.u_boot_cmd) }
__u_boot_cmd_end = .;
. = .;
__start___ex_table = .;
__ex_table : { *(__ex_table) }
__stop___ex_table = .;
. = ALIGN(256);
__init_begin = .;
.text.init : { *(.text.init) }
.data.init : { *(.data.init) }
. = ALIGN(256);
__init_end = .;
__bss_start = .;
.bss :
{
*(.sbss) *(.scommon)
*(.dynbss)
*(.bss)
*(COMMON)
}
_end = . ;
PROVIDE (end = .);
}

View File

@@ -22,7 +22,6 @@
*/ */
OUTPUT_ARCH(powerpc) OUTPUT_ARCH(powerpc)
SEARCH_DIR(/lib); SEARCH_DIR(/usr/lib); SEARCH_DIR(/usr/local/lib); SEARCH_DIR(/usr/local/powerpc-any-elf/lib);
/* Do we need any of these for elf? /* Do we need any of these for elf?
__DYNAMIC = 0; */ __DYNAMIC = 0; */
SECTIONS SECTIONS
@@ -68,19 +67,6 @@ SECTIONS
cpu/ppc4xx/start.o (.text) cpu/ppc4xx/start.o (.text)
board/amcc/ebony/init.o (.text) board/amcc/ebony/init.o (.text)
cpu/ppc4xx/kgdb.o (.text)
cpu/ppc4xx/traps.o (.text)
cpu/ppc4xx/interrupts.o (.text)
cpu/ppc4xx/serial.o (.text)
cpu/ppc4xx/cpu_init.o (.text)
cpu/ppc4xx/speed.o (.text)
common/dlmalloc.o (.text)
lib_generic/crc32.o (.text)
lib_ppc/extable.o (.text)
lib_generic/zlib.o (.text)
/* . = env_offset;*/
/* common/environment.o(.text)*/
*(.text) *(.text)
*(.fixup) *(.fixup)
@@ -145,7 +131,7 @@ SECTIONS
__init_end = .; __init_end = .;
__bss_start = .; __bss_start = .;
.bss : .bss (NOLOAD) :
{ {
*(.sbss) *(.scommon) *(.sbss) *(.scommon)
*(.dynbss) *(.dynbss)

View File

@@ -25,7 +25,7 @@
# AMCC 440SPe Evaluation (Katmai) board # AMCC 440SPe Evaluation (Katmai) board
# #
TEXT_BASE = 0xfffc0000 TEXT_BASE = 0xFFFA0000
PLATFORM_CPPFLAGS += -DCONFIG_440=1 PLATFORM_CPPFLAGS += -DCONFIG_440=1

View File

@@ -1,5 +1,5 @@
/* /*
* (C) Copyright 2007 * (C) Copyright 2007-2008
* Stefan Roese, DENX Software Engineering, sr@denx.de. * Stefan Roese, DENX Software Engineering, sr@denx.de.
* *
* See file CREDITS for list of people who contributed to this * See file CREDITS for list of people who contributed to this
@@ -24,21 +24,16 @@
#include <common.h> #include <common.h>
#include <ppc4xx.h> #include <ppc4xx.h>
#include <asm/processor.h>
#include <i2c.h> #include <i2c.h>
#include <asm-ppc/io.h> #include <libfdt.h>
#include <asm-ppc/gpio.h> #include <fdt_support.h>
#include <asm/processor.h>
#include "../cpu/ppc4xx/440spe_pcie.h" #include <asm/io.h>
#include <asm/gpio.h>
#undef PCIE_ENDPOINT #include <asm/4xx_pcie.h>
/* #define PCIE_ENDPOINT 1 */
DECLARE_GLOBAL_DATA_PTR; DECLARE_GLOBAL_DATA_PTR;
int ppc440spe_init_pcie_rootport(int port);
void ppc440spe_setup_pcie(struct pci_controller *hose, int port);
int board_early_init_f (void) int board_early_init_f (void)
{ {
unsigned long mfr; unsigned long mfr;
@@ -224,10 +219,9 @@ int board_early_init_f (void)
mtdcr (uic0sr, 0x00000000); /* clear all interrupts*/ mtdcr (uic0sr, 0x00000000); /* clear all interrupts*/
mtdcr (uic0sr, 0xffffffff); /* clear all interrupts*/ mtdcr (uic0sr, 0xffffffff); /* clear all interrupts*/
/* SDR0_MFR should be part of Ethernet init */
mfsdr(sdr_mfr, mfr); mfsdr(sdr_mfr, mfr);
mfr &= ~SDR0_MFR_ECS_MASK; mfr |= SDR0_MFR_FIXD; /* Workaround for PCI/DMA */
/* mtsdr(sdr_mfr, mfr); */ mtsdr(sdr_mfr, mfr);
mtsdr(SDR0_PFC0, CFG_PFC0); mtsdr(SDR0_PFC0, CFG_PFC0);
@@ -252,6 +246,18 @@ int checkboard (void)
return 0; return 0;
} }
/*
* Override the default functions in cpu/ppc4xx/44x_spd_ddr2.c with
* board specific values.
*/
u32 ddr_wrdtr(u32 default_val) {
return (SDRAM_WRDTR_LLWP_1_CYC | SDRAM_WRDTR_WTR_180_DEG_ADV | 0x823);
}
u32 ddr_clktr(u32 default_val) {
return (SDRAM_CLKTR_CLKP_90_DEG_ADV);
}
#if defined(CFG_DRAM_TEST) #if defined(CFG_DRAM_TEST)
int testdram (void) int testdram (void)
{ {
@@ -396,6 +402,7 @@ void pcie_setup_hoses(int busno)
{ {
struct pci_controller *hose; struct pci_controller *hose;
int i, bus; int i, bus;
int ret = 0;
char *env; char *env;
unsigned int delay; unsigned int delay;
@@ -409,12 +416,13 @@ void pcie_setup_hoses(int busno)
if (!katmai_pcie_card_present(i)) if (!katmai_pcie_card_present(i))
continue; continue;
#ifdef PCIE_ENDPOINT if (is_end_point(i))
if (ppc440spe_init_pcie_endport(i)) { ret = ppc4xx_init_pcie_endport(i);
#else else
if (ppc440spe_init_pcie_rootport(i)) { ret = ppc4xx_init_pcie_rootport(i);
#endif if (ret) {
printf("PCIE%d: initialization failed\n", i); printf("PCIE%d: initialization as %s failed\n", i,
is_end_point(i) ? "endpoint" : "root-complex");
continue; continue;
} }
@@ -428,26 +436,24 @@ void pcie_setup_hoses(int busno)
CFG_PCIE_MEMBASE + i * CFG_PCIE_MEMSIZE, CFG_PCIE_MEMBASE + i * CFG_PCIE_MEMSIZE,
CFG_PCIE_MEMBASE + i * CFG_PCIE_MEMSIZE, CFG_PCIE_MEMBASE + i * CFG_PCIE_MEMSIZE,
CFG_PCIE_MEMSIZE, CFG_PCIE_MEMSIZE,
PCI_REGION_MEM PCI_REGION_MEM);
);
hose->region_count = 1; hose->region_count = 1;
pci_register_hose(hose); pci_register_hose(hose);
#ifdef PCIE_ENDPOINT if (is_end_point(i)) {
ppc440spe_setup_pcie_endpoint(hose, i); ppc4xx_setup_pcie_endpoint(hose, i);
/* /*
* Reson for no scanning is endpoint can not generate * Reson for no scanning is endpoint can not generate
* upstream configuration accesses. * upstream configuration accesses.
*/ */
#else } else {
ppc440spe_setup_pcie_rootpoint(hose, i); ppc4xx_setup_pcie_rootpoint(hose, i);
env = getenv ("pciscandelay"); env = getenv ("pciscandelay");
if (env != NULL) { if (env != NULL) {
delay = simple_strtoul(env, NULL, 10); delay = simple_strtoul(env, NULL, 10);
if (delay > 5) if (delay > 5)
printf ("Warning, expect noticable delay before PCIe" printf("Warning, expect noticable delay before "
"scan due to 'pciscandelay' value!\n"); "PCIe scan due to 'pciscandelay' value!\n");
mdelay(delay * 1000); mdelay(delay * 1000);
} }
@@ -456,7 +462,7 @@ void pcie_setup_hoses(int busno)
*/ */
hose->last_busno = pci_hose_scan(hose); hose->last_busno = pci_hose_scan(hose);
bus = hose->last_busno + 1; bus = hose->last_busno + 1;
#endif }
} }
} }
#endif /* defined(CONFIG_PCI) */ #endif /* defined(CONFIG_PCI) */
@@ -541,3 +547,24 @@ int post_hotkeys_pressed(void)
return (ctrlc()); return (ctrlc());
} }
#endif #endif
#if defined(CONFIG_OF_LIBFDT) && defined(CONFIG_OF_BOARD_SETUP)
void ft_board_setup(void *blob, bd_t *bd)
{
u32 val[4];
int rc;
ft_cpu_setup(blob, bd);
/* Fixup NOR mapping */
val[0] = 0; /* chip select number */
val[1] = 0; /* always 0 */
val[2] = gd->bd->bi_flashstart;
val[3] = gd->bd->bi_flashsize;
rc = fdt_find_and_setprop(blob, "/plb/opb/ebc", "ranges",
val, sizeof(val), 1);
if (rc)
printf("Unable to update property NOR mapping, err=%s\n",
fdt_strerror(rc));
}
#endif /* defined(CONFIG_OF_LIBFDT) && defined(CONFIG_OF_BOARD_SETUP) */

View File

@@ -22,7 +22,6 @@
*/ */
OUTPUT_ARCH(powerpc) OUTPUT_ARCH(powerpc)
SEARCH_DIR(/lib); SEARCH_DIR(/usr/lib); SEARCH_DIR(/usr/local/lib); SEARCH_DIR(/usr/local/powerpc-any-elf/lib);
/* Do we need any of these for elf? /* Do we need any of these for elf?
__DYNAMIC = 0; */ __DYNAMIC = 0; */
SECTIONS SECTIONS
@@ -129,7 +128,7 @@ SECTIONS
__init_end = .; __init_end = .;
__bss_start = .; __bss_start = .;
.bss : .bss (NOLOAD) :
{ {
*(.sbss) *(.scommon) *(.sbss) *(.scommon)
*(.dynbss) *(.dynbss)

View File

@@ -0,0 +1,50 @@
#
# (C) Copyright 2007
# Stefan Roese, DENX Software Engineering, sr@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
#
include $(TOPDIR)/config.mk
LIB = $(obj)lib$(BOARD).a
COBJS = $(BOARD).o cmd_pll.o memory.o
SOBJS = init.o
SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c)
OBJS := $(addprefix $(obj),$(SOBJS) $(COBJS))
$(LIB): $(obj).depend $(OBJS)
$(AR) $(ARFLAGS) $@ $(OBJS)
clean:
rm -f $(OBJS)
distclean: clean
rm -f $(LIB) core *.bak .depend *~
#########################################################################
# defines $(obj).depend target
include $(SRCTREE)/rules.mk
sinclude $(obj).depend
#########################################################################

View File

@@ -0,0 +1,297 @@
/*
* (C) Copyright 2000, 2001
* Wolfgang Denk, DENX Software Engineering, wd@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
*
*/
/*
* ehnus: change pll frequency.
* Wed Sep 5 11:45:17 CST 2007
* hsun@udtech.com.cn
*/
#include <common.h>
#include <config.h>
#include <command.h>
#include <i2c.h>
#ifdef CONFIG_CMD_EEPROM
#define EEPROM_CONF_OFFSET 0
#define EEPROM_TEST_OFFSET 16
#define EEPROM_SDSTP_PARAM 16
#define PLL_NAME_MAX 12
#define BUF_STEP 8
/* eeprom_wirtes 8Byte per op. */
#define EEPROM_ALTER_FREQ(freq) \
do { \
int __i; \
for (__i = 0; __i < 2; __i++) \
eeprom_write (CFG_I2C_EEPROM_ADDR, \
EEPROM_CONF_OFFSET + __i*BUF_STEP, \
pll_select[freq], \
BUF_STEP + __i*BUF_STEP); \
} while (0)
#define PDEBUG
#ifdef PDEBUG
#define PLL_DEBUG pll_debug(EEPROM_CONF_OFFSET)
#else
#define PLL_DEBUG
#endif
typedef enum {
PLL_ebc20,
PLL_333,
PLL_4001,
PLL_4002,
PLL_533,
PLL_600,
PLL_666, /* For now, kilauea can't support */
RCONF,
WTEST,
PLL_TOTAL
} pll_freq_t;
static const char
pll_name[][PLL_NAME_MAX] = {
"PLL_ebc20",
"PLL_333",
"PLL_400@1",
"PLL_400@2",
"PLL_533",
"PLL_600",
"PLL_666",
"RCONF",
"WTEST",
""
};
/*
* ehnus:
*/
static uchar
pll_select[][EEPROM_SDSTP_PARAM] = {
/* 0: CPU 333MHz EBC 20MHz, for test only */
{
0x8c, 0x12, 0xec, 0x12, 0x88, 0x00, 0x0a, 0x00,
0x40, 0x08, 0x23, 0x50, 0x00, 0x05, 0x00, 0x00
},
/* 0: 333 */
{
0x8c, 0x12, 0xec, 0x12, 0x98, 0x00, 0x0a, 0x00,
0x40, 0x08, 0x23, 0x50, 0x00, 0x05, 0x00, 0x00
},
/* 1: 400_266 */
{
0x8e, 0x0e, 0xe8, 0x13, 0x98, 0x00, 0x0a, 0x00,
0x40, 0x08, 0x23, 0x50, 0x00, 0x05, 0x00, 0x00
},
/* 2: 400 */
{
0x8e, 0x0e, 0xe8, 0x12, 0x98, 0x00, 0x0a, 0x00,
0x40, 0x08, 0x23, 0x50, 0x00, 0x05, 0x00, 0x00
},
/* 3: 533 */
{
0x8e, 0x43, 0x60, 0x13, 0x98, 0x00, 0x0a, 0x00,
0x40, 0x08, 0x23, 0x50, 0x00, 0x05, 0x00, 0x00
},
/* 4: 600 */
{
0x8d, 0x02, 0x34, 0x13, 0x98, 0x00, 0x0a, 0x00,
0x40, 0x08, 0x23, 0x50, 0x00, 0x05, 0x00, 0x00
},
/* 5: 666 */
{
0x8d, 0x03, 0x78, 0x13, 0x98, 0x00, 0x0a, 0x00,
0x40, 0x08, 0x23, 0x50, 0x00, 0x05, 0x00, 0x00
},
{}
};
static uchar
testbuf[EEPROM_SDSTP_PARAM] = {
0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77,
0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff
};
static void
pll_debug(int off)
{
int i;
uchar buffer[EEPROM_SDSTP_PARAM];
memset(buffer, 0, sizeof(buffer));
eeprom_read(CFG_I2C_EEPROM_ADDR, off,
buffer, EEPROM_SDSTP_PARAM);
printf("Debug: SDSTP[0-3] at offset \"0x%02x\" lists as follows: \n", off);
for (i = 0; i < EEPROM_SDSTP_PARAM; i++)
printf("%02x ", buffer[i]);
printf("\n");
}
static void
test_write(void)
{
printf("Debug: test eeprom_write ... ");
/*
* Write twice, 8 bytes per write
*/
eeprom_write (CFG_I2C_EEPROM_ADDR, EEPROM_TEST_OFFSET,
testbuf, 8);
eeprom_write (CFG_I2C_EEPROM_ADDR, EEPROM_TEST_OFFSET+8,
testbuf, 16);
printf("done\n");
pll_debug(EEPROM_TEST_OFFSET);
}
int
do_pll_alter (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
{
char c = '\0';
pll_freq_t pll_freq;
if (argc < 2) {
printf("Usage: \n%s\n", cmdtp->usage);
goto ret;
}
for (pll_freq = PLL_ebc20; pll_freq < PLL_TOTAL; pll_freq++)
if (!strcmp(pll_name[pll_freq], argv[1]))
break;
switch (pll_freq) {
case PLL_ebc20:
case PLL_333:
case PLL_4001:
case PLL_4002:
case PLL_533:
case PLL_600:
EEPROM_ALTER_FREQ(pll_freq);
break;
case PLL_666: /* not support */
printf("Choose this option will result in a boot failure."
"\nContinue? (Y/N): ");
c = getc(); putc('\n');
if ((c == 'y') || (c == 'Y')) {
EEPROM_ALTER_FREQ(pll_freq);
break;
}
goto ret;
case RCONF:
pll_debug(EEPROM_CONF_OFFSET);
goto ret;
case WTEST:
printf("DEBUG: write test\n");
test_write();
goto ret;
default:
printf("Invalid options"
"\n\nUsage: \n%s\n", cmdtp->usage);
goto ret;
}
printf("PLL set to %s, "
"reset the board to take effect\n", pll_name[pll_freq]);
PLL_DEBUG;
ret:
return 0;
}
U_BOOT_CMD(
pllalter, CFG_MAXARGS, 1, do_pll_alter,
"pllalter- change pll frequence \n",
"pllalter <selection> - change pll frequence \n\n\
** New freq take effect after reset. ** \n\
----------------------------------------------\n\
PLL_ebc20: Board: AMCC 405EX(r) Evaluation Board\n\
\t Same as PLL_333 \n\
\t except \n\
\t EBC: 20 MHz \n\
----------------------------------------------\n\
PLL_333: Board: AMCC 405EX(r) Evaluation Board\n\
\t VCO: 666 MHz \n\
\t CPU: 333 MHz \n\
\t PLB: 166 MHz \n\
\t OPB: 83 MHz \n\
\t DDR: 83 MHz \n\
------------------------------------------------\n\
PLL_400@1: Board: AMCC 405EX(r) Evaluation Board\n\
\t VCO: 800 MHz \n\
\t CPU: 400 MHz \n\
\t PLB: 133 MHz \n\
\t OPB: 66 MHz \n\
\t DDR: 133 MHz \n\
------------------------------------------------\n\
PLL_400@2: Board: AMCC 405EX(r) Evaluation Board\n\
\t VCO: 800 MHz \n\
\t CPU: 400 MHz \n\
\t PLB: 200 MHz \n\
\t OPB: 100 MHz \n\
\t DDR: 200 MHz \n\
----------------------------------------------\n\
PLL_533: Board: AMCC 405EX(r) Evaluation Board\n\
\t VCO: 1066 MHz \n\
\t CPU: 533 MHz \n\
\t PLB: 177 MHz \n\
\t OPB: 88 MHz \n\
\t DDR: 177 MHz \n\
----------------------------------------------\n\
PLL_600: Board: AMCC 405EX(r) Evaluation Board\n\
\t VCO: 1200 MHz \n\
\t CPU: 600 MHz \n\
\t PLB: 200 MHz \n\
\t OPB: 100 MHz \n\
\t DDR: 200 MHz \n\
----------------------------------------------\n\
PLL_666: Board: AMCC 405EX(r) Evaluation Board\n\
\t VCO: 1333 MHz \n\
\t CPU: 666 MHz \n\
\t PLB: 166 MHz \n\
\t OPB: 83 MHz \n\
\t DDR: 166 MHz \n\
-----------------------------------------------\n\
RCONF: Read current eeprom configuration. \n\
-----------------------------------------------\n\
WTEST: Test EEPROM write with predefined values\n\
-----------------------------------------------\n"
);
#endif /* CONFIG_CMD_EEPROM */

View File

@@ -0,0 +1,32 @@
#
# (C) Copyright 2007
# Wolfgang Denk, DENX Software Engineering, wd@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
#
sinclude $(OBJTREE)/board/$(BOARDDIR)/config.tmp
ifndef TEXT_BASE
TEXT_BASE = 0xFFFA0000
endif
ifeq ($(debug),1)
PLATFORM_CPPFLAGS += -DDEBUG
endif

154
board/amcc/kilauea/init.S Normal file
View File

@@ -0,0 +1,154 @@
/*
* (C) Copyright 2007-2008
* Stefan Roese, DENX Software Engineering, sr@denx.de.
*
* Based on code provided from UDTech and AMCC
*
* 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 <config.h>
#include <ppc4xx.h>
#include <ppc_asm.tmpl>
#include <ppc_defs.h>
#define mtsdram_as(reg, value) \
addi r4,0,reg ; \
mtdcr memcfga,r4 ; \
addis r4,0,value@h ; \
ori r4,r4,value@l ; \
mtdcr memcfgd,r4 ;
.globl ext_bus_cntlr_init
ext_bus_cntlr_init:
#if !defined(CONFIG_NAND_U_BOOT) || defined(CONFIG_NAND_SPL)
/*
* DDR2 setup
*/
/* Following the DDR Core Manual, here is the initialization */
/* Step 1 */
/* Step 2 */
/* Step 3 */
/* base=00000000, size=256MByte (6), mode=7 (n*10*8) */
mtsdram_as(SDRAM_MB0CF, 0x00006701);
/* SET SDRAM_MB1CF - Not enabled */
mtsdram_as(SDRAM_MB1CF, 0x00000000);
/* SET SDRAM_MB2CF - Not enabled */
mtsdram_as(SDRAM_MB2CF, 0x00000000);
/* SET SDRAM_MB3CF - Not enabled */
mtsdram_as(SDRAM_MB3CF, 0x00000000);
/* SDRAM_CLKTR: Adv Addr clock by 180 deg */
mtsdram_as(SDRAM_CLKTR, 0x80000000);
/* Refresh Time register (0x30) Refresh every 7.8125uS */
mtsdram_as(SDRAM_RTR, 0x06180000);
/* SDRAM_SDTR1 */
mtsdram_as(SDRAM_SDTR1, 0x80201000);
/* SDRAM_SDTR2 */
mtsdram_as(SDRAM_SDTR2, 0x32204232);
/* SDRAM_SDTR3 */
mtsdram_as(SDRAM_SDTR3, 0x080b0d1a);
mtsdram_as(SDRAM_MMODE, 0x00000442);
mtsdram_as(SDRAM_MEMODE, 0x00000404);
/* SDRAM0_MCOPT1 (0X20) No ECC Gen */
mtsdram_as(SDRAM_MCOPT1, 0x04322000);
/* NOP */
mtsdram_as(SDRAM_INITPLR0, 0xa8380000);
/* precharge 3 DDR clock cycle */
mtsdram_as(SDRAM_INITPLR1, 0x81900400);
/* EMR2 twr = 2tck */
mtsdram_as(SDRAM_INITPLR2, 0x81020000);
/* EMR3 twr = 2tck */
mtsdram_as(SDRAM_INITPLR3, 0x81030000);
/* EMR DLL ENABLE twr = 2tck */
mtsdram_as(SDRAM_INITPLR4, 0x81010404);
/* MR w/ DLL reset
* Note: 5 is CL. May need to be changed
*/
mtsdram_as(SDRAM_INITPLR5, 0x81000542);
/* precharge 3 DDR clock cycle */
mtsdram_as(SDRAM_INITPLR6, 0x81900400);
/* Auto-refresh trfc = 26tck */
mtsdram_as(SDRAM_INITPLR7, 0x8D080000);
/* Auto-refresh trfc = 26tck */
mtsdram_as(SDRAM_INITPLR8, 0x8D080000);
/* Auto-refresh */
mtsdram_as(SDRAM_INITPLR9, 0x8D080000);
/* Auto-refresh */
mtsdram_as(SDRAM_INITPLR10, 0x8D080000);
/* MRS - normal operation; wait 2 cycle (set wait to tMRD) */
mtsdram_as(SDRAM_INITPLR11, 0x81000442);
mtsdram_as(SDRAM_INITPLR12, 0x81010780);
mtsdram_as(SDRAM_INITPLR13, 0x81010400);
mtsdram_as(SDRAM_INITPLR14, 0x00000000);
mtsdram_as(SDRAM_INITPLR15, 0x00000000);
/* SET MCIF0_CODT Die Termination On */
mtsdram_as(SDRAM_CODT, 0x0080f837);
mtsdram_as(SDRAM_MODT0, 0x01800000);
mtsdram_as(SDRAM_MODT1, 0x00000000);
mtsdram_as(SDRAM_WRDTR, 0x00000000);
/* SDRAM0_MCOPT2 (0X21) Start initialization */
mtsdram_as(SDRAM_MCOPT2, 0x20000000);
/* Step 5 */
lis r3,0x1 /* 400000 = wait 100ms */
mtctr r3
pll_wait:
bdnz pll_wait
/* Step 6 */
/* SDRAM_DLCR */
mtsdram_as(SDRAM_DLCR, 0x030000a5);
/* SDRAM_RDCC */
mtsdram_as(SDRAM_RDCC, 0x40000000);
/* SDRAM_RQDC */
mtsdram_as(SDRAM_RQDC, 0x80000038);
/* SDRAM_RFDC */
mtsdram_as(SDRAM_RFDC, 0x00000209);
/* Enable memory controller */
mtsdram_as(SDRAM_MCOPT2, 0x28000000);
#endif /* #ifndef CONFIG_NAND_U_BOOT */
blr

View File

@@ -0,0 +1,397 @@
/*
* (C) Copyright 2007
* Stefan Roese, DENX Software Engineering, sr@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
*/
#include <common.h>
#include <ppc4xx.h>
#include <ppc405.h>
#include <libfdt.h>
#include <fdt_support.h>
#include <asm/processor.h>
#include <asm/io.h>
#if defined(CONFIG_PCI)
#include <pci.h>
#include <asm/4xx_pcie.h>
#endif
DECLARE_GLOBAL_DATA_PTR;
extern flash_info_t flash_info[CFG_MAX_FLASH_BANKS]; /* info for FLASH chips */
/*
* Board early initialization function
*/
int board_early_init_f (void)
{
u32 val;
/*--------------------------------------------------------------------+
| Interrupt controller setup for the AMCC 405EX(r) PINE evaluation board.
+--------------------------------------------------------------------+
+---------------------------------------------------------------------+
|Interrupt| Source | Pol. | Sensi.| Crit. |
+---------+-----------------------------------+-------+-------+-------+
| IRQ 00 | UART0 | High | Level | Non |
| IRQ 01 | UART1 | High | Level | Non |
| IRQ 02 | IIC0 | High | Level | Non |
| IRQ 03 | TBD | High | Level | Non |
| IRQ 04 | TBD | High | Level | Non |
| IRQ 05 | EBM | High | Level | Non |
| IRQ 06 | BGI | High | Level | Non |
| IRQ 07 | IIC1 | Rising| Edge | Non |
| IRQ 08 | SPI | High | Lvl/ed| Non |
| IRQ 09 | External IRQ 0 - (PCI-Express) | pgm H | Pgm | Non |
| IRQ 10 | MAL TX EOB | High | Level | Non |
| IRQ 11 | MAL RX EOB | High | Level | Non |
| IRQ 12 | DMA Channel 0 FIFO Full | High | Level | Non |
| IRQ 13 | DMA Channel 0 Stat FIFO | High | Level | Non |
| IRQ 14 | DMA Channel 1 FIFO Full | High | Level | Non |
| IRQ 15 | DMA Channel 1 Stat FIFO | High | Level | Non |
| IRQ 16 | PCIE0 AL | high | Level | Non |
| IRQ 17 | PCIE0 VPD access | rising| Edge | Non |
| IRQ 18 | PCIE0 hot reset request | rising| Edge | Non |
| IRQ 19 | PCIE0 hot reset request | faling| Edge | Non |
| IRQ 20 | PCIE0 TCR | High | Level | Non |
| IRQ 21 | PCIE0 MSI level0 | High | Level | Non |
| IRQ 22 | PCIE0 MSI level1 | High | Level | Non |
| IRQ 23 | Security EIP-94 | High | Level | Non |
| IRQ 24 | EMAC0 interrupt | High | Level | Non |
| IRQ 25 | EMAC1 interrupt | High | Level | Non |
| IRQ 26 | PCIE0 MSI level2 | High | Level | Non |
| IRQ 27 | External IRQ 4 | pgm H | Pgm | Non |
| IRQ 28 | UIC2 Non-critical Int. | High | Level | Non |
| IRQ 29 | UIC2 Critical Interrupt | High | Level | Crit. |
| IRQ 30 | UIC1 Non-critical Int. | High | Level | Non |
| IRQ 31 | UIC1 Critical Interrupt | High | Level | Crit. |
|----------------------------------------------------------------------
| IRQ 32 | MAL Serr | High | Level | Non |
| IRQ 33 | MAL Txde | High | Level | Non |
| IRQ 34 | MAL Rxde | High | Level | Non |
| IRQ 35 | PCIE0 bus master VC0 |falling| Edge | Non |
| IRQ 36 | PCIE0 DCR Error | High | Level | Non |
| IRQ 37 | EBC | High |Lvl Edg| Non |
| IRQ 38 | NDFC | High | Level | Non |
| IRQ 39 | GPT Compare Timer 8 | Risin | Edge | Non |
| IRQ 40 | GPT Compare Timer 9 | Risin | Edge | Non |
| IRQ 41 | PCIE1 AL | high | Level | Non |
| IRQ 42 | PCIE1 VPD access | rising| edge | Non |
| IRQ 43 | PCIE1 hot reset request | rising| Edge | Non |
| IRQ 44 | PCIE1 hot reset request | faling| Edge | Non |
| IRQ 45 | PCIE1 TCR | High | Level | Non |
| IRQ 46 | PCIE1 bus master VC0 |falling| Edge | Non |
| IRQ 47 | GPT Compare Timer 3 | Risin | Edge | Non |
| IRQ 48 | GPT Compare Timer 4 | Risin | Edge | Non |
| IRQ 49 | Ext. IRQ 7 |pgm/Fal|pgm/Lvl| Non |
| IRQ 50 | Ext. IRQ 8 - |pgm (H)|pgm/Lvl| Non |
| IRQ 51 | Ext. IRQ 9 |pgm (H)|pgm/Lvl| Non |
| IRQ 52 | GPT Compare Timer 5 | high | Edge | Non |
| IRQ 53 | GPT Compare Timer 6 | high | Edge | Non |
| IRQ 54 | GPT Compare Timer 7 | high | Edge | Non |
| IRQ 55 | Serial ROM | High | Level | Non |
| IRQ 56 | GPT Decrement Pulse | High | Level | Non |
| IRQ 57 | Ext. IRQ 2 |pgm/Fal|pgm/Lvl| Non |
| IRQ 58 | Ext. IRQ 5 |pgm/Fal|pgm/Lvl| Non |
| IRQ 59 | Ext. IRQ 6 |pgm/Fal|pgm/Lvl| Non |
| IRQ 60 | EMAC0 Wake-up | High | Level | Non |
| IRQ 61 | Ext. IRQ 1 |pgm/Fal|pgm/Lvl| Non |
| IRQ 62 | EMAC1 Wake-up | High | Level | Non |
|----------------------------------------------------------------------
| IRQ 64 | PE0 AL | High | Level | Non |
| IRQ 65 | PE0 VPD Access | Risin | Edge | Non |
| IRQ 66 | PE0 Hot Reset Request | Risin | Edge | Non |
| IRQ 67 | PE0 Hot Reset Request | Falli | Edge | Non |
| IRQ 68 | PE0 TCR | High | Level | Non |
| IRQ 69 | PE0 BusMaster VCO | Falli | Edge | Non |
| IRQ 70 | PE0 DCR Error | High | Level | Non |
| IRQ 71 | Reserved | N/A | N/A | Non |
| IRQ 72 | PE1 AL | High | Level | Non |
| IRQ 73 | PE1 VPD Access | Risin | Edge | Non |
| IRQ 74 | PE1 Hot Reset Request | Risin | Edge | Non |
| IRQ 75 | PE1 Hot Reset Request | Falli | Edge | Non |
| IRQ 76 | PE1 TCR | High | Level | Non |
| IRQ 77 | PE1 BusMaster VCO | Falli | Edge | Non |
| IRQ 78 | PE1 DCR Error | High | Level | Non |
| IRQ 79 | Reserved | N/A | N/A | Non |
| IRQ 80 | PE2 AL | High | Level | Non |
| IRQ 81 | PE2 VPD Access | Risin | Edge | Non |
| IRQ 82 | PE2 Hot Reset Request | Risin | Edge | Non |
| IRQ 83 | PE2 Hot Reset Request | Falli | Edge | Non |
| IRQ 84 | PE2 TCR | High | Level | Non |
| IRQ 85 | PE2 BusMaster VCO | Falli | Edge | Non |
| IRQ 86 | PE2 DCR Error | High | Level | Non |
| IRQ 87 | Reserved | N/A | N/A | Non |
| IRQ 88 | External IRQ(5) | Progr | Progr | Non |
| IRQ 89 | External IRQ 4 - Ethernet | Progr | Progr | Non |
| IRQ 90 | External IRQ 3 - PCI-X | Progr | Progr | Non |
| IRQ 91 | External IRQ 2 - PCI-X | Progr | Progr | Non |
| IRQ 92 | External IRQ 1 - PCI-X | Progr | Progr | Non |
| IRQ 93 | External IRQ 0 - PCI-X | Progr | Progr | Non |
| IRQ 94 | Reserved | N/A | N/A | Non |
| IRQ 95 | Reserved | N/A | N/A | Non |
|---------------------------------------------------------------------
+---------+-----------------------------------+-------+-------+------*/
/*--------------------------------------------------------------------+
| Initialise UIC registers. Clear all interrupts. Disable all
| interrupts.
| Set critical interrupt values. Set interrupt polarities. Set
| interrupt trigger levels. Make bit 0 High priority. Clear all
| interrupts again.
+-------------------------------------------------------------------*/
mtdcr (uic2sr, 0xffffffff); /* Clear all interrupts */
mtdcr (uic2er, 0x00000000); /* disable all interrupts */
mtdcr (uic2cr, 0x00000000); /* Set Critical / Non Critical interrupts */
mtdcr (uic2pr, 0xf7ffffff); /* Set Interrupt Polarities */
mtdcr (uic2tr, 0x01e1fff8); /* Set Interrupt Trigger Levels */
mtdcr (uic2vr, 0x00000001); /* Set Vect base=0,INT31 Highest priority */
mtdcr (uic2sr, 0x00000000); /* clear all interrupts */
mtdcr (uic2sr, 0xffffffff); /* clear all interrupts */
mtdcr (uic1sr, 0xffffffff); /* Clear all interrupts */
mtdcr (uic1er, 0x00000000); /* disable all interrupts */
mtdcr (uic1cr, 0x00000000); /* Set Critical / Non Critical interrupts */
mtdcr (uic1pr, 0xfffac785); /* Set Interrupt Polarities */
mtdcr (uic1tr, 0x001d0040); /* Set Interrupt Trigger Levels */
mtdcr (uic1vr, 0x00000001); /* Set Vect base=0,INT31 Highest priority */
mtdcr (uic1sr, 0x00000000); /* clear all interrupts */
mtdcr (uic1sr, 0xffffffff); /* clear all interrupts */
mtdcr (uic0sr, 0xffffffff); /* Clear all interrupts */
mtdcr (uic0er, 0x0000000a); /* Disable all interrupts */
/* Except cascade UIC0 and UIC1 */
mtdcr (uic0cr, 0x00000000); /* Set Critical / Non Critical interrupts */
mtdcr (uic0pr, 0xffbfefef); /* Set Interrupt Polarities */
mtdcr (uic0tr, 0x00007000); /* Set Interrupt Trigger Levels */
mtdcr (uic0vr, 0x00000001); /* Set Vect base=0,INT31 Highest priority */
mtdcr (uic0sr, 0x00000000); /* clear all interrupts */
mtdcr (uic0sr, 0xffffffff); /* clear all interrupts */
/*
* Note: Some cores are still in reset when the chip starts, so
* take them out of reset
*/
mtsdr(SDR0_SRST, 0);
/* Configure 405EX for NAND usage */
val = SDR0_CUST0_MUX_NDFC_SEL |
SDR0_CUST0_NDFC_ENABLE |
SDR0_CUST0_NDFC_BW_8_BIT |
SDR0_CUST0_NRB_BUSY |
(0x80000000 >> (28 + CFG_NAND_CS));
mtsdr(SDR0_CUST0, val);
/*
* Configure PFC (Pin Function Control) registers
* -> Enable USB
*/
val = SDR0_PFC1_USBEN | SDR0_PFC1_USBBIGEN | SDR0_PFC1_GPT_FREQ;
mtsdr(SDR0_PFC1, val);
/*
* Configure FPGA register with PCIe reset
*/
out_be32((void *)CFG_FPGA_BASE, 0xff570cc4); /* assert PCIe reset */
mdelay(50);
out_be32((void *)CFG_FPGA_BASE, 0xff570cc7); /* deassert PCIe reset */
return 0;
}
int misc_init_r(void)
{
#ifdef CFG_ENV_IS_IN_FLASH
/* Monitor protection ON by default */
flash_protect(FLAG_PROTECT_SET,
-CFG_MONITOR_LEN,
0xffffffff,
&flash_info[0]);
#endif
return 0;
}
static int is_405exr(void)
{
u32 pvr = get_pvr();
if (pvr & 0x00000004)
return 0; /* bit 2 set -> 405EX */
return 1; /* bit 2 cleared -> 405EXr */
}
int board_emac_count(void)
{
/*
* 405EXr only has one EMAC interface, 405EX has two
*/
if (is_405exr())
return 1;
else
return 2;
}
static int board_pcie_count(void)
{
/*
* 405EXr only has one EMAC interface, 405EX has two
*/
if (is_405exr())
return 1;
else
return 2;
}
int checkboard (void)
{
char *s = getenv("serial#");
if (is_405exr())
printf("Board: Haleakala - AMCC PPC405EXr Evaluation Board");
else
printf("Board: Kilauea - AMCC PPC405EX Evaluation Board");
if (s != NULL) {
puts(", serial# ");
puts(s);
}
putc('\n');
return (0);
}
/*************************************************************************
* pci_pre_init
*
* This routine is called just prior to registering the hose and gives
* the board the opportunity to check things. Returning a value of zero
* indicates that things are bad & PCI initialization should be aborted.
*
* Different boards may wish to customize the pci controller structure
* (add regions, override default access routines, etc) or perform
* certain pre-initialization actions.
*
************************************************************************/
#if defined(CONFIG_PCI)
int pci_pre_init(struct pci_controller * hose )
{
return 0;
}
#endif /* defined(CONFIG_PCI) */
#ifdef CONFIG_PCI
static struct pci_controller pcie_hose[2] = {{0},{0}};
void pcie_setup_hoses(int busno)
{
struct pci_controller *hose;
int i, bus;
int ret = 0;
bus = busno;
char *env;
unsigned int delay;
for (i = 0; i < board_pcie_count(); i++) {
if (is_end_point(i))
ret = ppc4xx_init_pcie_endport(i);
else
ret = ppc4xx_init_pcie_rootport(i);
if (ret) {
printf("PCIE%d: initialization as %s failed\n", i,
is_end_point(i) ? "endpoint" : "root-complex");
continue;
}
hose = &pcie_hose[i];
hose->first_busno = bus;
hose->last_busno = bus;
hose->current_busno = bus;
/* setup mem resource */
pci_set_region(hose->regions + 0,
CFG_PCIE_MEMBASE + i * CFG_PCIE_MEMSIZE,
CFG_PCIE_MEMBASE + i * CFG_PCIE_MEMSIZE,
CFG_PCIE_MEMSIZE,
PCI_REGION_MEM);
hose->region_count = 1;
pci_register_hose(hose);
if (is_end_point(i)) {
ppc4xx_setup_pcie_endpoint(hose, i);
/*
* Reson for no scanning is endpoint can not generate
* upstream configuration accesses.
*/
} else {
ppc4xx_setup_pcie_rootpoint(hose, i);
env = getenv ("pciscandelay");
if (env != NULL) {
delay = simple_strtoul(env, NULL, 10);
if (delay > 5)
printf("Warning, expect noticable delay before "
"PCIe scan due to 'pciscandelay' value!\n");
mdelay(delay * 1000);
}
/*
* Config access can only go down stream
*/
hose->last_busno = pci_hose_scan(hose);
bus = hose->last_busno + 1;
}
}
}
#endif
#if defined(CONFIG_POST)
/*
* Returns 1 if keys pressed to start the power-on long-running tests
* Called from board_init_f().
*/
int post_hotkeys_pressed(void)
{
return 0; /* No hotkeys supported */
}
#endif /* CONFIG_POST */
#if defined(CONFIG_OF_LIBFDT) && defined(CONFIG_OF_BOARD_SETUP)
void ft_board_setup(void *blob, bd_t *bd)
{
u32 val[4];
int rc;
ft_cpu_setup(blob, bd);
/* Fixup NOR mapping */
val[0] = 0; /* chip select number */
val[1] = 0; /* always 0 */
val[2] = gd->bd->bi_flashstart;
val[3] = gd->bd->bi_flashsize;
rc = fdt_find_and_setprop(blob, "/plb/opb/ebc", "ranges",
val, sizeof(val), 1);
if (rc)
printf("Unable to update property NOR mapping, err=%s\n",
fdt_strerror(rc));
}
#endif /* defined(CONFIG_OF_LIBFDT) && defined(CONFIG_OF_BOARD_SETUP) */

View File

@@ -0,0 +1,79 @@
/*
* (C) Copyright 2007
* Stefan Roese, DENX Software Engineering, sr@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
*/
#include <common.h>
#include <asm/processor.h>
#include <i2c.h>
void sdram_init(void)
{
return;
}
long int initdram(int board_type)
{
return (CFG_MBYTES_SDRAM << 20);
}
#if defined(CFG_DRAM_TEST)
int testdram (void)
{
printf ("testdram\n");
#if defined (CONFIG_NAND_U_BOOT)
return 0;
#endif
uint *pstart = (uint *) 0x00000000;
uint *pend = (uint *) 0x00001000;
uint *p;
for (p = pstart; p < pend; p++) {
*p = 0xaaaaaaaa;
}
for (p = pstart; p < pend; p++) {
if (*p != 0xaaaaaaaa) {
#if !defined (CONFIG_NAND_SPL)
printf ("SDRAM test fails at: %08x\n", (uint) p);
#endif
return 1;
}
}
for (p = pstart; p < pend; p++) {
*p = 0x55555555;
}
for (p = pstart; p < pend; p++) {
if (*p != 0x55555555) {
#if !defined (CONFIG_NAND_SPL)
printf ("SDRAM test fails at: %08x\n", (uint) p);
#endif
return 1;
}
}
#if !defined (CONFIG_NAND_SPL)
printf ("SDRAM test passed!!!\n");
#endif
return 0;
}
#endif

View File

@@ -0,0 +1,136 @@
/*
* (C) Copyright 2007
* Wolfgang Denk, DENX Software Engineering, wd@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_ARCH(powerpc)
SECTIONS
{
/* Read-only sections, merged into text segment: */
. = + SIZEOF_HEADERS;
.interp : { *(.interp) }
.hash : { *(.hash) }
.dynsym : { *(.dynsym) }
.dynstr : { *(.dynstr) }
.rel.text : { *(.rel.text) }
.rela.text : { *(.rela.text) }
.rel.data : { *(.rel.data) }
.rela.data : { *(.rela.data) }
.rel.rodata : { *(.rel.rodata) }
.rela.rodata : { *(.rela.rodata) }
.rel.got : { *(.rel.got) }
.rela.got : { *(.rela.got) }
.rel.ctors : { *(.rel.ctors) }
.rela.ctors : { *(.rela.ctors) }
.rel.dtors : { *(.rel.dtors) }
.rela.dtors : { *(.rela.dtors) }
.rel.bss : { *(.rel.bss) }
.rela.bss : { *(.rela.bss) }
.rel.plt : { *(.rel.plt) }
.rela.plt : { *(.rela.plt) }
.init : { *(.init) }
.plt : { *(.plt) }
.text :
{
/* WARNING - the following is hand-optimized to fit within */
/* the sector layout of our flash chips! XXX FIXME XXX */
cpu/ppc4xx/start.o (.text)
/* Align to next NAND block */
. = ALIGN(0x4000);
common/environment.o (.ppcenv)
/* Keep some space here for redundant env and potential bad env blocks */
. = ALIGN(0x10000);
*(.text)
*(.fixup)
*(.got1)
}
_etext = .;
PROVIDE (etext = .);
.rodata :
{
*(.rodata)
*(.rodata1)
*(.rodata.str1.4)
}
.fini : { *(.fini) } =0
.ctors : { *(.ctors) }
.dtors : { *(.dtors) }
/* Read-write section, merged into data segment: */
. = (. + 0x00FF) & 0xFFFFFF00;
_erotext = .;
PROVIDE (erotext = .);
.reloc :
{
*(.got)
_GOT2_TABLE_ = .;
*(.got2)
_FIXUP_TABLE_ = .;
*(.fixup)
}
__got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >>2;
__fixup_entries = (. - _FIXUP_TABLE_)>>2;
.data :
{
*(.data)
*(.data1)
*(.sdata)
*(.sdata2)
*(.dynamic)
CONSTRUCTORS
}
_edata = .;
PROVIDE (edata = .);
. = .;
__u_boot_cmd_start = .;
.u_boot_cmd : { *(.u_boot_cmd) }
__u_boot_cmd_end = .;
. = .;
__start___ex_table = .;
__ex_table : { *(__ex_table) }
__stop___ex_table = .;
. = ALIGN(256);
__init_begin = .;
.text.init : { *(.text.init) }
.data.init : { *(.data.init) }
. = ALIGN(256);
__init_end = .;
__bss_start = .;
.bss (NOLOAD) :
{
*(.sbss) *(.scommon)
*(.dynbss)
*(.bss)
*(COMMON)
}
_end = . ;
PROVIDE (end = .);
}

Some files were not shown because too many files have changed in this diff Show More