Commit Graph

42 Commits

Author SHA1 Message Date
Mathias Kresin
b7befd8d81 uboot-lantiq: danube: fix hanging lzma kernel uncompression #2
Follow up to commit 565b62cca2. Managed to
hit the very same issue again while playing with the NOR SPL builds.

Signed-off-by: Mathias Kresin <dev@kresin.me>
2021-11-27 21:49:10 +01:00
Mathias Kresin
9daf57d960 uboot-lantiq: reduce stack size
On lantiq a lot of stuff expects to be loaded to and executed at
0x80002000, including our own second stage bootloader.

For all build u-boots, the initial stack pointer is at 0x80008000. After
loading data to 0x80002000, every further stack operation corrupts the
loaded code.

Set the initial stack pointer to 0x80002000, to not overwrite code
loaded in memory. A stack of 0x2000 bytes has been proven as enough in
all done tests.

Signed-off-by: Mathias Kresin <dev@kresin.me>
2021-11-14 20:15:50 +01:00
Mathias Kresin
e6f8cf6223 uboot-lantiq: danube: fix SPL boot
On danube we only have 0x6800 bytes of usable SRAM. Everything behind
can't be written to and a SPL u-boot locks up during boot.

Since it's a hard to debug issue and took me more than two years to fix
it, I consider it worth to include fix albeit SPL u-boots are not build
in OpenWrt.

I faced the issue while trying to shrink the u-boot to 64K since some
boards only have an u-boot partition of that size from the days
ifx-uboot was used.

Signed-off-by: Mathias Kresin <dev@kresin.me>
Reviewed-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
2021-11-14 20:15:42 +01:00
Mathias Kresin
87b8f095af uboot-lantiq: fix out of bounds cache invalidate
With gcc10 the variables are placed more tightly to each other, which
uncovers a long existing bug in the lantiq DMA code. It can be observed
when using tftpboot with the filename parameter, which gets reset during
the tftpboot execution.

NetRxPackets[] points to cache line size aligned addresses. In
ltq_eth_rx_packet_align() the address NetRxPackets[] points to is
increased by LTQ_ETH_IP_ALIGN and the resulting not cache aligned
address is used further on. While doing so, the length/size is never
updated.

The "not cache aligned address" + len/size for a cache aligned address
is passed to invalidate_dcache_range(). Hence, invalidate_dcache_range()
invalidates the next 32 bit as well, which flashes the BootFile variable
as well.

   variable BootFile is at address: 0x83ffe12c
   NetRxPackets[] points to 0x83ffdb20 (len is 0x600)
   data points to: 0x83ffdb22 (len is 0x600)

   ltq_dma_dcache_inv: 0x83ffdb22 (for len 0x600)
   invalidate_dcache_range: 0x83ffdb20 to 0x83ffe120 (size: 32)
   invalidate_dcache_range: 0x83ffdb20 to 0x83ffdb40 (Bootfile: a.bin)
   ...
   invalidate_dcache_range: 0x83ffe100 to 0x83ffe120 (Bootfile: a.bin)
   invalidate_dcache_range: 0x83ffe120 to 0x83ffe140 (Bootfile: )

In ltq_dma_tx_map() and ltq_dma_rx_map() the start address passed to
ltq_dma_dcache_wb_inv() is incorrect. By considering the offset, the
start address passed to flush_dcache_range() is always aligned to 32, 64
or 128 bytes dependent on configured DMA burst size.

Fixes: FS#4113

Signed-off-by: Mathias Kresin <dev@kresin.me>
2021-11-14 20:15:35 +01:00
Mathias Kresin
565b62cca2 uboot-lantiq: danube: fix hanging lzma kernel uncompression
At least since gcc 7.3.0 (OpenWrt 18.06) lwr/lwl are used in the
assembly of LzmaProps_Decode. While the decission made by the compiler
looks perfect fine, it triggers some obscure hang on lantiq danube-s
v1.5 with MX29LV640EB NOR flash chips.

Only if the offset 1 is used, the hang can be observed. Using any other
offset works fine:

  lwl s0,0(a1) - s0 == 0x6d000080
  lwl s0,1(a1) - hangs
  lwl s0,2(a1) - s0 == 0x0080xxxx
  lwl s0,3(a1) - s0 == 0x80xxxxxx

