Mike Frysinger [Sat, 20 Nov 2010 00:17:53 +0000 (19:17 -0500)]
Blackfin: drop initcode.o from combined object
We explicitly link in the initcode.o in the Blackfin linker script, so
there is no need to merge it into the main common object for the linker
to pull in itself. This also fixes duplicate symbol errors with the new
partial linking logic.
Previously with archive libraries fdt.o was compiled and included in
qe.a and then discarded by the linker. With partial linking this
results in unresolved symbols, which this commit fixes.
This commit also cleans up a now-useless conditional in fdt.c.
Signed-off-by: Sebastien Carlier <sebastien.carlier@gmail.com> Tested-by: Wolfgang Denk <wd@denx.de>
Mike Frysinger [Mon, 15 Nov 2010 13:16:19 +0000 (08:16 -0500)]
Blackfin: make sure bss len is multiple of 4 bytes
The Blackfin on-chip BootROM requires that fill operations (which is
used for the bss) be aligned to 4 bytes (base addr and total len).
Plus, the Blackfin early init asm code assumes the same thing. So
rather than making things work for no real gain, make sure the bss
len is padded to 4 bytes in the linker script.
Kumar Gala [Tue, 16 Nov 2010 00:41:43 +0000 (18:41 -0600)]
malloc: Fix issue with calloc memory possibly being non-zero
Since we set #define MORECORE_CLEARS 1, the code assumes 'sbrk' always
returns zero'd out memory. However since its possible that free()
returns memory back to sbrk() via malloc_trim we could possible get
non-zero'd memory from sbrk(). This is a problem for when code might
call calloc() and expect the memory to have been zero'd out.
There are two possible solutions to this problem.
1. change #define MORECORE_CLEARS 0
2. memset to zero memory returned to sbrk.
We go with the second since the sbrk being called to free up memory
should be pretty rare.
The following code problems an example test to show the issue. This
test code was inserted right after the call to mem_malloc_init().
Before this commit, weak symbols were not overridden by non-weak symbols
found in archive libraries when linking with recent versions of
binutils. As stated in the System V ABI, "the link editor does not
extract archive members to resolve undefined weak symbols".
This commit changes all Makefiles to use partial linking (ld -r) instead
of creating library archives, which forces all symbols to participate in
linking, allowing non-weak symbols to override weak symbols as intended.
This approach is also used by Linux, from which the gmake function
cmd_link_o_target (defined in config.mk and used in all Makefiles) is
inspired.
The name of each former library archive is preserved except for
extensions which change from ".a" to ".o". This commit updates
references accordingly where needed, in particular in some linker
scripts.
This commit reveals board configurations that exclude some features but
include source files that depend these disabled features in the build,
resulting in undefined symbols. Known such cases include:
- disabling CMD_NET but not CMD_NFS;
- enabling CONFIG_OF_LIBFDT but not CONFIG_QE.
Albert Aribaud [Mon, 15 Nov 2010 20:46:04 +0000 (21:46 +0100)]
tx25: fix linker file for newer ld support
older ld emitted all ELF relocations in input sections named
.rel.dyn, whereas newer ld uses names of the form .rel*. The
linker script only collected .rel.dyn input sections. Rewrite
to collect all .rel* input sections.
Signed-off-by: Albert Aribaud <albert.aribaud@free.fr>
Albert Aribaud [Mon, 15 Nov 2010 20:46:03 +0000 (21:46 +0100)]
ARM: fix linker file for newer ld support
older ld emitted all ELF relocations in input sections named
.rel.dyn, whereas newer ld uses names of the form .rel*. The
linker script only collected .rel.dyn input sections. Rewrite
to collect all .rel* input sections.
Signed-off-by: Albert Aribaud <albert.aribaud@free.fr>
Heiko Schocher [Mon, 15 Nov 2010 07:20:39 +0000 (08:20 +0100)]
post, i2c: add missing curly bracket in i2c_post_test
If CONFIG_SYS_POST_I2C_ADDRS is not defined and CONFIG_SYS_POST_I2C
is activated, i2c_probe() is not called in the for statement,
because missing curly bracket.
Ben Warren [Wed, 1 Sep 2010 06:05:04 +0000 (23:05 -0700)]
Net: clarify board/cpu_eth_init calls
This has always been confusing, and the idea of these functions returning the
number of interfaces initialized was half-baked and ultimately pointless.
Instead, act more like regular functions and return < 0 on failure, >= 0 on
success.
This change shouldn't break anything.
Signed-off-by: Ben Warren <biggerbadderben@gmail.com>
Peter Tyser [Fri, 29 Oct 2010 22:59:06 +0000 (17:59 -0500)]
MAKEALL: Do a sanity check on user-supplied arguments
Add a check to make sure that the user's arguments actually find a board
in boards.cfg. Previously, if a user misspelled an argument the
argument would be discarded without warning. For example, running
'MAKEALL -c 85xx' with the intention of compiling all Freescale 85xx
boards would instead silently discard the '-c 85xx' argument since the
proper cpu name is 'mpc85xx' and then proceed to compile all PowerPC
boards (MAKEALL's default).
Peter Tyser [Fri, 29 Oct 2010 22:59:29 +0000 (17:59 -0500)]
pci: Use intelligent indentation for CONFIG_PCI_SCAN_SHOW
When CONFIG_PCI_SCAN_SHOW is defined U-Boot prints out PCI devices as
they are found during bootup, eg:
PCIE1: connected as Root Complex
01:00.0 - 10b5:8518 - Bridge device
02:01.0 - 10b5:8518 - Bridge device
03:00.0 - 10b5:8112 - Bridge device
04:01.0 - 8086:1010 - Network controller
04:01.1 - 8086:1010 - Network controller
02:02.0 - 10b5:8518 - Bridge device
02:03.0 - 10b5:8518 - Bridge device
06:00.0 - 10b5:8518 - Bridge device
07:00.0 - 10b5:8518 - Bridge device
08:00.0 - 1957:0040 - Processor
07:01.0 - 10b5:8518 - Bridge device
09:00.0 - 10b5:8112 - Bridge device
07:02.0 - 10b5:8518 - Bridge device
PCIE1: Bus 00 - 0b
PCIE2: connected as Root Complex
0d:00.0 - 1957:0040 - Processor
PCIE2: Bus 0c - 0d
This information is useful, but its difficult to determine the PCI bus
topology. To things clearer, we can use indention to make it more
obvious how the PCI bus is organized. For the example above, the
updated output with this change is:
In the examples above, an MPC8640 is connected to a PEX8518 PCIe switch
(01:00 and 02:0x), which is connected to another PEX8518 PCIe switch
(06:00 and 07:0x), which then connects to a MPC8572 processor (08:00).
Also, the MPC8640's PEX8518 PCIe switch is connected to a PCI ethernet
card (04:01) via a PEX8112 PCIe-to-PCI bridge (03:00).
Peter Tyser [Fri, 29 Oct 2010 22:59:28 +0000 (17:59 -0500)]
pci: Fix ordering of devices when CONFIG_PCI_SCAN_SHOW
Move the printing of PCI device information to before the PCI device is
configured. This prevents the case where recursive scanning results in
the deepest devices being printed first.
This change also makes PCI lockups during enumeration easier to
diagnose since the device that is being configured is printed out prior
to configuration. Previously, it was not possible to determine which
device caused the PCI lockup.
Peter Tyser [Fri, 29 Oct 2010 22:59:27 +0000 (17:59 -0500)]
pci: Clean up PCI info when CONFIG_PCI_SCAN_SHOW
This change does the following:
- Removes the printing of the PCI interrupt line value. This is
normally set to 0 by U-Boot on bootup and is rarely used during
everyday operation.
- Prints out the PCI function number of a device. Previously a device
with multiple functions would be printed identically 2 times, which is
generally confusing. For example, on an Intel 2 port gigabit Ethernet
card the following was displayed:
...
04 01 8086 1010 0200 00
04 01 8086 1010 0200 00
...
- Prints a text description of each device's PCI class instead of the
raw PCI class code. The textual description makes it much easier to
determine what devices are installed on a PCI bus.
- Changes the general formatting of the PCI device output.
Peter Tyser [Fri, 29 Oct 2010 22:59:25 +0000 (17:59 -0500)]
mpc85xx: Fix SERDES/eTSEC message indentation
Previously some mpc85xx boards printed indented messages such as the
following on bootup:
printf(" eTSEC4 is in sgmii mode.\n");
printf(" Serdes2 disalbed\n");
The bootup appearance looks cleaner if the indentation is removed which
aligns these messages with other bootup output.
Signed-off-by: Peter Tyser <ptyser@xes-inc.com> CC: galak@kernel.crashing.org
Peter Tyser [Fri, 29 Oct 2010 22:59:24 +0000 (17:59 -0500)]
fsl: Clean up printing of PCI boot info
Previously boards used a variety of indentations, newline styles, and
colon styles for the PCI information that is printed on bootup. This
patch unifies the style to look like:
Peter Tyser [Thu, 28 Oct 2010 20:24:59 +0000 (15:24 -0500)]
fsl_pci_init: Make fsl_pci_init_port() PCI/PCIe aware
Previously fsl_pci_init_port() always assumed that a port was a PCIe
port and would incorrectly print messages for a PCI port such as the
following on bootup:
PCI1: 32 bit, 33 MHz, sync, host, arbiter
Scanning PCI bus 00
PCIE1 on bus 00 - 00
This change corrects the output of fsl_pci_init_port():
PCI1: 32 bit, 33 MHz, sync, host, arbiter
Scanning PCI bus 00
PCI1 on bus 00 - 00
Daniel Hobi [Wed, 10 Nov 2010 13:11:21 +0000 (14:11 +0100)]
tools/env: cleanup host build flags
This patch makes tools/env/Makefile more similar to tools/imls:
- define HOSTSRCS and HOSTCPPFLAGS, so that .depend generation works.
- include U-Boot headers using -idirafter to prevent picking up
u-boot/include/errno.h.
- use HOSTCFLAGS_NOPED (fw_env.c does not conform to -pedantic).
In order to cross-compile tools/env, override the HOSTCC variable
as in this example:
make tools env HOSTCC=bfin-uclinux-gcc
Signed-off-by: Daniel Hobi <daniel.hobi@schmid-telecom.ch> Tested-by: Detlev Zundel <dzu@denx.de> Tested-by: Steve Sakoman <steve.sakoman@linaro.org>
PowerPC: Don't destroy fixup table while doing fixups
The fixup procedure just stored a constant value in the
fixup table rather than just adjusting the table.
Although that doesn't seem to do any harm, it prevents
relocation more that once.
nic and hw structures are allocated via malloc i.e. return memory
is not zero initialized. Because of this few structure member like
"function pointers" are initialized with garbage values.
It may cause problem. for eg. during eth_initialize, dev->write_hwaddr
is used.
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Fixed typo. Signed-off-by: Wolfgang Denk <wd@denx.de>
uli526x driver does not have write_hwaddr function.
However, eth stuff executes write_hwaddr function
because eth_device structure has not been initialized.
Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org> CC: Ben Warren <biggerbadderben@gmail.com>
tsi108_eth driver does not have write_hwaddr function.
However, eth stuff executes write_hwaddr function
because eth_device structure has not been initialized.
Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org> CC: Ben Warren <biggerbadderben@gmail.com>
pcnet driver does not have write_hwaddr function.
However, eth stuff executes write_hwaddr function
because eth_device structure has not been initialized.
Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org> CC: Ben Warren <biggerbadderben@gmail.com>
ns8382x driver does not have write_hwaddr function.
However, eth stuff executes write_hwaddr function
because eth_device structure has not been initialized.
Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org> CC: Ben Warren <biggerbadderben@gmail.com>
natsemi driver does not have write_hwaddr function.
However, eth stuff executes write_hwaddr function
because eth_device structure has not been initialized.
Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org> CC: Ben Warren <biggerbadderben@gmail.com>
eepro100 driver does not have write_hwaddr function.
However, eth stuff executes write_hwaddr function
because eth_device structure has not been initialized.
Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org> CC: Ben Warren <biggerbadderben@gmail.com>
dc2114x driver does not have write_hwaddr function.
However, eth stuff executes write_hwaddr function
because eth_device structure has not been initialized.
Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org> CC: Ben Warren <biggerbadderben@gmail.com>
rtl8139 driver does not have write_hwaddr function.
However, eth stuff executes write_hwaddr function
because eth_device structure has not been initialized.
Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org> CC: Ben Warren <biggerbadderben@gmail.com>
Becky Bruce [Thu, 11 Nov 2010 17:33:05 +0000 (11:33 -0600)]
TQM85xx: Fix bug introduced by 83xx/85xx/86xx: LBC register cleanup
The size of the other bank needed to be added to the br0 setting;
this got dropped in the LBC cleanup.
Signed-off-by: Becky Bruce <beckyb@kernel.crashing.org> Tested-by: Wolfgang Denk <wd@denx.de> Acked-by: Wolfgang Denk <wd@denx.de> Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Signed-off-by: Timur Tabi <timur@freescale.com> Signed-off-by: Roy Zang <tie-fei.zang@freescale.com> Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Priyanka Jain [Mon, 25 Oct 2010 09:22:53 +0000 (14:52 +0530)]
p1_p2_rdb: to set SQW/INT pin of RTC as INT line
SQW/INT pin in RTC can be used for generating square wave(by default) or
as interrupt line. U-boot is registering this pin for interrupts.
Configuring SQW/INT bit as interrupt line during board initialization
to avoid spurious interrupts generated by square wave.
Signed-off-by: Priyanka Jain <Priyanka.Jain@freescale.com> Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Haiying Wang [Wed, 10 Nov 2010 20:37:13 +0000 (15:37 -0500)]
powerpc/85xx: add CONFIG_SYS_TEXT_BASE_SPL for 85xx nand spl build
Introduce a SPL specific CONFIG_SYS_TEXT_BASE_SPL define to be used by
the linker. This has similiar semantics to CONFIG_SYS_TEXT_BASE however
since SPL is a unqiue image we introduce a new variable to control its
text base address.
Signed-off-by: Haiying Wang <Haiying.Wang@freescale.com> Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Haiying Wang [Wed, 10 Nov 2010 20:37:13 +0000 (15:37 -0500)]
powerpc/85xx: rename CONFIG_SYS_TEXT_BASE to CONFIG_SYS_MONITOR_BASE
Use CONFIG_SYS_MONITOR_BASE instead of CONFIG_SYS_TEXT_BASE in early
init code so we can share the same code with NAND or NOR boot and not
have additional ifdefs in here.
Signed-off-by: Haiying Wang <Haiying.Wang@freescale.com> Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Kumar Gala [Wed, 10 Nov 2010 05:19:27 +0000 (23:19 -0600)]
powerpc/8xxx: Fix merge issue with P2020DS DDR2 build config
When P2020DS DDR2 was merged it was merged incorrectly and propogated to
boards.cfg. Fix this by moving DDR2 config to be associated with
P2020DS and not P1_P2_RDB.
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Heiko Schocher [Thu, 4 Nov 2010 20:05:25 +0000 (16:05 -0400)]
armv7, beagle: Second SDRAM bank don;t work
since commit 3667cbeed5e3c4067e624e52a916b1ebb02c8f05
on beagle board the second sdram bank didn;t longer
work. Since this patch sdram settings just get copied
from bank a, but CMD_NOP, CMD_PRECHARGE, CMD_AUTOREFRESH
are not executed and after that mr register is also
not updated. This patch adds this for the bank b.
Signed-off-by: Heiko Schocher <hs@denx.de>
cc: Steve Sakoman <steve@sakoman.com>
cc: Sandeep Paulraj <s-paulraj@ti.com>
cc: Wolfgang Denk <wd@denx.de> Signed-off-by: Sandeep Paulraj <s-paulraj@ti.com>
Sanjeev Premi [Thu, 4 Nov 2010 20:02:32 +0000 (16:02 -0400)]
omap3evm: Fix mechanism to identify board revision
Function omap3_evm_get_revision() - to identify the
board revision was called at end of setup_net_chip().
Board revision can be ascertained only by identifying
the Ethernet chipset - but combining setup operations
with revision detection isn't a good idea. So, moved
the function after call to setup_net_chip().
Function setup_net_chip() should be ideally be called
only when CONFIG_CMD_NET is defined. But this leaves
the board revision "undetected". This patch allows
static definition of revision or default fallback to
the latest revision.
Alagu Sankar [Mon, 25 Oct 2010 14:23:56 +0000 (07:23 -0700)]
mmc: Add multi-block read support to the generic mmc driver
This patch adds multi-block read support for the generic MMC
driver. Large reads are broken into chunks of 65535 blocks to
ensure that the code works with controllers having a 16 bit block counter.
This patch results in a significant performance improvement.
Time to read a 45 MB file went from 36 seconds to 9 seconds on Overo
Signed-off-by: Steve Sakoman <steve.sakoman@linaro.org> Tested-by: Steve Sakoman <steve.sakoman@linaro.org> Signed-off-by: Sandeep Paulraj <s-paulraj@ti.com>
Steve Sakoman [Wed, 27 Oct 2010 12:04:30 +0000 (05:04 -0700)]
ARMV7: OMAP: Fix build after introduction of GENERATED_GBL_DATA_SIZE
This patch fixes the issue by defining and using CONFIG_SYS_INIT_RAM_SIZE and
CONFIG_SYS_INIT_RAM_ADDR. Based on an email discussion with Wolfgang Denk and
Heiko Schocher.
Signed-off-by: Steve Sakoman <steve.sakoman@linaro.org> Signed-off-by: Sandeep Paulraj <s-paulraj@ti.com>
ARMV7: OMAP3: Add expansion board detection for Beagle
Beagle expansion boards contain an i2c eeprom to identify themselves.
This patch adds code to read and parse the eeprom contents. It prints
the expansion board name and revision and modifies environment variables
as appropriate. This patch is based on the Overo expansion board code.
Steve Sakoman [Mon, 20 Sep 2010 15:05:14 +0000 (08:05 -0700)]
ARMV7: OMAP3: Add expansion board detection for Overo
Overo expansion boards contain an i2c eeprom to identify themselves.
This patch adds code to read and parse the eeprom contents. It prints
the expansion board name and revision and modifies environment variables
as appropriate.
Signed-off-by: Steve Sakoman <steve@sakoman.com> Signed-off-by: Sandeep Paulraj <s-paulraj@ti.com>
Steve Sakoman [Thu, 21 Oct 2010 05:00:00 +0000 (22:00 -0700)]
ARMV7: Fix build for non-OMAP3 boards
Commit c3d3a54 uses CONFIG_ARMV7 to determine whether to call the
v7_flush_cache_all function. This breaks the build for all non-OMAP3
boards (like Panda and OMAP4430SDP) since there is only a v7_flush_cache_all
implementation for OMAP3.
This patch uses CONFIG_OMAP3XXX instead of CONFIG_ARMV7 so that only boards
with a v7_flush_cache_all will make the call.
Tested on Beagle, Overo, Panda, and OMAP4430SDP
Signed-off-by: Steve Sakoman <steve.sakoman@linaro.org> Signed-off-by: Sandeep Paulraj <s-paulraj@ti.com>
Wolfgang Denk [Thu, 28 Oct 2010 18:52:49 +0000 (20:52 +0200)]
Drop support for CONFIG_SKIP_RELOCATE_UBOOT
For ARM systems, before ELF relocation was introduced,
CONFIG_SKIP_RELOCATE_UBOOT coul be used to prevent *COPYING* the
U-Boot image from whereever it was loaded to it's link address
(CONFIG_SYS_TEXT_BASE). The name was badly chosen, as no relocation
was performed at all, it was just a memcpy().
With ELF relocation, this does not work like that any more, and
related boards need to be fixed anyway. So don't keep this relict any
longer.
Signed-off-by: Wolfgang Denk <wd@denx.de> Tested-by: Heiko Schocher <hs@denx.de> Tested-by: Reinhard Meyer <u-boot@emk-elektronik.de>
Wolfgang Denk [Thu, 28 Oct 2010 18:35:36 +0000 (20:35 +0200)]
Drop support for CONFIG_SYS_ARM_WITHOUT_RELOC
When this define was introduced, the idea was to provide a soft
migration path for ARM boards to get adapted to the new relocation
support. However, other recent changes led to a different
implementation (ELF relocation), where this no longer works. By now
CONFIG_SYS_ARM_WITHOUT_RELOC does not only not help any more, but it
actually hurts because it obfuscates the actual code by sprinkling it
with lots of dead and non-working debris.
So let's make a clean cut and drop CONFIG_SYS_ARM_WITHOUT_RELOC.
Signed-off-by: Wolfgang Denk <wd@denx.de> Tested-by: Heiko Schocher <hs@denx.de> Tested-by: Reinhard Meyer <u-boot@emk-elektronik.de>
Wolfgang Denk [Thu, 28 Oct 2010 18:00:11 +0000 (20:00 +0200)]
Replace CONFIG_RELOC_FIXUP_WORKS by CONFIG_NEEDS_MANUAL_RELOC
By now, the majority of architectures have working relocation
support, so the few remaining architectures have become exceptions.
To make this more obvious, we make working relocation now the default
case, and flag the remaining cases with CONFIG_NEEDS_MANUAL_RELOC.
Signed-off-by: Wolfgang Denk <wd@denx.de> Tested-by: Heiko Schocher <hs@denx.de> Tested-by: Reinhard Meyer <u-boot@emk-elektronik.de>
Tanmay Upadhyay [Thu, 28 Oct 2010 14:36:22 +0000 (20:06 +0530)]
Kirkwood: bugfix: DRAM size initialization
If start of any DRAM bank is greater than total DDR size, remaining DDR banks' start address & size were left un-initialized in dram_init function. This could break other functions who uses array 'gd->bd->bi_dram'. Kirkwood network driver is one example. This also stops Linux kernel from booting.
v2 - Set start address also to 0. Without this Linux kernel couldn't
boot up
After moving the definition of CONFIG_SYS_TEXT_BASE to the respective
board config files, all Marvell kirkwood board have just a single and
common entry in their config.mk files:
Replace the only reference to KWD_CONFIG in the top level Makefile by
an equivalent setting, and remove all kirkwood config.mk files.
Signed-off-by: Wolfgang Denk <wd at denx.de> Cc: Prafulla Wadaskar <prafulla at marvell.com> Cc: Siddarth Gore <gores at marvell.com> Cc: Simon Kagstrom <simon.kagstrom at netinsight.net> Cc: Heiko Schocher <hs at denx.de> Cc: Eric Cooper <ecc at cmu.edu> Acked-by: Wolfgang Denk <wd at denx.de> Signed-off-by: Prafulla Wadaskar <prafulla@marvell.com>
Shawn Guo [Wed, 27 Oct 2010 15:36:04 +0000 (23:36 +0800)]
mx51evk: Fix 2 hours reset issue
The mx51evk u-boot has an issue that system will get reset
every 2 hours.
MC13892 has an inside charge timer which expires in 120 minutes.
If ICHRG and CHGAUTOB are not set properly, this timer expiration
will get system power recycled.
Since mx51evk has no Li-Ion battery on board, the patch sets
ICHRG in externally powered mode and sets CHGAUTOB bit to avoid
automatic charging, so that system will not get reset by this
timer expiration.
The patch also corrects the bit field definition of register 48
(Charger 0) per latest MC13892 Reference Manual.
Matthias Weisser [Wed, 27 Oct 2010 14:34:38 +0000 (16:34 +0200)]
imx25: Fix reset
This patch fixes the reset command on imx25. The watchdog registers are 16
bits in size and not 32. This patch also adds the service register codes as
constants.