получение памяти во время загрузки - PullRequest
2 голосов
/ 23 октября 2011

Мне нужно немного памяти, выделенной во время загрузки. и мне нужен его физический адрес, а не виртуальный. Кроме того, я не хочу этого из региона DMA, это не моя цель.

Я пробовал alloc_bootmem (), alloc_bootmem_pages (), но они возвращают виртуальный адрес. Я также посмотрел на alloc_low_page () ... не совсем так, как ожидалось.

Дело в том, что мне нужна какая-то зарезервированная область в ОЗУ ... которая не должна отображаться ядром ... Я буду пытаться управлять этой областью самостоятельно. Мне нужно, чтобы физическая область была одинаковой при каждой загрузке.

Я также попытался выделить немного памяти в init / main.c: start_kernel (), но это тоже не сработало.

Вид застрял сейчас, где / что искать.

Я бы предпочел ответить как указатель на правильное направление, а не указывать do_it_here_in_this_way.

Спасибо:)

1 Ответ

2 голосов
/ 23 октября 2011

AFAIK Возвращаемая память покупает, так как распределитель загрузочной памяти - это физическая память, поэтому вы можете просто вызвать alloc_bootmem () и использовать virt_to_phys для получения физического адреса.

Нет гарантии получения одинакового адреса при каждой загрузке, но до тех пор, пока вы не измените ядро, распределение всегда будет происходить в том же порядке (и размере), так что вы ожидаете получить.

...