Para entender o que cada arquivo é responsável por você, deve entender como o MPU é iniciado.
Como eu entendi do seu qestion você usa a família de microprocessadores NXP (Freescale) i.MX. Ele inclui um pequeno carregador ROM, que fará a configuração básica do sistema (interfaces para memória, árvore de relógio, etc.), busca de mídia para inicializar (baseado em bits OTP gravados ou GPIO), localize bootloader (u-boot no seu caso) em endereço exato que é especificado na folha de dados, carregar e iniciá-lo. U-boot irá iniciar mais interfaces (por exemplo, Ethernet), encontrar argumentos que devem ser passados para o Kernel (configurações de tela, console, configurações de rede, se você usar NFS), copiar Kernel para DDR e passar todos os argumentos. O kernel carregará todos os drivers e procurará rootfs com todas as bibliotecas, aplicativos, etc. Depois disso, o Kernel iniciará os scripts init, que iniciarão todo o sistema e iniciarão o aplicativo.
- O u-boot é a primeira coisa que será iniciada após o bootloader da ROM. Você pode substituí-lo com o seu próprio código se quiser que o MPU seja executado código bare-metal sem SO (como o microcontrolador).
- zImage é uma versão compactada da imagem do kernel do Linux que é auto-extraível.
- rootfs é o sistema de arquivos raiz, que contém todos aplicações, libs e na maioria dos casos tudo, incluindo home pasta.
- sdcard image é apenas todo o material mencionado acima que pode ser copiado (com dd) para o cartão, após a cópia você verá FAT partição com Kernel e árvore de dispositivos e partição EXT com rootfs, O u-boot está na área não particionada antes do FAT (no caso de você usar o i.MX6 é 0x80000). Está lá apenas para facilitar a sua vida.