diff --git a/docs/reset.md b/docs/reset.md new file mode 100644 index 0000000..052b83f --- /dev/null +++ b/docs/reset.md @@ -0,0 +1,41 @@ +QEMU emulated hardware: +- i440fx northbridge +- National Semiconductor 16550a UART + +```asm +[bits 16] +[org 0xff000] + +times (0xff0 - ($ - $$)) db 0x00 + + mov eax, 0xcafeface + hlt + +times (0x2000 - ($ - $$)) db 0xf4 +``` + +```sh +qemu-system-x86_64 \ + -monitor stdio \ + -no-reboot \ + -m 512M \ + -drive if=pflash,file=reset.bin,format=raw +``` + +- The BIOS flash is mapped in its entirety to a board-specific address. Here it looks like the + right edge is always 00000000ffffffff, and it expands to the left as the size of the flash + increases. +- The last 4096 bytes of flash are mapped to ff000 as well. + +``` +x/4096xb 0x00000000fffff000 +``` + +Left edge moves left as we add more to the ROM image. +Last 4096 bytes of the ROM image are also mapped to 0xff000. + +``` +info mtree +00000000ffffe000-00000000ffffffff (prio 0, romd): system.flash0 +``` +