<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;DUUCQ38yfSp7ImA9WhBbEkw.&quot;"><id>tag:blogger.com,1999:blog-6739077729235978763</id><updated>2013-05-10T22:21:02.195+02:00</updated><category term="UNIX" /><category term="Select Without Attention" /><category term="firmware update" /><category term="NeXTStep" /><category term="MMU" /><category term="bug" /><category term="Martux" /><category term="HelenOS" /><category term="IRQ" /><category term="macio" /><category term="Carey" /><category term="dma" /><category term="Windows" /><category term="Sun Studio" /><category term="Oracle" /><category term="le" /><category term="fpu" /><category term="firmware dump" /><category term="slavio" /><category term="MilaX" /><category term="bicycle" /><category term="SX" /><category term="Solaris" /><category term="firmware update file" /><category term="performance" /><category term="y2k10" /><category term="Power Management" /><category term="update" /><category term="cpu" /><category term="linux" /><category term="debug" /><category term="INQUIRY" /><category term="POST" /><category term="ufsboot" /><category term="virtio" /><category term="escc" /><category term="SCSI" /><category term="sam" /><category term="Debian" /><category term="ciphers" /><category term="bootblk" /><category term="success" /><category term="bcm963xx" /><category term="OpenBIOS" /><category term="2010" /><category term="ssh" /><category term="legion" /><category term="how-to" /><category term="Mitch" /><category term="Java" /><category term="sparc" /><category term="networking" /><category term="OpenSolaris" /><category term="Sun" /><category term="PromDiag" /><category term="credits" /><category term="emulator" /><category term="Message Accepted" /><category term="sparc64" /><category term="esp" /><category term="Forth" /><category term="OBP" /><category term="kenai" /><category term="qemu" /><category term="CruiseControl" /><category term="OLPC" /><category term="user-mode" /><category term="sun4u" /><category term="NCR53c9x" /><category term="tme" /><category term="NetBSD" /><category term="energy saving" /><category term="progress" /><category term="cg14" /><category term="SunOS" /><title>Artyom Tarasenko's blog</title><subtitle type="html" /><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://tyom.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://tyom.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/6739077729235978763/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>atar</name><uri>http://www.blogger.com/profile/16986140925986775324</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://4.bp.blogspot.com/-06oES5AtN24/T5J64gpKNBI/AAAAAAAAADM/HZciy5yelHk/s1600/P1040860.JPG" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>105</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/ArtyomTarasenkosBlog" /><feedburner:info uri="artyomtarasenkosblog" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;C0YAR3g-eip7ImA9WhBUF0U.&quot;"><id>tag:blogger.com,1999:blog-6739077729235978763.post-2492616909935520435</id><published>2013-03-24T22:31:00.000+01:00</published><updated>2013-05-05T21:12:26.652+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-05-05T21:12:26.652+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="virtio" /><category scheme="http://www.blogger.com/atom/ns#" term="success" /><category scheme="http://www.blogger.com/atom/ns#" term="how-to" /><category scheme="http://www.blogger.com/atom/ns#" term="Debian" /><category scheme="http://www.blogger.com/atom/ns#" term="sun4u" /><category scheme="http://www.blogger.com/atom/ns#" term="sparc64" /><title>Debian/sparc64 Wheezy under QEMU How-To</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
The steps to install Debian Wheezy RC1 / SPARC64 under QEMU.&lt;br /&gt;
&lt;br /&gt;
Since the installation process is not obvious for the current QEMU and Debian versions, I gathered this How-To. Feel free to send any feedback.&lt;br /&gt;
&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;h3 style="text-align: left;"&gt;
&lt;b&gt;&amp;nbsp;0. Getting stuff&lt;/b&gt;&lt;/h3&gt;
&lt;br /&gt;
Get the latest QEMU from git (released versions up to 1.4.x won't work).&lt;br /&gt;
&lt;br /&gt;
Download &lt;a href="http://cdimage.debian.org/cdimage/wheezy_di_rc1/sparc/iso-dvd/debian-wheezy-DI-rc1-sparc-DVD-1.iso"&gt;debian-wheezy-DI-rc1-sparc-DVD-1.iso&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;h3 style="text-align: left;"&gt;
&lt;b&gt;&amp;nbsp;1. Extracting the kernel and initrd &lt;/b&gt;&lt;/h3&gt;
&lt;br /&gt;
Currently qemu-system-sparc64 does not emulate the hardware devices the Debian can boot from. This is not a show stopper at all! We just going to need some extra steps for setting the things up.&amp;nbsp; Mount the image on your host machine. As root,&lt;br /&gt;
&lt;br /&gt;
# mkdir -p /mnt/wheezy&lt;br /&gt;
# mount -o loop,ro /path-to/debian-wheezy-DI-rc1-sparc-DVD-1.iso /mnt/wheezy&lt;br /&gt;
&lt;br /&gt;
(if you don't want to do it as root, use isoinfo, fuseiso, 7z or whatever utility your OS has for extracting the files from ISO images)&lt;br /&gt;
&lt;br /&gt;
As user which will run qemu,&lt;br /&gt;
&lt;br /&gt;
$&amp;nbsp; mkdir ~/debian-wheezy-DI-rc1-sparc&lt;br /&gt;
$&amp;nbsp; cp&amp;nbsp; /mnt/wheezy/boot/sparc64 ~/debian-wheezy-DI-rc1-sparc&lt;br /&gt;
$&amp;nbsp; cp&amp;nbsp; /mnt/wheezy/boot/initrd.gz ~/debian-wheezy-DI-rc1-sparc&lt;br /&gt;
&lt;br /&gt;
&lt;h3 style="text-align: left;"&gt;
&amp;nbsp;&lt;b&gt;2.&amp;nbsp; Adding the VirtIO modules to initrd&lt;/b&gt;&lt;/h3&gt;
&lt;br /&gt;
Unfortunately Debian Wheezy RC1 doesn't have virtio modules in the installation initrd.&amp;nbsp; This won't stop us, as there is a package with them on the install media:&lt;br /&gt;
&lt;br /&gt;
$&amp;nbsp; cd ~/debian-wheezy-DI-rc1-sparc&lt;br /&gt;
&lt;br /&gt;
$&amp;nbsp; ar -p /mnt/wheezy/pool/main/l/linux/virtio-modules-3.2.0-4-sparc64-di_3.2.35-2_sparc.udeb&amp;nbsp; data.tar.xz |tar xfJ -&lt;br /&gt;
$&amp;nbsp; umount /mnt/wheezy&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;now we have the modules:&lt;br /&gt;
&lt;br /&gt;
$&amp;nbsp; ls -l lib/modules/3.2.0-4-sparc64/kernel/drivers/virtio/&lt;br /&gt;
total 56&lt;br /&gt;
-rw-r--r--. 1 user user 13184 Dec 19 17:10 virtio_balloon.ko&lt;br /&gt;
-rw-r--r--. 1 user user 11208 Dec 19 17:10 virtio.ko&lt;br /&gt;
-rw-r--r--. 1 user user 14480 Dec 19 17:10 virtio_pci.ko&lt;br /&gt;
-rw-r--r--. 1 user user 11368 Dec 19 17:10 virtio_ring.ko&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;add them to initrd:&lt;br /&gt;
&lt;br /&gt;
$&amp;nbsp; gunzip -c initrd.gz &amp;gt; initrd+virtio&lt;br /&gt;
$&amp;nbsp; find lib/ |cpio -o -H newc --append -O initrd+virtio&lt;br /&gt;
$&amp;nbsp; rm -r lib &lt;br /&gt;
$&amp;nbsp; gzip initrd+virtio&lt;br /&gt;
&lt;br /&gt;
Done. Now we have initrd+virtio.gz which contains the original initial RAMdisk contents and the virtio modules.&lt;br /&gt;
&lt;br /&gt;
&lt;h3 style="text-align: left;"&gt;
3. Creating image for the virtual guest disk&lt;/h3&gt;
&lt;br /&gt;
$ mkdir ~/debian-wheezy&lt;br /&gt;
$ qemu-img create -f qcow2 ~/debian-wheezy/debian-wheezy.qcow2 4G&lt;br /&gt;
&lt;br /&gt;
&lt;h3 style="text-align: left;"&gt;
&lt;b&gt;4. Launching QEMU for the installation &lt;/b&gt;&lt;/h3&gt;
&lt;br /&gt;
# Please note that you'll need another command line for running the installed system&lt;br /&gt;
&lt;br /&gt;
$&amp;nbsp; sparc64-softmmu/qemu-system-sparc64 -L pc-bios -m 384 -nographic \&lt;br /&gt;
-monitor telnet::4440,server,nowait -kernel ~/debian-wheezy-DI-rc1-sparc/sparc64 \&lt;br /&gt;
-initrd ~/debian-wheezy-DI-rc1-sparc/initrd+virtio.gz \&lt;br /&gt;
-drive file=~/debian-wheezy/debian-wheezy.qcow2,if=virtio,index=0 \&lt;br /&gt;
-drive file=/path/to/debian-wheezy-DI-rc1-sparc-DVD-1.iso,if=virtio,readonly=on,index=1 \&lt;br /&gt;
-net nic,model=virtio -net user -append 'modprobe.blacklist=pata_cmd64x'&lt;br /&gt;
&lt;br /&gt;
&lt;h3 style="text-align: left;"&gt;
5. Answering Installer's questions&lt;/h3&gt;
&lt;br /&gt;
Some seconds after launching the installer will be asking you about the locale settings. Nothing tricky about them. Then it will be trying hard to find a CD-ROM drive...&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-Mnu4x5YcR7Q/UWvQJN4_ooI/AAAAAAAAAEg/R14OLQcoMjQ/s1600/wheezy0-cd-95.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-Mnu4x5YcR7Q/UWvQJN4_ooI/AAAAAAAAAEg/R14OLQcoMjQ/s1600/wheezy0-cd-95.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
After this point comes a blank screen. Be patient it may take some minutes. And then... it won't find the CD/DVD drive, as we didn't give it any. Actually it was on purpose. The "pata_cmd64x" driver crashes under QEMU because of some missing functionality. So it's not only important not to launch QEMU with a '-cdrom' option, but also blacklist&amp;nbsp; the pata_cmd64x driver (I didn't find the way to completely disable DMA. In PIO modes cmd64x might even be working).&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-8WFAEUgKcCg/UWvTnET7HGI/AAAAAAAAAEw/WZFB8Cff0Ag/s1600/wheezy1-cd-load.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-8WFAEUgKcCg/UWvTnET7HGI/AAAAAAAAAEw/WZFB8Cff0Ag/s1600/wheezy1-cd-load.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
The proper answer here is 'No'. We don't need to load additional drivers. The next question is whether we want to select&amp;nbsp; the driver manually:&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-7Gi0vlbqmak/UWvVZgM5eHI/AAAAAAAAAFA/_b63FtjDGuA/s1600/wheezy2-cd-manual.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-7Gi0vlbqmak/UWvVZgM5eHI/AAAAAAAAAFA/_b63FtjDGuA/s1600/wheezy2-cd-manual.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;
The answer is 'Yes'. We do want to select it manually...&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-LxXs_x98PkM/UWvVcK2jBmI/AAAAAAAAAFI/PbHlxCpFCJk/s1600/wheezy3-cd-none.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-LxXs_x98PkM/UWvVcK2jBmI/AAAAAAAAAFI/PbHlxCpFCJk/s1600/wheezy3-cd-none.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
...sort of. The module needed for accessing the CD-ROM is 'none' (we haven't plugged a real CD-ROM). The next question is the Device Name:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-ZnouF6bA39s/UWvVfMwa99I/AAAAAAAAAFQ/er13D69DxC0/s1600/wheezy4-cd-vdb.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-ZnouF6bA39s/UWvVfMwa99I/AAAAAAAAAFQ/er13D69DxC0/s1600/wheezy4-cd-vdb.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
The default '/dev/cdrom' won't work (did I mention that we haven't plugged a real CD-ROM?). Use the virtio device /dev/vdb instead.&lt;br /&gt;
The next few steps are not QEMU-specific. You will be asked ...&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-CBddlh48-tE/UWwwS7X8KeI/AAAAAAAAAFg/87q7K5CH8MM/s1600/wheezy7-hostname.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-CBddlh48-tE/UWwwS7X8KeI/AAAAAAAAAFg/87q7K5CH8MM/s1600/wheezy7-hostname.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
for the Hostname, ...&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-CmO08wxbhq8/UWww-9cTKtI/AAAAAAAAAFo/GNJUBp62yHw/s1600/wheezy8-rootpass.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-CmO08wxbhq8/UWww-9cTKtI/AAAAAAAAAFo/GNJUBp62yHw/s1600/wheezy8-rootpass.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
password for the root user, ...&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-SnqtH78JkYA/UWwxbOGr2hI/AAAAAAAAAFw/g3eSuWtBe2s/s1600/wheezy11-partition-manually.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-SnqtH78JkYA/UWwxbOGr2hI/AAAAAAAAAFw/g3eSuWtBe2s/s1600/wheezy11-partition-manually.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
and disk partitioning. Here it makes more sense to use the "Manual" 
method. The "Guided" method creates a /boot partition (from which QEMU 
can't&amp;nbsp; boot using virtio anyway) and too much swap for a virtual machine. So, unless you are the SILO developer/tester, you don't need a special /boot partition.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-Cjav6pWRYEw/UXFj0xH_DrI/AAAAAAAAAGk/WoHTeuratlE/s1600/wheezy10org-empty-label.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-Cjav6pWRYEw/UXFj0xH_DrI/AAAAAAAAAGk/WoHTeuratlE/s1600/wheezy10org-empty-label.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
The installer warns that it will re-label your empty disk image.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-45WQ-ddFgts/UWwyhEDo7JI/AAAAAAAAAF4/Zzf0stJzKwo/s1600/wheezy12-use-ext4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-45WQ-ddFgts/UWwyhEDo7JI/AAAAAAAAAF4/Zzf0stJzKwo/s1600/wheezy12-use-ext4.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Ext4 under QEMU is significantly faster than Ext3 (see a quick test &lt;a href="http://tyom.blogspot.de/2013/03/virtio-performance-and-filesystems.html"&gt;here&lt;/a&gt;).&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-tzPqGlDrqZ0/UWwy3w6DsqI/AAAAAAAAAGA/iXZaicBhx4g/s1600/wheezy13org-partitions-no-boot.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-tzPqGlDrqZ0/UWwy3w6DsqI/AAAAAAAAAGA/iXZaicBhx4g/s1600/wheezy13org-partitions-no-boot.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
That's an example how it can be partitioned without /boot, ...&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-WCNIyh5LxKA/UWwzdrnIE5I/AAAAAAAAAGI/OCvhlxt0yOI/s1600/wheezy14-silo-no-ext4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-WCNIyh5LxKA/UWwzdrnIE5I/AAAAAAAAAGI/OCvhlxt0yOI/s1600/wheezy14-silo-no-ext4.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
...and here comes the warning that SILO can not boot from an ext4 partition. Just ignore it.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-iD5BELPiAOg/UWwz7uwh1MI/AAAAAAAAAGQ/fUa6dwo6J0U/s1600/wheezy15-write-changes.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-iD5BELPiAOg/UWwz7uwh1MI/AAAAAAAAAGQ/fUa6dwo6J0U/s1600/wheezy15-write-changes.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Answer yes to write partition information. After this point the installation starts. It takes some tens of minutes (at least on my machine), so be patient. You'll figure as you see the progress monitor.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-uY3MOo1t2zU/UXFj8OVsPZI/AAAAAAAAAGo/r_2fLUYVNow/s1600/wheezy16-software-selection.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-uY3MOo1t2zU/UXFj8OVsPZI/AAAAAAAAAGo/r_2fLUYVNow/s1600/wheezy16-software-selection.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Not QEMU-specific. Select standard system utilities.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-NBNiZGhDK90/UXFkAPNCcLI/AAAAAAAAAGw/ltJoDFLfXKE/s1600/wheezy17-finish.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-NBNiZGhDK90/UXFkAPNCcLI/AAAAAAAAAGw/ltJoDFLfXKE/s1600/wheezy17-finish.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
After taking the 'Continue' option the system will panic with the message Reboot failed: &lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-lBek1aNMaD4/UXquqk5wi2I/AAAAAAAAAHA/ODVl_h1EcwQ/s1600/wheezy18-reboot-failed.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-lBek1aNMaD4/UXquqk5wi2I/AAAAAAAAAHA/ODVl_h1EcwQ/s1600/wheezy18-reboot-failed.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Requesting system reboot&lt;br /&gt;
[ 3205.593245] Restarting system.&lt;br /&gt;
BOOT[ 3205.597929] Kernel panic - not syncing: Reboot failed!&lt;br /&gt;
&lt;br /&gt;
This is expected, because the OpenBIOS can not reset system. So just use the QEMU monitor. From another shell execute&lt;br /&gt;
&lt;br /&gt;
$ telnet localhost 4440&lt;br /&gt;
Trying 127.0.0.1...&lt;br /&gt;
Connected to localhost.&lt;br /&gt;
Escape character is '^]'.&lt;br /&gt;
QEMU 1.4.50 monitor - type 'help' for more information&lt;br /&gt;
(qemu) &lt;br /&gt;
&lt;br /&gt;
And enter 'q' here to quit the QEMU process gracefully.&lt;br /&gt;
&lt;br /&gt;
&lt;h3 style="text-align: left;"&gt;
6. Getting the installed kernel and initrd&amp;nbsp;&lt;/h3&gt;
&lt;h3 style="text-align: left;"&gt;
&amp;nbsp;&lt;/h3&gt;
Use the guestfish to get the files from the qcow2 image:&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;$&amp;nbsp; cd&amp;nbsp; ~/debian-wheezy/&lt;br /&gt;
&amp;nbsp;$&amp;nbsp; guestfish&amp;nbsp; --ro -a debian-wheezy.qcow2 -m /dev/vda1 copy-out /boot/vmlinuz-3.2.0-4-sparc64 /boot/initrd.img-3.2.0-4-sparc64 .&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; # -- QEMU can't load compressed kernel, so uncompress it&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;$&amp;nbsp; gunzip -c vmlinuz-3.2.0-4-sparc64 &amp;gt; vmlinux-3.2.0-4-sparc64&lt;br /&gt;
&lt;br /&gt;
&lt;h3 style="text-align: left;"&gt;
7. Booting from the installed Debian Wheezy / sparc64 image&lt;/h3&gt;
&lt;br /&gt;
Use the kernel and initrd extracted at the step 6. &lt;br /&gt;
&lt;br /&gt;
$&amp;nbsp; sparc64-softmmu/qemu-system-sparc64 -L pc-bios -m 384 -nographic \&lt;br /&gt;
-monitor telnet::4440,server,nowait -kernel ~/debian-wheezy/vmlinux-3.2.0-4-sparc64 \&lt;br /&gt;
-initrd ~/debian-wheezy/initrd.img-3.2.0-4-sparc64 \&lt;br /&gt;
-drive file=~/debian-wheezy/debian-wheezy.qcow2,if=virtio,index=0 \&lt;br /&gt;
-net nic,model=virtio -net user -append 'modprobe.blacklist=pata_cmd64x root=/dev/vda1'&lt;br /&gt;
&lt;br /&gt;
optionally you can add &lt;br /&gt;
-drive file=/path/to/debian-wheezy-DI-rc1-sparc-DVD-1.iso,if=virtio,readonly=on,index=1&lt;br /&gt;
to make the installer DVD available for your guest OS.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;/ Happy hacking&lt;/b&gt;&lt;/div&gt;
&lt;img src="http://feeds.feedburner.com/~r/ArtyomTarasenkosBlog/~4/0zaz-YtQBVI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tyom.blogspot.com/feeds/2492616909935520435/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6739077729235978763&amp;postID=2492616909935520435" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6739077729235978763/posts/default/2492616909935520435?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6739077729235978763/posts/default/2492616909935520435?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ArtyomTarasenkosBlog/~3/0zaz-YtQBVI/debiansparc64-wheezy-under-qemu-how-to.html" title="Debian/sparc64 Wheezy under QEMU How-To" /><author><name>atar</name><uri>http://www.blogger.com/profile/16986140925986775324</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://4.bp.blogspot.com/-06oES5AtN24/T5J64gpKNBI/AAAAAAAAADM/HZciy5yelHk/s1600/P1040860.JPG" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-Mnu4x5YcR7Q/UWvQJN4_ooI/AAAAAAAAAEg/R14OLQcoMjQ/s72-c/wheezy0-cd-95.png" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://tyom.blogspot.com/2013/03/debiansparc64-wheezy-under-qemu-how-to.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkQMQn0_eip7ImA9WhBWGUs.&quot;"><id>tag:blogger.com,1999:blog-6739077729235978763.post-4992551233369598346</id><published>2013-03-23T20:52:00.000+01:00</published><updated>2013-04-14T21:39:43.342+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-04-14T21:39:43.342+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="performance" /><category scheme="http://www.blogger.com/atom/ns#" term="linux" /><category scheme="http://www.blogger.com/atom/ns#" term="virtio" /><category scheme="http://www.blogger.com/atom/ns#" term="qemu" /><category scheme="http://www.blogger.com/atom/ns#" term="sparc64" /><title>Virtio performance and filesystems</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
Some time ago there was a comment to my post about booting Linux/sparc64 under QEMU, saying that virtio performance sucks.&lt;br /&gt;
&lt;br /&gt;
At first I couldn't reproduce the problem. Tried a few caching strategies, but the I/O performance was not drastically affected by them. And then it came to my mind that the reason might be the guest file system.&lt;br /&gt;
&lt;br /&gt;
Let's take a look:&lt;br /&gt;
&lt;br /&gt;
$ dd if=/dev/zero of=disk-tmp bs=1024k count=300&lt;br /&gt;
300+0 records in&lt;br /&gt;300+0 records out&lt;br /&gt;314572800 bytes (315 MB) copied, 0.430909 s, 730 MB/s&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; # so, the theoretical maximal raw performance of this partition on my disk is ~ 730 MB/s.&lt;br /&gt;
&lt;br /&gt;
$ sparc64-softmmu/qemu-system-sparc64 -drive file=../boot-disk.qcow2,if=virtio,index=0 -drive file=disk-tmp,if=virtio,index=1&lt;br /&gt;
[...]&lt;br /&gt;
root@debian-wheezy:~#&amp;nbsp; mkfs.ext4dev /dev/vdb1&lt;br /&gt;[...]&lt;br /&gt;
root@debian-wheezy:~#&amp;nbsp; mount /dev/vdb1&amp;nbsp; /mnt/&lt;br /&gt;
root@debian-wheezy:~#&amp;nbsp; dd if=/dev/zero of=/mnt/100M-file bs=1024k count=100&lt;br /&gt;100+0 records in&lt;br /&gt;100+0 records out&lt;br /&gt;104857600 bytes (105 MB) copied, 3.2384 s, &lt;b&gt;32.4 MB/s&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
# while it seems to be 20 times slower than the host speed it is still a lot (the number 730MB/s is the theoretical limit, without performing regular syncs. QEMU does execute syncs to ensure the data integrity for the unlikely case of the crash.&lt;br /&gt;
&lt;br /&gt;
Let's take a look on the read performance:&lt;br /&gt;
&lt;br /&gt;root@debian-wheezy:~#&amp;nbsp; umount /mnt/&lt;br /&gt;root@debian-wheezy:~#&amp;nbsp; mount /dev/vdb1&amp;nbsp; /mnt/&lt;br /&gt;[&amp;nbsp; 582.673975] EXT4-fs (vdb1): mounted filesystem with ordered data mode. Opts: (null)&lt;br /&gt;root@debian-wheezy:~#&amp;nbsp; dd if=/mnt/100M-file of=/dev/null bs=1024k&lt;br /&gt;100+0 records in&lt;br /&gt;100+0 records out&lt;br /&gt;104857600 bytes (105 MB) copied, 1.08423 s, &lt;b&gt;96.7 MB/s&lt;/b&gt;&lt;br /&gt;root@debian-wheezy:~#&lt;br /&gt;
&lt;br /&gt;
This looks even better. But what happens with the usual ext4?&lt;br /&gt;
&lt;br /&gt;
root@debian-wheezy:~#&amp;nbsp; mkfs.ext4 /dev/vdb1&lt;br /&gt;[...]&lt;br /&gt;
root@debian-wheezy:~#&amp;nbsp; mount /dev/vdb1&amp;nbsp; /mnt/&lt;br /&gt;
root@debian-wheezy:~#&amp;nbsp; dd if=/dev/zero of=/mnt/100M-file bs=1024k count=100&lt;br /&gt;100+0 records in&lt;br /&gt;100+0 records out&lt;br /&gt;104857600 bytes (105 MB) copied, 3.54709 s, 29.6 MB/s&lt;br /&gt;
&lt;br /&gt;
Ok, that's a bit less than the newer version. And what about ext3?&lt;br /&gt;
&lt;br /&gt;
root@debian-wheezy:~#&amp;nbsp; mkfs.ext3 /dev/vdb1&lt;br /&gt;
root@debian-wheezy:~#&amp;nbsp; dd if=/dev/zero of=/mnt/100M-file bs=1024k count=100&lt;br /&gt;100+0 records in&lt;br /&gt;100+0 records out&lt;br /&gt;104857600 bytes (105 MB) copied, 13.8049 s, &lt;b&gt;7.6 MB/s&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Wow. That's slow. The ext3 partition access with the default options is more than 4 times slower than the ext4 partition access with the default options.&lt;br /&gt;
&lt;br /&gt;
The short conclusion: if you need performance, don't use the ext3 file system with the default settings for your virtual machines.&lt;br /&gt;
&lt;br /&gt;
/ happy hacking&lt;/div&gt;
&lt;img src="http://feeds.feedburner.com/~r/ArtyomTarasenkosBlog/~4/LRSHRxx7r7M" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tyom.blogspot.com/feeds/4992551233369598346/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6739077729235978763&amp;postID=4992551233369598346" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6739077729235978763/posts/default/4992551233369598346?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6739077729235978763/posts/default/4992551233369598346?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ArtyomTarasenkosBlog/~3/LRSHRxx7r7M/virtio-performance-and-filesystems.html" title="Virtio performance and filesystems" /><author><name>atar</name><uri>http://www.blogger.com/profile/16986140925986775324</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://4.bp.blogspot.com/-06oES5AtN24/T5J64gpKNBI/AAAAAAAAADM/HZciy5yelHk/s1600/P1040860.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://tyom.blogspot.com/2013/03/virtio-performance-and-filesystems.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkMGRH8-cCp7ImA9WhNUGE8.&quot;"><id>tag:blogger.com,1999:blog-6739077729235978763.post-1274811376970833971</id><published>2013-01-10T15:31:00.001+01:00</published><updated>2013-01-10T15:33:45.158+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-01-10T15:33:45.158+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="CruiseControl" /><category scheme="http://www.blogger.com/atom/ns#" term="Java" /><category scheme="http://www.blogger.com/atom/ns#" term="Oracle" /><title>CruiseControl 2.8.4 and JDK7</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
Upgraded system JDK to Java 7 and noticed that the dashboard in your CruiseControl stays gray?&lt;br /&gt;
Well there is even an official bug &lt;a href="http://jira.public.thoughtworks.org/browse/CC-1049?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_19234"&gt;CC-1049&lt;/a&gt; in the JIRA (currently it seems to be down, I used Google cache to access it).&lt;br /&gt;
&lt;br /&gt;
With -debug switch on there is a hint error message:&lt;br /&gt;
&lt;br /&gt;
Cannot construct net.sourceforge.cruisecontrol.BuildLoopInformation as it does not have a no-args constructor.&lt;br /&gt;
&lt;br /&gt;
The &lt;a href="http://jira.codehaus.org/browse/XSTR-651"&gt;root of the problem&lt;/a&gt;: Oracle changed the vendor name from "Sun Microsystems Inc." to “Oracle Corporation”. The solution is really simple, either add&lt;br /&gt;
&lt;br /&gt;
-Djava.vm.vendor="Sun Microsystems Inc." -XX:+OverrideVMProperties&lt;br /&gt;
&lt;br /&gt;
to your java call in cruisecontrol.sh , or replace xstream-1.2.2.jar and xpp3_min-1.1.3.4.O.jar files both in lib/ and webapps/dashboard/WEB-INF/lib/ with &lt;a href="http://repo.maven.apache.org/maven2/com/thoughtworks/xstream/xstream/1.4.1/xstream-1.4.1.jar"&gt;xstream-1.4.1.jar&lt;/a&gt; and &lt;a href="http://sourceforge.net/projects/kxml/files/kxml2/2.3.0/kxml2-2.3.0.jar/download"&gt;kxml2-2.3.0.jar&lt;/a&gt; respectively.&lt;/div&gt;
&lt;img src="http://feeds.feedburner.com/~r/ArtyomTarasenkosBlog/~4/c9x5_Fqvrqk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tyom.blogspot.com/feeds/1274811376970833971/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6739077729235978763&amp;postID=1274811376970833971" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6739077729235978763/posts/default/1274811376970833971?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6739077729235978763/posts/default/1274811376970833971?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ArtyomTarasenkosBlog/~3/c9x5_Fqvrqk/cruisecontrol-284-and-jdk7.html" title="CruiseControl 2.8.4 and JDK7" /><author><name>atar</name><uri>http://www.blogger.com/profile/16986140925986775324</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://4.bp.blogspot.com/-06oES5AtN24/T5J64gpKNBI/AAAAAAAAADM/HZciy5yelHk/s1600/P1040860.JPG" /></author><thr:total>3</thr:total><feedburner:origLink>http://tyom.blogspot.com/2013/01/cruisecontrol-284-and-jdk7.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUAERHY7eSp7ImA9WhVUFE4.&quot;"><id>tag:blogger.com,1999:blog-6739077729235978763.post-6068759441392862370</id><published>2012-05-13T16:23:00.000+02:00</published><updated>2012-05-19T16:28:25.801+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-05-19T16:28:25.801+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="OpenBIOS" /><category scheme="http://www.blogger.com/atom/ns#" term="linux" /><category scheme="http://www.blogger.com/atom/ns#" term="virtio" /><category scheme="http://www.blogger.com/atom/ns#" term="qemu" /><category scheme="http://www.blogger.com/atom/ns#" term="Forth" /><category scheme="http://www.blogger.com/atom/ns#" term="success" /><category scheme="http://www.blogger.com/atom/ns#" term="sun4u" /><category scheme="http://www.blogger.com/atom/ns#" term="sparc64" /><category scheme="http://www.blogger.com/atom/ns#" term="networking" /><title>Networking in Linux/sparc64 under qemu...</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
... is also possible. The bulit-in ne2k-pci network card doesn't work, but hey there is an even faster virtio-net alternative. At the OpenBIOS "ok" prompt, before the "boot" command in the &lt;a href="http://tyom.blogspot.de/2012/05/booting-linuxsparc64-on-todays-openbios.html"&gt;previous post&lt;/a&gt;, type&lt;br /&gt;
&lt;br /&gt;
cd /pci@1fe,0/pci1af4,1000&lt;br /&gt;
0 encode-int " interrupts" property&lt;br /&gt;
device-end&lt;br /&gt;
&lt;br /&gt;
Will send this patch upstream as soon as we clear whether "0" is allowed for the "interrupts" property.&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ArtyomTarasenkosBlog/~4/UkAnMaIbQEw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tyom.blogspot.com/feeds/6068759441392862370/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6739077729235978763&amp;postID=6068759441392862370" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6739077729235978763/posts/default/6068759441392862370?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6739077729235978763/posts/default/6068759441392862370?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ArtyomTarasenkosBlog/~3/UkAnMaIbQEw/networking-in-linuxsparc64-under-qemu.html" title="Networking in Linux/sparc64 under qemu..." /><author><name>atar</name><uri>http://www.blogger.com/profile/16986140925986775324</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://4.bp.blogspot.com/-06oES5AtN24/T5J64gpKNBI/AAAAAAAAADM/HZciy5yelHk/s1600/P1040860.JPG" /></author><thr:total>2</thr:total><feedburner:origLink>http://tyom.blogspot.com/2012/05/networking-in-linuxsparc64-under-qemu.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUcESHk6eSp7ImA9WhVVGEg.&quot;"><id>tag:blogger.com,1999:blog-6739077729235978763.post-7353226378913795902</id><published>2012-05-12T11:06:00.000+02:00</published><updated>2012-05-12T23:10:09.711+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-05-12T23:10:09.711+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="OpenBIOS" /><category scheme="http://www.blogger.com/atom/ns#" term="linux" /><category scheme="http://www.blogger.com/atom/ns#" term="virtio" /><category scheme="http://www.blogger.com/atom/ns#" term="qemu" /><category scheme="http://www.blogger.com/atom/ns#" term="Forth" /><category scheme="http://www.blogger.com/atom/ns#" term="success" /><category scheme="http://www.blogger.com/atom/ns#" term="how-to" /><category scheme="http://www.blogger.com/atom/ns#" term="sparc64" /><title>Booting Linux/sparc64 on todays OpenBIOS</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
Historical day for everyone interested in the vanilla qemu-system-sparc64 emulator. For the first time it can boot Linux!&lt;br /&gt;
&lt;br /&gt;
Although the patches I sent upstream are&amp;nbsp; fixing CPU and IOMMU, there is still one missing piece: cmd646 IDE. Luckily it's not a showstopper at all: qemu-sparc64 is a PCI machine, which means one could use the fast virtio instead! Now, this is the command line:&lt;br /&gt;
&lt;br /&gt;
$&amp;nbsp; sparc64-softmmu/qemu-system-sparc64 -m 256 -nographic -prom-env 'auto-boot?=false' -kernel /path/to/kernel/image -drive file=/path/to/debian-disk,if=virtio,index=0 -append 'root=/dev/vda1 init=/bin/sh'&lt;br /&gt;
&lt;br /&gt;
Some time ago, I used Forth to workaround missing qemu features&amp;nbsp; to get OBP working.&lt;br /&gt;
Now it's pretty similar: OpenBIOS doesn't have all the properties necessary for Linux to get the interrupt mapping.&lt;br /&gt;
&lt;br /&gt;
So at the ok command prompt where you'd get after the command above, type:&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
cd /&lt;br /&gt;
1 encode-int " #interrupt-cells" property&lt;br /&gt;
cd /pci@1fe,0/ebus&lt;br /&gt;
000001fe encode-int 020003f8 encode-int encode+ 1 encode-int encode+&lt;br /&gt;
ffe29140 encode-int encode+ 2b encode-int encode+ " interrupt-map" property&lt;br /&gt;
000001ff encode-int ffffffff encode-int encode+ 00000003 encode-int encode+&lt;br /&gt;
" interrupt-map-mask" property&lt;br /&gt;
&lt;br /&gt;
cd /pci@1fe,0/ebus@3/su&lt;br /&gt;
1 encode-int " interrupts" property&lt;br /&gt;
cd /pci@1fe,0/pci-ata@5&lt;br /&gt;
0 encode-int " interrupts" property&lt;br /&gt;
&lt;br /&gt;
cd /pci@1fe,0/pci1af4,1001&lt;br /&gt;
0 encode-int " interrupts" property&lt;br /&gt;
device-end&lt;br /&gt;
boot&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The only magical constant above is actually "ffe29140" - the address of the root pci node in the OpenBIOS device hierarchy. Although it the same in all the recent builds, in theory it could be moved somewhere else one day. But I guess till that day OpenBIOS will have the missing properties... ;-)&lt;br /&gt;
&lt;br /&gt;
&lt;div style="color: red;"&gt;
&lt;b&gt;Update:&lt;/b&gt;&lt;/div&gt;
&lt;br /&gt;
Oh, and a few words to  /path/to/kernel/image and /path/to/debian-disk:&lt;br /&gt;
&lt;br /&gt;
I found no Linux/sparc64 distribution which has a built in virtio driver. This makes installing from a&amp;nbsp; CD/DVD image not possible. The solution is build your own kernel with the virtio driver compiled in and put it at   /path/to/kernel/image.&lt;br /&gt;
&lt;br /&gt;
As for the disk, the user space utilities from the sparc32 world can be used in the sparc64 world as is. So, you can install Debian (or your favorite sparc32 distribution) in the /path/to/debian-disk, using qemu-system-sparc (no 64 at the end), and then use it with qemu-system-sparc64 as described above.&lt;br /&gt;
&lt;br /&gt;
If you know a Linux/sparc64 distribution with the virtio support, please let me know.&lt;br /&gt;
&lt;br /&gt;
/Happy hacking&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ArtyomTarasenkosBlog/~4/gbWx2BkGrig" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tyom.blogspot.com/feeds/7353226378913795902/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6739077729235978763&amp;postID=7353226378913795902" title="12 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6739077729235978763/posts/default/7353226378913795902?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6739077729235978763/posts/default/7353226378913795902?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ArtyomTarasenkosBlog/~3/gbWx2BkGrig/booting-linuxsparc64-on-todays-openbios.html" title="Booting Linux/sparc64 on todays OpenBIOS" /><author><name>atar</name><uri>http://www.blogger.com/profile/16986140925986775324</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://4.bp.blogspot.com/-06oES5AtN24/T5J64gpKNBI/AAAAAAAAADM/HZciy5yelHk/s1600/P1040860.JPG" /></author><thr:total>12</thr:total><feedburner:origLink>http://tyom.blogspot.com/2012/05/booting-linuxsparc64-on-todays-openbios.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEUCSH4yeip7ImA9WhVVGEw.&quot;"><id>tag:blogger.com,1999:blog-6739077729235978763.post-6465264547499118910</id><published>2012-05-06T10:36:00.000+02:00</published><updated>2012-05-12T10:44:29.092+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-05-12T10:44:29.092+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="OpenBIOS" /><category scheme="http://www.blogger.com/atom/ns#" term="linux" /><category scheme="http://www.blogger.com/atom/ns#" term="qemu" /><category scheme="http://www.blogger.com/atom/ns#" term="success" /><category scheme="http://www.blogger.com/atom/ns#" term="bug" /><category scheme="http://www.blogger.com/atom/ns#" term="sun4u" /><category scheme="http://www.blogger.com/atom/ns#" term="sparc64" /><title>Qemu is going to boot Linux/sparc64</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
After considering it a bit, I thought, it's a good marketing strategy: the free QEMU version shall run the free OS - Linux. And if anyone is interested in running something else, feel free to ask me for a [paid] support. :-)&lt;br /&gt;
&lt;br /&gt;
So, Linux is going to be the second OS which vanilla qemu-system-sparc64 would boot - HelenOS was the first one. But, unlike HelenOS, Linux will be fully functional, having not just a stdout, but a stdin as well. And a serial port support!&lt;br /&gt;
&lt;br /&gt;
At the moment OpenBIOS has some missing features - it doesn't describe the interrupt mappings - and a regression - currently it can't even boot HelenOS from a command line. But both are not show-stoppers.&lt;br /&gt;
&lt;br /&gt;
Once my patches are accepted I'll publish the OpenBIOS command to boot Linux (not because it's top secret, but due to the dependency to a certain version).&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ArtyomTarasenkosBlog/~4/n9e978MynJE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tyom.blogspot.com/feeds/6465264547499118910/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6739077729235978763&amp;postID=6465264547499118910" title="7 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6739077729235978763/posts/default/6465264547499118910?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6739077729235978763/posts/default/6465264547499118910?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ArtyomTarasenkosBlog/~3/n9e978MynJE/qemu-is-going-to-boot-linuxsparc64.html" title="Qemu is going to boot Linux/sparc64" /><author><name>atar</name><uri>http://www.blogger.com/profile/16986140925986775324</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://4.bp.blogspot.com/-06oES5AtN24/T5J64gpKNBI/AAAAAAAAADM/HZciy5yelHk/s1600/P1040860.JPG" /></author><thr:total>7</thr:total><feedburner:origLink>http://tyom.blogspot.com/2012/05/qemu-is-going-to-boot-linuxsparc64.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEMDQXg4cCp7ImA9WhVWEUQ.&quot;"><id>tag:blogger.com,1999:blog-6739077729235978763.post-3797303761676444187</id><published>2012-04-22T16:38:00.000+02:00</published><updated>2012-04-23T16:47:50.638+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-04-23T16:47:50.638+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="sparc" /><category scheme="http://www.blogger.com/atom/ns#" term="qemu" /><category scheme="http://www.blogger.com/atom/ns#" term="bug" /><category scheme="http://www.blogger.com/atom/ns#" term="y2k10" /><category scheme="http://www.blogger.com/atom/ns#" term="Solaris" /><title>Sent y2k10 fix upstream</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
It occurred to me that I've &lt;a href="http://tyom.blogspot.de/2010/08/fixed-solaris-y2k10-bug.html"&gt;described the fix for y2k10 bug&lt;/a&gt; in qemu-system-sparc which makes Solaris 2.5.1 (and prior) hang, but never managed to submit it upstream.&lt;br /&gt;
&lt;br /&gt;
So, let's fix it. &lt;i&gt;For those one and half users who care ;-)&lt;/i&gt; .&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ArtyomTarasenkosBlog/~4/2bqTk4nItJA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tyom.blogspot.com/feeds/3797303761676444187/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6739077729235978763&amp;postID=3797303761676444187" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6739077729235978763/posts/default/3797303761676444187?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6739077729235978763/posts/default/3797303761676444187?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ArtyomTarasenkosBlog/~3/2bqTk4nItJA/sent-y2k10-fix-upstream.html" title="Sent y2k10 fix upstream" /><author><name>atar</name><uri>http://www.blogger.com/profile/16986140925986775324</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://4.bp.blogspot.com/-06oES5AtN24/T5J64gpKNBI/AAAAAAAAADM/HZciy5yelHk/s1600/P1040860.JPG" /></author><thr:total>1</thr:total><feedburner:origLink>http://tyom.blogspot.com/2012/04/sent-y2k10-fix-upstream.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0MFQ3g9fCp7ImA9WhVWEE0.&quot;"><id>tag:blogger.com,1999:blog-6739077729235978763.post-1122040609529816478</id><published>2012-04-06T11:34:00.000+02:00</published><updated>2012-04-21T11:43:32.664+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-04-21T11:43:32.664+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="bicycle" /><title>The 100th post (cycling in a City is dangerous)</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
Allright, this is my 100th post. I was going to look back, summarize and talk about the future.&lt;br /&gt;
&lt;br /&gt;
But I won't.&lt;br /&gt;
&lt;br /&gt;
Yesterday on my way to the office I broke my leg. Multiple fractures. After all cycling in a city on an asphalt is more dangerous than cycling on an ice.&lt;br /&gt;
&lt;br /&gt;
The good news: I'm going to have more time to read books and work on Open Source projects...&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ArtyomTarasenkosBlog/~4/Yl5Mr15gYTA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tyom.blogspot.com/feeds/1122040609529816478/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6739077729235978763&amp;postID=1122040609529816478" title="7 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6739077729235978763/posts/default/1122040609529816478?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6739077729235978763/posts/default/1122040609529816478?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ArtyomTarasenkosBlog/~3/Yl5Mr15gYTA/100th-post-cycling-in-city-is-dangerous.html" title="The 100th post (cycling in a City is dangerous)" /><author><name>atar</name><uri>http://www.blogger.com/profile/16986140925986775324</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://4.bp.blogspot.com/-06oES5AtN24/T5J64gpKNBI/AAAAAAAAADM/HZciy5yelHk/s1600/P1040860.JPG" /></author><thr:total>7</thr:total><feedburner:origLink>http://tyom.blogspot.com/2012/04/100th-post-cycling-in-city-is-dangerous.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkAFSHs9cSp7ImA9WhVWEE0.&quot;"><id>tag:blogger.com,1999:blog-6739077729235978763.post-6250233843153145924</id><published>2012-03-18T10:54:00.000+01:00</published><updated>2012-04-21T11:31:59.569+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-04-21T11:31:59.569+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="bicycle" /><title>Making a Vacation</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
Far away from the Internet and cellular networks. Crossing the Great Baikal Lake on a bicycle.&lt;br /&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-06oES5AtN24/T5J64gpKNBI/AAAAAAAAADM/HZciy5yelHk/s1600/P1040860.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-06oES5AtN24/T5J64gpKNBI/AAAAAAAAADM/HZciy5yelHk/s1600/P1040860.JPG" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Of course the spikes are required&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;
A couple more pictures&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-6cCfPyuo6ko/T5J7FbFxEXI/AAAAAAAAADU/8yoMM6Ia41k/s1600/P1040654.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-6cCfPyuo6ko/T5J7FbFxEXI/AAAAAAAAADU/8yoMM6Ia41k/s1600/P1040654.JPG" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Our group&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-uR2iG_I6rd8/T5J7MCQwaaI/AAAAAAAAADc/3ZPerlXXDbE/s1600/P1040648.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-uR2iG_I6rd8/T5J7MCQwaaI/AAAAAAAAADc/3ZPerlXXDbE/s1600/P1040648.JPG" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;There are lots of really beautiful sights&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-WQ2HeMaoCjE/T5J7PjgxxBI/AAAAAAAAADk/d4Lajab65VM/s1600/P1040857.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-WQ2HeMaoCjE/T5J7PjgxxBI/AAAAAAAAADk/d4Lajab65VM/s1600/P1040857.JPG" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;At some places the ice is just perfect&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ArtyomTarasenkosBlog/~4/XaI54l1EL50" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tyom.blogspot.com/feeds/6250233843153145924/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6739077729235978763&amp;postID=6250233843153145924" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6739077729235978763/posts/default/6250233843153145924?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6739077729235978763/posts/default/6250233843153145924?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ArtyomTarasenkosBlog/~3/XaI54l1EL50/making-vacation.html" title="Making a Vacation" /><author><name>atar</name><uri>http://www.blogger.com/profile/16986140925986775324</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://4.bp.blogspot.com/-06oES5AtN24/T5J64gpKNBI/AAAAAAAAADM/HZciy5yelHk/s1600/P1040860.JPG" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-06oES5AtN24/T5J64gpKNBI/AAAAAAAAADM/HZciy5yelHk/s72-c/P1040860.JPG" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://tyom.blogspot.com/2012/03/making-vacation.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkEASXk_fSp7ImA9WhVTGUs.&quot;"><id>tag:blogger.com,1999:blog-6739077729235978763.post-4363127168763169894</id><published>2012-03-03T08:00:00.000+01:00</published><updated>2012-03-05T17:24:08.745+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-03-05T17:24:08.745+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="sparc" /><category scheme="http://www.blogger.com/atom/ns#" term="NetBSD" /><category scheme="http://www.blogger.com/atom/ns#" term="qemu" /><category scheme="http://www.blogger.com/atom/ns#" term="Power Management" /><category scheme="http://www.blogger.com/atom/ns#" term="Solaris" /><title>Power management in SPARC &amp; Solaris</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
Few days ago someone asked me in the comments to &lt;a href="http://tyom.blogspot.com/2009/12/solaris-under-qemu-how-to.html"&gt;the How-To post&lt;/a&gt;, whether there is a way to reduce CPU consumption of the qemu-system-sparc. I assumed qemu lacks some device necessary for the power management. So, if we implement it, qemu-system-sparc won't take 100% of CPU all the time.&lt;br /&gt;
&lt;br /&gt;
And then after looking at the qemu source I was really surprised: qemu does emulate the 'power-management' device. The reason why Solaris consumes so much CPU is Solaris itself! It's just doesn't have a driver for the 'power-management' device on SPARCStation-5. In all 'prtconf' outputs I could google out, there is a line:&lt;br /&gt;
&lt;br /&gt;
power-management (driver not attached)&lt;br /&gt;
&lt;br /&gt;
And then comes a bigger surprise: Linux perfectly supports CPU power management on SPARCStation-5. Even under qemu: after Debian/SPARC is booted, 'top' shows that qemu-system-sparc takes only 3% of a host&amp;nbsp; CPU.&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
How came that &lt;b&gt;Sun didn't support CPU power management on their own sun4m machines&lt;/b&gt;?&lt;br /&gt;
&lt;br /&gt;
P.S. By the way, NetBSD &lt;a href="http://www.mail-archive.com/source-changes-full@netbsd.org/msg10915.html"&gt;supports&lt;/a&gt; CPU power management too.&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ArtyomTarasenkosBlog/~4/75ViKVDoEzQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tyom.blogspot.com/feeds/4363127168763169894/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6739077729235978763&amp;postID=4363127168763169894" title="8 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6739077729235978763/posts/default/4363127168763169894?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6739077729235978763/posts/default/4363127168763169894?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ArtyomTarasenkosBlog/~3/75ViKVDoEzQ/power-management-in-sparc-solaris.html" title="Power management in SPARC &amp; Solaris" /><author><name>atar</name><uri>http://www.blogger.com/profile/16986140925986775324</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://4.bp.blogspot.com/-06oES5AtN24/T5J64gpKNBI/AAAAAAAAADM/HZciy5yelHk/s1600/P1040860.JPG" /></author><thr:total>8</thr:total><feedburner:origLink>http://tyom.blogspot.com/2012/03/power-management-in-sparc-solaris.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CU4ERHw8eyp7ImA9WhRaE00.&quot;"><id>tag:blogger.com,1999:blog-6739077729235978763.post-8001414997051774003</id><published>2012-01-22T21:14:00.000+01:00</published><updated>2012-02-15T12:05:05.273+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-15T12:05:05.273+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="sparc" /><category scheme="http://www.blogger.com/atom/ns#" term="SCSI" /><category scheme="http://www.blogger.com/atom/ns#" term="qemu" /><category scheme="http://www.blogger.com/atom/ns#" term="bug" /><category scheme="http://www.blogger.com/atom/ns#" term="sparc64" /><title>Does anybody use recent qemu versions?</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
After a long break I tried a current qemu git/master today. What can I say? The SPARC-related stuff is broken in a few places since a &lt;b&gt;few months&lt;/b&gt;. SCSI signals an error for the "Inquiry" command, Leon3 test hangs, sparc64 is broken too. Bisecting is tricky though, because at least sparc64 seems to broken in different ways in subsequent commits.&lt;br /&gt;
&lt;br /&gt;
Don't have time to fix it myself, but will send a couple of bug reports to the mailing list. Meanwhile, what is your favorite qemu version?&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Update&lt;/b&gt;: meanwhile (7/Feb/2012) SCSI and Leon3 issues are fixed, thanks to Thomas Higdon and Fabien Chouteau.&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ArtyomTarasenkosBlog/~4/0jn1Nqv8eCY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tyom.blogspot.com/feeds/8001414997051774003/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6739077729235978763&amp;postID=8001414997051774003" title="9 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6739077729235978763/posts/default/8001414997051774003?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6739077729235978763/posts/default/8001414997051774003?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ArtyomTarasenkosBlog/~3/0jn1Nqv8eCY/does-anybody-use-recent-qemu-versions.html" title="Does anybody use recent qemu versions?" /><author><name>atar</name><uri>http://www.blogger.com/profile/16986140925986775324</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://4.bp.blogspot.com/-06oES5AtN24/T5J64gpKNBI/AAAAAAAAADM/HZciy5yelHk/s1600/P1040860.JPG" /></author><thr:total>9</thr:total><feedburner:origLink>http://tyom.blogspot.com/2012/01/does-anybody-use-recent-qemu-versions.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEUNQng8cCp7ImA9WhdRFUs.&quot;"><id>tag:blogger.com,1999:blog-6739077729235978763.post-993312591416136523</id><published>2011-07-30T23:16:00.023+02:00</published><updated>2011-08-05T19:44:53.678+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-05T19:44:53.678+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="NetBSD" /><category scheme="http://www.blogger.com/atom/ns#" term="qemu" /><category scheme="http://www.blogger.com/atom/ns#" term="IRQ" /><category scheme="http://www.blogger.com/atom/ns#" term="success" /><category scheme="http://www.blogger.com/atom/ns#" term="sparc64" /><title>Of Course, It Runs NetBSD!™</title><content type="html">NetBSD boot was almost a piece of cake. It tries to detect more things than Solaris and Linux, so I had to implement a couple of device registers more. At the first glance using more registers contradicts with the declared portability. On another hand, it would work on some modified/weird chipsets having non-standard interrupt controllers. Don't know if such chipsets were ever produced though.&lt;br /&gt;
&lt;br /&gt;
&lt;table bgcolor="#cfe2f3"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;NetBSD 4.0.1 (INSTALL) #0: Wed Oct&amp;nbsp; 8 01:13:04 PDT 2008&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; builds@wb32:/home/builds/ab/netbsd-4-0-1-RELEASE/sparc64/200810080053Z-obj/home/builds/ab/netbsd-4-0-1-RELEASE/src/sys/arch/sparc64/compile/INSTALL&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;total memory = 256 MB&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;avail memory = 234 MB&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;timecounter: Timecounters tick every 10.000 msec&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;mainbus0 (root): QEMU,Ultra-3/2: hostid 80000000&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;cpu0 at mainbus0: SUNW,UltraSPARC @ 100.681 MHz, UPA id 0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;cpu0: 32K instruction (32 b/l), 16K data (32 b/l), 512K external (64 b/l)&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;...&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;# ping 10.0.2.2&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;PING 10.0.2.2 (10.0.2.2): 56 data bytes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;64 bytes from 10.0.2.2: icmp_seq=0 ttl=255 time=1.575 ms&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;64 bytes from 10.0.2.2: icmp_seq=1 ttl=255 time=1.150 ms&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;^C&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;----10.0.2.2 PING Statistics----&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2 packets transmitted, 2 packets received, 0.0% packet loss&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;round-trip min/avg/max/stddev = 1.150/1.363/1.575/0.301 ms&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;#&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
Haven't found any CPU bugs so far, only interrupt processing in the 
serial port (not relevant to [Open]Solaris). Surprisingly sparc32 and 
sparc64 serial drivers diverge quite a lot.&lt;br /&gt;
 &lt;br /&gt;
