Jump to content

    

wapster

Участник
  • Content Count

    20
  • Joined

  • Last visited

Community Reputation

0 Обычный

About wapster

  • Rank
    Участник
  1. uClinux+jffs2 без u-boot

    Понятно. Похоже надо копать в сторону драйвера qspi от альтеры.
  2. uClinux+jffs2 без u-boot

    Загрузился в ОЗУ и проверил как монтируется раздел. Собственно, место свободное появилось. Но потом начались сыпаться ошибки. Я так понял это как раз ситуация с тем, что созданный образ jffs2 не занимает всё указанное в dts пространство.
  3. uClinux+jffs2 без u-boot

    Выравнял размер партиции до конца флэшки, но ситуация не улучшилась. Можно ли как-то понять на каком месте идет зависание?
  4. uClinux+jffs2 без u-boot

    Это размер партиций, который задается в dts. Ели задать размер больше, то система будет ругаться, что фс система битая. Т.е. я так понял нужно ещё и как-то размер образа jffs2 увеличить.
  5. uClinux+jffs2 без u-boot

    Может быть. Как тогда освободить место в образе jffs2? Точнее не освободить, а добавить. На самой флэшке есть место, но партиция строится согласно образу. Это как-то в buildroot делается?
  6. uClinux+jffs2 без u-boot

    Собственно, скриншот консоли, где всё затыкается.
  7. uClinux+jffs2 без u-boot

    Подниму тему, ибо уже не знаю что делать. Исходные данные почти идентичны ТС, только ядро версии 4.14 и buildroot немного новее. Проблема в том, что rootfs не стартует с раздела jffs2. Указываю ядру в Default bootloader kernel arguments root=/dev/mtdblock1 rw rootfstype=jffs2. Ядро сообщает, что раздел успешно подмонтирован и потом тишина, т.е. как-будто система зависает. Добавлял в аргументы init=/bin/sh - такая же ситуация. Что я делаю не так? Можно ли как-то включить отладку init, чтобы понять чего не хватает? Пробовал загружать всю систему в ОЗУ и читать раздел jffs2 с rootfs - всё выглядет хорошо, даже удалось запустить /bin/sh. Только не удается создавать новые файлы и директории. Система говорит, что нет свободного места, но не думаю, что это как-то влияет в конечном итоге на результат.
  8. Embedded Linux

    Тоже стала интересна эта книга. Мне кажется общее представление о работе она даст, но практические примеры повторять точно не стоит, т.к. скорее всего они не заработают. Всё стремительно меняется и актуальной будет информация только из документации на ПО. За практическими примерами лучше идти на сайт разработчика платы, с которой собираетесь работать и изучать там всё.
  9. Здравствуйте! Имеется Cyclone 5 на плате DE1-SoC. Взят пример системы в Quartus, который поставлялся с диском. Накатил на всё это дело Linux со свежесобранным ядром (4.9.76) и busybox. Всё отлично работает. Теперь имеется задача разобраться с использованием периферии, которая реализована в части FPGA. Для примера взял простейший jtag uart. Подключил его к шине lwh2f_axi. Пытаюсь описать подключение с указанием регистров в файле dts: hps_bridges: bridge@0xc0000000 { compatible = "altr,bridge-18.1", "simple-bus"; reg = <0xc0000000 0x20000000>, <0xff200000 0x00200000>; reg-names = "axi_h2f", "axi_h2f_lw"; clocks = <&h2f_usr1_clk &h2f_usr1_clk &h2f_usr1_clk>; clock-names = "h2f_axi_clock", "h2f_lw_axi_clock", "f2h_sdram0_clock"; #address-cells = <2>; #size-cells = <1>; ranges = <0x00000000 0x00000000 0xc0000000 0x00040000>, <0x00000001 0x00020000 0xff220000 0x000008>; juart@0x100060000 { compatible = "altr,juart-18.1", "altr,juart-1.0"; reg = <0x1 0x20000 0x8>; interrupt-parent = <&intc>; interrupts = <0 42 4>; clocks = <&h2f_usr1_clk>; }; }; Всё как в найденных примерах. Теперь система зависает на старте. В отладчике я вижу, что все адреса распознаны корректно, но при проверке шины драйвером процессор зависает. Я где-то упустил какую-то деталь. Что я сделал не так? Так же прикладываю dts файлы, которые шли с ядром и с которыми экспериментирую. Все изменения производил в файле socfpga.dtsi в секции soc. socfpga.dtsi socfpga.dts socfpga_cyclone5.dtsi
  10. Запускал линукс на MAX10. Основная идея в том, что нужно создать монолитный образ с файловой системой и dtb в одном бинарнике. Делается это довольно просто через конфиг файл (menuconfig, xconfig и т.п.). Это бинарник vmlinux, который находится в корне ядра. Должен получиться достаточно большой файл. Отталкиваться можно от этой статьи https://rocketboards.org/foswiki/Documentation/AlteraMAX1010M50RevCDevelopmentKitLinuxSetupVLTS
  11. Кажется сам нашел ответ. TSE обрезает на передачу первые два байта, потому что в исходящих пакетах в драйвере Linux не предусмотрено выравнивание. Обрезка первых двух байтов выключается программно с помощью регистра tx_cmd_stat. Программное управление этим регистром работает только в случае со встроенным FIFO. С внешним обрезка байтов на приём и передачу выключается одной галкой в Qsys. Таким образом получается, что входящий трафик обрабатывается корректно, а исходящий режется. Вопрос теперь как правильно переписать драйвер. Или же ещё в голову приходит навертеть какой-нибудь аппаратный блок, который будет заниматься выравниванием.
  12. Добрый день! Наткнулся на проблему с TSE при использовании внешних FIFO. Имеется NIOS II, к которому через внешние FIFO и mSGDMA подключен TSE. NIOS II работает под управлением Linux со встроенным драйвером. Проблема заключается в том, что на передачу обрезаются первые два байта пакета. Я понимаю, что это связано с выравниванием заголовков, поэтому отключаю опцию "Align packet headers to 32-bit boundary". После данной манипуляции обрезаются первые два байта во входящих сообщениях, в то время как исходящие сообщения отсылаются корректно. То есть всё стало наоборот. Со встроенным в TSE буферами FIFO всё работает правильно. Куда копать? Не могу понять аппаратура это косячит или драйвер. Поставил вывод отсылаемого пакета в консоль в драйвере и ничего криминального не вижу. Ещё хотел бы уточнить, что ширина шины от процессора до FIFO через DMA 32 бита, а после FIFO она урезается до 8 бит через автоматический адаптер Qsys.
  13. Спасибо за ответ! Цитата(Jury093 @ Apr 4 2018, 17:24) вот это не пропустили? 10m50 design is using static device tree, make sure 10m50_devboard.dts file is available in <Linux_kernel_top_directory>/arch/nios2/boot/dts. Этот файл по умолчанию там находится. Цитата(Jury093 @ Apr 4 2018, 17:24) а SPI у вас в ядре включен? в логе должно быть упоминание про SPI канал потом детектирование флешки на SPI потом уже MTD потом FS SPI действительно был выключен, но после включения вручную ничего не изменилось. Даже лог ядра на первый взгляд не поменялся. [attachment=111919:______.PNG] ЦитатаLinux version 4.9.76-rt61-ltsi (root@debian64) (gcc version 7.2.1 20171018 (Sourcery CodeBench Lite 2017.11-14) ) #3 PREEMPT Thu Apr 5 10:10:59 MSK 2018 On node 0 totalpages: 65536 free_area_init_node: node 0, pgdat c83ee3ac, node_mem_map c840ff00 Normal zone: 512 pages used for memmap Normal zone: 0 pages reserved Normal zone: 65536 pages, LIFO batch:15 pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768 pcpu-alloc: [0] 0 Built 1 zonelists in Zone order, mobility grouping on. Total pages: 65024 Kernel command line: debug console=ttyS0,115200 PID hash table entries: 1024 (order: 0, 4096 bytes) Dentry cache hash table entries: 32768 (order: 5, 131072 bytes) Inode-cache hash table entries: 16384 (order: 4, 65536 bytes) Sorting __ex_table... Memory: 124632K/262144K available (3162K kernel code, 90K rwdata, 656K rodata, 112K init, 108K bss, 137512K reserved, 0K cma-reserved) Preemptible hierarchical RCU implementation. Build-time adjustment of leaf fanout to 32. NR_IRQS:64 nr_irqs:64 0 clocksource: nios2-clksrc: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 25483472618 ns Calibrating delay loop (skipped), value calculated using timer frequency.. 150.00 BogoMIPS (lpj=300000) pid_max: default: 32768 minimum: 301 Mount-cache hash table entries: 1024 (order: 0, 4096 bytes) Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes) devtmpfs: initialized cpu cpu0: Error -2 creating of_node link clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns futex hash table entries: 256 (order: -1, 3072 bytes) NET: Registered protocol family 16 clocksource: Switched to clocksource nios2-clksrc NET: Registered protocol family 2 TCP established hash table entries: 2048 (order: 1, 8192 bytes) TCP bind hash table entries: 2048 (order: 1, 8192 bytes) TCP: Hash tables configured (established 2048 bind 2048) UDP hash table entries: 256 (order: 0, 4096 bytes) UDP-Lite hash table entries: 256 (order: 0, 4096 bytes) NET: Registered protocol family 1 RPC: Registered named UNIX socket transport module. RPC: Registered udp transport module. RPC: Registered tcp transport module. RPC: Registered tcp NFSv4.1 backchannel transport module. workingset: timestamp_bits=30 max_order=15 bucket_order=0 jffs2: version 2.2. (NAND) © 2001-2006 Red Hat, Inc. Block layer SCSI generic (bsg) driver version 0.4 loaded (major 253) io scheduler noop registered io scheduler deadline registered io scheduler cfq registered (default) random: fast init done Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled console [ttyS0] disabled 18001600.serial: ttyS0 at MMIO 0x18001600 (irq = 2, base_baud = 3125000) is a Altera 16550 FIFO32 console [ttyS0] enabled 18001530.serial: ttyJ0 at MMIO 0x18001530 (irq = 7, base_baud = 0) is a Altera JTAG UART loop: module loaded libphy: Fixed MDIO Bus: probed libphy: altera_tse: probed altera_tse 400.ethernet (unnamed net_device) (uninitialized): MDIO bus altera_tse-0: created altera_tse 400.ethernet: Altera TSE MAC version 17.1 at 0x00000400 irq 3/5 mousedev: PS/2 mouse device common for all mice NET: Registered protocol family 17 List of all partitions: No filesystem could mount root, tried: Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0) ---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
  14. Удалось завести ядро путем добавления dts файла непосредственно в конфигурацию. Непонятно как оно вообще работает у ребят из rocketboards без загрузки этого файла. Теперь появилась другая проблема. Ядро упорно не видит qspi флэшку, то есть в списке mtd устройств пусто. То есть загружается всё это с флэшки, но при попытке подгрузить rootfs выходит kernel panic. Что я делаю не так? Такое ощущение, что флэшка неправильно описана в dts файле. Логи загрузки и dts файл прилагаю на всякий случай. ЦитатаLinux version 4.9.76-rt61-ltsi (root@debian64) (gcc version 4.7.3 (Sourcery CodeBench Lite 2013.05-43) ) #18 Wed Apr 4 13:36:35 MSK 2018 On node 0 totalpages: 65536 free_area_init_node: node 0, pgdat c83c85c0, node_mem_map c83e99e0 Normal zone: 512 pages used for memmap Normal zone: 0 pages reserved Normal zone: 65536 pages, LIFO batch:15 pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768 pcpu-alloc: [0] 0 Built 1 zonelists in Zone order, mobility grouping on. Total pages: 65024 Kernel command line: debug console=ttyS0,115200 PID hash table entries: 1024 (order: 0, 4096 bytes) Dentry cache hash table entries: 32768 (order: 5, 131072 bytes) Inode-cache hash table entries: 16384 (order: 4, 65536 bytes) Sorting __ex_table... Memory: 124784K/262144K available (3014K kernel code, 91K rwdata, 652K rodata, 112K init, 108K bss, 137360K reserved, 0K cma-reserved) NR_IRQS:64 nr_irqs:64 0 clocksource: nios2-clksrc: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 25483472618 ns Calibrating delay loop (skipped), value calculated using timer frequency.. 150.00 BogoMIPS (lpj=300000) pid_max: default: 32768 minimum: 301 Mount-cache hash table entries: 1024 (order: 0, 4096 bytes) Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes) devtmpfs: initialized cpu cpu0: Error -2 creating of_node link clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns futex hash table entries: 256 (order: -1, 3072 bytes) NET: Registered protocol family 16 clocksource: Switched to clocksource nios2-clksrc NET: Registered protocol family 2 TCP established hash table entries: 2048 (order: 1, 8192 bytes) TCP bind hash table entries: 2048 (order: 1, 8192 bytes) TCP: Hash tables configured (established 2048 bind 2048) UDP hash table entries: 256 (order: 0, 4096 bytes) UDP-Lite hash table entries: 256 (order: 0, 4096 bytes) NET: Registered protocol family 1 RPC: Registered named UNIX socket transport module. RPC: Registered udp transport module. RPC: Registered tcp transport module. RPC: Registered tcp NFSv4.1 backchannel transport module. workingset: timestamp_bits=30 max_order=15 bucket_order=0 jffs2: version 2.2. (NAND) © 2001-2006 Red Hat, Inc. Block layer SCSI generic (bsg) driver version 0.4 loaded (major 253) io scheduler noop registered io scheduler deadline registered io scheduler cfq registered (default) random: fast init done Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled console [ttyS0] disabled 18001600.serial: ttyS0 at MMIO 0x18001600 (irq = 2, base_baud = 3125000) is a Altera 16550 FIFO32 console [ttyS0] enabled 18001530.serial: ttyJ0 at MMIO 0x18001530 (irq = 7, base_baud = 0) is a Altera JTAG UART loop: module loaded libphy: Fixed MDIO Bus: probed libphy: altera_tse: probed altera_tse 400.ethernet (unnamed net_device) (uninitialized): MDIO bus altera_tse-0: created altera_tse 400.ethernet: Altera TSE MAC version 17.1 at 0x00000400 irq 3/5 mousedev: PS/2 mouse device common for all mice NET: Registered protocol family 17 List of all partitions: No filesystem could mount root, tried: Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0) ---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0) random: crng init done
  15. Здравствуйте! Имеется отладочная плата MAX10 FPGA Development kit, на которой нужно запустить Linux. Для этих целей нашелся неплохой мануал, по которому всё чудесно запускается https://rocketboards.org/foswiki/Documentat...tLinuxSetupV170 Хотелось бы обновить ядро и в дальнейшем иметь возможность добавлять свои модули и менять аппаратную конфигурацию NIOS II. После перекомпиляции ядра и rootfs система перестает запускаться. Просто не выводятся никакие сообщения в консоль. Кто-нибудь встречался с такой проблемой? В какую сторону нужно копать, чтобы разобраться? Есть ли возможность как-то отладить процесс загрузки? Используется следующая конфигурация: Altera MAX10 10M50 Rev C development kit Quartus Prime Standart Edition 17.0 ACDS version 17.0 Sourcery CodeBench Lite 2017.05-4 Ядро 4.9.76-ltsi-rt rootfs buildroot 2017.11