Zastanawiam się, jaka jest sekwencja rozruchowa Raspberry Pi w typowej konfiguracji (powiedzmy NOOBS), od aplikacji mocy (lub ciepłego resetu, jeśli jest inaczej) aż do, powiedzmy, pojawienia się logo; lub gdzie to jest opisane.
Oprócz najbardziej potrzebnego ogólnego obrazu tej sekwencji, najbardziej interesują mnie wczesne etapy:
- Jaki jest wektor resetowania procesora ARM i jak / gdzie to jest zdefiniowane?
- Z jakiej pamięci pobierane są pierwsze instrukcje procesora ARM? Gdzie to jest i jaką technologię stosuje się do przechowywania tego kodu?
- Czy to kod ARM32 lub kod Thumb (a może Jazelle)? Czy to zależy od bitu niskiego rzędu wektora resetowania?
- Czy dostępne jest źródło (lub dezasemblacja lub zrzut) tego wczesnego kodu rozruchowego? Jeśli nie, to czy jest coś technicznego, co uniemożliwia użycie portu JTAG do ustalenia tego? Jeśli chodzi o kwestie prawne, jestem gotów przyjąć ryzyko, że ufam mojemu zrozumieniu prawa obowiązującego w moim miejscu zamieszkania (Francja), co oznacza, że mam pełną analizę własnego komputera, przynajmniej w przypadku braku wyraźnej umowy wymóg, aby tego nie robić.
- W jakiej kolejności są inicjowane urządzenia peryferyjne i według jakiego kodu?
- Czy oprócz procesora ARM w BCM2835 działają jakieś procesory / automaty, a twierdząco, w jaki sposób jego sekwencja rozruchowa odnosi się do procesora ARM?
Jestem gotowy do zapoznania się z Instrukcją techniczną procesora ARM i urządzeniami peryferyjnymi ARM BCM2835 lub innymi dokumentami.
Aktualizacja: Po opublikowaniu znalazłem to i to , stwierdzając, że GPU BCM2835 działa jako master dla ARM i jest mocno zaangażowany w sekwencję rozruchową.