DF-2210 / env.txt
# DF-2210 verification environment (QEMU/KVM guest, single-tenant)
## Stock (baseline) kernel
DragonFly dfbsd 6.5-DEVELOPMENT DragonFly 6.5-DEVELOPMENT #0: Thu Jul 2 06:02:54 UTC 2026
root@dfbsd:/usr/obj/usr/src/sys/X86_64_GENERIC x86_64
kern.bootfile: /boot/kernel/kernel
kern.ident: X86_64_GENERIC
stock kernel sha256 = 5dc83dac19ad09effd6241c33e0c0669d41b6497ee92d87d3a2e45f287bc22ad
kernel own ata_national_setmode (nm, local t): 0xffffffff80321780
nata core (ata-all.c/ata-queue.c/ata-pci.c/ata-chipset.c incl.
chipsets/ata-national.c) is BUILT INTO the kernel (only ehci.ko/xhci.ko
loaded at boot); natapci.ko also ships in /boot/kernel (unused).
## Fixed kernel (fix validation)
DragonFly dfbsd 6.5-DEVELOPMENT #1: Sat Oct 17 08:46:06 UTC 2026
root@dfbsd:/usr/obj/usr/src/sys/X86_64_GENERIC x86_64
/boot/kernel/kernel sha256 = d578088322657bb02e15787837bad2582c89869a8cf55af1f7c5208c1795a075
built with: cd /usr/src && make -j6 nativekernel KERNCONF=X86_64_GENERIC
+ make installkernel KERNCONF=X86_64_GENERIC (fix_build.log)
patched ata_national_setmode (nm, local t): 0xffffffff80321780
## Source under test
guest /usr/src/sys/dev/disk/nata/chipsets/ata-national.c
baseline sha256 c694b9095ed2dc50acb932a2ecde564b535c5a0f66cba355a0345d69b16a43e6
(== audited sys/ tree, checker-verified in build.baseline.log)
patched sha256 6efe3d30c67c8b18f7125fbdb214110e498bbb2659a7eb59cc04d654b668f423
(fix.diff applied; rig rebuilt from it for the fix run)
## Rig build
cc (DragonFly) -O2 ... -std=gnu11 -Werror -DKLD_MODULE, kernel module
dfrig_nat.ko (14192/14416 bytes), kldload'ed per boot.
## Relevant hardware-gating
The National Geode SC1100 ATA33 controller (PCI ID 0x0502100b,
ata-pci.h:244 ATA_SC1100) is not present under QEMU; the rig replaces
only the hardware-facing seam (drive SETXFER answer + PCI config bus),
everything else is production code (see dfrig_nat.c header).
## struct ata_dma offsets (amd64, in-kernel layout, from disassembly)
alignment @ 0x58 (line 77 store: movl $0x10,0x58(%rax))
max_iosize @ 0x64 (line 78 store: movl $0x8000,0x64(%rax))
ch->dma @ 0x1d8 of struct ata_channel