ПредишенСледващото

Пренасянето Android ICS 4

Android ICS 4.0.3 от Texas Instruments на процесор модул SomIQ-AM37

В момента този източник разпределение за 3 платформи:

Ние сме заинтересовани да поддържа само Beagleboard късно AM37EVM, за да добавите WLAN.

Какви са целите, заложени:
1) Android се стартира и показва графика на HDMI монитор
2) Мишки произведения
3) Ethernet мрежа работи
4) инструмент операция, сглобяването на критерии

Стъпка 1. пренасяне на Linux ядрото

Следваща е описано доста общо процес на адаптация Linux ядрото от една платформа на друга подобна платформа, така че да отговаря на изброените тук могат да се прилагат не само за Android ICS и SomIQ-AM37, но също така и за други платформи.

Linux ядрото е съвкупност от различни системни инструменти като диспечер на задачите, управление на паметта, файловата система и т.н. Тези части са общи за всички платформи и не изискват от (обикновено) подобрения за една платформа, тъй като Те са независимо от оборудването. Какво е устройство зависим към Linux:

  • инициализация апарат
  • комплект шофьор

Като се започне платформа инициализация се прави във файла (ние разглеждаме само на ARM архитектура, процесори, TI Cortex-A8) / арка / рамо / Мах-omap2 / иззидан<название платформы>.в. Например, за Beagleboard инициализация се прави във файла «арка / рамо / Мах-omap2 / борда-omap3beagle.c на задачите». От SomIQ-AM37 схема се основава на схема Beagleboard, така че ние се вземе като основа за БСП (пакет за подкрепа борда) за Beagleboard.

Стъпка 1.1 добавите SOMIQ_AM37 архитектура на ядрото на Линукс

Стъпка 1.2 иззидан добавите файла на ядрото

Следващата стъпка е да копирате инициализация файл към новата Beagleboard и го оправя. В директория «арка / рамо / Мах-omap2» копие борда-omap3beagle.c файл, в борда-somiq_am37.c

Сега добавете нов файл на Makefile. Open Makefile в същата директория като «арка / рамо / Мах-omap2» и за линиите, свързани с Бийгъл изглежда:

Копирайте тези линии и да се замени с CONFIG_MACH_OMAP3_BEAGLE копия на CONFIG_MACH_SOMIQ_AM37, и да се замени името на борда-файл:

Също така в този на Makefile файл присъства в подкрепа на включването на камерите, но ние все още не се нуждаят от нея.

Сега трябва да добавите SOMIQ_AM37 архитектура Kconfig конфигурационен файл. Отворете файла в директорията Kconfig «арка / рамо / Мах-omap2» и намерете секцията, свързана с Бийгъл:

Копирайте тези линии и да се замени MACH_OMAP3_BEAGLE на MACH_SOMIQ_AM37 и OMAP_PACKAGE_CBB на OMAP_PACKAGE_CUS. Последната промяна е необходима, тъй като Beagleboard за използване в жилища процесор CBB, и се използва SomIQ-AM37 процесори CUS жилища. Това е необходима корекция, за да конфигурирате правилно ПИН MUX в ядрото. PIN MUX е да се избере един от седемте функции, принадлежащи към всеки щифт на процесора. В резултат на това можете да добавите следните редове във файла:

1.3 Редактиране на борда-файл

На първо място е включването на блок на заглавните файлове:

Тогава там е част от код, който е отговорен за свързване на USB устройство (тук ние няма да промени нищо):

Тогава кодът започва позовавайки се Beagleboard платформа:

защото Beagleboard evolyutsioniruet продължение на няколко години, схемата се е променила няколко пъти, промяна на процесорите, паметта, местоположението на линиите на GPIO и т.н. Да има едно ядро, което ще управлява всички тези конфигурации, разработчиците Beagleboard взе 3 процесор линия, която те определят одит борда. Така че първото нещо, което БСП Beagleboard определя, че работи на печатна платка. SomIQ-AM37 модул се извършва в същата конфигурация (все още) и затова редакция такса не е необходимо. Ето защо, премахнете следния код:

След това е описание на дяловете на флаш NAND на, ако е наличен на борда (не променя):

