Bagaimana cara mengetahui kisaran alamat RAM memori yang digunakan oleh uboot?


12

Saya di uboot dan bertanya-tanya, bagaimana saya bisa tahu kisaran alamat RAM apa yang digunakan oleh uboot.

uboot membutuhkan memori untuk dijalankan sehingga mungkin menggunakan beberapa RAM. Saya ingin menghindari mengubah alamat RAM tersebut.

Bagaimana saya tahu wilayah memori mana yang dimuat uboot?

Jawaban:


2

Halaman DULG DebuggingUBoot memiliki ini untuk mengatakan ("relokasi" itu berbicara tentang menyalin sendiri dari flash ke RAM).

Untuk men-debug U-Boot setelah pindah, kita perlu mengetahui alamat U-Boot yang pindah ke mana. Ketika tidak ada fitur eksotis seperti PRAM digunakan, alamat ini biasanya - CONFIG_SYS_MONITOR_LEN. Dalam contoh kami dengan RAM 16MB dan CONFIG_SYS_MONITOR_LEN = 192KB ini menghasilkan alamat 0x1000000 - 0x30000 = 0xFD0000.

Bacaan lebih lanjut dari teks tampaknya mengindikasikan itu tergantung pada prosesor atau papan dan bahwa Anda mungkin harus memeriksa sumber U-Boot untuk mengetahui pasti.

Mengenai Guruplug :

Di sisi RAM, u-Boot memiliki cadangan 8 megabyte pertama. Sisanya gratis. Beberapa pengembang akan memuat kernel dan sistem file pada 0 × 800000 untuk pemrograman ke flash. Tempat umum lainnya adalah pada batas 100 megabyte (atau mengimbangi 0 × 640000).

Tergantung pada versi Anda dari perintah U-Boot mungkin tersedia untuk meletakkan string di suatu tempat di RAM bebas dan kemudian berburu sisa RAM untuk string itu, mengungkapkan perkiraan lokasi U-Boot di memori.


1

Ketika saya memulai versi uboot yang saya gunakan, secara otomatis menampilkan "virtual memory memory layout".

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)

Saya menemukan aman untuk menggunakan area lowmem untuk berbagai proses utilitas yang ingin saya jalankan (seperti memuat file besar ke dalam memori). Idealnya, saya pikir Anda ingin menggunakan memori tinggi untuk hal semacam itu, tetapi saya tidak memiliki opsi (seperti yang dapat Anda lihat di output saya).


Apakah Anda yakin itu bukan peta memori Linux?
claymation

Saya tidak yakin. Kurangnya highmem dan referensi ke "Virtual kernel" membuat saya berpikir sebaliknya. Saya seorang noob / hack ketika datang ke uboot. Poin penting di sini adalah bahwa saya dapat menggunakan rentang lowmem dengan aman tanpa menulis apa pun yang tampaknya dibutuhkan oleh uboot.
BuvinJ

Seingat saya, ini ditampilkan sebelum memuat btw OS.
BuvinJ
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.