qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] Problem running Sparc on OS X


From: Martin Bochnig
Subject: Re: [Qemu-devel] Problem running Sparc on OS X
Date: Mon, 24 Oct 2005 22:52:46 +0200
User-agent: Mozilla/5.0 (X11; U; SunOS sun4u; en-US; rv:1.7.5) Gecko/20050105

Bob Nestor wrote:

With his patch I get the console output from PROLL. I was actually able to boot the first stage bootstrap of the Debian Sarge distribution. Unfortunately the patch doesn't solve the problem of booting a Solaris installation CD, but I think this may be due to a disk block size problem.


Very unlikely, it would definitely show further progress (at least is this the case if you experience such an issue on a real sparc box). The unique Solaris(2.)6++ install media (CD/DVD) layout is a ways more suspicious candidate here. Especially that those media contain ufs slices among others (strange enough that they got more than one slice at all). BUT, unfortunately is is either NOT the reasons, OR it is one of at least two reasons. I got exactly the same behaviour when trying to boot Solaris(2.)8_hw2004 from the raw "/" slice of my physical hdd :(

(Sun and MacPPC  assume a 2048 byte disk block size on the CD.)


I mean the opposite.
The world uses 2048 byte disk block size on the CD.
You mean 512 byte block size.


Here's Jose's original message with his patch:


--->> It also makes the SPARConSPARC case usable, finally.
(though there is still a freeze when the scsi driver tries to load during SPARC_LinUX guest boot / wasted a day, modified *latest* proll sources and rebuilt proll several times, also diff. files in [QEMU-root]/hw and [QEMU-root]/target-sparc, but didn't find a solution that late-summer day in September)


Martin Bochnig



--- target-sparc/op_helper.c    23 Jul 2005 14:27:54 -0000      1.15
+++ target-sparc/op_helper.c    27 Sep 2005 23:54:52 -0000
@@ -225,4 +225,5 @@

-       if (size == 4)
-           tswap32s(&ret);
-        else if (size == 2)
-           tswap16s((uint16_t *)&ret);
+
+       tswap32s(&ret);
+       if (size == 2) {
+           ret = ret >> 16;
+       }else if (size == 1) {
+           ret = ret >> 24;
+       }
+
        break;
     default:



_______________________________________________
Qemu-devel mailing list
address@hidden
http://lists.nongnu.org/mailman/listinfo/qemu-devel








reply via email to

[Prev in Thread] Current Thread [Next in Thread]