Перейти к содержанию
    

линукс на ARM

Приветствую,

 

изучаю порт U-Boot на ARM/Versatile с тем, чтобы понять нюансы инициализации железа для последующей загрузки Linux.

 

В соответствии с докой с http://infocenter.arm.com/ SDRAM на этой платформе (128MB) организован через CS0 и мапится в диапозон 0x0000_0000-0x0800_0000. Порт U-Boot для Versatile определяет переменную TEXT_BASE=0x0100_0000 (адрес по которому в память будет грузиться uboot), т.е. это отстоит на 16MB от 0x0; в свою очередь порт Linux на эту платформу определяет адрес загрузки ядра -> 0x0000_8000, т.е. на 32kB от начала области RAM.

 

Отсюда вопрос:

1) с какой целью сооздается "дырка" в 16MB, предполагается, что туда ляжет ядро, initrd и еще что-то?

2) почему нельзя ядро разместить по адресу 0x0, и не делать 32kB отступ?

3) почему нельзя сделать так: с адреса 0x0 и выше положить загрузчик вместе с областью для параметров, передаваемых ядру (Uboot редко занимает более 200Kb), а следом грузить линукс?

 

Буду признателен за пояснения.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Приветствую,

 

изучаю порт U-Boot на ARM/Versatile с тем, чтобы понять нюансы инициализации железа для последующей загрузки Linux.

 

В соответствии с докой с http://infocenter.arm.com/ SDRAM на этой платформе (128MB) организован через CS0 и мапится в диапозон 0x0000_0000-0x0800_0000. Порт U-Boot для Versatile определяет переменную TEXT_BASE=0x0100_0000 (адрес по которому в память будет грузиться uboot), т.е. это отстоит на 16MB от 0x0; в свою очередь порт Linux на эту платформу определяет адрес загрузки ядра -> 0x0000_8000, т.е. на 32kB от начала области RAM.

 

Отсюда вопрос:

1) с какой целью сооздается "дырка" в 16MB, предполагается, что туда ляжет ядро, initrd и еще что-то?

2) почему нельзя ядро разместить по адресу 0x0, и не делать 32kB отступ?

3) почему нельзя сделать так: с адреса 0x0 и выше положить загрузчик вместе с областью для параметров, передаваемых ядру (Uboot редко занимает более 200Kb), а следом грузить линукс?

 

Буду признателен за пояснения.

Есть такая штука - стандарт. И в чипах и в линукс.

Так например с 0 у ARM идет Exception Vectors

Кроме того

linux/Documentation/arm/Booting

linux/Documentation/arm/Setup

linux/Documentation/arm/Porting

linux/Documentation/arm/memory.txt

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Приветствую,

 

спасибр за ответ.

Есть такая штука - стандарт. И в чипах и в линукс.

Так например с 0 у ARM идет Exception Vectors

Кроме того

linux/Documentation/arm/Booting

linux/Documentation/arm/Setup

linux/Documentation/arm/Porting

linux/Documentation/arm/memory.txt

 

Про вектора я как-то опять забыл :( И невнимательно читал linux/Documentation/arm/Booting, а там четко сказано:

 

The zImage may also be placed in system RAM (at any location) and

called there. Note that the kernel uses 16K of RAM below the image

to store page tables. The recommended placement is 32KiB into RAM.

 

Собственно, в первые 16KB в памяти кладется tagged list, в следующие 16 - page table. Это ответ на один мой глупый вопрос :) Но размещать загрузчик на 16mb от начала памяти - не многовато ли это для ядра и initrd?

 

PS. вот хорошая ссылка на описание загрузки - http://www.simtec.co.uk/products/SWLINUX/f...ng_article.html

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Но размещать загрузчик на 16mb от начала памяти - не многовато ли это для ядра и initrd?

Нет. Памяти мало не бывает :).

Кроме того, Сколько ядро займет после распаковки? А собственно с какого адреса начинает заливаться распакованное ядро, то что получится после "decompressing kernel .........................................ok"?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...