Merge pull request #6831 from disean/ql1xxx

ql1xxx: Add functionality to emulate QLogic ISP SCSI HBA devices
This commit is contained in:
Miran Grča
2026-02-22 18:51:45 +01:00
committed by GitHub
5 changed files with 4644 additions and 0 deletions

View File

@@ -31,6 +31,43 @@
#define PCI_REG_LATENCY_TIMER 0x0d
#define PCI_REG_HEADER_TYPE 0x0e
#define PCI_REG_BIST 0x0f
#define PCI_REG_BAR0_BYTE0 0x10
#define PCI_REG_BAR0_BYTE1 0x11
#define PCI_REG_BAR0_BYTE2 0x12
#define PCI_REG_BAR0_BYTE3 0x13
#define PCI_REG_BAR1_BYTE0 0x14
#define PCI_REG_BAR1_BYTE1 0x15
#define PCI_REG_BAR1_BYTE2 0x16
#define PCI_REG_BAR1_BYTE3 0x17
#define PCI_REG_BAR2_BYTE0 0x18
#define PCI_REG_BAR2_BYTE1 0x19
#define PCI_REG_BAR2_BYTE2 0x1a
#define PCI_REG_BAR2_BYTE3 0x1b
#define PCI_REG_BAR3_BYTE0 0x1c
#define PCI_REG_BAR3_BYTE1 0x1d
#define PCI_REG_BAR3_BYTE2 0x1e
#define PCI_REG_BAR3_BYTE3 0x1e
#define PCI_REG_BAR4_BYTE0 0x20
#define PCI_REG_BAR4_BYTE1 0x21
#define PCI_REG_BAR4_BYTE2 0x22
#define PCI_REG_BAR4_BYTE3 0x23
#define PCI_REG_BAR5_BYTE0 0x24
#define PCI_REG_BAR5_BYTE1 0x25
#define PCI_REG_BAR5_BYTE2 0x26
#define PCI_REG_BAR5_BYTE3 0x27
#define PCI_REG_SUBVEN_ID_L 0x2c
#define PCI_REG_SUBVEN_ID_H 0x2d
#define PCI_REG_SUBSYS_ID_L 0x2e
#define PCI_REG_SUBSYS_ID_H 0x2f
#define PCI_REG_ROM_BAR_BYTE0 0x30
#define PCI_REG_ROM_BAR_BYTE1 0x31
#define PCI_REG_ROM_BAR_BYTE2 0x32
#define PCI_REG_ROM_BAR_BYTE3 0x33
#define PCI_REG_CAPS_PTR 0x34
#define PCI_REG_INT_LINE 0x3c
#define PCI_REG_INT_PIN 0x3d
#define PCI_REG_MIN_GRANT 0x3e
#define PCI_REG_MAX_LAT 0x3f
#define PCI_COMMAND_L_IO 0x01
#define PCI_COMMAND_L_MEM 0x02

View File

@@ -0,0 +1,19 @@
/*
* 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.
*
* Emulation of QLogic QLA1x40/QLA1x80/QLA1x160 SCSI HBA.
*
* Authors: Dmitry Borisov, <di.sean@protonmail.com>
*
* Copyright 2026 Dmitry Borisov
*/
#pragma once
extern const device_t qla1040b_device;
extern const device_t qla1080_device;
extern const device_t qla1240_device;
extern const device_t qla1280_device;
extern const device_t qla12160a_device;

View File

@@ -28,5 +28,6 @@ add_library(scsi OBJECT
scsi_t128.c
scsi_ncr53c8xx.c
scsi_pcscsi.c
scsi_ql1xxx.c
scsi_spock.c
)

View File

@@ -38,6 +38,7 @@
#include <86box/scsi_ncr5380.h>
#include <86box/scsi_ncr53c8xx.h>
#include <86box/scsi_pcscsi.h>
#include <86box/scsi_qlogic.h>
#include <86box/scsi_spock.h>
int scsi_card_current[SCSI_CARD_MAX] = { 0, 0, 0, 0 };
@@ -91,6 +92,11 @@ static SCSI_CARD scsi_cards[] = {
{ &ncr53c860_pci_device, },
{ &ncr53c875_pci_device, },
{ &dc390_pci_device, },
{ &qla1040b_device, },
{ &qla1080_device, },
{ &qla1240_device, },
{ &qla1280_device, },
{ &qla12160a_device, },
{ NULL, },
// clang-format on
};

4581
src/scsi/scsi_ql1xxx.c Normal file

File diff suppressed because it is too large Load Diff