--- trunk/doc/misc.html 2007/10/08 16:18:27 10 +++ trunk/doc/misc.html 2007/10/08 16:18:38 12 @@ -1,16 +1,16 @@ -
|
-
-However, if you think that you can port an operating system -to, say, the Silicon Graphics machine mode of GXemul and hope that your -operating system will run on a real SGI machine, then you will most -likely fail. GXemul simply does not emulate things well enough for that to work. -Another example would be specific CPU details; if your code depends on, -say, R10000 specifics, chances are that GXemul will not be sufficient. - -
-In many cases, hardware devices in GXemul are only implemented well -enough to fool eg. NetBSD that they are working correctly, while in -fact they don't work very much at all. Please keep this in mind, if you plan -to use GXemul when porting your code to MIPS. +
Some examples of things that don't work, that you should keep in +mind: + +
+
+
+
+
The bottom line is that GXemul can be useful as yet another way to test +your code during development, but it should not be fully relied on. @@ -155,7 +180,7 @@ Here are some examples. If you want to run a NetBSD/pmax kernel on an emulated DECstation machine, you would use a command line such as this:
- $ gxemul -E dec -e 3max -d pmax_diskimage.fs netbsd-pmax-INSTALL + $ gxemul -e 3max -d pmax_diskimage.fs netbsd-pmax-INSTALL
NOTE: For some emulation modes, such as the DECstation mode, you do @@ -166,7 +191,7 @@ image is added; the first will be SCSI target 0, the second will be target 1, and so on, unless you specify explicitly which ID number the devices should have.
- $ gxemul -E dec -e 3max -d disk0.raw -d disk1.raw -d 5:disk2.raw netbsd-pmax-INSTALL + $ gxemul -e 3max -d disk0.raw -d disk1.raw -d 5:disk2.raw netbsd-pmax-INSTALLNote: In the example above, disk2.raw will get scsi id 5.
@@ -175,17 +200,17 @@ For example, the following command would start the emulator with two CDROM images, and one harddisk image:
- $ gxemul -E dec -e 3max -d image.iso -d disk0.img -d c:second_cdrom.img netbsd-pmax-INSTALL + $ gxemul -e 3max -d image.iso -d disk0.img -d c:second_cdrom.img netbsd-pmax-INSTALLUsually, the device with the lowest id becomes the boot device. To override this, add a 'b' prefix to one of the devices:
- $ gxemul -E dec -e 3max -d rootdisk.img -d bc:install-cd.iso name_of_kernel + $ gxemul -e 3max -d rootdisk.img -d bc:install-cd.iso name_of_kernelIf you have a physical CD-ROM drive on the host machine, say /dev/cd0c, you can use it as a CD-ROM directly accessible from within the emulator:
- $ gxemul -E dec -e 3max -d rootdisk.img -d bc:/dev/cd0c name_of_kernel + $ gxemul -e 3max -d rootdisk.img -d bc:/dev/cd0c name_of_kernelIt is probably possible to use harddisks as well this way, but I would not recommend it. @@ -285,12 +310,13 @@
There is some skeleton code for running userland programs as well. This +will not emulate any particular machine, but instead try to translate +syscalls from e.g. NetBSD/pmax into the host's OS' syscalls. Right now, +this is just a proof-of-concept, to show that it could work; there's lots +of work left to do to make it actually run useful programs.
@@ -321,6 +347,7 @@ tab.csbnet.se +
- $ gxemul -E dec -e 3min -Q -M128 -q 0xbfc00000:DECstation5000_125_promdump.bin + $ gxemul -e 3min -Q -M128 -q 0xbfc00000:DECstation5000_125_promdump.bin KN02-BA V5.7e ?TFL: 3/scc/access (1:Ln1 reg-12: actual=0x00 xpctd=0x01) [KN02-BA] @@ -458,8 +486,8 @@ During bootup, the PROM complains a lot about hardware failures. That's because the emulator doesn't emulate the hardware well enough yet.-The command line options used are: -E dec for DECstation, -e 3min for -"model 3" (5000/1xx), -Q to supress the emulator's own PROM +The command line options used are: -e 3min for +"DECstation 3min" (5000/1xx), -Q to supress the emulator's own PROM call emulation, -M128 for 128MB RAM (because GXemul doesn't correctly emulate memory detection well enough for the PROM to accept, so it will always believe there is 128MB ram anyway), and -q to supress debug messages.