mirror of
https://github.com/Telecominfraproject/OpenCellular.git
synced 2026-01-08 16:41:55 +00:00
Add ECST tool to modify the header used by npcx booter. Modified drivers: 1. i2c.c: Modify for i2c_port design. 2. i2c.c: Fixed bugs when mutil-tasks use the same i2c port and pull-up issue. 3. hwtimer.c: Fixed bug whcih event expired time is behide current timer. 4. lpc.c: Add intializing host settings after pltrst is deasserted. 5. uart.c/clock.c/register.h: Fixed bug which cannot enter deep-idle when gpio is any-edge trigger mode. 6. task.c: Add workaround method for hard fault issue. 7. keyboard_raw.c: Modified for support CONFIG_KEYBOARD_KSO_BASE 8. lpc.c: Modified for support CONFIG_KEYBOARD_IRQ_GPIO 9. lpc.c: fixed obe interrupt bug during 8042 initialization 10.Adjust path of flat files for new Makefile rules 11.Fixed build error on lpc.c without CONFIG_KEYBOARD_IRQ_GPIO BUG=chrome-os-partner:34346 TEST=make buildall -j; test nuvoton IC specific drivers BRANCH=none Change-Id: Icf9494174b245b4026e396be877d578f36b6f6a5 Signed-off-by: Ian Chao <mlchao@nuvoton.com> Reviewed-on: https://chromium-review.googlesource.com/284036 Reviewed-by: Shawn N <shawnn@chromium.org> Tested-by: Shawn N <shawnn@chromium.org> Commit-Queue: Shawn N <shawnn@chromium.org>
127 lines
4.2 KiB
C
127 lines
4.2 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.
|
|
*/
|
|
|
|
#ifndef __CROS_EC_CONFIG_CHIP_H
|
|
#define __CROS_EC_CONFIG_CHIP_H
|
|
|
|
/* CPU core BFD configuration */
|
|
#include "core/cortex-m/config_core.h"
|
|
|
|
/* 32k hz internal oscillator frequency (FRCLK) */
|
|
#define INT_32K_CLOCK 32768
|
|
|
|
/* Number of IRQ vectors on the NVIC */
|
|
#define CONFIG_IRQ_COUNT 64
|
|
|
|
/* Use a bigger console output buffer */
|
|
#undef CONFIG_UART_TX_BUF_SIZE
|
|
#define CONFIG_UART_TX_BUF_SIZE 8192
|
|
|
|
/*
|
|
* Interval between HOOK_TICK notifications
|
|
* Notice instant wake-up from deep-idle cannot exceed 200 ms
|
|
*/
|
|
#define HOOK_TICK_INTERVAL_MS 200
|
|
#define HOOK_TICK_INTERVAL (HOOK_TICK_INTERVAL_MS * MSEC)
|
|
|
|
/* Maximum number of deferrable functions */
|
|
#define DEFERRABLE_MAX_COUNT 8
|
|
|
|
/* Number of I2C ports */
|
|
#define I2C_PORT_COUNT 4
|
|
|
|
/* Number of PWM ports */
|
|
#define PWM_COUNT 8
|
|
|
|
/*****************************************************************************/
|
|
/* Memory mapping */
|
|
#define CONFIG_RAM_BASE 0x200C0000 /* memory map address of data ram */
|
|
#define CONFIG_RAM_SIZE (0x00008000 - 0x800) /* 30KB data ram */
|
|
#define CONFIG_CDRAM_BASE 0x100A8000 /* memory map address of code ram */
|
|
#define CONFIG_CDRAM_SIZE 0x00018000 /* 96KB code ram */
|
|
#define CONFIG_FLASH_BASE 0x64000000 /* memory address of spi-flash */
|
|
#define CONFIG_LPRAM_BASE 0x40001600 /* memory address of low power ram */
|
|
#define CONFIG_LPRAM_SIZE 0x00000620 /* 1568B low power ram */
|
|
|
|
/* System stack size */
|
|
#define CONFIG_STACK_SIZE 4096
|
|
|
|
/* non-standard task stack sizes */
|
|
#define IDLE_TASK_STACK_SIZE 512
|
|
#define LARGER_TASK_STACK_SIZE 640
|
|
|
|
#define CHARGER_TASK_STACK_SIZE 640
|
|
#define HOOKS_TASK_STACK_SIZE 640
|
|
#define CONSOLE_TASK_STACK_SIZE 640
|
|
|
|
/* Default task stack size */
|
|
#define TASK_STACK_SIZE 512
|
|
|
|
/* Address of RAM log used by Booter */
|
|
#define ADDR_BOOT_RAMLOG 0x100C7FC0
|
|
|
|
/* SPI Flash Spec of W25Q20CV */
|
|
#define CONFIG_FLASH_BANK_SIZE 0x00001000 /* protect bank size 4K bytes */
|
|
#define CONFIG_FLASH_ERASE_SIZE 0x00001000 /* sector erase size 4K bytes */
|
|
#define CONFIG_FLASH_WRITE_SIZE 0x00000001 /* minimum write size */
|
|
|
|
#define CONFIG_FLASH_WRITE_IDEAL_SIZE 256 /* one page size for write */
|
|
/* 128 KB alignment for SPI status registers protection */
|
|
#define CONFIG_FLASH_PHYSICAL_SIZE 0x40000 /* 256 KB Flash used for EC */
|
|
|
|
/* No PSTATE; uses a real SPI flash */
|
|
#undef CONFIG_FLASH_PSTATE
|
|
|
|
/* Header support which is used by booter to copy FW from flash to code ram */
|
|
#define NPCX_RO_HEADER
|
|
|
|
/****************************************************************************/
|
|
/* Define npcx flash layout. */
|
|
/* Size of one firmware image in flash */
|
|
#ifndef CONFIG_FW_IMAGE_SIZE
|
|
#define CONFIG_FW_IMAGE_SIZE (CONFIG_FLASH_PHYSICAL_SIZE / 2)
|
|
#endif
|
|
|
|
/* The storage offset of ec.RO.flat which is used for CONFIG_CDRAM_ARCH */
|
|
#define CONFIG_RO_STORAGE_OFF 0
|
|
#ifdef NPCX_RO_HEADER
|
|
#define CONFIG_RO_HDR_MEM_OFF 0x0
|
|
#define CONFIG_RO_HDR_SIZE 0x40
|
|
/* RO firmware offset in flash */
|
|
#define CONFIG_RO_MEM_OFF CONFIG_RO_HDR_SIZE
|
|
#else
|
|
#define CONFIG_RO_MEM_OFF 0x0
|
|
#endif
|
|
#define CONFIG_RO_SIZE CONFIG_CDRAM_SIZE /* 96KB for RO FW */
|
|
#define CONFIG_FLASH_SIZE CONFIG_FLASH_PHYSICAL_SIZE
|
|
|
|
/* The storage offset of ec.RW.flat which is used for CONFIG_CDRAM_ARCH */
|
|
#define CONFIG_RW_STORAGE_OFF CONFIG_FW_IMAGE_SIZE /* 128 KB alignemnt */
|
|
/* RW firmware offset in flash */
|
|
#define CONFIG_RW_MEM_OFF CONFIG_RW_STORAGE_OFF
|
|
#define CONFIG_RW_SIZE CONFIG_CDRAM_SIZE /* 96KB for RW FW */
|
|
|
|
#define CONFIG_WP_OFF CONFIG_RO_STORAGE_OFF
|
|
#define CONFIG_WP_SIZE CONFIG_FW_IMAGE_SIZE
|
|
|
|
/****************************************************************************/
|
|
/* Customize the build */
|
|
|
|
/* Optional features present on this chip */
|
|
#define CONFIG_ADC
|
|
#define CONFIG_FPU
|
|
#define CONFIG_I2C
|
|
#define CONFIG_PECI
|
|
#define CONFIG_SWITCH
|
|
#define CONFIG_MPU
|
|
|
|
/* Compile for running from RAM instead of flash */
|
|
/* #define COMPILE_FOR_RAM */
|
|
|
|
#define GPIO_PIN(port, index) GPIO_##port, (1 << index)
|
|
#define GPIO_PIN_MASK(port, mask) GPIO_##port, (mask)
|
|
|
|
#endif /* __CROS_EC_CONFIG_CHIP_H */
|