blob: 2828b47ff6a2e089df420388f9f01e3dbbe6d739 [file] [log] [blame] [edit]
// 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;
}