Ajuda para entender o processo de boot da Beaglebone Black

75 views
Skip to first unread message

Gustavo Laureano

unread,
Dec 18, 2014, 8:19:04 PM12/18/14
to beagleboa...@googlegroups.com
Pessoal boa noite, 

recentemente ganhei uma BBB e comecei a estudar o processo de boot dela, o processo de boot de um modo geral eu já tenho algum conhecimento, mas quero entender alguns detalhes,vamos la:

pelo o que eu entendi o processo se resume a:

ROM code > checa configuração de boot no coldstart (alterado pelo botão de boot) e procura uma imagem do MLO no MMC selecionado (eMMC ou SD CARD) > carrega o x-loader dessa imagem na SRAM > x-loader inicia RAM e carrega U-Boot nela > 
U-Boot procura pelo uEnv.txt (?) e carrega a imagem do kernel (??) para a RAM seguindo o script > kernel monta o RootFS e inicia user space

Vamos la:

(?) o U-Boot irá procurar pelo uEnv.txt em qual particao? SD ou eMMC?
(??) a imagem do kernel carregada para a RAM será de qual partição?

Faco essas perguntas porque flasheei uma imagem do debian no meu cartao (a img para rodar, nao a eMMC flasher) e percebi que minha BBB boota por ela mesmo sem apertar o botao, então estudando mais a fundo, percebi que na verdade minha BBB boota pela imagem do eMMC e em algum momento desse boot o U-Boot (ou o x.loader, não sei) carrega o kernel? e o RootFS do meu cartão de memoria em vez das versões do eMMC, mas não consegui achar exatamente aonde isso acontece ainda, achei que seria algo scriptado no uEnv.txt, mas li ele e não me pareceu nada

Isso de o u-Boot tentar bootar pelo cartão se encontrar um ficou mais evidente com essa explicação que encontrei:
http://elinux.org/Beagleboard:MicroSD_As_Extra_Storage

mostrando que para se ter um cartao SD na BBB e não bootar por ele, se deve colocar um uEnv.txt nele...

entao, aonde exatamente o U-Boot procura pelo cartao SD e oq ele usa do Cartao caso encontre um?
isso foi codificado no código fonte dele (não olhei isso ainda) ou é parte de algum outro script de init dele?


Obrigado!


Gustavo Laureano

unread,
Dec 19, 2014, 3:55:35 AM12/19/14
to beagleboa...@googlegroups.com
olhando agora essa explicação

http://wiki.beyondlogic.org/index.php?title=BeagleBoneBlack_Boot_Process

acredito que entendi melhor, todo esse tempo e eu só precisava ver o processo pela serial...

porém uma dúvida continua, isso de o U-Boot procurar pelo cartão parece estar codificado nele próprio, e não em algum Script externo.. preciso recompilar o U-Boot pra modificá-lo então?
E pelo jeito após encontrar o MMC, ele carregará o uenv, Kernel e rootfs dele, posso então manter apenas o bootloader na eMMC e sempre carregar o Kernel e rootfs do cartão?

obrigado!
Gustavo
Reply all
Reply to author
Forward
0 new messages