summaryrefslogtreecommitdiff
path: root/arch/arm/include/asm/arch-tegra
diff options
context:
space:
mode:
authorDuncan Laurie <dlaurie@chromium.org>2011-11-14 10:31:36 -0800
committerDuncan Laurie <dlaurie@chromium.org>2011-11-14 11:16:13 -0800
commit9b85a281c8a17d7c9e10ec2c899a26dd1c907072 (patch)
treea24e3d1d11426d5f3fd3fb6e17ec30ebcb3c2b3f /arch/arm/include/asm/arch-tegra
parent21f54150d1500cff386f9429735f274d0a066943 (diff)
ICH SPI: Use an atomic preop for Write Enable
The U-boot spi interface uses Software Sequencing and handles write transactions in three distinct steps: 1) issue Write Enable op 2) issue Page Program op 3) poll Read Status Reg for completion However in an Intel 6-series chipset the Management Engine is also issuing a lot of transactions through the same controller to the same chip. It is possible for an ME transaction to occur between the U-boot issuing WREN and sending the actual data, resulting in the host WREN being lost and the data not actually being written to the chip. This change intercepts WREN opcode and instead applies it as a prefix operator for the next issued transaction, ensuring that the two are issued back-to-back to the SPI chip. Unfortunately this register is not writable when the SPI contoller is locked down, so it is not always applicable. BUG=chrome-os-partner:6690 TEST=repeated manual testing on lumpy with boot/suspend/resume Change-Id: I75e353942fd6148a93be561ff422e37dfc6dc8c4 Signed-off-by: Duncan Laurie <dlaurie@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/11625 Reviewed-by: Stefan Reinauer <reinauer@chromium.org>
Diffstat (limited to 'arch/arm/include/asm/arch-tegra')
0 files changed, 0 insertions, 0 deletions