| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The original code fills out the entire TX buffer with status byte.
AP keeps pulsing the clock and tries reading status. EC DAM may
read the TX buffer during the write to response AP. A race may
happen.
Should leave a gap, like the gap for the PREAMABLE, when filling
TX buffer. The critical section of filling the TX buffer should be
done within the gap. It guarantees no race as DAM just reads the
old status. It may result one- or two-byte extra status response.
BRANCH=Trogdor
BUG=b:177021164,b:168682309
TEST=Reflashing different firmware images to trigger TCPC update.
No error happens for >20 rounds.
Change-Id: I842d7011f85ef9323fba2af01b9062a5166d38f4
Signed-off-by: Wai-Hong Tam <waihong@google.com>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2628456
Reviewed-by: CH Lin <chlin56@nuvoton.com>
Reviewed-by: Eric Yilun Lin <yllin@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This CL triggers GPG1 HW reset after a EC watchdog.
So the EC_RST_ODL signal will be toggled after the reset.
BUG=b:173075595
BRANCH=none
TEST=trigger watchdog to reboot system and verified system
is able to boot to kernel.
Signed-off-by: Dino Li <Dino.Li@ite.com.tw>
Change-Id: I5d7a88dbb4bdb00977bc1fa02e5fa61e52347104
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2627536
Reviewed-by: Eric Yilun Lin <yllin@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In Zephyr CONFIG_FLASH_SIZE is a Kconfig value that is used
throughout. The issue is that the units don't match. In
Zephyr the value is in KiB instead of bytes. This refactor
simply renames CONFIG_FLASH_SIZE in platform/ec to include
the unit (via _BYTES).
BRANCH=none
BUG=b:174873770
TEST=make buildall
be generated by the build instead of per board
Signed-off-by: Yuval Peress <peress@chromium.org>
Change-Id: I44bf3c7a20fcf62aaa9ae15715be78db4210f384
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2627638
Reviewed-by: Jack Rosenthal <jrosenth@chromium.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Hughes <tomhughes@chromium.org>
Commit-Queue: Jack Rosenthal <jrosenth@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Writing to SCP SYS (e.g. SCP_GIPC_IN_CLR) is asynchronous and is slower
than writing to CSR (e.g. CSR_VIC_MIEMS).
There is a race condition if writing to MIEMS before acknowledging to
interrupt sources. GVIC will re-latche interrupts wrongly.
Adds memory barrier between them. The issue is exposed when enabling
LTO because task_clear_pending_irq() will be inlined.
BRANCH=none
BUG=b:176959740
BUG=b:177289443
TEST=make BOARD=asurada_scp
Signed-off-by: Tzung-Bi Shih <tzungbi@chromium.org>
Change-Id: I5cbf94d3db08c051f360e927b52514041dba769d
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2624369
Reviewed-by: Eric Yilun Lin <yllin@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
NPCX chip uses the MTC module as the RTC counter. However, in PSL
hibernate, MTC will stop counting. NPCX9 supports the LCT module which
could count continuously when VCC1 power is off. The CL uses LCT to
compensate for the MTC counter value after PSL hibernate wake-up. The
LCT maximum counting value is 16 weeks.
BRANCH=none
BUG=b:165777478, b:171919875
TEST=pass "make buildall"
TEST=Check the RTC value in the following scenario:
1. "hibernate" and wake up EC by PSL input.
2. "hibernate 30" and wake up EC after timeout.
3. "hibernate 30" and wake up EC by PSL input before timeout.
Signed-off-by: Wealian Liao <whliao@nuvoton.corp-partner.google.com>
Change-Id: I39e370a437f40749acbd3a35a8b37ebec70f1bf2
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2506864
Reviewed-by: Keith Short <keithshort@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is no longer needed as Zephyr does not rely on chip directory
anymore.
BUG=b:175249000
BRANCH=none
TEST=none
Signed-off-by: Jack Rosenthal <jrosenth@chromium.org>
Change-Id: I6f42ba1a16be5e874530f42412b4bf9c2853ee65
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2615131
Commit-Queue: Yuval Peress <peress@chromium.org>
Reviewed-by: Yuval Peress <peress@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Enable handling reset in AON code for ish 5.4 on tgl rvp.
BUG=b:176689775
BRANCH=none
TEST=ish reset properly when host reboot.
Signed-off-by: Leifu Zhao <leifu.zhao@intel.com>
Change-Id: I9d53d668bf5b459e21519cab4fcaa28c753ff266
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2607954
Reviewed-by: Leifu Zhao <leifu.zhao@intel.corp-partner.google.com>
Reviewed-by: Jack Rosenthal <jrosenth@chromium.org>
Tested-by: Leifu Zhao <leifu.zhao@intel.corp-partner.google.com>
Commit-Queue: Jack Rosenthal <jrosenth@chromium.org>
Auto-Submit: Leifu Zhao <leifu.zhao@intel.corp-partner.google.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This change simply moves the include/version.h file over to avoid
a naming collision with zephyr's version.h.
BRANCH=none
BUG=b:167392037
TEST=make buildall -j
Signed-off-by: Yuval Peress <peress@chromium.org>
Change-Id: Ib41b3c21817d5f81e713d3b550bc46a0d1c55cf8
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2612772
Reviewed-by: Jack Rosenthal <jrosenth@chromium.org>
Commit-Queue: Jack Rosenthal <jrosenth@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Enable GPIO wake from low power state for ish 5.4 on tgl rvp.
BUG=b:176670515
BRANCH=none
TEST=Sensor GPIO interurpt can successfully wake up ish.
Signed-off-by: Leifu Zhao <leifu.zhao@intel.com>
Change-Id: Id3eb997ad8dded95c154250e64cd3a5b287bb3d2
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2607953
Reviewed-by: Leifu Zhao <leifu.zhao@intel.corp-partner.google.com>
Reviewed-by: Jett Rink <jettrink@chromium.org>
Tested-by: Leifu Zhao <leifu.zhao@intel.corp-partner.google.com>
Commit-Queue: Jett Rink <jettrink@chromium.org>
Auto-Submit: Leifu Zhao <leifu.zhao@intel.corp-partner.google.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This CL added option of CONFIG_IT83XX_HARD_RESET_BY_GPG1.
If we enabled the option, EC will assert GPG1 pin to reset itself
instead of triggering an internal reset while receiving a reset
request.
BUG=b:173075595
BRANCH=none
TEST=Enable CONFIG_IT83XX_HARD_RESET_BY_GPG1 and check if GPG1 goes high
while receiving reset command.
Signed-off-by: Dino Li <Dino.Li@ite.com.tw>
Change-Id: I930424c374dcbd742b8ecca7a1fa720699d42bb6
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2612233
Reviewed-by: Eric Yilun Lin <yllin@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
IT81202 bx version can configure SPI module to work as eMMC boot
mode to catch CMD0. Once this mode is enabled, SPI's CS# pin isn't
required. HW will drop data until CMD goes low (CMD0 starts with 01b)
and saving 128 bytes in RX FIFO.
FW need to parse the data of FIFO and handle argument of CMD0
(GO_IDLE_STATE, GO_PRE_IDLE_STATE, and BOOT_INITIATION).
Pinmux of eMMC boot mode are as following:
GPM2->CLK
GPM3->CMD
GPM6->DATA0
BUG=b:170795623
BRANCH=none
TEST=boot to kernel on Juniper (replace EC with it81202 bx).
Signed-off-by: Dino Li <Dino.Li@ite.com.tw>
Change-Id: I1dac1848bfd79f4a7dc02e1d90905e0cd6b8af3f
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2604802
Reviewed-by: Eric Yilun Lin <yllin@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In npcx9, the internal flash is accessed via FIU/UMA (implementing in
chip/npcx/flash.c). It won’t use the common/spi_flash.c to access the
internal flash. This CL remove the two default configs related to the
SPI flash in the npcx9 chip config and fix the npcx9_evb setting for
the SPI flash.
BRANCH=none
BUG=b:165777478
TEST=buildall pass
Signed-off-by: Wealian Liao <whliao@nuvoton.corp-partner.google.com>
Signed-off-by: CHLin <CHLin56@nuvoton.com>
Change-Id: I7c525791d001fa2833b7d895f277768948783938
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2600807
Reviewed-by: Hung-Te Lin <hungte@chromium.org>
Reviewed-by: Keith Short <keithshort@chromium.org>
Commit-Queue: Keith Short <keithshort@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Implement HID GET_REPORT with INPUT type.
BRANCH=nocturne,kukui
BUG=b:174539061
TEST=With associated kernel CL:
cd /sys/bus/usb/drivers/usbhid
echo 1-1.1:1.0 > unbind; echo 1-1.1:1.0 > bind
Change-Id: If62c92e55fa5454116816681c2ab46d5e796c4b5
Signed-off-by: Nicolas Boichat <drinkcat@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2578620
Reviewed-by: Ting Shen <phoenixshen@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This header file is used from quite a few files, relying on the EC
build system to find includes in the driver/tcpm directory. For Zephyr
we don't want to add that as an include.
It makes more sense for header files to be in an include directory, so
move it and fix up the users.
BUG=b:175434113
BRANCH=none
TEST=build Zephyr and ECOS on volteer
Signed-off-by: Simon Glass <sjg@chromium.org>
Change-Id: I5851914b1a7d3fdc1ba911c0fbe9046afbaf6f5d
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2597985
Reviewed-by: Keith Short <keithshort@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This CL adds a VCONN enabe/disable support function to remove the
pull resistor and 2 addiltional functions which are required to
complete the stm32gx tcpci driver.
BUG=b:167601672
BRANCH=None
TEST=verfied type-c attaches properly on quiche
Signed-off-by: Scott Collyer <scollyer@google.com>
Change-Id: I5a3732f15a5a0af9d372ae37475e9e8bdd3914b4
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2588850
Tested-by: Scott Collyer <scollyer@chromium.org>
Commit-Queue: Scott Collyer <scollyer@chromium.org>
Reviewed-by: Diana Z <dzigterman@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This CL adds code to the ucpd driver which can used for additional
debug information about both usbc and usb-pd information. The message
log contains up to 64 entries which is sufficient to establish a
connection and enter alt-dp mode.
BUG=b:167601672
BRANCH=None
TEST=Connect quiche on host port and validate debug commands:
> ucpd info
cc1 = Rp
cc2 = Rp
Rp = Rp_3.0
cc1_v = 1
cc2_v = 2
rx_en = 1
pol = 1
Signed-off-by: Scott Collyer <scollyer@google.com>
Change-Id: I2f50a6284336f21e833ecdff72746ff04c191b52
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2531183
Tested-by: Scott Collyer <scollyer@chromium.org>
Reviewed-by: Diana Z <dzigterman@chromium.org>
Commit-Queue: Scott Collyer <scollyer@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This reverts commit a3dd3c3a941794bd6efcdfac0b70bfae7441ed29.
Reason for revert: chromium:1161113
board/npcx9_evb/board.c:103:4:error:
CONFIG_SPI_FLASH_PORTundeclared here
Original change's description:
> npcx9: remove unnecessary default CONFIGs for internal flash
>
> In npcx9, the internal flash is accessed via FIU/UMA (implementing in
> chip/npcx/flash.c). It won’t use the common/spi_flash.c to access the
> internal flash. Let’s remove these two default CONFIGs to prevent
> people from confusing.
>
> BRANCH=none
> BUG=b:165777478
> TEST=buildall pass
>
> Signed-off-by: Wealian Liao <whliao@nuvoton.corp-partner.google.com>
> Signed-off-by: CHLin <CHLin56@nuvoton.com>
> Change-Id: Id04dc9ff5402262b5cdf0815ae953ced777b5d96
> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2597124
> Reviewed-by: caveh jalali <caveh@chromium.org>
Bug: chromium:1161113
Change-Id: I57fb92418e71f8ce0ffd77bad34d4e5055552af1
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2600713
Reviewed-by: Hung-Te Lin <hungte@chromium.org>
Commit-Queue: Hung-Te Lin <hungte@chromium.org>
Tested-by: Hung-Te Lin <hungte@chromium.org>
Auto-Submit: Hung-Te Lin <hungte@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In npcx9, the internal flash is accessed via FIU/UMA (implementing in
chip/npcx/flash.c). It won’t use the common/spi_flash.c to access the
internal flash. Let’s remove these two default CONFIGs to prevent
people from confusing.
BRANCH=none
BUG=b:165777478
TEST=buildall pass
Signed-off-by: Wealian Liao <whliao@nuvoton.corp-partner.google.com>
Signed-off-by: CHLin <CHLin56@nuvoton.com>
Change-Id: Id04dc9ff5402262b5cdf0815ae953ced777b5d96
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2597124
Reviewed-by: caveh jalali <caveh@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Rename function name from it83xx_* to it8xxx2_* for it8xxx2 driver.
Rename function name from *_tcpm_sw_reset to *_tcpm_hook_disconnect.
BUG=none
BRANCH=none
TEST=make BOARD=drawcia -j
make BOARD=asurada -j
Signed-off-by: Ruibin Chang <ruibin.chang@ite.com.tw>
Change-Id: I8111ec5b9972d1badae625e87248c62e99eabbf6
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2598298
Tested-by: Ruibin Chang <Ruibin.Chang@ite.com.tw>
Reviewed-by: Eric Yilun Lin <yllin@chromium.org>
Commit-Queue: Ruibin Chang <Ruibin.Chang@ite.com.tw>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This change enable ILM0 for it8xxx2 series, so we can pull more code
into static cache to save latency of fetching code from flash.
BUG=b:171172053
BRANCH=none
TEST=Check timestamp of "Inits done" on asurada:
Before the change was made, we got the timestamp is:
[0.004408 Inits done]
With this change, the timestamp is changed to:
[0.003843 Inits done]
Change-Id: Ie7a241bed2f926fd0034cecaf5d8e8183ca16d2e
Signed-off-by: Dino Li <Dino.Li@ite.com.tw>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2563056
Reviewed-by: Eric Yilun Lin <yllin@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This change excluded the workaround from core riscv.
BUG=b:111808417
BRANCH=none
TEST=On asurada and drawcia, no error while erasing and writing flash
of address 0x7e000 ~ 0x7f000
Signed-off-by: Dino Li <Dino.Li@ite.com.tw>
Change-Id: If6510b181173862684552607d688b3afb046aa2c
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2563356
Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Revert CL:2576439 and try again, this time checking for
EC_RESET_FLAG_HIBERNATE before setting EC_RESET_FLAG_INITIAL_PWR.
The problem with the first attempt was on sysjump to RW after wake
from hibernate. Then gpio_pre_init() saw EC_RESET_FLAG_INITIAL_PWR
but not EC_RESET_FLAG_HIBERNATE and so added an unwanted 2 second
delay because system_common_pre_init() hadn't yet restored the flags
from before the jump. Moving the check for EC_RESET_FLAG_HIBERNATE
into check_reset_cause() avoids this issue.
BUG=b:173180800
BRANCH=zork
TEST=no 2 second delay on wake from hibernate, for both RO boot
and jump to RW.
Signed-off-by: Edward Hill <ecgh@chromium.org>
Change-Id: Ia1bfba5740d77961ccc7e140da80be1070700b1e
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2592501
Reviewed-by: CH Lin <chlin56@nuvoton.com>
Reviewed-by: Peter Marheine <pmarheine@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Writing to AXI is asynchronous. Adds memory barrier to writeback and
flush cache operations to make sure the writing is done.
BRANCH=none
BUG=b:175512991
TEST=make BOARD=asurada_scp
Signed-off-by: Tzung-Bi Shih <tzungbi@chromium.org>
Change-Id: I6d04a2604f4eddae54aee4ba3ee4600e909e2784
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2592299
Reviewed-by: Ting Shen <phoenixshen@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Makes all cache operations inline.
BRANCH=none
BUG=b:175512991
TEST=make BOARD=asurada_scp
Signed-off-by: Tzung-Bi Shih <tzungbi@chromium.org>
Change-Id: I6d2e8752b4be63257854630a83c74aca21e0d799
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2592298
Reviewed-by: Ting Shen <phoenixshen@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Sets CONFIG_PROGRAM_MEMORY_BASE_LOAD to separate VirtAddr and PhysAddr
in the final ec.obj.
BRANCH=none
BUG=b:173753688
TEST=make BOARD=asurada_scp
Signed-off-by: Tzung-Bi Shih <tzungbi@chromium.org>
Change-Id: If839ffb5cc63c945492dbc20c12542a93b0ae569
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2553997
Reviewed-by: Nicolas Boichat <drinkcat@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There is an option in the task_set_event function which force
the calling task to wait for an event. However, the option is never
used thus remove it.
This also will help in the Zephyr migration process.
BUG=b:172360521
BRANCH=none
TEST=make buildall
Signed-off-by: Dawid Niedzwiecki <dn@semihalf.com>
Change-Id: Ic152fd3d6862d487bcc0024c48d136556c0b81bc
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2521599
Reviewed-by: Jett Rink <jettrink@chromium.org>
Reviewed-by: Tom Hughes <tomhughes@chromium.org>
Reviewed-by: Jack Rosenthal <jrosenth@chromium.org>
Commit-Queue: Jack Rosenthal <jrosenth@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This CL adds routines required to support USB-PD messaging to the UCPD
driver. UCPD is performs TCPC type functions, but is not a TCPC. UCPD
does utilize the common TCPCI APIs as entry points called from the
port's PD task. In addition, UCPD has its own task to manage more
easily transmit requests from TCPM layer and GoodCRC messages which
must be intiated in the UCPD driver itself.
BUG=b:167601672
BRANCH=None
TEST=verfied type-c attaches properly on quiche
Signed-off-by: Scott Collyer <scollyer@google.com>
Change-Id: I0c02bee4badc479125832a6b5a6fa156e998c201
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2247117
Tested-by: Scott Collyer <scollyer@chromium.org>
Auto-Submit: Scott Collyer <scollyer@chromium.org>
Commit-Queue: Scott Collyer <scollyer@chromium.org>
Reviewed-by: Diana Z <dzigterman@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
| |
BUG=none
TEST=validate volteer build (i2c_peripheral.c is not used by any boards)
BRANCH=none
Signed-off-by: dossym@chromium.org
Change-Id: Ib2d78dc3fc9f4f189f84409cf43ab96788c429be
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2587227
Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
| |
BUG=none
TEST=build and run on volteer
BRANCH=none
Signed-off-by: dossym@chromium.org
Change-Id: I11a75e4954e918b2d4ff575dee14dec621a619b3
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2587226
Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Exposes PMU-related functions so that we can call the functions to study
some part of cache performance.
BRANCH=none
BUG=b:172988651
TEST=make BOARD=asurada_scp
Signed-off-by: Tzung-Bi Shih <tzungbi@chromium.org>
Change-Id: I27182e3d2af52d8761f45359f3627d70c5acf28c
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2567517
Reviewed-by: Nicolas Boichat <drinkcat@chromium.org>
Reviewed-by: Eric Yilun Lin <yllin@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When resetting PMU, also:
- invalidates I-cache
- flushes D-cache
> enable_pmu i
select "I"
> show_pmu
cycles: 1228599543
retired instructions: 80706
I-cache:
access: 55089
miss: 179 (0.32%)
non-cacheable I: 0
> enable_pmu d
select "D"
> show_pmu
cycles: 970961198
retired instructions: 32638
D-cache:
access: 12598
miss: 80 (0.63%)
non-cacheable D: 972
Expect to see the increasing "miss" counts.
BRANCH=none
BUG=b:172988651
TEST=make BOARD=asurada_scp
Signed-off-by: Tzung-Bi Shih <tzungbi@chromium.org>
Change-Id: Ib779bd224cd39ff8de05d1568028ef63b189ecb4
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2567516
Reviewed-by: Nicolas Boichat <drinkcat@chromium.org>
Reviewed-by: Eric Yilun Lin <yllin@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Waking from PSL hibernate is power-on for EC but not for H1, so
we should not add the 2 second delay for CONFIG_BOARD_RESET_AFTER_POWER_ON
in this case.
BUG=b:173180800
BRANCH=zork
TEST=no 2 second delay on wake from hibernate
Signed-off-by: Edward Hill <ecgh@chromium.org>
Change-Id: Ib0c8f2ca7f197626b20a11e21ace44a5046db18b
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2576439
Reviewed-by: Peter Marheine <pmarheine@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
As most of the peripherals were not implemented to support switching to
16-MHz HSI (e.g. high speed serial port requires a clock input > 24
Mhz), implement a simpler clock scheme than the dynamic between HSI and
PLL used other platforms:
- the PLL is disabled only when entering the low-power idle and the PLL
locking time is added to wake-up time.
- when the host is running (not suspended) we stay in a high power mode
(~20mW).
Signed-off-by: Vincent Palatin <vpalatin@chromium.org>
BUG=b:130561737
TEST=manual, on bloonchipper, check we can still capture fingerprint.
read the MCU power consumption: pp3300_dx_mcu_mw is 2.367 mW.
BRANCH=fpmcu-bloonchipper
Change-Id: Ic1fe015b2501bdea9779a2f63fab296f8812c315
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2555162
Tested-by: Vincent Palatin <vpalatin@chromium.org>
Reviewed-by: Nicolas Boichat <drinkcat@chromium.org>
Commit-Queue: Vincent Palatin <vpalatin@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Implement a low power idle mode using the STM32F4 STOP mode.
Signed-off-by: Vincent Palatin <vpalatin@chromium.org>
BUG=b:130561737
TEST=manual, on bloonchipper, check we can still capture fingerprint.
read the MCU power consumption.
BRANCH=fpmcu-bloonchipper
Change-Id: I11249e9b68c989033263e34e1cde3f19ffe7c54c
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2537631
Tested-by: Vincent Palatin <vpalatin@chromium.org>
Reviewed-by: Nicolas Boichat <drinkcat@chromium.org>
Commit-Queue: Vincent Palatin <vpalatin@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
On STM32F4, when converting micro-seconds to the RTC sub-second counter
value, the current computation in the us_to_rtcss() routine has a large
rounding error which can even led to generate a negative value.
When such a negative value is output and then programmed in the
(unsigned) RTC_ALRMASSR register used to set the alarm precise
sub-second timestamp, it might put a wrong value in the past.
As a consequence when the RTC alarm is used a wake-up mechanism for the
low power idle, it might never fired and trigger a watchdog reboot.
An example of bad values on a STM32F412 with the RTC driven by the
32-kHz LSI:
- RTC_PREDIV_A = 1
- RTC_FREQ = (STM32F4_LSI_CLOCK / (RTC_PREDIV_A + 1) = 16000 /* Hz */
- RTC_PREDIV_S = (RTC_FREQ - 1) = 15999
- US_PER_RTC_TICK = 1000000 / RTC_FREQ = 62 /* rounded from 62.5 */
When converting 996000 us,
us_to_rtcss(996000) = RTC_PREDIV_S - (us / US_PER_RTC_TICK)
= 15999 - (996000 / 62)
= -65
returned as a uint32_t as 0xfffffffb.
Signed-off-by: Vincent Palatin <vpalatin@chromium.org>
BUG=b:130561737
TEST=manual, with the STOP mode enabled, we no longer see watchdog
reboot due to the RTC alarm being set in the past and never firing.
TEST=manual, verify that the output of the 'gettime' console command is not
drifting compared to the wall clock when the low power idle using the
RTC time is used.
BRANCH=fpmcu-bloonchipper
Change-Id: I53869539828bed9a5900d29407b5feba140b8217
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2563684
Tested-by: Vincent Palatin <vpalatin@chromium.org>
Reviewed-by: Nicolas Boichat <drinkcat@chromium.org>
Commit-Queue: Vincent Palatin <vpalatin@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Allow to transition between the PLL to run at full speed
and the bare HSI (internal RC oscillator at 16Mhz) to save power.
On HSI, as our sysclk frequency is low, we run all peripheral clocks
undivided at the same frequency.
Keep the configuration for other platforms running from the HSE
(external crystal)
Signed-off-by: Vincent Palatin <vpalatin@chromium.org>
BUG=b:130561737
TEST=manual, verify the timers are working by checking the output of the
'gettime' console command against the wall clock.
TEST=manual, verify the UART console works as expected.
TEST=measure MCU power on bloonchipper in various modes through the INA:
PLL 19.20 mW HSI 4.73 mW STOP 2.10 mW
BRANCH=fpmcu-bloonchipper
Change-Id: I1185e04c9a7819fec05dd643b7026116b146f3b8
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2527049
Tested-by: Vincent Palatin <vpalatin@chromium.org>
Reviewed-by: Nicolas Boichat <drinkcat@chromium.org>
Commit-Queue: Vincent Palatin <vpalatin@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add support for changing for the timer source clock frequency on
STM32F4 by re-computing the timer pre-scaler value in the
HOOK_FREQ_CHANGE callback.
Preparatory work to implement power management switching between PLL and
HSI as sysclk.
Signed-off-by: Vincent Palatin <vpalatin@chromium.org>
BUG=b:130561737
TEST=manual, verify the output of the 'gettime' console command against
the wall clock.
BRANCH=fpmcu-bloonchipper
Change-Id: Ia7dc24d3b1dbff816b1cebbc87492e678b987dfd
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2527048
Tested-by: Vincent Palatin <vpalatin@chromium.org>
Reviewed-by: Nicolas Boichat <drinkcat@chromium.org>
Commit-Queue: Vincent Palatin <vpalatin@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Supports performance monitor unit counters.
Introduces new console commands:
- enable_pmu
- disable_pmu
- show_pmu
> enable_pmu X
Parameter 1 invalid
Usage: enable_pmu [I | D | C]
> enable_pmu i
select "I"
> show_pmu
cycles: 842443131
retired instructions: 32855
I-cache:
access: 22324
miss: 0 (0.0%)
non-cacheable I: 0
> enable_pmu d
select "D"
> show_pmu
cycles: 1137656582
retired instructions: 36619
D-cache:
access: 13779
miss: 0 (0.0%)
non-cacheable D: 1072
> enable_pmu c
select "C"
> show_pmu
cycles: 2656349519
retired instructions: 74746
control transfer instruction:
total: 20767
miss-predict: 13346 (64.26%)
interrupts: 262
BRANCH=none
BUG=b:172988651
TEST=define DEBUG && make BOARD=asurada_scp
Signed-off-by: Tzung-Bi Shih <tzungbi@chromium.org>
Change-Id: I461ae51b84badb25e9b50ef1af7e3a81139cea47
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2562910
Reviewed-by: Nicolas Boichat <drinkcat@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This CL implements a feature report defined in [1] that describes the
keyboard's top row layout.
[1] http://doc/1NTxSGv3WA2Vn4dlPLOcvKBvPytWOF0UAcIYQaFctTug
BUG=b:171156337
TEST=Verify feature report content using test code in CL:2530156.
BRANCH=none
Signed-off-by: Ting Shen <phoenixshen@google.com>
Change-Id: I28a93f1b926d58602eb66d1b090e89384cb09f77
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2522641
Reviewed-by: Nicolas Boichat <drinkcat@chromium.org>
Commit-Queue: Ting Shen <phoenixshen@chromium.org>
Tested-by: Ting Shen <phoenixshen@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This CL increased clock's Tlow to 1.51 us (1.3 us minimum) and
reduced Thigh to 1.087 us (0.6 us minimum).
BUG=b:163384683
BRANCH=none
TEST=i2c clock meet timing at 400kHz.
Signed-off-by: Dino Li <Dino.Li@ite.com.tw>
Change-Id: Id62b2370018ba2d41e0dbc715a4c40629260d66b
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2557281
Reviewed-by: Diana Z <dzigterman@chromium.org>
Reviewed-by: Mike Goodey <mgoodey@google.com>
Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Moves __RAM_CODE_SECTION_NAME from registers.h to config_chip.h. Or
switch.S cannot see the macro.
BRANCH=none
BUG=none
TEST=1. make BOARD=asurada
2. grep __switch_task build/asurada/RW/ec.RW.smap
Signed-off-by: Tzung-Bi Shih <tzungbi@chromium.org>
Change-Id: I1ef272c2e2181a88e4f53dc3024330a1a26c0688
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2549342
Reviewed-by: Dino Li <Dino.Li@ite.com.tw>
Reviewed-by: Diana Z <dzigterman@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This sets a default value of 0 for NPCX_UART_MODULE2 and
NPCX9_PWM1_SEL so that board files don't need to set these.
BRANCH=none
BUG=b:173575131
TEST=buildall
Change-Id: Ief84ed558bb5431f13fb01b963db3bd97fc8d659
Signed-off-by: Caveh Jalali <caveh@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2546639
Reviewed-by: CH Lin <chlin56@nuvoton.corp-partner.google.com>
Reviewed-by: Keith Short <keithshort@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Commit "it83xx: pull more functions into __ram_code section"
(https://crrev.com/c/2535899) breaks Asurada SCP. It moves
some essential code to .ram_code section but only IT8XXX2
family includes .ram_code in linker script.
Moves the context switch code to ram_code only if it supports.
BRANCH=none
BUG=none
TEST=make BOARD=asurada_scp && make BOARD=asurada
Signed-off-by: Tzung-Bi Shih <tzungbi@chromium.org>
Change-Id: I8602f7ef0103282feeddbfe1757f7cf7fb5512dc
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2546722
Reviewed-by: Eric Yilun Lin <yllin@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Because we have space in the section, so we pulled more functions
into the section. If a function is cached in __ram_code section
(static cache), we can save latency of fetching code of the function
from flash. (Fetching 64 bytes code from flash takes about 4us latency)
BUG=none
BRANCH=none
TEST=buildall.
Asurada and Drawcia are both able to boot to kernel.
Signed-off-by: Dino Li <Dino.Li@ite.com.tw>
Change-Id: I8b413bd577c4e5b73a5c67018d17955da1ed0c55
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2535899
Reviewed-by: Diana Z <dzigterman@chromium.org>
Reviewed-by: Jett Rink <jettrink@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This CL extends CONFIG_I2C_XFER_LARGE_READ to also support large
(greater than 255 bytes) write.
Related config name is also updated to reflect the behavior change,
BUG=b:169651794
TEST=flash fw successfully on Zed.
BRANCH=none
Signed-off-by: Ting Shen <phoenixshen@google.com>
Change-Id: Icb889013da01f48708cd0227207561b8186bac63
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2537412
Reviewed-by: Nicolas Boichat <drinkcat@chromium.org>
Commit-Queue: Ting Shen <phoenixshen@chromium.org>
Tested-by: Ting Shen <phoenixshen@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Updates memory maps.
SCP view 0x1000_0000 maps to AP view 0x5000_0000.
SCP view 0xf000_0000 maps to AP view 0x6000_0000.
BRANCH=none
BUG=b:156222459
TEST=make BOARD=asurada_scp
Signed-off-by: Tzung-Bi Shih <tzungbi@chromium.org>
Change-Id: Ia837af7ee00bd6d4ec21be7533037667f680d29d
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2531754
Reviewed-by: Eric Yilun Lin <yllin@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
| |
BRANCH=none
BUG=b:156222508
BUG=b:156222459
TEST=make BOARD=asurada_scp
Signed-off-by: Tzung-Bi Shih <tzungbi@chromium.org>
Change-Id: Icda539485e630c2e14a38e182f3b3c3a2959cec8
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2534435
Reviewed-by: Eric Yilun Lin <yllin@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Supports RAM cache for:
- L2TCM
- System DRAM
BRANCH=none
BUG=b:156222459
BUG=b:156222508
BUG=b:172886808
TEST=manually check assembly code
Signed-off-by: Tzung-Bi Shih <tzungbi@chromium.org>
Change-Id: I3fd3d8f858a172bf26dfec6a5c6c403d73164039
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2513414
Reviewed-by: Nicolas Boichat <drinkcat@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This CL fixes an issue with a rebase merge, UCPD_IFRGAP_HBIT_CNT had
been changed to UCPD_IFRGAP_CNT in a previous CL. This CL removes
HBIT.
BUG=b:167601672
BRANCH=None
TEST=make BOARD=quiche
Signed-off-by: Scott Collyer <scollyer@google.com>
Change-Id: Ideff65872d744bc7e3b3cdfa8c5af37f4725be36
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2522649
Tested-by: Scott Collyer <scollyer@chromium.org>
Reviewed-by: Diana Z <dzigterman@chromium.org>
Commit-Queue: Scott Collyer <scollyer@chromium.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This CL implements vivald function row config for hammer keyboard.
If CONFIG_USB_HID_KEYBOARD_VIVALDI defined, STM32 HID keyboard now returns
an extra 32-bit data represents the status of action keys. Additionally,
if board_vivaldi_keybd_config returns a non-null pointer, driver will
convert function keys to action key according to the given config.
BUG=b:171156337
TEST=verify keycode is correct in `evtest`
BRANCH=none
Signed-off-by: Ting Shen <phoenixshen@google.com>
Change-Id: Ide3289fd2c1bb8859a74e97134e6113441cfb967
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2508848
Reviewed-by: Nicolas Boichat <drinkcat@chromium.org>
Commit-Queue: Ting Shen <phoenixshen@chromium.org>
Tested-by: Ting Shen <phoenixshen@chromium.org>
|