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

карамболь

Участник*
  • Постов

    322
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные карамболь


  1. 1 hour ago, alexPec said:

    Копался с DPU, запускал проект. Но на петалинуксе. Толкового описяния "потрахов" DPU не нашел, единственный способ тогда видел - раскопать драйвера линукса. Но стало лень туда влазить. Было это года 2-3 назад, может изменилось чего-то с тех пор.  

    вот и я пытаюсь раскопать ) кое-что раскопал уже

  2. Здравствуйте, коллеги. Появилась задача - поднять AI на ПЛИС. Поиски навели на DPU. Само IP ядро добавил в схему. Собрал BOOT.bin. Дальше затык. Как поднять DPU без петалинукса ? Это вообще реально ?

    Скачал отсюда https://www.pynq.io/board.html файловую систему. DTB и ядро свои. Как добавить DPU в DTB вроде бы понятно, но где брать драйвер (вроде, как zocl.ko). В файловой системе от Pynq драйвера не оказалось.

    Может кто-нибудь уже пытался такое проделать ?

     

  3. 5 minutes ago, ericN said:

    1) Что такое "path/to/video_device"? Это uri? Как команда должна выглядеть в моём случае? Так?

    v4l2-ctl --device rtsp://192.168.10.20:554/live/ch01_0

    C width и height понятно.

    2) Что такое pixelformat? Какие бывают пиксель форматы в ip? Как его задать?

    3) --stream-to - это я понял файл... т.е. имедж файл куда будет записан имедж изображение захваченное с камеры, допустим сделать так --stream-to = ~/images/capt.bmp

    тогда что такое --stream-count=number_of_frames_to_capture? В файл capt.bmp будет захвачено несколько имеджей изображений и они забиндятся в один bmp? Или такой командой будет захвачено не имедж, а видео?

    dev/video1 например. Вы же хотите стянуть равку с камеры ? Равок будет столько, сколько укажите в count

     

  4. 18 minutes ago, aaarrr said:

    Может, тогда и дебиан ни к чему? Собрать мелкую систему со всем необходимым - не придется голову ломать, что там при загрузке происходит.

    придется ломать голову в поисках всего необходимого и соответствующих зависимостей )) Дебиан был выбрал, как самый быстрый вариант развернуть систему на плате. Хотя, вы правы, конечно - Дебиан в данном случае избыточен

  5. 4 minutes ago, aaarrr said:

    Весь дебиан в ОЗУ? Ну, ФС на mmcblk0p0 и p1 тоже пострадать могут.

    да, весь Дебиан в ОЗУ. mmcblk0p0 и p1 это MMC на QSPI, там лежит ядро, dtb и упакованный Дебиан. Образы копирует с ММС в ОЗУ u-boot. До монтирования разделом ММС Линуксом дело даже не доходит при неправильно загрузке 

  6. 9 minutes ago, aaarrr said:

    Окирпичит же систему.

     

    Когда-то давно была у меня похожая проблема - тупил systemd переодически. Так как быстрая диагностика не позволила установить причину, было принято решение грохнуть systemd. Время загрузки незначительно увеличилось, но и подвисаний не стало.

    Почему ? Я проиницализировал таймер на 10 сек. Сразу после запуска служб, стартует мой скрипт, который сначала останавливает таймер, а затем грузит необходимые драйвера и стартует основную программу. Если до старта моего скрипта дело не дойдет, то собака сбрасывает всю систему через PSU

  7. On 12/16/2023 at 11:48 AM, AndrewSh said:

    Что бы правильно работал генератор случайных чисел нужно поставить пакет:

    sudo apt install haveged
    sudo systemctl enable haveged

    Неправильно работающий генератор случайных чисел будет 

    блокировать некоторые приложения использующие криптографические алгоритмы.

    Алгоритмы генерации основываются на создании энтропии пользователем (мышь , клавиаттура, HDD)

    Проблемы проявляются при использовании системы виртуализации

    спасибо за информацию. Пока решил обойтись сторожевым таймером )

  8. 51 minutes ago, gosha-z said:

    Про ATF не забыли? Переход на EL1 - его забота

    У меня много плат и одна загрузочная SD карта. На карте в первом разделе BOOT.bin, в котором FSBL, ATF, PMUFW и U-Boot. Только на одной плате загрузка затыкается на этапе ATF (в консоли "NOTICE:  BL31: Built : 06:44:31, May  7 2020"). Выхлопа от U-Boot нет.

    Начал выяснять причину. Для этого подключил JTAG. Гружу стандартный HelloWorld и обнаружил, что на этой плате софт зависает после чтения currentEL.

    В currentEL значение 0х00000000410fd034, что приводит к бесконечному циклу в коде boot.s.

    На других плата из currentEL читается 0хС, что соответствует EL3 и фраза "HelloWorld" благополучно выводится в консоль

  9. Никто не сталкивался с таким ?

    Странное дело, FSBL отрабатывает, грузит все партишены. Проблема происходит только при запуске U-Boot или любого другого barematal приложения

  10. Здравствуйте. На одной из новых плат обнаружилась проблема с загрузкой ПО. 

    Попытался загрузить через JTAG тестовый helloworld, но и этого не случилось.

    Исследование показало, что проблема в этих строчках в файле boot.s

    OKToRun:
    
    	mrs	x0, currentEL
    	cmp	x0, #0xC
    	beq	InitEL3
    
    	cmp	x0, #0x4
    	beq	InitEL1
    
    	b 	error			// go to error if current exception level is neither EL3 nor EL1

    т.е. содержимое currentEL не равно ни 0хС, ни 0х4, соответственно код зацикливается на ошибке

    error:     b    error

     

    К сожалению мне не удалось посмотреть, что в итоге лежит в регистре х0 (в списке регистров в Vitis не обнаружил)

    Что это может быть ? Проблемный чип ? Или это можно победить ?

    На остальных платах все отлично грузится

    в регистр Х0 копируется 0х00000000410fd034

    Еще заметил, что не все регистры Х обнуляются в начале boot.s

  11. сделал копию логов (все, что выше одинаково)

    при корректном запуске 

    [    8.737451] systemd[1]: Detected architecture arm64.
    [    8.752398] systemd[1]: Set hostname to <igor-VirtualBox>.
    [    8.851311] systemd[1]: File /lib/systemd/system/systemd-journald.service:12 configures an IP firewall (IPAddressDeny=any), but the local system does not support BPF/cgroup based firewalling.
    [    8.868576] systemd[1]: Proceeding WITHOUT firewalling in effect! (This warning is only shown for the first loaded unit using IP firewalling.)
    [    8.971719] random: systemd: uninitialized urandom read (16 bytes read)
    [    8.978511] systemd[1]: Listening on udev Kernel Socket.
    [    9.000425] random: systemd: uninitialized urandom read (16 bytes read)
    [    9.007310] systemd[1]: Listening on udev Control Socket.
    [    9.028390] random: systemd: uninitialized urandom read (16 bytes read)
    [    9.035266] systemd[1]: Listening on Journal Socket.
    [    9.054065] systemd[1]: Mounting Kernel Debug File System...
    [    9.068761] systemd[1]: Listening on Journal Socket (/dev/log).
    [    9.608982] systemd-journald[2798]: Received request to flush runtime journal from PID 1
    [   10.012454] random: fast init done
    [   10.929228] random: crng init done
    [   10.932645] random: 7 urandom warning(s) missed due to ratelimiting
    [   12.620365] pps pps0: new PPS source ptp0
    [   12.627066] macb ff0e0000.ethernet: gem-ptp-timer ptp clock registered.
    [   12.635228] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
    [   12.743197] EXT4-fs (mmcblk0p1): recovery complete
    [   12.748010] EXT4-fs (mmcblk0p1): mounted filesystem with ordered data mode. Opts: (null)
    [   12.812764] EXT4-fs (mmcblk0p2): recovery complete
    [   12.818214] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)

    при неправильном запуске

    [    8.741117] systemd[1]: Detected architecture arm64.
    [    8.756506] systemd[1]: Set hostname to <igor-VirtualBox>.
    [    8.851423] systemd[1]: File /lib/systemd/system/systemd-journald.service:12 configures an IP firewall (IPAddressDeny=any), but the local system does not support BPF/cgroup based firewalling.
    [    8.868806] systemd[1]: Proceeding WITHOUT firewalling in effect! (This warning is only shown for the first loaded unit using IP firewalling.)
    [    8.972149] random: systemd: uninitialized urandom read (16 bytes read)
    [    8.979014] systemd[1]: Listening on Syslog Socket.
    [    8.996526] random: systemd: uninitialized urandom read (16 bytes read)
    [    9.003417] systemd[1]: Listening on Journal Socket.
    [    9.020502] random: systemd: uninitialized urandom read (16 bytes read)
    [    9.027309] systemd[1]: Listening on Journal Socket (/dev/log).
    [    9.048506] systemd[1]: Condition check resulted in Create list of required static device nodes for the current kernel being skipped.
    [    9.060544] systemd[1]: Reached target Remote File Systems.
    [    9.617061] systemd-journald[2084]: Received request to flush runtime journal from PID 1
    [   11.012221] random: crng init done
    [   11.015626] random: 7 urandom warning(s) missed due to ratelimiting

    отсутствует

    [    8.978511] systemd[1]: Listening on udev Kernel Socket.
    [    9.000425] random: systemd: uninitialized urandom read (16 bytes read)
    [    9.007310] systemd[1]: Listening on udev Control Socket.
    [    9.028390] random: systemd: uninitialized urandom read (16 bytes read)
     

  12. 31 minutes ago, aaarrr said:

    Прежде всего, виснет - это на самом деле виснет, или просто не загружается до желаемого результата? Если последнее, то копать systemd на предмет бутлога.

    Согласен. Скорее, не до конца загружается. При этом, при подключении к консоли можно залогиниться, запустить dmesg и прочее.

    Проблема начинается, как мне кажется, со строки

     systemd[1]: Listening on Journal Socket (/dev/log).

    после нее должно быть

    [    9.031287] systemd[1]: Listening on Journal Socket (/dev/log).
    [    9.052955] systemd[1]: Created slice system-serial\x2dgetty.slice.
    [    9.076641] systemd[1]: Listening on Syslog Socket.
    [    9.601049] systemd-journald[2302]: Received request to flush runtime journal                                                                                                                                                              from PID 1
    [    9.962477] random: fast init done
    [   10.988491] random: crng init done
     

     

    Но вместо этого

     

    [    9.048506] systemd[1]: Condition check resulted in Create list of required static device nodes for the current kernel being skipped.
    [    9.060544] systemd[1]: Reached target Remote File Systems.
    [    9.617061] systemd-journald[2084]: Received request to flush runtime journal from PID 1
    [   11.012221] random: crng init done
    [   11.015626] random: 7 urandom warning(s) missed due to ratelimiting
     

    Соответственно, не поднимается сетка, не грузятся драйвера

    забыл добавить, что корневая ФС запускается из ОЗУ (Initramfs). 

    Проблема возникает чрезвычайно редко, раз на сотни запусков

  13. Добрый день, коллеги. Есть кастомная плата, на которой поднят Линукс. Эпизодически (очень редко) при подаче питания операционная система запускается некорректно.

    Вот как выглядит лог при этом

    [    8.257785] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
    [    8.258642] ata2: SATA link down (SStatus 0 SControl 330)
    [    8.265003] usb usb2: Product: xHCI Host Controller
    [    8.265007] usb usb2: Manufacturer: Linux 4.19.0-gc1ea9c4e68e9 xhci-hcd
    [    8.265012] usb usb2: SerialNumber: xhci-hcd.0.auto
    [    8.270423] ata1: SATA link down (SStatus 0 SControl 330)
    [    8.275542] hub 2-0:1.0: USB hub found
    [    8.295896] hub 2-0:1.0: 1 port detected
    [    8.300952] pca954x 0-0073: probe failed
    [    8.305166] pca954x 0-0077: probe failed
    [    8.309205] cdns-i2c ff020000.i2c: 400 kHz mmio ff020000 irq 32
    [    8.315513] cdns-wdt fd4d0000.watchdog: Xilinx Watchdog Timer with timeout 10s
    [    8.323015] cdns-wdt ff150000.watchdog: Xilinx Watchdog Timer with timeout 10s
    [    8.330557] cpufreq: cpufreq_online: CPU0: Running at unlisted freq: 1066666 KHz
    [    8.338008] cpufreq: cpufreq_online: CPU0: Unlisted initial frequency changed to: 1199999 KHz
    [    8.378339] mmc0: SDHCI controller on ff160000.mmc [ff160000.mmc] using ADMA 64-bit
    [    8.423413] mmc1: SDHCI controller on ff170000.mmc [ff170000.mmc] using ADMA 64-bit
    [    8.439805] rtc_zynqmp ffa60000.rtc: setting system clock to 1970-01-01 00:00:17 UTC (17)
    [    8.447988] of_cfs_init
    [    8.450453] of_cfs_init: OK
    [    8.453370] cfg80211: Loading compiled-in X.509 certificates for regulatory database
    [    8.468876] mmc0: new HS200 MMC card at address 0001
    [    8.474443] mmcblk0: mmc0:0001 DA6128 116 GiB
    [    8.479280] mmcblk0boot0: mmc0:0001 DA6128 partition 1 4.00 MiB
    [    8.485601] mmcblk0boot1: mmc0:0001 DA6128 partition 2 4.00 MiB
    [    8.491628] mmcblk0rpmb: mmc0:0001 DA6128 partition 3 4.00 MiB, chardev (241:0)
    [    8.507413]  mmcblk0: p1 p2
    [    8.621481] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
    [    8.628014] clk: Not disabling unused clocks
    [    8.632284] ALSA device list:
    [    8.635247]   No soundcards found.
    [    8.639000] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2
    [    8.647608] cfg80211: failed to load regulatory.db
    [    8.652674] Freeing unused kernel memory: 832K
    [    8.680480] Run /init as init process
    [    8.708629] systemd[1]: System time before build time, advancing clock.
    [    8.719464] systemd[1]: systemd 241 running in system mode. (+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD -IDN2 +IDN -PCRE2 default-hierarchy=hybrid)
    [    8.741117] systemd[1]: Detected architecture arm64.
    [    8.756506] systemd[1]: Set hostname to <igor-VirtualBox>.
    [    8.851423] systemd[1]: File /lib/systemd/system/systemd-journald.service:12 configures an IP firewall (IPAddressDeny=any), but the local system does not support BPF/cgroup based firewalling.
    [    8.868806] systemd[1]: Proceeding WITHOUT firewalling in effect! (This warning is only shown for the first loaded unit using IP firewalling.)
    [    8.972149] random: systemd: uninitialized urandom read (16 bytes read)
    [    8.979014] systemd[1]: Listening on Syslog Socket.
    [    8.996526] random: systemd: uninitialized urandom read (16 bytes read)
    [    9.003417] systemd[1]: Listening on Journal Socket.
    [    9.020502] random: systemd: uninitialized urandom read (16 bytes read)
    [    9.027309] systemd[1]: Listening on Journal Socket (/dev/log).
    [    9.048506] systemd[1]: Condition check resulted in Create list of required static device nodes for the current kernel being skipped.
    [    9.060544] systemd[1]: Reached target Remote File Systems.
    [    9.617061] systemd-journald[2084]: Received request to flush runtime journal from PID 1
    [   11.012221] random: crng init done
    [   11.015626] random: 7 urandom warning(s) missed due to ratelimiting

    Вот так выглядит лог с той же платы при нормальной загрузке

    [    8.221371] hub 1-0:1.0: 1 port detected
    [    8.225494] xhci-hcd xhci-hcd.0.auto: xHCI Host Controller
    [    8.230981] xhci-hcd xhci-hcd.0.auto: new USB bus registered, assigned bus number 2
    [    8.238635] xhci-hcd xhci-hcd.0.auto: Host supports USB 3.0  SuperSpeed
    [    8.245371] usb usb2: New USB device found, idVendor=1d6b, idProduct=0003, bcdDevice= 4.19
    [    8.253631] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
    [    8.258640] ata2: SATA link down (SStatus 0 SControl 330)
    [    8.260853] usb usb2: Product: xHCI Host Controller
    [    8.266261] ata1: SATA link down (SStatus 0 SControl 330)
    [    8.271107] usb usb2: Manufacturer: Linux 4.19.0-gc1ea9c4e68e9 xhci-hcd
    [    8.271112] usb usb2: SerialNumber: xhci-hcd.0.auto
    [    8.288249] hub 2-0:1.0: USB hub found
    [    8.292016] hub 2-0:1.0: 1 port detected
    [    8.297073] pca954x 0-0073: probe failed
    [    8.301286] pca954x 0-0077: probe failed
    [    8.305315] cdns-i2c ff020000.i2c: 400 kHz mmio ff020000 irq 32
    [    8.311597] cdns-wdt fd4d0000.watchdog: Xilinx Watchdog Timer with timeout 10s
    [    8.319079] cdns-wdt ff150000.watchdog: Xilinx Watchdog Timer with timeout 10s
    [    8.326618] cpufreq: cpufreq_online: CPU0: Running at unlisted freq: 1066666 KHz
    [    8.334064] cpufreq: cpufreq_online: CPU0: Unlisted initial frequency changed to: 1199999 KHz
    [    8.374309] mmc0: SDHCI controller on ff160000.mmc [ff160000.mmc] using ADMA 64-bit
    [    8.419269] mmc1: SDHCI controller on ff170000.mmc [ff170000.mmc] using ADMA 64-bit
    [    8.435691] rtc_zynqmp ffa60000.rtc: setting system clock to 1970-01-01 00:22:44 UTC (1364)
    [    8.444047] of_cfs_init
    [    8.446514] of_cfs_init: OK
    [    8.449424] cfg80211: Loading compiled-in X.509 certificates for regulatory database
    [    8.464905] mmc0: new HS200 MMC card at address 0001
    [    8.470470] mmcblk0: mmc0:0001 DA6128 116 GiB
    [    8.475305] mmcblk0boot0: mmc0:0001 DA6128 partition 1 4.00 MiB
    [    8.481612] mmcblk0boot1: mmc0:0001 DA6128 partition 2 4.00 MiB
    [    8.487641] mmcblk0rpmb: mmc0:0001 DA6128 partition 3 4.00 MiB, chardev (241:0)
    [    8.497519]  mmcblk0: p1 p2
    [    8.616954] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
    [    8.623497] clk: Not disabling unused clocks
    [    8.627767] ALSA device list:
    [    8.630730]   No soundcards found.
    [    8.634458] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2
    [    8.643071] cfg80211: failed to load regulatory.db
    [    8.648140] Freeing unused kernel memory: 832K
    [    8.672437] Run /init as init process
    [    8.701201] systemd[1]: System time before build time, advancing clock.
    [    8.712153] systemd[1]: systemd 241 running in system mode. (+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD -IDN2 +IDN -PCRE2 default-hierarchy=hybrid)
    [    8.733784] systemd[1]: Detected architecture arm64.
    
    Welcome to Debian GNU/Linux 10 (buster)!
    
    [    8.748462] systemd[1]: Set hostname to <igor-VirtualBox>.
    [    8.846198] systemd[1]: File /lib/systemd/system/systemd-journald.service:12 configures an IP firewall (IPAddressDeny=any), but the local system does not support BPF/cgroup based firewalling.
    [    8.863304] systemd[1]: Proceeding WITHOUT firewalling in effect! (This warning is only shown for the first loaded unit using IP firewalling.)
    [    8.966718] random: systemd: uninitialized urandom read (16 bytes read)
    [    8.973661] systemd[1]: Listening on Journal Socket.
    [  OK  ] Listening on Journal Socket.
    [    8.988489] random: systemd: uninitialized urandom read (16 bytes read)
    [    8.995307] systemd[1]: Listening on Journal Socket (/dev/log).
    [  OK  ] Listening on Journal Socket (/dev/log).
    [    9.016473] random: systemd: uninitialized urandom read (16 bytes read)
    [    9.023231] systemd[1]: Listening on udev Kernel Socket.
    [  OK  ] Listening on udev Kernel Socket.
    [    9.046088] systemd[1]: Mounting POSIX Message Queue File System...
             Mounting POSIX Message Queue File System...
    [    9.070020] systemd[1]: Mounting Huge Pages File System...
             Mounting Huge Pages File System...
             Mounting Kernel Debug File System...
    [  OK  ] Started Forward Password R…uests to Wall Directory Watch.
    [  OK  ] Listening on Syslog Socket.
             Starting Load Kernel Modules...
    [  OK  ] Created slice system-serial\x2dgetty.slice.
    [  OK  ] Created slice system-getty.slice.
    [  OK  ] Listening on udev Control Socket.
             Starting udev Coldplug all Devices...
             Starting Remount Root and Kernel File Systems...
    [  OK  ] Created slice User and Session Slice.
    [  OK  ] Reached target Slices.
    [  OK  ] Reached target Remote File Systems.
    [  OK  ] Listening on Journal Audit Socket.
             Starting Journal Service...
    [  OK  ] Reached target Swap.
    [  OK  ] Started Dispatch Password …ts to Console Directory Watch.
    [  OK  ] Reached target Local Encrypted Volumes.
    [  OK  ] Reached target Paths.
    [  OK  ] Listening on initctl Compatibility Named Pipe.
    [  OK  ] Mounted POSIX Message Queue File System.
    [  OK  ] Started Journal Service.
    [  OK  ] Mounted Huge Pages File System.
    [  OK  ] Mounted Kernel Debug File System.
    [  OK  ] Started Load Kernel Modules.
    [  OK  ] Started Remount Root and Kernel File Systems.
             Starting Create System Users...
             Starting Load/Save Random Seed...
             Mounting Kernel Configuration File System...
             Starting Apply Kernel Variables...
             Starting Flush Journal to Persistent Storage...
    [  OK  ] Started Create System Users.
    [  OK  ] Started Load/Save Random Seed.
    [  OK  ] Mounted Kernel Configuration File System.
    [  OK  ] Started Apply Kernel Variables.
             Starting Create Static Device Nodes in /dev...
    [    9.601001] systemd-journald[2083]: Received request to flush runtime journal from PID 1
    [  OK  ] Started Create Static Device Nodes in /dev.
    [  OK  ] Started Flush Journal to Persistent Storage.
    [  OK  ] Reached target Local File Systems (Pre).
    [  OK  ] Reached target Local File Systems.
             Starting Create Volatile Files and Directories...
             Starting udev Kernel Device Manager...
    [  OK  ] Started Create Volatile Files and Directories.
    [  OK  ] Started udev Kernel Device Manager.
    [  OK  ] Started udev Coldplug all Devices.
             Starting Helper to synchronize boot up for ifupdown...
             Starting Update UTMP about System Boot/Shutdown...
             Starting Network Time Synchronization...
    [  OK  ] Started Entropy daemon using the HAVEGE algorithm.
    [  OK  ] Started Update UTMP about System Boot/Shutdown.
    [  OK  ] Found device /dev/ttyPS0.
    [    9.942171] random: fast init done
    [  OK  ] Started Network Time Synchronization.
    [  OK  ] Started Helper to synchronize boot up for ifupdown.
    [   11.029804] random: crng init done
    [   11.033211] random: 7 urandom warning(s) missed due to ratelimiting
    [  OK  ] Listening on Load/Save RF …itch Status /dev/rfkill Watch.
             Starting Raise network interfaces...
    [  OK  ] Reached target System Initialization.
    [  OK  ] Listening on D-Bus System Message Bu[   12.652740] pps pps0: new PPS source ptp0
    s Socket.
    [   12.659375] macb ff0e0000.ethernet: gem-ptp-timer ptp clock registered.
    [   12.667402] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
    [  OK  ] Reached target Sockets.
    [  OK  ] Reached target Basic System.
    [  OK  ] Started Regular background program processing daemon.
             Starting System Logging Service...
             Starting LSB: drv start...
    [  OK  ] Started Daily Cleanup of Temporary Directories.
    [  OK  ] Started D-Bus System Message Bus.
    [   12.772925] EXT4-fs (mmcblk0p1): recovery complete
    [   12.777733] EXT4-fs (mmcblk0p1): mounted filesystem with ordered data mode. Opts: (null)
             Starting Login Service...
    [  OK  ] Reached target System Time Synchronized.
    [  OK  ] Started Daily rotation of log files.
    [  OK  ] Started Daily apt download activities.
    [   12.858046] EXT4-fs (mmcblk0p2): recovery complete
    [   12.863550] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
    [  OK  ] Started Daily apt upgrade and clean activities.
    [   12.883664] dmaproxy: loading out-of-tree module taints kernel.
    [  OK  ] Reached target Timers.
    [  OK  ] Started System Logging Service.
    [  OK  ] Started Raise network interfaces.
    [   12.943951] al5e 80000000.al5e: l2 prefetch size:0 (bits), l2 color bitdepth:8
    [  OK  ] Reached target Network.
             Starting Permit User Sessions...
    [   12.979929] fpga->H2F = ffffff8012400000
    [   12.983916] etn buffers:
    [   12.986469]   raw_Y  1920x1080 buffer size 2 x 4147200
    [   12.991617]   raw_Cr 1920x1080 buffer size 2 x 4147200
    [   12.996751]   tpw 640x512 buffer size 2 x 655360
    [   13.001365]   jpeg TV buffer size 2 x 4147200
    [   13.005713]   jpeg TPV buffer size 2 x 4147200
    [   13.010157]   UART6 buffer size 1024
    [   13.013724]   UART8 buffer size 1024
    [   13.017300] etn interrupts:
    [   13.020079]   raw_Y irq           (0) 48
    [   13.023993]   raw_Cr irq           (1) 49
    [   13.028004]   tpv irq           (2) 50
    [   13.031744]   jpeg tv irq           (5) 53
    [   13.035859]   jpeg tpv irq           (6) 54
    [   13.035862]   hps irq           (4) 52
    [   13.035863]   Uart6 irq           (9) 57
             [   13.035865]   Uart8 irq           (10) 58
    [   13.035868] RAW buffers:
    Starting OpenBSD Secure Shell server...[   13.037504] Add buff, addr=0x35e00000, dma_addr=0x35e00000/0x1af0000
    
    [   13.067833] Add buff, addr=0x36200000, dma_addr=0x36200000/0x1b10000
    [   13.074754] Add buff, addr=0x36600000, dma_addr=0x36600000/0x1b30000
    [   13.081426] Add buff, addr=0x36700000, dma_addr=0x36700000/0x1b38000
    [  OK  ] Started Permit User Sessions.
    [   13.088466] Add buff, addr=0x36800000, dma_addr=0x36800000/0x1b40000
    [   13.100599] Add buff, addr=0x36c00000, dma_addr=0x36c00000/0x1b60000
    [   13.108207] Add buff, addr=0x37000000, dma_addr=0x37000000/0x1b80000
    [  OK  ] Started Getty on tty1.
    [   13.116043] Add buff, addr=0x37400000, dma_addr=0x37400000/0x1ba0000
    [   13.127689] Add buff, addr=0x37800000, dma_addr=0x37800000/0x1bc0000
    [   13.134849] Add buff, addr=0x37c00000, dma_addr=0x37c00000/0x1be0000
    [   13.141851] Add buff, addr=0x38000000, dma_addr=0x38000000/0x1c00000
    [   13.148882] Add buff, addr=0x38400000, dma_addr=0x38400000/0x1c20000
    [   13.155234] Write buffer addresses to regs
    [   13.155238] fpga->raw_Y.buf[0]->dma_addr =  35e00000
    [   13.155245] fpga->raw_Y.buf[0]->dma_addr + TV_IMAGE_SIZE/2 =  35ffa400
    [   13.170813] fpga->tpv.buf[0]->dma_addr =  36600000
    [   13.178972] etn: Init success!ttyPS0.
    
    [  OK  ] Reached target Login Prompts.
    [  OK  ] Started OpenBSD Secure Shell server.
    [  OK  ] Started Login Service.
    [   13.224641] macb ff0e0000.ethernet: gem-ptp-timer ptp clock unregistered.
    [  OK  ] Reached target Multi-User System.
    [   13.256054] pps pps0: new PPS source ptp0
    [   13.260081] macb ff0e0000.ethernet: gem-ptp-timer ptp clock registered.
    [   13.266836] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
    [   15.289030] macb ff0e0000.ethernet eth0: link up (1000/Full)
    [   15.294722] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
    
    Debian GNU/Linux 10 igor-VirtualBox ttyPS0

    Как это починить и куда копать ?

    Спасибо

  14. 28 minutes ago, карамболь said:

    нет... мимо прошло 

    вот из DTS для VCU

    vcu_0: vcu@80000000 {
                #address-cells = <2>;
                #clock-cells = <1>;
                #size-cells = <2>;
                clock-names = "pll_ref", "aclk", "vcu_core_enc", "vcu_core_dec", "vcu_mcu_enc", "vcu_mcu_dec";
                clocks = <&misc_clk_0>, <&zynqmp_clk 71>, <&vcu_0 1>, <&vcu_0 2>, <&vcu_0 3>, <&vcu_0 4>;
                compatible = "xlnx,vcu-1.2", "xlnx,vcu";
                interrupt-names = "vcu_host_interrupt";
                interrupt-parent = <&gic>;
                interrupts = <0 89 4>;
                ranges ;
                reg = <0x0 0x80040000 0x0 0x1000>, <0x0 0x80041000 0x0 0x1000>;
                reg-names = "vcu_slcr", "logicore";
                encoder: al5e@80000000 {
                    compatible = "al,al5e-1.2", "al,al5e";
                    interrupt-parent = <&gic>;
                    interrupts = <0 89 4>;
                    reg = <0x0 0x80000000 0x0 0x10000>;
                };
            };

    reserved-memory в DTS не обнаружено

  15. Поделюсь, может кому пригодится...

    1. Повесил проблемный интерфейс на HPC, на сигналы  AхCACHE повесил константы. Результат - артефакты с чтением предыдущих данных исчезли

    https://support.xilinx.com/s/article/69446?language=en_US

    2. Изначально использовался порт HP. Для программного управления кэшем использовал в драйвере функции отсюда https://memotut.com/how-to-cache-enable-access-to-fpga-memory-from-linux-1580e/

    Результат положительный. Кэш сбрасывается в ОЗУ перед стартом ДМА из ОЗУ в PL.

    Решил остановиться на первом варианте, т.к. нет уверенности в надежности решения в пункте 2.

     

    Пысы. Для себя так и не понял, каким образом разработчик должен обеспечить согласование кэша и ОЗУ при использовании порта HP. Использование ассемблерных вставок в коде драйвера не кажется мне разумным, иначе разработчики ядра предоставили бы такую возможность (может я плохо искал ?).

    Кстати, модуль VCU, как раз, использует порт HP для ДМА транзакций, но работая с H265, я никаких артефактов не наблюдал. Поверхностное изучение кода драйвера VCU не дало никого объяснения, явных признаков управления кэшем я там не обнаружил

    Пысы2 Всегда полагал, что при динамическом выделении памяти с помощью функции dma_alloc_coherent, ядро должно возвращать непрерывную область памяти, кэширование которой запрещено.

    Т.е. в ручном управлении кэшем необходимости нет. Но это видимо не так ?

     

    Буду весьма благодарен, если кто-нибудь сочтет нужным просветить меня в этих вопросах

  16. 46 minutes ago, sonycman said:

    Ultrascale имеет когерентные порты, работа через которые позволяет обойтись без инвалидации кэша.

    По крайней мере в baremetal это работает.

    есть 2 интерфейса HPC, но они оба заняты VCU

  17. 14 minutes ago, Alex77 said:

    как вариант

    file:///D:/xilinx/Vitis/2022.2/data/embeddedsw/XilinxProcessorIPLib/drivers/zdma_v1_15/examples/xzdma_simple_example.c

    ну или для самых "ленивых"

    BSP and Libraries Document Collection (UG643)
    услуга читать вслух - будет дорого

    🙂

     

    да, у меня была мысль использовать код из baremetall библиотеки. Вроде в 32-х разрядных системах не было таких проблем. Полагал, что можно использовать - EL0 accessibility to cache maintenance instructions. Видимо, выпилили...

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