Saya mencoba menginstal Linux pada papan FPGA. Rasa linux adalah petalinux untuk chip Xilinx FPGA.
Xilinx SoC saat ini memiliki prosesor Cortex A9 dan logika perangkat keras yang dapat diprogram yaitu FPGA. Saya menangkap pesan booting di terminal:
.....................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
Saya secara khusus tertarik pada baris ini:
[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
Pertanyaan # 1: Saya kira baris ini untuk TCP / IP?
Seperti dapat dilihat sekitar 12 detik terbuang di sini. Masalahnya adalah saya memerlukan sistem boot cepat, dan tidak akan membutuhkan TCP / IP sama sekali di aplikasi akhir.
Linux yang saya instal sejauh ini menggunakan gambar pre-built yang disediakan oleh Xilinx. Sekarang untuk menghilangkan bagian TCP / IP (karena saya tidak membutuhkannya, dan jika saya tidak memilikinya di OS, 12 detik ini dapat disimpan - ini adalah pemahaman saya), saya berencana untuk membangun kernel Linux sendiri.
Jadi saya mengunduh kode sumber untuk PetaLinux, dengan anggapan saya harus melakukan cross compile dari sistem host saya.
Pertanyaan # 2: Tapi saya ingin tahu bagaimana saya bisa mengecualikan bagian TCP / IP dari sumber OS, sehingga ketika OS mem-boot-nya, ia tidak akan pernah melakukan rutinitas TCP / IP yang memakan waktu itu?
Pertanyaan # 3: Saya juga tidak yakin apakah pada gambar pre-built dapatkah kita memiliki opsi untuk menonaktifkan bagian TCP / IP?
Tujuan saya adalah untuk menghilangkan baris-baris ini selama proses boot:
[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