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:
TC1995
2020-09-02 17:50:24 +02:00
parent 156d265fa5
commit 87ea210ee1
6 changed files with 1549 additions and 28 deletions

View 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*/

View File

@@ -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;

View File

@@ -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

File diff suppressed because it is too large Load Diff

View File

@@ -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;

View File

@@ -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 \