Tell me if it works for you
Hm- at least for me it didn't.

I think it depends much of the BIOS and the Card reader. On my wife's notebook I wasn't able to access the CF drive at all (connected via USB and multi-card-reader, "USB legacy support" enabled in BIOS).
On my PC I found some BIOS page showing the detected CF drive and the option on how to access it (I chose "simulate hard disk"). fdisk and format went well, but when booting from it, I only got "FreeDOSFreeDOSFreeDOSFreeDOS..." on my ALIX serial prompt.
So - here's my tutorial for PXE booting FreeDOS and updating the Bios.

Prerequisites:
1.) If not done yet, set up your DHCP and TFTP server.
In your DHCP config file (/etc/dhcpd.conf) add entries for TFTP booting:
subnet 192.168.0.0 netmask 255.255.255.0 {
allow booting;
allow bootp;
[...]
next-server YOUR.TFTP.IP.HERE;
filename "pxelinux.0";
[...]
}
I started TFTPD as a daemon (not via inetd), so /etc/defaults/tftpd-hpa looks like that:
RUN_DAEMON="yes"
OPTIONS="-l -s /var/lib/tftpboot -r blksize"
(I'm not shure, but I think the "-r blksize" was important...)
Then start your TFTP server (/etc/init.d/tftpd-hpa start)
2.) Install the PXE boot images
Unpack syslinux anywhere (eg. at /tmp) and copy the files "pxelinux.0" and "memdisk/memdisk" into your TFTP boot directory (eg. /var/lib/tftpboot).
Copy the fdboot.img file also into that directory.
Then create a subdirectory "pxelinux.cfg" (/var/lib/tftpboot/pxelinux.cfg) and create a file called "default" within that (there are much more possibilities, see SYSLINUX docs).
The file should look like this:
SERIAL 0 38400 0
timeout 50
default fdos
prompt 1
say Booting FreeDOS via PXE
label fdos
kernel memdisk
append initrd=fdboot.img raw
The "raw" is
extreme important!! (took me many hours to figure out...)
3.) Pimp your boot image
Inject the BIOS upgrade (from the PC Engines website) into the FreeDOS image and adjust some config files:
- mount /var/lib/tftpboot/fdboot.img /mnt -o loop
- copy ALIX1.BIN, ALIX2.BIN and BS.COM to /mnt
- edit /mnt/fdconfig.sys to look like this:
; FreeDOS 1.0 Final distro by Blair Campbell [Blairdude@gmail.com],
; last update 2005-08-02 by Blair Campbell [Blairdude@gmail.com]
; config.sys loads system drivers. Please edit to suit your needs.
;!SWITCHES=/E
SWITCHES=/N
DEVICE=a:\driver\HIMEM.EXE
SHELL=a:\COMMAND.COM c:\ /E:2048 /F /MSG /P=a:\FDAUTO.BAT
DOS=HIGH
FILES=20
BUFFERS=20
LASTDRIVE=Z
- create and edit /mnt/fdauto.bat to look like this:
@prompt $p$g
@path=a:\freedos
@REM mode COM1:38400,n,8,1
@REM ctty COM1
sb
The "mode" and "ctty" command didn't help me to get a usable serial console, so they're REM'd.
The "sb" will start the BIOS upgrade automatically after booting.
(For first tests, you can comment that out, too)
- then unmount that image (umount /mnt).
4.) Give it a try...
Start your ALIX board, set console speed to 38400 (after BIOS upgrade this will also be the default speed), enable PXE boot, reboot.
For your convenience, here's my output of the whole update process. It might help to detect any problems if it doesn't work for you.
Btw: tftpd-hpa doesn't show you if any files are requestes/transferred (as netkit-tftp would do). Personally, I used tcpdump to observe correct behaviour.
Here's the output (@mod: I hope this is ok...)
PC Engines ALIX.2 v0.98b
640 KB Base Memory
261120 KB Extended Memory
Press <Shift-Tab> key to display network boot option menu
Try network boot first , then local drives
01F0 - no drive found !
Intel UNDI, PXE-2.0 (build 082)
Copyright (C) 1997,1998,1999 Intel Corporation
VIA Rhine III Management Adapter v2.43 (2005/12/15)
CLIENT MAC ADDR: 00 0D B9 12 72 AC
CLIENT IP: 192.168.142.220 MASK: 255.255.255.0 DHCP IP: 192.168.142.10
GATEWAY IP: 192.168.142.1
PXELINUX 3.53 2007-11-17 Copyright (C) 1994-2007 H. Peter Anvin
Booting FreeDOS via PXE
boot:
Loading memdisk....
Loading fdalix.img.........................ready.
MEMDISK 3.53 2007-11-17 Copyright 2001-2007 H. Peter Anvin
e820: 0000000000000000 00000000000a0000 1
e820: 00000000000f0000 0000000000010000 2
e820: 00000000fff00000 0000000000100000 2
e820: 0000000000100000 000000000ff00000 1
Ramdisk at 0x0fe78000, length 0x00168000
command line: initrd=fdalix.img raw BOOT_IMAGE=memdisk
Disk is floppy 0, 1440 K, C/H/S = 80/2/18, EDD off
Using raw access to high memory
Total size needed = 2310 bytes, allocating 3K
Old dos memory at 0x9fc00 (map says 0xa0000), loading at 0x9f000
1588: 0xffff 15E801: 0x3c00 0x0ee7
INT 13 08: Failure, assuming this is the only drive
old: int13 = f000b396 int15 = f000ad42
new: int13 = 9f00000a int15 = 9f00037c
Loading boot sector... booting...
FreeDOS kernel build 2036 cvs [version Aug 18 2006 compiled Aug 18 2006]
Kernel compatibility 7.10 - WATCOMC - 80386 CPU required - FAT32 support
(C) Copyright 1995-2006 Pasquale J. Villani and The FreeDOS Project.
All Rights Reserved. This is free software and comes with ABSOLUTELY NO
WARRANTY; you can redistribute it and/or modify it under the terms of the
GNU General Public License as published by the Free Software Foundation;
either version 2, or (at your option) any later version.
- InitDiskno hard disks detected
FreeDOS HIMEM64 3.26 [Aug 25 2006] (c) 1995, Till Gerken 2001-2006 tom ehlert
HIMEM - Always On A20 method used
Kernel: allocated 43 Diskbuffers = 22876 Bytes in HMA
Unable to open file 'c:'
FreeCom version 0.84-pre2 XMS_Swap [Aug 28 2006 00:29:00]
A:\>sb
ALIX flash update (C)2007 PC Engines GmbH
Flash ID = 1 FFFF GPI = FF
Flash ID = 0 9D37 GPI = 01
Reading 512KB flash image alix1.bin................
Compare Erase Program Verify - update OK.
A:\>