* [Qemu-devel] [PATCH] Port E9 hack, for debugging purposes
@ 2005-01-15 17:06 Thomas Petazzoni
2005-01-17 13:31 ` Johannes Schindelin
0 siblings, 1 reply; 8+ messages in thread
From: Thomas Petazzoni @ 2005-01-15 17:06 UTC (permalink / raw)
To: qemu-devel; +Cc: David Decotigny
[-- Attachment #1: Type: text/plain, Size: 1269 bytes --]
Hello,
Enclosed you'll find a patch that adds port E9 hack support for Qemu.
Port E9 hack is a feature available in the Bochs emulator, which is very
nice for OS developers working on their own toy OS.
It simply adds a device on the I/O port 0xE9. Every character written to
this device is written to the console in which Qemu is running. This
allows the application running inside Qemu to output tons of debugging
messages without the need to have a powerful console driver.
The device also answers 0xE9 to every read on this port. This allows the
application running inside Qemu to test whether the port E9 hack is
enabled or not.
The port E9 hack features can be enabled/disabled at compile time using
the configure script. By default, it's set to off.
Enclosed are :
- port-e9-hack.patch, which touches Makefile.target, configure, vl.h
and hw/pc.c
- port-e9.c, the implementation of the port E9 device, which should be
placed inside the hw/ directory.
Is it possible to include this feature in Qemu ?
Thanks,
Thomas
--
PETAZZONI Thomas - thomas.petazzoni@enix.org
http://thomas.enix.org - Jabber: thomas.petazzoni@jabber.dk
KOS: http://kos.enix.org/ - SOS: http://sos.enix.org
Fingerprint : 0BE1 4CF3 CEA4 AC9D CC6E 1624 F653 CB30 98D3 F7A7
[-- Attachment #2: port-e9-hack.patch --]
[-- Type: text/plain, Size: 3045 bytes --]
Index: Makefile.target
===================================================================
RCS file: /cvsroot/qemu/qemu/Makefile.target,v
retrieving revision 1.55
diff -u -u -r1.55 Makefile.target
--- Makefile.target 15 Jan 2005 12:02:56 -0000 1.55
+++ Makefile.target 15 Jan 2005 17:00:17 -0000
@@ -339,6 +339,9 @@
tcp_subr.o tcp_timer.o udp.o bootp.o debug.o tftp.o
VL_OBJS+=$(addprefix slirp/, $(SLIRP_OBJS))
endif
+ifdef CONFIG_PORT_E9_HACK
+VL_OBJS+=port-e9.o
+endif
VL_LDFLAGS=
# specific flags are needed for non soft mmu emulator
Index: configure
===================================================================
RCS file: /cvsroot/qemu/qemu/configure,v
retrieving revision 1.51
diff -u -u -r1.51 configure
--- configure 10 Jan 2005 23:18:50 -0000 1.51
+++ configure 15 Jan 2005 17:00:20 -0000
@@ -76,6 +76,7 @@
gdbstub="yes"
slirp="yes"
adlib="no"
+port_e9_hack="no"
oss="no"
fmod="no"
fmod_lib=""
@@ -168,7 +169,9 @@
--disable-slirp) slirp="no"
;;
--enable-adlib) adlib="yes"
- ;;
+ ;;
+ --enable-port-e9-hack) port_e9_hack="yes"
+ ;;
esac
done
@@ -310,6 +313,7 @@
echo " --enable-fmod enable FMOD audio output driver"
echo " --fmod-lib path to FMOD library"
echo " --fmod-inc path to FMOD includes"
+echo " --enable-port-e9-hack enable port E9 hack"
echo ""
echo "NOTE: The object files are build at the place where configure is launched"
exit 1
@@ -352,6 +356,7 @@
echo "SDL static link $sdl_static"
echo "mingw32 support $mingw32"
echo "Adlib support $adlib"
+echo "Port E9 hack $port_e9_hack"
echo -n "FMOD support $fmod"
if test $fmod = "yes"; then
echo -n " (lib='$fmod_lib' include='$fmod_inc')"
@@ -464,6 +469,10 @@
echo "CONFIG_ADLIB=yes" >> $config_mak
echo "#define CONFIG_ADLIB 1" >> $config_h
fi
+if test "$port_e9_hack" = "yes" ; then
+ echo "CONFIG_PORT_E9_HACK=yes" >> $config_mak
+ echo "#define CONFIG_PORT_E9_HACK 1" >> $config_h
+fi
if test "$oss" = "yes" ; then
echo "CONFIG_OSS=yes" >> $config_mak
echo "#define CONFIG_OSS 1" >> $config_h
Index: vl.h
===================================================================
RCS file: /cvsroot/qemu/qemu/vl.h,v
retrieving revision 1.66
diff -u -u -r1.66 vl.h
--- vl.h 15 Jan 2005 12:02:56 -0000 1.66
+++ vl.h 15 Jan 2005 17:00:20 -0000
@@ -828,4 +828,9 @@
int gdbserver_start(int port);
+#ifdef CONFIG_PORT_E9_HACK
+/* port-e9.c */
+void port_e9_init(void);
+#endif /* CONFIG_PORT_E9_HACK */
+
#endif /* VL_H */
Index: hw/pc.c
===================================================================
RCS file: /cvsroot/qemu/qemu/hw/pc.c,v
retrieving revision 1.35
diff -u -u -r1.35 pc.c
--- hw/pc.c 15 Jan 2005 12:02:56 -0000 1.35
+++ hw/pc.c 15 Jan 2005 17:00:20 -0000
@@ -586,7 +586,9 @@
}
floppy_controller = fdctrl_init(6, 2, 0, 0x3f0, fd_table);
-
+#ifdef CONFIG_PORT_E9_HACK
+ port_e9_init();
+#endif
cmos_init(ram_size, boot_device, bs_table);
/* must be done after all PCI devices are instanciated */
[-- Attachment #3: port-e9.c --]
[-- Type: text/x-csrc, Size: 1592 bytes --]
/*
* QEMU Port 0xe9 hack
*
* Copyright (c) 2000-2004 E. Marty, the bochs team, D. Decotigny
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#include <stdio.h>
#include <unistd.h>
#include <inttypes.h>
#include "vl.h"
static void bochs_e9_write(void *opaque, uint32_t address, uint32_t data)
{
write(fileno(stdout), &data, 1);
}
static uint32_t bochs_e9_read(void *opaque, uint32_t address)
{
return 0xE9;
}
void port_e9_init ()
{
register_ioport_write(0xe9, 1, 1, bochs_e9_write, NULL);
register_ioport_read (0xe9, 1, 1, bochs_e9_read, NULL);
}
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Qemu-devel] [PATCH] Port E9 hack, for debugging purposes
2005-01-15 17:06 [Qemu-devel] [PATCH] Port E9 hack, for debugging purposes Thomas Petazzoni
@ 2005-01-17 13:31 ` Johannes Schindelin
2005-01-17 13:47 ` Thomas Petazzoni
0 siblings, 1 reply; 8+ messages in thread
From: Johannes Schindelin @ 2005-01-17 13:31 UTC (permalink / raw)
To: qemu-devel
Hi,
On Sat, 15 Jan 2005, Thomas Petazzoni wrote:
> Enclosed you'll find a patch that adds port E9 hack support for Qemu.
> Port E9 hack is a feature available in the Bochs emulator, which is very
> nice for OS developers working on their own toy OS.
I like it. It's simple and elegant, and your patch seems correct to me.
Ciao,
Dscho
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Qemu-devel] [PATCH] Port E9 hack, for debugging purposes
2005-01-17 13:31 ` Johannes Schindelin
@ 2005-01-17 13:47 ` Thomas Petazzoni
2005-01-17 22:01 ` Fabrice Bellard
0 siblings, 1 reply; 8+ messages in thread
From: Thomas Petazzoni @ 2005-01-17 13:47 UTC (permalink / raw)
To: qemu-devel
[-- Attachment #1: Type: text/plain, Size: 724 bytes --]
Hello,
Johannes Schindelin a écrit :
> I like it. It's simple and elegant, and your patch seems correct to me.
Thanks.
After sending the patch, I thought that maybe it would be better to
transform the configure time option to enable/disable the port E9 hack
into a runtime option.
Currently, devices are not enabled/disabled through compile time
options, but through runtime options. Doing it the same way for port E9
hack may be more coherent.
What do you think ?
Thomas
--
PETAZZONI Thomas - thomas.petazzoni@enix.org
http://thomas.enix.org - Jabber: thomas.petazzoni@jabber.dk
http://kos.enix.org, http://sos.enix.org
Fingerprint : 0BE1 4CF3 CEA4 AC9D CC6E 1624 F653 CB30 98D3 F7A7
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 256 bytes --]
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Qemu-devel] [PATCH] Port E9 hack, for debugging purposes
2005-01-17 13:47 ` Thomas Petazzoni
@ 2005-01-17 22:01 ` Fabrice Bellard
2005-01-26 22:24 ` Thomas Petazzoni
0 siblings, 1 reply; 8+ messages in thread
From: Fabrice Bellard @ 2005-01-17 22:01 UTC (permalink / raw)
To: qemu-devel
There are already similar debug features in hw/pc.c for the Bochs BIOS,
but they are not enabled by default because I consider there were useful
only in rare cases.
I would accept the "e9 hack" only if it was dynamically configurable and
if it used a generic character device (as the serial or parallel ports)
to output its results. The command line option should be '-port-e9
stdio' or something similar.
Fabrice.
Thomas Petazzoni wrote:
> Hello,
>
> Johannes Schindelin a écrit :
>
>> I like it. It's simple and elegant, and your patch seems correct to me.
>
>
> Thanks.
>
> After sending the patch, I thought that maybe it would be better to
> transform the configure time option to enable/disable the port E9 hack
> into a runtime option.
>
> Currently, devices are not enabled/disabled through compile time
> options, but through runtime options. Doing it the same way for port E9
> hack may be more coherent.
>
> What do you think ?
>
> Thomas
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Qemu-devel mailing list
> Qemu-devel@nongnu.org
> http://lists.nongnu.org/mailman/listinfo/qemu-devel
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Qemu-devel] [PATCH] Port E9 hack, for debugging purposes
2005-01-17 22:01 ` Fabrice Bellard
@ 2005-01-26 22:24 ` Thomas Petazzoni
2005-01-26 23:57 ` James Mastros
2005-02-03 12:29 ` Thomas Petazzoni
0 siblings, 2 replies; 8+ messages in thread
From: Thomas Petazzoni @ 2005-01-26 22:24 UTC (permalink / raw)
To: qemu-devel
[-- Attachment #1: Type: text/plain, Size: 1086 bytes --]
Hello,
Fabrice Bellard wrote:
> I would accept the "e9 hack" only if it was dynamically configurable and
> if it used a generic character device (as the serial or parallel ports)
> to output its results. The command line option should be '-port-e9
> stdio' or something similar.
Enclosed is a first try to convert port E9 hack to use the character
device framework of Qemu.
I've tested vc, stdio, null and pty outputs. They all work.
Some comments :
- Support is limited to one port E9, so I've added a #error assertion
in vl.h. I'm not sure if's the correct place, correct way to do it.
- Port E9 doesn't support reading, so I have not implemented read
event handlers. The purpose of the ioport_read function is only to
return 0xE9. This allows the guest OS to test whether the port E9 hack
is available or not.
Feedback welcome.
Thomas
--
PETAZZONI Thomas - thomas.petazzoni@enix.org
http://thomas.enix.org - Jabber: thomas.petazzoni@jabber.dk
KOS: http://kos.enix.org/ - SOS: http://sos.enix.org
Fingerprint : 0BE1 4CF3 CEA4 AC9D CC6E 1624 F653 CB30 98D3 F7A7
[-- Attachment #2: port-e9.patch --]
[-- Type: text/plain, Size: 5175 bytes --]
Index: Makefile.target
===================================================================
RCS file: /cvsroot/qemu/qemu/Makefile.target,v
retrieving revision 1.55
diff -u -u -r1.55 Makefile.target
--- Makefile.target 15 Jan 2005 12:02:56 -0000 1.55
+++ Makefile.target 26 Jan 2005 22:20:17 -0000
@@ -316,7 +316,7 @@
# Hardware support
VL_OBJS+= ide.o ne2000.o pckbd.o vga.o $(SOUND_HW) dma.o $(AUDIODRV)
VL_OBJS+= fdc.o mc146818rtc.o serial.o i8259.o i8254.o pc.o
-VL_OBJS+= cirrus_vga.o mixeng.o apic.o parallel.o
+VL_OBJS+= cirrus_vga.o mixeng.o apic.o parallel.o port-e9.o
endif
ifeq ($(TARGET_ARCH), ppc)
VL_OBJS+= ppc.o ide.o ne2000.o pckbd.o vga.o $(SOUND_HW) dma.o $(AUDIODRV)
Index: vl.c
===================================================================
RCS file: /cvsroot/qemu/qemu/vl.c,v
retrieving revision 1.117
diff -u -u -r1.117 vl.c
--- vl.c 15 Jan 2005 21:50:11 -0000 1.117
+++ vl.c 26 Jan 2005 22:20:19 -0000
@@ -136,6 +136,7 @@
int full_screen = 0;
TextConsole *vga_console;
CharDriverState *serial_hds[MAX_SERIAL_PORTS];
+CharDriverState *port_e9_hds[MAX_PORT_E9_PORTS];
CharDriverState *parallel_hds[MAX_PARALLEL_PORTS];
/***********************************************************/
@@ -2845,6 +2846,7 @@
QEMU_OPTION_monitor,
QEMU_OPTION_serial,
QEMU_OPTION_parallel,
+ QEMU_OPTION_port_e9,
QEMU_OPTION_loadvm,
QEMU_OPTION_full_screen,
QEMU_OPTION_pidfile,
@@ -2908,6 +2910,7 @@
{ "monitor", 1, QEMU_OPTION_monitor },
{ "serial", 1, QEMU_OPTION_serial },
{ "parallel", 1, QEMU_OPTION_parallel },
+ { "port-e9", 1, QEMU_OPTION_port_e9 },
{ "loadvm", HAS_ARG, QEMU_OPTION_loadvm },
{ "full-screen", 0, QEMU_OPTION_full_screen },
{ "pidfile", HAS_ARG, QEMU_OPTION_pidfile },
@@ -2990,6 +2993,8 @@
char monitor_device[128];
char serial_devices[MAX_SERIAL_PORTS][128];
int serial_device_index;
+ char port_e9_devices[MAX_PORT_E9_PORTS][128];
+ int port_e9_device_index;
char parallel_devices[MAX_PARALLEL_PORTS][128];
int parallel_device_index;
const char *loadvm = NULL;
@@ -3029,7 +3034,12 @@
for(i = 1; i < MAX_PARALLEL_PORTS; i++)
parallel_devices[i][0] = '\0';
parallel_device_index = 0;
-
+
+ pstrcpy(port_e9_devices[0], sizeof(port_e9_devices[0]), "vc");
+ for(i = 1; i < MAX_PORT_E9_PORTS; i++)
+ port_e9_devices[i][0] = '\0';
+ port_e9_device_index = 0;
+
nb_tun_fds = 0;
net_if_type = -1;
nb_nics = 1;
@@ -3349,6 +3359,15 @@
sizeof(parallel_devices[0]), optarg);
parallel_device_index++;
break;
+ case QEMU_OPTION_port_e9:
+ if (port_e9_device_index >= MAX_PORT_E9_PORTS) {
+ fprintf(stderr, "qemu: too many port e9 ports\n");
+ exit(1);
+ }
+ pstrcpy(port_e9_devices[port_e9_device_index],
+ sizeof(port_e9_devices[0]), optarg);
+ port_e9_device_index++;
+ break;
case QEMU_OPTION_loadvm:
loadvm = optarg;
break;
@@ -3585,6 +3604,19 @@
}
}
+ for(i = 0; i < MAX_PORT_E9_PORTS; i++) {
+ if (port_e9_devices[i][0] != '\0') {
+ port_e9_hds[i] = qemu_chr_open(port_e9_devices[i]);
+ if (!port_e9_hds[i]) {
+ fprintf(stderr, "qemu: could not open port e9 device '%s'\n",
+ port_e9_devices[i]);
+ exit(1);
+ }
+ if (!strcmp(port_e9_devices[i], "vc"))
+ qemu_chr_printf(port_e9_hds[i], "port_e9_%d console\n", i);
+ }
+ }
+
/* setup cpu signal handlers for MMU / self modifying code handling */
#if !defined(CONFIG_SOFTMMU)
Index: vl.h
===================================================================
RCS file: /cvsroot/qemu/qemu/vl.h,v
retrieving revision 1.66
diff -u -u -r1.66 vl.h
--- vl.h 15 Jan 2005 12:02:56 -0000 1.66
+++ vl.h 26 Jan 2005 22:20:19 -0000
@@ -230,6 +230,16 @@
extern CharDriverState *parallel_hds[MAX_PARALLEL_PORTS];
+/* port E9 ports */
+
+#define MAX_PORT_E9_PORTS 1
+
+#if (MAX_PORT_E9_PORTS != 1)
+ #error "No more than one port E9 is supported"
+#endif
+
+extern CharDriverState *port_e9_hds[MAX_PORT_E9_PORTS];
+
/* network redirectors support */
#define MAX_NICS 8
@@ -643,6 +653,10 @@
typedef struct ParallelState ParallelState;
ParallelState *parallel_init(int base, int irq, CharDriverState *chr);
+/* port-e9.c */
+
+CharDriverState *port_e9_init(CharDriverState *chr);
+
/* i8259.c */
void pic_set_irq(int irq, int level);
Index: hw/pc.c
===================================================================
RCS file: /cvsroot/qemu/qemu/hw/pc.c,v
retrieving revision 1.35
diff -u -u -r1.35 pc.c
--- hw/pc.c 15 Jan 2005 12:02:56 -0000 1.35
+++ hw/pc.c 26 Jan 2005 22:20:19 -0000
@@ -547,6 +547,12 @@
}
}
+ for(i = 0; i < MAX_PORT_E9_PORTS; i++) {
+ if(port_e9_hds[i]) {
+ port_e9_init(port_e9_hds[i]);
+ }
+ }
+
if (pci_enabled) {
for(i = 0; i < nb_nics; i++) {
pci_ne2000_init(pci_bus, &nd_table[i]);
[-- Attachment #3: port-e9.c --]
[-- Type: text/x-csrc, Size: 1673 bytes --]
/*
* QEMU Port 0xe9 hack
*
* Copyright (c) 2000-2004 E. Marty, the bochs team, D. Decotigny
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#include <stdio.h>
#include <unistd.h>
#include <inttypes.h>
#include "vl.h"
static void port_e9_write(void *opaque, uint32_t address, uint32_t data)
{
CharDriverState *chr;
chr = opaque;
qemu_chr_write(chr, & data, 1);
}
static uint32_t port_e9_read(void *opaque, uint32_t address)
{
return 0xE9;
}
CharDriverState *port_e9_init (CharDriverState *chr)
{
register_ioport_write(0xe9, 1, 1, port_e9_write, chr);
register_ioport_read (0xe9, 1, 1, port_e9_read, chr);
return chr;
}
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Qemu-devel] [PATCH] Port E9 hack, for debugging purposes
2005-01-26 22:24 ` Thomas Petazzoni
@ 2005-01-26 23:57 ` James Mastros
2005-01-27 8:19 ` Thomas Petazzoni
2005-02-03 12:29 ` Thomas Petazzoni
1 sibling, 1 reply; 8+ messages in thread
From: James Mastros @ 2005-01-26 23:57 UTC (permalink / raw)
To: qemu-devel
I'm a bit of a newbie here, so perhaps this has already been covered,
though I haven't seen it in the archives -- but why port E9, and not
port 80? 80 seems to be the standard port for this sort of thing.
(Though output seems to normally be two-digit-hex, and not ASCII-based.)
(Port E9 seems to be largely undefined, but marked as "reserved" in most
lists I've seen (or just not listed), so it seems possible, but
unlikely, that things will think they know what should be connected
there. OTOH, 80 is reserved for exactly what we're doing with it. On
the third hand, the Linux kernel uses writes to port 0x80 to "slow down"
IO. I'm not sure what the interactions would be with this.)
Oh, BTW, so people know what my vantage point is: I'm running QEMU with
a Linux 2.6.10 host, Win XP SP2 guest, on a P4 3GHz HyperThreaded CPU,
1GB RAM. Runs like a charm. (Just about to try running ZZT (an old DOS
game) on it, may have problems with it running too fast -- we'll see.)
-=- James Mastros
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Qemu-devel] [PATCH] Port E9 hack, for debugging purposes
2005-01-26 23:57 ` James Mastros
@ 2005-01-27 8:19 ` Thomas Petazzoni
0 siblings, 0 replies; 8+ messages in thread
From: Thomas Petazzoni @ 2005-01-27 8:19 UTC (permalink / raw)
To: qemu-devel
[-- Attachment #1: Type: text/plain, Size: 1737 bytes --]
Hello,
James Mastros a écrit :
> I'm a bit of a newbie here, so perhaps this has already been covered,
> though I haven't seen it in the archives -- but why port E9, and not
> port 80? 80 seems to be the standard port for this sort of thing.
> (Though output seems to normally be two-digit-hex, and not ASCII-based.)
>
> (Port E9 seems to be largely undefined, but marked as "reserved" in most
> lists I've seen (or just not listed), so it seems possible, but
> unlikely, that things will think they know what should be connected
> there. OTOH, 80 is reserved for exactly what we're doing with it. On
> the third hand, the Linux kernel uses writes to port 0x80 to "slow down"
> IO. I'm not sure what the interactions would be with this.)
Mostly because this is the way Bochs implements it, and I thought it
would be nice to have it working exactly the same way on Qemu. This
feature is particularly interesting for people making their own toy OS.
It allows to have simple debugging possibilities without taking care of
writing a serial driver or a full-featured console driver.
The Ralf's Brown Port List says that 0x80 is when writing a
"Manufacturing Diagnostics Port", but it doesn't say anything about reading.
Anyway, if Linux uses it to slow down I/O, this is not a good candidate
in my opinion for the E9-style hack.
To sum up, I don't have any valid reason for choosing E9 instead of any
other, except that it's implemented that way in Bochs.
Thomas
--
PETAZZONI Thomas - thomas.petazzoni@enix.org
http://thomas.enix.org - Jabber: thomas.petazzoni@jabber.dk
http://kos.enix.org, http://sos.enix.org
Fingerprint : 0BE1 4CF3 CEA4 AC9D CC6E 1624 F653 CB30 98D3 F7A7
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 256 bytes --]
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Qemu-devel] [PATCH] Port E9 hack, for debugging purposes
2005-01-26 22:24 ` Thomas Petazzoni
2005-01-26 23:57 ` James Mastros
@ 2005-02-03 12:29 ` Thomas Petazzoni
1 sibling, 0 replies; 8+ messages in thread
From: Thomas Petazzoni @ 2005-02-03 12:29 UTC (permalink / raw)
To: qemu-devel
[-- Attachment #1: Type: text/plain, Size: 935 bytes --]
Hello,
Thomas Petazzoni a écrit :
> Enclosed is a first try to convert port E9 hack to use the character
> device framework of Qemu.
Except the comment regarding the choice of the port, are there any other
comments concerning this patch ? Fabrice, are you satisfied of the new
implementation based on the char device framework ? Would you accept to
integrate such a feature into Qemu ?
Of course, if the port number choosen is the problem, I can change it to
something else. It would be easier to keep 0xE9 so that OS developers
can use the same set of function when running inside Bochs or Qemu, but
if you really want something else, we'll go for it.
Thanks,
Thomas
--
PETAZZONI Thomas - thomas.petazzoni@enix.org
http://thomas.enix.org - Jabber: thomas.petazzoni@jabber.dk
KOS: http://kos.enix.org/ - SOS: http://sos.enix.org
Fingerprint : 0BE1 4CF3 CEA4 AC9D CC6E 1624 F653 CB30 98D3 F7A7
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 256 bytes --]
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2005-02-03 13:07 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-01-15 17:06 [Qemu-devel] [PATCH] Port E9 hack, for debugging purposes Thomas Petazzoni
2005-01-17 13:31 ` Johannes Schindelin
2005-01-17 13:47 ` Thomas Petazzoni
2005-01-17 22:01 ` Fabrice Bellard
2005-01-26 22:24 ` Thomas Petazzoni
2005-01-26 23:57 ` James Mastros
2005-01-27 8:19 ` Thomas Petazzoni
2005-02-03 12:29 ` Thomas Petazzoni
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).