Стек телефонии
Обзор
Система CCCI (Cross-Core Communication Interface), представляющая из себя модули ядра (как ядра модема, так и ядра AP (Application Processor)) и "middleware"-софт (напр., см. запущенные процессы ccci*) ответственен за управление и слежение за модемом, который рассматривается целиком, как связка DSP (Digital Signal Processor) и MCU (Microcontroller Unit), находящихся на одном с AP SoC'е (System on a Chip). Также система CCCI ответствененна за обмен данными между AP и модемом.
Модуль ядра eccci, являющийся частью CCCI, имеет подсистему CCIF, содержащую код, который устанавливает низкоуровневое соединение между AP и модемом (инициализация линий UART для передачи ATкоманд и голоса, инициализация области разделяемой памяти для обмена данными и управляющими командами (напр., для подсистемы A-GPS)).
Процесс инициализации модема состоит в следующем: ccci_mdinit из пространства пользователя инициирует и контролирует загрузку "прошивки" для модема , обращаясь (ioctl()) к драйверу CCCI. Далее, на модем подаётся питание. Затем, ядро выделяет участок оперативной памяти, разделённый на 3 части, который будет далее использоваться модемом (ROM/RAM модема и участок общей с AP разделяемой памяти для коммуникации, после чего gsm0710muxd переводит порт для коммуникации с модемом /dev/ttyC0 в мультиплексный режим (см. AT+CMUX) и инициализирует виртуальные каналы разного назначения.
Раздел NVRAM, доступ к которому имеет как "модем", так и AP, используется для хранения калибровачных данных для модема и некоторой дополнительной информации (напр., IMEI устройства).
ModemManager во время инициализации по-умолчанию "опробирует" доступные tty, пока не доходит до отвечающих его запросам.