Мне интересно, какова последовательность загрузки Raspberry Pi в типичной настройке (скажем, NOOBS), от приложения питания (или горячего сброса, если это не так) до, скажем, появления логотипа; или где это описано.
Помимо самой необходимой общей картины этой последовательности, меня больше всего интересуют ранние стадии:
- Что такое вектор сброса для процессора ARM, и как / где это определяется?
- Из какой памяти извлекаются первые инструкции процессора ARM? Где это и какие технологии используются для хранения этого кода?
- Это код ARM32 или Thumb (или, возможно, Jazelle)? Это зависит от младшего бита вектора сброса?
- Доступен ли исходный код (или разборка, или дамп) этого раннего загрузочного кода? Если нет, то что-нибудь техническое препятствует использованию порта JTAG для определения этого? Что касается юридического, я готов взять на себя риск доверять моему пониманию законодательства, применимого в том месте, где я живу (Франция), а именно, что я полностью могу анализировать свой собственный компьютер, по крайней мере, в отсутствие явного договорного Требование не делать этого.
- В каком порядке инициализируются периферийные устройства и каким фрагментом кода?
- Помимо процессора ARM, есть ли в BCM2835 какие-либо процессоры / автоматы, и положительно, как их последовательность загрузки связана с процессором ARM?
Я готов нырнуть в процессоре ARM в Техническом справочном руководстве и BCM2835 ARM Периферийных устройств , или любой другой документ.
Обновление: после публикации я обнаружил, что это и это , утверждая, что графический процессор BCM2835 действует как мастер для ARM и активно участвует в последовательности загрузки.
4
Все, что я могу сказать, что большая часть этой информации является закрытым исходным кодом, таким как исходный код, загрузчики и прошивка SoC. На данный момент выделение неизвестно. Вы должны знать одну вещь. BCM - это графический процессор ... а не процессор. Загрузчик запускается в разделе графического процессора, инициализирует там ОЗУ и передает ЦП, где мы имеем первый доступ к исходному коду ... он же Raspbian. Удачи. Этот вопрос очень широкий и трудно ответить.
—
Петр Кула
Связанный: Что происходит во время процесса загрузки? , Дублирование?
—
Питер Мортенсен