Вимкнення автоматичного узгодження PHY під час завантаження Linux на Xilinx


9

Я намагаюся встановити Linux на платі FPGA. Аромат Linux - це петалінукс для чіпів Xilinx FPGA.

Поточний Xilinx SoC має процесор Cortex A9 та програмовану логіку обладнання, тобто FPGA. Я захопив завантажувальне повідомлення на терміналі:

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

Мене конкретно цікавлять такі рядки:

[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

Питання №1: Я думаю, ці рядки призначені для TCP / IP?

Як видно, тут витрачаються близько 12 секунд. Вся справа в тому, що мені потрібна швидка завантажувальна система, і в кінцевому підсумку програма взагалі не потребує TCP / IP.

Linux, який я встановив поки що, використовував попередньо вбудований образ, наданий Xilinx. Тепер, щоб позбутися частини TCP / IP (оскільки мені це не потрібно, і якщо я не маю його в ОС, ці 12 секунд можна було б зберегти - це моє розуміння), я планую створити свою власне ядро ​​Linux.

Тому я завантажив вихідний код PetaLinux, припускаючи, що мені доведеться перекреслити його з моєї хост-системи.

Питання №2: Але я хочу знати, як я можу виключити частину TCP / IP з джерела ОС, так що коли завантажується ОС, вона ніколи не виконуватиме трудомісткі TCP / IP підпрограми?

Питання №3: Я також не впевнений, чи може ми мати попередньо вбудований образ, щоб відключити частину TCP / IP?

Моя мета - позбутися цих рядків під час завантаження:

[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

крок 1: з’ясуйте, яка система init використовується. крок 2: просуньте навколо своїх конфігураційних файлів.
strugee

У вас є джерело ядра? Як ви зараз завантажуєте це? Чи задіяне дерево пристроїв?
Stark07

Це повідомлення від U-Boot, Linux ще не завантажився.
Жил "ТАК - перестань бути злим"

Відповіді:


2

Питання 2: Я вважаю, що ці відбитки зроблені з uboot. Якщо так, я вважаю, що у вас визначено "CONFIG_PHY_RESET" - чи можете ви, будь ласка, перевірити конфігурацію uboot? Щоб відключити цю функцію, вам, ймовірно, доведеться перевірити свій конфігурацію, як правило, щось подібне до: ./include/configs/YourBoardConfigFile.h - це те, що використовує uboot.

Одна з інших відповідей викликала використання Kconfig - я перевірив меню конфігурації мого uboot, і ця опція відсутня.

Якщо ви подивитесь на вихідний файл uboot : ./drivers/net/4xx_enet.c , шукайте "CONFIG_PHY_RESET", виявиться, що виконується код:

#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) {

Незабаром після цього ви побачите надрукований текст "Очікування завершення автоматичних переговорів PHY", тому це має бути саме там, де знаходиться ваша проблема (або близько до неї - було кілька інших файлів, які мали подібну ініціалізацію залежно від архітектури).

З якоїсь причини файл README у джерелі uboot верхнього рівня викликає CONFIG_PHY_RESET_DELAY, але не CONFIG_PHY_RESET, тому ви, можливо, там його пропустили.

Питання 3: Якщо проблема CONFIG_PHY_RESET, то це потрібно встановити під час компіляції. Ви повинні мати можливість завантажити джерело завантаження Xilinx для вашої дошки.

Я не впевнений, для чого потрібен перезавантаження, тому я насправді не відповів на ваше запитання 1, але, схоже, деякі PHY мають різні вимоги щодо скидання після ініціалізації, і навіть деякі потребують певної затримки.


0

Ця система, очевидно, хоче пінг IP-адреси 10.10.70.101, ймовірно, тому, що вона перевіряє власну IP-адресу або свій шлюз. Ця частина означає, що система налаштована з мережевим інтерфейсом з цією IP-адресою або подібною.

Пауза трапляється через те, що в процесі налаштування IP він завантажує мережевий драйвер Ethernet, який здійснює автоматичну перемову PHY, він по суті намагається побачити, що з ним пов'язано. Оскільки нічого не пов’язано, воно вичерпується.

Напевно, ви повинні шукати, де цей дистрибутив Linux зберігає налаштування мережевого інтерфейсу. Швидкий пошук в Google вказує, що U-Boot має змінну ipaddrдля http://www.denx.de/wiki/view/DULG/UBootEnvVariables


-1

Використовуйте Kconfigабо його графічні аналоги для відключення Мережі після компіляції ядра. Приклади: див. Це .


2
Будь ласка, не просто публікуйте посилання, включайте стільки відповідного вмісту безпосередньо на цьому сайті. Якщо веб-сайт, на який ви посилаєтесь, відходить, то ваша відповідь стає нікчемною.
slm
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.