2015-08-28 12 views
7

Wcześniej pracowałem nad sterownikami platformy ARM Specific, ostatnio przeniesionymi na platformę Intel Atom. W ARM, do dodawania urządzeń platformowych używane były arch/arm/boot/dts/xx.dts i arch/arm/mach-xx/. Nie widzę tych plików ani folderów na x86. Kiedy wszedłem do arch/x86/..., nie ma plików dts ani plików platformy.Różnica w pisaniu sterownika urządzenia platformy dla x86 i ARM

Jak mogę dodać informacje o moim urządzeniu peryferyjnym, jeśli chcę dodać moje urządzenie peronowe do platformy Intel Atom? Skąd mogę pobrać pliki dts specyficzne dla x86 (zakładając, że chociaż dts nie jest specyficzną architekturą)?

+0

Jest przykładem, 'arch/x86/platforma/CE4100/falconfalls.dts', jądro jest w wersji 3.18. Może być to dobry początek dla ciebie. –

+0

Dzięki Chris, Za komentarz, to jedyne miejsce, w którym znalazłem. Ale jest wiele tablic opartych na intel. Ale znalazłem to, że używają informacji acpi, podobnie do dts. Ale nie jestem pewien, jak te informacje acpi są wysyłane do systemu Linux. Jeśli chcę dodać dowolne urządzenie platformy. Jak mogę dodać. – anikhan

Odpowiedz

5

Istnieją dwie nowe funkcje, które umożliwiają jednoczesne posiadanie jednego sterownika dla światów x86 i ARM. Pierwszą z nich jest metoda _DD w ACPI, która pozwala dostawcy dostarczyć dowolne właściwości urządzenia, które są mu potrzebne do prawidłowego działania IP. Druga część to ujednolicony interfejs właściwości urządzenia w jądrze systemu Linux (patrz: sterowniki /base/property.c). Tak więc, jeśli twoje potrzeby urządzeń powiedzmy clock-frequency własność po prostu pisać w czymś kierowcy tak:

u32 clock_freq; 
int err; 

err = device_property_read_u32(…, &clock_freq); 
if (err) 
    dev_err(…, "A mandatory property not found!\n"); 
+0

Dzięki Andy, skąd i jak ta informacja ACPI przychodzi do jądra Linuksa – anikhan

+0

Jeśli jest to pytanie, odpowiedź częściowo w powyższym tekście. Metoda '_DSD' jest specjalnie zaprojektowana do dostarczania par klucz-wartość właściwości urządzenia do systemu operacyjnego. – 0andriy

+0

Informacja _DSD (ACPI) jest wysyłana z dowolnego kodu rozruchowego/lub jawnie kompiluje się z jądrem. W ARM generalnie generujemy dtb z dts i przekazujemy go do jądra z systemu uboot. – anikhan

Powiązane problemy