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
475f894582
Comment out log message
2024-04-02 19:21:56 -07:00
joevt
7007e002e6
macio: Make interrupt flags atomic.
...
So they can be modified by other threads.
2024-04-02 19:05:57 -07:00
joevt
9af1b1a720
control: Narrow the scope of local variable.
2024-04-01 22:12:20 -07:00
joevt
ca9657baf1
control: Update little-endian error message.
2024-04-01 22:12:05 -07:00
joevt
3e347746f9
control: Don't abort when setting little endian.
...
If this gets set accidentally, (such as while playing in Open Firmware), allow the user to change it back.
2024-04-01 22:11:35 -07:00
joevt
b5987afaa6
control: Implement BAR update.
2024-04-01 22:11:30 -07:00
joevt
ea46d08835
appleramdac: Allow read from CLUT part 2.
2024-04-01 21:47:59 -07:00
joevt
789114cc7d
control: Save CNT_TST and MON_SENSE.
...
These are writable registers that should return what was written to them.
2024-04-01 21:34:26 -07:00
joevt
cf292fafcb
control: vram changes.
...
Allow VRAM presence only in optional bank.
control: Implement banks.
The BAR is 64MB.
The little-endian/big-endian ranges repeat every 16MB.
An endian range can be addressed in d128 (wide) mode or d64 mode.
In d128 mode, there is a 4MB range followed by an undefined 4MB range. bytes 0..7 belong to the standard bank and bytes 8..15 belong to the optional bank.
In d64 mode:
- 2MB mirror ranges at 0MB and 2MB (both have the same read/write behavor: write to both banks or read from the standard bank.
- 2MB standard bank rage at 4MB.
- 2MB optional bank range at 6MB.
2024-04-01 21:17:17 -07:00
joevt
08fca7de69
control: Recalc framebuffer after each change.
2024-04-01 20:58:46 -07:00
joevt
b42437c458
control: Mask unmodifiable bits.
2024-04-01 19:01:03 -07:00
joevt
98e1787f93
machines: Remove duplicate gfxmem_size properties.
2024-04-01 18:28:13 -07:00
joevt
7a0ec0ecd3
README: Grammar.
2024-04-01 18:23:39 -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
2d1616894d
appleramdac: Allow read from CLUT.
2024-04-01 07:39:20 -07:00
joevt
7c203b40c8
appleramdac: Reset comp_index on address change.
2024-04-01 07:37:16 -07:00
joevt
2f63a2fa17
appleramdac: Add other vendor id.
2024-04-01 07:10:55 -07:00
joevt
e3e065a6d7
appleramdac: Register comments.
2024-04-01 06:47:25 -07:00
dingusdev
afd8ba8cf2
Slight adjustment for the readme
2024-03-31 15:09:57 -07:00
dingusdev
43d87b4791
Temp revert for icnt_factor
...
We should, at minimum, make icnt_factor adjustable. That said, powermax is suggesting we develop a more sophisticated scheduler.
2024-03-31 14:13:45 -07:00
joevt
6267685920
ppcexec: Make EXEF_TIMER separate variable.
2024-03-31 12:15:48 -07:00
joevt
48882f3fec
ppcexec: Adjust icnt_factor.
...
So that 1000 ms takes ≈ 1 second in Open Firmware on 4 GHz Intel CPU.
2024-03-31 11:51:04 -07:00
joevt
0ac54ea1ea
ppcexec: Add host time option.
2024-03-31 11:50:55 -07:00
joevt
4395ce01d7
ohare: Update name of Mesh device.
2024-03-30 17:56:19 -07:00
joevt
2c097da12d
grandcentral: Add escc DMA.
2024-03-30 14:55:24 -07:00
joevt
5f316dc7a4
grandcentral: Adjust audio in DMA logging.
2024-03-30 12:49:33 -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