След това започва директно код, свързани с различни периферни устройства на дъската. Има допълнителни функции за работа с DSS процесор контролер, който е отговорен за продукцията графика за целта устройство. Beagleboard може да работи само директно с телевизора чрез S-Video или HDMI дисплей / DVI, така че всичко, и да се създаде за тях:

  • beagle_enable_dvi / beagle_disable_dvi функция - съответно включване и изключване на монитора (процесор контролира GPIO линия, която е свързана с TFP410 чип, входна мощност надолу Т.е. трансфер чип мощност надолу режим деактивира изхода на монитора ;.
  • omap_dss_device създадат структури и обекти представляват физически устройства: beagle_tv_device (TV) и beagle_dvi_device (DVI монитор);
  • регулатори на напрежение обвързани с продукцията телевизия и DVI: beagle_vdac_supply и beagle_vdvi_supply. Необходимо е да се евентуално намали консумацията на енергия и изключване на копчето, когато не се използва;
  • beagle_display_init () функция има достъп до GPIO линия, за да включите / изключите DVI на дисплея. GPIO номер се запазва на нива структура beagle_dvi_device.reset_gpio на

С DSS завършен и създаване на MMC, SD тя също:

Моля, имайте предвид, че е създадена структура присъства поле gpio_wp (Напишете Пазете картите от SD), но Somiqboard носещия панел е снабден със слот за MicroSD карта, която не разполага с линия за защита срещу запис. Така че, вместо на назначаване на номера на GPIO линия 29, пишем "-EINVAL", като по този начин информиране на MMC шофьор, че имаме такъв сигнал. Възможно е също така да изтриете MMC_CAP_8_BIT_DATA флаг, тъй като Card има 4-битов. След пластира:

Сега вратовръзка физическия контрол напрежение на водача:

beagle_vmmc1_supply резерв и beagle_vsim_supply, beagle_vaux3_supply, beagle_vaux4_supply безопасно изтрити, тъй като VSIM, VAUX3, VAUX4 имат само TPS65950 мощност контролер, и се използва от нас TPS65920 те са физически отсъства. Въпреки това, тези определения регулатори може и да напуснат, защото те работят няма да се намесва, но усещането от тях не е така.

Сега ние конфигурирате GPIO, които са обвързани с TPS65920 захранващия чип (той има редица функции, в допълнение към електрическата мрежа). В beagle_twl_gpio_setup (функция) се заличават следните редове:

В този фрагмент се създаде ред за защита срещу записване, което ние не използваме

Премахване на препратки към VSIM, като регулатор тя не е физически с нас:

На следващо място, извадете ключа за управление на захранването USB, защото Somiqboard върху него не е:

Също така се отстранят по същата причина:

Сега тази функция се определя ред за контрол на разстояние TFP410, въпреки че тази линия е свързана с процесора, а не TPS65920:

За да се поддържа непрекъснатост, но определя на друга линия (във връзка Somiqboard + SomIQ-AM37 е GPIO_10 линия) и останалата част се отстранява, оставяйки:

Напълно премахване на следния блок:

Ние си запазваме LED задвижващи линии, за да SomIQ-AM37 модул маркиран като RDY. Тя включва ф-зареждане и да започне да звъни, когато ядрото е заредена.

На следващия блок е напълно премахната:

С функцията beagle_twl_gpio_setup завършен и след това оставете beagle_gpio_data структура непроменен.

Сега е настройката на регулатора на напрежение и ги свързва с конкретни устройства:

  • beagle_vmmc1 - не променя
  • beagle_vsim - премахване на цялата структура, тъй като ние не контролираме
  • beagle_vdac - не променя
  • beagle_vpll2 - не променя
  • beagle_vaux3 - премахване
  • beagle_vaux4 - премахване

Сега коригирайте аудио кодек в TPS65950, но SomIQ-AM37 струва TPS65920, която няма аудио кодек, така че премахнете:

И накрая, структурата е описан TPS65920 (TWL) изтрива ред, който вече сме отстранен по-рано и да получите:

Освен beagle_i2c_boardinfo структура, beagle_i2c_eeprom и функция omap3_beagle_i2c_init остават непроменени. В gpio_leds структурата премахнете линии, описващи светодиоди usr0 и USR1, тъй като оттам нататък Somiqboard.

След това е целта GPIO линия, към който е свързан с бутона USER и Beagleboard Somiqboard - оставете без промени:

Преминете към omap3_beagle_init_irq () и премахване на влизане omap3_beagle_version, получаваме:

В тази структура за Beagleboard назначи GPIO_147 линия, за да изчистите (нулиране) USB PHY. На SomIQ-AM37 модул за тази цел, линията 186, така определи 147-186.

Сега отиваме с главната функция, при която ядрото да се инициализира карта: omap3_beagle_init (). Премахване на функцията за повикване omap3_beagle_init_rev () - определя какви редакция Beagleboard борда. След това поставете номера 170 10, както а именно линия 10 контролира обръщат TFP410 (HDMI):

Сега трябва да се промени ID машина във файла, който извиква функцията е във файла, когато прехвърлянето на контрола на ф-багажника. Погледнете в последния блок във файла:

В MACHINE_START макро Set ID Machine ID - OMAP3_BEAGLE и низ текст, който е отпечатан от ядрото по време на зареждане. Заменете ги с следното:

На този етап, ние сме почти приключила работата по създаването на своя БСП за SomIQ-AM37 модул. Въпреки това, ние са останали нереализирани функция за Ethernet мрежа. На SomIQ-AM37 модул инсталиран Ethernet контролер Micrel KSZ8851SNLI, SPI1 свързан с процесора. Поради това е необходимо да се добавят следните редове към omap3_beagle_init () функция разговор:

Тя трябва да включва и irq.h заглавния файл, така че да може да работи с прекъсвания. Добавете следния ред в началото на файла, където всички включванията «#include отида. "

Сега трябва да добавите Ethernet контролер инициализация в omap3_beagle_init (функция) на. Добавяне на somiq_ks8851_init повикване () преди beagle_display_init низ ():

Е, най-накрая, можете да коригирате думите «гонче» на «somiq», за да се избегне объркване в бъдеще.

Стъпка 1.4 Създаване на конфигурационен файл

Последната стъпка е да се създаде конфигурационния файл. За това ние използваме предварително конфигурирани за Beagleboard и го оправя. В основата на кода на ядрото източник, изпълнете командата:

Имаше .config файл, който съдържа цялата конфигурация на ядрото. Ръцете този файл не е правило, и изпълнете следната команда:

Появява се, интегрално структурирано меню, съдържащо основната конфигурация. Отидете на Тип-System> TI OMAP 2/3/4 Специфична Характеристики-> и премахване на пространството пред звезда, както и обратното Beagleboard добавите звездичка пред SomIQ-AM37. Следваща в менюто за възхода корен по-горе и изберете Device Drivers-> Мрежа устройство Подкрепа-> Ethernet (10 или 100 Mbit). Тук елемент марка «Micrel KS8851 SPI» звездичка.

Всичко. Сега натиснете EXIT, докато не става въпрос "Запис на промените в конфигурацията?" - изберете Да. Сега можете да компилирате ядрото.

Свързани статии

Подкрепете проекта - споделете линка, благодаря!