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

Загрузка Linux на MAX10 c NIOS II

Здравствуйте!

Имеется отладочная плата 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

10m50_devboard.dts.txt

Изменено пользователем wapster

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Удалось завести ядро путем добавления 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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо за ответ!

 

вот это не пропустили?

10m50 design is using static device tree, make sure 10m50_devboard.dts file is available in <Linux_kernel_top_directory>/arch/nios2/boot/dts.

 

Этот файл по умолчанию там находится.

 

а SPI у вас в ядре включен?

в логе должно быть упоминание про SPI канал

потом детектирование флешки на SPI

потом уже MTD

потом FS

 

SPI действительно был выключен, но после включения вручную ничего не изменилось. Даже лог ядра на первый взгляд не поменялся.

 

post-101101-1522911085_thumb.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)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...