# Microchip MEC MCU line # Copyright (c) 2018, Intel Corporation # Copyright (c) 2022, Microchip Technology Inc. # SPDX-License-Identifier: Apache-2.0 config SOC_FAMILY_MEC bool if SOC_FAMILY_MEC config SOC_FAMILY string default "microchip_mec" menuconfig MCHP_MEC_UNSIGNED_HEADER bool "Create an unsigned output binary with MCHP MEC binary header" 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 "mec152x" if SOC_SERIES_MEC1501X 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 # Select SoC Part No. and configuration options source "soc/arm/microchip_mec/*/Kconfig.soc" endif # SOC_FAMILY_MEC