On a PowerShot A570 IS with firmware v1.01a and CHDK v1.4.1, it is well documented that using an SD card 4GB or larger requires partitioning the card. Starting CHDK using the "firmware update method" --
http://chdk.wikia.com/wiki/Bootable_SD_card -- and then using the running CHDK to partition the card results in a first partition size of 2MB with partition type code 1 (FAT12), which does not work for autoboot.
The problem seems to be that too small a first partition causes it to be formatted FAT12 even if the type code is manually changed to 6 (FAT16). In order to have the first partition correctly formatted FAT16 instead of FAT12 it is necessary for it to have a minimum size of 16MB. The following partitioning works correctly on a 16GB card:
Device Boot Start End Sectors Size Id Type
/dev/sdb1 * 2048 34815 32768 16M 6 FAT16
/dev/sdb2 34816 31422463 31387648 15G b W95 FAT32
This was tested on Ubuntu Linux 15.10. With the above partitioning, "mkfs.fat" works for both of the two partitions using defaults. The rest of the documented procedure for autoboot then works as documented: writing ASCII "BOOTDISK" into the first partition beginning at offset 0x40 (64 decimal), copying "DISKBOOT.BIN" and "PS.FIR" into the root directory of the first partition, copying everything else of the CHDK file tree into the root directory of the second partition, and setting the SD card write-protect tab.