blob: 8f0b84b4b4abfa7614366e687fababe5403fa746 [file] [log] [blame]
# Microchip MEC MCU line
# Copyright (c) 2018, Intel Corporation
# Copyright (c) 2022, Microchip Technology Inc.
# SPDX-License-Identifier: Apache-2.0
if SOC_FAMILY_MICROCHIP_MEC
menuconfig MCHP_MEC_UNSIGNED_HEADER
bool "Create an unsigned output binary with MCHP MEC binary header"
depends on SOC_SERIES_MEC172X
help
On Microchip MEC series chip, the ROM code loads firmware image from flash
to RAM using a TAG to locate a Header which specifies the location and
size of the firmware image. Enable this to invoke the mec_spi_gen tool
which generates an SPI image with TAG, Header, and firmware binary. This
tool does not produce a signed image which can be authenticated by the
Boot-ROM. Use the full Microchip SPI image generator program for
authentication and all other Boot-ROM loader features. Refer to the MCHP
EVB boards for an example.
if MCHP_MEC_UNSIGNED_HEADER
config MCHP_MEC_HEADER_CHIP
string
default "mec15xx" if SOC_SERIES_MEC15XX
default "mec172x" if SOC_SERIES_MEC172X
choice MCHP_MEC_HEADER_SPI_FREQ_MHZ_CHOICE
prompt "Clock rate to use for SPI flash"
default MCHP_MEC_HEADER_SPI_FREQ_MHZ_12
help
This selects the SPI clock frequency that will be used for loading
firmware binary from flash to RAM.
config MCHP_MEC_HEADER_SPI_FREQ_MHZ_12
bool "SPI flash clock rate of 12 MHz"
config MCHP_MEC_HEADER_SPI_FREQ_MHZ_16
bool "SPI flash clock rate of 16 MHz"
config MCHP_MEC_HEADER_SPI_FREQ_MHZ_24
bool "SPI flash clock rate of 24 MHz"
config MCHP_MEC_HEADER_SPI_FREQ_MHZ_48
bool "SPI flash clock rate of 48 MHz"
endchoice
config MCHP_MEC_HEADER_SPI_FREQ_MHZ
int
default 12 if MCHP_MEC_HEADER_SPI_FREQ_MHZ_12
default 25 if MCHP_MEC_HEADER_SPI_FREQ_MHZ_16
default 24 if MCHP_MEC_HEADER_SPI_FREQ_MHZ_24
default 48 if MCHP_MEC_HEADER_SPI_FREQ_MHZ_48
choice MCHP_MEC_HEADER_SPI_READ_MODE_CHOICE
prompt "Reading mode used by the SPI flash"
default MCHP_MEC_HEADER_SPI_READ_MODE_FAST
help
This sets the reading mode that can be used by the SPI flash.
Reading modes supported are normal, fast, dual, and quad.
config MCHP_MEC_HEADER_SPI_READ_MODE_NORMAL
bool "SPI flash operates full-duplex with frequency (< 25 MHz)"
config MCHP_MEC_HEADER_SPI_READ_MODE_FAST
bool "SPI flash operates full-duplex with fast reading mode"
config MCHP_MEC_HEADER_SPI_READ_MODE_DUAL
bool "SPI flash operates with dual data reading mode"
config MCHP_MEC_HEADER_SPI_READ_MODE_QUAD
bool "SPI flash operates with quad data reading mode"
endchoice
config MCHP_MEC_HEADER_SPI_READ_MODE
string
default "slow" if MCHP_MEC_HEADER_SPI_READ_MODE_NORMAL
default "fast" if MCHP_MEC_HEADER_SPI_READ_MODE_FAST
default "dual" if MCHP_MEC_HEADER_SPI_READ_MODE_DUAL
default "quad" if MCHP_MEC_HEADER_SPI_READ_MODE_QUAD
choice MCHP_MEC_HEADER_FLASH_SIZE_CHOICE
prompt "Flash size"
default MCHP_MEC_HEADER_FLASH_SIZE_16M
help
This sets the SPI flash size.
config MCHP_MEC_HEADER_FLASH_SIZE_256K
bool "SPI flash size 256K Bytes"
help
The SPI flash size is 256K Bytes.
config MCHP_MEC_HEADER_FLASH_SIZE_512K
bool "SPI flash size 512K Bytes"
help
The SPI flash size is 512K Bytes.
config MCHP_MEC_HEADER_FLASH_SIZE_1M
bool "SPI flash size 1M Bytes"
help
The SPI flash size is 1M Bytes.
config MCHP_MEC_HEADER_FLASH_SIZE_2M
bool "SPI flash size 2M Bytes"
help
The SPI flash size is 2M Bytes.
config MCHP_MEC_HEADER_FLASH_SIZE_4M
bool "SPI flash size 4M Bytes"
help
The SPI flash size is 4M Bytes.
config MCHP_MEC_HEADER_FLASH_SIZE_8M
bool "SPI flash size 8M Bytes"
help
The SPI flash size is 8M Bytes.
config MCHP_MEC_HEADER_FLASH_SIZE_16M
bool "SPI flash size 16M Bytes"
help
The SPI flash size is 16M Bytes.
endchoice
config MCHP_MEC_HEADER_FLASH_SIZE
int
default 256 if MCHP_MEC_HEADER_FLASH_SIZE_256K
default 512 if MCHP_MEC_HEADER_FLASH_SIZE_512K
default 1024 if MCHP_MEC_HEADER_FLASH_SIZE_1M
default 2048 if MCHP_MEC_HEADER_FLASH_SIZE_2M
default 4096 if MCHP_MEC_HEADER_FLASH_SIZE_4M
default 8192 if MCHP_MEC_HEADER_FLASH_SIZE_8M
default 16384 if MCHP_MEC_HEADER_FLASH_SIZE_16M
choice MCHP_MEC_HEADER_SPI_DRVSTR_CHOICE
prompt "Flash drive strength"
default MCHP_MEC_HEADER_SPI_DRVSTR_1X
help
This sets the SPI flash size.
config MCHP_MEC_HEADER_SPI_DRVSTR_1X
bool "SPI flash drive strength multiplier 1"
help
The SPI flash size is 256K Bytes.
config MCHP_MEC_HEADER_SPI_DRVSTR_2X
bool "SPI flash drive strength multiplier 2"
help
The SPI flash size is 256K Bytes.
config MCHP_MEC_HEADER_SPI_DRVSTR_4X
bool "SPI flash drive strength multiplier 4"
help
The SPI flash size is 512K Bytes.
config MCHP_MEC_HEADER_SPI_DRVSTR_6X
bool "SPI flash drive strength multiplier 6"
help
The SPI flash size is 1M Bytes.
endchoice
config MCHP_MEC_HEADER_SPI_DRVSTR
string
default "1x" if MCHP_MEC_HEADER_SPI_DRVSTR_1X
default "2x" if MCHP_MEC_HEADER_SPI_DRVSTR_2X
default "4x" if MCHP_MEC_HEADER_SPI_DRVSTR_4X
default "6x" if MCHP_MEC_HEADER_SPI_DRVSTR_6X
choice MCHP_MEC_HEADER_SPI_SLEW_RATE_CHOICE
prompt "Slew rate of SPI pins"
default MCHP_MEC_HEADER_SPI_SLEW_RATE_SLOW
help
This sets the slew rate of the SPI pins. Default is slow
slew rate which is 1/2 the AHB clock rate. Fast slew is the
AHB clock rate.
config MCHP_MEC_HEADER_SPI_SLEW_RATE_SLOW
bool "SPI pins slew rate is 1/2 AHB frequency"
config MCHP_MEC_HEADER_SPI_SLEW_RATE_FAST
bool "SPI pins slew rate is 1x AHB frequency"
endchoice
config MCHP_MEC_HEADER_SPI_SLEW_RATE
string
default "slow" if MCHP_MEC_HEADER_SPI_SLEW_RATE_SLOW
default "fast" if MCHP_MEC_HEADER_SPI_SLEW_RATE_FAST
config MCHP_MEC_HEADER_FLASH_SPI_MODE
int "Flash SPI Mode"
range 0 7
default 0
help
This three bit value corresponds to the QMSPI controllers clock idle and
input/output data phases. Bits[0:2] are CPOL:CPHA_MOSI:CPHA_MISO. Refer
to the data sheet. Default value is 0 corresponding to SPI Mode 0
signalling.
Setting this field to 0 selects mode 0, CPOL=0, CPHA_MOSI=0, CPHA_MISO=0
Setting this filed to 7 selects mode 3, CPOL=1, CPHA_MOSI=1, CPHA_MISO=1
config MCHP_HEADER_VERBOSE_OUTPUT
bool "Debug console output"
default n
help
Enable print output from SPI generator script for debug
endif # MCHP_MEC_UNSIGNED_HEADER
# Common debug configuration
choice
prompt "MEC debug interface general configuration"
default SOC_MEC_DEBUG_AND_TRACING
depends on SOC_SERIES_MEC174X || SOC_SERIES_MEC175X || SOC_SERIES_MECH172X
help
Select Debug SoC interface support for MEC SoC family
config SOC_MEC_DEBUG_DISABLED
bool "Disable debug support"
help
Debug port is disabled, JTAG/SWD cannot be enabled. JTAG_RST#
pin is ignored. All other JTAG pins can be used as GPIOs
or other non-JTAG alternate functions.
config SOC_MEC_DEBUG_WITHOUT_TRACING
bool "Debug support via Serial wire debug"
help
JTAG port in SWD mode.
config SOC_MEC_DEBUG_AND_TRACING
bool "Debug support via Serial wire debug with tracing enabled"
help
JTAG port is enabled in SWD mode.
endchoice
choice
prompt "MEC debug interface trace configuration"
default SOC_MEC_DEBUG_AND_SWV_TRACING
depends on SOC_MEC_DEBUG_AND_TRACING
help
Select tracing mode for debug interface
config SOC_MEC_DEBUG_AND_ETM_TRACING
bool "Debug support via Serial wire debug"
help
JTAG port in SWD mode and ETM as tracing method.
ETM re-assigns 5 pins for clock and 4-bit data bus.
Check data sheet for functions shared with ETM.
config SOC_MEC_DEBUG_AND_SWV_TRACING
bool "debug support via Serial Wire Debug and Viewer"
help
JTAG port in SWD mode and SWV as tracing method.
Check data sheet for functions shared with SWD and SWV pins.
endchoice
# common processor clock divider configuration
config SOC_MEC_PROC_CLK_DIV
int "PROC_CLK_DIV"
default 1
range 1 48
help
This divisor defines a ratio between processor clock (HCLK)
and main 96 MHz clock (MCK):
HCLK = MCK / PROC_CLK_DIV
Allowed divider values: 1, 3, 4, 16, and 48.
# Select SoC Part No. and configuration options
rsource "*/Kconfig"
endif # SOC_FAMILY_MICROCHIP_MEC