mirror of
https://github.com/MiSTer-devel/MacPlus_MiSTer.git
synced 2024-06-06 19:29:37 +00:00
Remove secondary HDD support (buggy).
This commit is contained in:
parent
ff4837d9e2
commit
bc370736d3
17
MacPlus.sv
17
MacPlus.sv
|
@ -144,8 +144,7 @@ localparam CONF_STR = {
|
||||||
"F1,DSK,Mount Pri Floppy;",
|
"F1,DSK,Mount Pri Floppy;",
|
||||||
"F2,DSK,Mount Sec Floppy;",
|
"F2,DSK,Mount Sec Floppy;",
|
||||||
"-;",
|
"-;",
|
||||||
"S0,VHD,Mount HDD-0(#2);",
|
"S0,VHD,Mount HDD;",
|
||||||
"S1,VHD,Mount HDD-1(#6);",
|
|
||||||
"-;",
|
"-;",
|
||||||
"O8,Aspect ratio,4:3,16:9;",
|
"O8,Aspect ratio,4:3,16:9;",
|
||||||
"O9A,Memory,512KB,1MB,4MB;",
|
"O9A,Memory,512KB,1MB,4MB;",
|
||||||
|
@ -218,11 +217,9 @@ wire [1:0] diskMotor, diskAct, diskEject;
|
||||||
// the status register is controlled by the on screen display (OSD)
|
// the status register is controlled by the on screen display (OSD)
|
||||||
wire [31:0] status;
|
wire [31:0] status;
|
||||||
wire [1:0] buttons;
|
wire [1:0] buttons;
|
||||||
wire [1:0] img_mounted;
|
|
||||||
wire [15:0] sd_req_type;
|
|
||||||
wire [31:0] sd_lba;
|
wire [31:0] sd_lba;
|
||||||
wire [1:0] sd_rd;
|
wire sd_rd;
|
||||||
wire [1:0] sd_wr;
|
wire sd_wr;
|
||||||
wire sd_ack;
|
wire sd_ack;
|
||||||
wire [8:0] sd_buff_addr;
|
wire [8:0] sd_buff_addr;
|
||||||
wire [7:0] sd_buff_dout;
|
wire [7:0] sd_buff_dout;
|
||||||
|
@ -253,7 +250,7 @@ always @(posedge clk_sys) begin
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
hps_io #(.STRLEN($size(CONF_STR)>>3), .VDNUM(2)) hps_io
|
hps_io #(.STRLEN($size(CONF_STR)>>3)) hps_io
|
||||||
(
|
(
|
||||||
.clk_sys(clk_sys),
|
.clk_sys(clk_sys),
|
||||||
.HPS_BUS(HPS_BUS),
|
.HPS_BUS(HPS_BUS),
|
||||||
|
@ -263,9 +260,6 @@ hps_io #(.STRLEN($size(CONF_STR)>>3), .VDNUM(2)) hps_io
|
||||||
.buttons(buttons),
|
.buttons(buttons),
|
||||||
.status(status),
|
.status(status),
|
||||||
|
|
||||||
.img_mounted(img_mounted),
|
|
||||||
|
|
||||||
.sd_req_type(sd_req_type),
|
|
||||||
.sd_lba(sd_lba),
|
.sd_lba(sd_lba),
|
||||||
.sd_rd(sd_rd),
|
.sd_rd(sd_rd),
|
||||||
.sd_wr(sd_wr),
|
.sd_wr(sd_wr),
|
||||||
|
@ -471,11 +465,8 @@ dataController_top dc0
|
||||||
|
|
||||||
.diskMotor(diskMotor),
|
.diskMotor(diskMotor),
|
||||||
.diskAct(diskAct),
|
.diskAct(diskAct),
|
||||||
|
|
||||||
.img_mounted(img_mounted),
|
|
||||||
|
|
||||||
// block device interface for scsi disk
|
// block device interface for scsi disk
|
||||||
.io_req_type(sd_req_type),
|
|
||||||
.io_lba(sd_lba),
|
.io_lba(sd_lba),
|
||||||
.io_rd(sd_rd),
|
.io_rd(sd_rd),
|
||||||
.io_wr(sd_wr),
|
.io_wr(sd_wr),
|
||||||
|
|
|
@ -67,13 +67,10 @@ module dataController_top(
|
||||||
input dskReadAckExt,
|
input dskReadAckExt,
|
||||||
|
|
||||||
// connections to io controller
|
// connections to io controller
|
||||||
input [1:0] img_mounted,
|
output [31:0] io_lba,
|
||||||
|
output io_rd,
|
||||||
output [15:0] io_req_type,
|
output io_wr,
|
||||||
output [31:0] io_lba,
|
input io_ack,
|
||||||
output [1:0] io_rd,
|
|
||||||
output [1:0] io_wr,
|
|
||||||
input io_ack,
|
|
||||||
|
|
||||||
input [8:0] sd_buff_addr,
|
input [8:0] sd_buff_addr,
|
||||||
input [7:0] sd_buff_dout,
|
input [7:0] sd_buff_dout,
|
||||||
|
@ -164,9 +161,6 @@ ncr5380 scsi
|
||||||
.rdata(scsiDataOut),
|
.rdata(scsiDataOut),
|
||||||
|
|
||||||
// connections to io controller
|
// connections to io controller
|
||||||
.img_mounted( img_mounted ),
|
|
||||||
|
|
||||||
.io_req_type( io_req_type ),
|
|
||||||
.io_lba ( io_lba ),
|
.io_lba ( io_lba ),
|
||||||
.io_rd ( io_rd ),
|
.io_rd ( io_rd ),
|
||||||
.io_wr ( io_wr ),
|
.io_wr ( io_wr ),
|
||||||
|
|
|
@ -62,12 +62,9 @@ module ncr5380
|
||||||
|
|
||||||
|
|
||||||
// connections to io controller
|
// connections to io controller
|
||||||
input [1:0] img_mounted,
|
|
||||||
|
|
||||||
output [15:0] io_req_type,
|
|
||||||
output [31:0] io_lba,
|
output [31:0] io_lba,
|
||||||
output [1:0] io_rd,
|
output io_rd,
|
||||||
output [1:0] io_wr,
|
output io_wr,
|
||||||
input io_ack,
|
input io_ack,
|
||||||
|
|
||||||
input [8:0] sd_buff_addr,
|
input [8:0] sd_buff_addr,
|
||||||
|
@ -240,7 +237,6 @@ module ncr5380
|
||||||
wire scsi_bsy =
|
wire scsi_bsy =
|
||||||
icr[`ICR_A_BSY] |
|
icr[`ICR_A_BSY] |
|
||||||
scsi2_bsy |
|
scsi2_bsy |
|
||||||
scsi6_bsy |
|
|
||||||
mr[`MR_ARB];
|
mr[`MR_ARB];
|
||||||
|
|
||||||
/* Remains of simplified arbitration logic */
|
/* Remains of simplified arbitration logic */
|
||||||
|
@ -257,28 +253,17 @@ module ncr5380
|
||||||
wire scsi_atn = icr[`ICR_A_ATN];
|
wire scsi_atn = icr[`ICR_A_ATN];
|
||||||
|
|
||||||
/* Other trivial lines set by target */
|
/* Other trivial lines set by target */
|
||||||
wire scsi_cd = (scsi2_bsy) ? scsi2_cd : scsi6_cd;
|
wire scsi_cd = scsi2_cd;
|
||||||
wire scsi_io = (scsi2_bsy) ? scsi2_io : scsi6_io;
|
wire scsi_io = scsi2_io;
|
||||||
wire scsi_msg = (scsi2_bsy) ? scsi2_msg : scsi6_msg;
|
wire scsi_msg = scsi2_msg;
|
||||||
wire scsi_req = (scsi2_bsy) ? scsi2_req : scsi6_req;
|
wire scsi_req = scsi2_req;
|
||||||
|
|
||||||
assign din = scsi2_bsy ? scsi2_dout :
|
assign din = scsi2_bsy?scsi2_dout:8'h55;
|
||||||
scsi6_bsy ? scsi6_dout :
|
|
||||||
8'h55;
|
|
||||||
|
|
||||||
assign io_lba = (scsi2_bsy) ? io_lba_2 : io_lba_6;
|
|
||||||
assign sd_buff_din = (scsi2_bsy) ? sd_buff_din_2 : sd_buff_din_6;
|
|
||||||
assign io_req_type = 16'h0000; // Not used atm. Could be used for CD-ROM sector requests later. ElectronAsh.
|
|
||||||
|
|
||||||
|
|
||||||
// input signals from target 2
|
// input signals from target 2
|
||||||
wire scsi2_bsy, scsi2_msg, scsi2_io, scsi2_cd, scsi2_req;
|
wire scsi2_bsy, scsi2_msg, scsi2_io, scsi2_cd, scsi2_req;
|
||||||
wire [7:0] scsi2_dout;
|
wire [7:0] scsi2_dout;
|
||||||
|
|
||||||
wire [31:0] io_lba_2;
|
|
||||||
wire [7:0] sd_buff_din_2;
|
|
||||||
|
|
||||||
|
|
||||||
// connect a target
|
// connect a target
|
||||||
scsi #(.ID(2)) scsi2
|
scsi #(.ID(2)) scsi2
|
||||||
(
|
(
|
||||||
|
@ -286,68 +271,26 @@ module ncr5380
|
||||||
.rst ( scsi_rst ),
|
.rst ( scsi_rst ),
|
||||||
.sel ( scsi_sel ),
|
.sel ( scsi_sel ),
|
||||||
.atn ( scsi_atn ),
|
.atn ( scsi_atn ),
|
||||||
|
|
||||||
.ack ( scsi_ack ),
|
|
||||||
|
|
||||||
.bsy ( scsi2_bsy ),
|
.bsy ( scsi2_bsy ),
|
||||||
.msg ( scsi2_msg ),
|
.msg ( scsi2_msg ),
|
||||||
.cd ( scsi2_cd ),
|
.cd ( scsi2_cd ),
|
||||||
.io ( scsi2_io ),
|
.io ( scsi2_io ),
|
||||||
.req ( scsi2_req ),
|
.req ( scsi2_req ),
|
||||||
|
.ack ( scsi_ack ),
|
||||||
.dout ( scsi2_dout ),
|
.dout ( scsi2_dout ),
|
||||||
|
|
||||||
.din ( dout ),
|
.din ( dout ),
|
||||||
|
|
||||||
// connection to io controller to read and write sectors
|
// connection to io controller to read and write sectors
|
||||||
// to sd card
|
// to sd card
|
||||||
.io_lba ( io_lba_2 ),
|
.io_lba ( io_lba ),
|
||||||
.io_rd ( io_rd[0] ),
|
.io_rd ( io_rd ),
|
||||||
.io_wr ( io_wr[0] ),
|
.io_wr ( io_wr ),
|
||||||
.io_ack ( io_ack & scsi2_bsy ),
|
.io_ack ( io_ack ),
|
||||||
|
|
||||||
.sd_buff_addr( sd_buff_addr ),
|
.sd_buff_addr(sd_buff_addr),
|
||||||
.sd_buff_dout( sd_buff_dout ),
|
.sd_buff_dout(sd_buff_dout),
|
||||||
.sd_buff_din( sd_buff_din_2 ),
|
.sd_buff_din(sd_buff_din),
|
||||||
.sd_buff_wr( sd_buff_wr & scsi2_bsy )
|
.sd_buff_wr(sd_buff_wr)
|
||||||
);
|
|
||||||
|
|
||||||
|
|
||||||
// input signals from target 6
|
|
||||||
wire scsi6_bsy, scsi6_msg, scsi6_io, scsi6_cd, scsi6_req;
|
|
||||||
wire [7:0] scsi6_dout;
|
|
||||||
|
|
||||||
wire [31:0] io_lba_6;
|
|
||||||
wire [7:0] sd_buff_din_6;
|
|
||||||
|
|
||||||
scsi #(.ID(6)) scsi6
|
|
||||||
(
|
|
||||||
.clk ( clk ) , // input clk
|
|
||||||
.rst ( scsi_rst ) , // input rst
|
|
||||||
.sel ( scsi_sel ) , // input sel
|
|
||||||
.atn ( scsi_atn ) , // input atn
|
|
||||||
|
|
||||||
.ack ( scsi_ack ) , // input ack
|
|
||||||
|
|
||||||
.bsy ( scsi6_bsy ) , // output bsy
|
|
||||||
.msg ( scsi6_msg ) , // output msg
|
|
||||||
.cd ( scsi6_cd ) , // output cd
|
|
||||||
.io ( scsi6_io ) , // output io
|
|
||||||
.req ( scsi6_req ) , // output req
|
|
||||||
.dout ( scsi6_dout ) , // output [7:0] dout
|
|
||||||
|
|
||||||
.din ( dout ) , // input [7:0] din
|
|
||||||
|
|
||||||
// connection to io controller to read and write sectors
|
|
||||||
// to sd card
|
|
||||||
.io_lba ( io_lba_6 ) , // output [31:0] io_lba
|
|
||||||
.io_rd ( io_rd[1] ) , // output io_rd
|
|
||||||
.io_wr ( io_wr[1] ) , // output io_wr
|
|
||||||
.io_ack ( io_ack & scsi6_bsy ) , // input io_ack
|
|
||||||
|
|
||||||
.sd_buff_addr( sd_buff_addr ) , // input [8:0] sd_buff_addr
|
|
||||||
.sd_buff_dout( sd_buff_dout ) , // input [7:0] sd_buff_dout
|
|
||||||
.sd_buff_din( sd_buff_din_6 ) , // output [7:0] sd_buff_din
|
|
||||||
.sd_buff_wr( sd_buff_wr & scsi6_bsy ) // input sd_buff_wr
|
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -38,7 +38,7 @@ module scsi
|
||||||
|
|
||||||
|
|
||||||
// SCSI device id
|
// SCSI device id
|
||||||
parameter [7:0] ID = 0;
|
parameter ID = 0;
|
||||||
|
|
||||||
`define PHASE_IDLE 3'd0
|
`define PHASE_IDLE 3'd0
|
||||||
`define PHASE_CMD_IN 3'd1
|
`define PHASE_CMD_IN 3'd1
|
||||||
|
@ -104,12 +104,11 @@ wire [7:0] inquiry_dout =
|
||||||
|
|
||||||
(data_cnt == 32'd26)?"S":(data_cnt == 32'd27)?"T":
|
(data_cnt == 32'd26)?"S":(data_cnt == 32'd27)?"T":
|
||||||
(data_cnt == 32'd28)?"2":(data_cnt == 32'd29)?"2":
|
(data_cnt == 32'd28)?"2":(data_cnt == 32'd29)?"2":
|
||||||
(data_cnt == 32'd30)?"5":(data_cnt == 32'd31)?"N" + ID: // TESTING. ElectronAsh.
|
(data_cnt == 32'd30)?"5":(data_cnt == 32'd31)?"N":
|
||||||
8'h00;
|
8'h00;
|
||||||
|
|
||||||
// output of read capacity command
|
// output of read capacity command
|
||||||
//wire [31:0] capacity = 32'd41056; // 40960 + 96 blocks = 20MB
|
wire [31:0] capacity = 32'd41056; // 40960 + 96 blocks = 20MB
|
||||||
wire [31:0] capacity = 32'd1024096; // 1024000 + 96 blocks = 500MB
|
|
||||||
wire [31:0] capacity_m1 = capacity - 32'd1;
|
wire [31:0] capacity_m1 = capacity - 32'd1;
|
||||||
wire [7:0] read_capacity_dout =
|
wire [7:0] read_capacity_dout =
|
||||||
(data_cnt == 32'd0 )?capacity_m1[31:24]:
|
(data_cnt == 32'd0 )?capacity_m1[31:24]:
|
||||||
|
|
Loading…
Reference in New Issue
Block a user