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
()
Ответ на: комментарий от tailgunner

Не ниже PHYS_OFFSET. Отлавливается CONFIG_DEBUG_VIRTUAL=y

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

это во флеше, а я про оперативную память

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

git clone https://github.com/linux4sam/at91bootstrap.git

cd ./at91bootstrap

для NAND

make sama5d3_xplainednf_linux_image_dt_defconfig

для SD

make sama5d3_xplainedsd_linux_image_dt_defconfig

make menuconfig

Kernel Image Storage Setup --->

Flattened Device Tree --->

(0x21000000) The External Ram Address to Load Device Tree Blob

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

Посредине норм - ядро умеет это обходить и не запинаться.

сбоку еще лучше - тогда точно не запнется

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

Да, оно умеет заменять at91bootstrap формируя специальный u-boot.bin, или отдельный прелоадер.

slapin ★★★★★
()
Последнее исправление: slapin (всего исправлений: 1)
Ответ на: комментарий от Harald

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

slapin ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.