scsilsi: Introduce new programmer driver for LSI SCSI adapters

Supports up to 1MiB parallel flash, but needs external address buffers
and is usually set up for less.

Datasheet used:
https://theretroweb.com/chip/documentation/lsi53c875-data-sheet-4-1-66a3b3913650d154581810.pdf

Change-Id: I23291ae7c98ddd5cab48f96aa5e6a69788796d9b
Signed-off-by: Nico Huber <nico.h@gmx.de>
Reviewed-on: https://review.sourcearcade.org/c/flashprog/+/529
Reviewed-by: Arthur Heymans <arthur@aheymans.xyz>
diff --git a/Makefile b/Makefile
index b0f6cbf..ac73011 100644
--- a/Makefile
+++ b/Makefile
@@ -122,6 +122,7 @@
 	CONFIG_OGP_SPI \
 	CONFIG_SATAMV \
 	CONFIG_SATASII \
+	CONFIG_SCSILSI \
 
 DEPENDS_ON_X86_MSR := \
 	CONFIG_INTERNAL_X86 \
@@ -153,6 +154,7 @@
 	CONFIG_OGP_SPI \
 	CONFIG_SATAMV \
 	CONFIG_SATASII \
+	CONFIG_SCSILSI \
 
 DEPENDS_ON_LIBUSB1 := \
 	CONFIG_CH341A_SPI \
@@ -439,6 +441,9 @@
 # Always enable SiI SATA controllers for now.
 CONFIG_SATASII ?= yes
 
+# Enable LSI SCSI controllers.
+CONFIG_SCSILSI ?= yes
+
 # Highpoint (HPT) ATA/RAID controller support.
 # IMPORTANT: This code is not yet working!
 CONFIG_ATAHPT ?= no
@@ -652,6 +657,11 @@
 PROGRAMMER_OBJS += satasii.o
 endif
 
+ifeq ($(CONFIG_SCSILSI), yes)
+FEATURE_FLAGS += -D'CONFIG_SCSILSI=1'
+PROGRAMMER_OBJS += scsilsi.o
+endif
+
 ifeq ($(CONFIG_ATAHPT), yes)
 FEATURE_FLAGS += -D'CONFIG_ATAHPT=1'
 PROGRAMMER_OBJS += atahpt.o