Commit graph

79 commits

Author SHA1 Message Date
Ingo van Lil
3eb90bad65 Generic udelay() with watchdog support
According to the PPC reference implementation the udelay() function is
responsible for resetting the watchdog timer as frequently as needed.
Most other architectures do not meet that requirement, so long-running
operations might result in a watchdog reset.

This patch adds a generic udelay() function which takes care of
resetting the watchdog before calling an architecture-specific
__udelay().

Signed-off-by: Ingo van Lil <inguin@gmx.de>
2009-12-05 01:08:53 +01:00
Mike Frysinger
370ec73455 Blackfin: Remove relocation fixups
Blackfin pieces like commit 0630535e2d.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-10-13 21:48:52 -04:00
Simon Kagstrom
0413cfecea Correct ffs/fls regression for PowerPC etc
Commits

  02f99901ed
  52d61227b6

introduced a regression where platform-specific ffs/fls implementations
were defined away. This patch corrects that by using PLATFORM_xxx
instead of the name itself.

Signed-off-by: Simon Kagstrom <simon.kagstrom@netinsight.net>
Acked-by: Kumar Gala <galak@kernel.crashing.org>
Acked-by: Stefan Roese <sr@denx.de>
2009-09-17 22:45:31 +02:00
Simon Kagstrom
02f99901ed Move __set/clear_bit from ubifs.h to bitops.h
__set_bit and __clear_bit are defined in ubifs.h as well as in
asm/include/bitops.h for some architectures. This patch moves
the generic implementation to include/linux/bitops.h and uses
that unless it's defined by the architecture.

Signed-off-by: Simon Kagstrom <simon.kagstrom@netinsight.net>
2009-09-15 22:31:24 +02:00
Mike Frysinger
9c46e71af2 Blackfin: use scratch pad for exception stack
If the memory layout pushes the stack out of the default DCPLB coverage,
the exception handler may trigger a double fault by trying to push onto
the uncovered stack.  So handle the exception stack similar to the kernel
by using the top of the scratch pad SRAM.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-09-02 05:58:38 -04:00
Mike Frysinger
69a25ce357 Blackfin: increase default console size
The default console size indirectly applies to length of env vars, so a
smaller length makes it hard to pass longer command lines to kernels.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-09-02 05:58:38 -04:00
Robin Getz
c4db335c2e Blackfin: change global data register from P5 to P3
Since the Blackfin ABI favors higher scratch registers by default, use the
last scratch register (P3) for global data rather than the first (P5).
This allows the compiler's register allocator to use higher number scratch
P registers, which in turn better matches the Blackfin instruction set,
which reduces the size of U-Boot by more than 1024 bytes...

Signed-off-by: Robin Getz <robin.getz@analog.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-09-02 05:14:02 -04:00
Mike Frysinger
909878fd3f Blackfin: add os log functions
Part of the mini Blackfin ABI with operating systems is that they can use
0x4f0-0x4f8 to pass log buffers to/from bootloaders.  So add support to
U-Boot for reading the log buffer.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-07-18 21:15:50 -04:00
Michal Simek
bc0d3296f1 asm-generic: Consolidate errno.h to asm-generic/errno.h
This patch use blackfin errno.h implementation which
correspond Linux kernel one.

MIPS implemetation is different that's why I keep it.

I removed ppc_error_no.h from Marvell boards which
was the same too.

I have got ack from ppc40x, blackfin, arm, coldfire and avr custodians.

