On a modern UEFI system you actually get provided with an API that can do all that for you, though only FAT32 partitions are supported for the FS out of the box (you can load your own drivers for more).
If your boot partition is FAT32, UEFI makes things much much simpler.