Index: rumpkernel/buildrump.sh/src/sys/rump/dev/Makefile.rumpdevcomp =================================================================== --- rumpkernel.orig/buildrump.sh/src/sys/rump/dev/Makefile.rumpdevcomp +++ rumpkernel/buildrump.sh/src/sys/rump/dev/Makefile.rumpdevcomp @@ -8,6 +8,7 @@ RUMPDEVCOMP= audio bpf cgd disk dm drvct RUMPUSBDEVS= ualea ubt ucom ugenhc ulpt umass usb RUMPPCIDEVS= pci pci_if_iwn pci_if_pcn pci_if_wm +RUMPPCIDEVS+= pci_piixide RUMPPCIDEVS+= pci_usbhc RUMPPCIDEVS+= pci_virtio virtio_if_vioif virtio_ld virtio_viornd RUMPPCIDEVS+= virtio_vioscsi Index: rumpkernel/buildrump.sh/src/sys/rump/dev/lib/libpci_piixide/Makefile =================================================================== --- /dev/null +++ rumpkernel/buildrump.sh/src/sys/rump/dev/lib/libpci_piixide/Makefile @@ -0,0 +1,19 @@ +.PATH: ${.CURDIR}/../../../../dev/pci \ + ${.CURDIR}/../../../../dev/ata \ + ${.CURDIR}/../../../../dev/scsipi \ + ${.CURDIR}/../../../../dev/ic + +LIB= rumpdev_piixide +COMMENT=PIIX IDE & ATAPI support + +IOCONF= PIIXIDE.ioconf + +SRCS+= pciide_common.c piixide.c +SRCS+= wd.c ata.c ata_wdc.c +SRCS+= atapi_wdc.c atapi_base.c cd.c +SRCS+= wdc.c + +SRCS+= piixide_component.c + +.include +.include Index: rumpkernel/buildrump.sh/src/sys/rump/dev/lib/libpci_piixide/PIIXIDE.ioconf =================================================================== --- /dev/null +++ rumpkernel/buildrump.sh/src/sys/rump/dev/lib/libpci_piixide/PIIXIDE.ioconf @@ -0,0 +1,20 @@ +ioconf piixide + +include "conf/files" +include "dev/ata/files.ata" +include "dev/pci/files.pci" +include "rump/dev/files.rump" + +pseudo-root pci* + +# PIIX support +piixide* at pci? dev ? function ? + +# IDE support +atabus* at piixide? channel ? +ata_hl* at atabus? drive ? +wd* at ata_hl? + +# ATAPI support +atapibus* at piixide? channel ? +cd* at atapibus? drive ? flags 0x0000 Index: rumpkernel/buildrump.sh/src/sys/rump/dev/lib/libpci_piixide/opt_wd.h =================================================================== --- /dev/null +++ rumpkernel/buildrump.sh/src/sys/rump/dev/lib/libpci_piixide/opt_wd.h @@ -0,0 +1 @@ + Index: rumpkernel/buildrump.sh/src/sys/rump/dev/lib/libpci_piixide/ataraid.h =================================================================== --- /dev/null +++ rumpkernel/buildrump.sh/src/sys/rump/dev/lib/libpci_piixide/ataraid.h @@ -0,0 +1 @@ + Index: rumpkernel/buildrump.sh/src/sys/rump/dev/lib/libpci_piixide/opt_ata.h =================================================================== --- /dev/null +++ rumpkernel/buildrump.sh/src/sys/rump/dev/lib/libpci_piixide/opt_ata.h @@ -0,0 +1 @@ +#define ATADEBUG Index: rumpkernel/buildrump.sh/src/sys/rump/dev/lib/libpci_piixide/opt_wdc.h =================================================================== --- /dev/null +++ rumpkernel/buildrump.sh/src/sys/rump/dev/lib/libpci_piixide/opt_wdc.h @@ -0,0 +1,2 @@ +#define NWD 1 +#define WDC_NO_IDS Index: rumpkernel/buildrump.sh/src/sys/rump/dev/lib/libpci_piixide/piixide_component.c =================================================================== --- /dev/null +++ rumpkernel/buildrump.sh/src/sys/rump/dev/lib/libpci_piixide/piixide_component.c @@ -0,0 +1,49 @@ +#include +#include +#include +#include +#include + +#include "ioconf.c" + +#include +#include + +RUMP_COMPONENT(RUMP_COMPONENT_DEV) +{ + extern struct bdevsw wd_bdevsw, cd_bdevsw; + extern struct cdevsw wd_cdevsw, cd_cdevsw; + devmajor_t bmaj, cmaj; + + config_init_component(cfdriver_ioconf_piixide, + cfattach_ioconf_piixide, cfdata_ioconf_piixide); + + bmaj = cmaj = -1; + FLAWLESSCALL(devsw_attach("wd", &wd_bdevsw, &bmaj, &wd_cdevsw, &cmaj)); + + FLAWLESSCALL(rump_vfs_makedevnodes(S_IFBLK, "/dev/wd0", 'a', + bmaj, 0, 4)); + FLAWLESSCALL(rump_vfs_makedevnodes(S_IFCHR, "/dev/rwd0", 'a', + cmaj, 0, 4)); + FLAWLESSCALL(rump_vfs_makedevnodes(S_IFBLK, "/dev/wd1", 'a', + bmaj, 8, 4)); + FLAWLESSCALL(rump_vfs_makedevnodes(S_IFCHR, "/dev/rwd1", 'a', + cmaj, 8, 4)); + FLAWLESSCALL(rump_vfs_makedevnodes(S_IFBLK, "/dev/wd2", 'a', + bmaj, 16, 4)); + FLAWLESSCALL(rump_vfs_makedevnodes(S_IFCHR, "/dev/rwd2", 'a', + cmaj, 16, 4)); + FLAWLESSCALL(rump_vfs_makedevnodes(S_IFBLK, "/dev/wd3", 'a', + bmaj, 24, 4)); + FLAWLESSCALL(rump_vfs_makedevnodes(S_IFCHR, "/dev/rwd3", 'a', + cmaj, 24, 4)); +/* Borked + bmaj = cmaj = -1; + FLAWLESSCALL(devsw_attach("cd", &cd_bdevsw, &bmaj, &cd_cdevsw, &cmaj)); + + FLAWLESSCALL(rump_vfs_makedevnodes(S_IFBLK, "/dev/cd0", 'a', + bmaj, 0, 1)); + FLAWLESSCALL(rump_vfs_makedevnodes(S_IFCHR, "/dev/rcd0", 'a', + cmaj, 0, 1)); +*/ +} Index: rumpkernel/buildrump.sh/src/sys/rump/dev/lib/libpci_piixide/sata.h =================================================================== --- /dev/null +++ rumpkernel/buildrump.sh/src/sys/rump/dev/lib/libpci_piixide/sata.h @@ -0,0 +1 @@ + Index: rumpkernel/buildrump.sh/src/sys/rump/dev/lib/libpci_piixide/sata_pmp.h =================================================================== --- /dev/null +++ rumpkernel/buildrump.sh/src/sys/rump/dev/lib/libpci_piixide/sata_pmp.h @@ -0,0 +1 @@ +