Linux'u bir FPGA kartına kurmaya çalışıyorum. Linux aroması Xilinx FPGA cipsleri için petalinux'dur .
Mevcut Xilinx SoC, bir Cortex A9 işlemciye ve programlanabilir bir donanım mantığına, yani FPGA'ya sahiptir. Terminaldeki önyükleme mesajını yakaladım:
.....................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
Özellikle şu hatlarla ilgileniyorum:
[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
Soru # 1: Sanırım bu satırlar TCP / IP için mi?
Görüldüğü gibi burada yaklaşık 12 saniye israf ediliyor. Şey, hızlı bir önyükleme sistemine ihtiyacım var ve sonunda uygulamada TCP / IP'ye ihtiyaç duymayacaktım.
Şimdiye kadar kurduğum Linux, Xilinx tarafından sağlanan önceden oluşturulmuş bir görüntü kullanıyordu. Şimdi TCP / IP bölümünden kurtulmak için (buna ihtiyacım olmadığından ve işletim sisteminde yoksa, bu 12 saniye kaydedilebilir - bu benim anlayışım), kendi Linux çekirdeği.
Bu yüzden ana sistemimden derlemek zorunda kalacağımı varsayarak PetaLinux'un kaynak kodunu indirdim.
Soru # 2: Ama TCP / IP bölümünü işletim sistemi kaynağından nasıl hariç tutabileceğimi bilmek istiyorum, böylece işletim sistemi önyüklendiğinde TCP / IP yordamlarını asla yürütmeyecek mi?
Soru # 3: Önceden oluşturulmuş görüntüde TCP / IP bölümünü devre dışı bırakma seçeneğimiz olup olmadığından da emin değilim?
Amacım, önyükleme işlemi sırasında bu satırlardan kurtulmaktır:
[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