How will the ROM boot loader detect the MMC card without any driver

I know that ROM code contains a jump vector as instruction to make CPU to look the MLO or the first 512 bytes from boot sector. I have a couple of confusions about booting?

  1. Is MLO the file that contains this 512 bytes ?

  2. Is MLO the boot sector?

  3. How do the cpu reads MLO and put its contents into RAM if it do not have any mmc driver at this stage?

  4. Also I have observed that while copying MLO, uboot.img, uImage and device tree blob, I have to copy MLO first.Why?

  5. Because in MLO there are no filesystem drivers cause it can have only 512 bytes, we need to use U-boot.bin/img file? What if it can have more storage within it to support all the useful functioality of uboot, in that case do not have to use uboot stage?

  6. Is initial ramdisk image is used by U-boot to load kernel and driver modules that kernel will use, or kernel uses ramdisk when its loaded?