Acked-by: Stefan Roese <sr@denx.de>
Signed-off-by: Michal Simek <monstr@monstr.eu>
2009-07-09 14:07:11 +02:00
Mike Frysinger
f348ab85f7 Blackfin: convert specific pre/post config headers to common method
The Blackfin port was using asm/blackfin-config-{pre,post}.h to setup
common Blackfin board defines.  The common method now is to use config.h,
so convert blackfin-config-post.h to that.  Rename the still Blackfin
specific blackfin-config-pre.h to config-pre.h so the naming conventions
at least line up.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-06-14 20:01:13 -04:00
Mike Frysinger
dd14af7640 Blackfin: new spibootldr command
Newer Blackfin parts can an on-chip ROM that can boot LDRs over SPI flashes,
so add a new 'spibootldr' command to take advantage of it.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-06-14 20:01:04 -04:00
Mike Frysinger
2157359dad Blackfin: fix if() logic in bootrom evt1 check
A missing set of parenthesis caused the silicon revision to apply only to
the BF533 and not the BF531/BF532 variants.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-05-29 17:11:29 -04:00
Mike Frysinger
02778f2f1b Blackfin: fix booting with older bootroms (no EVT1)
When dropping jump block support, the assumption was that all bootroms
supported entry point redirection via the EVT1 register.  Unfortunately,
this turned out to be incorrect for the oldest Blackfin parts (BF533-0.2
and older and BF561).  No one really noticed earlier because these parts
usually are booted by bypassing the bootrom entirely, and older BF533
parts are not supported at all (too many anomalies).

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-05-06 08:47:21 -04:00
Mike Frysinger
51ee6e057f Blackfin: update anomaly sheets
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-04-06 17:37:46 -04:00
Mike Frysinger
4058770192 Blackfin: force all boards to HZ of 1000
Since the Blackfin timer code requires HZ to be 1000, barf on any board
that tries to use a different value.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-04-02 06:42:26 -04:00
Mike Frysinger
751e54c3b7 Blackfin: bf537-stamp: rewrite MAC-in-flash handling
Use the common net eth functions to setup the env/global data with the MAC
address, and properly handle the case where CONFIG_SYS_NO_FLASH is defined.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-03-24 20:36:29 -04:00
Mike Frysinger
59f0978a7e Blackfin: fix SIC_RVECT definition: it is 16bits, not 32bits
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-03-23 15:14:54 -04:00
Mike Frysinger
58130f8920 Blackfin: drop SPORT_TX read helper macros
The SPORT_TX registers cannot be read (the hardware will trigger an error),
so drop the read helper macros.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-03-23 15:14:53 -04:00
Mike Frysinger
820b076c44 Blackfin: unify duplicate CPU port definitions
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-03-23 15:14:53 -04:00
Mike Frysinger
744fd240d1 Blackfin: drop now-unused CONFIG_SYS_BFIN_CMD_XXX
With the new CONFIG_XXX system and CONFIG_CMD_XXX handling, these defines
are no longer used/needed.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-03-23 15:14:53 -04:00
Mike Frysinger
c06f2b1302 Blackfin: update lockbox api according to latest documentation
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-03-23 15:14:52 -04:00
Mike Frysinger
c6ea30e52e Blackfin: fix SWRST/SYSCR register sizes
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-03-23 15:14:52 -04:00
Mike Frysinger
a9d6777d39 Blackfin: update anomaly lists
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-03-23 15:14:52 -04:00
Mike Frysinger
566b652c7c remove bi_enet*addr from global data for all arches
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
CC: Ben Warren <biggerbadderben@gmail.com>
CC: Daniel Hellstrom <daniel@gaisler.com>
CC: Michal Simek <monstr@seznam.cz>
CC: Shinya Kuribayashi <skuribay@ruby.dti.ne.jp>
CC: Scott McNutt <smcnutt@psyent.com>
CC: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
2009-03-20 22:39:12 +01:00
Kumar Gala
47d41cc3a1 Add an architecture specific config.h for common defines
We have common defines that we duplicate in various ways.  Having an
arch specific config.h gives us a common location for those defines.

Eventually we should be able to replace this when we have proper
Kconfig support.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2009-02-10 00:43:54 +01:00
Mike Frysinger
4b7e3d045c Blackfin: move default boot SPI CS to common code
Move the default SPI CS that we boot from into common code so that it can
be used in other SPI drivers and environment settings.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-02-05 21:25:36 -05:00
Mike Frysinger
47832cd15a Blackfin: update anomaly lists
Update the anomaly lists to match latest anomaly sheets.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-02-03 19:12:21 -05:00
Cliff Cai
716ebf436c Blackfin: add driver for on-chip MMC/SD controller
This is a port of the Linux Blackfin on-chip SDH driver to U-Boot.

