| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Instead of extracting the host's cross compile value from HOSTCC, just
get it from HOST_CROSS_COMPILE, which is where HOSTCC gets it from in
the first place.
This allows overriding CCACHE to something other than ccache.
BRANCH=None
BUG=b:214323409
TEST=make clobber ; make -j8 test-coverage
TEST=make clobber ; make -j1024 CCACHE=/mnt/host/depot_tools/.cipd_bin/gomacc test-coverage
Signed-off-by: Jeremy Bettis <jbettis@google.com>
Change-Id: I390d9dd15b5bd070030ecd8396bb8e07d23c9efd
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3739304
Commit-Queue: Jeremy Bettis <jbettis@chromium.org>
Reviewed-by: Jack Rosenthal <jrosenth@chromium.org>
Tested-by: Jeremy Bettis <jbettis@chromium.org>
Commit-Queue: Jack Rosenthal <jrosenth@chromium.org>
Auto-Submit: Jeremy Bettis <jbettis@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
"-std=gnu++17" is the C++ standard we currently use for the rest of
ChromeOS. cmd_cxx_to_host was already updated to gnu++17 in
https://crrev.com/c/2872429, but cmd_cxx_to_o was not.
BRANCH=none
BUG=b:234181908
TEST=./util/compare_build.sh -b all -j 120
=> MATCH
Signed-off-by: Tom Hughes <tomhughes@chromium.org>
Change-Id: Iab8adacaa8673bda7b6427745b85fd3b7550eb4e
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3712036
Reviewed-by: Paul Fagerburg <pfagerburg@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Change the linker command for all board builds to pass the
--print-memory-usage flag and save the results to a file.
BRANCH=None
BUG=b:223846977
TEST=make buildall_only -j16
Signed-off-by: Jeremy Bettis <jbettis@google.com>
Change-Id: I63733ce205a5453e7dc16809f7fd033873d67d07
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3530150
Tested-by: Jeremy Bettis <jbettis@chromium.org>
Commit-Queue: Jeremy Bettis <jbettis@chromium.org>
Auto-Submit: Jeremy Bettis <jbettis@chromium.org>
Reviewed-by: Yuval Peress <peress@google.com>
Commit-Queue: Yuval Peress <peress@google.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Similar to cmd_cxx_to_o, set the default C standard to gnu11.
Right now we are relying on compiler defaults, which uses pre-C99
standards in some cases. Let's be explicit and ask for gnu11.
BUG=b:221860687,b:147769405
BRANCH=none
TEST=buildall
Signed-off-by: Jack Rosenthal <jrosenth@chromium.org>
Change-Id: I0371a6efaa71c0972394f90fa879f250ae921647
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3495875
Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
Commit-Queue: Aseda Aboagye <aaboagye@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This option is defined by Zephyr, but the Zephyr source tree is not
always accessible to the script. Add it to the list to avoid any
errors.
BUG=b:181323955
BRANCH=none
TEST=try CQ
Build for plankton then check (without a Zephyr tree):
./util/kconfig_check.py -c build/plankton/.config
-a util/config_allowed.txt -p PLATFORM_EC_ -s zephyr/ check
See that it now succeeds
Signed-off-by: Simon Glass <sjg@chromium.org>
Change-Id: I473ab291cee6074792124c6db5e44bfdaaa0c973
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3453164
Reviewed-by: Jack Rosenthal <jrosenth@chromium.org>
Commit-Queue: Jack Rosenthal <jrosenth@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is defined in Zephyr and is used by a board in Chrome OS too.
Add it to the exception list.
BUG=b:181323955
BRANCH=none
TEST=try CQ
Signed-off-by: Simon Glass <sjg@chromium.org>
Change-Id: I77ed52e88fd14b3c4b3b891e191b52629196c041
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3449668
Reviewed-by: Jack Rosenthal <jrosenth@chromium.org>
Commit-Queue: Jack Rosenthal <jrosenth@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is the second attempt, fixing the problem with CONFIG_DAC and
other options. These must be left in config_allowed but ignored if
they show up as present in Kconfig.
Leave the following in config_allowed since they are defined both
as CONFIG options in ECOS and Kconfig options in Zephyr:
AUDIO_CODEC
DAC
DMA
EEPROM
I2C_BITBANG
PECI
SPI
UART_CONSOLE
BUG=b:181323955
BRANCH=none
TEST=./util/kconfig_check.py -c build/blipper/.config
-a util/config_allowed.txt -p PLATFORM_EC_ -s zephyr/
-I ~/cosarm/src/third_party/zephyr/main -i DAC check
See that this does not cause an error now
Signed-off-by: Simon Glass <sjg@chromium.org>
Change-Id: I1fc7ac9cde106c61dd28b30673830407aa8c1a29
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3425452
Reviewed-by: Jack Rosenthal <jrosenth@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This reverts commit 5b4c6473a341ebbd88463c908b39bb2820e5c43b.
Reason for revert: b:216919905 - breaks chromeos CQ
Original change's description:
> Makefile: Switch to the Python script for CONFIG checking
>
> Now that the Python script seems to do what we need, switch over to
> use that for checking for allowed ad-hoc CONFIGs.
>
> Sadly we need a work-around for the very old Python 3 version used in
> the chroot.
>
> The new script is better at finding Kconfig options, so this allows some
> reductions in the config_allowed.txt file.
>
> Delete the now-unused shell scripts.
>
> BUG=b:181323955
> BRANCH=none
> TEST=python3 util/test_kconfig_check.py
>
> Signed-off-by: Simon Glass <sjg@chromium.org>
> Change-Id: I2dafc9dfe9d9020638f4e49b5c5ee0fc0b10000b
> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2923233
> Reviewed-by: Jack Rosenthal <jrosenth@chromium.org>
Bug: b:181323955
Change-Id: I9b5514f9d2df43033cfd95555612e2e89e6ce724
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3426237
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Jack Rosenthal <jrosenth@chromium.org>
Commit-Queue: Nicolas Norvez <norvez@chromium.org>
Tested-by: Nicolas Norvez <norvez@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Now that the Python script seems to do what we need, switch over to
use that for checking for allowed ad-hoc CONFIGs.
Sadly we need a work-around for the very old Python 3 version used in
the chroot.
The new script is better at finding Kconfig options, so this allows some
reductions in the config_allowed.txt file.
Delete the now-unused shell scripts.
BUG=b:181323955
BRANCH=none
TEST=python3 util/test_kconfig_check.py
Signed-off-by: Simon Glass <sjg@chromium.org>
Change-Id: I2dafc9dfe9d9020638f4e49b5c5ee0fc0b10000b
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2923233
Reviewed-by: Jack Rosenthal <jrosenth@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The root cause of this has been fixed.
This reverts commit dfd949d5bb781f23c1160ec9ca412d6be4cea1bd.
BUG=b:216217781
BRANCH=none
TEST=cq since I'm not sure how to test it otherwise, since cros_workon
must be disabled
Change-Id: I38de1617687db73ead4eb91c2c67459600a523a2
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3415373
Reviewed-by: Jack Rosenthal <jrosenth@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This reverts commit 71efe4989c253562b555c00b92cbe37487a8dacc.
Reason for revert: b/216217781
Original change's description:
> Revert "make: disable kconfig option check"
>
> Unfortunately this was disabled but never restarted. We have a number
> of CONFIG options that are missing Kconfigs:
>
> For volteer the list is:
>
> CONFIG_BATTERY_LOW_VOLTAGE_TIMEOUT
> CONFIG_HOSTCMD_DEBUG_MODE
> CONFIG_LED_PWM_COUNT
> CONFIG_POWER_S4_RESIDENCY
> CONFIG_STEINHART_HART_3V3_30K9_47K_4050B
> CONFIG_USB_PD_FLAGS
>
> This cannot be applied until the above are fixed. Possibly this is not a
> big problem anymore, since we are likely not adding much new
> functionality to ECOS.
>
> This reverts commit b3f5db5be78e15290dc7d80eaeecbb0f1b754a2c
>
> BUG=b:195718112
> BRANCH=none
> TEST=make buildall -j32
>
> Change-Id: I4b148caa04509721db83d001eb65dc061b2f21a6
> Signed-off-by: Simon Glass <sjg@chromium.org>
> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3388360
> Reviewed-by: Jack Rosenthal <jrosenth@chromium.org>
Bug: b:195718112
Change-Id: I67f07b9136168554f3459bab5b2fcc879230b774
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3414570
Auto-Submit: caveh jalali <caveh@chromium.org>
Tested-by: caveh jalali <caveh@chromium.org>
Reviewed-by: Nick Vaccaro <nvaccaro@google.com>
Reviewed-by: Jack Rosenthal <jrosenth@chromium.org>
Commit-Queue: Jack Rosenthal <jrosenth@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Unfortunately this was disabled but never restarted. We have a number
of CONFIG options that are missing Kconfigs:
For volteer the list is:
CONFIG_BATTERY_LOW_VOLTAGE_TIMEOUT
CONFIG_HOSTCMD_DEBUG_MODE
CONFIG_LED_PWM_COUNT
CONFIG_POWER_S4_RESIDENCY
CONFIG_STEINHART_HART_3V3_30K9_47K_4050B
CONFIG_USB_PD_FLAGS
This cannot be applied until the above are fixed. Possibly this is not a
big problem anymore, since we are likely not adding much new
functionality to ECOS.
This reverts commit b3f5db5be78e15290dc7d80eaeecbb0f1b754a2c
BUG=b:195718112
BRANCH=none
TEST=make buildall -j32
Change-Id: I4b148caa04509721db83d001eb65dc061b2f21a6
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3388360
Reviewed-by: Jack Rosenthal <jrosenth@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Lcov was already being run with branch coverage, but include that in
the html reports also.
BRANCH=None
BUG=None
TEST=Ran commands locally
Signed-off-by: Jeremy Bettis <jbettis@google.com>
Change-Id: Ia64d120ec13ef7e741ba78bc6d05621f1b045215
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3399900
Tested-by: Jeremy Bettis <jbettis@chromium.org>
Auto-Submit: Jeremy Bettis <jbettis@chromium.org>
Reviewed-by: Yuval Peress <peress@google.com>
Commit-Queue: Jeremy Bettis <jbettis@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If you don't include --rc lcov_branch_coverage=1 on every lcov command,
lcov will drop the branch information at that stage of processing.
Add --rc lcov_branch_coverage=1 to all lcov commands.
BRANCH=None
BUG=None
TEST=None
Change-Id: I3fd2a036f9f2fcfaeec60bdc55cfcba28e6c8228
Signed-off-by: Jeremy Bettis <jbettis@google.com>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3381536
Tested-by: Jeremy Bettis <jbettis@chromium.org>
Auto-Submit: Jeremy Bettis <jbettis@chromium.org>
Reviewed-by: Aaron Massey <aaronmassey@google.com>
Commit-Queue: Aaron Massey <aaronmassey@google.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Disable LTO when compiling the monitor header since clang will generate
an LLVM IR bitcode file instead of an ARM object file. objcopy then
fails since it doesn't recognize the file type. This shouldn't result in
any loss of optimization since these are single .c files that are not
being linked.
Also add a DISCARD section in the linker script to fix the clang (lld)
warning:
ld.lld: error: no memory region specified for section '.ARM.exidx'
This should be safe since there is no ".ARM.exidx" section in
npcx_monitor.elf generated by gcc before this change as shown by
arm-none-eabi-objdump -h build/brya/chip/npcx/spiflashfw/npcx_monitor.elf
Go ahead and discard any other ".ARM.*" sections as well since we do
that in our other EC linker scripts. Details on these sections can be
found in
https://developer.arm.com/documentation/ihi0044/h/?lang=en#sections
under the "Sections" section.
BRANCH=none
BUG=b:172020503
TEST=./util/compare_build.sh -b all -j 120
=> MATCH
Signed-off-by: Tom Hughes <tomhughes@chromium.org>
Change-Id: I784d7a9e69989b330f58f89ae3a901d459e7cd21
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3243010
Reviewed-by: Edward Hill <ecgh@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
By default all builds will use gcc. To build with clang, set
the environment variable CC=clang.
At this point only dartmonkey has been tested with clang.
BRANCH=none
BUG=b:172020503
TEST=Using icetower, Segger J-Trace, and servo micro:
make BOARD=dartmonkey -j
./flash_jlink.py -b dartmonkey -i ./build/dartmonkey/ec.bin
--remote 127.0.0.1:2551
=> console on icetower works
TEST=CC=clang make BOARD=dartmonkey -j
./flash_jlink.py -b dartmonkey -i ./build/dartmonkey/ec.bin
--remote 127.0.0.1:2551
=> console on icetower works
TEST=make buildall -j
TEST=CC=clang make BOARD=dartmonkey tests -j
TEST=make BOARD=dartmonkey tests -j
TEST=./util/compare_build.sh -b all -j 120
=> MATCH
Change-Id: Ib7c067d0ebe0561becfd70373216adb445501f94
Signed-off-by: Tom Hughes <tomhughes@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1474577
Reviewed-by: Eric Yilun Lin <yllin@google.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The map file generated by lld has a different format than the gnu linker
(ld). (We save this map file into build/<board>/<image>/ec.<image>.map
during the build.)
Instead of trying to parse the different formats in the .map file, use
the .smap file (the output of "nm"), which has the values of the symbols
and has the same format whether using lld or ld. We need to add a new
"__flash_size" symbol so that we can use that symbol to get the size
from the .smap.
This add flash sizes to a few boards that previously didn't have it:
asurada_scp, cherry_scp, and kukui_scp, since the previous logic was
always looking for FLASH and these use IROM.
BRANCH=none
BUG=b:172020503
TEST=make buildall -j
TEST=make CC=arm-none-eabi-clang BOARD=elemi
TEST=bcompare build_before_change build_after_change
=> only difference between space_free_flash.txt and
space_free_ram.txt files in the two builds is that this change adds
the space_free_flash.txt files for asurada_scp, cherry_scp, and
kukui_scp.
Signed-off-by: Tom Hughes <tomhughes@chromium.org>
Change-Id: I7c64b6ba9bceeeb4044559188c1c1bebbf60471d
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3179314
Reviewed-by: Keith Short <keithshort@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The interrupt seems to be very sensitive to cpu load and when running
for coverage in gitlab, it often times out. Change to skip this test
in coverage builds, since it is unlikely to add any coverage for zephyr
used code anyway.
BRANCH=None
BUG=None
TEST=None
Change-Id: Iefe0da6b925cc820f764c1ad5a79187b8f09885f
Signed-off-by: Jeremy Bettis <jbettis@google.com>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3208910
Commit-Queue: Jeremy Bettis <jbettis@chromium.org>
Commit-Queue: Abe Levkoy <alevkoy@chromium.org>
Tested-by: Jeremy Bettis <jbettis@chromium.org>
Auto-Submit: Jeremy Bettis <jbettis@chromium.org>
Reviewed-by: Abe Levkoy <alevkoy@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Switch to updated docker container.
Make shallow git clones for speed.
Don't install anytree or pyelftools, since they are in the docker
container now.
Set explicit `needs` attributes on each job.
Split coverage build into ec_coverage, zephyr_coverage, and
merged_coverage.
Run make -j8 instead of make -j.
Run make test-coverage instead of make coverage. For this situation we
don't need the base board coverage, nor the report.
Stop using flock to prevent parallel calls to lcov. I don't know if it
was ever unsafe, but it seems safe today.
BUG=None
BRANCH=None
TEST=Pushed to gitlab coverage branch:
https://gitlab.com/zephyr-ec/ec/-/pipelines/379672379
Change-Id: I90ed7bb947d96062042959aee957bc6728c22ea7
Signed-off-by: Jeremy Bettis <jbettis@google.com>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3194977
Tested-by: Jeremy Bettis <jbettis@chromium.org>
Auto-Submit: Jeremy Bettis <jbettis@chromium.org>
Commit-Queue: Fabio Baltieri <fabiobaltieri@google.com>
Reviewed-by: Fabio Baltieri <fabiobaltieri@google.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Use the right gcov tool for cross compile and host builds. The llvm-cov
tool is sort of magical and can handle both llvm and gcc output, but
that is only in the chroot, and so on gitlab we need to pick the right
gcov for each platform.
BRANCH=None
BUG=None
TEST=in docker: make -j CRYPTOC_DIR="${MODULES_DIR}/cryptoc" \
FTDIVERSION=1 HOSTGCOV='gcov' \
CROSS_COMPILE_arm=/opt/zephyr-sdk/arm-zephyr-eabi/bin/arm-zephyr-eabi- \
coverage
Change-Id: Ie95032a4c0706b2bd49574df03e93dcbec7c3eed
Signed-off-by: Jeremy Bettis <jbettis@google.com>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3171942
Reviewed-by: Jack Rosenthal <jrosenth@chromium.org>
Commit-Queue: Jeremy Bettis <jbettis@chromium.org>
Tested-by: Jeremy Bettis <jbettis@chromium.org>
Auto-Submit: Jeremy Bettis <jbettis@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This check is currently suspected to be causing widespread commit
queue failures. Disable for now.
BUG=b:195718112
BRANCH=none
TEST=make buildall -j32
Signed-off-by: Jack Rosenthal <jrosenth@chromium.org>
Change-Id: I58ff77eb4ff8a8fae4f856c116cb592aede634ee
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3078400
Reviewed-by: Abhishek Pandit-Subedi <abhishekpandit@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This reverts commit 1821e9423af84c7a126a4a15303c6492dd44e94b.
Reason for revert: This change broke the build.
BUG=b:195332627
TEST=None
BRANCH=None
Original change's description:
> make: Compile host tests in 32-bit mode
>
> Compile the host tests in 32-bit mode instead of 64-bit mode as it's
> more likely to match the actual environments our ECs run on. For
> instance, in 32-bit mode the tests might actually have a prayer of
> finding a torn read or write bug, whereas in 64-bit mode 64-bit integers
> are always operated on atomically.
>
> BUG=b:179062230
> BRANCH=none
> TEST=make -j runhosttests BOARD=host on x86_64 and i686
>
> Signed-off-by: Evan Green <evgreen@chromium.org>
> Change-Id: I02517066337ec08c311c1f7daae5d3de84b1f4c2
> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3059231
> Reviewed-by: Jack Rosenthal <jrosenth@chromium.org>
Bug: b:179062230
Change-Id: I35bcac77deeb1d031a31b32d911781f5fed4ab13
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3067826
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Reviewed-by: Allen Webb <allenwebb@google.com>
Tested-by: Evan Green <evgreen@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Compile the host tests in 32-bit mode instead of 64-bit mode as it's
more likely to match the actual environments our ECs run on. For
instance, in 32-bit mode the tests might actually have a prayer of
finding a torn read or write bug, whereas in 64-bit mode 64-bit integers
are always operated on atomically.
BUG=b:179062230
BRANCH=none
TEST=make -j runhosttests BOARD=host on x86_64 and i686
Signed-off-by: Evan Green <evgreen@chromium.org>
Change-Id: I02517066337ec08c311c1f7daae5d3de84b1f4c2
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3059231
Reviewed-by: Jack Rosenthal <jrosenth@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
By putting all object files in a single LTO partition there's less
room to optimize the build time using multi-threading. On the upside,
the build becomes more reproducible and the build result tends to be
smaller thanks to better optimization opportunities.
This is needed on gcc 11 for now build kodama: without it, the code
grows beyond the bounds it needs to fit in (that gcc 8 manages to hold,
so a regression).
BUG=none
BRANCH=none
TEST=one class of error less with gcc 11
Signed-off-by: Patrick Georgi <pgeorgi@google.com>
Change-Id: I86b2c70cb5a2e85024630e7217cf8bd24d349910
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2959922
Reviewed-by: Eric Yilun Lin <yllin@google.com>
Commit-Queue: Patrick Georgi <pgeorgi@chromium.org>
Tested-by: Patrick Georgi <pgeorgi@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The code coverage plugin requires that the paths are relative to the
repo, so we need to strip off the path above the repo's top level.
BRANCH=None
BUG=b:156895937
TEST=`make coverage ; grep SF: build/coverage/lcov.info` and observe
that the source paths are now relative to the repo, instead of
starting with /mnt/source
Signed-off-by: Paul Fagerburg <pfagerburg@google.com>
Change-Id: Iba86badeefd7359b72cb7e04cf97b0e51eed6789
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2950569
Tested-by: Paul Fagerburg <pfagerburg@chromium.org>
Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
Commit-Queue: Paul Fagerburg <pfagerburg@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Update cmd_cxx_to_host to match current cmd_c_to_host. Switch HOSTCXX to
clang++ to match "CXX" in Makefile.toolchain (and the toolchain that we
use in the rest of Chrome OS). Add "-std=gnu++17" to match the C++
standard that we use in the rest of Chrome OS.
Followup commits will make use of these changes.
BRANCH=none
BUG=b:144959033
TEST=make buildall
Signed-off-by: Tom Hughes <tomhughes@chromium.org>
Change-Id: I5878ae64dc5ac76db22b3c331915b191a00f4257
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2872429
Reviewed-by: Eric Yilun Lin <yllin@google.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Originally, the util/check_allowed.sh was completely hidden which made
it hard to track, specially since it often flags a change that needs
further analysis. With this change, make reports the
util/check_allowed.sh invocation as "CHECK_ALLOWED". Also, when building
with V=1, the actual command invocation is reported:
(brya-shared-image) [brya] $ make -j
...
CHECK_ALLOWED build/brya/.config
...
OR:
(brya-shared-image) [brya] $ make V=1 -j
...
./util/check_allowed.sh build/brya/.config util/config_allowed.txt .
...
BRANCH=none
BUG=b:181253613
TEST=verified check_allowed is reporte as "CHECK_ALLOWED" during a
normal build and as a full command invocation with V=1.
Change-Id: Ie1132221ee9b8d5d381adb5413b96ae2a2f71db9
Signed-off-by: Caveh Jalali <caveh@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2803974
Reviewed-by: Jack Rosenthal <jrosenth@chromium.org>
Commit-Queue: Jack Rosenthal <jrosenth@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This enhances the quiet function to optionally print a command specific
terse representation of the make command being invoked. If no custom
command string is specified, the original behavior is preserved: the
terse command string is printed followed by the computed target name.
Now, if quiet_cmd_<CMD> has a non-empty value, its value is printed
instead.
BRANCH=none
BUG=b:181253613
TEST=buildall passes
Change-Id: I8ff13678307a3fe4f2ecd1a4cf89ed550e5702bb
Signed-off-by: Caveh Jalali <caveh@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2803973
Reviewed-by: Jack Rosenthal <jrosenth@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Exclude the test directories from ec coverage report.
Include the test name into the coverage data.
Show the test name details in the coverage report.
Build several boards with coverage enabled, and use that to make sure
all used files are in the coverage report.
This lowers the coverage to 38.4% which seems much more realistic than
the old value.
BRANCH=none
BUG=b:156895937
TEST=make -j coverage
Signed-off-by: Jeremy Bettis <jbettis@google.com>
Change-Id: I91fc5bc7ce676943d34e91e16662e680628d1b7e
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2811939
Commit-Queue: Jeremy Bettis <jbettis@chromium.org>
Tested-by: Jeremy Bettis <jbettis@chromium.org>
Reviewed-by: Paul Fagerburg <pfagerburg@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Use board-specific override files when generating VIFs for boards.
BUG=b:172276715
TEST=make buildall
BRANCH=none
Signed-off-by: Abe Levkoy <alevkoy@chromium.org>
Change-Id: I197365018ceb8197c22d631cebf4cbce1c0119f7
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2785506
Reviewed-by: Denis Brockus <dbrockus@chromium.org>
Commit-Queue: Denis Brockus <dbrockus@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add a rule to the makefile to merge code coverage into a single LCOV
file, which firmware_builder.py will bundle as a build artifact.
BUG=b:156895937
BRANCH=None
TEST=Verify code coverage builds:
```
make clobber
make coverage
ls build/coverage/lcov.info
```
Verify firmware_builder tests (generate code coverage) and bundles
the code coverage information with the correct metadata:
```
make clobber
firmware_builder.py --code-coverage --metrics metrics.json test
firmware_builder.py --code-coverage --metrics metrics.json bundle
ls /tmp/artifact_bundles/coverage.tbz2
cat /tmp/artifact_bundle_metadata
```
Cq-Depend: chromium:2770601
Signed-off-by: Paul Fagerburg <pfagerburg@chromium.org>
Change-Id: I355ea76cc774f566bf552741c1a1bdc94cd21bda
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2749421
Reviewed-by: LaMont Jones <lamontjones@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add a script to help deal with new ad-hoc CONFIG options being added
to ECOS.
This works by maintaining a list of allowed ad-hoc CONFIG options and
refusing to allow a build to succeed if it adds new ones.
This is easier to implement than a pre-submit and more useful, since
we can check the actual CONFIG file produced by a board. For example,
adding a new CONFIG to board/volteer/board.h will cause the volteer
build to break, but not kukui. That seems important to avoid
frustration.
Add the base list of allowed ad-hoc CONFIGs, which should never grow.
As new Kconfig options are added for existing CONFIG options, or
obsolete CONFIG options are removed, the list should eventually shrink
to zero.
BUG=b:181253613
BRANCH=none
TEST=manually test that adding a new '#define CONFIG' causes an error
to be generated, and adding a new Kconfig option with the same name
causes the error to go away.
Also check that the script suggests updating the list when a Kconfig is
added for an existing CONFIG option.
Finally, manually check that ALLOW_CONFIG=1 does as intended.
(that's quite a few manual tests; possibly it is worth automating
them)
Change-Id: Id11b8d859fd07c2db73324cbb9e425182710ab3d
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2718533
Reviewed-by: Jack Rosenthal <jrosenth@chromium.org>
Reviewed-by: Yuval Peress <peress@chromium.org>
Reviewed-by: Keith Short <keithshort@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The key objectives are to
* allow util targets to be added from outside of util/build.mk
(for adding tools per board, like ectool_servo)
* allow for easier conditioning of tool inclusion
(for auto adding tools based on characteristic, like CHIP_NPCX)
* reduce the number of tools being built
(we can remove irrelevant tools for some boards, like removing
stm32mon for npcx boards or iteflash for stm32 boards)
We have tons of boards in EC now. This takes a significant amount
of time to build, so we should be a bit more careful when adding
utils for all boards. This and subsequent changes sets the precedent
for selectivity.
This shifts the initialization/control to the board and baseboard's
build.mk and allows the util/build.mk to add items to these variables.
Ideally, we would use multiple variables to aggregate the utils
selection from the three sources (baseboard/build.mk, board/build.mk,
and util/build.mk), but I don't think the addition complexity is
currently warranted.
BRANCH=none
BUG=b:176500425
TEST=# Check all output artifacts from before and after this CL.
make clobber
make buildall STATIC_VERSION=1 -j
mv build build-orig
# Apply the change
make clobber
make buildall STATIC_VERSION=1 -j
diff <(find build-orig | sed 's/build-orig//' | sort) <(find build | sed 's/build//' | sort)
# Nothing should be different
Signed-off-by: Craig Hesling <hesling@chromium.org>
Change-Id: I23153850eda10fc1c88d386b9f3cd8296df9c6f1
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2606511
Commit-Queue: Aseda Aboagye <aaboagye@chromium.org>
Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The Makefile uses awk to find a section named FLASH in the output map
file and parses the size of the section to determine the free space
remaining.
NPCX RO images include sections named FLASH and FLASH_HDR. Modify the
awk command so the FLASH_HDR section isn't used by mistake.
BUG=none
BRANCH=none
TEST=make buildall
Signed-off-by: Keith Short <keithshort@chromium.org>
Change-Id: I3e420fbb45fdebc4f1e2578f819bbbce4994d2a8
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2640873
Commit-Queue: caveh jalali <caveh@chromium.org>
Reviewed-by: Abe Levkoy <alevkoy@chromium.org>
Reviewed-by: Jack Rosenthal <jrosenth@chromium.org>
Reviewed-by: caveh jalali <caveh@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
| |
BRANCH=none
BUG=b:176500425
TEST=make help
Signed-off-by: Craig Hesling <hesling@chromium.org>
Change-Id: I34bbf0fd11677d6cdbc557b722035a822623b57f
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2606466
Reviewed-by: Ting Shen <phoenixshen@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
| |
BRANCH=none
BUG=none
TEST=make help
Signed-off-by: Craig Hesling <hesling@chromium.org>
Change-Id: I4a1187443c49abcf9a3518e3f6ff612e1c3989ef
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2606519
Commit-Queue: Ting Shen <phoenixshen@chromium.org>
Reviewed-by: Ting Shen <phoenixshen@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
See crrev.com/c/576411 for the original addition of analyzestack.
BRANCH=none
BUG=none
TEST=make help
Signed-off-by: Craig Hesling <hesling@chromium.org>
Change-Id: I85f0a1269bf1cf016ef4709d7a6b3ba5d27025ce
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2606509
Commit-Queue: Ting Shen <phoenixshen@chromium.org>
Reviewed-by: Ting Shen <phoenixshen@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Note that the dis target might not be the best way to actually debug
a specific part of C code. You should probably use have gcc itself
generate the annotated assembly for a single source file.
BRANCH=none
BUG=none
TEST=make help
Signed-off-by: Craig Hesling <hesling@chromium.org>
Change-Id: Ieb535c8c4298525163f9e94167e30de10f090c4a
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2606505
Commit-Queue: Ting Shen <phoenixshen@chromium.org>
Reviewed-by: Ting Shen <phoenixshen@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
| |
BRANCH=none
BUG=none
TEST=make help
Signed-off-by: Craig Hesling <hesling@chromium.org>
Change-Id: I2baf7ac7c533047368e2246ab6e69cf84363b97e
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2602662
Reviewed-by: Eric Yilun Lin <yllin@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This moves the libcryptoc hooks from common/build.mk to
third_party/rules.mk.
Recall that Makefile.rules actually contains all of the
"rules"/recipes for making objects. It alone contains
all of the build output beautification commands and control.
Makefile.rules is included as the last step in the master
Makefile.
This brings no firmware change, as verified with compare_build.sh.
BRANCH=none
BUG=none
TEST=./util/compare_build.sh -b fp
TEST=./util/compare_build.sh -b fp -p
# This fails due to the differing position of
# -lcryptoc, -lfpsensor, -lfpalgorithm, and/or -lfpbep.
Signed-off-by: Craig Hesling <hesling@chromium.org>
Change-Id: I8d8493536a0e56ac6a5a1a32827b99ae97723727
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2092163
Reviewed-by: Yicheng Li <yichengli@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
No functional change.
The "else ifeq(x,y)" syntax is documented on the following page:
www.gnu.org/software/make/manual/html_node/Conditional-Syntax.html
The original change that brought in V=0:
crrev.com/c/427363
BRANCH=none
BUG=none
TEST=# Run before and after change to confirm output is the same
make hosttests V=0
make hosttests V=
make hosttests V=1
make hosttests V=kabob
Change-Id: I22021a794cc2e8dede845c0276a2cee67fa32550
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2597809
Tested-by: Craig Hesling <hesling@chromium.org>
Commit-Queue: Denis Brockus <dbrockus@chromium.org>
Reviewed-by: Denis Brockus <dbrockus@chromium.org>
Auto-Submit: Craig Hesling <hesling@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Any of the following will run the test from platform/ec
make buildall
make runtests
make run-genvif_test
The following will run the test from platform/ec/test/genvif
make clean test
BUG=b:173219559
BRANCH=none
TEST=make buildall
Signed-off-by: Denis Brockus <dbrockus@google.com>
Change-Id: Ic5594ae96d040adc332c2afc8fa8a8eb8b373882
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2542745
Tested-by: Denis Brockus <dbrockus@chromium.org>
Reviewed-by: Jett Rink <jettrink@chromium.org>
Commit-Queue: Denis Brockus <dbrockus@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The currently generated format is XML. The GRL C2 software requires the
the filename end in .xml to successfully use it. Output to a file with
this name.
BUG=b:170646602
TEST=make buildall
BRANCH=none
Change-Id: I54dbfaef1bc76be58a0007039da659562f97e372
Signed-off-by: Abe Levkoy <alevkoy@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2514902
Reviewed-by: Denis Brockus <dbrockus@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
New ToT firmware builder will call firmware_builder.py to start the build
process for FW. For EC, we need to call into out existing build system.
To break up the build and test phases, we need to break out all of the
build only steps out into a separate build target (buildall_only).
BRANCH=none
BUG=b:169178847
TEST=run `firmware_builder.py build` locally and see that it builds all
EC images and also redirects stdout and stderror from sub command.
TEST=chromite/api/contrib/call_scripts/firmware__build_all_tot_firmware
run this script correctly. End-to-End tests.
Signed-off-by: Jett Rink <jettrink@chromium.org>
Change-Id: Idd039e686697ee88419e0e44aa3dc96d554b997d
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2424895
Commit-Queue: Jack Rosenthal <jrosenth@chromium.org>
Reviewed-by: Jack Rosenthal <jrosenth@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Change the linker symbol used to track available flash from __image_size
to __flash_used. __image_size is now only used on the struct image_data
header.
BUG=b:160330682
BRANCH=none
TEST=make buildall
TEST=Run compare_build.sh against the following boards:
cortex-m: volteer (npcx chipset)
cortex-m0: honeybuns (stm32f0 chipset)
minute-ia: not changed
nds32: waddledee (it83xx)
riscv-rv32i: asurada (i8xxx2)
Signed-off-by: Keith Short <keithshort@chromium.org>
Change-Id: I94f5b4827cc0da1055520685cfeb1fafc0119e1c
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2334389
Reviewed-by: Abe Levkoy <alevkoy@chromium.org>
Reviewed-by: Jett Rink <jettrink@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
These boards were removed from buildall as they ran out of flash
space, but we kept the board directory around so that we could
continue to build the ec-utils ebuild, which used to require the board
directory to build tools like ectool (this was fixed in CL:2283999).
Since we've detangled the host utils ebuilds, these directories can
now be removed.
BUG=chromium:1035536
BRANCH=none
TEST=buildall
Change-Id: I736b323f9e977d74ca31788ed320befa2289a9dc
Signed-off-by: Jack Rosenthal <jrosenth@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2326304
Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When building host-based unit tests for code coverage, put the build
outputs in a different directory. Because the code coverage build
has calls into gcov library functions, a partial rebuild without code
coverage will result in undefined linker errors. The previous solution
was an inefficient cycle of `make clobber` and full rebuild when
switching between building with and without code coverage.
BUG=b:157091606
BRANCH=None
TEST=`make buildall -j ; make coverage -j`
Verify that build/host and build/coverage both exist, and that code
coverage data (*.gcno, *.gcda, *.info) is only in build/coverage.
Signed-off-by: Paul Fagerburg <pfagerburg@google.com>
Change-Id: Iac0b18068082d34546aa15b174f86efb6a7f41a7
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2242351
Tested-by: Paul Fagerburg <pfagerburg@chromium.org>
Reviewed-by: Jett Rink <jettrink@chromium.org>
Reviewed-by: Jack Rosenthal <jrosenth@chromium.org>
Commit-Queue: Paul Fagerburg <pfagerburg@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fixed problems that were preventing us from building the unit tests
with code coverage testing via `make coverage`.
* Changed test_util so that programs will cleanly exit on SIGTERM.
* Changed run_host_test to wait for the child process to exit, and only
proc.kill() if it times out, so the child process will generate code
coverage output files on exit.
* Changed Makefile.toolchain to use the --coverage flag for both compile
and link.
* Changed build.mk and Makefile.rules to exclude certain tests from code
coverage because they were causing failures either during the
individual stage of code coverage, or generating the overall report.
BUG=b:143065231
BRANCH=none
TEST=`make coverage` produces results
Signed-off-by: Paul Fagerburg <pfagerburg@chromium.org>
Change-Id: I8575013551ce1dba3fd249cd933a3cf6d110db8d
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2186853
Reviewed-by: Jack Rosenthal <jrosenth@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Before this fix, some sub-make invocations did not use
the --no-print-directories and some did. So, you would
still see the build output contaminated by make's
"Entering directory .../ec" and "Leaving directory .../ec"
messages. They are pretty much useless, since they all
mention the same ec directory.
This fix
* once and for all, kills all of those messages.
* simplifies the make file by removing the need to specify the flag
* cleans up the build output by removing the specified flag
BRANCH=none
BUG=none
TEST=make buildall -j
# Ensure that no "Entering dir ..." or "Leaving dir ..."
# messages were emitted.
Signed-off-by: Craig Hesling <hesling@chromium.org>
Change-Id: I5cd7ac8fd2fcf1cde3b03485c17f5fd6969ee7aa
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2132615
Reviewed-by: Jett Rink <jettrink@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add the script that generates cros_ec_commands.sh to the rule.
BUG=none
BRANCH=none
TEST=Check cros_ec_commands.h is re-generated by
'make build_cros_ec_commands' when make_linux_ec_commands_h.sh changes.
Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
Change-Id: Ieb0fbc0a7340e618d2c75df674d33365c36c944f
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2092494
Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org>
|