New issue
Advanced search Search tips

Issue 726113 link

Starred by 1 user

Issue metadata

Status: Verified
Owner:
Closed: May 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 1
Type: Bug



Sign in to add a comment

poppy: chromeos-ec build fails with "no room left in the flash"

Project Member Reported by grundler@chromium.org, May 24 2017

Issue description

https://uberchromegw.corp.google.com/i/chromeos/builders/poppy-paladin/builds/1440/steps/BuildPackages/logs/stdio

...
chromeos-ec-0.0.1-r3864:   LD      RW/pingpong.RW.elf
chromeos-ec-0.0.1-r3864:   LD      RO/utils.RO.elf
chromeos-ec-0.0.1-r3864:   LD      RO/mutex.RO.elf
chromeos-ec-0.0.1-r3864:   CC      RW/common/update_fw.o
chromeos-ec-0.0.1-r3864:   LD      RO/timer_jump.RO.elf
chromeos-ec-0.0.1-r3864:   CC      RW/common/usb_i2c.o
chromeos-ec-0.0.1-r3864: /usr/x86_64-pc-linux-gnu/arm-none-eabi/binutils-bin/2.25.51/ld.bfd.real: No room left in the flash
chromeos-ec-0.0.1-r3864: collect2: error: ld returned 1 exit status
chromeos-ec-0.0.1-r3864: make[1]: *** [Makefile.rules:345: build/hammer/utils/RO/utils.RO.elf] Error 1
chromeos-ec-0.0.1-r3864: make[1]: *** Waiting for unfinished jobs....
 
Cc: aaboagye@chromium.org
BTW, this is an experimental build - so it's not blocking the CQ. But I expect whoever is working on poppy would like their builds to catch errors like this one. :)
I haven't checked, but I'd expect other paladins to fail as well since chromeos-ec unittest stage should build all boards.
Components: OS>Firmware>EC
Labels: -Pri-3 OS-Chrome Pri-1
Status: Assigned (was: Untriaged)
This is the culprit: https://chromium-review.googlesource.com/c/510413/

Aamir at Intel spotted it last night, will have a look today.

AFAICT this only affects poppy-release (not soraka-release, for some reason), as only the hammer EC overlay is broken.
Can be reproduced with:

make BOARD=hammer tests

Increasing hammer RO size back to ~50kb, the tests compile.

