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>
This patch adds a support for W25Q64DW with x2 device.
for building x2 QSPI, please uncomment
CONFIG_XILINX_PSS_QSPI_USE_DUAL_FLASH on include/configs/xpele.h.
I was recommended to use Winbond in dual mode, as it's flash size
is less compared to remaining QSPI's
This patch adds a support for S25FL129P with x2 device.
for building x2 QSPI, please uncomment
CONFIG_XILINX_PSS_QSPI_USE_DUAL_FLASH on include/configs/xpele.h
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.