Is there some small (flash size) FAT16/FAT32 code, suitable for use in a bootloader? (that means it only needs to access one file, relatively slowly, and can be relatively extravagant with its use of RAM.)

Sure. But I think the idea is to be able to plug the flash card into a PC with a standard reader, copy "arduino.boot" to it, and then have the arduino find that when it boots up with/from the same flash card.

of course,if you format the card on your PC, then upload the boot image fileit SHOULD always start at the same address on the cardall you need to work out is the lengththat ought to simplify the problem quite a bit

and if you are in control of the boot image format (and why not!)you could even store the size at the front of the file

there are only 10 types of peoplethem that understands binaryand them that doesn't

I think raw SD read could be quit small if specialized for the avr processor.

If you limited the file to being in the root directory and contiguous, a lot of code would be eliminated.

Files are contiguous unless you have deleted other files and the SD is nearly full.

I will look at what can be done.

Edit: I did some tests and for a 2GB standard SD card formatted FAT16 It takes about 550 bytes of flash to initialize the card, read the master boot record, volume boot block, and first directory block.

Here is the raw init/read code for a 328. It is not very neat, just a prototype test.