Page 3 of 4

Re: Pure64 v0.4.8

Posted: Wed Feb 16, 2011 6:29 pm
by pierrel5
Thank you for this project.

I have just terminated an os in 32 bits mode and I will be interested to port it on 64 bits.
My os use graphical gui, and use usb key as main drive (accedded via bios) so the main problem will be to set vesa modes and develop usb stack. But your project will help me a lot :D

Re: Pure64 v0.4.8

Posted: Tue Mar 22, 2011 7:05 am
by fragus
Thank you for update.
It works on real hardware and QEMU, but there is a problem with VMWare.

Code: Select all

Pure64 v0.4.8 - http://www.returninfinity.com                              A28

Initializing system...
Pure64 - Interrupt 13 - General Protection Exception (#GP)
A:00000000000002A4  B:0000000043495034   C:0000000000000000  D:000000000000000A
SI:00000000000095C4 DI:0000000000009748 BP:0000000000000000 SP:0000000000007F38
8:0000000000000000  9:0000000000000000 10:0000000000000000 11:0000000000000000
12:000000000000000 13:0000000000000000 14:0000000000000000 15:0000000000000001

Re: Pure64 v0.4.8

Posted: Tue Mar 22, 2011 11:49 am
by IanSeyler
That issue is happening somewhere in the MP initialization.

What version of VMware were you using? I'll try to reproduce the issue.

Re: Pure64 v0.4.8

Posted: Wed Mar 23, 2011 12:36 pm
by fragus
ReturnInfinity wrote: What version of VMware were you using? I'll try to reproduce the issue.
VMWare Workstation 7.1.3 build-324285

Re: Pure64 v0.4.8

Posted: Thu Mar 24, 2011 8:38 am
by fragus
Additional testing results:

1. On two laptops with Intel Core i5 and i3 cpus: reboot after instruction
mov cr0, eax (Set protected mode bit) omg why? :(
(pure64 v0.4.5 - fine, but no SMP)

2. Intel Atom N450 (x86-64 supported) netbook: the same problem as on VMWare - interrupt 13 while SMP init.

3. QEMU - fine.

4. AMD Athlon x2 cpu- fine.

I've seen source code, but I don't know how to fix it at the moment.
Thank you. I hope this helps.

Re: Pure64 v0.4.8

Posted: Thu Mar 24, 2011 10:25 am
by IanSeyler
I see the same error on my end with VMware. It looks like it is causing the GP fault during the parsing of the ACPI tables. I'm looking into it.

Re: Pure64 v0.4.8

Posted: Thu Mar 24, 2011 11:29 am
by IanSeyler
Issue has been fixed in the latest SVN: http://code.google.com/p/pure64/source/ ... p_acpi.asm

The magic difference between "shr eax, 2" (Divide by 4) and "shr eax, 3" (Divide by 8 ).

It works now under VMware. However when BareMetal OS loads it doesn't accept keystrokes. Looks like the interrupt does not fire.

Please try this on the Core i3/i5 as well as I would like to know if it works now.

-Ian

Re: Pure64 v0.4.8

Posted: Thu Mar 24, 2011 2:26 pm
by fragus
ReturnInfinity wrote: It works now under VMware.
Ok, thx)
Please try this on the Core i3/i5 as well as I would like to know if it works now.
The same bug (0.4.9-dev)

Re: Pure64 v0.4.8

Posted: Thu Mar 24, 2011 8:42 pm
by IanSeyler
What is displayed in the top right of the screen before the i3/i5/i7 crashes?

I'm wondering if the BSP is crashing during the jump to 64-bit mode on those systems.

Thanks,
- Ian Seyler

Re: Pure64 v0.4.8

Posted: Fri Mar 25, 2011 5:14 am
by fragus
ReturnInfinity wrote:What is displayed in the top right of the screen before the i3/i5/i7 crashes?
Number 22.

Re: Pure64 v0.4.8

Posted: Fri Mar 25, 2011 8:27 am
by IanSeyler
hmm.. That is right before interrupt table is built. Not sure what would be causing that but we will look into it. Can you meet us on the BareMetal OS IRC channel?

Re: Pure64 v0.4.8

Posted: Sat Mar 26, 2011 5:31 am
by fragus
ReturnInfinity wrote:hmm.. That is right before interrupt table is built. Not sure what would be causing that but we will look into it. Can you meet us on the BareMetal OS IRC channel?
I think so.

Re: Pure64 v0.4.8

Posted: Mon Mar 28, 2011 12:21 pm
by fragus
Additional i5 testing:

I've finally figured out what's causing reboot on that machine. I've added on the start of "isa_setup" procedure additional instruction "jmp set_A20", so I've skipped part of the code, and it works now.

But, now there is another problem. HD init fails, number in the right top corner of the screen is 26.

Code: Select all

; INIT ISA
; =============================================================================


isa_setup:
jmp set_A20                                                               ; <-- here
; Get the BIOS E820 Memory Map
; use the INT 0x15, eax= 0xE820 BIOS function to get a memory map
; inputs: es:di -> destination buffer for 24 byte entries
; outputs: bp = entry count, trashes all registers except esi
do_e820:

Re: Pure64 v0.4.8

Posted: Tue Mar 29, 2011 1:25 pm
by fragus
fragus wrote: But, now there is another problem. HD init fails, number in the right top corner of the screen is 26.
Sorry, there is no more problems with pure64. Thats because bios doesn't support HDD USB flash emulation on my laptop.
There is probably e820 bug in the bios (Phoenix SecureCore Tiano).

Thank you!

Re: Pure64 v0.4.9

Posted: Thu May 05, 2011 1:17 pm
by IanSeyler
Version 0.4.9 is out now.

- Better SMP support
- Ability to set a VESA graphics mode (Set at compile time). Information (Base memory address, screen width and height) is stored in the Info map.
- Code optimizations (The pure64.sys binary is only 6KiB compared to the last version at 10KiB)
- Included a stub "boot sector" for PXE booting.