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

Volkov

Свой
  • Постов

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

  • Посещение

Весь контент Volkov


  1. 100 Кинтексов 410-ых. Да, понимаю, это не тысяча, но хотелось хоть какую то скидку.
  2. Я смотрю цены Avnet -11к. Это при какой же партии настолько падает цена? Сколько я не пытался у меня ни разу не получилось договориться с дистрибутором о проектной цене.
  3. Посмотрел я цены на Версали... В общем за 2000 долларов(VM1102) 464 умножителя. И все это с ддр4, и вряд ли оно там на гигагерце будет работать. Так что я похоже пересаживаюсь на GPU. На версали АИ совсем фантастические цены, я не понимаю, где применяют чипы за 20 - 30 т долларов. Для меня потолок 1000 - 2000, дальше просто включать их стремаюсь.
  4. У меня LTC3636 кз делает по выходу со входом. Как я понял, некоторые дисюхи линеара очень чувствительны к статике. по началу я палил их блоком питания, и пару раз просто статикой. Хотя, точно понять что же их палило я так и не смог.
  5. Жду Версаль:) - долго жду. Там 600 должно еще лучше пойти.
  6. Раньше, щелкнув правой кнопкой мыши у пина, автоматически к пину подключалась нет, и рисовалась. Теперь, появляется меню, вместо цепи. может это из за виндовс 10, или я давно проекты не создавал с нуля. Но это бесит, постоянно жать кнопку n, что бы рисовать цепь.
  7. 256 МБ, по умолчанию в настройках ядра стоит. Я увеличивал до 512, но это ничего не меняло. А есть простой пример, как по этой дороге пройти? Я не подниму это все, кажется.
  8. Эх, нужно было раньше попробовать без записи запустить В общем это не дма - это запись на диск, в какой то момент больше 10 мс. Тогда - один вариант писать большим буфером. То есть, один наполняется - memcpy(args0.data_buf0[row_counter], rx_proxy_interface_p->buffer, row_length*sizeof(unsigned char)); другой в этот момент, в созданном потоке пишется pthread_create(&tid, NULL, file_save_thread, (void*) &args0); Но как я понимаю - скоростей, используя memcopy не достичь. Но как по другому - я не нашел нормального примера. Да и те, что у ксалинкса - вот пишут они что нужно добавить дерево устройств &sata { dma-coherent; } Но после этого у меня SATA диск не распознается. xilinx-psgtr fd400000.zynqmp_phy: Lane:0 type:2 protocol:2 pll_locked:yes [ 2.624206] ahci-ceva fd0c0000.ahci: AHCI 0001.0301 32 slots 2 ports 6 Gbps 0x3 impl platform mode [ 2.633162] ahci-ceva fd0c0000.ahci: flags: 64bit ncq sntf pm clo only pmp fbs pio slum part ccc sds apst [ 2.643471] scsi host0: ahci-ceva [ 2.647084] zynqmp_pll_disable() clock disable failed for dpll_int, ret = -13 [ 2.654258] scsi host1: ahci-ceva [ 2.657710] ata1: SATA max UDMA/133 mmio [mem 0xfd0c0000-0xfd0c1fff] port 0x100 irq 37 [ 2.665622] ata2: SATA max UDMA/133 mmio [mem 0xfd0c0000-0xfd0c1fff] port 0x180 irq 37 2.983884] ata2: SATA link down (SStatus 0 SControl 330) 12.673522] ata1: softreset failed (1st FIS failed) [ 13.138302] ata1: SATA link up 6.0 Gbps (SStatus 133 SControl 330) [ 18.514306] ata1.00: qc timeout (cmd 0xec) [ 18.518401] ata1.00: failed to IDENTIFY (I/O error, err_mask=0x4) [ 18.986302] ata1: SATA link up 6.0 Gbps (SStatus 133 SControl 330) [ 29.266301] ata1.00: qc timeout (cmd 0xec) [ 29.270394] ata1.00: failed to IDENTIFY (I/O error, err_mask=0x4) [ 29.276486] ata1: limiting SATA link speed to 3.0 Gbps [ 29.746302] ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 320) [ 59.986302] ata1.00: qc timeout (cmd 0xec) [ 59.990399] ata1.00: failed to IDENTIFY (I/O error, err_mask=0x4) [ 69.996715] ata1: softreset failed (1st FIS failed) [ 80.001475] ata1: softreset failed (1st FIS failed) [ 115.006649] ata1: softreset failed (1st FIS failed) [ 115.011520] ata1: limiting SATA link speed to 1.5 Gbps [ 120.016630] ata1: softreset failed (1st FIS failed) [ 120.021503] ata1: reset failed, giving up И вроде бы все делаешь по AR#71584, как бы должно было работать. И ДМА, так же, где то у них в вики, может использовать когерентную память, но если добавить dma_proxy { dma-coherent; compatible ="xlnx,dma_proxy"; dmas = <&axi_dma_0 0 &axi_dma_0 1>; dma-names = "dma_proxy_tx", "dma_proxy_rx"; }; Буфер возвращает какую то кашу, из различных посылок. Видно, что данные содержат данные предидущих посылок, в каком то хаотичном порядке.
  9. Пытаюсь понять причину, и уже долго с эти сам подвис. Задача - передавать с PL в PS по DMA 262656 байт, с периодичностью 6.4 мс, и записывать их на SSD. Но передача, временами останавливается на время большее чем 10 мс. Я использую драйвер dma-proxy, прерывания через AXI GPIO. В прикладном приложении, я ожидаю прерывания, завершения передачи по ДМА, и записываю буфер в файл. while (file_number < max_files) { rx_proxy_interface_p->length = test_size; u_int32_t info = 1; /* unmask */ ssize_t nb = write(fd, &info, sizeof(info)); if (nb < sizeof(info)) { perror("write"); close(fd); exit(EXIT_FAILURE); } t0 = clock(); int ret = poll(&fds, 1, -1); if (ret >= 1) { nb = read(fd, &info, sizeof(info)); if (nb == sizeof(info)) { *((volatile unsigned *)(gpio_ptr + GPIO_IP_ISR)) = 0x1; ioctl(rx_proxy_fd, 0, &dummy); if (rx_proxy_interface_p->status != PROXY_NO_ERROR) printf("Proxy rx transfer error %d\n",row_counter); fwrite(rx_proxy_interface_p->buffer, 1, row_length, fp); t1 = clock(); } } else { printf("ret is not >= 1\n"); perror("poll()"); close(fd); exit(EXIT_FAILURE); } time_in_seconds = (double)(t1 - t0) / CLOCKS_PER_SEC; printf("max_time : %12.9f row : %d \n", time_in_seconds,row_counter); } И как бы оно все работает, время выполнения, которое я меряю не больше 2.5 мс. Но это не так. В плисе я вижу что время передачи по ДМА больше 8 мс. Изначально я писал в два буфера - один писал другой записывал в отдельном потоке. Но там, так же были большие задержки, да и memcpy - отбирало 2 мс, а когда запускался второй поток, то это время удваивалось. Поэтому я и решил писать по 200 КБ сразу в файл. Но и тут беда - непонятно почему ДМА простаивает. dma-p-test.c
  10. Это не у ТС проблема - это петялинукс косячил. Создал новый проект, но в этот раз я изначально, перед petalinux-build ввел все адреса и размеры партов. И все заработало!!!!! Три дня я боролся фиг знает с чем.
  11. Это конфиг петалинукса. Я поменял и в у-буте - не помогло. Так это и есть - plaform-top.h, я туда скопировал всю эту ерунду.
  12. Я указал и адрес и размер, на скрине видно. И в system-conf.dtsi появились разделы с правильными адресами. partition@0x00000000 { label = "boot"; reg = <0x00000000 0x01000000>; }; partition@0x01000000 { label = "bootenv"; reg = <0x01000000 0x00040000>; }; partition@0x01040000 { label = "kernel"; reg = <0x01040000 0x02000000>; }; partition@0x03040000 { label = "jffs2"; reg = <0x03040000 0x02000000>; }; Я их еще и в system-user.dtsi прописал partition@boot { /* for testing purpose */ label = "boot"; reg = <0x0 0x01000000>; }; partition@bootenv { /* for testing purpose */ label = "bootenv"; reg = <0x1000000 0x00040000>; }; partition@kernel { /* for testing purpose */ label = "kernel"; reg = <0x01040000 0x02000000>; }; partition@jffs2 { /* for testing purpose */ label = "jffs2"; reg = <0x03040000 0x02000000>; }; И в #define CONFIG_EXTRA_ENV_SETTINGS они есть. Но в u-boot попадают левые адреса, и размеры. Warning - bad CRC, using default environment Возможно default environment это не переменные из CONFIG_EXTRA_ENV_SETTINGS . Но я не знаю где эти default environment прописать.
  13. Мыши жрут то, на что у них есть хоть какие то примеры. Вот то, что я делаю. petalinux-config --get-hw-description=/home/user/petalinux/2019.2 petalinux-build petalinux-package --boot --format BIN --fsbl images/linux/zynqmp_fsbl.elf --u-boot images/linux/u-boot.elf --pmufw images/linux/pmufw.elf --fpga /home/user/petalinux/2019.2/zynqus/Zynq_TOP.bit --force И задав партишины и и их размеры, я ведь указываю с какого адреса, кто где живет. Видимо я что то упустил изначально.
  14. В petalinux-config устанавливаю размеры partition Затем из platform-auto.h копирую в plaform-top.h #define CONFIG_EXTRA_ENV_SETTINGS \ SERIAL_MULTI \ CONSOLE_ARG \ DFU_ALT_INFO_RAM \ PSSERIAL0 \ "nc=setenv stdout nc;setenv stdin nc;\0" \ "ethaddr=00:0a:35:00:22:01\0" \ "autoload=no\0" \ "sdbootdev=0\0" \ "clobstart=0x10000000\0" \ "netstart=0x10000000\0" \ "dtbnetstart=0x23fff000\0" \ "loadaddr=0x10000000\0" \ "bootsize=0x1000000\0" \ "bootstart=0x0\0" \ "boot_img=BOOT.BIN\0" \ "load_boot=tftpboot ${clobstart} ${boot_img}\0" \ "update_boot=setenv img boot; setenv psize ${bootsize}; setenv installcmd \"install_boot\"; run load_boot test_img; setenv img; setenv psize; setenv installcmd\0" \ "install_boot=sf probe 0 && sf erase ${bootstart} ${bootsize} && " \ "sf write ${clobstart} ${bootstart} ${filesize}\0" \ "bootenvsize=0x40000\0" \ "bootenvstart=0x1000000\0" \ "eraseenv=sf probe 0 && sf erase ${bootenvstart} ${bootenvsize}\0" \ "jffs2size=0x2000000\0" \ "jffs2start=0x3040000\0" \ "jffs2_img=rootfs.jffs2\0" \ "load_jffs2=tftpboot ${clobstart} ${jffs2_img}\0" \ "update_jffs2=setenv img jffs2; setenv psize ${jffs2size}; setenv installcmd \"install_jffs2\"; run load_jffs2 test_img; setenv img; setenv psize; setenv installcmd\0" \ "install_jffs2=sf probe 0 && sf erase ${jffs2start} ${jffs2size} && " \ "sf write ${clobstart} ${jffs2start} ${filesize}\0" \ "kernelsize=0x2000000\0" \ "kernelstart=0x1040000\0" \ "kernel_img=image.ub\0" \ "load_kernel=tftpboot ${clobstart} ${kernel_img}\0" \ "update_kernel=setenv img kernel; setenv psize ${kernelsize}; setenv installcmd \"install_kernel\"; run load_kernel test_crc; setenv img; setenv psize; setenv installcmd\0" \ "install_kernel=sf probe 0 && sf erase ${kernelstart} ${kernelsize} && " \ "sf write ${clobstart} ${kernelstart} ${filesize}\0" \ "cp_kernel2ram=sf probe 0 && sf read ${netstart} ${kernelstart} ${kernelsize}\0" \ "dtb_img=system.dtb\0" \ "load_dtb=tftpboot ${clobstart} ${dtb_img}\0" \ "update_dtb=setenv img dtb; setenv psize ${dtbsize}; setenv installcmd \"install_dtb\"; run load_dtb test_img; setenv img; setenv psize; setenv installcmd\0" \ "fault=echo ${img} image size is greater than allocated place - partition ${img} is NOT UPDATED\0" \ "test_crc=if imi ${clobstart}; then run test_img; else echo ${img} Bad CRC - ${img} is NOT UPDATED; fi\0" \ "test_img=setenv var \"if test ${filesize} -gt ${psize}\\; then run fault\\; else run ${installcmd}\\; fi\"; run var; setenv var\0" \ "netboot=tftpboot ${netstart} ${kernel_img} && bootm\0" \ "default_bootcmd=run cp_kernel2ram && bootm ${netstart}\0" \ "" Тут, в CONFIG_EXTRA_ENV_SETTINGS, все смещения и размеры правильные. bootsize=0x1000000 - 16 МБ, а boot.bin 6.6 MB. Дальше радел bootenv bootenvstart=0x1000000 bootenvsize=0x40000 После него идет kernel kernelstart=0x1040000 И я ожидал эти бутарги после загрузки увидеть в u-boot. Но когда я их вывожу, то вижу что они совсем другие bootenvstart=0x100000 kernelstart=0x140000 Я пробовал записать правильные смещения, для bootenvstart, но после этого u-boot не грузится. Проблема в том, что у меня грузятся дефолтные переменные, которые не соответствуют,тем что я установил в проекте. И я не знаю, откуда они берутся, я ожидал, что они будут браться из /project-spec/meta-user/recipes-bsp/u-boot/files/platform-top.h
  15. во время загрузки, получаю предупреждение Loading Environment from SPI Flash... SF: Detected n25q512a with page size 512 Bytes, erase size 128 KiB, total 128 MiB *** Warning - bad CRC, using default environment Это как бы понятно, бутарги не сохранялись. и грузятся те что по умолчанию Я установил в реталинукс-конфиг партишины, Скопировал CONFIG_EXTRA_ENV_SETTINGS в platform-top.h Но дефолтные бутарги не соответствуют тем что я установил. В итоге, kernel грузится не с того адреса, так как kernelstart не соответствует правильному смещению. И если я установлю правильное смещение и сохраню - u-boot после этого не грузится.
  16. "с угрозами обращения в суд, если ПО не будет куплено" - а могут и без предложений купить, сразу в суд подать.
  17. Analog Devices Files Patent Infringement Lawsuit Against Xilinx Dec 5 2019 - Norwood, MA Analog Devices, Inc. (NASDAQ: ADI), a leading global high-performance analog technology company, today announced that it has filed a patent infringement lawsuit against Xilinx, Inc. (Nasdaq: XLNX). The lawsuit focuses on the unauthorized use by Xilinx of several important ADI patents relating to converter technology in at least two of Xilinx’s High End Zynq UltraScale+ RFSoC products. “ADI is a market leader in analog, mixed-signal and power integrated circuit technologies and has one of the leading patent portfolios in the semiconductor industry. We have built this global leadership position through the diligent work of our employees throughout our company’s 55-year history, and our continued investment in research and development which totaled over $1 billion in the last fiscal year,” said Larry Weiss, Senior Vice President and General Counsel, Analog Devices. “We are committed to defending and protecting our intellectual property, which creates long-term value for all our stakeholders.” The lawsuit, filed in the United States District Court for the District of Delaware, seeks damages and an injunction that prevents Xilinx from selling any products that infringe ADI’s patents. The complaint can be viewed here. https://www.analog.com/en/about-adi/news-room/press-releases/2019/12-5-2019-adi-files-patent-infringement-lawsuit-against-xilinx.html
  18. Плата своя. Power loss при низкой нагрузке - два DC-DC по 0.6 Вт, и десять по 0.08 Вт. Это потребление под petalinux. Такое ощущение, что процессор не в простое, а загружен чем то.
  19. В общем, ничего не делая потребляет 8 Вт. Чип - ZU3EG. Если запускаю программирование PL то падает до 6 Вт. В sleep mode (echo mem > /sys/power/state) потребление падает до 4 Вт. И если с этих 4 Вт вычесть 2.4 Вт всех DC-DC то получается, что в режиме сна PS потребляет 1.6 Вт, а должна по идее потреблять 0.2 Вт. И не понятно почему, процессорная часть, ничего не делая потребляет 2 Вт. Может быть, нужно включить масштабирование частоты, CPU IDLE, как описано в https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18841827/Zynq+Power+Management
  20. Спасибо! SATA запустилась. [ 4.323226] ata1: SATA link up 6.0 Gbps (SStatus 133 SControl 330) [ 4.330263] ata1.00: ATA-9: SFSA240GU4AA4TO-I-HC-226-STD, SBR12055, max UDMA/ 133 [ 4.337653] ata1.00: 468862128 sectors, multi 1: LBA48 NCQ (depth 32) [ 4.344367] ata1.00: configured for UDMA/133 [ 4.348878] scsi 0:0:0:0: Direct-Access ATA SFSA240GU4AA4TO- 2055 PQ : 0 ANSI: 5 [ 4.357456] sd 0:0:0:0: [sda] 468862128 512-byte logical blocks: (240 GB/224 GiB) [ 4.364951] sd 0:0:0:0: [sda] Write Protect is off [ 4.369769] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, does n't support DPO or FUA [ 4.380093] sd 0:0:0:0: [sda] Attached SCSI disk [ 4.384869] Freeing unused kernel memory: 832K [ 4.407239] Run /init as init process Траблы были из за не пропаянного разъема.
  21. DP83867IRRGZ интерфейс RGMII. 0xC он может - RX_D0 - strap mode 1, RX_D2 - strap mode 4 У меня референс клок на Line 0 - 100 МГц. Но это не должно влиять, я ведь указал что клок нужно брать с line 3, а там 150 МГц.
  22. Езернет подключен к RGMII. Вынул SATA с разъема - и пинги проходят. вот что я добавил в system-user.dtsi для езернет &gem3 { phy-handle = <&phyc>; pinctrl-names = "default"; /*pinctrl-0 = <&pinctrl_gem3_default>;*/ phyc: ethernet-phy@c { reg = <0xc>; ti,rx-internal-delay = <0x8>; ti,tx-internal-delay = <0xa>; ti,fifo-depth = <0x1>; ti,rxctrl-strap-worka; }; }; Может быть еще нужно добавить pinctrl для RGMII.
  23. ping failed; host 192.168.2.1 is not alive Езернет подключен к line3. Референсный клок 150 МГц - так же на Line 3. сейчас попробую подключить SATA на Line 0.
×
×
  • Создать...