Costumava haver um documento multi-paginado em "Booting ARM Linux". Infelizmente, o link da Web para esse documento está quebrado, mas uma cópia parece ser aqui . Esse documento, no entanto, não especificou ou avisou um gerenciador de inicialização específico ou qualquer organização de arquivo / dados na mídia de inicialização.
Itens que me lembro de coisas como o kernel devem ser ligados para serem executados no início da memória principal física + 0x8000.
O ARM Linux também requer uma lista de vários parâmetros de memória, placa e máquina (conhecidos como ARM Tags ou lista ATAG) a serem passados em um buffer de memória para o kernel na inicialização. O bootloader seria responsável pela construção dos ATAGs e da linha de comando do kernel nos buffers de memória. ATAGs aparentemente foi preterido e substituído pela Árvore de Dispositivos nas versões mais recentes do kernel do Linux.
O bootloader também era esperado para configurar e inicializar a RAM (o que implica a configuração de clocks / oscillators), inicializar uma porta serial ou console, e detectar o tipo de máquina ARM.
Observe que a maioria dos SoCs ARM emprega uma sequência de inicialização de vários estágios, e o carregador de inicialização que realmente carrega o kernel do Linux é, às vezes, o bootloader de terceiro estágio.