fpga: Add support to load partial and compressed bitstreams
Added support to load partial and compressed bitstreams.
The partial bitstreams can be loaded using the below commands
Commands:
fpga loadp <dev> <addr> <size>
fpga loadbp <dev> <addr> <size>
The compressed and full bit streams can be loaded using the
old commands(fpga load and fpga loadb).
Signed-off-by: Siva Durga Prasad Paladugu <sivadur@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Mike Looijmans [Thu, 6 Mar 2014 13:22:02 +0000 (14:22 +0100)]
spi: Correct sector size to 256k for Spansion S25FL512S_256K and S25FL256S_256K
The information in sf_params.c is incorrect for the Spansion flash chips,
the suffix "256k" means that these chips have 256k sector sizes. Set the
sector size correctly and adjust the number of sectors as well.
This fixes writing to serial flash on the zynq-miami boards.
Signed-off-by: Mike Looijmans <mike.looijmans@topic.nl> Acked-by: Siva Durga Prasad Paladugu <sivadur@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Mike Looijmans [Thu, 6 Mar 2014 13:43:36 +0000 (14:43 +0100)]
ARM: zynq: Fix bootmode mask
Bootmode mask was defined as 0x0F, but documentation mentions 0x07.
Experiments show that bit "3" is the JTAG chain configuration.
Change the mask to "7" to allow systems with a different chain
configuration to boot correctly.
Signed-off-by: Mike Looijmans <mike.looijmans@topic.nl> Acked-by: Siva Durga Prasad Paladugu <sivadur@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Mike Looijmans [Fri, 21 Mar 2014 07:14:46 +0000 (08:14 +0100)]
zynq/board.c: Fix building SPL without FPGA support
When CONFIG_FPGA is defined but CONFIG_SPL_FPGA is not, the build fails:
board.c: In function 'board_init':
board.c:41:3: error: 'fpga' undeclared (first use in this function)
fpga = fpga010;
Fix this by expanding the "#if.." around this block to match the other
FPGA checks and don't compile this block when buildign for SPL without
FPGA support.
Tested a bootloader that had CONFIG_FPGA defined without CONFIG_SPL_FPGA,
this now compiles without errors and loading FPGA from u-boot works.
Signed-off-by: Mike Looijmans <mike.looijmans@topic.nl> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Guard the LOADMK functionality with config to provide
an option to enable or disable it.
This will require to enable this option for all configs
in mainline.
Signed-off-by: Siva Durga Prasad Paladugu <sivadur@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
fpga: zynq: Added support to load bit stream from SD/MMC
Added support to load a bitstream image in chunks by reading it in
chunks from SD/MMC.
Command format:
loadfs [dev] [address] [image size] [blocksize] <interface>
[<dev[:part]>] <filename>
Example: fpga loadfs 0 1000000 3dbafc 4000 mmc 0 fpga.bin
Signed-off-by: Siva Durga Prasad Paladugu <sivadur@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Use zynq_dma_xfer_init, zynq_align_dma_buffer,
zynq_dma_transfer helper function performing dma
transfers so that the code can be reused easily for
different cases of dma transfer.
Signed-off-by: Siva Durga Prasad Paladugu <sivadur@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
zynq: rsa: Correct the total partition header size calculation
Correct the partition header size calculation while copying the
partition header information.
This fixes the issue of corrupting the bss section because of
the wrong size calculation during copy.
Signed-off-by: Siva Durga Prasad Paladugu <sivadur@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
sf: Set QUAD enable of upper flash in Dual Stacked
Sets the QUAD enable bit for upper flash incase of
dual stacked mode.
This fixes the issue of where the quad enable bit
of the upperflash was not set and hence not able
to access the upperflash using quad commands in
Dual stacked mode.
Signed-off-by: Siva Durga Prasad Paladugu <sivadur@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
zynq: usb: Runtime detection of usb connected through slcr
This patch adds support to check the connected
usb at runtime based on nand MIO configurations.
User needs to correctly configure the MIO's based
on the usb connected on the board.
Signed-off-by: Siva Durga Prasad Paladugu <sivadur@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Mike Looijmans [Tue, 28 Jan 2014 06:26:18 +0000 (07:26 +0100)]
zynq: Add -mfpu=neon to PLATFORM_RELFLAGS
Fixes the following compiler error when using a GNU toolchain:
lowlevel_init.S:19: Error: selected processor does not support ARM mode `fmrx r1,FPEXC'
lowlevel_init.S:21: Error: selected processor does not support ARM mode `fmxr FPEXC,r1'
See also
http://forums.xilinx.com/t5/Embedded-Linux/Current-U-boot-master-u-boot-xlnx-fails-to-build-on-GNU/td-p/407205
Signed-off-by: Mike Looijmans <mike.looijmans@topic.nl> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Michael Burr [Tue, 15 Oct 2013 20:23:12 +0000 (15:23 -0500)]
i2c: zynq: Support for 0-length register address
Fixed bug with alen == 0 in 'i2c_write', 'i2c_read'
Further minor corrections:
- Write 'address' register before 'data' register.
- Write 'transfer_size' register before 'address' register.
Signed-off-by: Michael Burr <michael.burr@logicpd.com> Cc: Heiko Schocher <hs@denx.de> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Michal Simek [Tue, 14 Jan 2014 13:21:52 +0000 (14:21 +0100)]
zynq: Add support for U-BOOT SPL
This is the first implementation of u-boot spl
which can be used instead of fsbl.
SPL is using ps7_init.c/h files which are generated
from design tools. xil_io.h generation is in Makefile
just because of dependencies in ps7_init.c.
It is easier to create empty xil_io.h instead of
manually changing ps7_init.c.
For compiling u-boot SPL copy ps7_init.c/h to
board/xilinx/zynq folder and rebuild u-boot.
Own linker script and change in fat.c are there
just because of inefficient u-boot fat implementation
where ddr is used for storing some fat buffers.
MMC and QSPI support is added.
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
The change to add 64bit initrd support broke 32bit initrd support as it
always set 64bits worth of data into the properties, even on 32bit
systems. The fix is to use addr_cell_len (which already says how much
data is in 'tmp') to set the property, rather than always setting 8.
Thanks to Stephen Warren for pointing out the fix here.
Reported-by: Otavio Salvador <otavio@ossystems.com.br> Signed-off-by: Tom Rini <trini@ti.com>
Stephen Warren [Tue, 14 Jan 2014 02:50:12 +0000 (19:50 -0700)]
ARM: bcm2835: fix mailbox timeout
My original intention was to have a 100ms timeout. However, the timer
operations used return values in ms not us, so we ended up with a 100s
timeout instead. Fixing this exposes that some operations need longer
to operate than 100ms, so bump the timeout up to a whole second.
Reported-by: Andre Heider <a.heider@gmail.com> Reviewed-by: Andre Heider <a.heider@gmail.com> Signed-off-by: Stephen Warren <swarren@wwwdotorg.org>
Stephen Warren [Tue, 14 Jan 2014 02:50:11 +0000 (19:50 -0700)]
ARM: rpi_b: power on SDHCI and USB HW modules
Send RPC commands to the VideoCore to turn on the SDHCI and USB modules.
For SDHCI this isn't needed in practice, since the firmware already
turned on the power in order to load U-Boot. However, it's best to be
explicit. For USB, this is necessary, since the module isn't powered
otherwise. This will allow the kernel USB driver to work.
Signed-off-by: Stephen Warren <swarren@wwwdotorg.org>
Dan Murphy [Thu, 16 Jan 2014 17:23:28 +0000 (11:23 -0600)]
spl: common: Properly ignore spl/Makefile in .gitignore
The spl directory is ignored by git as these objects are created
during spl creation. The only file not created is the Makefile.
This file can be modified and checked in via git.
Due to the order of rule precedence having the whole directory
ignored first then indicating not to ignore the Makefile is not correct
the message to force adding the Makefile is still shown.
So reorder the .gitignore for the Makefile and indicate that the Makefile
does not need to be ignored first and then indicate everything else in spl
should be ignored after wards.
Charles Manning [Mon, 20 Jan 2014 02:51:59 +0000 (15:51 +1300)]
yaffs2: Remove block number check from summary verification
The summary already has other verification. This one is not needed.
The check caused summaries to be ignored if they were not on the
numbered block. This caused problems when a summary was embedded in an
image and the image is written to a flash with bad blocks.
Signed-off-by: Charles Manning <cdhmanning@gmail.com>
Ionut Nicu [Mon, 13 Jan 2014 11:00:08 +0000 (12:00 +0100)]
ext4fs: fix "invalid extent block" error
For files where we actually have extent indexes following
an extent header (ext_block->eh_depth != 0), the do/while
loop from ext4fs_get_extent_block() does not select the
proper extent index structure.
the do/while loop will exit with i set to 0 and the
ext4fs_get_extent_block() function will return 0, even if
there was a valid extent index structure following the
header.
Signed-off-by: Ionut Nicu <ioan.nicu.ext@nsn.com> Signed-off-by: Mathias Rulf <mathias.rulf@nsn.com>
Ionut Nicu [Mon, 13 Jan 2014 10:59:24 +0000 (11:59 +0100)]
ext4fs: use EXT2_BLOCK_SIZE instead of fs->blksz
Using fs->blksz in ext4fs_get_extent_block() is not
correct since fs->blksz is not initialized on the
read path. Use EXT2_BLOCK_SIZE() instead which will
produce the desired output.
Signed-off-by: Ionut Nicu <ioan.nicu.ext@nsn.com> Signed-off-by: Mathias Rulf <mathias.rulf@nsn.com>
Ma Haijun [Wed, 8 Jan 2014 00:15:33 +0000 (08:15 +0800)]
fs/ext4: fix calling put_ext4 with truncated offset
Curently, we are using 32 bit multiplication to calculate the offset,
so the result will always be 32 bit.
This can silently cause file system corruption when performing a write
operation on partition larger than 4 GiB.
This patch address the issue by simply promoting the terms to 64 bit,
and let compilers decide how to do the multiplication efficiently.
Jeroen Hofstee [Wed, 15 Jan 2014 16:58:54 +0000 (17:58 +0100)]
nand, gpmc: fix reading after switching ecc
The omap_gpmc allows switching ecc at runtime. Since
the NAND_SUBPAGE_READ flag is only set, it is kept when
switching to hw ecc, which is not correct. This leads to
calling chip->ecc.read_subpage which is not a valid
pointer. Therefore clear the flag when switching ecc so
reading in hw mode works again.
Bhupesh Sharma [Thu, 16 Jan 2014 15:47:40 +0000 (09:47 -0600)]
vexpress/armv8: Fix incorrect ethernet controller
This patch enables ethernet support in ARMv8 foundation model. The ARMv8
foundation model supports a SMSC91C111 integrated MAC and PHY module
which is present at base address 0x01A000000.
The previous implementation had enabled SMSC9115 ethernet controller
which is not present on the ARMv8 foundation model.
Tested on ARMv8 foundation model v1 and v2 by running ping/tftp
between the foundation model and the host PC via a bridged network.
Such improvement is possible due to reduction of the need to invalidate
redundant data, which resides in L2 cache.
Since the sent USB request size at once is 512B (L1 - 32 KiB in total) -
one can be quite confident that it is already available in L1 and L2 can
be disabled.
Signed-off-by: Lukasz Majewski <l.majewski@samsung.com> Acked-by: Minkyu Kang <mk7.kang@samsung.com>
Łukasz Majewski [Tue, 14 Jan 2014 07:02:24 +0000 (08:02 +0100)]
config: Update envs for trats and trats2 - new entries for new partitions
This patch adds extra dfu_alt_info entries to support storing the whole BOOT
, DATA and UMS partitions.
This allows upgrade of uImage and device tree blob (dtb) files at once.
Now it is also possible to store ext4 rootfs prepared with well established
linux tools (like mkfs.ext4).
Signed-off-by: Lukasz Majewski <l.majewski@samsung.com> Acked-by: Minkyu Kang <mk7.kang@samsung.com>
Fabio Estevam [Fri, 3 Jan 2014 17:55:59 +0000 (15:55 -0200)]
net: phy: atheros: Fix the masks for AR8031/8035
Use the same masks as used in the kernel:
https://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/tree/drivers/net/phy/at803x.c?id=refs/tags/v3.12.6
With such changes Ethernet is functional on hummingboard solo.
Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com> Acked-by: Stefano Babic <sbabic@denx.de> Acked-by: Joe Hershberger <joe.hershberger@ni.com> Acked-by: Marek Vasut <marex@denx.de>
Patch: 306640
Heiko Schocher [Thu, 19 Dec 2013 12:45:04 +0000 (13:45 +0100)]
common, env: optimize boottime
when creating the hashtable, for each environmentvariable
getenv(ENV_CALLBACK_VAR) and getenv(ENV_FLAGS_VAR) is called,
which costs at this point a lot of time. So call this two
getenv() calls only once.