Implemented the Tekram DC-390 adapter (Am53c974 + 93cxx), mainly for
CD boot-capable PCI SCSI adapter support. Begin the process of revamping/separating the EEPROM used by ATI which is the same as the one as the DC-390 does use.
This commit is contained in:
32
src/include/86box/scsi_pcscsi.h
Normal file
32
src/include/86box/scsi_pcscsi.h
Normal file
@@ -0,0 +1,32 @@
|
||||
/*
|
||||
* 86Box A hypervisor and IBM PC system emulator that specializes in
|
||||
* running old operating systems and software designed for IBM
|
||||
* PC systems and compatibles from 1981 through fairly recent
|
||||
* system designs based on the PCI bus.
|
||||
*
|
||||
* This file is part of the 86Box distribution.
|
||||
*
|
||||
* Implementation of the AMD PCscsi and Tekram DC-390 SCSI
|
||||
* controllers using the NCR 53c9x series of chips.
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
* Authors: Fabrice Bellard (QEMU)
|
||||
* Herve Poussineau (QEMU)
|
||||
* TheCollector1995, <mariogplayer@gmail.com>
|
||||
* Miran Grca, <mgrca8@gmail.com>
|
||||
*
|
||||
* Copyright 2005-2018 Fabrice Bellard.
|
||||
* Copyright 2012-2018 Herve Poussineau.
|
||||
* Copyright 2017,2018 Miran Grca.
|
||||
*/
|
||||
|
||||
#ifndef SCSI_PCSCSI_H
|
||||
# define SCSI_PCSCSI_H
|
||||
|
||||
|
||||
extern const device_t dc390_pci_device;
|
||||
|
||||
|
||||
#endif /*SCSI_BUSLOGIC_H*/
|
@@ -1,6 +1,35 @@
|
||||
/* Copyright holders: Sarah Walker
|
||||
see COPYING for more details
|
||||
*/
|
||||
|
||||
enum
|
||||
{
|
||||
EEPROM_IDLE,
|
||||
EEPROM_WAIT,
|
||||
EEPROM_OPCODE,
|
||||
EEPROM_INPUT,
|
||||
EEPROM_OUTPUT
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
EEPROM_OP_EW = 4,
|
||||
EEPROM_OP_WRITE = 5,
|
||||
EEPROM_OP_READ = 6,
|
||||
EEPROM_OP_ERASE = 7,
|
||||
|
||||
EEPROM_OP_WRALMAIN = -1
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
EEPROM_OP_EWDS = 0,
|
||||
EEPROM_OP_WRAL = 1,
|
||||
EEPROM_OP_ERAL = 2,
|
||||
EEPROM_OP_EWEN = 3
|
||||
};
|
||||
|
||||
|
||||
typedef struct ati_eeprom_t
|
||||
{
|
||||
uint16_t data[256];
|
||||
@@ -10,6 +39,7 @@ typedef struct ati_eeprom_t
|
||||
int wp;
|
||||
uint32_t dat;
|
||||
int type;
|
||||
int address;
|
||||
|
||||
wchar_t fn[256];
|
||||
} ati_eeprom_t;
|
||||
|
@@ -38,6 +38,7 @@
|
||||
#include <86box/scsi_buslogic.h>
|
||||
#include <86box/scsi_ncr5380.h>
|
||||
#include <86box/scsi_ncr53c8xx.h>
|
||||
#include <86box/scsi_pcscsi.h>
|
||||
#include <86box/scsi_spock.h>
|
||||
#ifdef WALTJE
|
||||
# include "scsi_wd33c93.h"
|
||||
@@ -79,6 +80,7 @@ static SCSI_CARD scsi_cards[] = {
|
||||
{ "[PCI] NCR 53C825A", "ncr53c825a", &ncr53c825a_pci_device, },
|
||||
{ "[PCI] NCR 53C860", "ncr53c860", &ncr53c860_pci_device, },
|
||||
{ "[PCI] NCR 53C875", "ncr53c875", &ncr53c875_pci_device, },
|
||||
{ "[PCI] Tekram DC-390", "dc390", &dc390_pci_device, },
|
||||
{ "[VLB] BusLogic BT-445S", "bt445s", &buslogic_445s_device, },
|
||||
{ "", "", NULL, },
|
||||
};
|
||||
|
1484
src/scsi/scsi_pcscsi.c
Normal file
1484
src/scsi/scsi_pcscsi.c
Normal file
File diff suppressed because it is too large
Load Diff
@@ -28,33 +28,6 @@
|
||||
#include <86box/vid_ati_eeprom.h>
|
||||
|
||||
|
||||
enum
|
||||
{
|
||||
EEPROM_IDLE,
|
||||
EEPROM_WAIT,
|
||||
EEPROM_OPCODE,
|
||||
EEPROM_INPUT,
|
||||
EEPROM_OUTPUT
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
EEPROM_OP_EW = 4,
|
||||
EEPROM_OP_WRITE = 5,
|
||||
EEPROM_OP_READ = 6,
|
||||
EEPROM_OP_ERASE = 7,
|
||||
|
||||
EEPROM_OP_WRALMAIN = -1
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
EEPROM_OP_EWDS = 0,
|
||||
EEPROM_OP_WRAL = 1,
|
||||
EEPROM_OP_ERAL = 2,
|
||||
EEPROM_OP_EWEN = 3
|
||||
};
|
||||
|
||||
void ati_eeprom_load(ati_eeprom_t *eeprom, wchar_t *fn, int type)
|
||||
{
|
||||
FILE *f;
|
||||
|
@@ -697,7 +697,7 @@ SCSIOBJ := scsi.o scsi_device.o \
|
||||
scsi_x54x.o \
|
||||
scsi_aha154x.o scsi_buslogic.o \
|
||||
scsi_ncr5380.o scsi_ncr53c8xx.o \
|
||||
scsi_spock.o
|
||||
scsi_pcscsi.o scsi_spock.o
|
||||
|
||||
NETOBJ := network.o \
|
||||
net_pcap.o \
|
||||
|
Reference in New Issue
Block a user