Add CDC-Ethernet usb NIC (original patch from Thomas Sailer).

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4884 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
balrog 2008-07-17 20:47:13 +00:00
parent e6bf7d70b5
commit 6c9f886cea
5 changed files with 1495 additions and 2 deletions

View File

@ -60,7 +60,8 @@ OBJS+=ssd0303.o ssd0323.o ads7846.o stellaris_input.o twl92230.o
OBJS+=tmp105.o lm832x.o OBJS+=tmp105.o lm832x.o
OBJS+=scsi-disk.o cdrom.o OBJS+=scsi-disk.o cdrom.o
OBJS+=scsi-generic.o OBJS+=scsi-generic.o
OBJS+=usb.o usb-hub.o usb-linux.o usb-hid.o usb-msd.o usb-wacom.o usb-serial.o OBJS+=usb.o usb-hub.o usb-linux.o usb-hid.o usb-msd.o usb-wacom.o
OBJS+=usb-serial.o usb-net.o
OBJS+=sd.o ssi-sd.o OBJS+=sd.o ssi-sd.o
ifdef CONFIG_BRLAPI ifdef CONFIG_BRLAPI

1470
hw/usb-net.c Normal file

File diff suppressed because it is too large Load Diff

View File

@ -219,6 +219,9 @@ USBDevice *usb_keyboard_init(void);
/* usb-msd.c */ /* usb-msd.c */
USBDevice *usb_msd_init(const char *filename); USBDevice *usb_msd_init(const char *filename);
/* usb-net.c */
USBDevice *usb_net_init(NICInfo *nd);
/* usb-wacom.c */ /* usb-wacom.c */
USBDevice *usb_wacom_init(void); USBDevice *usb_wacom_init(void);

View File

@ -567,6 +567,9 @@ available devices.
Braille device. This will use BrlAPI to display the braille output on a real Braille device. This will use BrlAPI to display the braille output on a real
or fake device. or fake device.
@item net:nic_num
Network adapter that supports CDC ethernet and RNDIS protocols.
@end table @end table
@end table @end table
@ -584,7 +587,7 @@ Qemu can emulate several different models of network card.
Valid values for @var{type} are Valid values for @var{type} are
@code{i82551}, @code{i82557b}, @code{i82559er}, @code{i82551}, @code{i82557b}, @code{i82559er},
@code{ne2k_pci}, @code{ne2k_isa}, @code{pcnet}, @code{rtl8139}, @code{ne2k_pci}, @code{ne2k_isa}, @code{pcnet}, @code{rtl8139},
@code{e1000}, @code{smc91c111}, @code{lance} and @code{mcf_fec}. @code{e1000}, @code{smc91c111}, @code{lance}, @code{mcf_fec} and @code{usb}.
Not all devices are supported on all targets. Use -net nic,model=? Not all devices are supported on all targets. Use -net nic,model=?
for a list of available devices for your target. for a list of available devices for your target.
@ -1707,6 +1710,16 @@ serial converter, faking a Matrix Orbital LCD Display (USB ID 0403:FA00).
@item braille @item braille
Braille device. This will use BrlAPI to display the braille output on a real Braille device. This will use BrlAPI to display the braille output on a real
or fake device. or fake device.
@item net:@var{nic_num}
Network adapter that supports CDC ethernet and RNDIS protocols. This must be
used together with the @code{-net nic,model=usb,...} option (see description),
where @var{nic_num} specifies the index of the @code{-net nic,...} option
describing the interface (zero-based).
For instance, user-mode networking can be used by specifying
@example
qemu -net user,vlan=1 -net nic,model=usb,vlan=1 -usbdevice net:0 [...OPTIONS...]
@end example
Currently this cannot be used in machines that support PCI NICs.
@end table @end table
@node host_usb_devices @node host_usb_devices

6
vl.c
View File

@ -5475,6 +5475,12 @@ static int usb_device_add(const char *devname)
} else if (!strcmp(devname, "braille")) { } else if (!strcmp(devname, "braille")) {
dev = usb_baum_init(); dev = usb_baum_init();
#endif #endif
} else if (strstart(devname, "net:", &p)) {
int nicidx = strtoul(p, NULL, 0);
if (nicidx >= nb_nics || strcmp(nd_table[nicidx].model, "usb"))
return -1;
dev = usb_net_init(&nd_table[nicidx]);
} else { } else {
return -1; return -1;
} }