Pure64 v0.7.0

This forums is for OS project announcements including project openings, new releases, update notices, test requests, and job openings (both paying and volunteer).
pierrel5
Posts: 11
Joined: Wed Feb 16, 2011 6:19 pm

Re: Pure64 v0.4.8

Post 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
fragus
Posts: 8
Joined: Tue Jan 06, 2009 3:07 pm

Re: Pure64 v0.4.8

Post 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
User avatar
IanSeyler
Member
Member
Posts: 326
Joined: Mon Jul 28, 2008 9:46 am
Location: Ontario, Canada
Contact:

Re: Pure64 v0.4.8

Post 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.
BareMetal OS - http://www.returninfinity.com/
Mono-tasking 64-bit OS for x86-64 based computers, written entirely in Assembly
fragus
Posts: 8
Joined: Tue Jan 06, 2009 3:07 pm

Re: Pure64 v0.4.8

Post 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
fragus
Posts: 8
Joined: Tue Jan 06, 2009 3:07 pm

Re: Pure64 v0.4.8

Post 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.
User avatar
IanSeyler
Member
Member
Posts: 326
Joined: Mon Jul 28, 2008 9:46 am
Location: Ontario, Canada
Contact:

Re: Pure64 v0.4.8

Post 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.
BareMetal OS - http://www.returninfinity.com/
Mono-tasking 64-bit OS for x86-64 based computers, written entirely in Assembly
User avatar
IanSeyler
Member
Member
Posts: 326
Joined: Mon Jul 28, 2008 9:46 am
Location: Ontario, Canada
Contact:

Re: Pure64 v0.4.8

Post 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
BareMetal OS - http://www.returninfinity.com/
Mono-tasking 64-bit OS for x86-64 based computers, written entirely in Assembly
fragus
Posts: 8
Joined: Tue Jan 06, 2009 3:07 pm

Re: Pure64 v0.4.8

Post 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)
User avatar
IanSeyler
Member
Member
Posts: 326
Joined: Mon Jul 28, 2008 9:46 am
Location: Ontario, Canada
Contact:

Re: Pure64 v0.4.8

Post 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
BareMetal OS - http://www.returninfinity.com/
Mono-tasking 64-bit OS for x86-64 based computers, written entirely in Assembly
fragus
Posts: 8
Joined: Tue Jan 06, 2009 3:07 pm

Re: Pure64 v0.4.8

Post by fragus »

ReturnInfinity wrote:What is displayed in the top right of the screen before the i3/i5/i7 crashes?
Number 22.
User avatar
IanSeyler
Member
Member
Posts: 326
Joined: Mon Jul 28, 2008 9:46 am
Location: Ontario, Canada
Contact:

Re: Pure64 v0.4.8

Post 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?
BareMetal OS - http://www.returninfinity.com/
Mono-tasking 64-bit OS for x86-64 based computers, written entirely in Assembly
fragus
Posts: 8
Joined: Tue Jan 06, 2009 3:07 pm

Re: Pure64 v0.4.8

Post 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.
fragus
Posts: 8
Joined: Tue Jan 06, 2009 3:07 pm

Re: Pure64 v0.4.8

Post 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:
fragus
Posts: 8
Joined: Tue Jan 06, 2009 3:07 pm

Re: Pure64 v0.4.8

Post 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!
User avatar
IanSeyler
Member
Member
Posts: 326
Joined: Mon Jul 28, 2008 9:46 am
Location: Ontario, Canada
Contact:

Re: Pure64 v0.4.9

Post 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.
BareMetal OS - http://www.returninfinity.com/
Mono-tasking 64-bit OS for x86-64 based computers, written entirely in Assembly
Post Reply