Почему мое ядро ​​Linux с OpenSBI не загружается правильно при переходе на новый нагрузочный адрес (0x80100000)Linux

Ответить Пред. темаСлед. тема
Anonymous
 Почему мое ядро ​​Linux с OpenSBI не загружается правильно при переходе на новый нагрузочный адрес (0x80100000)

Сообщение Anonymous »

Я использовал следующую команду для создания полезной нагрузки OpenSbi и ядра Linux: < /p>
make PLATFORM=generic FW_FDT_PATH=$WORKLOAD_BUILD_ENV_HOME/dts/build/xiangshan.dtb FW_PAYLOAD_PATH=$RISCV_LINUX_HOME/arch/riscv/boot/Image
< /code>
После получения fw_payload.bin я написал простую инструкцию перехода для загрузки полезных данных OpenSBI и перехода в новое местоположение по адресу 0x80100000. Переход осуществляется с помощью базовой инструкции перехода по адресу 0x80100000, после чего ядро ​​должно продолжить выполнение fw_payload.bin.
Однако при запуске этого на эмуляторе я вижу только Вывод OpenSBI, но не вывод ядра. Если я напрямую запускаю fw_payload.bin, он работает как положено и ядро ​​работает нормально.
В чем может быть причина такого несоответствия? Почему ядро ​​не работает должным образом после перехода на 0x80100000, но работает нормально, когда полезная нагрузка выполняется напрямую?
Вот мой linker.lds и логика перехода:
OUTPUT_ARCH( "riscv" )

ENTRY( jump_payload )

SECTIONS
{
. = ALIGN(4);

begin = .;

.header.code :
{
*(.header.code)
}

end = .;

. = begin + 0x100000;
.payload :
{
PROVIDE(_payload_start = .);
*(.payload)
. = ALIGN(8);
PROVIDE(_payload_end = .);
}
< /code>
.section ".header.code", "ax", %progbits
.globl jump_payload
jump_payload:
li t0, 0x80100000
jr t0
add t0, x0,x0

.section ".payload", "ax", %progbits
.align 4
.global payload_bin
payload_bin:
.incbin PAYLOAD_PATH


Подробнее здесь: https://stackoverflow.com/questions/793 ... to-a-new-l
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как установить аргумент командной строки ядра OpenSBI с помощью Buildroot
    Anonymous » » в форуме Linux
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Нагрузочный тест Gatling Websocket
    Anonymous » » в форуме JAVA
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • Нагрузочный тест Gatling Websocket
    Anonymous » » в форуме JAVA
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • При переходе к домашнему представлению загрузка занимает много времени, а при переходе обратно из FullPostCell на перехо
    Anonymous » » в форуме IOS
    0 Ответы
    55 Просмотры
    Последнее сообщение Anonymous
  • Модель запросов и ответов не загружается в пользовательском интерфейсе Swagger при переходе с Swagger 1.2 на Swagger 2.0
    Anonymous » » в форуме JAVA
    0 Ответы
    56 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Linux»