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

карамболь

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

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

  • Посещение

Весь контент карамболь


  1. вот и я пытаюсь раскопать ) кое-что раскопал уже
  2. Здравствуйте, коллеги. Появилась задача - поднять AI на ПЛИС. Поиски навели на DPU. Само IP ядро добавил в схему. Собрал BOOT.bin. Дальше затык. Как поднять DPU без петалинукса ? Это вообще реально ? Скачал отсюда https://www.pynq.io/board.html файловую систему. DTB и ядро свои. Как добавить DPU в DTB вроде бы понятно, но где брать драйвер (вроде, как zocl.ko). В файловой системе от Pynq драйвера не оказалось. Может кто-нибудь уже пытался такое проделать ?
  3. зевнул... думал, про USB камеру вопрос
  4. dev/video1 например. Вы же хотите стянуть равку с камеры ? Равок будет столько, сколько укажите в count
  5. v4l2-ctl --device path/to/video_device --set-fmt-video=width=width,height=height,pixelformat=format --stream-mmap --stream-to=path/to/output --stream-count=number_of_frames_to_capture
  6. проблема в отсутствии опыта и ограничений по времени. В принципе, результат меня устраивает пока
  7. придется ломать голову в поисках всего необходимого и соответствующих зависимостей )) Дебиан был выбрал, как самый быстрый вариант развернуть систему на плате. Хотя, вы правы, конечно - Дебиан в данном случае избыточен
  8. да ) плата специфическая и со стандартным shutdown никогда близко не познакомится, т.к. выключается всегда цинично снятием питания
  9. да, весь Дебиан в ОЗУ. mmcblk0p0 и p1 это MMC на QSPI, там лежит ядро, dtb и упакованный Дебиан. Образы копирует с ММС в ОЗУ u-boot. До монтирования разделом ММС Линуксом дело даже не доходит при неправильно загрузке
  10. так у меня же не десктоп, а кастомная плата, файловая система вся в ОЗУ. Что там может поломаться ?
  11. Почему ? Я проиницализировал таймер на 10 сек. Сразу после запуска служб, стартует мой скрипт, который сначала останавливает таймер, а затем грузит необходимые драйвера и стартует основную программу. Если до старта моего скрипта дело не дойдет, то собака сбрасывает всю систему через PSU
  12. спасибо за информацию. Пока решил обойтись сторожевым таймером )
  13. Отправил пока плату на рентген. Есть подозрение на проблемы с монтажом
  14. У меня много плат и одна загрузочная 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" благополучно выводится в консоль
  15. Никто не сталкивался с таким ? Странное дело, FSBL отрабатывает, грузит все партишены. Проблема происходит только при запуске U-Boot или любого другого barematal приложения
  16. Здравствуйте. На одной из новых плат обнаружилась проблема с загрузкой ПО. Попытался загрузить через 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
  17. сделал копию логов (все, что выше одинаково) при корректном запуске [ 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)
  18. Согласен. Скорее, не до конца загружается. При этом, при подключении к консоли можно залогиниться, запустить 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). Проблема возникает чрезвычайно редко, раз на сотни запусков
  19. Добрый день, коллеги. Есть кастомная плата, на которой поднят Линукс. Эпизодически (очень редко) при подаче питания операционная система запускается некорректно. Вот как выглядит лог при этом [ 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 Как это починить и куда копать ? Спасибо
  20. вот из 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 не обнаружено
  21. Поделюсь, может кому пригодится... 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, ядро должно возвращать непрерывную область памяти, кэширование которой запрещено. Т.е. в ручном управлении кэшем необходимости нет. Но это видимо не так ? Буду весьма благодарен, если кто-нибудь сочтет нужным просветить меня в этих вопросах
  22. да, у меня была мысль использовать код из baremetall библиотеки. Вроде в 32-х разрядных системах не было таких проблем. Полагал, что можно использовать - EL0 accessibility to cache maintenance instructions. Видимо, выпилили...
  23. да вот и мне не найти никак... А код на асме, это который в исходниках (cache.S) лежит ?
×
×
  • Создать...