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 (landley@brillig) (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.