Собираю Petalinux (v 2017.2, собираю на виртуальной машине с Ubuntu 16.04 LTS) для разработанной коллегами платы. На плате стоит zynq7000.
Экспортирую дизайн из Vivado (версия так же 2017.2). Все настройки для сборки линукса стандартные. Гружусь с SD карточки. И каждый раз загрузка идет до разных мест: то даже ethernet-контроллер не обнаружит, то дойдет до reading image и повиснет на проверке Verifying Hash Integrity, то выдаст ошибку "Kernel panic - not syncing: Attempted to kill the idle task!"
С чем такое поведение может быть связано? Где искать причины и как их устранять?
Лог:
Код
Petalinux: modem
U-Boot 2017.01 (Mar 28 2018 - 16:43:10 +0300)
Board: Xilinx Zynq
DRAM: ECC disabled 512 MiB
MMC: sdhci@e0100000: 0 (SD)
Using default environment
In: serial
Out: serial
Err: serial
Net: ZYNQ GEM: e000b000, phyaddr ffffffff, interface rgmii-id
eth0: ethernet@e000b000
U-BOOT for my_petalinux_modem
ethernet@e000b000 Waiting for PHY auto negotiation to complete......... TIMEOUT !
Hit any key to stop autoboot: 0
Device: sdhci@e0100000
Manufacturer ID: 74
OEM: 4a60
Name: USD
Tran Speed: 50000000
Rd Block Len: 512
SD version 3.0
High Capacity: Yes
Capacity: 7.5 GiB
Bus Width: 4-bit
Erase Group Size: 512 Bytes
reading image.ub
20832340 bytes read in 1330 ms (14.9 MiB/s)
## Loading kernel from FIT Image at 10000000 ...
Using 'conf@1' configuration
Verifying Hash Integrity ... OK
Trying 'kernel@0' kernel subimage
Description: Linux Kernel
Type: Kernel Image
Compression: uncompressed
Data Start: 0x100000d4
Data Size: 3741152 Bytes = 3.6 MiB
Architecture: ARM
OS: Linux
Load Address: 0x00008000
Entry Point: 0x00008000
Hash algo: sha1
Hash value: be242bcd4030cd2ce3b91666ae9fd53d823d855a
Verifying Hash Integrity ... sha1+ OK
## Loading ramdisk from FIT Image at 10000000 ...
Using 'conf@1' configuration
Trying 'ramdisk@0' ramdisk subimage
Description: ramdisk
Type: RAMDisk Image
Compression: uncompressed
Data Start: 0x10394c24
Data Size: 17076286 Bytes = 16.3 MiB
Architecture: ARM
OS: Linux
Load Address: unavailable
Entry Point: unavailable
Hash algo: sha1
Hash value: e482e0332411eaee448014eb5db20037c597d5a7
Verifying Hash Integrity ... sha1+ OK
## Loading fdt from FIT Image at 10000000 ...
Using 'conf@1' configuration
Trying 'fdt@0' fdt subimage
Description: Flattened Device Tree blob
Type: Flat Device Tree
Compression: uncompressed
Data Start: 0x103917a8
Data Size: 13258 Bytes = 12.9 KiB
Architecture: ARM
Hash algo: sha1
Hash value: 9a70b78a2bbfbae30dfb37ded05b72ac57222e90
Verifying Hash Integrity ... sha1+ OK
Booting using the fdt blob at 0x103917a8
Loading Kernel Image ... OK
Loading Ramdisk to 06fb6000, end 07fff03e ... OK
Loading Device Tree to 06faf000, end 06fb53c9 ... OK
Starting kernel ...
Uncompressing Linux... done, booting the kernel.
Booting Linux on physical CPU 0x0
Linux version 4.9.0-xilinx-v2017.2 (yulia@yulia-U) (gcc version 6.2.1 20161016 (Linaro GCC 6.2-2016.11) ) #1 SMP PREEMPT Wed Mar 28 16:39:29 MSK 2018
CPU: ARMv7 Processor [413fc090] revision 0 (ARMv7), cr=18c5387d
CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
OF: fdt:Machine model: xlnx,zynq-7000
bootconsole [earlycon0] enabled
cma: Reserved 16 MiB at 0x1f000000
Memory policy: Data cache writealloc
Unable to handle kernel NULL pointer dereference at virtual address 00000ab4
pgd = c0004000
[00000ab4] *pgd=00000000
Internal error: Oops - BUG: 5 [#1] PREEMPT SMP ARM
Modules linked in:
CPU: 0 PID: 0 Comm: swapper Not tainted 4.9.0-xilinx-v2017.2 #1
Hardware name: Xilinx Zynq Platform
task: c0a06bc0 task.stack: c0a00000
PC is at ___alloc_bootmem_node_nopanic+0x40/0x98
LR is at __alloc_bootmem_node+0x4c/0x68
pc : [<c090fa4c>] lr : [<c090fb48>] psr: 600000d3
sp : c0a01ef8 ip : 00000014 fp : debe83c0
r10: debcb000 r9 : 00000000 r8 : 00000000
r7 : 00000000 r6 : 1ebd9000 r5 : 00000000 r4 : 00000001
r3 : 00000000 r2 : 1ebd9000 r1 : 1ebd9000 r0 : 00000000
Flags: nZCv IRQs off FIQs off Mode SVC_32 ISA ARM Segment none
Control: 18c5387d Table: 0000404a DAC: 00000051
Process swapper (pid: 0, stack limit = 0xc0a00210)
Stack: (0xc0a01ef8 to 0xc0a02000)
1ee0: 00000000 00000000
1f00: 00000001 00000000 00000000 00000000 ffffffff 1ebd9000 00000000 00000000
1f20: 00000001 debcb000 00000001 c090fb48 00000000 debe73c0 0000e000 00000000
1f40: debcb000 debe83c0 debe73c0 c090eeec ffffffff 00000000 00000000 00000022
1f60: 00001000 00001000 00005ab4 0000654c 00005ab4 0000000c 00000000 00000000
1f80: c0a32800 ffffffff c0a03000 defffe00 c0931a30 00000000 00000000 c090ef9c
1fa0: c090e09c c090e0c4 00000000 00000000 c0a32800 ffffffff c0a03000 c09009a8
1fc0: ffffffff 00000000 00000000 00000000 00000000 c0931a30 00000000 c0a32a94
1fe0: c0a03018 c0931a2c c0a07db8 0000406a 413fc090 0000807c 00000000 00000000
[<c090fa4c>] (___alloc_bootmem_node_nopanic) from [<c090fb48>] (__alloc_bootmem_node+0x4c/0x68)
[<c090fb48>] (__alloc_bootmem_node) from [<c090eeec>] (pcpu_embed_first_chunk+0x63c/0x6c4)
[<c090eeec>] (pcpu_embed_first_chunk) from [<c090ef9c>] (setup_per_cpu_areas+0x28/0xac)
[<c090ef9c>] (setup_per_cpu_areas) from [<c09009a8>] (start_kernel+0xec/0x358)
[<c09009a8>] (start_kernel) from [<0000807c>] (0x807c)
Code: e58d4008 e58d500c e58d7000 e58d5004 (e5990ab4)
---[ end trace 0000000000000000 ]---
Kernel panic - not syncing: Attempted to kill the idle task!
---[ end Kernel panic - not syncing: Attempted to kill the idle task!
U-Boot 2017.01 (Mar 28 2018 - 16:43:10 +0300)
Board: Xilinx Zynq
DRAM: ECC disabled 512 MiB
MMC: sdhci@e0100000: 0 (SD)
Using default environment
In: serial
Out: serial
Err: serial
Net: ZYNQ GEM: e000b000, phyaddr ffffffff, interface rgmii-id
eth0: ethernet@e000b000
U-BOOT for my_petalinux_modem
ethernet@e000b000 Waiting for PHY auto negotiation to complete......... TIMEOUT !
Hit any key to stop autoboot: 0
Device: sdhci@e0100000
Manufacturer ID: 74
OEM: 4a60
Name: USD
Tran Speed: 50000000
Rd Block Len: 512
SD version 3.0
High Capacity: Yes
Capacity: 7.5 GiB
Bus Width: 4-bit
Erase Group Size: 512 Bytes
reading image.ub
20832340 bytes read in 1330 ms (14.9 MiB/s)
## Loading kernel from FIT Image at 10000000 ...
Using 'conf@1' configuration
Verifying Hash Integrity ... OK
Trying 'kernel@0' kernel subimage
Description: Linux Kernel
Type: Kernel Image
Compression: uncompressed
Data Start: 0x100000d4
Data Size: 3741152 Bytes = 3.6 MiB
Architecture: ARM
OS: Linux
Load Address: 0x00008000
Entry Point: 0x00008000
Hash algo: sha1
Hash value: be242bcd4030cd2ce3b91666ae9fd53d823d855a
Verifying Hash Integrity ... sha1+ OK
## Loading ramdisk from FIT Image at 10000000 ...
Using 'conf@1' configuration
Trying 'ramdisk@0' ramdisk subimage
Description: ramdisk
Type: RAMDisk Image
Compression: uncompressed
Data Start: 0x10394c24
Data Size: 17076286 Bytes = 16.3 MiB
Architecture: ARM
OS: Linux
Load Address: unavailable
Entry Point: unavailable
Hash algo: sha1
Hash value: e482e0332411eaee448014eb5db20037c597d5a7
Verifying Hash Integrity ... sha1+ OK
## Loading fdt from FIT Image at 10000000 ...
Using 'conf@1' configuration
Trying 'fdt@0' fdt subimage
Description: Flattened Device Tree blob
Type: Flat Device Tree
Compression: uncompressed
Data Start: 0x103917a8
Data Size: 13258 Bytes = 12.9 KiB
Architecture: ARM
Hash algo: sha1
Hash value: 9a70b78a2bbfbae30dfb37ded05b72ac57222e90
Verifying Hash Integrity ... sha1+ OK
Booting using the fdt blob at 0x103917a8
Loading Kernel Image ... OK
Loading Ramdisk to 06fb6000, end 07fff03e ... OK
Loading Device Tree to 06faf000, end 06fb53c9 ... OK
Starting kernel ...
Uncompressing Linux... done, booting the kernel.
Booting Linux on physical CPU 0x0
Linux version 4.9.0-xilinx-v2017.2 (yulia@yulia-U) (gcc version 6.2.1 20161016 (Linaro GCC 6.2-2016.11) ) #1 SMP PREEMPT Wed Mar 28 16:39:29 MSK 2018
CPU: ARMv7 Processor [413fc090] revision 0 (ARMv7), cr=18c5387d
CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
OF: fdt:Machine model: xlnx,zynq-7000
bootconsole [earlycon0] enabled
cma: Reserved 16 MiB at 0x1f000000
Memory policy: Data cache writealloc
Unable to handle kernel NULL pointer dereference at virtual address 00000ab4
pgd = c0004000
[00000ab4] *pgd=00000000
Internal error: Oops - BUG: 5 [#1] PREEMPT SMP ARM
Modules linked in:
CPU: 0 PID: 0 Comm: swapper Not tainted 4.9.0-xilinx-v2017.2 #1
Hardware name: Xilinx Zynq Platform
task: c0a06bc0 task.stack: c0a00000
PC is at ___alloc_bootmem_node_nopanic+0x40/0x98
LR is at __alloc_bootmem_node+0x4c/0x68
pc : [<c090fa4c>] lr : [<c090fb48>] psr: 600000d3
sp : c0a01ef8 ip : 00000014 fp : debe83c0
r10: debcb000 r9 : 00000000 r8 : 00000000
r7 : 00000000 r6 : 1ebd9000 r5 : 00000000 r4 : 00000001
r3 : 00000000 r2 : 1ebd9000 r1 : 1ebd9000 r0 : 00000000
Flags: nZCv IRQs off FIQs off Mode SVC_32 ISA ARM Segment none
Control: 18c5387d Table: 0000404a DAC: 00000051
Process swapper (pid: 0, stack limit = 0xc0a00210)
Stack: (0xc0a01ef8 to 0xc0a02000)
1ee0: 00000000 00000000
1f00: 00000001 00000000 00000000 00000000 ffffffff 1ebd9000 00000000 00000000
1f20: 00000001 debcb000 00000001 c090fb48 00000000 debe73c0 0000e000 00000000
1f40: debcb000 debe83c0 debe73c0 c090eeec ffffffff 00000000 00000000 00000022
1f60: 00001000 00001000 00005ab4 0000654c 00005ab4 0000000c 00000000 00000000
1f80: c0a32800 ffffffff c0a03000 defffe00 c0931a30 00000000 00000000 c090ef9c
1fa0: c090e09c c090e0c4 00000000 00000000 c0a32800 ffffffff c0a03000 c09009a8
1fc0: ffffffff 00000000 00000000 00000000 00000000 c0931a30 00000000 c0a32a94
1fe0: c0a03018 c0931a2c c0a07db8 0000406a 413fc090 0000807c 00000000 00000000
[<c090fa4c>] (___alloc_bootmem_node_nopanic) from [<c090fb48>] (__alloc_bootmem_node+0x4c/0x68)
[<c090fb48>] (__alloc_bootmem_node) from [<c090eeec>] (pcpu_embed_first_chunk+0x63c/0x6c4)
[<c090eeec>] (pcpu_embed_first_chunk) from [<c090ef9c>] (setup_per_cpu_areas+0x28/0xac)
[<c090ef9c>] (setup_per_cpu_areas) from [<c09009a8>] (start_kernel+0xec/0x358)
[<c09009a8>] (start_kernel) from [<0000807c>] (0x807c)
Code: e58d4008 e58d500c e58d7000 e58d5004 (e5990ab4)
---[ end trace 0000000000000000 ]---
Kernel panic - not syncing: Attempted to kill the idle task!
---[ end Kernel panic - not syncing: Attempted to kill the idle task!