Sto cercando di installare Linux su una scheda FPGA. Il sapore di Linux è petalinux per i chip FPGA Xilinx.
L'attuale SoC Xilinx ha un processore Cortex A9 e una logica hardware programmabile, ad esempio FPGA. Ho catturato il messaggio di avvio sul terminale:
.....................U-boot time.......................partition.......................................................
[Fri Dec 27 15:18:53.108 2013] Copying Linux from SD to RAM...
[Fri Dec 27 15:18:53.129 2013] Device: SDHCI
[Fri Dec 27 15:18:53.129 2013] Manufacturer ID: 2
[Fri Dec 27 15:18:53.129 2013] OEM: 544d
[Fri Dec 27 15:18:53.129 2013] Name: SA04G
[Fri Dec 27 15:18:53.129 2013] Tran Speed: 25000000
[Fri Dec 27 15:18:53.129 2013] Rd Block Len: 512
[Fri Dec 27 15:18:53.129 2013] SD version 1.10
[Fri Dec 27 15:18:53.129 2013] High Capacity: Yes
[Fri Dec 27 15:18:53.129 2013] Capacity: 3951034368
[Fri Dec 27 15:18:53.129 2013] Bus Width: 1-bit
[Fri Dec 27 15:18:53.129 2013] reading zImage
[Fri Dec 27 15:18:59.367 2013]
[Fri Dec 27 15:18:59.367 2013] 2304852 bytes read
[Fri Dec 27 15:18:59.381 2013] reading devicetree.dtb
[Fri Dec 27 15:18:59.475 2013]
[Fri Dec 27 15:18:59.475 2013] 2709 bytes read
[Fri Dec 27 15:18:59.491 2013] reading ramdisk8M.image.gz
[Fri Dec 27 15:19:06.121 2013]
[Fri Dec 27 15:19:06.121 2013] 2501584 bytes read
[Fri Dec 27 15:19:06.144 2013] Trying to set up GEM link...
[Fri Dec 27 15:19:06.144 2013] Resetting PHY...
[Fri Dec 27 15:19:06.144 2013]
[Fri Dec 27 15:19:06.144 2013] PHY reset complete.
[Fri Dec 27 15:19:06.144 2013] Waiting for PHY to complete auto-negotiation...
[Fri Dec 27 15:19:18.176 2013] ***Error: Auto-negotiation stalled...
[Fri Dec 27 15:19:18.176 2013] ping failed; host 10.10.70.101 is not alive
Sono particolarmente interessato a queste righe:
[Fri Dec 27 15:19:06.144 2013] PHY reset complete.
[Fri Dec 27 15:19:06.144 2013] Waiting for PHY to complete auto-negotiation...
[Fri Dec 27 15:19:18.176 2013] ***Error: Auto-negotiation stalled...
[Fri Dec 27 15:19:18.176 2013] ping failed; host 10.10.70.101 is not alive
Domanda n. 1: Immagino che queste righe siano per TCP / IP?
Come si può vedere, qui vengono sprecati circa 12 secondi. Il fatto è che ho bisogno di un sistema di avvio rapido e non avrei bisogno del TCP / IP nell'applicazione finale.
Il Linux che ho installato finora utilizzava un'immagine pre-costruita fornita da Xilinx. Ora per sbarazzarsi della parte TCP / IP (poiché non ne ho bisogno e se non l'ho nel sistema operativo, questi 12 secondi potrebbero essere salvati - questa è la mia comprensione), sto pianificando di costruire il mio proprio kernel Linux.
Quindi ho scaricato il codice sorgente di per PetaLinux, supponendo che dovrò compilarlo dal mio sistema host.
Domanda n. 2: Ma voglio sapere come posso escludere la parte TCP / IP dalla fonte del sistema operativo, in modo che quando il sistema operativo si avvia non eseguirà mai quelle routine TCP / IP che richiedono tempo?
Domanda n. 3: Non sono inoltre sicuro se nell'immagine pre-costruita possiamo avere qualche opzione per disabilitare la parte TCP / IP?
Il mio obiettivo è quello di sbarazzarmi di queste linee durante il processo di avvio:
[Fri Dec 27 15:19:06.144 2013] PHY reset complete.
[Fri Dec 27 15:19:06.144 2013] Waiting for PHY to complete auto-negotiation...
[Fri Dec 27 15:19:18.176 2013] ***Error: Auto-negotiation stalled...
[Fri Dec 27 15:19:18.176 2013] ping failed; host 10.10.70.101 is not alive