Looking at their sizes:
grep hey build/hammer/*/RO/*smap | sed -e 's/\(.*\):\(.*\)/\2:\1/' | sort
00008e4c a __hey_flash_used:build/hammer/timer_jump/RO/timer_jump.RO.smap
00008fcc a __hey_flash_used:build/hammer/timer_calib/RO/timer_calib.RO.smap
0000900c a __hey_flash_used:build/hammer/pingpong/RO/pingpong.RO.smap
0000908c a __hey_flash_used:build/hammer/timer_dos/RO/timer_dos.RO.smap
000092cc a __hey_flash_used:build/hammer/mutex/RO/mutex.RO.smap
0000ae4c a __hey_flash_used:build/hammer/utils/RO/utils.RO.smap

(44kb that I chose for hammer RO is 0000b000 (so we're just short, probably due to public key storage).

2 options:
 - Have hammer report a different RO size for tests
 - Split utils in 2 different subtests
Change that splits the test in 2 parts: https://chromium-review.googlesource.com/514604
Project Member

Comment 6 by bugdroid1@chromium.org, May 25 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/ec/+/661259ebff96a3acc1f72701b90ea2c4955addc6

commit 661259ebff96a3acc1f72701b90ea2c4955addc6
Author: Nicolas Boichat <drinkcat@google.com>
Date: Thu May 25 09:33:04 2017

tests: Split utils in 2 subtests

utils test is a little too large for hammer's small RO, so we split
it in 2 test: utils and utils_str. Instead of one test that requires
about 8kb extra flash, we have 2 tests that take respectively
3.4kb (utils_str) and 4.6kb (utils) of extra flash.

BRANCH=none
BUG= chromium:726113 
TEST=make BOARD=hammer tests -j
     util/flash_ec --board=hammer --image=build/hammer/test-utils.bin
     runtest => pass
     Repeat with test-utils_str.bin
TEST=Before this change:
       make runtests -j
       ./util/run_host_test utils | grep Running | sort > old
     Apply this change:
       make runtests -j
       (./util/run_host_test utils; ./util/run_host_test utils_str) \
               | grep Running | sort > new
       diff old new => No difference (except timing)

Change-Id: I917d572e671d6ce0a8799508761f55de7bd83133
Reviewed-on: https://chromium-review.googlesource.com/514604
Commit-Ready: Nicolas Boichat <drinkcat@chromium.org>
Tested-by: Nicolas Boichat <drinkcat@chromium.org>
Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>

[add] https://crrev.com/661259ebff96a3acc1f72701b90ea2c4955addc6/test/utils_str.tasklist
[modify] https://crrev.com/661259ebff96a3acc1f72701b90ea2c4955addc6/test/utils.c
[modify] https://crrev.com/661259ebff96a3acc1f72701b90ea2c4955addc6/test/build.mk
[add] https://crrev.com/661259ebff96a3acc1f72701b90ea2c4955addc6/test/utils_str.c

Status: Verified (was: Assigned)
Project Member

Comment 8 by bugdroid1@chromium.org, Jun 5 2017

Labels: merge-merged-firmware-eve-9584.B
The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/ec/+/9f4a64f0887c753844972634f8461ecdfa13265a

commit 9f4a64f0887c753844972634f8461ecdfa13265a
Author: Nicolas Boichat <drinkcat@google.com>
Date: Mon Jun 05 15:22:30 2017

tests: Split utils in 2 subtests

utils test is a little too large for hammer's small RO, so we split
it in 2 test: utils and utils_str. Instead of one test that requires
about 8kb extra flash, we have 2 tests that take respectively
3.4kb (utils_str) and 4.6kb (utils) of extra flash.

BRANCH=none
BUG= chromium:726113 
TEST=make BOARD=hammer tests -j
     util/flash_ec --board=hammer --image=build/hammer/test-utils.bin
     runtest => pass
     Repeat with test-utils_str.bin
TEST=Before this change:
       make runtests -j
       ./util/run_host_test utils | grep Running | sort > old
     Apply this change:
       make runtests -j
       (./util/run_host_test utils; ./util/run_host_test utils_str) \
               | grep Running | sort > new
       diff old new => No difference (except timing)

Change-Id: Ia6e028229f07957e8286ea459e134d47f1c04acf
Signed-off-by: Duncan Laurie <dlaurie@google.com>
Original-Commit-Id: 661259ebff96a3acc1f72701b90ea2c4955addc6
Original-Change-Id: I917d572e671d6ce0a8799508761f55de7bd83133
Original-Reviewed-on: https://chromium-review.googlesource.com/514604
Original-Commit-Ready: Nicolas Boichat <drinkcat@chromium.org>
Original-Tested-by: Nicolas Boichat <drinkcat@chromium.org>
Original-Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/524366

[add] https://crrev.com/9f4a64f0887c753844972634f8461ecdfa13265a/test/utils_str.tasklist
[modify] https://crrev.com/9f4a64f0887c753844972634f8461ecdfa13265a/test/utils.c
[modify] https://crrev.com/9f4a64f0887c753844972634f8461ecdfa13265a/test/build.mk
[add] https://crrev.com/9f4a64f0887c753844972634f8461ecdfa13265a/test/utils_str.c

Project Member

Comment 9 by bugdroid1@chromium.org, Jun 5 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/ec/+/9f4a64f0887c753844972634f8461ecdfa13265a

commit 9f4a64f0887c753844972634f8461ecdfa13265a
Author: Nicolas Boichat <drinkcat@google.com>
Date: Mon Jun 05 15:22:30 2017

tests: Split utils in 2 subtests

utils test is a little too large for hammer's small RO, so we split
it in 2 test: utils and utils_str. Instead of one test that requires
about 8kb extra flash, we have 2 tests that take respectively
3.4kb (utils_str) and 4.6kb (utils) of extra flash.

BRANCH=none
BUG= chromium:726113 
TEST=make BOARD=hammer tests -j
     util/flash_ec --board=hammer --image=build/hammer/test-utils.bin
     runtest => pass
     Repeat with test-utils_str.bin
TEST=Before this change:
       make runtests -j
       ./util/run_host_test utils | grep Running | sort > old
     Apply this change:
       make runtests -j
       (./util/run_host_test utils; ./util/run_host_test utils_str) \
               | grep Running | sort > new
       diff old new => No difference (except timing)

Change-Id: Ia6e028229f07957e8286ea459e134d47f1c04acf
Signed-off-by: Duncan Laurie <dlaurie@google.com>
Original-Commit-Id: 661259ebff96a3acc1f72701b90ea2c4955addc6
Original-Change-Id: I917d572e671d6ce0a8799508761f55de7bd83133
Original-Reviewed-on: https://chromium-review.googlesource.com/514604
Original-Commit-Ready: Nicolas Boichat <drinkcat@chromium.org>
Original-Tested-by: Nicolas Boichat <drinkcat@chromium.org>
Original-Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/524366

[add] https://crrev.com/9f4a64f0887c753844972634f8461ecdfa13265a/test/utils_str.tasklist
[modify] https://crrev.com/9f4a64f0887c753844972634f8461ecdfa13265a/test/utils.c
[modify] https://crrev.com/9f4a64f0887c753844972634f8461ecdfa13265a/test/build.mk
[add] https://crrev.com/9f4a64f0887c753844972634f8461ecdfa13265a/test/utils_str.c

Sign in to add a comment