Signed-off-by: Cliff Cai <cliff.cai@analog.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-02-02 12:27:18 -05:00
Mike Frysinger
fc68f9f859 Blackfin: output booting source when booting
Knowing the booting source of the part is useful, especially when the part
can switch dynamically between sources.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-02-02 12:27:16 -05:00
Mike Frysinger
8df3ce0f49 Blackfin: set default CONFIG_ENV_SPI_CS based on bootrom
Set the default CONFIG_ENV_SPI_CS value to match the SPI CS that is used by
the Blackfin on-chip bootrom to boot out of SPI flash.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-02-02 12:27:15 -05:00
Mike Frysinger
2b4a486e6f Blackfin: update asm-blackfin/posix_types.h to latest Linux version
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-02-02 12:27:15 -05:00
Mike Frysinger
e5eb93e773 Blackfin: add port I bits
Some people need to access port I, so make sure the pins are defined.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-02-02 12:27:14 -05:00
Sonic Zhang
8a6b272596 Blackfin: add driver for on-chip ATAPI controller
This is a port of the Linux Blackfin on-chip ATAPI driver to U-Boot.

Signed-off-by: Sonic Zhang <Sonic.Zhang@analog.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-02-02 12:27:14 -05:00
Mike Frysinger
70e95589a2 Blackfin: fix up EBIU defines
The EBIU defines for EBSZ 256/512 were incorrect.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-02-02 12:24:47 -05:00
Mike Frysinger
b93c686484 Blackfin: only flag L1 instruction for DMA memcpy
The performance difference from doing an 8 bit DMA memcpy vs an optimized
core memcpy can be pretty big when you add in the overhead of setting up the
MDMA registers, cache flushes, etc...  So only use dma_memcpy() when we
actually require it.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-02-02 12:24:46 -05:00
Mike Frysinger
fdce83c108 Blackfin: rewrite cache handling functions
Take the cache flush functions from the kernel as they use hardware loops in
order to get optimal performance.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-02-02 12:24:44 -05:00
Mike Frysinger
40599239e7 Blackfin: cache core/system clock values
Calculating the clocks requires a bit of calls to gcc math functions, so
cache the values after the first run since they'll most likely never
change once U-Boot is up and running.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-02-02 12:24:42 -05:00
Mike Frysinger
9372c32148 Blackfin: update on-chip ROM API
This brings the API for the on-chip ROM in line with the toolchain and
hardware documentation.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-01-28 13:26:16 -05:00
Mike Frysinger
05b75e4883 Blackfin: fix dcache handling when doing dma memcpy's
Our dcache invalidate function doesn't just invalidate, it also flushes.
So rename the function accordingly and fix the dma_memcpy() function so it
doesn't inadvertently corrupt the data destination.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-01-28 13:26:12 -05:00
Mike Frysinger
d7ca7dd5bf Blackfin: set more sane default board config values
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-01-28 13:26:10 -05:00
Mike Frysinger
36cd52a007 Blackfin: convert CMD_LINE_ADDR to CONFIG_LINUX_CMDLINE_{ADDR,SIZE}
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-01-28 13:26:10 -05:00
Mike Frysinger
c8054bc12e Blackfin: add bit defines for DDR parts
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-01-28 13:26:09 -05:00
Mike Frysinger
154502fe07 Blackfin: add defines to describe active bootrom behavior
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-01-28 13:26:09 -05:00
Kumar Gala
65e43a1063 Introduce virt_to_phys()
virt_to_phys() returns the physical address given a virtual. In most
cases this will be just the input value as the vast majority of
systems run in a 1:1 mode.

However in systems that are not running this way it should report the
physical address or ~0 if no mapping exists for the given virtual
address.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2008-12-15 22:04:29 +01:00
Mike Frysinger
621e579b81 Blackfin: fix SWRST register definition
The SWRST register is a 16bit, not 32bit, register.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2008-10-23 05:03:50 -04:00
Mike Frysinger
2b66f08f25 Blackfin: punt old unused mem_init.h header
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2008-10-23 05:03:50 -04:00
Mike Frysinger
bcc121a016 Blackfin: delete unused page_descriptor_table_size define
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2008-10-23 05:03:49 -04:00
Mike Frysinger
30fb9d24ae Blackfin: fix typo in boot mode comment and add NAND define
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2008-10-23 05:03:49 -04:00
Ben Maan
2e5cbe5461 Blackfin: fix port mux defines for BF54x
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2008-10-23 05:03:49 -04:00
Mike Frysinger
0656ef2ba2 Blackfin: update anomaly lists
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2008-10-23 05:03:49 -04:00