dediprog: implement command spec for firmware >= 7.2.30

This adds support for the latest command spec for Dediprog SF100/SF600
programmers. Since we now have more than two protocols to
deal with the is_new_prot() function is replaced with protocol() which
returns an enum specifying which protocol is supported.

The latest spec (FW >= 7.2.30) updates read and write packets. It's
been tested on an SF600 using firmware 7.2.21 and SF600Plus using FW
7.2.30.

The latest command protocol has a few small but important changes:
- Read packets have two more bytes:
  11: B4Addr: address len (3 or 4)
  12: Dummy cycle /2

- Write packets have four more bytes:
  11, 12: 16 HSBs of page size
  13, 14: 16 LSBs of page size

(The spec seems to be mistaken, though, as 11 and 12 are actually
 LSBs instead of HSBs)

Change-Id: I1a53c143948ec40d40433621891a2871d8815f2f
Signed-off-by: David Hendricks <dhendricks@fb.com>
Reviewed-on: https://review.coreboot.org/23836
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Nico Huber <nico.h@gmx.de>
1 file changed