NetBSD compatibility: Increase daynaport minimum packet size to 128 bytes (#1334) (#1335)

* NetBSD compatibility: Increase daynaport minimum packet size to 128 bytes
This commit is contained in:
Uwe Seimet 2023-11-14 16:13:14 +01:00 committed by Daniel Markstedt
parent 31be1b3e8f
commit d1936e9f53
2 changed files with 11 additions and 7 deletions

View File

@ -6,6 +6,7 @@
// Copyright (C) 2020 akuker // Copyright (C) 2020 akuker
// Copyright (C) 2014-2020 GIMONS // Copyright (C) 2014-2020 GIMONS
// Copyright (C) 2001-2006 (ytanaka@ipc-tokai.or.jp) // Copyright (C) 2001-2006 (ytanaka@ipc-tokai.or.jp)
// Copyright (C) 2023 Uwe Seimet
// //
// Licensed under the BSD 3-Clause License. // Licensed under the BSD 3-Clause License.
// See LICENSE file in the project root folder. // See LICENSE file in the project root folder.
@ -212,13 +213,15 @@ int SCSIDaynaPort::Read(cdb_t cdb, vector<uint8_t>& buf, uint64_t)
// response->flags = e_no_more_data; // response->flags = e_no_more_data;
// } // }
int size = rx_packet_size; int size = rx_packet_size;
if (size < 64) { if (size < 128) {
// A frame must have at least 64 bytes (see https://github.com/PiSCSI/piscsi/issues/619) // A frame must have at least 64 bytes for the Atari driver, see https://github.com/PiSCSI/piscsi/issues/619,
// Note that this work-around breaks the checksum. As currently there are no known drivers // but also works with 128 bytes.
// that care for the checksum, and the Daynaport driver for the Atari expects frames of // The NetBSD driver requires at least 128 bytes, see https://github.com/PiSCSI/piscsi/issues/1098.
// 64 bytes it was decided to accept the broken checksum. If a driver should pop up that // The Mac driver is also fine with 128 bytes.
// breaks because of this, the work-around has to be re-evaluated. // Note that this work-around breaks the checksum. As currently there are no known drivers
size = 64; // that care for the checksum it was decided to accept the broken checksum.
// If a driver should pop up that breaks because of this, the work-around has to be re-evaluated.
size = 128;
} }
SetInt16(buf, 0, size); SetInt16(buf, 0, size);
SetInt32(buf, 2, tap.HasPendingPackets() ? 0x10 : 0x00); SetInt32(buf, 2, tap.HasPendingPackets() ? 0x10 : 0x00);

View File

@ -6,6 +6,7 @@
// Copyright (C) 2020 akuker // Copyright (C) 2020 akuker
// Copyright (C) 2014-2020 GIMONS // Copyright (C) 2014-2020 GIMONS
// Copyright (C) 2001-2006 (ytanaka@ipc-tokai.or.jp) // Copyright (C) 2001-2006 (ytanaka@ipc-tokai.or.jp)
// Copyright (C) 2023 Uwe Seimet
// //
// Licensed under the BSD 3-Clause License. // Licensed under the BSD 3-Clause License.
// See LICENSE file in the project root folder. // See LICENSE file in the project root folder.