fdu / STM32F769I-disco_Buildroot

17 stars 19 forks source link

Crash on kernel booting #1

Closed yann77500 closed 6 years ago

yann77500 commented 6 years ago

Hello, I'am trying to use this interesting project to boot linux on my stm32f769-disco board. However, i can't boot the kernel, it seems memory error occured. I haven't modify the configuration files.

Below you can see start-up log console message :

U-Boot 2018.03 (Jul 11 2018 - 10:45:21 +0200)

Model: STMicroelectronics STM32F769-DISCO board DRAM: 16 MiB Flash: 1 MiB MMC: MMC: 0 In: serial@40011000 Out: serial@40011000 Err: serial@40011000 usr button is at LOW LEVEL Net:
Warning: ethernet@40028000 (eth0) using random MAC address - ca:9a:32:94:d6:82 eth0: ethernet@40028000 Hit SPACE in 0 seconds to stop autoboot. switch to partitions #0, OK mmc0 is current device 12191 bytes read in 25 ms (475.6 KiB/s) 1634656 bytes read in 165 ms (9.4 MiB/s)

Flattened Device Tree blob at c0700000

Booting using the fdt blob at 0xc0700000 Loading Device Tree to c0e98000, end c0e9df9e ... OK

Starting kernel ...

[ 0.000000] Booting Linux on physical CPU 0x0 [ 0.000000] Linux version 4.15.9 (yann@debian-stm32F769) (gcc version 7.3.0 (Buildroot 2018.02-00002-g0e90cde)) #5 PREEMPT Wed Jul 11 19:53:40 CEST 2018 [ 0.000000] CPU: ARMv7-M [411fc270] revision 0 (ARMv7M), cr=00000000 [ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, PIPT instruction cache [ 0.000000] OF: fdt: Machine model: STMicroelectronics STM32F769-DISCO board [ 0.000000] debug: ignoring loglevel setting. [ 0.000000] On node 0 totalpages: 4096 [ 0.000000] Normal zone: 32 pages used for memmap [ 0.000000] Normal zone: 0 pages reserved [ 0.000000] Normal zone: 4096 pages, LIFO batch:0 [ 0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768 [ 0.000000] pcpu-alloc: [0] 0 [ 0.000000] Built 1 zonelists, mobility grouping off. Total pages: 4064 [ 0.000000] Kernel command line: console=ttyS0,115200 earlyprintk consoleblank=0 ignore_loglevel [ 0.000000] Dentry cache hash table entries: 2048 (order: 1, 8192 bytes) [ 0.000000] Inode-cache hash table entries: 1024 (order: 0, 4096 bytes) [ 0.000000] Memory: 13504K/16384K available (1511K kernel code, 148K rwdata, 484K rodata, 284K init, 125K bss, 2880K reserved, 0K cma-reserved) [ 0.000000] Virtual kernel memory layout: [ 0.000000] vector : 0x00000000 - 0x00001000 ( 4 kB) [ 0.000000] fixmap : 0xffc00000 - 0xfff00000 (3072 kB) [ 0.000000] vmalloc : 0x00000000 - 0xffffffff (4095 MB) [ 0.000000] lowmem : 0xc0000000 - 0xc1000000 ( 16 MB) [ 0.000000] .text : 0x(ptrval) - 0x(ptrval) (1512 kB) [ 0.000000] .init : 0x(ptrval) - 0x(ptrval) ( 284 kB) [ 0.000000] .data : 0x(ptrval) - 0x(ptrval) ( 149 kB) [ 0.000000] .bss : 0x(ptrval) - 0x(ptrval) ( 126 kB) [ 0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1 [ 0.000000] Preemptible hierarchical RCU implementation. [ 0.000000] Tasks RCU enabled. [ 0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16 [ 0.000000] interrupt-controller@40013c00: bank0, External IRQs available:0x1ffffff [ 0.000000] clocksource: arm_system_timer: mask: 0xffffff max_cycles: 0xffffff, max_idle_ns: 298634427 ns [ 0.000000] ARM System timer initialized as clocksource [ 0.000000] /soc/timer@40000c00: STM32 clockevent driver initialized (32 bits) [ 0.000000] sched_clock: 32 bits at 100 Hz, resolution 10000000ns, wraps every 21474836475000000ns [ 0.050000] Calibrating delay loop... 398.13 BogoMIPS (lpj=1990656) [ 0.050000] pid_max: default: 4096 minimum: 301 [ 0.050000] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes) [ 0.050000] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes) [ 0.050000] Hierarchical SRCU implementation. [ 0.050000] devtmpfs: initialized [ 0.070000] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns [ 0.070000] pinctrl core: initialized pinctrl subsystem [ 0.070000] random: get_random_u32 called from bucket_table_alloc+0xc3/0xec with crng_init=0 [ 0.070000] NET: Registered protocol family 16 [ 0.080000] stm32f746-pinctrl soc:pin-controller: GPIOA bank added [ 0.080000] stm32f746-pinctrl soc:pin-controller: GPIOB bank added [ 0.080000] stm32f746-pinctrl soc:pin-controller: GPIOC bank added [ 0.080000] stm32f746-pinctrl soc:pin-controller: GPIOD bank added [ 0.080000] stm32f746-pinctrl soc:pin-controller: GPIOE bank added [ 0.080000] stm32f746-pinctrl soc:pin-controller: GPIOF bank added [ 0.080000] stm32f746-pinctrl soc:pin-controller: GPIOG bank added [ 0.090000] stm32f746-pinctrl soc:pin-controller: GPIOH bank added [ 0.090000] stm32f746-pinctrl soc:pin-controller: GPIOI bank added [ 0.090000] stm32f746-pinctrl soc:pin-controller: GPIOJ bank added [ 0.090000] stm32f746-pinctrl soc:pin-controller: GPIOK bank added [ 0.090000] stm32f746-pinctrl soc:pin-controller: Pinctrl STM32 initialized [ 0.100000] random: fast init done [ 0.100000] clocksource: Switched to clocksource arm_system_timer [ 0.110000] NET: Registered protocol family 2 [ 0.110000] TCP established hash table entries: 1024 (order: 0, 4096 bytes) [ 0.110000] TCP bind hash table entries: 1024 (order: 0, 4096 bytes) [ 0.110000] TCP: Hash tables configured (established 1024 bind 1024) [ 0.110000] UDP hash table entries: 256 (order: 0, 4096 bytes) [ 0.110000] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes) [ 0.180000] workingset: timestamp_bits=30 max_order=12 bucket_order=0 [ 0.190000] io scheduler noop registered (default) [ 0.190000] io scheduler mq-deadline registered [ 0.190000] io scheduler kyber registered [ 0.200000] STM32 USART driver initialized [ 0.210000] 40011000.serial: ttyS0 at MMIO 0x40011000 (irq = 32, base_baud = 6250000) is a stm32-usart [ 0.640000] console [ttyS0] enabled [ 0.640000] stm32-usart 40011000.serial: rx dma alloc failed [ 0.650000] stm32-usart 40011000.serial: interrupt mode used for rx (no dma) [ 0.660000] stm32-usart 40011000.serial: tx dma alloc failed [ 0.660000] stm32-usart 40011000.serial: interrupt mode used for tx (no dma) [ 0.670000] i2c /dev entries driver [ 0.670000] NET: Registered protocol family 17 [ 0.680000] hctosys: unable to open rtc device (rtc0) [ 0.690000] Freeing unused kernel memory: 284K [ 0.690000] This architecture does not have kernel memory protection. [ 0.710000] [ 0.710000] Unhandled exception: IPSR = 00000006 LR = fffffff1 [ 0.710000] CPU: 0 PID: 1 Comm: init Not tainted 4.15.9 #5 [ 0.710000] Hardware name: Generic DT based system [ 0.710000] PC is at ret_fast_syscall+0x2/0x58 [ 0.710000] LR is at tty_ioctl+0x2ad/0x57c [ 0.710000] pc : [] lr : [] psr: 4000000b [ 0.710000] sp : c0825fa8 ip : 0000001c fp : c0a0e462 [ 0.710000] r10: 00000000 r9 : c0824000 r8 : c0009c60 [ 0.710000] r7 : 00000036 r6 : c0a44ec0 r5 : 00000000 r4 : c0a44f1c [ 0.710000] r3 : 00000000 r2 : 00000000 r1 : 00000000 r0 : 00000000 [ 0.710000] xPSR: 4000000b [ 0.710000] CPU: 0 PID: 1 Comm: init Not tainted 4.15.9 #5 [ 0.710000] Hardware name: Generic DT based system [ 0.710000] [] (unwind_backtrace) from [] (show_stack+0xb/0xc) [ 0.710000] [] (show_stack) from [] (__invalid_entry+0x4b/0x4c)

Have you encountered this problem? Do you have any solution ? Thank you.

Best regards

yann77500 commented 6 years ago

Problem corrected with binutils version 2.28.x It was a bug from binutils version. http://lists.busybox.net/pipermail/buildroot/2018-May/222387.html

LubomirBogdanov commented 5 years ago

Hello, could you tell us what did you do to change the binutils?

LubomirBogdanov commented 5 years ago

OK, so I managed to get it working with binutils 2.28.1. Here is what I did:

git clone https://github.com/fdu/STM32F769I-disco_Buildroot.git make bootstrap cd buildroot/ make menuconfig -> Main menu -> Toolchain -> Binutils Version -> select binutils 2.28.1 -> Save -> OK -> Exit cd .. make build