BACKPORT: sb600spi.c: Add support for 0x790b rev 0x61 (AMD Zen)

Adds support for rev 0x59 || 0x61 of did 0x790b.

This is quite confusing however it turns out FCH chipsets
called 'Promontory' contain the so-called SPI100 ip
core that uses memory mapping and not a ring buffer for
transactions. Typically this is found on both Stoney Ridge
and Zen platforms. In light of this, separate out the
promontory path into its own callback struct state tracker
so that it's implementation does not interfere with previous
generations that predate the SPI100 controller.

Since there is some life-time state required to track the mapping
during between the first attempted read and the final tear-down of
the spi master we take the opportunity to avoid static locals and
instead implement the functionality in a re-entrant way for follow
up clean ups.

BUG=b:172290265
BRANCH=none
TEST=Zork  => 'Promontory (rev 0x61) detected.' &&
     Grunt => 'Promontory (rev 0x4b) detected.'

Original-Change-Id: I5ce63b5de863aed0442cb4ffeff981e9b2fa445b
Original-Signed-off-by: Edward O'Callaghan <quasisec@google.com>
Original-Reviewed-on: https://review.coreboot.org/c/flashrom/+/44073
Original-Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Original-Reviewed-by: Sam McNally <sammc@google.com>
(cherry picked from commit 855d6b6f11e220b94c8d10059110f37797933a3e)

Change-Id: I14e9eec9d6616895f05c185910bf52734a2a30af
Signed-off-by: Edward O'Callaghan <quasisec@google.com>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/flashrom/+/2596620
Tested-by: Edward O'Callaghan <quasisec@chromium.org>
Reviewed-by: Sam McNally <sammc@chromium.org>
Commit-Queue: Sam McNally <sammc@chromium.org>
Auto-Submit: Edward O'Callaghan <quasisec@chromium.org>
(cherry picked from commit 999593b936c38429e6b498e7442b69ba6b7869e3)
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/flashrom/+/2596635
Tested-by: Sam McNally <sammc@chromium.org>
1 file changed