Pandaboard
Dati tecnici di riferimento
La Pandaboard è una scheda di sviluppo molto recente e potente. Le caratteristiche tecniche sono riportate in maniera esaustiva sul sito della community. Esistono 2 tipi diversi di Pandaboard.
La prima è un TI OMAP 4430 mentre la seconda è un TI OMAP 4460. Le due versioni hardware condividono molto del codice sorgente anche se alcune parti come la gestionde del power per ora non è inclusa nel kernel. Le informazioni successive sono in parte un sunto di quelle presenti a questo link
La toolchain RedHat per ARM
-
Il sistema di Boot
La Pandaboard non possiede memorie nand o di altro tipo e quindi il suo bootloader non risiede sulla scheda ma sulla sd insieme al kernel e al rootfs. E' possibile basarsi sul un kit di sviluppo fornito daLinaro oppure uno degli innumerevoli semi lavorati delle varie distribuzioni più importanti. La Pandaboard utilizza per lo stage 1 del bootloader un sotfware chiamato x-loader (della TI ma rilasciato sotto licenza GPLv2) ed uno per lo stage 2 chiamato u-boot (GPLv2).
X-Loader
Questo bootloader stage 1 è un loader per le board embedded basate su processori OMAP. La particolarità di questo loader è quella di poter firmare il boot. Evitiamo di fare commenti e saltiamo avanti questa "feature".
Eseguire il clone del repository di x-loader
git clone git://git.omapzoom.org/repo/x-loader.git cd x-loader
Agganciamo il repository di sviluppo omap4_dev su origin al nostro locale che chiameremo ugualmente omap4_dev.
git checkout -b omap4_dev origin/omap4_dev
Eseguiamo la compialzione: Personalmente uso la toolchain di redhat che è compilata per creare binari che sfruttano l'hardware floating point
./mkconfig mrproper make omap4430sdp_config make ARCH=arm CROSS_COMPILE=armv7hl-redhat-linux-gnueabi- omap4430sdp_config make ARCH=arm CROSS_COMPILE=armv7hl-redhat-linux-gnueabi- ift
Otteniamo il file MLO
U-Boot
Entrambe le versioni della Pandaboard possono usare u-boot per lanciare il kernel. L'unica accortezza che viene richiesta è la formattazione della scheda SD in 2 partizioni. Una prima VFAT dove risiederà il bootloader e il kernel ed una seconda la cui formattazione è lasciata libera all'utente dove risiederà il rootfs.
Eseguire il clone del repository di u-boot
git clone git://git.omapzoom.org/repo/u-boot.git cd u-boot
Agganciamo il repository di sviluppo omap4_dev su origin al nostro locale che chiameremo ugualmente omap4_dev.
git checkout -b omap4_dev origin/omap4_dev
Eseguiamo la compialzione: Personalmente uso la toolchain di redhat che è compilata per creare binari che sfruttano l'hardware floating point
./mkconfig mrproper make omap4430panda_config make ARCH=arm CROSS_COMPILE=armv7hl-redhat-linux-gnueabi- omap4_panda_config make ARCH=arm CROSS_COMPILE=armv7hl-redhat-linux-gnueabi-
otteniamo:
- u-boot.bin is a raw binary image
- u-boot is an image in ELF binary format
- u-boot.srec is in Motorola S-Record format
Vedremo successivamente a cosa servono.
Kernel
La compilazione del kernel per omap4 è forse una della cose più complesse perchè molte delle patch richieste sono non totalmente nel vanilla di Torvalds branch arm e non tutte servono per entrambe le versioni hardware della board.
