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

карамболь

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

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

  • Посещение

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


  1. Здравствуйте. Ситуация следующая: 1. На PS формирую данные 2. На PL реализован контроллер DMA и регистры управления 3. Когда PS подготовила данные, они копируются в буфер, который формируется в драйвере функцией dmam_alloc_coherent 4. После копирования данных, PS стартует DMA В результате данные оказываются испорченными. Подозреваю, что перед началам транзакции с помощью DMA, требуется некоторые манипуляции с кэшем, чтобы данные были принудительно сброшены из кэша с буфер на DDR. Вопрос - как это сделать ?
  2. Извиняюсь за молчание. Все еще хуже, чем я полагал. Все промытые платы поработал по 2 минуты и отвалились. После снова запускаются на 1-2 минуты. Отдал на рентген
  3. Промыл одну из плат в ультразвуковой ванне и она стала грузиться
  4. прочитал регистры и обнаружил, что DX6RSR2 = 1 и DX7RSR2 = 1 т.е. проблема с последним чипом. Пересобрал проект на 32 бита DDR, но FSBL никак не изменился, также виснет. Т.е. независимо от битности DDR, контроллер все равно проверяет калибровку, как для 64 бит ?
  5. Bypassed DDR Calibration steps of Data and VREF Training in psinit.c file By bypassing training steps, Directly write and read back of memory address and observed that DQ9 bit is not changing у меня вызывает исключение, попытка записи в DDR
  6. сначала попробую читать/писать... может удастся локализовать проблемный чип или трассу. Потом на рентген
  7. вот, что на форуме откопал получается, что можно читать и писать в память, если закомментировать в FSBL калибровку DDR ?
  8. дело в том, что чипы не менялись. Этих плат уже много и все запустились без проблем. Конфигурация контроллера памяти тоже не менялась. И в последней партии одна плата из 4-х работает
  9. а можно как-нибудь программно локализовать проблему ? Я пробовал читать регистры DDR_PHY_DXхGSR0, но у них у всех 6-й бит = 0
  10. я не занимался трассировкой, но общался с конструктором. Была проблема с препрегами, в итоге, заменили на другой и переразвели плату. соответственно некоторые дорожки сделали шире. Конструктор грамотный, знает, что делает. Смущает, что одна плата из 4-х завелась без лишних танцев
  11. Плата сделана хорошо. Предыдущая партия вся рабочая. В этой версии заменили чип питания. Но одна плата с ним прекрасно работает. Дальнейшие поиски показали, что FSBL виснет на проверке содержимого регистра PGSR0 (DDR_PHY). В регистре 0х80С000FF. Т.е установлены биты ошибок QSGERR и WLAERR.
  12. спасибо за ответ. Но это не мой случай, у меня из 4-х плат одна все-таки работает, значит, не в разводке проблема
  13. у меня аналогичная проблема. Виснет на psu_ddr_phybringup_data. Удалось вам решить проблему ?
  14. Оказалось, что зависает в функции psu_ddr_phybringup_data. Если закомментировать инициализацию DDR, то дальше все работает
  15. Здравствуйте. Такая проблема. Заказали 4 платы у одной не слишком порядочной конторы. оплатили стоимость комплектующих, изготовление плат и монтаж. Из 4-х плат работает только одна. В остальных 3-х проблема одинаковая - заливаю HelloWorld из шаблона SDK Vitis, прошивка в ПЛИС грузится успешно (появляется сигнал Done), заливается FSBL и все, тишина. Питания все и клоки проверил, сравнил с референсной рабочей платой - все хорошо. В чем может быть проблема ? Может сталкивались с таким поведением. Привожу лог из SDK Info: tcfchan#4 closed xsct% initializing 0% 0MB 0.0MB/s ??:?? ETA 5% 1MB 2.2MB/s ??:?? ETA 10% 1MB 1.9MB/s ??:?? ETA 15% 2MB 1.8MB/s ??:?? ETA 20% 3MB 1.8MB/s ??:?? ETA 24% 4MB 1.7MB/s ??:?? ETA 29% 5MB 1.7MB/s 00:07 ETA 35% 6MB 1.7MB/s 00:06 ETA 39% 7MB 1.7MB/s 00:06 ETA 44% 8MB 1.7MB/s 00:06 ETA 50% 9MB 1.7MB/s 00:05 ETA 55% 10MB 1.7MB/s 00:04 ETA 60% 11MB 1.7MB/s 00:04 ETA 66% 12MB 1.7MB/s 00:03 ETA 71% 13MB 1.7MB/s 00:03 ETA 75% 13MB 1.7MB/s 00:02 ETA 81% 14MB 1.7MB/s 00:02 ETA 86% 15MB 1.7MB/s 00:01 ETA 90% 16MB 1.7MB/s 00:01 ETA 95% 17MB 1.7MB/s 00:00 ETA 100% 18MB 1.7MB/s 00:10 Downloading Program -- D:/Vivado_Projects/MyProject_2/MyProject/MyProject.sdk/vcu/export/vcu/sw/vcu/boot/fsbl.elf section, .text: 0xfffc0000 - 0xfffd071f section, .init: 0xfffd0740 - 0xfffd0773 section, .fini: 0xfffd0780 - 0xfffd07b3 section, .note.gnu.build-id: 0xfffd07b4 - 0xfffd07d7 section, .rodata: 0xfffd0800 - 0xfffd1fb7 section, .sys_cfg_data: 0xfffd1fc0 - 0xfffd2837 section, .mmu_tbl0: 0xfffd3000 - 0xfffd300f section, .mmu_tbl1: 0xfffd4000 - 0xfffd5fff section, .mmu_tbl2: 0xfffd6000 - 0xfffd9fff section, .data: 0xfffda000 - 0xfffdb3d7 section, .sbss: 0xfffdb3d8 - 0xfffdb3ff section, .bss: 0xfffdb400 - 0xfffdd73f section, .heap: 0xfffdd740 - 0xfffddb3f section, .stack: 0xfffddb40 - 0xfffdfb3f section, .dup_data: 0xfffdfb40 - 0xfffe0f17 section, .handoff_params: 0xfffe9e00 - 0xfffe9e87 section, .bitstream_buffer: 0xffff0040 - 0xfffffc3f 0% 0MB 0.0MB/s ??:?? ETA 88% 0MB 0.2MB/s ??:?? ETA 100% 0MB 0.2MB/s 00:00 Setting PC to Program Start Address 0xfffc0000 Successfully downloaded D:/Vivado_Projects/MyProject_2/MyProject/MyProject.sdk/vcu/export/vcu/sw/vcu/boot/fsbl.elf Info: Cortex-A53 #0 (target 9) Stopped at 0xffff0000 (Reset Catch) _vector_table() at asm_vectors.S: 206 206: b _boot xsct% Info: Breakpoint 8 status: target 9: {Address: 0xfffcd6d0 Type: Hardware} xsct% Info: Cortex-A53 #0 (target 9) Running 11:08:19 INFO : Disconnected from the channel tcfchan#4. 11:08:21 INFO : Connected to target on host '127.0.0.1' and port '3121'. 11:08:21 INFO : Processor 'psu_cortexa53_0' will be used for running fsbl 'D:/Vivado_Projects/MyProject_2/MyProject/MyProject.sdk/vcu/export/vcu/sw/vcu/boot/fsbl.elf' 11:08:21 INFO : Jtag cable 'JTAG-ONB4 251633007191A' is selected. 11:08:21 INFO : 'jtag frequency' command is executed. 11:08:21 INFO : Sourcing of 'C:/Xilinx/Vitis/2019.2/scripts/vitis/util/zynqmp_utils.tcl' is done. 11:08:21 INFO : Context for 'APU' is selected. 11:08:22 INFO : System reset is completed. 11:08:25 INFO : 'after 3000' command is executed. 11:08:25 INFO : 'targets -set -filter {jtag_cable_name =~ "JTAG-ONB4 251633007191A" && level==0} -index 0' command is executed. 11:08:36 INFO : FPGA configured successfully with bitstream "D:/Vivado_Projects/MyProject_2/MyProject/MyProject.sdk/hello/_ide/bitstream/MyBlockDesign_wrapper.bit" 11:08:36 INFO : Context for 'APU' is selected. 11:08:47 INFO : Hardware design information is loaded from 'D:/Vivado_Projects/MyProject_2/MyProject/MyProject.sdk/vcu/export/vcu/hw/MyBlockDesign_wrapper.xsa'. 11:08:47 INFO : 'configparams force-mem-access 1' command is executed. 11:08:47 INFO : Context for 'APU' is selected. 11:08:47 INFO : Boot mode is read from the target. 11:08:47 INFO : Context for processor 'psu_cortexa53_0' is selected. 11:08:47 INFO : Processor reset is completed for 'psu_cortexa53_0'. 11:08:48 INFO : The application 'D:/Vivado_Projects/MyProject_2/MyProject/MyProject.sdk/vcu/export/vcu/sw/vcu/boot/fsbl.elf' is downloaded to processor 'psu_cortexa53_0'. 11:08:48 INFO : 'set bp_8_48_fsbl_bp [bpadd -addr &XFsbl_Exit]' command is executed. 11:09:48 WARN : Exit breakpoint of FSBL (XFsbl_Exit) is not hit within allocated wait time of '60' seconds. Note: To wait for a fixed amount of time specify the FSBL function as empty in launch configuration. Use 'IDE_FSBL_BP_HIT_WAIT_TIME' environment variable in launch configuration to modify the wait time (seconds). Reason: timeout: target has not halted 11:09:48 INFO : 'bpremove $bp_8_48_fsbl_bp' command is executed. 11:09:53 INFO : ----------------XSDB Script---------------- connect -url tcp:127.0.0.1:3121 source C:/Xilinx/Vitis/2019.2/scripts/vitis/util/zynqmp_utils.tcl targets -set -nocase -filter {name =~"APU*"} rst -system after 3000 targets -set -filter {jtag_cable_name =~ "JTAG-ONB4 251633007191A" && level==0} -index 0 fpga -file D:/Vivado_Projects/MyProject_2/MyProject/MyProject.sdk/hello/_ide/bitstream/MyBlockDesign_wrapper.bit targets -set -nocase -filter {name =~"APU*"} loadhw -hw D:/Vivado_Projects/MyProject_2/MyProject/MyProject.sdk/vcu/export/vcu/hw/MyBlockDesign_wrapper.xsa -mem-ranges [list {0x80000000 0xbfffffff} {0x400000000 0x5ffffffff} {0x1000000000 0x7fffffffff}] configparams force-mem-access 1 targets -set -nocase -filter {name =~"APU*"} set mode [expr [mrd -value 0xFF5E0200] & 0xf] targets -set -nocase -filter {name =~ "*A53*#0"} rst -processor dow D:/Vivado_Projects/MyProject_2/MyProject/MyProject.sdk/vcu/export/vcu/sw/vcu/boot/fsbl.elf set bp_8_48_fsbl_bp [bpadd -addr &XFsbl_Exit] con -block -timeout 60 bpremove $bp_8_48_fsbl_bp ----------------End of Script----------------
  16. Всем спасибо. Уже разобрался. Проблема была в скрипте, который делал образ файловой системы.
  17. в корне Рутфс создал симлинк init->/sbin/init. Для Xilinx такое решение прокатило
  18. насколько я понял, особой разницы, с точки зрения загрузчика и ядра нет между initramfs и Initrd. Ядро как то само понимает с чем имеет дело, а загрузчик просто копирует образ по конкретному адресу и передает управление ядру, указывая, где лежит Рутфс и dtb
  19. подсунул рабочий образ от 64-х разрядной FS Starting init: /bin/sh exists but couldn't execute it (error -8) [ 7.207338] Kernel panic - not syncing: No working init found. Try passing init= option to kernel. Т.е. проблема, по все видимости, именно в сборке rootfs. С загрузчиком и ядром, скорее всего, проблем нет
  20. странно... я этим скриптом собираю Initramfs для ARM64 (ZynqUS) и это работает
  21. CONFIG_BLK_DEV_RAM=y CONFIG_BLK_DEV_RAM_COUNT=2 CONFIG_BLK_DEV_RAM_SIZE=8192 есть еще CONFIG_BLK_DEV_INITRD CONFIG_BLK_DEV_INITRD у меня в ядре не включено, при этом initrd грузится. Странно. Проблема в том, что изначально систему собирал другой человек а, нет. Обманул. Включена CONFIG_BLK_DEV_INITRD
  22. а как эту опцию включить ? при нормальной загрузке с помощью initrd тоже такая строка. Работе не мешает. Плата старая, работает, как часы во множестве устройств
  23. Ну, что, коллеги ? Есть идеи ? ) Или может кто поделится живим образом файловой системы для Arm32 ?
  24. Здравствуйте. Есть древняя плата на Arria V. Rootfs лежит в ОЗУ (initrd). Понадобилось добавить в ФС несколько пакетов 1. Распаковал ФС 2. Установил пакеты 3. Решил, заодно, перейти на Initramfs 4. Упаковал ФС (ниже кусок скрипта) find $DISK | cpio -H newc -o | gzip -9 > tmp.cpio.gz mkimage -A arm -T ramdisk -C gzip -d tmp.cpio.gz initramfs-ext4.gz.uBoot rm tmp.cpio.gz 5. В переменных окружения u-boot поменял только название полученного Initramfs файла. При загрузке ФС поймал Kernel panic вот загрузка CPU : Altera SOCFPGA Platform BOARD : Altera SOCFPGA Arria V Board I2C: ready DRAM: 1 GiB MMC: ALTERA DWMMC: 0 In: serial Out: serial Err: serial Net: mii0 Hit any key to stop autoboot: 0 8462974 bytes read in 503 ms (16 MiB/s) ## Starting application at 0x3FF795C8 ... ## Application terminated, rc = 0x0 3851416 bytes read in 248 ms (14.8 MiB/s) 20293 bytes read in 20 ms (990.2 KiB/s) 41077938 bytes read in 2472 ms (15.8 MiB/s) ## Booting kernel from Legacy Image at 00007fc0 ... Image Name: Linux-3.18.0 Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 3851352 Bytes = 3.7 MiB Load Address: 00008000 Entry Point: 00008000 ## Loading init Ramdisk from Legacy Image at 05000000 ... Image Name: Rootfs ext4 ramdisk for ARM Image Type: ARM Linux RAMDisk Image (gzip compressed) Data Size: 41077874 Bytes = 39.2 MiB Load Address: 00000000 Entry Point: 00000000 ## Flattened Device Tree blob at 00000100 Booting using the fdt blob at 0x00000100 XIP Kernel Image ... OK OK reserving fdt memory region: addr=0 size=1000 Loading Ramdisk to 0d8d3000, end 0ffffc72 ... OK Loading Device Tree to 03ff8000, end 03ffff44 ... OK Здесь попытка запуска ФС [ 4.318812] NET: Registered protocol family 29 [ 4.323254] can: raw protocol (rev 20120528) [ 4.327508] can: broadcast manager protocol (rev 20120528 t) [ 4.333158] can: netlink gateway (rev 20130117) max_hops=1 [ 4.338803] 8021q: 802.1Q VLAN Support v1.8 [ 4.343025] Key type dns_resolver registered [ 4.347341] ThumbEE CPU extension supported. [ 4.351615] Registering SWP/SWPB emulation handler [ 4.356497] dwc2 ffb40000.usb: Overcurrent change detected [ 4.362478] List of all partitions: [ 4.365962] b300 62521344 mmcblk0 driver: mmcblk [ 4.371312] b301 1024 mmcblk0p1 d4e1deed-01 [ 4.376612] b302 131072 mmcblk0p2 d4e1deed-02 [ 4.381938] b303 131072 mmcblk0p3 d4e1deed-03 [ 4.387237] b304 62257152 mmcblk0p4 d4e1deed-04 [ 4.392555] No filesystem could mount root, tried: ext3 ext2 ext4 vfat ntfs [ 4.399636] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(1,0) [ 4.407864] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 3.18.0 #11 [ 4.413868] [<c0016bac>] (unwind_backtrace) from [<c0012bf8>] (show_stack+0x20/0x24) [ 4.421586] [<c0012bf8>] (show_stack) from [<c0542aa4>] (dump_stack+0x90/0xa0) [ 4.428781] [<c0542aa4>] (dump_stack) from [<c0540b4c>] (panic+0xb0/0x210) [ 4.435629] [<c0540b4c>] (panic) from [<c074b394>] (mount_block_root+0x22c/0x240) [ 4.443080] [<c074b394>] (mount_block_root) from [<c074b5a4>] (mount_root+0x110/0x118) [ 4.450963] [<c074b5a4>] (mount_root) from [<c074b744>] (prepare_namespace+0x198/0x1dc) [ 4.458941] [<c074b744>] (prepare_namespace) from [<c074af58>] (kernel_init_freeable+0x250/0x260) [ 4.467776] [<c074af58>] (kernel_init_freeable) from [<c053f964>] (kernel_init+0x1c/0xf8) [ 4.475920] [<c053f964>] (kernel_init) from [<c000ecf8>] (ret_from_fork+0x14/0x20) В чем может быть дело ?
×
×
  • Создать...