Как отключить acpi в сборке в кастомной ОС?

Я запускаю пользовательскую операционную систему в virtualbox и проанализировал таблицы ACPI, FACP, DSDT и т. Д., Чтобы получить значения PM1a_CNT и SLP_TYPa. Это кажется правильным. Однако, когда я пытаюсь сделать завершение ACPI с:

xor eax, eax
mov edx, [PM1a_CNT]
mov ax, [SLP_TYPa]
or ax, (1 shl 13)
out dx, ax 

Ничего не произошло. PM1a_CNT 0x4004 и SLP_TYPa 0, что кажется разумным по сравнению с другими значениями, которые я видел в других местах. Я также проверяю PM1b_CNT, который равен нулю, поэтому я не беспокоюсь об этом.

Есть ли проблема или хитрость с Virtualbox, чтобы заставить его работать?

1 ответ

Все выглядит правильно, за исключением того, что вы записываете 32-битное значение в 16-битный порт ввода-вывода. Попробуйте заменить финал out dx, eax с out dx, ax,

Другие вопросы по тегам