Vô hiệu hóa đàm phán tự động PHY trong quá trình khởi động Linux trên Xilinx


9

Tôi đang cố gắng cài đặt Linux trên một bo mạch đồ họa. Hương vị linux là petalinux cho các chip Xilinx.

SoC Xilinx hiện tại có bộ xử lý Cortex A9 và logic phần cứng có thể lập trình, ví dụ như FPGA. Tôi đã bắt được thông báo khởi động trên thiết bị đầu cuối:

.....................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

Tôi đặc biệt quan tâm đến những dòng này:

[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

Câu hỏi số 1: Tôi đoán những dòng này là dành cho TCP / IP?

Như có thể thấy khoảng 12 giây bị lãng phí ở đây. Vấn đề là tôi cần một hệ thống khởi động nhanh và hoàn toàn không cần TCP / IP trong ứng dụng cuối.

Linux mà tôi đã cài đặt cho đến nay đang sử dụng hình ảnh dựng sẵn do Xilinx cung cấp. Bây giờ để loại bỏ phần TCP / IP (vì tôi không cần nó và nếu tôi không có nó trong HĐH, 12 giây này có thể được lưu - đây là sự hiểu biết của tôi), tôi dự định xây dựng nhân Linux riêng.

Vì vậy, tôi đã tải xuống mã nguồn của PetaLinux, giả sử tôi sẽ phải biên dịch mã từ hệ thống máy chủ của mình.

Câu hỏi số 2: Nhưng tôi muốn biết làm thế nào tôi có thể loại trừ phần TCP / IP khỏi nguồn hệ điều hành, để khi hệ điều hành khởi động, nó sẽ không bao giờ thực hiện các thói quen TCP / IP tốn thời gian đó?

Câu hỏi # 3: Tôi cũng không chắc chắn nếu trong hình ảnh dựng sẵn, chúng tôi có thể có bất kỳ tùy chọn nào để vô hiệu hóa phần TCP / IP không?

Mục đích của tôi là loại bỏ các dòng này trong quá trình khởi động:

[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

Bước 1: tìm hiểu hệ thống init nào đang được sử dụng. Bước 2: chọc quanh các tập tin cấu hình của nó.
strugee

Bạn có nguồn kernel không? Làm thế nào bạn khởi động nó như bây giờ? Có một cây thiết bị liên quan?
Stark07

Thông báo đó là từ U-Boot, Linux chưa khởi động vào thời điểm đó.
Gilles 'SO- ngừng trở nên xấu xa'

Câu trả lời:


2

Câu hỏi 2: Tôi tin rằng những bản in đó là từ uboot. Nếu vậy, tôi tin rằng bạn đã xác định "CONFIG_PHY_RESET" - bạn có thể kiểm tra cấu hình uboot của mình để biết điều đó không? Để vô hiệu hóa tính năng này, có lẽ bạn phải kiểm tra cấu hình của mình, thường là một cái gì đó tương tự như: ./include/configs/YourBoardConfigFile.h, là những gì uboot sẽ sử dụng.

Một trong những câu trả lời khác được gọi là sử dụng Kconfig - Tôi đã kiểm tra menuconfig của uboot của tôi và tùy chọn đó không có.

Nếu bạn xem tệp nguồn uboot: ./drivers/net/4xx_enet.c , tìm kiếm "CONFIG_PHY_RESET", có vẻ như mã đó đang được thực thi:

#if defined(CONFIG_PHY_RESET)
/*
 * Reset the phy, only if its the first time through
 * otherwise, just check the speeds & feeds
 */
if (hw_p->first_init == 0) {

Ngay sau đó, bạn có thể thấy văn bản "Đang chờ đàm phán tự động PHY hoàn tất" được in, vì vậy đây sẽ là vấn đề của bạn (hoặc gần với nó - có một vài tệp khác có khởi tạo tương tự tùy theo kiến ​​trúc).

Vì một số lý do, tệp README trong nguồn uboot cấp cao nhất gọi CONFIG_PHY_RESET_DELAY, nhưng không phải CONFIG_PHY_RESET, vì vậy bạn có thể đã bỏ lỡ nó ở đó.

Câu hỏi 3: Nếu CONFIG_PHY_RESET là vấn đề, thì điều này sẽ cần phải được đặt tại thời gian biên dịch. Bạn có thể tải xuống nguồn uBoot của Xilinx cho bảng của mình.

Tôi không chắc tại sao cần thiết lập lại, vì vậy tôi không thực sự trả lời câu hỏi 1 của bạn, nhưng có vẻ như một số PHY có các yêu cầu khác nhau về việc đặt lại khi khởi tạo và thậm chí một số cần một độ trễ nhất định.


0

Hệ thống đó dường như muốn ping địa chỉ IP 10.10,70.101, có lẽ vì nó đang kiểm tra địa chỉ IP của chính nó hoặc cổng của nó. Phần này có nghĩa là hệ thống được cấu hình với giao diện mạng với địa chỉ IP đó hoặc tương tự.

Việc tạm dừng xảy ra bởi vì trong quá trình định cấu hình IP, nó tải trình điều khiển mạng Ethernet, tự động PHY, nó thực sự cố gắng xem những gì được kết nối với nó. Vì không có gì được kết nối, nó hết thời gian.

Bạn có thể nên tìm bất cứ nơi nào bản phân phối Linux này giữ các cài đặt giao diện mạng. Một tìm kiếm google đáng chú ý cho thấy U-Boot này có biến ipaddrcho mỗi http://www.denx.de/wiki/view/DULG/UBootEnvVariables


-1

Sử dụng Kconfighoặc tương tự đồ họa của nó để vô hiệu hóa Mạng khi biên dịch kernel. Ví dụ: xem cái này .


2
Vui lòng không chỉ đăng liên kết, bao gồm nhiều nội dung có liên quan trực tiếp trên trang web này. Nếu trang web bạn đang liên kết biến mất thì câu trả lời của bạn trở nên vô giá trị.
slm
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.