# 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