Skip to content

A4091 / A4092 Release v42.39

Latest

Choose a tag to compare

@github-actions github-actions released this 30 Jul 04:36
· 24 commits to main since this release

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() with Enable() 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 ncr7xx DMA 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.resource is not
    available, including enabling CD-ROM boot.
  • Clamp parsed printf field 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 -T when adding a filesystem to a ROM image, preventing
    creation of slots that the demand loader can never select.
  • Correct the FileSystem.resource patch-flags documentation to include
    the patched StackSize field.
  • Rename the boot-menu option to Scan past RDBFF_LAST and 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, a TD_MOTOR null-pointer
    fix, and fixes for nested Forbid() 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 Echo commands with a small welcome program,
    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.sh to convert PNG artwork into 4-bit and 5-bit Amiga bitmap
    variants, previews, and an oem.bin flash 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
    libcodesets checkout 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