wip
This commit is contained in:
BIN
nel_os_bootloader/OVMF-pure-efi.fd
Normal file
BIN
nel_os_bootloader/OVMF-pure-efi.fd
Normal file
Binary file not shown.
BIN
nel_os_bootloader/OVMF.fd
Normal file
BIN
nel_os_bootloader/OVMF.fd
Normal file
Binary file not shown.
408
nel_os_bootloader/bochs.out
Normal file
408
nel_os_bootloader/bochs.out
Normal file
@ -0,0 +1,408 @@
|
|||||||
|
00000000000i[ ] Bochs x86 Emulator 3.0.devel
|
||||||
|
00000000000i[ ] Built from GitHub snapshot after release 3.0
|
||||||
|
00000000000i[ ] Compiled on Aug 21 2025 at 19:02:35
|
||||||
|
00000000000i[ ] System configuration
|
||||||
|
00000000000i[ ] processors: 1 (cores=1, HT threads=1)
|
||||||
|
00000000000i[ ] A20 line support: yes
|
||||||
|
00000000000i[ ] IPS is set to 4000000
|
||||||
|
00000000000i[ ] CPU configuration
|
||||||
|
00000000000i[ ] SMP support: no
|
||||||
|
00000000000i[ ] Using pre-defined CPU configuration: corei7_sandy_bridge_2600k
|
||||||
|
00000000000i[ ] Optimization configuration
|
||||||
|
00000000000i[ ] RepeatSpeedups support: no
|
||||||
|
00000000000i[ ] Fast function calls: no
|
||||||
|
00000000000i[ ] Handlers Chaining speedups: no
|
||||||
|
00000000000i[ ] Devices configuration
|
||||||
|
00000000000i[ ] PCI support: i440FX i430FX i440BX
|
||||||
|
00000000000i[ ] Networking: no
|
||||||
|
00000000000i[ ] Sound support: no
|
||||||
|
00000000000i[ ] USB support: no
|
||||||
|
00000000000i[ ] VGA extension support: vbe
|
||||||
|
00000000000i[IMG ] Disk image modules
|
||||||
|
00000000000i[IMG ] flat concat sparse dll growing undoable volatile vmware3
|
||||||
|
00000000000i[IMG ] vmware4 vbox vpc vvfat
|
||||||
|
00000000000i[MEM0 ] allocated memory at 0x7d9025bdd010. after alignment, vector=0x7d9025bde000, block_size = 128K
|
||||||
|
00000000000i[MEM0 ] 256.00MB
|
||||||
|
00000000000i[MEM0 ] mem block size = 0x00020000, blocks=2048
|
||||||
|
00000000000i[MEM0 ] rom at 0xffe00000/2097152 ('./OVMF-pure-efi.fd')
|
||||||
|
00000000000i[CPU0 ] initialized CPU model corei7_sandy_bridge_2600k
|
||||||
|
00000000000i[DEV ] will paste characters every 100 iodev timer ticks
|
||||||
|
00000000000i[PLUGIN] init_dev of 'pci' plugin device by virtual method
|
||||||
|
00000000000i[DEV ] i440FX PMC present at device 0, function 0
|
||||||
|
00000000000i[PLUGIN] init_dev of 'pci2isa' plugin device by virtual method
|
||||||
|
00000000000i[DEV ] PIIX3 PCI-to-ISA bridge present at device 1, function 0
|
||||||
|
00000000000i[PLUGIN] init_dev of 'cmos' plugin device by virtual method
|
||||||
|
00000000000i[CMOS ] Using local time for initial clock
|
||||||
|
00000000000i[CMOS ] Setting initial clock to: Fri Aug 22 15:03:30 2025 tz=utc (time0=1755875010)
|
||||||
|
00000000000i[PLUGIN] init_dev of 'dma' plugin device by virtual method
|
||||||
|
00000000000i[DMA ] channel 4 used by cascade
|
||||||
|
00000000000i[PLUGIN] init_dev of 'pic' plugin device by virtual method
|
||||||
|
00000000000i[PLUGIN] init_dev of 'pit' plugin device by virtual method
|
||||||
|
00000000000i[PLUGIN] init_dev of 'vga' plugin device by virtual method
|
||||||
|
00000000000i[MEM0 ] Register memory access handlers: 0x0000000a0000 - 0x0000000bffff
|
||||||
|
00000000000i[VGA ] interval=100000, mode=realtime
|
||||||
|
00000000000i[VGA ] Setting VGA update interval to 100000 (10.0 Hz)
|
||||||
|
00000000000i[VGA ] VSYNC using standard mode
|
||||||
|
00000000000i[BXVGA ] VBE Bochs Display Extension Enabled (16 MB)
|
||||||
|
00000000000i[DEV ] PCI slot #1 used by plugin 'pcivga'
|
||||||
|
00000000000i[DEV ] Experimental PCI VGA present at device 2, function 0
|
||||||
|
00000000000i[BXVGA ] loaded PCI ROM '/usr/local/share/bochs/VGABIOS-lgpl-latest-cirrus.bin' (size=33792 / PCI=64k)
|
||||||
|
00000000000i[PLUGIN] init_dev of 'floppy' plugin device by virtual method
|
||||||
|
00000000000i[DMA ] channel 2 used by Floppy Drive
|
||||||
|
00000000000i[FLOPPY] Using boot sequence disk, none, none
|
||||||
|
00000000000i[FLOPPY] Floppy boot signature check is enabled
|
||||||
|
00000000000i[PLUGIN] init_dev of 'acpi' plugin device by virtual method
|
||||||
|
00000000000i[DEV ] ACPI Controller present at device 1, function 3
|
||||||
|
00000000000i[PLUGIN] init_dev of 'hpet' plugin device by virtual method
|
||||||
|
00000000000i[HPET ] initializing HPET
|
||||||
|
00000000000i[MEM0 ] Register memory access handlers: 0x0000fed00000 - 0x0000fed003ff
|
||||||
|
00000000000i[PLUGIN] init_dev of 'ioapic' plugin device by virtual method
|
||||||
|
00000000000i[IOAPIC] initializing I/O APIC
|
||||||
|
00000000000i[MEM0 ] Register memory access handlers: 0x0000fec00000 - 0x0000fec00fff
|
||||||
|
00000000000i[IOAPIC] IOAPIC enabled (base address = 0xfec00000)
|
||||||
|
00000000000i[PLUGIN] init_dev of 'keyboard' plugin device by virtual method
|
||||||
|
00000000000i[PLUGIN] init_dev of 'pci_ide' plugin device by virtual method
|
||||||
|
00000000000i[DEV ] PIIX3 PCI IDE controller present at device 1, function 1
|
||||||
|
00000000000i[PLUGIN] init_dev of 'harddrv' plugin device by virtual method
|
||||||
|
00000000000i[HD ] HD on ata0-0: './myOSimage.img', 'flat' mode
|
||||||
|
00000000000i[IMG ] hd_size: 67108864
|
||||||
|
00000000000i[HD ] ata0-0: autodetect geometry: CHS=130/16/63 (sector size=512)
|
||||||
|
00000000000i[HD ] ata0-0: extra data outside of CHS address range
|
||||||
|
00000000000i[HD ] translation on ata0-0 set to 'none'
|
||||||
|
00000000000i[PLUGIN] init_dev of 'unmapped' plugin device by virtual method
|
||||||
|
00000000000i[PLUGIN] init_dev of 'biosdev' plugin device by virtual method
|
||||||
|
00000000000i[PLUGIN] init_dev of 'speaker' plugin device by virtual method
|
||||||
|
00000000000e[PCSPK ] Failed to open /dev/console: 許可がありません
|
||||||
|
00000000000e[PCSPK ] Deactivating beep on console
|
||||||
|
00000000000i[PLUGIN] init_dev of 'extfpuirq' plugin device by virtual method
|
||||||
|
00000000000i[PLUGIN] init_dev of 'parallel' plugin device by virtual method
|
||||||
|
00000000000i[PAR ] parallel port 1 at 0x0378 irq 7
|
||||||
|
00000000000i[PLUGIN] init_dev of 'serial' plugin device by virtual method
|
||||||
|
00000000000i[SER ] com1 at 0x03f8 irq 4 (mode: null)
|
||||||
|
00000000000i[PLUGIN] init_dev of 'iodebug' plugin device by virtual method
|
||||||
|
00000000000i[PLUGIN] register state of 'pci' plugin device by virtual method
|
||||||
|
00000000000i[PLUGIN] register state of 'pci2isa' plugin device by virtual method
|
||||||
|
00000000000i[PLUGIN] register state of 'cmos' plugin device by virtual method
|
||||||
|
00000000000i[PLUGIN] register state of 'dma' plugin device by virtual method
|
||||||
|
00000000000i[PLUGIN] register state of 'pic' plugin device by virtual method
|
||||||
|
00000000000i[PLUGIN] register state of 'pit' plugin device by virtual method
|
||||||
|
00000000000i[PLUGIN] register state of 'vga' plugin device by virtual method
|
||||||
|
00000000000i[PLUGIN] register state of 'floppy' plugin device by virtual method
|
||||||
|
00000000000i[PLUGIN] register state of 'unmapped' plugin device by virtual method
|
||||||
|
00000000000i[PLUGIN] register state of 'biosdev' plugin device by virtual method
|
||||||
|
00000000000i[PLUGIN] register state of 'speaker' plugin device by virtual method
|
||||||
|
00000000000i[PLUGIN] register state of 'extfpuirq' plugin device by virtual method
|
||||||
|
00000000000i[PLUGIN] register state of 'parallel' plugin device by virtual method
|
||||||
|
00000000000i[PLUGIN] register state of 'serial' plugin device by virtual method
|
||||||
|
00000000000i[PLUGIN] register state of 'iodebug' plugin device by virtual method
|
||||||
|
00000000000i[PLUGIN] register state of 'acpi' plugin device by virtual method
|
||||||
|
00000000000i[PLUGIN] register state of 'hpet' plugin device by virtual method
|
||||||
|
00000000000i[PLUGIN] register state of 'ioapic' plugin device by virtual method
|
||||||
|
00000000000i[PLUGIN] register state of 'keyboard' plugin device by virtual method
|
||||||
|
00000000000i[PLUGIN] register state of 'pci_ide' plugin device by virtual method
|
||||||
|
00000000000i[PLUGIN] register state of 'harddrv' plugin device by virtual method
|
||||||
|
00000000000i[SYS ] bx_pc_system_c::Reset(HARDWARE) called
|
||||||
|
00000000000i[CPU0 ] cpu hardware reset
|
||||||
|
00000000000i[APIC0 ] allocate APIC id=0 (MMIO enabled) to 0x0000fee00000
|
||||||
|
00000000000i[CPU0 ] CPUID[0x00000000]: 0000000d 756e6547 6c65746e 49656e69
|
||||||
|
00000000000i[CPU0 ] CPUID[0x00000001]: 000206a7 00010800 079ae3bf afebfbff
|
||||||
|
00000000000i[CPU0 ] CPUID[0x00000002]: 76035a01 00f0b0ff 00000000 00ca0000
|
||||||
|
00000000000i[CPU0 ] CPUID[0x00000003]: 00000000 00000000 00000000 00000000
|
||||||
|
00000000000i[CPU0 ] CPUID[0x00000004]: 1c004121 01c0003f 0000003f 00000000
|
||||||
|
00000000000i[CPU0 ] CPUID[0x00000005]: 00000040 00000040 00000003 00001120
|
||||||
|
00000000000i[CPU0 ] CPUID[0x00000006]: 00000077 00000002 0000000b 00000000
|
||||||
|
00000000000i[CPU0 ] CPUID[0x00000007]: 00000000 00000000 00000000 00000000
|
||||||
|
00000000000i[CPU0 ] CPUID[0x00000008]: 00000000 00000000 00000000 00000000
|
||||||
|
00000000000i[CPU0 ] CPUID[0x00000009]: 00000000 00000000 00000000 00000000
|
||||||
|
00000000000i[CPU0 ] WARNING: Architectural Performance Monitoring is not implemented
|
||||||
|
00000000000i[CPU0 ] CPUID[0x0000000a]: 07300803 00000000 00000000 00000603
|
||||||
|
00000000000i[CPU0 ] CPUID[0x0000000b]: 00000000 00000000 00000000 00000000
|
||||||
|
00000000000i[CPU0 ] CPUID[0x0000000c]: 00000000 00000000 00000000 00000000
|
||||||
|
00000000000i[CPU0 ] CPUID[0x0000000d]: 00000003 00000240 00000240 00000000
|
||||||
|
00000000000i[CPU0 ] CPUID[0x80000000]: 80000008 00000000 00000000 00000000
|
||||||
|
00000000000i[CPU0 ] CPUID[0x80000001]: 00000000 00000000 00000001 28100000
|
||||||
|
00000000000i[CPU0 ] CPUID[0x80000002]: 20202020 49202020 6c65746e 20295228
|
||||||
|
00000000000i[CPU0 ] CPUID[0x80000003]: 65726f43 294d5428 2d376920 30303632
|
||||||
|
00000000000i[CPU0 ] CPUID[0x80000004]: 5043204b 20402055 30342e33 007a4847
|
||||||
|
00000000000i[CPU0 ] CPUID[0x80000005]: 00000000 00000000 00000000 00000000
|
||||||
|
00000000000i[CPU0 ] CPUID[0x80000006]: 00000000 00000000 01006040 00000000
|
||||||
|
00000000000i[CPU0 ] CPUID[0x80000007]: 00000000 00000000 00000000 00000100
|
||||||
|
00000000000i[CPU0 ] CPUID[0x80000008]: 00003028 00000200 00000000 00000000
|
||||||
|
00000000000i[CPU0 ] CPU Features supported:
|
||||||
|
00000000000i[CPU0 ] x87
|
||||||
|
00000000000i[CPU0 ] 486ni
|
||||||
|
00000000000i[CPU0 ] pentium_ni
|
||||||
|
00000000000i[CPU0 ] p6ni
|
||||||
|
00000000000i[CPU0 ] mmx
|
||||||
|
00000000000i[CPU0 ] debugext
|
||||||
|
00000000000i[CPU0 ] vme
|
||||||
|
00000000000i[CPU0 ] pse
|
||||||
|
00000000000i[CPU0 ] pae
|
||||||
|
00000000000i[CPU0 ] pge
|
||||||
|
00000000000i[CPU0 ] mtrr
|
||||||
|
00000000000i[CPU0 ] pat
|
||||||
|
00000000000i[CPU0 ] sysenter_sysexit
|
||||||
|
00000000000i[CPU0 ] clflush
|
||||||
|
00000000000i[CPU0 ] sse
|
||||||
|
00000000000i[CPU0 ] sse2
|
||||||
|
00000000000i[CPU0 ] sse3
|
||||||
|
00000000000i[CPU0 ] ssse3
|
||||||
|
00000000000i[CPU0 ] sse4_1
|
||||||
|
00000000000i[CPU0 ] sse4_2
|
||||||
|
00000000000i[CPU0 ] popcnt
|
||||||
|
00000000000i[CPU0 ] mwait
|
||||||
|
00000000000i[CPU0 ] longmode
|
||||||
|
00000000000i[CPU0 ] lm_lahf_sahf
|
||||||
|
00000000000i[CPU0 ] nx
|
||||||
|
00000000000i[CPU0 ] cmpxhg16b
|
||||||
|
00000000000i[CPU0 ] rdtscp
|
||||||
|
00000000000i[CPU0 ] xsave
|
||||||
|
00000000000i[CPU0 ] xsaveopt
|
||||||
|
00000000000i[CPU0 ] aes_pclmulqdq
|
||||||
|
00000000000i[CPU0 ] vmx
|
||||||
|
00000000000i[CPU0 ] xapic
|
||||||
|
00000000000i[CPU0 ] pcid
|
||||||
|
00000000000i[CPU0 ] tsc_deadline
|
||||||
|
00000000000i[PLUGIN] reset of 'pci' plugin device by virtual method
|
||||||
|
00000000000i[PLUGIN] reset of 'pci2isa' plugin device by virtual method
|
||||||
|
00000000000i[PLUGIN] reset of 'cmos' plugin device by virtual method
|
||||||
|
00000000000i[PLUGIN] reset of 'dma' plugin device by virtual method
|
||||||
|
00000000000i[PLUGIN] reset of 'pic' plugin device by virtual method
|
||||||
|
00000000000i[PLUGIN] reset of 'pit' plugin device by virtual method
|
||||||
|
00000000000i[PLUGIN] reset of 'vga' plugin device by virtual method
|
||||||
|
00000000000i[DDC ] Using default EDID for resolution 1920x1200
|
||||||
|
00000000000i[PLUGIN] reset of 'floppy' plugin device by virtual method
|
||||||
|
00000000000i[PLUGIN] reset of 'acpi' plugin device by virtual method
|
||||||
|
00000000000i[PLUGIN] reset of 'hpet' plugin device by virtual method
|
||||||
|
00000000000i[PLUGIN] reset of 'ioapic' plugin device by virtual method
|
||||||
|
00000000000i[PLUGIN] reset of 'keyboard' plugin device by virtual method
|
||||||
|
00000000000i[PLUGIN] reset of 'pci_ide' plugin device by virtual method
|
||||||
|
00000000000i[PLUGIN] reset of 'harddrv' plugin device by virtual method
|
||||||
|
00000000000i[PLUGIN] reset of 'unmapped' plugin device by virtual method
|
||||||
|
00000000000i[PLUGIN] reset of 'biosdev' plugin device by virtual method
|
||||||
|
00000000000i[PLUGIN] reset of 'speaker' plugin device by virtual method
|
||||||
|
00000000000i[PLUGIN] reset of 'extfpuirq' plugin device by virtual method
|
||||||
|
00000000000i[PLUGIN] reset of 'parallel' plugin device by virtual method
|
||||||
|
00000000000i[PLUGIN] reset of 'serial' plugin device by virtual method
|
||||||
|
00000000000i[PLUGIN] reset of 'iodebug' plugin device by virtual method
|
||||||
|
00000055493i[ACPI ] new PM base address: 0xb000
|
||||||
|
00000055938i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00000056097i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00000056270i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00000056429i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00000056598i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00000056757i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00000056929i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00000057088i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00000057261i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00000057420i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00000057589i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00000057748i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00000057919i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00000058078i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00404699010i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00404699261i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00404699420i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00404699586i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00404699747i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00404699909e[CPU0 ] RDMSR: Unknown register 0x17
|
||||||
|
00404701729i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00404701888i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00404702065i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00404702224i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00404702404i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00404702563i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00404702739i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00404702898i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00404703078i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00404703237i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00404703414i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00404703573i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00404706952i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00404707111i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00404707287i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00404707446i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00404707627i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00404707786i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00404707962i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00404708121i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00404708293i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00404708452i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00404708665i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00404708836i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00404749196i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00404749367i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00404750562i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00404750733i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00404953225i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00404955765i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00404956646i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00404957662i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00404957821i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00404957987i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00404958148i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00404959043i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00404959921i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00404960937i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00404961096i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00404961262i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00404961423i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00404962673i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00455692544i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00455721201i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00455721452i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00455721612i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00455721802i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00455721963i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00455722125e[CPU0 ] RDMSR: Unknown register 0x17
|
||||||
|
00455727961i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00455728121i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00455728322i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00455728482i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00455728686i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00455728846i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00455729046i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00455729206i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00455729410i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00455729570i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00455729771i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00455729931i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00455731779i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00455731939i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00455732129i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00455732290i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00455733787i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00455733947i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00455734137i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00455734298i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00461046195i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00461046350i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00461046524i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00461046679i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00461047124i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00461047279i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00461047448i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00461047603i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00461047777i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00461047932i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00461047952i[APIC0 ] set timer divide factor to 1
|
||||||
|
00461048098i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00461048253i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00461048427i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00461048582i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00461048753i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00461048908i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00461049074i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00461049229i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00461049402i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00461049557i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00471049475i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00471049630i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00477485335e[CMOS ] write to control register 0x0d ignored (read-only)
|
||||||
|
00481049475i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00481049630i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00491049475i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00491049630i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00501049476i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00501049631i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00511049475i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00511049630i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00521049475i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00521049630i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00531049476i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00531049631i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00541049476i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00541049631i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00550634745i[PIDE ] BAR #4: i/o base address = 0xc000
|
||||||
|
00550635289i[MEM0 ] Register memory access handlers: 0x000080000000 - 0x000080ffffff
|
||||||
|
00550635289i[BXVGA ] BAR #0: mem base address = 0x80000000
|
||||||
|
00550637278i[MEM0 ] Register memory access handlers: 0x000081000000 - 0x00008100ffff
|
||||||
|
00550637278i[BXVGA ] new ROM address = 0x81000000
|
||||||
|
00551049475i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00551049630i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00556732034i[SER ] com1: FIFO enabled
|
||||||
|
00558548658i[SER ] com1: FIFO enabled
|
||||||
|
00561049475i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00561049630i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00562088041i[KBD ] Switched to scancode set 2
|
||||||
|
00571052468i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00571052623i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00581052467i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00581052622i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00581767851i[P2ISA ] PCI IRQ routing: PIRQA# set to 0x0a
|
||||||
|
00581767938i[P2ISA ] PCI IRQ routing: PIRQB# set to 0x0a
|
||||||
|
00581768025i[P2ISA ] PCI IRQ routing: PIRQC# set to 0x0b
|
||||||
|
00581768112i[P2ISA ] PCI IRQ routing: PIRQD# set to 0x0b
|
||||||
|
00591052467i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00591052622i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00601052467i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00601052622i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00611053746i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00611053901i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00621053540i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00621053695i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00631052467i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00631052622i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00641052467i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00641052622i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00651052467i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00651052622i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00661053540i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00661053695i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00671052467i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00671052622i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00681052467i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00681052622i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00691053746i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00691053901i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00701053540i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00701053695i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00711053746i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00711053901i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00721052468i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00721052623i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00731052468i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00731052623i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00741058328i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00741058483i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00751053746i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00751053901i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00761053540i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00761053695i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00764170096i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00764170251i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00764170425i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
00764170580i[CPU0 ] RDMSR: Read 00000000:fee00900 from MSR_APICBASE
|
||||||
|
02367208064p[IOAPIC] >>PANIC<< I/O APIC read at address 0x0000fec00008 spans 32-bit boundary !
|
||||||
|
02367208064i[CPU0 ] CPU is in long mode (active)
|
||||||
|
02367208064i[CPU0 ] CS.mode = 64 bit
|
||||||
|
02367208064i[CPU0 ] SS.mode = 64 bit
|
||||||
|
02367208064i[CPU0 ] EFER = 0x00000d00: ffxsr NXE LMA LME sce
|
||||||
|
02367208064i[CPU0 ] XCR0=0x00000001: tiledata tilecfg hwp lbr uintr hdc cet_s cet_u pasid pkru pt hi_zmm zmm_hi256 opmask bndcfg bndregs ymm sse FPU
|
||||||
|
02367208064i[CPU0 ] | RAX=0000000000000000 RBX=0000000000232188
|
||||||
|
02367208064i[CPU0 ] | RCX=ffffffffffffffff RDX=00000000fec00000
|
||||||
|
02367208064i[CPU0 ] | RSP=0000000000232060 RBP=000000000fd7e518
|
||||||
|
02367208064i[CPU0 ] | RSI=ffffffffffffffff RDI=0000000000232188
|
||||||
|
02367208064i[CPU0 ] | R8=0000000000000000 R9=0000000000000001
|
||||||
|
02367208064i[CPU0 ] | R10=0000000000000000 R11=0000000000000002
|
||||||
|
02367208064i[CPU0 ] | R12=0000000000000000 R13=0000000000000000
|
||||||
|
02367208064i[CPU0 ] | R14=00000000002320c0 R15=00000000001297e0
|
||||||
|
02367208064i[CPU0 ] | EFLAGS=00000087: id vip vif ac vm rf nt IOPL=0 of df if tf SF zf af PF CF
|
||||||
|
02367208064i[CPU0 ] | SEG sltr(index|ti|rpl) base limit G D
|
||||||
|
02367208064i[CPU0 ] | CS:0008( 0001| 0| 0) 00000000 ffffffff 1 0
|
||||||
|
02367208064i[CPU0 ] | DS:0010( 0002| 0| 0) 00000000 ffffffff 1 1
|
||||||
|
02367208064i[CPU0 ] | SS:0010( 0002| 0| 0) 00000000 ffffffff 1 1
|
||||||
|
02367208064i[CPU0 ] | ES:0010( 0002| 0| 0) 00000000 ffffffff 1 1
|
||||||
|
02367208064i[CPU0 ] | FS:0010( 0002| 0| 0) 00000000 ffffffff 1 1
|
||||||
|
02367208064i[CPU0 ] | GS:0010( 0002| 0| 0) 00000000 ffffffff 1 1
|
||||||
|
02367208064i[CPU0 ] | MSR_FS_BASE:0000000000000000
|
||||||
|
02367208064i[CPU0 ] | MSR_GS_BASE:0000000000000000
|
||||||
|
02367208064i[CPU0 ] | RIP=0000000000110ed5 (0000000000110ed0)
|
||||||
|
02367208064i[CPU0 ] | CR0=0x80010033: PG cd nw ac WP NE ET ts em MP PE
|
||||||
|
02367208064i[CPU0 ] | CR2=0x0000000000000000
|
||||||
|
02367208064i[CPU0 ] | CR3=0x000000000fa01000
|
||||||
|
02367208064i[CPU0 ] | CR4=0x00000668: lass uintr pks cet pke smap smep keylock osxsave pcid fsgsbase smx vmx la57 umip OSXMMEXCPT OSFXSR pce pge MCE PAE pse DE tsd pvi vme
|
||||||
|
02367208064i[CPU0 ] 0x0000000000110ed0>> mov rsi, qword ptr ds:[r13+rdx+8] : 498B741508
|
||||||
|
02367208064i[CMOS ] Last time: 1755875601 tz=utc (Fri Aug 22 15:13:21 2025)
|
||||||
|
02367208064i[ ] restoring default signal behavior
|
||||||
|
02367208064i[SIM ] quit_sim called with exit code 1
|
20
nel_os_bootloader/bochsrc
Normal file
20
nel_os_bootloader/bochsrc
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
# ---- 画面/入力 ----
|
||||||
|
display_library: sdl2
|
||||||
|
vga: extension=cirrus
|
||||||
|
pci: enabled=1, chipset=i440fx, slot1=pcivga
|
||||||
|
vgaromimage: file=$BXSHARE/VGABIOS-lgpl-latest-cirrus.bin
|
||||||
|
|
||||||
|
romimage: file="./OVMF-pure-efi.fd", address=0x0, options=none
|
||||||
|
|
||||||
|
# ---- メモリ/CPU ----
|
||||||
|
memory: guest=256
|
||||||
|
cpu: count=1, model=corei7_sandy_bridge_2600k, reset_on_triple_fault=1
|
||||||
|
|
||||||
|
# ---- ストレージ(UEFI ESP を作った “本物のディスク” )----
|
||||||
|
ata0: enabled=1
|
||||||
|
ata0-master: type=disk, mode=flat, path="./myOSimage.img", status=inserted
|
||||||
|
boot: disk
|
||||||
|
|
||||||
|
# ---- ログ ----
|
||||||
|
log: bochs.out
|
||||||
|
|
BIN
nel_os_bootloader/esp/NvVars
Normal file
BIN
nel_os_bootloader/esp/NvVars
Normal file
Binary file not shown.
0
nel_os_bootloader/esp/vvfat_attr.cfg
Normal file
0
nel_os_bootloader/esp/vvfat_attr.cfg
Normal file
BIN
nel_os_bootloader/myOSimage.img
Normal file
BIN
nel_os_bootloader/myOSimage.img
Normal file
Binary file not shown.
@ -131,9 +131,20 @@ fn load_elf(bin: Box<[u8]>) -> u64 {
|
|||||||
elf.entry
|
elf.entry
|
||||||
}
|
}
|
||||||
|
|
||||||
fn get_frame_buffer() -> gop::FrameBuffer {
|
fn get_frame_buffer() -> Option<gop::FrameBuffer> {
|
||||||
let gop_handle = uefi::boot::get_handle_for_protocol::<GraphicsOutput>().unwrap();
|
let gop_handle = if let Ok(gop_handle) = uefi::boot::get_handle_for_protocol::<GraphicsOutput>()
|
||||||
let mut gop = boot::open_protocol_exclusive::<GraphicsOutput>(gop_handle).unwrap();
|
{
|
||||||
|
gop_handle
|
||||||
|
} else {
|
||||||
|
println!("GraphicsOutput protocol not found");
|
||||||
|
return None;
|
||||||
|
};
|
||||||
|
let mut gop = if let Ok(gop) = boot::open_protocol_exclusive::<GraphicsOutput>(gop_handle) {
|
||||||
|
gop
|
||||||
|
} else {
|
||||||
|
println!("Failed to open GraphicsOutput protocol");
|
||||||
|
return None;
|
||||||
|
};
|
||||||
|
|
||||||
let info = gop.current_mode_info();
|
let info = gop.current_mode_info();
|
||||||
let (width, height) = info.resolution();
|
let (width, height) = info.resolution();
|
||||||
@ -141,7 +152,7 @@ fn get_frame_buffer() -> gop::FrameBuffer {
|
|||||||
let stride = info.stride();
|
let stride = info.stride();
|
||||||
let pixel_format = info.pixel_format();
|
let pixel_format = info.pixel_format();
|
||||||
|
|
||||||
gop::FrameBuffer {
|
Some(gop::FrameBuffer {
|
||||||
frame_buffer,
|
frame_buffer,
|
||||||
width,
|
width,
|
||||||
height,
|
height,
|
||||||
@ -151,15 +162,15 @@ fn get_frame_buffer() -> gop::FrameBuffer {
|
|||||||
PixelFormat::Bgr => gop::PixelFormat::Bgr,
|
PixelFormat::Bgr => gop::PixelFormat::Bgr,
|
||||||
format => panic!("Unsupported pixel_format: {:?}", format),
|
format => panic!("Unsupported pixel_format: {:?}", format),
|
||||||
},
|
},
|
||||||
}
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
fn get_rsdp() -> u64 {
|
fn get_rsdp() -> Option<u64> {
|
||||||
uefi::system::with_config_table(move |c| {
|
uefi::system::with_config_table(move |c| {
|
||||||
c.iter()
|
c.iter()
|
||||||
.find(|config| config.guid == uefi::table::cfg::ACPI_GUID)
|
.find(|config| config.guid == uefi::table::cfg::ACPI_GUID)
|
||||||
.map(|config| config.address as u64)
|
.map(|config| config.address as u64)
|
||||||
.expect("Failed to find RSDP in config table")
|
.or(None)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
6
nel_os_bootloader/update_img.sh
Executable file
6
nel_os_bootloader/update_img.sh
Executable file
@ -0,0 +1,6 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
cargo b -r
|
||||||
|
sudo mount /dev/loop0 /mnt
|
||||||
|
sudo cp ./target/x86_64-unknown-uefi/release/nel_os_bootloader.efi /mnt/EFI/BOOT/BOOTX64.EFI
|
||||||
|
sudo sync
|
||||||
|
sudo umount /mnt
|
@ -7,8 +7,8 @@ pub mod memory;
|
|||||||
|
|
||||||
pub struct BootInfo {
|
pub struct BootInfo {
|
||||||
pub usable_memory: UsableMemory,
|
pub usable_memory: UsableMemory,
|
||||||
pub frame_buffer: FrameBuffer,
|
pub frame_buffer: Option<FrameBuffer>,
|
||||||
pub rsdp: u64,
|
pub rsdp: Option<u64>,
|
||||||
pub bzimage_addr: u64,
|
pub bzimage_addr: u64,
|
||||||
pub bzimage_size: u64,
|
pub bzimage_size: u64,
|
||||||
pub rootfs_addr: u64,
|
pub rootfs_addr: u64,
|
||||||
|
@ -82,6 +82,8 @@ fn hlt_loop() -> ! {
|
|||||||
|
|
||||||
#[unsafe(no_mangle)]
|
#[unsafe(no_mangle)]
|
||||||
pub extern "sysv64" fn main(boot_info: &nel_os_common::BootInfo) {
|
pub extern "sysv64" fn main(boot_info: &nel_os_common::BootInfo) {
|
||||||
|
serial::disable_screen_output();
|
||||||
|
|
||||||
interrupt::gdt::init();
|
interrupt::gdt::init();
|
||||||
interrupt::idt::init_idt();
|
interrupt::idt::init_idt();
|
||||||
|
|
||||||
@ -126,10 +128,15 @@ pub extern "sysv64" fn main(boot_info: &nel_os_common::BootInfo) {
|
|||||||
|
|
||||||
allocator::init_heap(&mut mapper, &mut bitmap_table).unwrap();
|
allocator::init_heap(&mut mapper, &mut bitmap_table).unwrap();
|
||||||
|
|
||||||
let frame_buffer = FrameBuffer::from_raw_buffer(&boot_info.frame_buffer, (64, 64, 64));
|
if boot_info.frame_buffer.is_some() {
|
||||||
frame_buffer.clear();
|
let frame_buffer =
|
||||||
|
FrameBuffer::from_raw_buffer(&boot_info.frame_buffer.as_ref().unwrap(), (64, 64, 64));
|
||||||
|
frame_buffer.clear();
|
||||||
|
|
||||||
FRAME_BUFFER.lock().replace(frame_buffer);
|
FRAME_BUFFER.lock().replace(frame_buffer);
|
||||||
|
} else {
|
||||||
|
error!("No frame buffer found");
|
||||||
|
}
|
||||||
|
|
||||||
println!("");
|
println!("");
|
||||||
info!("Kernel initialized successfully");
|
info!("Kernel initialized successfully");
|
||||||
@ -150,20 +157,20 @@ pub extern "sysv64" fn main(boot_info: &nel_os_common::BootInfo) {
|
|||||||
usable_frame as f64 * 4. / 1024. / 1024.
|
usable_frame as f64 * 4. / 1024. / 1024.
|
||||||
);
|
);
|
||||||
|
|
||||||
info!("RSDP: {:#x}", boot_info.rsdp);
|
if let Some(rsdp) = boot_info.rsdp {
|
||||||
|
info!("RSDP: {:#x}", rsdp);
|
||||||
|
|
||||||
let acpi_tables =
|
let acpi_tables =
|
||||||
unsafe { AcpiTables::from_rsdp(KernelAcpiHandler, boot_info.rsdp as usize) }.unwrap();
|
unsafe { AcpiTables::from_rsdp(KernelAcpiHandler, rsdp as usize) }.unwrap();
|
||||||
let platform_info = acpi_tables.platform_info().unwrap();
|
let platform_info = acpi_tables.platform_info().unwrap();
|
||||||
|
|
||||||
apic::init_local_apic(platform_info);
|
apic::init_local_apic(platform_info);
|
||||||
info!("Local APIC initialized",);
|
info!("Local APIC initialized",);
|
||||||
|
|
||||||
x86_64::instructions::interrupts::enable();
|
x86_64::instructions::interrupts::enable();
|
||||||
|
|
||||||
info!("Interrupts enabled");
|
info!("Interrupts enabled");
|
||||||
|
}
|
||||||
serial::disable_screen_output();
|
|
||||||
|
|
||||||
BZIMAGE_ADDR.call_once(|| boot_info.bzimage_addr);
|
BZIMAGE_ADDR.call_once(|| boot_info.bzimage_addr);
|
||||||
BZIMAGE_SIZE.call_once(|| boot_info.bzimage_size);
|
BZIMAGE_SIZE.call_once(|| boot_info.bzimage_size);
|
||||||
|
Reference in New Issue
Block a user