Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Загрузка Linux на MAX10 c NIOS II
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
wapster
Здравствуйте!
Имеется отладочная плата 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
wapster
Удалось завести ядро путем добавления 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
Jury093
Цитата(wapster @ Apr 4 2018, 14:40) *
Удалось завести ядро путем добавления dts файла непосредственно в конфигурацию. Непонятно как оно вообще работает у ребят из rocketboards без загрузки этого файла.

вот это не пропустили?
10m50 design is using static device tree, make sure 10m50_devboard.dts file is available in <Linux_kernel_top_directory>/arch/nios2/boot/dts.

Цитата
Теперь появилась другая проблема. Ядро упорно не видит qspi флэшку, то есть в списке mtd устройств пусто. То есть загружается всё это с флэшки, но при попытке подгрузить rootfs выходит kernel panic. Что я делаю не так?
Такое ощущение, что флэшка неправильно описана в dts файле.

а SPI у вас в ядре включен?
в логе должно быть упоминание про SPI канал
потом детектирование флешки на SPI
потом уже MTD
потом FS
wapster
Спасибо за ответ!

Цитата(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 действительно был выключен, но после включения вручную ничего не изменилось. Даже лог ядра на первый взгляд не поменялся.

Нажмите для просмотра прикрепленного файла

Цитата
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)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2024 Invision Power Services, Inc.