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

Vivado 2015.4 hsi генерирует некорректные devicetree

Доброго времени суток!

 

Пытаюсь сгенерировать device tree по вики-мануалам xilinx, вроде все получается (генерирует, блоб компилируется), но до последнего момента. Когда я прошиваю плату и загружаю линукс с нее, то выдает Kernel panic. При создании devicetree из OpenEmbedded линукс грузится нормально. Может какие-то опции забыл указать?

 

[    2.804366] VFS: Mounted root (ext2 filesystem) on device 1:0.
[    2.810668] VFS: Cannot open root device "(null)" or unknown-block(0,0): error -6
[    2.818133] Please append a correct "root=" boot option; here are the available partitions:
[    2.826429] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
[    2.834650] CPU: 1 PID: 1 Comm: swapper/0 Not tainted 3.19.0-xilinx #1
[    2.841153] Hardware name: Xilinx Zynq Platform
[    2.845701] [<c0014c08>] (unwind_backtrace) from [<c0011878>] (show_stack+0x10/0x14)
[    2.853404] [<c0011878>] (show_stack) from [<c043fd24>] (dump_stack+0x88/0xc8)
[    2.860613] [<c043fd24>] (dump_stack) from [<c043de90>] (panic+0xa0/0x1f8)
[    2.867474] [<c043de90>] (panic) from [<c05c5210>] (mount_block_root+0x194/0x230)
[    2.874930] [<c05c5210>] (mount_block_root) from [<c05c54a0>] (mount_root+0x108/0x110)
[    2.882826] [<c05c54a0>] (mount_root) from [<c05c6050>] (initrd_load+0x224/0x314)
[    2.890291] [<c05c6050>] (initrd_load) from [<c05c5590>] (prepare_namespace+0xe8/0x1d8)
[    2.898278] [<c05c5590>] (prepare_namespace) from [<c05c4e4c>] (kernel_init_freeable+0x1d4/0x1e4)
[    2.907132] [<c05c4e4c>] (kernel_init_freeable) from [<c043c724>] (kernel_init+0x8/0xe8)
[    2.915203] [<c043c724>] (kernel_init) from [<c000e680>] (ret_from_fork+0x14/0x34)
[    2.922752] CPU0: stopping
[    2.925442] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 3.19.0-xilinx #1
[    2.931946] Hardware name: Xilinx Zynq Platform
[    2.936478] [<c0014c08>] (unwind_backtrace) from [<c0011878>] (show_stack+0x10/0x14)
[    2.944195] [<c0011878>] (show_stack) from [<c043fd24>] (dump_stack+0x88/0xc8)
[    2.951396] [<c043fd24>] (dump_stack) from [<c0013498>] (ipi_cpu_stop+0x58/0x68)
[    2.958774] [<c0013498>] (ipi_cpu_stop) from [<c0013b10>] (handle_IPI+0x88/0xb0)
[    2.966152] [<c0013b10>] (handle_IPI) from [<c000865c>] (gic_handle_irq+0x58/0x5c)
[    2.973706] [<c000865c>] (gic_handle_irq) from [<c0012380>] (__irq_svc+0x40/0x74)
[    2.981163] Exception stack(0xc05fbf28 to 0xc05fbf70)
[    2.986201] bf20:                   ae190bf5 00000000 ae190bf5 00000000 eefd9cc8 c062d6ec
[    2.994361] bf40: ae0c44f3 00000000 00000000 c0446ed8 c06024f0 c05f9600 00000018 c05fbf70
[    3.002517] bf60: 03000001 c034493c 90000113 ffffffff
[    3.007562] [<c0012380>] (__irq_svc) from [<c034493c>] (cpuidle_enter_state+0x50/0xd0)
[    3.015460] [<c034493c>] (cpuidle_enter_state) from [<c00514f0>] (cpu_startup_entry+0x294/0x2e0)
[    3.024228] [<c00514f0>] (cpu_startup_entry) from [<c05c4c6c>] (start_kernel+0x39c/0x3a8)
[    3.032382] [<c05c4c6c>] (start_kernel) from [<00008074>] (0x8074)
[    3.038544] ---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)

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


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

Пытаюсь сгенерировать device tree по вики-мануалам xilinx, вроде все получается (генерирует, блоб компилируется), но до последнего момента. Когда я прошиваю плату и загружаю линукс с нее, то выдает Kernel panic. При создании devicetree из OpenEmbedded линукс грузится нормально. Может какие-то опции забыл указать?

 

Английским по белому же пишет:

[    2.818133] Please append a correct "root=" boot option; here are the available partitions:
[    2.826429] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)

 

Ядро не видит корневую файловую систему.

Просит добавить: "Please append a correct "root=" boot option".

Смотрите, что в bootargs при формировании devicetree.

 

У меня как-то так

/dts-v1/;
/include/ "zynq-7000.dtsi"

/ {
        compatible = "xlnx,zynq-ulfft", "xlnx,zynq-7000";
        model = "RADIY TN ulfft board ";

        aliases {
                ethernet0 = &gem0;
                i2c0 = &i2c0;
                serial0 = &uart0;
                spi0 = &spi0;
                spi1 = &qspi;
        };
          
        chosen {
/*
                bootargs = "console=ttyPS0,115200 root=/dev/ram rw earlyprintk";
                bootargs = "console=ttyPS0,115200 root=/dev/nfs rw nfsroot=192.168.10.230:/home/faa/nfsroot/zinq,tcp ip=::::ulfft:eth0:dhcp earlyprintk nfsrootdebug";
*/
                bootargs = "console=ttyPS0,115200 root=/dev/mtdblock3 rootfstype=jffs2 rw rootwait ip=::::ulfft:eth0:dhcp earlyprintk";
                linux,stdout-path = "/amba/serial@e0000000";
        };

        memory@0 {
                device_type = "memory";
                reg = <0x0 0x40000000>;
        };
};

 

Первые два варианта использовались при отладке.

В первом initrd грузился в память u-boot-ом, второй монтироал rootfs по nfs.

Третий (рабочий) - rootfs вшита в qspi.

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


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

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

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

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

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

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

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

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

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

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