Next stop - FreeBSD/sparc64.&lt;img src="http://feeds.feedburner.com/~r/ArtyomTarasenkosBlog/~4/CH2QIHDJAd4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tyom.blogspot.com/feeds/993312591416136523/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6739077729235978763&amp;postID=993312591416136523" title="9 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6739077729235978763/posts/default/993312591416136523?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6739077729235978763/posts/default/993312591416136523?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ArtyomTarasenkosBlog/~3/CH2QIHDJAd4/of-course-it-runs-netbsd.html" title="Of Course, It Runs NetBSD!™" /><author><name>atar</name><uri>http://www.blogger.com/profile/16986140925986775324</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://4.bp.blogspot.com/-06oES5AtN24/T5J64gpKNBI/AAAAAAAAADM/HZciy5yelHk/s1600/P1040860.JPG" /></author><thr:total>9</thr:total><feedburner:origLink>http://tyom.blogspot.com/2011/07/of-course-it-runs-netbsd.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUAGQXgzfCp7ImA9WhdTGEg.&quot;"><id>tag:blogger.com,1999:blog-6739077729235978763.post-4869120341732299848</id><published>2011-07-17T00:02:00.002+02:00</published><updated>2011-07-17T00:02:00.684+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-17T00:02:00.684+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="OBP" /><category scheme="http://www.blogger.com/atom/ns#" term="NetBSD" /><category scheme="http://www.blogger.com/atom/ns#" term="Forth" /><title>Hiding the boot device from an OS</title><content type="html">Suspecting a bug in SCSI subsystem, I was wondering how to prevent an OS from detecting the device it's booting from. At first it sounds weird, but it's possible for most of OS/distributions in the SPARC (and probably PPC) world, because they&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;boot&amp;nbsp; init scripts from a RAM disk&lt;/li&gt;
&lt;li&gt;use IEEE 1275 device tree to find out available devices *&lt;/li&gt;
&lt;/ul&gt;
*) with exception of&amp;nbsp; Linux. At least the Linux uniform IDE driver tries to detect a hardware by probing.&lt;br /&gt;
&lt;br /&gt;
For FreeBSD, NetBSD, OpenBSD and Solaris it's possible to hide the boot device from the OS install CD with the following commands:&lt;br /&gt;
&lt;br /&gt;
&lt;b style="color: #666666;"&gt;ok&lt;/b&gt; cd scsi " unknown" name device-end&lt;br /&gt;
&lt;b style="color: #666666;"&gt;ok&lt;/b&gt; boot /unknown/sd@6,0:f&lt;br /&gt;
&lt;br /&gt;
Use the &lt;a href="http://wiki.laptop.org/go/Forth_Lesson_12"&gt;Forth&lt;/a&gt;, Luke!&lt;img src="http://feeds.feedburner.com/~r/ArtyomTarasenkosBlog/~4/2blPAHZj2rs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tyom.blogspot.com/feeds/4869120341732299848/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6739077729235978763&amp;postID=4869120341732299848" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6739077729235978763/posts/default/4869120341732299848?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6739077729235978763/posts/default/4869120341732299848?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ArtyomTarasenkosBlog/~3/2blPAHZj2rs/hiding-boot-device-from-os.html" title="Hiding the boot device from an OS" /><author><name>atar</name><uri>http://www.blogger.com/profile/16986140925986775324</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://4.bp.blogspot.com/-06oES5AtN24/T5J64gpKNBI/AAAAAAAAADM/HZciy5yelHk/s1600/P1040860.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://tyom.blogspot.com/2011/07/hiding-boot-device-from-os.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CE4ER3g-fip7ImA9WhdTGUU.&quot;"><id>tag:blogger.com,1999:blog-6739077729235978763.post-196598692523779320</id><published>2011-07-10T15:10:00.016+02:00</published><updated>2011-07-18T11:55:06.656+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-18T11:55:06.656+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="linux" /><category scheme="http://www.blogger.com/atom/ns#" term="qemu" /><category scheme="http://www.blogger.com/atom/ns#" term="user-mode" /><category scheme="http://www.blogger.com/atom/ns#" term="sparc64" /><title>User mode emulation for Linux/SPARC64</title><content type="html">As you know, qemu has a user-mode emulation. This means binaries for one CPU (for example SPARC) can be executed on another CPU (for example i686) under the same OS. The system calls are executed directly on the host (which means they are executed as fast as for native binaries), and the executable code itself is translated with TCG.&lt;br /&gt;
After I fixed ELF loading for SPARC64 binaries, qemu can load not only static Linux/sparc64 binaries, but dynamically linked ones too. To achieve that qemu has to be statically linked (it may sound confusing, for launching statically linked binaries qemu doesn't have to be built statically but for the dynamically one it has to be) and chrooted to the guest OS file system image:&lt;br /&gt;
&amp;nbsp;qemu$ ./configure --target-list=sparc-linux-user,sparc64-linux-user,sparc32plus-linux-user --static &amp;amp;&amp;amp; make&lt;br /&gt;
&amp;nbsp;...&lt;br /&gt;
&amp;nbsp;qemu$&amp;nbsp; mv -i sparc32plus-linux-user/qemu-sparc32plus ../debian-6-sparc64-initrd/&lt;br /&gt;
&amp;nbsp;qemu$&amp;nbsp; su&lt;br /&gt;
&amp;nbsp;Password:&lt;br /&gt;
&amp;nbsp;#&amp;nbsp; /usr/sbin/chroot ../debian-6-sparc64-initrd/ /qemu-sparc32plus -L . /bin/busybox&lt;br /&gt;
BusyBox v1.17.1 (Debian 1:1.17.1-8) multi-call binary.&lt;br /&gt;
Copyright (C) 1998-2009 Erik Andersen, Rob Landley, Denys Vlasenko&lt;br /&gt;
and others. Licensed under GPLv2.&lt;br /&gt;
See source distribution for full notice.&lt;br /&gt;
&lt;br /&gt;
Usage: busybox [function] [arguments]...&lt;br /&gt;
&amp;nbsp;&amp;nbsp; or: function [arguments]...&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BusyBox is a multi-call binary that combines many common Unix&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; utilities into a single executable.&amp;nbsp; Most people will create a&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; link to busybox for each function they wish to use and BusyBox&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; will act like whatever it was invoked as.&lt;br /&gt;
&lt;br /&gt;
Currently defined functions:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [, [[, ar, ash, basename, blockdev, cat, chmod, chown, chroot, cp, cut, dd, df, dirname, dmesg, dnsdomainname, echo, egrep, env, expr, false,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; find, free, freeramdisk, grep, gunzip, halt, head, hostname, id, init, ip, kill, klogd, ln, logger, ls, md5sum, mkdir, mknod, mkswap, modinfo,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; more, mount, mv, nc, pidof, pivot_root, poweroff, printf, ps, pwd, readlink, realpath, reboot, rm, rmdir, route, sed, sh, sleep, sort,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; swapoff, swapon, sync, syslogd, tail, tar, test, tftp, touch, tr, true, tty, udhcpc, umount, uname, uniq, wc, wget, zcat&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This is a great tool to find CPU bugs! One can use existing binaries for example to check that emulated CPU produces the same md5 or sha512 sum for a certain binary as the host does, or pack/unpack using gzip and bzip, or just observe weird unames:&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;/usr/sbin/chroot ../debian-6-sparc64-initrd/ /qemu-sparc32plus -L . /bin/uname -a&lt;br /&gt;
Linux localhost 2.6.34.9-69.fc13.x86_64 #1 SMP Tue May 3 09:23:03 UTC 2011 sun4 GNU/Linux&lt;img src="http://feeds.feedburner.com/~r/ArtyomTarasenkosBlog/~4/wAkr8xDk1mA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tyom.blogspot.com/feeds/196598692523779320/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6739077729235978763&amp;postID=196598692523779320" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6739077729235978763/posts/default/196598692523779320?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6739077729235978763/posts/default/196598692523779320?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ArtyomTarasenkosBlog/~3/wAkr8xDk1mA/user-mode-emulation-for-linuxsparc64.html" title="User mode emulation for Linux/SPARC64" /><author><name>atar</name><uri>http://www.blogger.com/profile/16986140925986775324</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://4.bp.blogspot.com/-06oES5AtN24/T5J64gpKNBI/AAAAAAAAADM/HZciy5yelHk/s1600/P1040860.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://tyom.blogspot.com/2011/07/user-mode-emulation-for-linuxsparc64.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0UFQXYzcSp7ImA9WhdSFUk.&quot;"><id>tag:blogger.com,1999:blog-6739077729235978763.post-1229913409181087800</id><published>2011-07-09T22:47:00.011+02:00</published><updated>2011-07-24T23:00:10.889+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-24T23:00:10.889+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="progress" /><category scheme="http://www.blogger.com/atom/ns#" term="NetBSD" /><category scheme="http://www.blogger.com/atom/ns#" term="MMU" /><category scheme="http://www.blogger.com/atom/ns#" term="qemu" /><category scheme="http://www.blogger.com/atom/ns#" term="sparc64" /><title>NetBSD vfs and MMU emulation</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
Since Solaris works perfectly, I turned again to NetBSD for the further test cases. &lt;br /&gt;
&lt;br /&gt;
&lt;table bgcolor="#cfe2f3"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;root on md0a dumps on md0b&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;root file system type: ffs&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;WARNING: clock gained 1005 days&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;WARNING: CHECK AND RESET THE DATE!&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;exec /sbin/init: error 8&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;init: trying /sbin/oinit&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;exec /sbin/oinit: error 2&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;init: trying /sbin/init.bak&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;exec /sbin/init.bak: error 2&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;init: not found panic: no init&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;cpu0: kdb breakpoint at 1362e60&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Stopped in pid 1.1 (init) at   0x1362e64:   nop&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;db&amp;gt; &lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
Hmm what would be a reason for such a behavior? Sounds &lt;a href="http://tyom.blogspot.com/2009/10/cant-invoke-etcinit-error-14.html"&gt;familiar, right&lt;/a&gt;? I hear you saying CPU math bug? Wrong. :)&lt;br /&gt;
The previous time I saw the message it was really a math bug. This time it's a MMU problem. Unlike SPARC v8, the v9 has a NF&lt;b&gt;O&lt;/b&gt; mode for page mappings, which means No Fault Only. The 'only' part is crucial: all other page loads should fault.&lt;br /&gt;
&lt;br /&gt;
Solaris knows what pages has been marked NFO (after all they can be marked by the OS only) and uses only the appropriate loads.&lt;br /&gt;
&lt;br /&gt;
On the other side NetBSD vfs implementation explicitly provokes such faults to load RAM pages from a file. Had to read the NetBSD documentation to understand how its vfs works. The sources are not that good documented.&lt;br /&gt;
&lt;br /&gt;
After fixing the bug (a sort of a counterpart to the one Tsuneo Saito &lt;a href="http://lists.gnu.org/archive/html/qemu-devel/2011-07/msg01224.html"&gt;mentioned on the mailing list&lt;/a&gt;), NetBSD gets a bit further:&lt;br /&gt;
&lt;br /&gt;
&lt;table bgcolor="#cfe2f3"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;Kernelized RAIDframe activated md0:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;internal 5120 KB image area&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;root on md0a dumps on md0b&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;root file system type: ffs&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;WARNING: clock gained 1005 days&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;WARNING: CHECK AND RESET THE DATE!&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;erase ^?, werase ^W, kill ^U, intr ^C&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
The only part is missing here is the '#' prompt after the message. :) Working on it.&lt;/div&gt;
&lt;img src="http://feeds.feedburner.com/~r/ArtyomTarasenkosBlog/~4/wosNt0e9Mqw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tyom.blogspot.com/feeds/1229913409181087800/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6739077729235978763&amp;postID=1229913409181087800" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6739077729235978763/posts/default/1229913409181087800?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6739077729235978763/posts/default/1229913409181087800?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ArtyomTarasenkosBlog/~3/wosNt0e9Mqw/netbsd-vfs-and-mmu-emulation.html" title="NetBSD vfs and MMU emulation" /><author><name>atar</name><uri>http://www.blogger.com/profile/16986140925986775324</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://4.bp.blogspot.com/-06oES5AtN24/T5J64gpKNBI/AAAAAAAAADM/HZciy5yelHk/s1600/P1040860.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://tyom.blogspot.com/2011/07/netbsd-vfs-and-mmu-emulation.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkQAQ389fyp7ImA9WhdTF04.&quot;"><id>tag:blogger.com,1999:blog-6739077729235978763.post-8132636818489534561</id><published>2011-07-02T23:30:00.078+02:00</published><updated>2011-07-15T13:45:42.167+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-15T13:45:42.167+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="HelenOS" /><category scheme="http://www.blogger.com/atom/ns#" term="progress" /><category scheme="http://www.blogger.com/atom/ns#" term="qemu" /><category scheme="http://www.blogger.com/atom/ns#" term="bug" /><category scheme="http://www.blogger.com/atom/ns#" term="sparc64" /><title>More math bugs</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: justify;"&gt;&amp;nbsp;Why would one file system work, and another one - not?&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-eAn5F4fhFWE/TiAjFqqCDlI/AAAAAAAAACo/2sVYuLITH44/s1600/helen0.4.3-qemu-before.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="492" src="http://1.bp.blogspot.com/-eAn5F4fhFWE/TiAjFqqCDlI/AAAAAAAAACo/2sVYuLITH44/s640/helen0.4.3-qemu-before.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Because the fs driver is buggy? Of course not! The ones who read this blog on a regular basis, know that &lt;a href="http://tyom.blogspot.com/2009/10/im-back.html"&gt;inability to read the file has to do with a bug in a math emulation&lt;/a&gt;.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Thanks to &lt;a href="http://jakubsuniversalblog.blogspot.com/"&gt;Jakub&lt;/a&gt;'s test case, I fixed two bugs with carry flag handling (yes, again). Now &lt;a href="http://trac.helenos.org/wiki/ArchSparc64"&gt;HelenOS/sparc64&lt;/a&gt; boot looks like this:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;img border="0" height="493" src="http://4.bp.blogspot.com/-aV6dkUjLnSk/Th9fwDOwe7I/AAAAAAAAACk/KItJdreN9GU/s640/helen0.4.3-qemu-works.png" width="640" /&gt;&lt;/div&gt;&lt;br /&gt;
My impressions of &lt;a href="http://www.helenos.org/"&gt;HelenOS&lt;/a&gt; - it's neat, the sources are good documented and easy readable. Also I needed just a few minutes to set up cross compiling under Linux/x86_64. So, if you need a small, micro-kernel(!) and multi-arch (amd64, arm32, ia32, ia64, mips32, ppc32, sparc64)  OS to play with, &lt;a href="http://www.helenos.org/"&gt;HelenOS&lt;/a&gt; is definitely worth looking at.&lt;img src="http://feeds.feedburner.com/~r/ArtyomTarasenkosBlog/~4/nNWfdpzIQe4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tyom.blogspot.com/feeds/8132636818489534561/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6739077729235978763&amp;postID=8132636818489534561" title="7 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6739077729235978763/posts/default/8132636818489534561?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6739077729235978763/posts/default/8132636818489534561?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ArtyomTarasenkosBlog/~3/nNWfdpzIQe4/more-math-bugs.html" title="More math bugs" /><author><name>atar</name><uri>http://www.blogger.com/profile/16986140925986775324</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://4.bp.blogspot.com/-06oES5AtN24/T5J64gpKNBI/AAAAAAAAADM/HZciy5yelHk/s1600/P1040860.JPG" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-eAn5F4fhFWE/TiAjFqqCDlI/AAAAAAAAACo/2sVYuLITH44/s72-c/helen0.4.3-qemu-before.png" height="72" width="72" /><thr:total>7</thr:total><feedburner:origLink>http://tyom.blogspot.com/2011/07/more-math-bugs.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk8AQX0_eCp7ImA9WhZWGUg.&quot;"><id>tag:blogger.com,1999:blog-6739077729235978763.post-146986192997313421</id><published>2011-05-21T07:14:00.000+02:00</published><updated>2011-05-21T07:14:00.340+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-21T07:14:00.340+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="OBP" /><category scheme="http://www.blogger.com/atom/ns#" term="qemu" /><category scheme="http://www.blogger.com/atom/ns#" term="OpenSolaris" /><category scheme="http://www.blogger.com/atom/ns#" term="sparc64" /><category scheme="http://www.blogger.com/atom/ns#" term="MilaX" /><title>Now finally something new</title><content type="html">Loading: /platform/sun4u/boot_archiveramdisk-root ufs-file-system&lt;br /&gt;
Loading: /platform/sun4u/kernel/sparcv9/unix&lt;br /&gt;
module /platform/sun4u/kernel/sparcv9/unix: text at [0x1000000, 0x10bf34d] data at 0x1800000&lt;br /&gt;
module /platform/sun4u/kernel/sparcv9/genunix: text at [0x10bf350, 0x12b5c7f] data at 0x1865e00&lt;br /&gt;
module /platform/sun4u/kernel/misc/sparcv9/platmod: text at [0x12b5c80, 0x12b5c97] data at 0x18bac30&lt;br /&gt;
module /platform/sun4u/kernel/cpu/sparcv9/SUNW,UltraSPARC-II: text at [0x12b5cc0, 0x12c2a37] data at 0x18bb2c0&lt;br /&gt;
SunOS Release 5.11 Version MilaX_0.3.2 64-bit&lt;br /&gt;
Copyright 1983-2008 Sun Microsystems, Inc.&amp;nbsp; All rights reserved.&lt;br /&gt;
Use is subject to license terms.&lt;br /&gt;
os-io Ethernet address = 52:54:0:12:34:56&lt;br /&gt;
Using default device instance data&lt;br /&gt;
mem = 262144K (0x10000000)&lt;br /&gt;
avail mem = 154615808&lt;br /&gt;
... &lt;br /&gt;
Preparing live image for use&lt;br /&gt;
Hostname: milax&lt;br /&gt;
Requesting System Maintenance Mode&lt;br /&gt;
(See /lib/svc/share/README for more information.)&lt;br /&gt;
Console login service(s) cannot run&lt;br /&gt;
&lt;br /&gt;
Root password for system maintenance (control-d to bypass):&lt;br /&gt;
single-user privilege assigned to /dev/console.&lt;br /&gt;
Entering System Maintenance Mode&lt;br /&gt;
&lt;br /&gt;
May 20 07:26:42 su: 'su root' succeeded for root on /dev/console&lt;br /&gt;
-bash: /usr/sbin/quota: No such file or directory&lt;br /&gt;
Sun Microsystems Inc.&amp;nbsp;&amp;nbsp; SunOS 5.11&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MilaX_0.3.2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; October 2008&lt;br /&gt;
-bash: /bin/mail: No such file or directory&lt;br /&gt;
-bash: id: command not found&lt;br /&gt;
-bash: id: command not found&lt;br /&gt;
-bash: [: !=: unary operator expected&lt;br /&gt;
(root@milax)# uname -X&lt;br /&gt;
System = SunOS&lt;br /&gt;
Node = milax&lt;br /&gt;
Release = 5.11&lt;br /&gt;
KernelID = MilaX_0.3.2&lt;br /&gt;
Machine = sun4u&lt;br /&gt;
BusType = &lt;unknown&gt;&lt;br /&gt;
Serial = &lt;unknown&gt;&lt;br /&gt;
Users = &lt;unknown&gt;&lt;br /&gt;
OEM# = 0&lt;br /&gt;
Origin# = 1&lt;br /&gt;
NumCPU = 1&lt;br /&gt;
&lt;br /&gt;
(root@milax)# uname -a&lt;br /&gt;
SunOS milax 5.11 MilaX_0.3.2 sun4u sparc sun4u&lt;br /&gt;
(root@milax)#&lt;/unknown&gt;&lt;/unknown&gt;&lt;/unknown&gt;&lt;br /&gt;
&lt;br /&gt;
The missing files above are caused by the maintenance mode which in turn is caused by the missing network card. So the next steps are obvious:&lt;br /&gt;
- plug in a supported NIC&lt;br /&gt;
- find a customer for the sun4u emulation&lt;br /&gt;
- ???&lt;br /&gt;
- PROFIT!&lt;br /&gt;
&lt;br /&gt;
PS. Btw, are there any live OpenSolaris/Illumos based live CDs newer than MilaX 0.3.2? The later MilaX versions seem to be PC-only.&lt;img src="http://feeds.feedburner.com/~r/ArtyomTarasenkosBlog/~4/iH07WlogaPQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tyom.blogspot.com/feeds/146986192997313421/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6739077729235978763&amp;postID=146986192997313421" title="11 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6739077729235978763/posts/default/146986192997313421?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6739077729235978763/posts/default/146986192997313421?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ArtyomTarasenkosBlog/~3/iH07WlogaPQ/now-finally-something-new.html" title="Now finally something new" /><author><name>atar</name><uri>http://www.blogger.com/profile/16986140925986775324</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://4.bp.blogspot.com/-06oES5AtN24/T5J64gpKNBI/AAAAAAAAADM/HZciy5yelHk/s1600/P1040860.JPG" /></author><thr:total>11</thr:total><feedburner:origLink>http://tyom.blogspot.com/2011/05/now-finally-something-new.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUcGSXszeSp7ImA9WhdTFk4.&quot;"><id>tag:blogger.com,1999:blog-6739077729235978763.post-8183641206776677646</id><published>2011-05-21T01:13:00.000+02:00</published><updated>2011-07-14T10:43:48.581+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-14T10:43:48.581+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="progress" /><category scheme="http://www.blogger.com/atom/ns#" term="qemu" /><category scheme="http://www.blogger.com/atom/ns#" term="bug" /><category scheme="http://www.blogger.com/atom/ns#" term="sun4u" /><category scheme="http://www.blogger.com/atom/ns#" term="sparc64" /><category scheme="http://www.blogger.com/atom/ns#" term="fpu" /><title>Seen a really broken pipe</title><content type="html">Have you seen a broken pipe? Sounds like a stupid question for everyone who is working with *NIX. Everyone who has English as a mother tongue, or is old enough to use a non-localized OS has seen a "broken pipe" message. A younger generation might have seen the message in their native language.&lt;br /&gt;
&lt;br /&gt;
Well, that's not the sort of brokenness&amp;nbsp; I'm talking about.&amp;nbsp; I mean it more literary:&lt;br /&gt;
&lt;br /&gt;
# echo "This pipe works fine" |cat&lt;br /&gt;
This pipe works fine&lt;br /&gt;
# echo "And this pipe is veeeeeeeeeeeeeeeeeeeery broken. This pipe is really very broken. Broken." | cat&lt;br /&gt;
Ths pip eisveTkebn&lt;br /&gt;
&lt;br /&gt;
Ops. Had to spend a lot of of time in Solaris ascending from SCSI driver (at first I didn't realize that the bug appears in pipes, it looked like a DMA bug) to streams, pipe and so on and then descending to the memcpy which was the source of trouble. It turned out, memcpy uses different routines for small and large data chunks. The small chunks are copied in a loop word-wise and the large ones are copied using VIS instructions (that's SPARC equivalent for Intel's MMX). The emulation of VIS instructions in qemu is buggy, so the memory gets corrupted when these instructions are used.&lt;br /&gt;
&lt;br /&gt;
Once again I'm very impressed that Solaris 2.5.1 - Solaris 7 boots without problems on such a broken hardware. Let's see if&amp;nbsp; the newer Solaris versions would work with this emulation bug fixed.&lt;img src="http://feeds.feedburner.com/~r/ArtyomTarasenkosBlog/~4/NqdhcCbEOaY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tyom.blogspot.com/feeds/8183641206776677646/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6739077729235978763&amp;postID=8183641206776677646" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6739077729235978763/posts/default/8183641206776677646?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6739077729235978763/posts/default/8183641206776677646?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ArtyomTarasenkosBlog/~3/NqdhcCbEOaY/seen-really-broken-pipe.html" title="Seen a really broken pipe" /><author><name>atar</name><uri>http://www.blogger.com/profile/16986140925986775324</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://4.bp.blogspot.com/-06oES5AtN24/T5J64gpKNBI/AAAAAAAAADM/HZciy5yelHk/s1600/P1040860.JPG" /></author><thr:total>2</thr:total><feedburner:origLink>http://tyom.blogspot.com/2011/05/seen-really-broken-pipe.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C04FQX0yeip7ImA9WhZQGEw.&quot;"><id>tag:blogger.com,1999:blog-6739077729235978763.post-5161810260900802074</id><published>2011-04-23T11:32:00.032+02:00</published><updated>2011-04-26T11:58:30.392+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-26T11:58:30.392+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="OpenBIOS" /><category scheme="http://www.blogger.com/atom/ns#" term="sparc" /><category scheme="http://www.blogger.com/atom/ns#" term="qemu" /><category scheme="http://www.blogger.com/atom/ns#" term="success" /><category scheme="http://www.blogger.com/atom/ns#" term="Solaris" /><title>OpenBIOS strikes back</title><content type="html">Mark &lt;a href="http://lists.openbios.org/pipermail/openbios/2011-April/006338.html"&gt;did it&lt;/a&gt;! OpenBIOS svn.r1035 with two patches (&lt;a href="http://lists.openbios.org/pipermail/openbios/2011-April/006337.html"&gt;escc&lt;/a&gt; and &lt;a href="http://lists.openbios.org/pipermail/openbios/2011-April/006350.html"&gt;lance&lt;/a&gt;) can boot a sun4m Solaris. As soon as the patches are reviewed and committed I'll have to update the how-to. Booting Solaris is going to be much simpler. Congratulations the OpenBIOS Team!&lt;img src="http://feeds.feedburner.com/~r/ArtyomTarasenkosBlog/~4/aClKBZqFuSI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tyom.blogspot.com/feeds/5161810260900802074/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6739077729235978763&amp;postID=5161810260900802074" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6739077729235978763/posts/default/5161810260900802074?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6739077729235978763/posts/default/5161810260900802074?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ArtyomTarasenkosBlog/~3/aClKBZqFuSI/openbios-strikes-back.html" title="OpenBIOS strikes back" /><author><name>atar</name><uri>http://www.blogger.com/profile/16986140925986775324</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://4.bp.blogspot.com/-06oES5AtN24/T5J64gpKNBI/AAAAAAAAADM/HZciy5yelHk/s1600/P1040860.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://tyom.blogspot.com/2011/04/openbios-strikes-back.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0EHQHk4eip7ImA9WhZQFEg.&quot;"><id>tag:blogger.com,1999:blog-6739077729235978763.post-2986759923629687071</id><published>2011-04-22T09:00:00.000+02:00</published><updated>2011-04-22T09:00:31.732+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-22T09:00:31.732+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="OBP" /><category scheme="http://www.blogger.com/atom/ns#" term="OpenSolaris" /><category scheme="http://www.blogger.com/atom/ns#" term="sparc64" /><category scheme="http://www.blogger.com/atom/ns#" term="Solaris" /><category scheme="http://www.blogger.com/atom/ns#" term="MilaX" /><title>Seen a usable #</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Well sort of:&lt;br /&gt;
&lt;br /&gt;
&lt;table bgcolor="#cfe2f3"&gt;&lt;tbody&gt;
&lt;tr&gt; &lt;td&gt;Loading: /platform/sun4u/ufsboot&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt; &lt;td&gt;Size: 330820+55556+67364 Bytes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt; &lt;td&gt;SunOS Release 5.7 Version Generic_106541-08 [UNIX(R) System V Release 4.0]&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt; &lt;td&gt;Copyright (c) 1983-1999, Sun Microsystems, Inc.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt; &lt;td&gt;Ethernet address = 52:54:0:12:34:56&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt; &lt;td&gt;Using default device instance data&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt; &lt;td&gt;# uname -X&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt; &lt;td&gt;System = SunOS&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt; &lt;td&gt;Node =&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt; &lt;td&gt;Release = 5.7&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt; &lt;td&gt;KernelID = Generic_106541-08&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt; &lt;td&gt;Machine = sun4u&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt; &lt;td&gt;BusType = &amp;lt;unknown&amp;gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt; &lt;td&gt;Serial = &amp;lt;unknown&amp;gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt; &lt;td&gt;Users = &amp;lt;unknown&amp;gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt; &lt;td&gt;OEM# = 0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt; &lt;td&gt;Origin# = 1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt; &lt;td&gt;NumCPU = 1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt; &lt;td&gt;# ls&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt; &lt;td&gt;a&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dev&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;kernel&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;opt&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;proto&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tmp&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;bin&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;devices&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;lib&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;platform&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;reconfigure&amp;nbsp; usr&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;cdrom&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;etc&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mnt&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;proc&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sbin&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var &lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
So, the Solaris 2.6 and 7 kernels are functional in a minimal mode (the 2.5.1 and 8+ hang on device detection). The single user mode is not there yet though:&lt;br /&gt;
&lt;br /&gt;
&lt;table bgcolor="#cfe2f3"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;...&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;ld.so.1: internal: malloc failed&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Killed&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;FATAL ERROR: / file system type "" is unknown&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Exiting to shell.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;#  &lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
Nice is that Solaris engineers did a really good job making the OS robust. The message above comes from a branch in a script which has a following comment:&lt;br /&gt;
&lt;br /&gt;
&lt;table bgcolor="#cfe2f3"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # "this never happens" :-)&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
Expect the unexpected, well done!&lt;br /&gt;
&lt;br /&gt;
Now, the bad news: MilaX 0.3.2, and probably other OpenSolaris distributions are eager to play with the E-Cache, which qemu doesn't emulate. If I find the way to tell MilaX that there is no cache, it probably would get it up to the command line too. The old Solaris versions had a '-n' boot parameter to switch the cache off, but MilaX says this boot parameter is invalid.&lt;br /&gt;
&lt;br /&gt;
Gonna take a break now. (Happy Easter, everyone!) The next stop is a working single user mode. Stay tuned!&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ArtyomTarasenkosBlog/~4/ICphZKg44ew" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tyom.blogspot.com/feeds/2986759923629687071/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6739077729235978763&amp;postID=2986759923629687071" title="5 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6739077729235978763/posts/default/2986759923629687071?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6739077729235978763/posts/default/2986759923629687071?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ArtyomTarasenkosBlog/~3/ICphZKg44ew/seen-usable.html" title="Seen a usable #" /><author><name>atar</name><uri>http://www.blogger.com/profile/16986140925986775324</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://4.bp.blogspot.com/-06oES5AtN24/T5J64gpKNBI/AAAAAAAAADM/HZciy5yelHk/s1600/P1040860.JPG" /></author><thr:total>5</thr:total><feedburner:origLink>http://tyom.blogspot.com/2011/04/seen-usable.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkUDSHw6eSp7ImA9WhZQEk8.&quot;"><id>tag:blogger.com,1999:blog-6739077729235978763.post-3131602119606334059</id><published>2011-04-16T15:16:00.046+02:00</published><updated>2011-04-19T15:37:59.211+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-19T15:37:59.211+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="OBP" /><category scheme="http://www.blogger.com/atom/ns#" term="qemu" /><category scheme="http://www.blogger.com/atom/ns#" term="sparc64" /><title>I've seen the # but it doesn't count</title><content type="html">It turned out that last weekend I didn't specify the contest conditions good enough.&lt;br /&gt;
&lt;br /&gt;
Now I have to tell that I've seen the boot prompt under qemu-system-sparc64, but being fair, it doesn't count yet, because&lt;br /&gt;
a) only Solaris 2.5.1 - 7 get it up to there. The goal for 64 bit machine is certainly OpenSolaris (or maybe "just" Solaris 10? What do you think?).&lt;br /&gt;
b) the system hangs right after printing the prompt.&lt;br /&gt;
&lt;br /&gt;
The next goal is therefore a usable # prompt, not just the hanging one. :-) But stay tuned, I'm getting closer...&lt;img src="http://feeds.feedburner.com/~r/ArtyomTarasenkosBlog/~4/gOzFhvmLwsE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tyom.blogspot.com/feeds/3131602119606334059/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6739077729235978763&amp;postID=3131602119606334059" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6739077729235978763/posts/default/3131602119606334059?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6739077729235978763/posts/default/3131602119606334059?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ArtyomTarasenkosBlog/~3/gOzFhvmLwsE/ive-seen-but-it-doesnt-count.html" title="I've seen the # but it doesn't count" /><author><name>atar</name><uri>http://www.blogger.com/profile/16986140925986775324</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://4.bp.blogspot.com/-06oES5AtN24/T5J64gpKNBI/AAAAAAAAADM/HZciy5yelHk/s1600/P1040860.JPG" /></author><thr:total>1</thr:total><feedburner:origLink>http://tyom.blogspot.com/2011/04/ive-seen-but-it-doesnt-count.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUACR3k9fyp7ImA9WhZRGU0.&quot;"><id>tag:blogger.com,1999:blog-6739077729235978763.post-2532224623987435177</id><published>2011-04-09T22:08:00.050+02:00</published><updated>2011-04-15T23:42:46.767+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-15T23:42:46.767+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="OpenBIOS" /><category scheme="http://www.blogger.com/atom/ns#" term="OBP" /><category scheme="http://www.blogger.com/atom/ns#" term="sparc" /><category scheme="http://www.blogger.com/atom/ns#" term="qemu" /><category scheme="http://www.blogger.com/atom/ns#" term="sparc64" /><category scheme="http://www.blogger.com/atom/ns#" term="Solaris" /><title>Whose house?</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;I occurred to me that I'm sort of competing with Mark Cave-Ayland. While Mark makes a really good job to get a proprietary OS &lt;a href="http://lists.openbios.org/pipermail/openbios/2011-April/006323.html"&gt;(Solaris 8) working with an Open Source firmware&lt;/a&gt; (OpenBIOS) under a 32 bit SPARC qemu machine, I'm trying to get a Open Source OS (OpenSolaris) working with a proprietary firmware (OBP) under a 64 bit SPARC qemu machine. Right now we are at about the same place - he is right after the disk detection, I'm a bit behind.&lt;br /&gt;
&lt;br /&gt;
Who's gonna see the '#' first, what are your bets? What task do you think is easier?&lt;br /&gt;
&lt;br /&gt;
But speaking seriously, if Mark makes it first I'll buy him a beer.&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ArtyomTarasenkosBlog/~4/8kFej1y2U6Q" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tyom.blogspot.com/feeds/2532224623987435177/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6739077729235978763&amp;postID=2532224623987435177" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6739077729235978763/posts/default/2532224623987435177?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6739077729235978763/posts/default/2532224623987435177?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ArtyomTarasenkosBlog/~3/8kFej1y2U6Q/whose-house.html" title="Whose house?" /><author><name>atar</name><uri>http://www.blogger.com/profile/16986140925986775324</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://4.bp.blogspot.com/-06oES5AtN24/T5J64gpKNBI/AAAAAAAAADM/HZciy5yelHk/s1600/P1040860.JPG" /></author><thr:total>4</thr:total><feedburner:origLink>http://tyom.blogspot.com/2011/04/whose-house.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkMAQnc7fSp7ImA9WhZSFko.&quot;"><id>tag:blogger.com,1999:blog-6739077729235978763.post-4990455547671920205</id><published>2011-03-27T21:59:00.135+02:00</published><updated>2011-04-01T19:20:43.905+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-01T19:20:43.905+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="OpenBIOS" /><category scheme="http://www.blogger.com/atom/ns#" term="OBP" /><category scheme="http://www.blogger.com/atom/ns#" term="Martux" /><category scheme="http://www.blogger.com/atom/ns#" term="progress" /><category scheme="http://www.blogger.com/atom/ns#" term="qemu" /><category scheme="http://www.blogger.com/atom/ns#" term="success" /><category scheme="http://www.blogger.com/atom/ns#" term="ufsboot" /><category scheme="http://www.blogger.com/atom/ns#" term="sparc64" /><category scheme="http://www.blogger.com/atom/ns#" term="Solaris" /><title>Round and round she goes, and where she stops nobody knows</title><content type="html">After a while I got back to qemu. This time to the sparc64 port. It's interesting to see how the highlights of the sun4m story are repeating. With the difference that this time the way goes faster. The highlights of the last weekends:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;What? Not even a greeting message? I should give it up. &lt;i style="color: #999999;"&gt;hack, hack, hack&lt;/i&gt; &lt;/li&gt;
&lt;li&gt;Oh, wow, it gives a message "Button Power ON"! Too bad it hangs afterwards. &lt;i style="color: #999999;"&gt;hack, hack, hack&lt;/i&gt; &lt;/li&gt;
&lt;li&gt;Ha! got it up to the Forth bootstrapping, too bad I have no prompt. &lt;i style="color: #999999;"&gt;hack, hack, hack&lt;/i&gt; &lt;/li&gt;
&lt;li&gt; Yes! The Forth is with me, there finally is the "&lt;b&gt;ok&lt;/b&gt; " prompt. Too bad it sees no devices. &lt;i style="color: #999999;"&gt;hack, hack, hack&lt;/i&gt; &lt;/li&gt;
&lt;li&gt;Woo-hoo, OBP sees a disk controller! Why doesn't it see the disks? &lt;i style="color: #999999;"&gt;hack, hack, hack&lt;/i&gt; &lt;/li&gt;
&lt;li&gt;Aha, there are my disks. Can I boot Solaris, please? Hrm, no. Can I boot anything? No?!? &lt;i style="color: #999999;"&gt;hack, hack&lt;/i&gt; &lt;/li&gt;
&lt;li&gt;Ok, now it's properly initialized. Well, properly enough to boot SILO, and yes, it's stuck at ufsboot just like the sparc32 version did.&lt;/li&gt;
&lt;li&gt;Ta-da! Finally I see something new:&lt;/li&gt;
&lt;/ul&gt;SunOS Release 5.11 Version Natamar_0.4__b96 64-bit&lt;br /&gt;
Copyright 1983-2008 Sun Microsystems, Inc.&amp;nbsp; All rights reserved.&lt;br /&gt;
Use is subject to license terms.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;But wait, didn't I see it with OpenBIOS?!? Yes, I did. In fact all the 64 bit SPARC operating systems I tried so far go a little further with OpenBIOS.&lt;/li&gt;
&lt;li&gt;So, can OBP on qemu-system-sparc64 do anything the OpenBIOS can't?!? No?!? (because badly documented missing devices, probably necessary just for OBP, are badly hacked by me). I should give it up. :-)&lt;/li&gt;
&lt;/ul&gt;And this is the progress so far. Hats off to the &lt;a href="http://www.helenos.org/"&gt;HelenOS &lt;/a&gt;team who managed to get their OS running under qemu. No other OS can work under qemu-system-sparc64 yet.&lt;br /&gt;
&lt;br /&gt;
Does anyone have a Martux 0.2 image? It used to be available on &lt;a href="http://www.martux.org/"&gt;the authors site&lt;/a&gt;, but seems to be gone, leaving just &lt;a href="http://www.genunix.org/distributions/martux/marTux_0.2/MD5sums.ascii"&gt;the check sum files&lt;/a&gt;. The file I'm looking for is &lt;br /&gt;
&lt;pre&gt;CD_sun4u_sparcv9__marTux_0.2__small_naked_demo_cd_bs2048b.iso.bz2 .&lt;/pre&gt;&lt;img src="http://feeds.feedburner.com/~r/ArtyomTarasenkosBlog/~4/_D32DfeUFwc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tyom.blogspot.com/feeds/4990455547671920205/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6739077729235978763&amp;postID=4990455547671920205" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6739077729235978763/posts/default/4990455547671920205?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6739077729235978763/posts/default/4990455547671920205?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ArtyomTarasenkosBlog/~3/_D32DfeUFwc/round-and-round-she-goes-and-where-she.html" title="Round and round she goes, and where she stops nobody knows" /><author><name>atar</name><uri>http://www.blogger.com/profile/16986140925986775324</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://4.bp.blogspot.com/-06oES5AtN24/T5J64gpKNBI/AAAAAAAAADM/HZciy5yelHk/s1600/P1040860.JPG" /></author><thr:total>4</thr:total><feedburner:origLink>http://tyom.blogspot.com/2011/03/round-and-round-she-goes-and-where-she.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0cNRHo7cSp7ImA9WhZWGU4.&quot;"><id>tag:blogger.com,1999:blog-6739077729235978763.post-5976342536986120499</id><published>2011-02-12T07:35:00.002+01:00</published><updated>2011-05-21T00:38:15.409+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-21T00:38:15.409+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="OpenBIOS" /><category scheme="http://www.blogger.com/atom/ns#" term="sparc" /><category scheme="http://www.blogger.com/atom/ns#" term="qemu" /><title>Sent a small patch to OpenBIOS</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Now there is a few bytes of my code in the OpenBIOS project as well.&lt;br /&gt;
Switching perspectives is an interesting experience: while debugging qemu and seeing something what I don't understand immediately, the first thought is that some hw device is not properly emulated.&lt;br /&gt;
Debugging OpenBIOS I'm pretty much sure that hw emulation is fine.&lt;br /&gt;
&lt;br /&gt;
Anyway, fixed one bug. Solaris still crashes on the boot,&amp;nbsp; but now it should be possible to switch off the mapping of the page 0x0.&lt;br /&gt;
&lt;br /&gt;
In case you are wondering what this would be good for, there are 2 good reasons: a) being compliant to IEEE-1275 SPARC supplement, and more importantly b) ability to easy catch a null pointer dereferences.&lt;br /&gt;
&lt;br /&gt;
The trivial rest of the Solaris boot exercise is left to Mark, Blue and other OpenBIOS developers. :-)&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ArtyomTarasenkosBlog/~4/C4xXDeiViCM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tyom.blogspot.com/feeds/5976342536986120499/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6739077729235978763&amp;postID=5976342536986120499" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6739077729235978763/posts/default/5976342536986120499?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6739077729235978763/posts/default/5976342536986120499?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ArtyomTarasenkosBlog/~3/C4xXDeiViCM/sent-small-patch-to-openbios.html" title="Sent a small patch to OpenBIOS" /><author><name>atar</name><uri>http://www.blogger.com/profile/16986140925986775324</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://4.bp.blogspot.com/-06oES5AtN24/T5J64gpKNBI/AAAAAAAAADM/HZciy5yelHk/s1600/P1040860.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://tyom.blogspot.com/2011/02/sent-small-patch-to-openbios.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A08CQHg7cCp7ImA9Wx9RGE4.&quot;"><id>tag:blogger.com,1999:blog-6739077729235978763.post-8497679780037641831</id><published>2010-10-09T23:25:00.012+02:00</published><updated>2010-12-20T11:11:01.608+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-12-20T11:11:01.608+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="sparc" /><category scheme="http://www.blogger.com/atom/ns#" term="qemu" /><category scheme="http://www.blogger.com/atom/ns#" term="bug" /><category scheme="http://www.blogger.com/atom/ns#" term="Solaris" /><title>Bug in all Solaris versions after 5.7?!?</title><content type="html">Tried to clean up some patches for submitting upstream, and it turned out that one of the hacks is needed because of a Solaris bug! I'm really astonished.&lt;br /&gt;
The init routine of the network card driver in Solaris 2.6 has this piece of code:&lt;br /&gt;
&lt;br /&gt;
&lt;table bgcolor="#cfe2f3"&gt;&lt;tbody&gt;
&lt;tr&gt; &lt;td&gt;call&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ddi_get_parent&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt; &lt;td&gt;ld&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [%l0 + 0xc], %o0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt; &lt;td&gt;call&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ddi_get_driver_private&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt; &lt;td&gt;nop&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt; &lt;td&gt;add&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %o0, &lt;b&gt;0x4&lt;/b&gt;, %g2&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt; &lt;td&gt;st&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %g2, [%l0 + 0x720]&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
That's how it looks in Solaris 9:&lt;br /&gt;
&lt;table bgcolor="#cfe2f3"&gt;&lt;tbody&gt;
&lt;tr&gt; &lt;td&gt;call&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ddi_get_parent&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt; &lt;td&gt;ld&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [%l0 + 0x10], %o0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt; &lt;td&gt;call&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ddi_get_driver_private&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt; &lt;td&gt;nop&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt; &lt;td&gt;add&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %o0, &lt;b&gt;0x10&lt;/b&gt;, %g2&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt; &lt;td&gt;st&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %g2, [%l0 + 0x728]&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
Adding 0x10 to the base of dma registers, makes a pointer to a nowhere.&lt;br /&gt;
&lt;br /&gt;
Yes, qemu is not precise, and doesn't emulate memory aliasing (Blue Swirl had a patch for it), but hey, Solaris works on sun4m only due to a &lt;i&gt;coincidence&lt;/i&gt;!&lt;br /&gt;
&lt;br /&gt;
So, all the Solaris versions from 5.7 to 9 can be booted in qemu by hot patching in kadb (booting kadb is already described in &lt;a href="http://tyom.blogspot.com/2009/12/solaris-under-qemu-how-to.html"&gt;the how-to&lt;/a&gt;).&lt;br /&gt;
&lt;br /&gt;
That's how I patched Solaris 9 for booting under qemu:&lt;br /&gt;
&lt;table bgcolor="#cfe2f3"&gt;&lt;tbody&gt;
&lt;tr&gt; &lt;td&gt;kadb[0]: &lt;b&gt;le#leinit:b&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;i&gt;set a deferred breakpoint&lt;/i&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt; &lt;td&gt;kadb[0]: &lt;b&gt;:c&amp;nbsp;&amp;nbsp;  &lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;i&gt;continue execution&lt;/i&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt; &lt;td&gt;... &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt; &lt;td&gt;kadb[0]: &lt;b&gt;leinit+0x654?i&lt;/b&gt; &lt;/td&gt;&lt;td&gt;&lt;i&gt;check that we are at the correct place&lt;/i&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt; &lt;td&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;add&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %o0, 0x10, %g2&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt; &lt;td&gt;kadb[0]: leinit+0x654/X&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt; &lt;td&gt;leinit+0x654:&amp;nbsp;&amp;nbsp; 84022010&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt; &lt;td&gt;kadb[0]: &lt;b&gt;leinit+0x654/W 84022004&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt; &lt;td&gt;leinit+0x654:&amp;nbsp;&amp;nbsp; 0x84022010&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp;&amp;nbsp; 0x84022004&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/td&gt;&lt;td&gt;&lt;i&gt;patch&lt;/i&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt; &lt;td&gt;kadb[0]: &lt;b&gt;leinit:d&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;i&gt;delete the breakpoint&lt;/i&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt; &lt;td&gt;kadb[0]: &lt;b&gt;:c&lt;/b&gt; &lt;/td&gt;&lt;td&gt;&lt;i&gt;continue&lt;/i&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
Once again I can only recommend&amp;nbsp; reading the &lt;a href="http://www.amazon.com/PANIC-System-Analysis-Handbook-CD-ROM/dp/0131493868?ie=UTF8&amp;amp;tag=artyomtsblog-20&amp;amp;link_code=btl&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;PANIC! UNIX System Crash Dump Analysis Handbook&lt;/a&gt; to understand the basics before patching anything.&lt;img src="http://feeds.feedburner.com/~r/ArtyomTarasenkosBlog/~4/01By2AjOgiU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://tyom.blogspot.com/feeds/8497679780037641831/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=6739077729235978763&amp;postID=8497679780037641831" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6739077729235978763/posts/default/8497679780037641831?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6739077729235978763/posts/default/8497679780037641831?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ArtyomTarasenkosBlog/~3/01By2AjOgiU/bug-in-all-solaris-versions-after-57.html" title="Bug in all Solaris versions after 5.7?!?" /><author><name>atar</name><uri>http://www.blogger.com/profile/16986140925986775324</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://4.bp.blogspot.com/-06oES5AtN24/T5J64gpKNBI/AAAAAAAAADM/HZciy5yelHk/s1600/P1040860.JPG" /></author><thr:total>4</thr:total><feedburner:origLink>http://tyom.blogspot.com/2010/10/bug-in-all-solaris-versions-after-57.html</feedburner:origLink></entry></feed>
