Jump to content
spakk

TASK FORCE - [AMD] to missing SSE4.1 Instruction set - older CPUs on macOS Sierra (10.12.x)

270 posts in this topic

Recommended Posts

I am just building the kernel and will report later

I will now check this kernel with my CPU and report later

 

Edit:

I've made a video and will upload it later

AMD10.12.6-SSE4.1.zip

Udis86-SSE4.1_20171022_014331.jpg

Share this post


Link to post
Share on other sites
Advertisement

I am just building the kernel and will report later

I will now check this kernel with my CPU and report later

 

Edit:

I've made a video and will upload it later

None of these instructions is sse4.1.  I turned on printing for all instructions executed by opemu.  You may selectively print to see boot messages.

Share this post


Link to post
Share on other sites

None of these instructions is sse4.1.  I turned on printing for all instructions executed by opemu.  You may selectively print to see boot messages.

I'll look where I made the mistake

Share this post


Link to post
Share on other sites

None of these instructions is sse4.1. I turned on printing for all instructions executed by opemu. You may selectively print to see boot messages.

I managed to boot into single user mode. Can I do something useful there?

post-1299088-0-61561000-1508793181_thumb.jpg

Share this post


Link to post
Share on other sites

what a mainboard you have?

Share this post


Link to post
Share on other sites

Asrock N68C-S USS

 

Now I stuck at this point:

attachicon.gifIMG_1928.JPG

The cursor doesn't respond to my USB mouse but USB keyboard seems to be working.

 

1. can not find information to your controller, start systeminfo.app or dpci-manager.app and see which controller is installed

2. or put this into org.chanmeleon.boot.plist, may it can help?

    USBBusFix

    Yes

 

3. if possible boot with -v -f or with -s ..etc

 

4. Which drivers are in extra/extensions?

Share this post


Link to post
Share on other sites

I do not think so now, but we can hope soon :)

Share this post


Link to post
Share on other sites

do you have solved the problem ?

Share this post


Link to post
Share on other sites

do you have solved the problem ?

I guess there is a bug somewhere in opemu, probably in sse41.c. I added printf in sse41.c and the kernel started working and it doesn't matter what to put in printf, it will work while printf is there. Here is some reference to that https://stackoverflow.com/questions/6079865/why-does-a-printf-stop-a-crash-from-occuring/6079878#6079878

 

and here is my test kernel. i put dots in printf in it to be able to see other print

kernel.zip

Share this post


Link to post
Share on other sites

I guess there is a bug somewhere in opemu, probably in sse41.c. I added printf in sse41.c and the kernel started working and it doesn't matter what to put in printf, it will work while printf is there. Here is some reference to that https://stackoverflow.com/questions/6079865/why-does-a-printf-stop-a-crash-from-occuring/6079878#6079878

 

and here is my test kernel. i put dots in printf in it to be able to see other print

so now it stops at this endless loop with Opemu: UD2 error.

What changes you have made?

Opemu..Ud2  20171024_200016.jpg

Share this post


Link to post
Share on other sites

so now it stops at this endless loop with Opemu: UD2 error.

What changes you have made?

I've used ydeng's patch and added printf in op_see41_run. That's all :D

and printf should be disabled in other places in opemu because it will get a kernel panic if it isn't.

Share this post


Link to post
Share on other sites

I think it has something to do with the graphics card

 

Edit:

this is my test result

1___20171026_014102.jpg

2___20171026_014106.jpg

Share this post


Link to post
Share on other sites

I've used ydeng's patch and added printf in op_see41_run. That's all :D

and printf should be disabled in other places in opemu because it will get a kernel panic if it isn't.

Where did you put the printf exactly?  I see a whole bunch of sse4.1 instructions on your single user mode boot screen.  There is some strange side effect going on.

Share this post


Link to post
Share on other sites

Where did you put the printf exactly?  I see a whole bunch of sse4.1 instructions on your single user mode boot screen.  There is some strange side effect going on.

i put it just above of switch statement of mnemonic.

Share this post


Link to post
Share on other sites

Do you have the full log of single user mode?

this is correct, you can boot only with "single user mode", every other input goes into a kernel panic

sory, a misunderstanding ;)

 

Edit:

but the information that "AXAXAXAXAXAX" has made regarding printf () in sse41.c, can not be alone, there must be other changes in the source. he should check the source again

I do not get the same effect with the changes as the last kernel from "AXAXAXAXAXAX" , therefore there must be something else changed.

Share this post


Link to post
Share on other sites

Do you have the full log of single user mode?

post-1299088-0-38041900-1509026658_thumb.png

post-1299088-0-41148400-1509026676_thumb.png

post-1299088-0-29783900-1509026697_thumb.png

post-1299088-0-39880200-1509026713_thumb.png

post-1299088-0-95783600-1509026765_thumb.png

post-1299088-0-83361000-1509026796_thumb.png

post-1299088-0-55671600-1509026808_thumb.png

this is correct, you can boot only with "single user mode", every other input goes into a kernel panic

sory, a misunderstanding ;)

 

Edit:

but the information that "AXAXAXAXAXAX" has made regarding printf () in sse41.c, can not be alone, there must be other changes in the source. he should check the source again

I do not get the same effect with the changes as the last kernel from "AXAXAXAXAXAX" , therefore there must be something else changed.

I think only printf in sse41.c affected that. But I'll check it with clean sources and report later.

 

Edit:

I applied ydeng's patch onto sourses, commented printf in opemu_ktrap and opemu_utrap in opemu.c and enabled printf in op_sse41_run in sse41.c and built this kernel and it doesn't get kernel panic :)

kernel.zip

 

Share this post


Link to post
Share on other sites

attachicon.gifIMG_1961.PNG

attachicon.gifIMG_1962.PNG

attachicon.gifIMG_1964.PNG

attachicon.gifIMG_1965.PNG

attachicon.gifIMG_1966.PNG

attachicon.gifIMG_1967.PNG

attachicon.gifIMG_1969.PNG

 

I think only printf in sse41.c affected that. But I'll check it with clean sources and report later

This looks like some kind of race conditions.  The instructions are working.  But the results are committed  to xmm registers directly.  If something else happens between the trap return and thread continuation, content of xmm registers might be missed up.  Could you put printk the value of op_obj.ring0 as well?

Share this post


Link to post
Share on other sites

so the emulation is working right? we are close, but there is the need for some check for the results, or other wise the content of the xmm registers will not the rigth, If I have understood correctly

Share this post


Link to post
Share on other sites

This looks like some kind of race conditions.  The instructions are working.  But the results are committed  to xmm registers directly.  If something else happens between the trap return and thread continuation, content of xmm registers might be missed up.  Could you put printk the value of op_obj.ring0 as well?

It is always 0

post-1299088-0-44984700-1509063531_thumb.jpg

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By Sinn
      Hi
       
      After months again i want to install 10.10. I don't have old pendrive so i need to create new one. After created usb installation stick,change kernel and change some files in Extra folder i started to boot it up. Im stucked on "invalid kernel opcode (64 bit): 44 0f b6 1f 4c 8d 7f 01 41 83" What i shoud to do ? 
       
      AMD FX 8350
      Gigabyte Motherboard
      16 Gb of ram
      gtx 650ti
       
      Thanks in advance
×