карамболь
Участник*-
Постов
322 -
Зарегистрирован
-
Посещение
Весь контент карамболь
-
вот и я пытаюсь раскопать ) кое-что раскопал уже
-
Ultrascale+ DPU IP
карамболь опубликовал тема в Системы на ПЛИС - System on a Programmable Chip (SoPC)
Здравствуйте, коллеги. Появилась задача - поднять AI на ПЛИС. Поиски навели на DPU. Само IP ядро добавил в схему. Собрал BOOT.bin. Дальше затык. Как поднять DPU без петалинукса ? Это вообще реально ? Скачал отсюда https://www.pynq.io/board.html файловую систему. DTB и ядро свои. Как добавить DPU в DTB вроде бы понятно, но где брать драйвер (вроде, как zocl.ko). В файловой системе от Pynq драйвера не оказалось. Может кто-нибудь уже пытался такое проделать ? -
зевнул... думал, про USB камеру вопрос
-
dev/video1 например. Вы же хотите стянуть равку с камеры ? Равок будет столько, сколько укажите в count
-
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
-
проблема в отсутствии опыта и ограничений по времени. В принципе, результат меня устраивает пока
-
придется ломать голову в поисках всего необходимого и соответствующих зависимостей )) Дебиан был выбрал, как самый быстрый вариант развернуть систему на плате. Хотя, вы правы, конечно - Дебиан в данном случае избыточен
-
да ) плата специфическая и со стандартным shutdown никогда близко не познакомится, т.к. выключается всегда цинично снятием питания
-
да, весь Дебиан в ОЗУ. mmcblk0p0 и p1 это MMC на QSPI, там лежит ядро, dtb и упакованный Дебиан. Образы копирует с ММС в ОЗУ u-boot. До монтирования разделом ММС Линуксом дело даже не доходит при неправильно загрузке
-
так у меня же не десктоп, а кастомная плата, файловая система вся в ОЗУ. Что там может поломаться ?
-
Почему ? Я проиницализировал таймер на 10 сек. Сразу после запуска служб, стартует мой скрипт, который сначала останавливает таймер, а затем грузит необходимые драйвера и стартует основную программу. Если до старта моего скрипта дело не дойдет, то собака сбрасывает всю систему через PSU
-
спасибо за информацию. Пока решил обойтись сторожевым таймером )
-
Отправил пока плату на рентген. Есть подозрение на проблемы с монтажом
-
У меня много плат и одна загрузочная 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" благополучно выводится в консоль
-
Никто не сталкивался с таким ? Странное дело, FSBL отрабатывает, грузит все партишены. Проблема происходит только при запуске U-Boot или любого другого barematal приложения
-
Здравствуйте. На одной из новых плат обнаружилась проблема с загрузкой ПО. Попытался загрузить через 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
-
сделал копию логов (все, что выше одинаково) при корректном запуске [ 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)
-
Согласен. Скорее, не до конца загружается. При этом, при подключении к консоли можно залогиниться, запустить 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). Проблема возникает чрезвычайно редко, раз на сотни запусков
-
Добрый день, коллеги. Есть кастомная плата, на которой поднят Линукс. Эпизодически (очень редко) при подаче питания операционная система запускается некорректно. Вот как выглядит лог при этом [ 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 Как это починить и куда копать ? Спасибо
-
вот из 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 не обнаружено
-
нет... мимо прошло
-
Поделюсь, может кому пригодится... 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, ядро должно возвращать непрерывную область памяти, кэширование которой запрещено. Т.е. в ручном управлении кэшем необходимости нет. Но это видимо не так ? Буду весьма благодарен, если кто-нибудь сочтет нужным просветить меня в этих вопросах
-
есть 2 интерфейса HPC, но они оба заняты VCU
-
да, у меня была мысль использовать код из baremetall библиотеки. Вроде в 32-х разрядных системах не было таких проблем. Полагал, что можно использовать - EL0 accessibility to cache maintenance instructions. Видимо, выпилили...
-
да вот и мне не найти никак... А код на асме, это который в исходниках (cache.S) лежит ?