It isn't clear whether it is a limitation of the flash chip, the EBU or
something else.

Force 8bit reads to prevent gcc optimizing the read with lwr/lwl
instructions.

Signed-off-by: Mathias Kresin <dev@kresin.me>
2021-11-14 20:15:29 +01:00
Alan Swanson
8db6410492 uboot-lantiq: fix sha1.h header clash when system libmd installed
Backport of u-boot commit "includes: move openssl headers to include/u-boot"
2b9912e6a7

Fixes: FS#3955
Signed-off-by: Alan Swanson <reiver@improbability.net>
2021-10-02 13:33:46 +02:00
Thomas Nixon
6b729e1563 uboot-lantiq: fix compile with modern host dtc
In dtc version 1.4.6 the macro names in header include guards changed,
but the build relies on them matching in order to replace selected
headers. This is a horrible hack to work around this.

Signed-off-by: Thomas Nixon <tom@tomn.co.uk>
2018-10-07 02:12:06 +02:00
Martin Schiller
e86cdf85a7 uboot-lantiq: fix compatibility with gcc7
Backport u-boot commit 704f3acfcf55343043bbed01c5fb0a0094a68e8a to fix
compatibility with gcc7.

Signed-off-by: Martin Schiller <ms@dev.tdt.de>
2018-09-26 20:35:07 +02:00
Carl-Daniel Hailfinger
3e6d303d61 uboot-lantiq: Enable TFTP PUT support for backups
Backing up the current firmware from U-Boot over serial can take hours.
Booting a working Linux image for backup purposes is not always an option.
Using the tftpput command in U-Boot is the fastest and easiest way.

tftpput will upload the contents of a memory region to the TFTP server.
The IP address of the server is stored in the serverip variable.

Usage:
tftpput <memaddr> <length> <filename>

Example for a complete flash backup of an o2 Box 6431 (VGV7510KW22):
VGV7510KW22 # tftpput 0xB0000000 0x1000000 o2boxbackup.bin

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
2017-08-18 18:47:27 +02:00
Martin Schiller
d189fe62cd uboot-lantiq/spl: fixed uninitialized variable len in spl_uncompress_lzo
This fix is taken from uboot-lantiq v2014.07 (Daniel Schwierzeck)

Signed-off-by: Martin Schiller <ms@dev.tdt.de>
2017-05-31 08:41:31 +02:00
Martin Schiller
bbb27b1b22 uboot-lantiq: Support newer versions of the PEF7071 ethernet
This fix is taken from uboot-lantiq v2014.07 (Daniel Schwierzeck)

