Уже прошло около полутора лет с момента моей предыдущей публикации, посвящённой поддержке Intel Atom Z34xx, а попросту говоря Intel Edison, ванильным ядром Linux. Здесь я рассмотрю новшества, которые ждут своей очереди в ядро версии v4.8-rc1.
Я долго жаловался на отсутствие драйвера Power Management Unit (PwrMU) для платформы, пока сам не сел и не почистил известный код до состояния, позволившего включить его в ванильное ядро. Таким образом устройства южного моста, а это почти все устройства, которые используются для периферии и IoT. Наличие драйвера позволило продолжить работу над остальными частями платформы.
GPIO и pinctrl
Самыми важными драйверами на любой встраиваемой платформе являются GPIO и pinctrl. Без них большинство устройств на плате будут работать неверно или вообще не работать. Как относительно недавно выяснилось задекларированный ранее в ванильных ядрах GPIO драйвер в принципе был неработоспособным, а pinctrl и вовсе отсутствовал. Необходимость наличия этих драйверов вызвана использованием некоторых конктактных площадок (pad'ов) в разных режимах для контроллеров других устройств и шин.
Драйверы последовательных шин
Наконец-то обрадуются пользователи устройств, подключенных к контроллерам последовательных шин, а именно SPI и I2C. В ожидаемой новой версии будет включена поддержка этих контроллеров для Intel Atom Z34xx, помимо этого по умолчанию будут инициализироваться расширители GPIO (PCAL9555a), установленные на плату Edison-Arduino, и SPI5 получит своё специальное устройство /dev/spidev5.1 (сигнал выбора чипа 0 заведен на АЦП, а выбор чипа 1 — подключаемое пользователем устройство).
Ближе к эфиру
Помимо вышеупомянутого делается шаг на встречу к включению WiFi. На данный момент в локальном дереве карточка SDIO, bcm43340, распознаётся драйвером, хотя ведёт себя весьма нестабильно, да и сети не видит, хотя интерфейс wlan0 регистрируется.
Работа кипит
Продолжить список целей, которых я хотел бы достичь в ванильном ядре, можно следующими пунктами (план-минимум):
- устойчивая работа PWM
- максимально приблизиться к запуску WiFi
- работа слота micro-SD
- поддержка CPU C-states в драйвере intel_idle
Вливайся в процесс
Работы как для одного человека во вне рабочее время на самом деле многовато, желающие помочь принимаются с радостью!
Экспериментальное дерево исходников здесь: github.com/andy-shev/linux/commits/eds
Автор: andy_shev