summaryrefslogtreecommitdiff
path: root/doc/device-tree-bindings/reset
diff options
context:
space:
mode:
authorLukasz Majewski <lukma@denx.de>2017-09-25 12:40:08 +0200
committerJagan Teki <jagan@amarulasolutions.com>2017-09-27 13:31:59 +0530
commitca1ac16da097bf0ab176b1a201653553160dc042 (patch)
treec819864b075d70eb0186940aee7b96572f5fa9e0 /doc/device-tree-bindings/reset
parentba09440131a707c4fabf2875b14521bcf2b86938 (diff)
sf: bar: Clean BA24 Bank Address Register bit after read/write/erase operation
The content of Bank Address Register (BAR) is volatile. It is cleared after power cycle or reset command (RESET F0h). Some memories (like e.g. s25fl256s) use it to access memory larger than 0x1000000 (16 MiB). The problem shows up when one: 1. Reads/writes/erases memory > 16 MiB 2. Calls "reset" u-boot command (which is not causing BAR to be cleared) In the above scenario, the SoC ROM sends 0x000000 address to read SPL. Unfortunately, the BA24 bit is still set and hence it receives content from 0x1000000 (16 MiB) memory address. As a result the SoC aborts and we hang. Only power cycle can take the SoC out of this state. How to reproduce/test: sf probe; sf erase 0x1200000 0x800000; reset sf probe; sf erase 0x1200000 0x800000; sf write 0x11000000 0x1200000 0x800000; reset sf probe; sf read 0x11000000 0x1200000 0x800000; reset Signed-off-by: Lukasz Majewski <lukma@denx.de> [Fixed comment text on clean_bar function] Signed-off-by: Jagan Teki <jagan@openedev.com> Reviewed-by: Jagan Teki <jagan@openedev.com>
Diffstat (limited to 'doc/device-tree-bindings/reset')
0 files changed, 0 insertions, 0 deletions