diff options
author | Andrey Smirnov <andrew.smirnov@gmail.com> | 2019-09-30 17:35:27 -0700 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2019-10-02 08:38:50 +0200 |
commit | ff6c7c9929eba589f68c83674bccf4d53a7b805d (patch) | |
tree | 0f3ad42436fc9e26afa566bd4e5ab2fecad0b09a /images | |
parent | e9332035f41ee9f7a8b96842a3da00b1f546f9a7 (diff) | |
download | barebox-ff6c7c9929eba589f68c83674bccf4d53a7b805d.tar.gz barebox-ff6c7c9929eba589f68c83674bccf4d53a7b805d.tar.xz |
mci: imx-esdhc-pbl: Fix watermark level value for i.MX
Layerscape and i.MX have different semantics of Watermark Level
Register. Whereas the former uses "0" to signify maximum allowed
value, the latter does not.
According to the RM (i.MX8MQ, i.MX6):
"...The read burst length must be less than or equal to the read
watermark level.."
Setting Watermark Level Register to zero violates that limitation. It
appears that, on i.MX8MQ, not following that rule causes certain
configs + toolchains to result in non-bootable image. Specifically,
polling for CICHB, CIDHB and DLA to clear in esdhc_send_cmd() times
out. There doesn't appear to be any clear relationship as to what kind
of image will have the problem, but the following combinations failed
to boot on ZII i.MX8MQ Zest board:
- gcc version 9.2.1 20190827 (Red Hat Cross 9.2.1-1) (GCC) +
imx_v8_defconfig + CONFIG_DEBUG_LL and CONFIG_PBL_CONSOLE
- gcc version 5.5.0 (Timesys 20190405) (custom toolchain) +
imx_v8_defconfig
Setting WML's *_BRST_LE to 16 and *_WML to 128 on i.MX resolves the
issue (same setting that's selected by writing 0 on Layerscape).
Fixes: 48562aeaa8 ("esdhc-xload: check for PRSSTAT_BREN only after each block")
Cc: Chris Healy <cphealy@gmail.com>
Cc: Ruslan Sushko <ruslan.sushko@zii.aero>
Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
Tested-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'images')
0 files changed, 0 insertions, 0 deletions