Actually, 1.8.1b548 introduced a regression in the firmware upgrade function.
The regression has been fixed in 1.8.1b549.
If you upgraded to 1.8.1b548, to restore the firmware upgrade function, you will need to:
- download the file system_firmware.php from the svn repository (http://svn.m0n0.ch/wall/branches/freebsd8/webgui/)
- upload the file on the m0n0wall box using the exec.php page
- move/copy the uploaded file from /tmp/ to /usr/local/www/ using the exec.php page
- upgrade to the latest version, using the firmware upgrade page
Edit: If you moved the uploaded file, then, as stated by Fred Grayson, you need to set the file executable. You don't need to do it if you copied the uploaded file.