We’ve got a old Watchguard 700 that has been recycled to run the open source firewall pfsense – a very good idea in theory – as the Watchguard has 6 Ethernet ports, and can be bought at eBay very cheaply.
It’s been running version 2.1 for a while now, and today I took the plunge to run the upgrade to 2.2.3 – with predictable results.
The box refused to start up.
So I found the serial<->USB cable, fired up my laptop and started debugging. The boot sequence was stuck in a endless loop complaining about not finding a ATA hard drive (the box does not contain any disks). The message was ‘ata0: DMA limited to UDMA33, controller found non-ATA66 cable’.
This lead to much trawling of various forums dedicated to pfsense and watch guards, and led to a explanation, where it’s clear that the ATA interfaces need to be disabled before it can continue. This turns out to be a 2 stage process, where you have to stop the early boot sequence to get to the BIOS monitor, and set (temporarily) the command :
SET hint.ata.0.mode=PIO4
SET hint.ata.1.mode=PIO4
in my case I had to disable both ATA channels, and then boot pfsense – btw. SET had to be written in uppercase.. But this is only half of the procedure, as this is lost during the next reboot. So the same commands (missing off the “SET” part) in the fileecho ‘hint.ata.0.mode=PIO4′ >> /boot/loader.conf.local.