Re: m68k v3.16 status update

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Finn,

Am 20.12.2017 um 12:01 schrieb Finn Thain:
On Tue, 19 Dec 2017, Michael Schmitz wrote:


esp->command_block_dma is mapped at driver init time so we don't get to 
chose at command submission time.

When the command is submitted, ops->send_dma_cmd() can do something like 
this,

static void zorro_esp_send_dma_cmd(struct esp *esp, u32 dma_addr, u32 esp_count,
                                   u32 dma_count, int write, u8 cmd);
{
	if ((dma_addr_t)dma_addr == esp->command_block_dma && esp_count < 4) {
		zorro_esp_send_pio_cmd(esp, (u32)esp->command_block, esp_count,
		                       dma_count, write, cmd);
		return;
	}

	/* do the usual DMA... */
}

This logic completely ignores data transfers (including sense transfers) 
but it is simple and self-contained and should get the job done.

Oddly enough, this does not quite work. Due to my settings in the
adapter probe function (I don't set the ESP_FLAG_DISABLE_SYNC flag), the
ESP core uses 'select with attention and stop' instead of the normal
select with attention command, which attempts to send just a single byte
IDENTIFY message, and defers sending tag bytes to a later separate
message out phase. The PIO routine I lifted from the Mac ESP driver
apparently does not sucessfully send such a short message (or the select
with attention and stop command requires special handshake).

Setting the ESP_FLAG_DISABLE_SYNC avoids triggering this behaviour.

You should be able to reproduce this on Mac by omitting the
ESP_FLAG_DISABLE_SYNC in the PIO case (just for testing - I don't
advocate letting the driver negotiate sync transfers that PIO can't
actually handle).

I think I'll give up on trying to make PIO transfers work in the general
case on Amiga, at least for now. I'll add comments to the Zorro PIO code
warning that this is only meant as a workaround for extended message in
transfer, and will fail on ESP_CMD_SELAS commands.

Cheers,

	Michael

--
To unsubscribe from this list: send the line "unsubscribe linux-m68k" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Video for Linux]     [Yosemite News]     [Linux S/390]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux