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 2008

    dd 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 2008

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

    1. cd /tmp
    2. 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
    3. mount /dev/adX /mnt
    4. cp /mnt/boot/mbr .
    5. echo 'hw.ata.ata_dma_limit="4" ' >> /mnt/boot.loader
    6. vi /mnt/etc/fstab
        change the drive shown to /dev/ad0 instead of /dev/adX
    7. umount /mnt
    8. fdisk -B -b mbr adX
        (remember to replace the "X" with your drive number)

Log in to reply