Added the NCR 53c815 and 53c820, and made sure the 53c810 and the 53c820 do not have the BIOS option as real ones do not have a BIOS BAR, while the 53c815 and 53c825 do (they are basically 53c810 and 53c820, respectively, with own BIOS support);

Roughly implemented the SCSI IDENTIFY message LUN operation, fixes some SCSI controller drivers in some situations;
Added an undocumented CMD640 IDE controller register required by Linux and by a DOS driver.
This commit is contained in:
OBattler
2021-03-23 06:32:18 +01:00
parent cc3129dc3c
commit bd792b8e7a
18 changed files with 107 additions and 54 deletions

View File

@@ -24,6 +24,8 @@
#define SCSI_ID_MAX 16 /* 16 on wide buses */
#define SCSI_LUN_MAX 8 /* always 8 */
#define SCSI_LUN_USE_CDB 0xff
#ifdef WALTJE
#define SCSI_TIME 50.0
#else
@@ -320,7 +322,7 @@ typedef struct scsi_common_s {
uint8_t status, phase,
error, id,
features, pad,
features, cur_lun,
pad0, pad1;
uint16_t request_length, max_transfer_len;
@@ -378,6 +380,7 @@ extern int scsi_device_cdb_length(scsi_device_t *dev);
extern void scsi_device_command_phase0(scsi_device_t *dev, uint8_t *cdb);
extern void scsi_device_command_phase1(scsi_device_t *dev);
extern void scsi_device_command_stop(scsi_device_t *dev);
extern void scsi_device_identify(scsi_device_t *dev, uint8_t lun);
extern void scsi_device_close_all(void);
extern void scsi_device_init(void);