Як я можу сказати, який діапазон адрес оперативної пам'яті використовується uboot?


12

Я в uboot і цікавився, як я можу сказати, який діапазон адрес RAM використовується uboot.

uboot потрібна пам'ять для запуску, щоб воно могло використовувати деяку оперативну пам'ять. Я хочу уникати зміни цих RAM-адрес.

Як дізнатися, у яку область пам’яті завантажено uboot?

Відповіді:


2

Сторінка DULG DebuggingUBoot має це сказати ("переїзд", про який він говорить, - копіювання з флеш-пам'яті в оперативну пам'ять).

Для налагодження U-Boot після переїзду нам потрібно знати адресу, до якої U-Boot переїжджає. Якщо не використовуються такі екзотичні особливості, як PRAM, ця адреса зазвичай - CONFIG_SYS_MONITOR_LEN. У нашому прикладі з 16 Мб оперативної пам’яті та CONFIG_SYS_MONITOR_LEN = 192 КБ, це дає адресу 0x1000000 - 0x30000 = 0xFD0000.

Подальше прочитання тексту, схоже, вказує на те, що це залежить від процесора чи плати, і що вам, можливо, доведеться перевірити джерело U-Boot, щоб точно знати.

Щодо гуруплугу :

Що стосується оперативної пам’яті, u-Boot зарезервовано перші 8 мегабайт. Решта безкоштовна. Деякі розробники завантажуватимуть ядра та файлові системи на 0 × 800000 для програмування на flash. Ще одне поширене місце знаходиться на межі 100 мегабайт (або зміщення 0 × 640000).

Залежно від вашої версії U-Boot команди можуть бути доступні, щоб помістити рядок десь у вільну оперативну пам'ять, а потім полювати на решту оперативної пам’яті за цією рядком, розкриваючи приблизне розташування U-Boot в пам'яті.


1

Коли я запускаю версію uboot, яку я використовую, вона автоматично відображає "макет віртуальної ядра ядра".

Memory: 859068k/859068k available, 25668k reserved, 0K highmem
Virtual kernel memory layout:
    vector  : 0xffff0000 - 0xffff1000   (   4 kB)
    fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)
    DMA     : 0xf9e00000 - 0xffe00000   (  96 MB)
    vmalloc : 0xe0800000 - 0xf4000000   ( 312 MB)
    lowmem  : 0x80000000 - 0xe0000000   (1536 MB)
    pkmap   : 0x7fe00000 - 0x80000000   (   2 MB)
    modules : 0x7f000000 - 0x7fe00000   (  14 MB)
      .init : 0x80008000 - 0x8004d000   ( 276 kB)
      .text : 0x8004d000 - 0x808ad000   (8576 kB)
      .data : 0x808ce000 - 0x80937a40   ( 423 kB)

Я виявив, що безпечно використовувати область lowmem для різних утилітних процесів, які я хотів запустити (наприклад, завантаження великих файлів у пам'ять). В ідеалі, я думаю, ви хочете використовувати високу пам'ять для подібних речей, але у мене не було такого варіанту (як ви бачите в моєму виході).


Ви впевнені, що це не карта пам'яті Linux?
клеймація

Я не впевнений. Ця відсутність хаймема та посилання на "Віртуальне ядро" змушує мене думати інакше. Я noob / хак, коли справа доходить до uboot. Важливим моментом було те, що я зміг безпечно використовувати цей діапазон lowmem, не записуючи нічого, чого, здавалося, вимагає uboot.
BuvinJ

Як я пам'ятаю, це відображається до завантаження btw ОС.
BuvinJ
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.