Перейти к содержанию
    

UltraScale+ Watchdog

Здравствуйте. Не получается сторожевой таймер запустить на ZynqMP. 

В DTB все прописал 

 watchdog0: watchdog@fd4d0000 {
   compatible = "cdns,wdt-r1p2";
   status = "disabled";
   interrupt-parent = <&gic>;
   interrupts = <0 113 1>;
   reg = <0x0 0xfd4d0000 0x0 0x1000>;
   timeout-sec = <60>;
   reset-on-timeout;
  };

.................
  &watchdog0 {
 status = "okay";
};

 

в ядре нужные галочки установил.

root@igor-VirtualBox:~# dmesg | grep wdt
[    7.585896] zynqmp_clk_mux_get_parent() getparent failed for clock: lpd_wdt, ret = -22
[    8.749524] cdns-wdt fd4d0000.watchdog: Xilinx Watchdog Timer with timeout 60s
[    8.757062] cdns-wdt ff150000.watchdog: Xilinx Watchdog Timer with timeout 10s
root@igor-VirtualBox:~# echo s > /dev/watchdog0
[ 1536.392464] watchdog: watchdog0: watchdog did not stop!

 

Для настройки использую рабочий код, который прекрасно функционирует на 5-й Арии

	int fd = open("/dev/watchdog", O_WRONLY);
	if (fd == -1) {
        exit(EXIT_FAILURE);
    }
    //int interval = 3;
    int interval = 10;
    ioctl(fd, WDIOC_SETTIMEOUT, &interval);

    while(1)
    {
        ioctl(fd, WDIOC_KEEPALIVE, &timeout);
        sleep(2);
    }

Запускаю код, удаляю - в консоли

root@igor-VirtualBox:~# [ 1825.753499] watchdog: watchdog1: watchdog did not stop!

root@igor-VirtualBox:~# [ 1831.966288] cdns-wdt ff150000.watchdog: Watchdog timed out. Internal reset not enabled

WTF  "Internal reset not enabled" ? Что ему еще надо ? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

неужели никто на поднимал пса на Цинке ? Мне нужно, в случае зависания Линукса, перезагрузить PS 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На fpga-systems.ru недавно была серия стримов по работе с Zync. Рекомендую, там же в чате есть спецы по Zync, вероятно ответят и на этот вопрос

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 3/5/2021 at 3:28 PM, карамболь said:

zynqmp_clk_mux_get_parent() getparent failed for clock: lpd_wdt, ret = -22

Это ATF копать надо, хилые там накосячили изрядно...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

16 hours ago, gosha-z said:

Это ATF копать надо, хилые там накосячили изрядно...

Да вроде PMU этим рулит. Нашел похожие траблы у коллег и варианты решения - типа пропатчить фирмваре PMU. Посмотрел этот патч, сравнил со своим - очень отличается. Понатыкал дефайнов, как советуют - загрузка отваливается на определенном этапе, видимо как раз сброс срабатывает, там 60 сек по дефолту. Отложил пока. Как мне кажется, проще свой модуль на ФПГА запилить (у меня так на Альтере реализовано) -  выход модуля на ногу внешнего сброса. Дешево и сердито 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 3/10/2021 at 10:35 AM, gosha-z said:

PMU, но через ATF - там тоже проверки есть. И -ENODEV больше на ATF похоже

вы это имели ввиду ? 

It is also necessary to build ATF with following flags (see APU Idling for details)
ZYNQMP_WARM_RESTART=1

здесь нарыл https://www.linuxsecrets.com/xilinx/Zynq Ultrascale Plus Restart solution.html

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В общем, Watchdog работает. Нужно было добавить в PMU ENABLE_RECOVERY_RESET_SYSTEM_VAL  = 1

Сейчас другая проблема. Если сразу после загрузки Линукса не начать пинать Watchdog, то система перезагружается.

Как сделать, чтобы Watchdog включался из юзер спейса ? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На голом железе без операционки недавно поднимал, тоже была проблема https://forums.xilinx.com/t5/Processor-System-Design-and-AXI/Ultrascale-watchdog-timer-does-not-expire/m-p/1240523#M57888

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

17 hours ago, ovn said:

На голом железе без операционки недавно поднимал, тоже была проблема https://forums.xilinx.com/t5/Processor-System-Design-and-AXI/Ultrascale-watchdog-timer-does-not-expire/m-p/1240523#M57888

не понял... WTD не запускается из-за сброса APU ? Это как ? Можно ссылку на объяснение от xilinx ? Спасибо

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

01.06.2021 в 10:04, карамболь сказал:

не понял... WTD не запускается из-за сброса APU ? Это как ? Можно ссылку на объяснение от xilinx ? Спасибо

Сам не знаю, галочку снял и сторожевой таймер запустился, как связано, без понятия.  Подобных глюков в IDE полно. 

Изменено пользователем ovn

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...