mirror of
https://github.com/Telecominfraproject/OpenCellular.git
synced 2026-01-08 16:41:55 +00:00
We found the api utility in ROM doesn't enable burst mode of GDMA. It influences the performance of FW download a lot. The CL modified GDMA for moving the code of the other region from flash to ram. And move a function that kicks off GMDA transactions to suspend ram in case this utility is erased by itself. This issue will be fixed in our next generation. Modified sources: 1. system.c: Implement GDMA bypass. 2. system_chip.h: Import flash addresses for GDMA bypass code. 3. registers.h: Add GDMA register definitions. 4. cortex-m/ec.lds.S: Add lowpower_ram2 section in linker script. BRANCH=none BUG=chrome-os-partner:56794 TEST=make BOARD=npcx_evb; test sysjump and measure download time Change-Id: I8490f8f2e5a8cdcb6fd10511878c4a4af8073bbf Signed-off-by: Mulin Chao <mlchao@nuvoton.com> Reviewed-on: https://chromium-review.googlesource.com/381779 Commit-Ready: Shawn N <shawnn@chromium.org> Reviewed-by: Aaron Durbin <adurbin@chromium.org>
36 lines
1.3 KiB
C
36 lines
1.3 KiB
C
/* Copyright (c) 2014 The Chromium OS Authors. All rights reserved.
|
|
* Use of this source code is governed by a BSD-style license that can be
|
|
* found in the LICENSE file.
|
|
*/
|
|
|
|
/* NPCX-specific SIB module for Chrome EC */
|
|
|
|
#ifndef __CROS_EC_SYSTEM_CHIP_H
|
|
#define __CROS_EC_SYSTEM_CHIP_H
|
|
|
|
/* Indices for battery-backed ram (BBRAM) data position */
|
|
enum bbram_data_index {
|
|
BBRM_DATA_INDEX_SCRATCHPAD = 0, /* General-purpose scratchpad */
|
|
BBRM_DATA_INDEX_SAVED_RESET_FLAGS = 4, /* Saved reset flags */
|
|
BBRM_DATA_INDEX_WAKE = 8, /* Wake reasons for hibernate */
|
|
BBRM_DATA_INDEX_VBNVCNTXT = 16, /* VbNvContext for ARM arch */
|
|
BBRM_DATA_INDEX_RAMLOG = 32, /* RAM log for Booter */
|
|
};
|
|
|
|
/* Issue a watchdog reset*/
|
|
void system_watchdog_reset(void);
|
|
/* Check reset cause and return reset flags */
|
|
void system_check_reset_cause(void);
|
|
|
|
/* Begin flash address for hibernate utility; defined in linker script */
|
|
extern unsigned int __flash_lpfw_start;
|
|
/* End flash address for hibernate utility; defined in linker script */
|
|
extern unsigned int __flash_lpfw_end;
|
|
|
|
/* Begin flash address for little FW; defined in linker script */
|
|
extern unsigned int __flash_lplfw_start;
|
|
/* End flash address for little FW; defined in linker script */
|
|
extern unsigned int __flash_lplfw_end;
|
|
|
|
#endif /* __CROS_EC_SYSTEM_CHIP_H */
|