Rename common ns16550 constants with UART_ prefix to prevent conflicts
Fix problems introduced in commit 7b5611cdd12ca0cc33f994f0d4a4454788fc3124 [inka4x0: Add hardware
diagnosis functions for inka4x0] which redefined MSR_RI which is
already used on PowerPC systems.
Also eliminate redundant definitions in ps2mult.h. More cleanup will
be needed for other redundant occurrences though.
Wolfgang Denk [Wed, 1 Apr 2009 21:34:12 +0000 (23:34 +0200)]
Add "source" command; prepare removal of "autoscr" command
According to the doc/feature-removal-schedule.txt, the "autoscr"
command will be replaced by the "source" command in approximately 6
months from now.
This patch prepares this change and starts a 6 month transition
period as follows:
- The new "source" command has been added, which implements exactly
the same functionlaity as the old "autoscr" command before
- The old "autoscr" command name is kept as an alias for compatibility
- Command sequences, script files atc. have been adapted to use the
new "source" command
- Related environment variables ("autoscript", "autoscript_uname")
have *not* been adapted yet; these will be renamed resp. removed in
a separate patch when the support for the "autoscr" command get's
finally dropped.
Mike Frysinger [Fri, 13 Feb 2009 22:10:58 +0000 (17:10 -0500)]
Blackfin: fix crash when booting from external memory
When testing a u-boot binary that hasn't been booted from the bootrom, we
have to make sure the bootstruct structure has sane storage space. If we
don't, the initcode will crash when it tries to dereference an invalid
pointer.
Emil Medve [Mon, 23 Feb 2009 16:43:36 +0000 (10:43 -0600)]
Fix a possible overflow case detected by gcc 4.3.2
.../dtc/libfdt/fdt_sw.c: In function 'fdt_end_node':
.../dtc/libfdt/fdt_sw.c:81: error: assuming signed overflow does not occur when assuming that (X + c) < X is always false
Signed-off-by: Emil Medve <Emilian.Medve@Freescale.com>
David Gibson [Fri, 6 Feb 2009 03:03:24 +0000 (14:03 +1100)]
libfdt: Rework/cleanup fdt_next_tag()
Currently, callers of fdt_next_tag() must usually follow the call with
some sort of call to fdt_offset_ptr() to verify that the blob isn't
truncated in the middle of the tag data they're going to process.
This is a bit silly, since fdt_next_tag() generally has to call
fdt_offset_ptr() on at least some of the data following the tag for
its own operation.
This patch alters fdt_next_tag() to always use fdt_offset_ptr() to
verify the data between its starting offset and the offset it returns
in nextoffset. This simplifies fdt_get_property() which no longer has
to verify itself that the property data is all present.
At the same time, I neaten and clarify the error handling for
fdt_next_tag(). Previously, fdt_next_tag() could return -1 instead of
a tag value in some circumstances - which almost none of the callers
checked for. Also, fdt_next_tag() could return FDT_END either because
it encountered an FDT_END tag, or because it reached the end of the
structure block - no way was provided to tell between these cases.
With this patch, fdt_next_tag() always returns FDT_END with a negative
value in nextoffset for an error. This means the several places which
loop looking for FDT_END will still work correctly - they only need to
check for errors at the end. The errors which fdt_next_tag() can
report are:
- -FDT_ERR_TRUNCATED if it reached the end of the structure
block instead of finding a tag.
- -FDT_BADSTRUCTURE if a bad tag was encountered, or if the
tag data couldn't be verified with fdt_offset_ptr().
This patch also updates the callers of fdt_next_tag(), where
appropriate, to make use of the new error reporting.
Finally, the prototype for the long gone _fdt_next_tag() is removed
from libfdt_internal.h.
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
David Gibson [Fri, 6 Feb 2009 03:01:56 +0000 (14:01 +1100)]
libfdt: Rework fdt_next_node()
Currently fdt_next_node() will find the next node in the blob
regardless of whether it is above, below or at the same level in the
tree as the starting node - the depth parameter is updated to indicate
which is the case. When a depth parameter is supplied, this patch
makes it instead terminate immediately when it finds the END_NODE tag
for a node at depth 0. In this case it returns the offset immediately
past the END_NODE tag.
This has a couple of advantages. First, this slightly simplifies
fdt_subnode_offset(), which no longer needs to explicitly check that
fdt_next_node()'s iteration hasn't left the starting node. Second,
this allows fdt_next_node() to be used to implement
_fdt_node_end_offset() considerably simplifying the latter function.
The other users of fdt_next_node() either don't need to iterate out of
the starting node, or don't pass a depth parameter at all. Any
callers that really need to iterate out of the starting node, but keep
tracking depth can do so by biasing the initial depth value.
This is a semantic change, but I think it's very unlikely to break any
existing library users.
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Scott Wood [Tue, 31 Mar 2009 22:49:36 +0000 (17:49 -0500)]
mpc83xx: Set guarded bit on BAT that covers the end of the address space
The mpc8313erdb board currently sets DBAT6 to cover all of the final 256MiB of
address space; however, not all of this space is covered by a device. In
particular, flash sits at 0xfe000000-0xfe7fffff, and nothing is mapped
at the far end of the address space.
In zlib, there is a loop that references p[-1] if p is non-NULL. Under
some circumstances, this leads to the CPU speculatively loading from
0xfffffff8 if p is NULL. This leads to a machine check.
Signed-off-by: Scott Wood <scottwood@freescale.com>
continuation to the remaining mpc83xx boards that suffer from the same problem.
Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
Kim Phillips [Mon, 30 Mar 2009 19:28:05 +0000 (14:28 -0500)]
rtc: remove broken rtc_read and rtc_write declarations
commit 04e11cf3 "rtc: add support for 4543 RTC (manufactured by e.g.
EPSON)" introduces the following build error on boards configuring e.g,
the ds1374 rtc:
Configuring for MPC837XEMDS board...
ds1374.c:103: error: static declaration of 'rtc_read' follows non-static declaration
/home/r1aaha/git/u-boot/include/rtc.h:64: error: previous declaration of 'rtc_read' was here
ds1374.c:104: error: conflicting types for 'rtc_write'
/home/r1aaha/git/u-boot/include/rtc.h:65: error: previous declaration of 'rtc_write' was here
this reverts the erroneous chunk.
Signed-off-by: Kim Phillips <kim.phillips@freescale.com> Acked-by: Detlev Zundel <dzu@denx.de> CC: Detlev Zundel <dzu@denx.de> CC: Andreas Pfefferle <ap@denx.de>
Kumar Gala [Wed, 1 Apr 2009 04:11:05 +0000 (23:11 -0500)]
85xx: Introduce determine_mp_bootpg() helper.
Match determine_mp_bootpg() that was added for 86xx. We need this to
address a bug introduced in v2009.03 with 86xx MP booting. We have to
make sure to reserve the region of memory used for the MP bootpg() so
other u-boot code doesn't use it.
Also added a comment about how cpu_reset() is dealing w/an errata on
early 85xx MP HW.
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Kumar Gala [Wed, 1 Apr 2009 04:02:38 +0000 (23:02 -0500)]
86xx: Cleanup MP support
* Use CONFIG_MP instead of CONFIG_NUM_CPUS to match 85xx
* Introduce determine_mp_bootpg() helper. We'll need this to address a
bug introduced in v2009.03 with 86xx MP booting. We have to make sure
to reserve the region of memory used for the MP bootpg() so other
u-boot code doesn't use it.
* Added dummy versions of cpu_reset(), cpu_status() & cpu_release() to
allow cmd_mp.c to build and work. In the future we should look at
implementing all these functions. This could be common w/85xx if we
use spin tables on 86xx.
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
We're missing the board_lmb_reserve definitions that allow
cpu_mp_lmb_reserve to be called; this means that Linux
is free to reallocate reserved pages. Linux currently boots
because we're getting lucky - the page we've reserved is
high enough in memory that it isn't allocated by Linux
while we still need it to be in existence.
Signed-off-by: Becky Bruce <beckyb@kernel.crashing.org> Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Haiying Wang [Fri, 27 Mar 2009 21:02:44 +0000 (17:02 -0400)]
MPC85xx: Add MPC8569 CPU support
There is a workaround for MPC8569 CPU Errata, which needs to set Bit 13 of
LBCR in 4K bootpage. We setup a temp TLB for eLBC controller in bootpage,
then invalidate it after LBCR bit 13 is set.
Signed-off-by: Haiying Wang <Haiying.Wang@freescale.com> Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Dave Liu [Sat, 14 Mar 2009 04:48:30 +0000 (12:48 +0800)]
fsl-ddr: add the DDR3 SPD infrastructure
- support mirrored DIMMs, not support register DIMMs
- test passed on P2020DS board with MT9JSF12872AY-1G1D1
- test passed on MPC8569MDS board with MT8JSF12864HY-1G1D1
Signed-off-by: Dave Liu <daveliu@freescale.com> Signed-off-by: Travis Wheatley <travis.wheatley@freescale.com>
Dave Liu [Sat, 14 Mar 2009 04:48:19 +0000 (12:48 +0800)]
fsl-ddr: Fix two bugs in the ddr infrastructure
1. wr_lat
UM said the total write latency for DDR2 is equal to
WR_LAT + ADD_LAT, the write latency is CL + ADD_LAT - 1.
so, the WR_LAT = CL - 1;
2. rd_to_pre
we missed to add the ADD_LAT for DDR2 case.
Reported-by: Joakim Tjernlund <Joakim.Tjernlund@transmode.se> Signed-off-by: Dave Liu <daveliu@freescale.com>
Wolfgang Denk [Sat, 28 Mar 2009 23:58:16 +0000 (00:58 +0100)]
VCMA9: fix compile errors
Fix these:
cmd_vcma9.c:82: warning: implicit declaration of function 'eth_getenv_enetaddr'
cmd_vcma9.c:89: error: 'enetaddr' undeclared (first use in this function)
Ladislav Michl [Mon, 23 Mar 2009 17:16:34 +0000 (18:16 +0100)]
cs8900 compile fix
cs8900.c: In function 'eth_init':
cs8900.c:164: warning: passing argument 2 of 'eth_getenv_enetaddr' from incompatible pointer type
cs8900.c:165: error: invalid operands to binary <<
cs8900.c:166: error: invalid operands to binary <<
cs8900.c:167: error: invalid operands to binary <<
Signed-off-by: Ladislav Michl <ladis@linux-mips.org> Acked-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Stefan Roese [Thu, 26 Mar 2009 15:14:13 +0000 (16:14 +0100)]
ppc4xx: Sequoia: Fix TLB reassignment in NAND booting code
This patch fixes a bug in the Sequoia TLB init code to reconfigure
the correct TLB (boot space) after running from RAM. This bug was
introduced with patch 4d332dbeb08f5863d1ea69d91a00c5499d3a87ed
[ppc4xx: Make Sequoia boot vxWorks] which changed the order of the
TLB in the Sequoia init.S file.
Jon Smirl [Mon, 23 Mar 2009 02:55:45 +0000 (22:55 -0400)]
mpc5200: suppress printf until console initialized
On boards which have the environment in eeprom, i2c_init() is called
before the console and RAM are initialized.
Suppress printfs until the console is initialized.
Signed-off-by: Jon Smirl <jonsmirl@gmail.com> Acked-by: Heiko Schocher <hs@denx.de>
Nishanth Menon [Wed, 25 Mar 2009 21:13:56 +0000 (22:13 +0100)]
OMAP3:Beagle: Enable mtdparts
http://www.denx.de/wiki/DULG/UBootCmdGroupFlash#UBootCmdFlMtdparts
provides a flexible way to create and maintain u-boot mtd
partitions. This allows commands such as "nand erase fs"
to work and the user no longer needs to decode the absolute
nand offsets. This patch enables this function for beagleboard