Skip to content

A4091 / A4092 Release v42.38

Choose a tag to compare

@github-actions github-actions released this 29 Jul 17:13
· 25 commits to main since this release

DO NOT USE ON A4092

NOTE: This release has an alignment problem with the NCR script on the A4092.
If you have an A4092, please use release v42.39 instead.

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.38