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
|
/* Copyright holders: Sarah Walker
|
||||||
see COPYING for more details
|
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
|
typedef struct ati_eeprom_t
|
||||||
{
|
{
|
||||||
uint16_t data[256];
|
uint16_t data[256];
|
||||||
@@ -10,6 +39,7 @@ typedef struct ati_eeprom_t
|
|||||||
int wp;
|
int wp;
|
||||||
uint32_t dat;
|
uint32_t dat;
|
||||||
int type;
|
int type;
|
||||||
|
int address;
|
||||||
|
|
||||||
wchar_t fn[256];
|
wchar_t fn[256];
|
||||||
} ati_eeprom_t;
|
} ati_eeprom_t;
|
||||||
|
@@ -38,6 +38,7 @@
|
|||||||
#include <86box/scsi_buslogic.h>
|
#include <86box/scsi_buslogic.h>
|
||||||
#include <86box/scsi_ncr5380.h>
|
#include <86box/scsi_ncr5380.h>
|
||||||
#include <86box/scsi_ncr53c8xx.h>
|
#include <86box/scsi_ncr53c8xx.h>
|
||||||
|
#include <86box/scsi_pcscsi.h>
|
||||||
#include <86box/scsi_spock.h>
|
#include <86box/scsi_spock.h>
|
||||||
#ifdef WALTJE
|
#ifdef WALTJE
|
||||||
# include "scsi_wd33c93.h"
|
# include "scsi_wd33c93.h"
|
||||||
@@ -79,6 +80,7 @@ static SCSI_CARD scsi_cards[] = {
|
|||||||
{ "[PCI] NCR 53C825A", "ncr53c825a", &ncr53c825a_pci_device, },
|
{ "[PCI] NCR 53C825A", "ncr53c825a", &ncr53c825a_pci_device, },
|
||||||
{ "[PCI] NCR 53C860", "ncr53c860", &ncr53c860_pci_device, },
|
{ "[PCI] NCR 53C860", "ncr53c860", &ncr53c860_pci_device, },
|
||||||
{ "[PCI] NCR 53C875", "ncr53c875", &ncr53c875_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, },
|
{ "[VLB] BusLogic BT-445S", "bt445s", &buslogic_445s_device, },
|
||||||
{ "", "", NULL, },
|
{ "", "", 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>
|
#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)
|
void ati_eeprom_load(ati_eeprom_t *eeprom, wchar_t *fn, int type)
|
||||||
{
|
{
|
||||||
FILE *f;
|
FILE *f;
|
||||||
|
@@ -697,7 +697,7 @@ SCSIOBJ := scsi.o scsi_device.o \
|
|||||||
scsi_x54x.o \
|
scsi_x54x.o \
|
||||||
scsi_aha154x.o scsi_buslogic.o \
|
scsi_aha154x.o scsi_buslogic.o \
|
||||||
scsi_ncr5380.o scsi_ncr53c8xx.o \
|
scsi_ncr5380.o scsi_ncr53c8xx.o \
|
||||||
scsi_spock.o
|
scsi_pcscsi.o scsi_spock.o
|
||||||
|
|
||||||
NETOBJ := network.o \
|
NETOBJ := network.o \
|
||||||
net_pcap.o \
|
net_pcap.o \
|
||||||
|
Reference in New Issue
Block a user