diff --git a/arch/cortex-m23/m2351/Kconfig b/arch/cortex-m23/m2351/Kconfig index 0b7acb6b..eddaf09e 100644 --- a/arch/cortex-m23/m2351/Kconfig +++ b/arch/cortex-m23/m2351/Kconfig @@ -371,7 +371,7 @@ config SCU_SECURE_SRAM_SIZE default 0x8000 if SCU_SECURE_SRAM_32 default 0xA000 if SCU_SECURE_SRAM_40 default 0xC000 if SCU_SECURE_SRAM_48 - default 0xC000 if SCU_SECURE_SRAM_56 + default 0xE000 if SCU_SECURE_SRAM_56 default 0x10000 if SCU_SECURE_SRAM_64 default 0x12000 if SCU_SECURE_SRAM_72 default 0x14000 if SCU_SECURE_SRAM_80 diff --git a/docs/mtower_functionality_description.md b/docs/mtower_functionality_description.md index 928cf828..763b1655 100644 --- a/docs/mtower_functionality_description.md +++ b/docs/mtower_functionality_description.md @@ -183,5 +183,51 @@ A list of Secure World API functions is given in a table below. For a detailed d ## 3. mTower configuration options -> TBD +Build parameters of mTower project, including target platform, optimization settings, debug options and startup/boot sequence, are governed by values that are set in Kconfig-based build configuration system. Below is an overview of parameters that can be set or changed by using this system. + +*Build setup* menu +This menu contains settings that determine optimization level of generated binary images, debug support, and trace messages generated by binary code. +*Control optimization* submenu lets you select optimization level for generated binary images. Note, though, that most of theoretically avaliable optimization levels do not work in practice (they cause compilation errors). Default is optimization level 1 that is guaranteed to work. + +*Debug options* submenu contains a variety of debug-related options. +*Enable Debug Features* option, if set, opens a submenu of debug features: +*Enable Error Output* option, if set, will include error messages into output log. It will also allow you to select +*Enable Warnings Output* option, that, if set, will include warning messages into output log. It will also allow you to select +*Enable Informational Debug Output* option, which will include info messages into output log. It will also allow you to select +*Enable Debug Informational Output* option, which will include general messages into output log. +*Enable Debug Assertions* option enables debug assertions that will halt the system when fail. +*Enable include File and Function name to output* option includes info on file and function names which emit messages into logs. +*Enable colorized output* option enables color control sequences in logging messages that allow you to mark various messages with differing colors. +*Generate Debug Symbols* option which must be set to *y* if you want the binary images to include symbols required by debuggers. +*TEE Internal API trace level* submenu lets you select which messages from TEE Internal API function code will be included into log: general messages, errors, warning, information, debug and/or flow. +*TEE Client API trace level* submenu lets you select which messages from TEE Client API function code will be included into log: general messages, errors, warning, information, debug and/or flow. + +*Trusted boot* menu +This menu lets you enable or disable trusted boot support for mTower, and to specify exact boot sequence (which loaders are used by boot sequence and which are disabled). There are also options for explicitly specifying start addresses of boot loaders. + +*System type* menu +This menu lets you specify target platform for which the build is to be performed. Note that contents of this menu are directly imported from arch/Kconfig file. +*MCU Architecture* submenu lets you select type of MCU for which the binary images are to be built. As of now, Cortex-M23 is the only supported type. +*MCU Family* submenu lets you select the family of MCU - however, as of now M2351 is the only choice. +*M2351 Platform Selection* submenu lets you select specific board for which images are to be built. As of now, there are 2 choices: NuMaker-PFM-M2351 board and M2351-Badge board. +*Non-secure debug UART configuration* submenu lets you select which UART is to be used for debug output from non-secure world (UART0 to UART5 are available choices). +*Non-secure debug font color configuration* submenu lets you select color for log messages sent via non-secure debug UART. +*Secure debug UART configuration* submenu lets you select which UART is to be used for debug output from secure world (UART0 to UART5 are available choices). +*Secure debug font color configuration* submenu lets you select color for log messages sent via secure debug UART. +*Secure attribution configuration* submenu contains submenus and options for configuring security-related parameters of Cortex-M23 MCUs: +*GPIO Secure Attribution Configuration* submenu allows you to specify which ports are to be considered secure (ports A to H are available for configuration). +*Secure SRAM size* submenu allows you to select Secure SRAM Size (0 to 96 kB in 8 kB increments) +*Secure Flash ROM Size* option lets you specify Secure Flash ROM size (hexadecimal size value is accepted) +*Peripheral Secure Attribution Configuration* submenu lets you specify if individual peripheral devices are considered secure or non-secure. +*Assign Interrupt to Secure or Non-secure Vector* submenu lets you assign specific interrupts to secure or non-secure handler addresses. +*Enable secure violation interrupts* submenu lets you specify which secure violation interrupts are enabled. +*Secure Attribute Unit (SAU) Control* option, if enabled, opens up a subset of options that allow you to configure SAU. +*Enable SAU* option enables Secure Attribute Unit if set. +*All Memory Attribute When SAU is disabled* option lets you specify if all memory is to be considered secure or non-secure if SAU is disabled. +*Enable and Set Secure/Non-Secure region* submenu allows you to specify border addresses of up to 8 memory regions and specify if each of these regions is to be considered secure or non-secure. +*Toolchain Selection* submenu lets you select toolchain used for building binary images. Options are GCC 6.1q1, GCC 6.1q2 and GCC 8q4. + + +*Application configuration* menu +This menu contains options for including specific applications into generated binary images. Note that contents of this menu are directly imported from apps/Kconfig file.