LINUX.ORG.RU

Куда нужно засовывать device tree

 , , , ,


1

2

... в оперативной памяти загрузчиком? И относительно ядра? В начало памяти, в конец памяти, ниже ядра, выше ядра? И почему? В доках не нашёл, может плохо искал.

Нужен ли он в процессе работы ядра, после загрузки? Плохо ли будет, если device tree лежит посередине физической памяти? По крайней мере у меня так получается, с дефолтными адресами из at91bootstrap

★★★★★

... в оперативной памяти загрузчиком? И относительно ядра? В начало памяти, в конец памяти, ниже ядра, выше ядра? И почему? В доках не нашёл, может плохо искал.

Его что, U-Boot не сам кладет куда надо?

Плохо ли будет, если device tree лежит посередине физической памяти?

Если ядро умеет обходить используемые кем-то участки памяти, то норм.

tailgunner ★★★★★ ()
Ответ на: комментарий от tailgunner

Его что, U-Boot не сам кладет куда надо?

Кладёт. Но я не хочу использовать u-boot, хочу грузить линукс напрямую из at91bootstrap, он это в теории поддерживает. И ещё u-boot зачем-то его переносит, вот в связи с этим и возник вопрос, зачем он это делает, и «куда надо» - это куда?

Если ядро умеет обходить используемые кем-то участки памяти, то норм.

Вот на этот счёт сомнения возникли.

Harald ★★★★★ ()

Посредине норм - ядро умеет это обходить и не запинаться. В каких-то старых версиях ведра верхний придел был в 512MB или вроде того.

anonymous ()
Ответ на: комментарий от Harald

Короче класть DTB в памяти нужно или ниже адреса загрузки ядра, или существенно выше. Физческие адреса передаются ядру в регистрах, и оно само потом перемапит все, так что если у порта at91 всё в этом плане с ранним кодом нормально, то должно всё работать. Главное использовать адреса, которые оно может прожевать (как минимум кратные странице). Но могут быть архитектурные нюансы, которые по at91 я уже не помню. Если будут глюки, придется отлаживать ранний код и разбираться. Нужно учитывать что память может всяко-разно использоваться при загрузке и быть попорчена, поэтому нужно экспериментировать.

Использование at91bootstrap'а сейчас это скорее рукоблудие, при наличии u-boot'а, который работает очень быстро и может еще быть ускорен разными настройками. Ну или если есть задача быть готовым к работе за милисекунды (тогда приложение запускают уже из загрузчика и потом после загрузки ядра userspace перехватывает управление). Просто оправдать неудобства, которые создает использование странных штук, достаточно сложно. Разве что привычками из 2005-го.

slapin ★★★★★ ()
Ответ на: комментарий от slapin

Использование at91bootstrap'а сейчас это скорее рукоблудие, при наличии u-boot'а, который работает очень быстро и может еще быть

а шо, напрямую грузить u-boot разве возможно? Зачем тогда at91bootstrap нужен?

Harald ★★★★★ ()
Ответ на: комментарий от slapin

И что такого магического делает u-boot при загрузке ведра, чего не делает at91bootstrap? Загрузка по сети, с файловых систем и прочее не нужно, только из флеша

Harald ★★★★★ ()
Ответ на: комментарий от Harald

Удобно обновлять пришивку из bootloader'а, загрузочные скрипты, автоматизация деплоя, поддержка USB и подобное. Я не говорю, что нельзя at91bootstrap дописать, но нафига, если есть u-boot.

slapin ★★★★★ ()