| // Copyright 2022 Google LLC |
| // |
| // Licensed under the Apache License, Version 2.0 (the "License"); |
| // you may not use this file except in compliance with the License. |
| // You may obtain a copy of the License at |
| // |
| // https://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, software |
| // distributed under the License is distributed on an "AS IS" BASIS, |
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| // See the License for the specific language governing permissions and |
| // limitations under the License. |
| |
| import <LoggerInterface.camkes>; |
| import <ProcessControlInterface.camkes>; |
| import <PackageManagementInterface.camkes>; |
| import <MlCoordinatorInterface.camkes>; |
| import <MemoryInterface.camkes>; |
| import <UARTDriverInterface.camkes>; |
| import <SecurityCoordinatorInterface.camkes>; |
| import <TimerServiceInterface.camkes>; |
| import <SDKManagerInterface.camkes>; |
| |
| component DebugConsole { |
| control; |
| |
| provides LoggerInterface logger; |
| uses MemoryInterface memory; |
| // NB: load+unload are optional shell commands |
| maybe uses PackageManagementInterface pkg_mgmt; |
| uses ProcessControlInterface proc_ctrl; |
| maybe uses SecurityCoordinatorInterface security; |
| maybe uses SDKManagerInterface sdk_manager; |
| |
| // Optional device support. |
| |
| // ML Coordinator service (currently needs ML accelerator) |
| maybe uses MlCoordinatorInterface mlcoord; |
| |
| // Timer service requires device support |
| maybe uses Timer timer; |
| |
| // UART device |
| maybe dataport Buf tx_dataport; |
| maybe uses uart_write_inf uart_write; |
| |
| maybe dataport Buf rx_dataport; |
| maybe uses uart_read_inf uart_read; |
| |
| // Enable CantripOS CAmkES support. |
| attribute int cantripos = true; |
| |
| // When dynamic loading is configured, install requests upload a |
| // package that requires enough slots to hold dynamically allocated |
| // memory for the package contents. Size this to handle up to 4MB |
| // (at 4KB / page) though that exceeds our target memory config. |
| // attribute int cnode_headroom = 1024; |
| |
| // Copyregions for zmodem upload and for loading bundle images. |
| // Could do this with one region since upload never happens |
| // concurrently with bundle image loading. |
| has copyregion BUNDLE_IMAGE; |
| has copyregion UPLOAD; |
| |
| // Disable unused threads. |
| attribute int timer_has_thread = false; |
| attribute int mlcoord_has_thread = false; |
| } |