Emergency fix
This release fixes a critical NCR SCRIPTS alignment regression on the A4092 that was
introduced in v42.38 that could prevent the driver from detecting any SCSI disks.
Users off the A4092 with v42.38 should upgrade to v42.39 immediately. Release v42.37 was
not affected by this regression.
NOTE: This release contained only half the fix, and so the problem shifted from A4092 to A4091,
so for the A4091 please use 42.38 until 42.40 is out.
Driver fix
- Explicitly align generated NCR SCRIPTS arrays to a 4-byte boundary, as
required by the SCSI controller. - Prevent release builds from placing the SCRIPTS program on a 2-byte
boundary, which caused disk detection to fail.
This release contains all changes from v42.38 together with the alignment
fix:
Highlights
- Improves driver stability by fixing nested interrupt-disable handling,
releasing interrupt protection on SCSI polling timeouts, and correcting
an out-of-bounds DMA test buffer. - Loads ROM and Kickstart filesystems only when matching media needs them,
keyed by DosType. - Adds TinySetPatch to the utilities disk and replaces its shell-heavy
startup banner with a faster native helper. - Updates the bundled ODFileSystem to v0.7.0 and devtest to v1.9.
Driver and hardware fixes
- Balance every nested
Disable()withEnable()in the SPL wrappers.
This prevents interrupt nesting from leaking until interrupts remain
masked and the machine stops. - Release the SPL before resetting the SCSI chip when either polling path
times out. - Fix the
ncr7xxDMA test's source-buffer arithmetic, which could write
several kilobytes beyond its allocation and corrupt memory. - Run the A4770's 53C770 at a safe 80 MHz SCSI clock, limit DMA bursts to
eight transfers, and apply the configured cache-line and snoop settings
after reset. - Use the documented boot-option defaults when
battmem.resourceis not
available, including enabling CD-ROM boot. - Clamp parsed
printffield widths and precision to prevent integer
overflow in the firmware formatter.
Filesystems and device discovery
- Load embedded ROM filesystems and the Kickstart CD filesystem on demand
instead of registering every available filesystem at startup. - Select filesystems by DosType and cache load attempts so each matching
filesystem is initialized at most once. - Pass the relocated filesystem segment to
InitResident()as the BPTR
expected by AmigaOS. - Require
romtool -Twhen adding a filesystem to a ROM image, preventing
creation of slots that the demand loader can never select. - Correct the
FileSystem.resourcepatch-flags documentation to include
the patchedStackSizefield. - Rename the boot-menu option to Scan past
RDBFF_LASTand clarify
that it continues probing higher SCSI IDs after a disk marks itself as
the last device. - Update the bundled mounter with safer MBR/GPT handling, CD-ROM fixes,
wide-SCSI addressing, host-adapter ID skipping, aTD_MOTORnull-pointer
fix, and fixes for nestedForbid()use during filesystem lookup.
Bundled ODFileSystem v0.7.0
- Improve mounting and media-change behavior, including shared-library
lifetime handling, stale volume nodes, deferred volume publication, and
empty-drive handling. - Add High Sierra, ISO 9660 multi-extent file, AmigaDOS soft-link, and
improved UDF support. - Improve directory, metadata, parent-lookup, and sequential-read
performance through caching, pooling, hashing, and batched I/O. - Improve audio CD and CD-Text support, including track-title comments and
configurable disk icons. - Raise the minimum handler stack to 16 KiB and retain a ROM build that
fits the 32 KiB filesystem slot.
Utilities disk and diagnostics
- Add TinySetPatch and its required MMULib CPU libraries to the bootable
utilities disk, including its updated 68030 detection. - Replace repeated shell
Echocommands with a smallwelcomeprogram,
reducing startup overhead while preserving the existing banner and tool
summary. - Update devtest to v1.9 with arbitrary direct SCSI commands, corrected
READ CAPACITY LUN encoding, improved capacity and sense-error reporting,
and CPU utilization reporting for bandwidth tests.
A4092 flash tooling
- Add
oemgfx.shto convert PNG artwork into 4-bit and 5-bit Amiga bitmap
variants, previews, and anoem.binflash blob. - Harden manufacturing date, serial number, and patch-data parsing with
explicit bounds and stricter validation. - Report single-byte SPI programming failures instead of silently ignoring
them.
Build and maintenance
- Pin build, Coverity, and release workflows to the Amiga GCC 13.4
toolchain image. - Initialize submodules recursively and remove the redundant top-level
libcodesetscheckout now supplied by ODFileSystem. - Resolve the Salvador compressor relative to
zx0wrap, allowing the
wrapper to run outside the repository root. - Update Salvador with explicit bucket-index bounds checks.
Full Changelog:
v42.37...v42.39