aboutsummaryrefslogtreecommitdiffstats
path: root/package/firmware/cypress-nvram
diff options
context:
space:
mode:
authorMathias Kresin <dev@kresin.me>2021-11-05 10:41:26 +0100
committerMathias Kresin <dev@kresin.me>2021-11-14 20:24:45 +0100
commitc744798cad6a13436f2ba9dd3a280cb16d315c85 (patch)
tree480da6d1d0e9b87385f40e2582c8f43a2f8fd6ab /package/firmware/cypress-nvram
parent4b0f87729c2e3c0571663e6f882fe726fef99f74 (diff)
downloadupstream-c744798cad6a13436f2ba9dd3a280cb16d315c85.tar.gz
upstream-c744798cad6a13436f2ba9dd3a280cb16d315c85.tar.bz2
upstream-c744798cad6a13436f2ba9dd3a280cb16d315c85.zip
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>
Diffstat (limited to 'package/firmware/cypress-nvram')
0 files changed, 0 insertions, 0 deletions