ATA_DMA is broken on the PC Engines ALIX
-
ATA_DMA worked fine on the ALIX platform under version 1.2. Under 1.2.1 as late as 20080909-0606 ATA_DMA must be disabled in order to boot. Is there a specific pfSense developer who I could converse with about issue?
-
You mean that you need to disable ata_dma during load otherwise you get the mountroot prompt?
-
Correct. I have to add hw.ata.ata_dma="0" to /boot/loader.conf in order to boot 1.2.1 on ALIX. I am using the IDE interface to a 2 1/2" disk drive so not having ata_dma is very noticeable. (1/5 the speed)
pfSense 1.2 release
FreeBSD 6.2-RELEASE-p11 #0: Sun Feb 24 16:32:58 EST 2008dd if=/dev/zero of=/dev/ad0s2 bs=64k count=1000
1000+0 records in
1000+0 records out
65536000 bytes transferred in 1.614227 secs (40598997 bytes/sec)pfSense 1.2.1 beta 20080909-0606
FreeBSD 7.0-RELEASE-p4 #0: Tue Sep 9 05:39:10 EDT 2008dd if=/dev/zero of=/dev/ad0s2 bs=64k count=1000
1000+0 records in
1000+0 records out
65536000 bytes transferred in 8.012389 secs (8179333 bytes/sec) -
are you on the latest bios?
-
Yes, version 099. Confirmed with PC Engines that is the latest BIOS.
-
I would guess the problem is related to this post.
http://www.mavetju.org/mail/view_message.php?list=freebsd-i386&id=2748810
Today I tried a custom pfSense build based on 7-STABLE as there were a lot of ATA changes since RELEASE, but it made no difference. Tomorrow I will try implementing the patch referenced in the post. My symptoms are identical. FreeBSD 6 was selecting UDMA33 but FreeBSD 7 is selecting UDMA100.
-
Success!
When the patch is added to 1.2.1 and an entry of hw.ata.ata_dma_limit="4" is added to /boot/loader.conf The ALIX can read/write at ATA_UDMA=66
Patch will be submitted to the pfSense group.
-
As of 10/28/2008 the patch I submitted on Sept 12, has NOT been integrated into pfSense 1.2.1. Anyone running Soekris or ALIX with a hard disk drive will need to avoid version 1.2.1 until the issue has been addressed
-
The patch has be committed as of today (10/29/2008). Will test the new build in the morning.
-
With a few post-install corrections, pfSense 1.2.1 works on ALIX with a hard disk drive. Use a regular PC with a 40–>44 pin adapter to install pfSense selecting the "embedded kernel". After the install is complete reboot and the restart off the CD a second time. This time select option 8 to access a shell instead of install.
- cd /tmp
- atacontrol list
find your hard disk drive in the output above
you will need it in the commands below
should be something like ad0, ad2, ad4
replace the "X" below with your drive number - mount /dev/adX /mnt
- cp /mnt/boot/mbr .
- echo 'hw.ata.ata_dma_limit="4" ' >> /mnt/boot.loader
- vi /mnt/etc/fstab
change the drive shown to /dev/ad0 instead of /dev/adX - umount /mnt
- fdisk -B -b mbr adX
(remember to replace the "X" with your drive number)