Maxim Poliakovski
e94be9acee
scsibus: break long lines, fix indentation.
2024-04-21 23:04:12 +02:00
joevt
a5241d27c1
viacuda: Cleanup.
2024-04-21 06:03:32 -07:00
joevt
4479ecb1bb
viacuda: One exit path for read.
2024-04-21 06:03:17 -07:00
joevt
b454ab45fe
viacuda: Spelling.
2024-04-21 06:02:52 -07:00
joevt
d06d80619e
viacuda: Add 1 Sec Timer, fix Get/Set Real Time.
...
GET_REAL_TIME was using the wrong offset and wasn't setting out_count.
May need to add time zone offset which could be different between host and guest.
get-time and set-time can be tested in Open Firmware.
SET_REAL_TIME is used by the Date/Time Control Panel when you change the date.
It is unknown what method Mac OS uses to get the time at boot. Mac OS 8.6 does not use GET_REAL_TIME during boot, so the time is left as 12:00 AM Jan 1, 1904.
2024-04-21 06:01:40 -07:00
Maxim Poliakovski
781d9b46da
athens: allow setting custom XTAL frequency.
2024-04-15 14:38:46 +02:00
Maxim Poliakovski
ffa221192d
athens: use component's name in logging messages.
2024-04-15 14:21:08 +02:00
Maxim Poliakovski
751f964139
athens: clean up initialization.
2024-04-15 14:21:08 +02:00
joevt
1d75730d44
dbdma: Do interrupt on main thread.
...
These may be triggered by other threads (such as for audio) so use the timer manager to handle them in the main thread.
2024-04-10 19:17:49 -07:00
joevt
95d74a6940
scsihd: Check Lun for INQUIRY.
...
INQUIRY now returns 0x7f for device type if LUN doesn't match. INQUIRY can get LUN from CDB or from IDENTIFY message.
2024-04-10 19:02:01 -07:00
Mihai Parparita
cf4913deb0
bandit: Fix regression in non-Aspen PCI bridge
...
Refactor from e7da98b6bd
accidentally
made the non-Aspen PCI code path for CONFIG_ADDR writes by a no-op.
2024-04-08 15:41:19 -05:00
Maxim Poliakovski
e7da98b6bd
bandit: implement Aspen style PCI bridge.
2024-04-08 00:44:24 +02:00
Maxim Poliakovski
dcdfaabedf
dbdma: skip transfer commands with reqCount=0.
2024-04-07 20:39:24 +02:00
Maxim Poliakovski
19dcb43658
pcibase.h: remove superfluous spaces.
2024-04-07 18:48:52 +02:00
joevt
077e6ebae5
machineid: Don't decode board register address.
...
All addresses return the same value. Converted for Board Register 1 and Board Register 66.
2024-04-03 19:53:03 -07:00
joevt
abe0c14301
scsibus: push_data of zero bytes is ok.
...
It just means the data hasn't been put on the fifo yet.
2024-04-03 19:51:50 -07:00
joevt
61576d4032
sc53c94: Check drq_cb.
2024-04-03 19:35:58 -07:00
joevt
782a8d2c3c
sc53c94: CMD_COMPLETE_STEPS includes INTSTAT_SO.
...
Last step of CMD_COMPLETE_STEPS includes INTSTAT_SO to indicate to CurioSCSIController::fsmCompleting that it returned both a status byte and a message byte in the FIFO.
2024-04-03 19:35:27 -07:00
joevt
e619dd2493
sc53c94: CMD_COMPLETE and XFER_END goes to IDLE.
...
CMD_COMPLETE and XFER_END goes to the IDLE sequence state so that reentry doesn't cause a second interrupt.
2024-04-03 19:35:13 -07:00
joevt
8a1055ed1b
sc53c94: Add DBDMA support.
...
- For pdm/amic, real_dma_xfer is called when SCSI_DMA_Ctrl has the run bit set.
- For tnt/grandcentral, dma_wait is called when the DBDMA is started (run bit is set). It will call real_dma_xfer when the phase and sequence are DATA_IN/RCV_DATA or DATA_OUT/SEND_DATA.
- dma_wait and real_dma_xfer uses a one shot timer instead of a loop to continue doing DMA while also giving time to the CPU. This and the above changes handles the case where the DBDMA is started before setting up the transfer phase and sequence.
- dma_stop will stop the one shot timer when the DBDMA channel is stopped.
2024-04-03 19:19:42 -07:00
joevt
ff766b10eb
sc53c94: Add seq_id to sequence descriptor.
...
The seq_id can be used for logging the current command and step number.
2024-04-03 18:43:46 -07:00
joevt
ceb2276098
sc53c94: Move chip_id to xfer_count.
...
Method for reading chip_id needs verification.
2024-04-03 18:43:40 -07:00
joevt
82f4d05f4b
sc53c94: Set timer_id to zero.
...
If a timer is not in progress then set its timer_id to zero. Also, don't start a newer timer if an existing one is still in progress.
2024-04-03 18:36:53 -07:00
joevt
8a81cb4f9c
sc53c94: Use enums.
2024-04-03 18:12:00 -07:00
joevt
1504bd2227
sc53c94: Move DATA_FIFO_MAX from header.
...
Headers shouldn't make defines that are not meant to be used outside the source file.
2024-04-03 18:11:07 -07:00
dingusdev
55b9f8bbe5
bzero -> memset
2024-04-01 08:03:12 -07:00
joevt
2968645f2e
scsihd: Allow INQUIRY allocation length != 36.
...
Truncate for < 36 and zero fill for > 36.
2024-04-01 08:02:17 -07:00
joevt
92dea0e404
scsihd: Include invalid field info.
...
For CHECK_CONDITION status from READ_CAPACITY_10.
2024-04-01 08:01:09 -07:00
joevt
bfd3077bd0
scsicdrom: Check Lun for INQUIRY.
...
INQUIRY now returns 0x7f for device type if LUN doesn't match. INQUIRY can get LUN from CDB or from IDENTIFY message.
2024-04-01 08:00:41 -07:00
joevt
02a475e113
sc53c94: Remove duplicate bus_obj.
...
sc53c94 is a ScsiDevice which has its own bus_obj which is set by register_device.
2024-03-30 11:56:59 -07:00
joevt
338bbe27a8
scsihd: Implement REQ_SENSE.
...
Returns error information stored in class fields: sense, asc, ascq, sksv, and field.
2024-03-30 11:56:37 -07:00
joevt
44564065f6
scsihd: Changes for MODE_SENSE_6.
...
Return CHECK_CONDITION for unsupported page_ctrl or page or subpage.
Handle the all pages code 0x3F.
2024-03-30 11:56:02 -07:00
dingusdev
c54ec7be2d
Use memset instead of bzero
2024-03-30 11:19:32 -07:00
joevt
274e380b34
scsicdrom: Allow INQUIRY allocation length != 36.
...
Truncate for < 36 and zero fill for > 36.
2024-03-30 11:16:41 -07:00
joevt
e872f08273
scsicdrom: Include invalid field info.
...
For CHECK_CONDITION status from READ_CAPACITY_10 and READ_TOC.
2024-03-30 11:00:01 -07:00
joevt
a6fda3b787
scsicdrom: Handle MODE_SENSE_6 unsupported page.
...
Return CHECK_CONDITION status instead of abort. To Do: apply change to scshhd.
2024-03-30 10:59:43 -07:00
joevt
a48851888f
scsihd: Setup data_ptr for STATUS and MESSAGE_IN.
...
bytes_out is used instead of the removed cur_buf_cnt.
data_ptr is setup by prepare_data instead of process_command.
Not sure why scsicdrom doesn't set bytes_out in prepare_data.
2024-03-30 08:37:10 -07:00
joevt
f1abb66f9a
atahd: Add STANDBY_IMMEDIATE.
2024-03-30 08:30:37 -07:00
joevt
c999c51d77
scsicdrom, scsihd: Check lun.
...
READ_CAPACITY_10, READ_6, and READ_10 now checks LUN that is included in CDB and returns a CHECK_CONDITION if it doesn't match.
2024-03-29 19:12:06 -07:00
joevt
6bb5227ee1
scsihd: Abort if RelAdr bit of READ_10.
...
Like scsicdrom does.
2024-03-29 19:01:42 -07:00
joevt
cefe8698da
scsihd: Add PREVENT_ALLOW_MEDIUM_REMOVAL.
...
Like scsicdrom has.
2024-03-29 19:01:32 -07:00
joevt
4be6bad526
scsicdrom: Fix compiler warning.
2024-03-29 19:00:38 -07:00
joevt
d3c913e384
scsicdrom: Cleanup.
...
- Use macros for reading 2 byte or 4 byte big endian data. block_size is assumed to be < 64K so WRITE_DWORD_BE_A will write two leading zeros.
- Scalar pass by value parameters don't need to be const.
- Remove some unnecessary locals.
2024-03-29 18:53:13 -07:00
joevt
a868f4eee4
scsihd: Cleanup.
...
Use this qualifier.
Use macros for reading 2 byte or 4 byte big endian data.
2024-03-29 18:53:04 -07:00
joevt
44da89979f
scsihd: Use device name in abort message.
2024-03-29 18:52:52 -07:00
joevt
a79f07e4dc
scsicdrom: Move mode_select_6.
...
Make it a separate method like scsihd. It also checks the incoming param size. If it's zero then the phase is not switched. Is that wrong? Still probably unfinished.
2024-03-29 18:52:30 -07:00
joevt
5062508940
scsicdrom: Rename mode_sense_6.
...
To match scsihd.
2024-03-29 07:56:48 -07:00
joevt
9cf91328c1
scsicdrom: Move inquiry info to class fields.
...
Like scsihd.
2024-03-29 07:56:44 -07:00
joevt
6a30ef7017
scsicdrom: Fields inited by parent class.
...
They don't need to be reinitialized.
2024-03-29 07:56:31 -07:00
Maxim Poliakovski
71dabf5334
atahd: break long lines.
2024-03-29 12:46:57 +01:00