Joe Hershberger [Fri, 20 Apr 2012 21:56:13 +0000 (16:56 -0500)]
Xilinx: ARM: Add multiblock MMC read support
Direct buffer DMA is currently broken. I suspect an alignment requirement.
The latest u-boot upstream aligns the DOS partition and FAT fs buffers.
The intermediate DMA buffer is too small for most transfers.
Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
Joe Hershberger [Tue, 20 Mar 2012 22:38:48 +0000 (17:38 -0500)]
Xilinx: ARM: Fix memory corruption bug in pele timer_init
Global variables (.bss) must not be accessed before relocation.
That memory is now overlayed with the .rel.dyn ELF relocation table.
Even if that was allowed, it would have no positive effect since
initialized value would not be relocated into RAM. It would be 0
again.
Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
Joe Hershberger [Tue, 20 Mar 2012 23:19:37 +0000 (18:19 -0500)]
Xilinx: ARM: INIT_SP is now needed before relocation
Define the offset and size of the INIT_RAM.
Base the INIT_SP on the INIT_RAM and reference the generated
GBL_DATA_SIZE.
Remove the explicit definition of the CONFIG_SYS_GBL_DATA_SIZE.
Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
John Linn [Mon, 5 Mar 2012 02:00:34 +0000 (18:00 -0800)]
Xilinx: ARM: fix low level to include correct header file
The previous fix, including xpele.h, worked for EP107, but
doesn't work once there are more configuation header files
other than xpele.h. This now works for new ones also.
Andrei Simion [Thu, 22 Dec 2011 22:07:27 +0000 (14:07 -0800)]
Xilinx: ARM: Update for gigabit ethernet support.
The PHY driver has been updated to establish a link at the highest
speed possible. The GEM divisors are modified to create an input
frequency that matches the link speed:
2.5MHz for 10Mbps
25MHz for 100Mbps
125MHz for 1000Mbps
Error checking has also been included to prevent auto-negotiation
from stalling and for catching failed auto-negotiation attempts.
John Linn [Fri, 6 Jan 2012 03:19:42 +0000 (19:19 -0800)]
Xilinx: ARM: Stop GCC from generating unaligned accesses
With the newer GNU tools, GCC 4.5.2 and newer, we're
seeing data aborts. This solution may not be the right
long term solution, but works for now. This causes GCC
not to generate unaligned data.
John Linn [Fri, 6 Jan 2012 03:19:42 +0000 (19:19 -0800)]
Xilinx: ARM: Stop GCC from generating unaligned accesses
With the newer GNU tools, GCC 4.5.2 and newer, we're
seeing data aborts. This solution may not be the right
long term solution, but works for now. This causes GCC
not to generate unaligned data.
John Linn [Fri, 6 Jan 2012 03:19:42 +0000 (19:19 -0800)]
Xilinx: ARM: Stop GCC from generating unaligned accesses
With the newer GNU tools, GCC 4.5.2 and newer, we're
seeing data aborts. This solution may not be the right
long term solution, but works for now. This causes GCC
not to generate unaligned data.
John Linn [Tue, 20 Dec 2011 19:16:44 +0000 (11:16 -0800)]
Xilinx: ARM: Adding board support for FMC daughter cards
The NAND working caused u-boot to lockup when there was
no NAND so now there's CONFIGs for each board permutation
of the ZC770. The default is for DC1 (XM010) card.
John Linn [Mon, 19 Dec 2011 20:35:55 +0000 (12:35 -0800)]
Xilinx: ARM: NAND: wait for device ready after device reset
When moving from PEEP to Zynq, the ID of the flash was not
being read at all, only zeroes. The driver was not waiting
for the device to be ready after resetting the device and
since Zynq is so much faster it was a problem.
John Linn [Tue, 13 Dec 2011 20:58:04 +0000 (12:58 -0800)]
Xilinx: ARM: adding SD boot mode
SD boot was not supported in the automatic boot mode, now
it is. Even though this loads a ramdisk you can just ignore
the ramdisk if the root file system is on SD in an EXT2
file system.
John Linn [Tue, 13 Dec 2011 20:55:56 +0000 (12:55 -0800)]
Xilinx: ARM: SD: change divisor to speed it up
In the former change, a divisor too low seems cause problems
with the lower speed cards. This is attempt to have something
that's tolerable even if it's not the optimal.
This allows the kernel and ramdisk to be loaded reasonably
quickly.
The new board has only 2 choices for PHY addresses, 0x7 and
0x17 which are based on the jumpers. 0x17 was what was being
used on EP107 so assuming we set the jumpers we shouldn't
need this change which would not have worked (0x16 phy addr).
Andrei Simion [Wed, 16 Nov 2011 19:34:21 +0000 (11:34 -0800)]
Xilinx: ARM: Use different xparameters for silicon and EP107.
If CONFIG_EP107 is defined, include 'xparameters.h' and 'xparameters_pss.h',
otherwise include 'xparameters_zynq.h' and 'xparameters_pss_zynq.h'.
The Zynq variants of xparameters are subject to change. For now, the
only difference is XPAR_CPU_CORTEXA9_CORE_CLOCK_FREQ_HZ is 216664500 Hz instead of 12500000 Hz and XPAR_XUARTPSS_1_CLOCK_HZ is 13756480 Hz instead of 50000000 Hz to reflect silicon.
Andrei Simion [Thu, 10 Nov 2011 03:29:19 +0000 (19:29 -0800)]
Xilinx: ARM: SCU timer input frequency update.
Modified the 'xpele.h' configuration such that the timer input
frequency is always half of the CPU core clock frequency from
'xparameters.h' (PERIPHCLK in the TRM) instead of hard-coded
to 5 MHz.
Andrei Simion [Wed, 9 Nov 2011 02:16:51 +0000 (18:16 -0800)]
Xilinx: ARM: Flexible baud rate calculation.
Values used in U-boot's baud rate calculation are chosen in such
a way to keep the error between the target and calculated baud
rate under 3%.
The header was changed to avoid hardcoding values such as the ones
used in the baud rate calculation. The UART input frequency uses
the value defined in 'xparameters.h'.
John Linn [Fri, 23 Sep 2011 18:05:11 +0000 (12:05 -0600)]
Xilinx: ARM: Changed environment to load device trees
The Linux kernel is now defaulting to device tree mode such
that a device tree blob is to be loaded into memory when
loading Linux from each of the flash memory types.
This only changed the commands in the environment for
each flash to also load the device tree blob.
I found that the commands can get too long such that
u-boot gives an error so they are not as verbose as
previously.
John Linn [Mon, 25 Jul 2011 21:05:46 +0000 (15:05 -0600)]
Xilinx: ARM: SD: reset interrupt status after operation
The interrupt status of the SD was not being cleared after the
operation was completed which was causing problems for other
applications that were loaded.
Brian Hill [Tue, 24 May 2011 19:00:37 +0000 (13:00 -0600)]
Xilinx: ARM: Adjust CONFIG_SYS_HZ to 1000.
Adjust CONFIG_SYS_HZ to 1000. Parts of the networking code assume that
the clock tick is natively expressed in milliseconds (and don't adjust
the values by using CONFIG_SYS_HZ).
Brian Hill [Tue, 26 Apr 2011 14:54:27 +0000 (08:54 -0600)]
Xilinx: ARM: Make use of boot mode register possible with u-boot
The environment variable modeboot is set to something appropriate
based on the contents of the boot mode register.
EXAMPLE:
For bootmode 2, modeboot will be set to "run norboot".
This method of booting can be utilized via bootcmd = "run modeboot"
or not, if the user prefers that u-boot and the kernel come from
separate storage devices.
Brian Hill [Thu, 21 Apr 2011 15:34:46 +0000 (09:34 -0600)]
Xilinx: ARM: Update SD driver to handle MMC_RSP_R2 properly.
Update SD driver to handle MMC_RSP_R2 properly. 136 bit response was
not being copied properly. This prevented some SD cards from being
detected correctly.
Wolfgang Denk [Thu, 31 Mar 2011 21:26:29 +0000 (16:26 -0500)]
Fix build issues cause by LDFLAGS_FINAL changes
Commit 6dc1ece "Introduce a new linker flag LDFLAGS_FINAL" modified a
number of Makefiles in a way that broke out-of-tree builds. The
problem was that $(nandobj) was used before it got defined.
Fix this.
Signed-off-by: Wolfgang Denk <wd@denx.de> Signed-off-by: Scott Wood <scottwood@freescale.com>
Wolfgang Denk [Tue, 29 Mar 2011 12:34:50 +0000 (14:34 +0200)]
Fix build problems caused by "_end" -> "__bss_end__" rename
Commit 44c6e65 "rename _end to __bss_end__ broke building of a large
number of systems (at least all PowerPC?):
libstubs.o: In function `app_startup':
examples/standalone/stubs.c:197: undefined reference to `__bss_end__'
The rename should not be done for the files in the
examples/standalone/ directory, as these are not using the code from
start.S, but do their own BSS clearing, and either use their own
linker scripts or the ones provided by the compilers.
Signed-off-by: Po-Yu Chuang <ratbert@faraday-tech.com> Signed-off-by: Wolfgang Denk <wd@denx.de>
powerpc/85xx: Handle PCIe initialization requires for P1021 class SoCs
The P1011, P1012, P1015, P1016, P1020, P1021, P1024, & P1025 SoCs require
that we initialize the SERDES registers if the lanes are configured for
PCIe. Additionally these devices PCIe controller do not support ASPM
and we have to explicitly disable it.
Signed-off-by: Prabhakar Kushwaha <prabhakar@freescale.com> Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Martin Krause [Mon, 21 Mar 2011 17:07:56 +0000 (18:07 +0100)]
cfi_flash: fix bug with flash banks with different sector numbers
The function find_sector() does not take into account if the flash bank
has changed since the last call. This could lead to illegal accesses inside
and beyond the flash_info_t info strcture. For example if the current
flash bank has less sectors than the last used flash bank.
This patch adds two cheks. One that insures, that the current sector does
not exceed the allowed maximum (which is always a good idea). And one that
checks if the current access is to the same flash bank as the last access.
If not, the search loop will start with sector 0.
Signed-off-by: Martin Krause <martin.krause@tqs.de> Signed-off-by: Stefan Roese <sr@denx.de>
Chander Kashyap [Tue, 22 Mar 2011 01:40:50 +0000 (01:40 +0000)]
S5P: mmc: Resolved interrupt error during mmc_init
Blocksize was hardcoded to 512 bytes. But the blocksize varies
depeding on various mmc subsystem commands (between 8 and 512).
This hardcoding was resulting in interrupt error during data
transfer.
It is now calculated based upon the request sent by mmc subsystem.
Signed-off-by: Chander Kashyap <chander.kashyap@linaro.org> Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
Chander Kashyap [Tue, 22 Mar 2011 01:29:38 +0000 (01:29 +0000)]
ARMV7: S5P: Fixed register offset in mmc.h
The MMC registers are accessed through struct s5p_mmc member
variables. MMC controller "control4" register offset is set
to 0x8C as per data sheet. The size of struct s5p_mmc is also
corrected.
Signed-off-by: Chander Kashyap <chander.kashyap@linaro.org> Signed-off-by: Tushar Behera <tushar.behera@linaro.org> Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> Acked-by: Albert ARIBAUD <albert.aribaud@free.fr>
Donghwa Lee [Mon, 7 Mar 2011 21:11:42 +0000 (21:11 +0000)]
ARM: S5P: pwm driver support
This is common pwm driver of S5P.
Signed-off-by: Donghwa Lee <dh09.lee@samsung.com> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
seedshope [Sat, 22 Jan 2011 10:06:13 +0000 (10:06 +0000)]
SMDK6400: Disable LED function in start.s on the nand booting
Since nand boot have some limit for the first 4KB, We only
disable the LED function to reduce the code space. At the
same time, Fix the compile error for LED function undefined
in the compile time of nand_spl.
Signed-off-by: Zhong Hongbo <bocui107@gmail.com> Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>