After some digging, I realised that I can use a current Raspberry to see the format.
Disk /dev/mmcblk0: 7969 MB, 7969177600 bytes
4 heads, 16 sectors/track, 243200 cylinders, total 15564800 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000c45c9
Device Boot Start End Blocks Id System
/dev/mmcblk0p1 8192 122879 57344 c W95 FAT32 (LBA)
/dev/mmcblk0p2 122880 6399999 3138560 83 Linux
lsblk gives me the following:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
mmcblk0 179:0 0 7.4G 0 disk
|-mmcblk0p1 179:1 0 56M 0 part /boot
-mmcblk0p2 179:2 0 3G 0 part /
So, it means 56M is reserved for boot partition and should be the first parition formatted in FAT32 and 3G is formatted in File system Linux ( I guess ext4 ).
I just need to copy the bootcode.bin, kernel.img and other stuffs ( still to find out the minimum requirement to boot ) in the boot parition and the Linux parition contains the rest of the linux directory tree - usr, lib etc.