Dear coreboot folks,
Am Sonntag, den 10.01.2016, 13:40 +0100 schrieb Paul Menzel:
on the ASRock E350M1, I lately noticed that the SeaBIOS banner takes longer to appear. And looking at the logs board status [1], the time stamps stored in CBMEM confirm this.
$ grep 1st asrock/e350m1/4.2-*/*/coreboot_timestamps.txt asrock/e350m1/4.2-33-g42444f6/2015-10-30T17:54:28Z/coreboot_timestamps.txt: 0:1st timestamp 368,199 asrock/e350m1/4.2-36-g0ace013/2015-10-31T13:22:12Z/coreboot_timestamps.txt: 0:1st timestamp 368,416 asrock/e350m1/4.2-37-gab35575/2015-10-31T18:23:47Z/coreboot_timestamps.txt: 0:1st timestamp 367,904 asrock/e350m1/4.2-41-g3c47e8a/2015-10-31T20:39:02Z/coreboot_timestamps.txt: 0:1st timestamp 367,829 asrock/e350m1/4.2-42-g0746452/2015-10-31T21:11:04Z/coreboot_timestamps.txt: 0:1st timestamp 368,081 asrock/e350m1/4.2-43-g160ad6a/2015-10-31T21:12:09Z/coreboot_timestamps.txt: 0:1st timestamp 368,290 asrock/e350m1/4.2-44-gbabb2e6/2015-10-31T21:14:48Z/coreboot_timestamps.txt: 0:1st timestamp 368,023 asrock/e350m1/4.2-53-gf6dc544/2015-11-01T13:27:02Z/coreboot_timestamps.txt: 0:1st timestamp 368,470 asrock/e350m1/4.2-58-g65eec4d/2015-11-02T15:41:33Z/coreboot_timestamps.txt: 0:1st timestamp 679,462 asrock/e350m1/4.2-628-g62c0276/2015-12-29T17:17:01Z/coreboot_timestamps.txt: 0:1st timestamp 1,528,198 asrock/e350m1/4.2-701-gb95a074/2016-01-08T01:44:15Z/coreboot_timestamps.txt: 0:1st timestamp 1,298,841 asrock/e350m1/4.2-702-gfecc24a/2016-01-08T16:21:59Z/coreboot_timestamps.txt: 0:1st timestamp 1,289,489 asrock/e350m1/4.2-703-g8846382/2016-01-09T21:18:59Z/coreboot_timestamps.txt: 0:1st timestamp 1,289,756
Unfortunately, there was a time, where I had forgotten to select this option, so I am still bisecting this.
[…]
If you have any suggestions, please tell me. Otherwise, I’d continue trying to bisect this.
Unfortunately, bisecting did not find anything. Even rebuilding 4.2-53- gf6dc544 with the same config does not produce an image without the longer time.
I build 4.2-775-gd91b1df on Debian 8.2 (Jessie/stable) with GCC 4.9.2 and that gave an image with the smaller boot time.
``` asrock/e350m1/4.2-775-gd91b1df/2016-01-16T22:33:45Z/coreboot_timestamps.txt: 0:1st timestamp 657,822 ```
I even built an image with the coreboot toolchain, which currently has GCC 5.2.0, which gave an incorrect image.
``` asrock/e350m1/4.2-840-g967881d/2016-01-19T20:42:27Z/coreboot_timestamps.txt: 0:1st timestamp 1,238,918 ```
So my current theory is, that there was a change/regression in GCC causing the longer boottime.
So I thought to force using GCC 4.9 on my Debian Sid system with the package gcc-4.9 installed.
I ran `make CC=gcc-4.9` but this resulted again in an image with the longer boot time.
Could you please help me?
1. How do I make sure that GCC 4.9 is used in `make CC=gcc-4.9`?
I have the x64 toolchain installed.
``` $ ls util/crossgcc/xgcc/bin/ x86_64-elf-addr2line x86_64-elf-dwp x86_64-elf-gcc-nm x86_64-elf-ld.bfd x86_64-elf-ranlib x86_64-elf-ar x86_64-elf-elfedit x86_64-elf-gcc-ranlib x86_64-elf-ld.gold x86_64-elf-readelf x86_64-elf-as x86_64-elf-gcc x86_64-elf-gcov x86_64-elf-nm x86_64-elf-size x86_64-elf-c++filt x86_64-elf-gcc-4.9.2 x86_64-elf-gprof x86_64-elf-objcopy x86_64-elf-strings x86_64-elf-cpp x86_64-elf-gcc-ar x86_64-elf-ld x86_64-elf-objdump x86_64-elf-strip ```
I attached `.xcompile`.
Randomly, I grepped through some files under `build/` and found the following.
``` $ strings build/cbfs/fallback/romstage.debug | grep -i gcc gcc.c gcc-intrin.h gcc-intrin.h gcc-intrin.h gcc-intrin.h gcc-intrin.h ../../../../gcc-4.9.2/libgcc libgcc2.c libgcc2.h ../../../../gcc-4.9.2/libgcc libgcc2.c libgcc2.h src/lib/gcc.c /mnt/coreboot/util/crossgcc/build-x86_64-elf-GCC/x86_64-elf/32/libgcc GNU C 4.9.2 -m32 -mtune=generic -march=x86-64 -g -O2 -O2 -O2 -fbuilding-libgcc -fno-stack-protector -fpic -fexceptions -fnon-call-exceptions -fvisibility=hidden ../../../../gcc-4.9.2/libgcc/libgcc2.c libgcc2.c gcc.c ```
So what compiler is used? I’d like to use the distribution toolchain.
2. Is it easy to add the coreboot toolchain information to the log like SeaBIOS does?
``` asrock/e350m1/4.2-566-g929b602/2015-12-10T23:20:08Z/coreboot_console.txt:BUILD: gcc: (Debian 5.2.1-26) 5.2.1 20151125 binutils: (GNU Binutils for Debian) 2.25.90.20151125 ```
3. If it is indeed a compiler issue, how would the debugging go?
Thanks,
Paul
[1] https://review.coreboot.org/gitweb?p=board-status.git;a=summary [2] https://review.coreboot.org/12810 [3] https://review.coreboot.org/12824 [4] https://ticket.coreboot.org/