I'm reading a book (Mastering Embedded Linux Programming, 2nd ed). In the chapter on bootloaders it explains the booting process with U-Boot and with UEFI firmware.
It looks like the booting steps are exactly the same, with exception that at the last step either U-Boot or UEFI firmware takes over and loads a Linux image in RAM.
So what is the exact difference? Why would one choose U-Boot over UEFI or vica versa?