[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] Poking at m68k gitorious branch.
From: |
Rob Landley |
Subject: |
Re: [Qemu-devel] Poking at m68k gitorious branch. |
Date: |
Fri, 20 Apr 2012 15:58:47 -0500 |
User-agent: |
Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.28) Gecko/20120313 Thunderbird/3.1.20 |
On 04/19/2012 05:47 AM, Laurent Vivier wrote:
> Hi Rob,
>
> you need to do a fresh clone because I rebase the branch frequently on
> the qemu/master instead of merging it. It is easier to manage for me.
Ok. (Did that.)
> BTW, qemu-system-m68k is not working currently.
Did it ever? :)
> I'm working on it on the
> branch q800 to emulate a macintosh quadra 800. I'm able to boot until
> the first process (1), then I have some issues with the MMU.
Well that's further than I've gotten, and I'd like to reproduce it.
> The serial
> line is working (ttyS0 is in fact the second port, use "-serial none
> -serial stdio" to see it), the framebuffer too.
A) Um... why?
B) So if I just say "-nographic" I should use /dev/ttyS1 as the console?
> The ADB emulation needs
> some more work to be correctly attached to m68k VIA instead of PPC CUDA.
Ok.
> For the SCSI, we can use ESP, but the pseudo-dma mode used by q800 is
> not implemented.
Does it have a PIO option?
> To compile my m68k kernel I use a chroot and the m68k linux-user qemu
> mode, that seems to work well... perhaps you can test your tools inside
> this.
I'm using my aboriginal linux thing that's already doing working systems
for arm, mips, powerpc, sh4, x86, and so on.
The config attached last time is what I'm building. That's a miniconfig
combining the following target-specific config symbols:
LINUX_CONFIG="
CONFIG_MMU=y
CONFIG_MAC=y
CONFIG_M68020=y
#CONFIG_M68030=y
#CONFIG_M68040=y
CONFIG_PROC_HARDWARE=y
CONFIG_BLK_DEV_MAC_IDE=y
CONFIG_BLK_DEV_SR_VENDOR=y
CONFIG_MAC_SCSI=y
CONFIG_SCSI_MAC_ESP=y
CONFIG_MACINTOSH_DRIVERS=y
CONFIG_ADB=y
CONFIG_ADB_MACII=y
CONFIG_MAC8390=y
CONFIG_SERIAL_PMACZILOG=y
CONFIG_SERIAL_PMACZILOG_TTYS=y
CONFIG_SERIAL_PMACZILOG_CONSOLE=y
"
With the following target-generic symbols:
CONFIG_EXPERIMENTAL=y
CONFIG_NO_HZ=y
CONFIG_SWAP=y
CONFIG_SYSVIPC=y
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
CONFIG_PCI=y
CONFIG_BINFMT_ELF=y
CONFIG_NET=y
CONFIG_PACKET=y
CONFIG_UNIX=y
CONFIG_INET=y
CONFIG_BLK_DEV=y
CONFIG_BLK_DEV_LOOP=y
CONFIG_IDE=y
CONFIG_IDE_GD=y
CONFIG_IDE_GD_ATA=y
CONFIG_BLK_DEV_IDECD=y
CONFIG_SCSI=y
CONFIG_BLK_DEV_SD=y
CONFIG_BLK_DEV_SR=y
CONFIG_SCSI_LOWLEVEL=y
CONFIG_NETDEVICES=y
CONFIG_NET_ETHERNET=y
CONFIG_NET_PCI=y
CONFIG_8139CP=y
CONFIG_HW_RANDOM=y
CONFIG_RTC_CLASS=y
CONFIG_RTC_HCTOSYS=y
CONFIG_RTC_INTF_SYSFS=y
CONFIG_RTC_INTF_DEV=y
CONFIG_EXT4_FS=y
CONFIG_EXT4_USE_FOR_EXT23=y
CONFIG_TMPFS=y
CONFIG_MISC_FILESYSTEMS=y
CONFIG_SQUASHFS=y
CONFIG_SQUASHFS_ZLIB=y
CONFIG_MAGIC_SYSRQ=y
CONFIG_DEVTMPFS=y
CONFIG_VIRTUALIZATION=y
CONFIG_VIRTIO_PCI=y
CONFIG_VIRTIO_NET=y
CONFIG_NET_9P=y
CONFIG_NET_9P_VIRTIO=y
CONFIG_NETWORK_FILESYSTEMS=y
CONFIG_9P_FS=y
CONFIG_9P_FS_POSIX_ACL=y
# More random (inexplicable) guard symbols added in 3.2. TODO: write
# miniconfig expander that automatically sets guard symbols when setting a
# dependent symbol.
CONFIG_ETHERNET=y
CONFIG_NET_VENDOR_INTEL=y
CONFIG_NET_VENDOR_REALTEK=y
CONFIG_NET_VENDOR_AMD=y
CONFIG_NET_VENDOR_NATSEMI=y
CONFIG_NET_VENDOR_8390=y
For the moment I'm not even passing it a root filesystem, but just
trying to get it to give me console messages.
And it did!
$ m68k-softmmu/qemu-system-m68k -nographic -no-reboot -kernel
~/aboriginal/ab2/build/system-image-m68k/vmlinux -append "console=ttyS1
root=/dev/sda panic=1 PATH=/sbin:/bin root=/sbin/init.sh"
ABCFGHIJK
Linux version 3.3.0 (address@hidden) (gcc version 4.2.1) #1 Thu Apr 19
16:38:04 CDT 2012
bootconsole [early0] enabled
Detected Macintosh model: 35
VIA1 at 50f00000 is a 6522 or clone
VIA2 at 50f02000 is a 6522 or clone
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXwriteb: 1 vBufB = 3e
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXwriteb: 1 vBufB = 3e
Apple Macintosh Quadra 800
qemu: fatal: Illegal instruction: 7f45 @ 00000000
D0 = 00000000 A0 = 0024f000 F0 = 7fff ffffffffffffffff
D1 = 00000400 A1 = 00001d00 F1 = 7fff ffffffffffffffff
D2 = 00000001 A2 = 001e42d8 F2 = 7fff ffffffffffffffff
D3 = 00225f8c A3 = 00225f8c F3 = 7fff ffffffffffffffff
D4 = 00008000 A4 = 00000000 F4 = 7fff ffffffffffffffff
D5 = 001f5ac0 A5 = 0022af2e F5 = 7fff ffffffffffffffff
D6 = 001f5124 A6 = 001e3fb8 F6 = 7fff ffffffffffffffff
D7 = 00225d9a A7 = 001e3f80 F7 = 7fff ffffffffffffffff
PC = 00000000 SR = 2700 ----- Aborted
I have no idea what this illegal instruction is (should I be doing 68030
instead of 68020 maybe?), but that's farther than qemu has ever booted
this stuff before!
Is there anything useful I can do at this point to help development of
this target along?
Rob
--
GNU/Linux isn't: Linux=GPLv2, GNU=GPLv3+, they can't share code.
Either it's "mere aggregation", or a license violation. Pick one.