Signed-off-by: Martin Schiller <ms@dev.tdt.de>
2017-05-31 08:41:16 +02:00
Felix Fietkau
2526d150dc uboot-lantiq: fix build error on mac os x
asm/* includes are not safe for the host build

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2017-04-04 12:33:34 +02:00
Felix Fietkau
d974e5a235 uboot-lantiq: fix a tool portability issue
Use the standard off_t type instead of loff_t

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2017-01-25 08:29:16 +01:00
Mathias Kresin
8c822ec4ca uboot-lantiq: fix boot of images larger than 8MB
Increasing CONFIG_SYS_BOOTM_LEN from 8 MB to 16 MB is necessary to
support uncompressing images larger than 8 MB when using the bootm
command.

Signed-off-by: Mathias Kresin <dev@kresin.me>
2017-01-02 19:16:54 +01:00
Mathias Kresin
cfe1c6debe uboot-lantiq: fix build with gcc6
Backport u-boot commit 9b2c282b348dfe966bbba967dc7a45ce817cce50 to fix
compile with gcc5 and gcc6.

Signed-off-by: Mathias Kresin <dev@kresin.me>
2017-01-02 19:16:54 +01:00
Mathias Kresin
36148d923b uboot-lantiq: Add BT Home Hub 5A support
Based on the submission to the uboot-lantiq repo by Martin Blumenstingl.

Use the ddr_settings.h from the GPL tarball. The NAND boot optimized
one (with memory tuning enabled) doesn't work for the UART boot image.

Use the same mtd layout as the stock u-boot. Add add UBI support.

Use the leds to indicate boot status like it is done with the stock
u-boot. Switch on the red power led if kernel image can't be loaded.
Otherwise switch the green led on.

Make only the ramboot u-boot available. Only this image is required for
the first installation of LEDE.

Signed-off-by: Mathias Kresin <dev@kresin.me>
2016-11-29 21:40:16 +01:00
Eddi De Pieri
ea12a80276 uboot-lantiq: vgv7519 fix tftp loading of big kernel/image size
On my board:
Bytes transferred = 7084442 (6c199a hex)
   Image Name:   MIPS OpenWrt Linux-3.10.49
   Created:      2014-11-11  17:40:00 UTC
   Image Type:   MIPS Linux Kernel Image (lzma compressed)
   Data Size:    7084378 Bytes = 6.8 MiB
   Load Address: 80002000
   Entry Point:  80002000
   Verifying Checksum ... OK
   Uncompressing Kernel Image ... LZMA: uncompress or overwrite error
7 - must RESET b
ROM VER: 1.0.5
CFG 01

Signed-off-by: Eddi De Pieri <eddi@depieri.net>
2016-11-23 08:43:49 +01:00
Mathias Kresin
b32eb40210 uboot-lantiq: Add Arcadyan ARV7506PW11 support
Signed-off-by: Mathias Kresin <dev@kresin.me>
2016-06-22 19:32:06 +02:00
Felix Fietkau
7eeb254cc4 treewide: replace nbd@openwrt.org with nbd@nbd.name
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2016-06-07 08:58:42 +02:00
Mathias Kresin
c065cb08db uboot-lantiq: VGV7510KW22 - remove NOR SPL leftovers
Missed this one with my last cleanup patch.

Signed-off-by: Mathias Kresin <dev@kresin.me>
2016-05-27 15:50:17 +02:00
Mathias Kresin
b0a202ebdc uboot-lantiq: Add Arcadyan VGV7519 support
Based on a submission to the uboot-lantiq repo by Eddi De Pieri.

Major cleanup and addition of brnboot second stage u-boot was done by
me.

The second stage brnboot u-boot is untested, since the brnboot prompt
is secured by a still unknown password. But should work.

The former ram values are replaced with the ram values extracted from
the original brnboot. The old ones didn't worked with the ramboot
image.

Signed-off-by: Mathias Kresin <dev@kresin.me>
2016-05-27 15:50:17 +02:00
Mathias Kresin
ecf10d3796 uboot-lantiq: vrx200 - lzma compress gphy firmware
The default bootloader partition of some devices is to small for an
u-boot with uncompressed gphy firmware(s).

Instead of increasing the bootloader partition size, in compare to the
stock firmware, compress the firmware. This would allow the bootloader
of at least the FritzBox 3370 as well as the bootloader of the
VGV7510KW22 to fit into the bootloader partition of the stock firmware.

Signed-off-by: Mathias Kresin <dev@kresin.me>
2016-05-27 15:50:17 +02:00
Mathias Kresin
8df4eb0b9b uboot-lantiq: vrx200 - add support for dual nor flash
Based on a submission to the uboot-lantiq repo by Eddi De Pieri.

Devices like the xrx200 Arcadyan VGV7519 are using two NOR flash chips.

Signed-off-by: Mathias Kresin <dev@kresin.me>
2016-05-27 15:50:17 +02:00
Mathias Kresin
e81acacaa3 uboot-lantiq: ARV752DPW - use correct switch driver
There is no RTL8206 switch driver.

Signed-off-by: Mathias Kresin <dev@kresin.me>
2016-05-23 11:03:24 +02:00
Mathias Kresin
a22feb4c78 uboot-lantiq: VGV7510KW22 - use ddr ram params from brnboot
Signed-off-by: Mathias Kresin <dev@kresin.me>
2016-05-23 11:03:24 +02:00
Mathias Kresin
382282eca9 uboot-lantiq: VGV7510KW22 - use leds to indicate boot status
Switch on the red power led if kernel image can't be loaded. Otherwise
switch the green led on.

Signed-off-by: Mathias Kresin <dev@kresin.me>
2016-05-23 11:03:24 +02:00
Mathias Kresin
9e8edcff99 uboot-lantiq: VGV7510KW22 - cleanup board config
According to the author, all SPI related configs are copy & paste
leftovers. Which makes sense since nothing is connected to the SPI bus
on this device.

The NOR SPL isn't required for this board, since the NOR is directly
memory mapped.

Allow to overwrite the env in ram while using brn variant. Do not set
the power GPIO pin twice.

Signed-off-by: Mathias Kresin <dev@kresin.me>
2016-05-23 11:03:24 +02:00
Mathias Kresin
b3795d0c93 uboot-lantiq: reorder and rework patches
use:
  - 00nn for u-boot patches
  - 01nn for new boards

While doing the rework, the board definitions for the easy50712 and
easy80920 were moved to distinct board definitions patches.

Signed-off-by: Mathias Kresin <dev@kresin.me>
2016-05-23 11:03:24 +02:00
Mathias Kresin
74b1687be3 uboot-lantiq: drop unused board patches
None of the boards is supported by lede. No need to keep the patches in
the lede tree.

Signed-off-by: Mathias Kresin <dev@kresin.me>
2016-05-23 11:03:24 +02:00
John Crispin
786717a7ce uboot-lantiq: fix build with gcc5
Signed-off-by: Mathias Kresin <openwrt@kresin.me>

SVN-Revision: 47863
2015-12-11 15:08:34 +00:00
John Crispin
67d890315c uboot-lantiq: Add SoC version 1.2 support for Arcadyan VGV7510KW22
This fixes #20409

Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>

SVN-Revision: 47352
2015-11-02 10:18:24 +00:00
John Crispin
8a843b7b77 uboot-lantiq: Add support for Arcadyan ARV8539PW22 (Speedport W 504V)
uboot-lantiq: Add support for Arcadyan ARV8539PW22 (Speedport W 504V)

Signed-off-by: Jannis Pinter <jannis@pinterjann.is>

SVN-Revision: 46225
2015-07-07 13:45:10 +00:00
John Crispin
bf4dbe05c6 uboot-lantiq: Add Arcadyan VGV7510KW22 support
This is already applied in Daniel's ("upstream") tree and thus will be
part of upcoming version(s).

SVN-Revision: 45898
2015-06-05 14:11:45 +00:00
John Crispin
255a680a99 uboot-lantiq: add a cgu fix for arx100
http://patchwork.ozlabs.org/patch/431024/

Signed-off-by: John Crispin <blogic@openwrt.org>

SVN-Revision: 44086
2015-01-23 12:32:54 +00:00
John Crispin
f76755da3f packages: fix typo in OpenWrt name
Signed-off-by: Cezary Jackiewicz <cezary.jackiewicz@gmail.com>

SVN-Revision: 43542
2014-12-07 16:53:30 +00:00
John Crispin
9cf5fbfaf0 lantiq: re-add 0041-lzma-fixup.patch to uboot
Signed-off-by: John Crispin <blogic@openwrt.org>

SVN-Revision: 41671
2014-07-16 10:43:44 +00:00
John Crispin
07fde034b0 lantiq: Add ARV7510PW22 support
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>

SVN-Revision: 40918
2014-06-02 12:43:31 +00:00
John Crispin
03a777c293 Refresh patches
Refresh uboot-lantiq patches.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>

SVN-Revision: 40546
2014-04-22 08:08:19 +00:00
John Crispin
13010f3adc lantiq: remove uboot lzma patch, apparently its not needed after all
Signed-off-by: John Crispin <blogic@openwrt.org>

SVN-Revision: 40521
2014-04-16 12:11:24 +00:00
John Crispin
69bac3e37e uboot-lantiq: backport lzma fix
Signed-off-by: John Crispin <blogic@openwrt.org>

SVN-Revision: 40520
2014-04-16 12:01:24 +00:00
John Crispin
1246dce0b3 uboot-lantiq: update to v2013.10
Patches created from tree:
git@github.com:danielschwierzeck/u-boot-lantiq.git
v2013.10..u-boot-lantiq-v2013.10-openwrt4

Signed-off-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>

SVN-Revision: 40482
2014-04-12 21:21:14 +00:00
Luka Perkov
2245726371 uboot-lantiq: upgrade to 2013.01
SVN-Revision: 35292
2013-01-22 12:55:01 +00:00