From owner-FreeBSD-users-jp@jp.FreeBSD.org Mon Jul 25 00:27:37 2005
Received: (from daemon@localhost)
	by castle.jp.FreeBSD.org (8.11.6p2+3.4W/8.11.3) id j6OFRbN86106;
	Mon, 25 Jul 2005 00:27:37 +0900 (JST)
	(envelope-from owner-FreeBSD-users-jp@jp.FreeBSD.org)
Received: from localhost.my.domain (p6194-ipadfx01sizuokaden.shizuoka.ocn.ne.jp [219.160.179.194])
	by castle.jp.FreeBSD.org (8.11.6p2+3.4W/8.11.3) with ESMTP/inet id j6OFRah86100
	for <FreeBSD-users-jp@jp.FreeBSD.org>; Mon, 25 Jul 2005 00:27:36 +0900 (JST)
	(envelope-from toshi@ruby.ocn.ne.jp)
Received: from localhost (localhost [IPv6:::1])
	by localhost.my.domain (8.13.4/8.13.4) with ESMTP id j6OFRfN9000911;
	Mon, 25 Jul 2005 00:27:42 +0900 (JST)
	(envelope-from toshi@ruby.ocn.ne.jp)
Message-Id: <20050725.002741.59650554.toshi@ruby.ocn.ne.jp>
To: FreeBSD-users-jp@jp.FreeBSD.org
From: SAITOU Toshihide <toshi@ruby.ocn.ne.jp>
In-Reply-To: <20050717.123524.193678470.toshi@ruby.ocn.ne.jp>
References: <20050717.123524.193678470.toshi@ruby.ocn.ne.jp>
X-GPG-fingerprint: 34B3 0B6A 8520 F5B0 EBC7  69F6 C055 9F8A 0D49 F8FC
X-Mailer: Mew version 4.2.50 on Emacs 22.0.50 / Mule 5.0 (SAKAKI)
Mime-Version: 1.0
Content-Type: Multipart/Mixed;
 boundary="--Next_Part(Mon_Jul_25_00_27_41_2005_452)--"
Content-Transfer-Encoding: 7bit
Reply-To: FreeBSD-users-jp@jp.FreeBSD.org
Precedence: list
Date: Mon, 25 Jul 2005 00:27:41 +0900
X-Sequence: FreeBSD-users-jp 86219
Subject: [FreeBSD-users-jp 86219] Re: PCI(CardBus)
 =?ISO-2022-JP?B?GyRCNSE0byROOm5ALiRIQWA6bhsoQg==?= 
Sender: owner-FreeBSD-users-jp@jp.FreeBSD.org
X-Originator: toshi@ruby.ocn.ne.jp
X-Distribute: distribute version 2.1 (Alpha) patchlevel 24e+050320

----Next_Part(Mon_Jul_25_00_27_41_2005_452)--
Content-Type: Text/Plain; charset=iso-2022-jp
Content-Transfer-Encoding: 7bit

From: SAITOU Toshihide <toshi@ruby.ocn.ne.jp>
Date: Sun, 17 Jul 2005 12:35:24 +0900 (JST)

> 1. (*1)$B$G$O(B PCI $B%+!<%I$r:9$79~$`$H(B BIOS $B$,%j%=!<%9$r3d$jEv$F(B
>    $B$F$/$l$k$H$"$k$N$G$9$,%5%s%W%k$r(B(*2)$B$K=q$-9~$s$G%N!<%H%Q(B
>    $B%=%3%s$KA^$7$F$_$?$H$3$m3d$jEv$F$F$/$l$^$;$s!J(Bpciconf -r
>    $B$G3NG'!K!%(B
> 
>    $B$7$+$7>/$78E$$%N!<%H%Q%=%3%s$G;n$7$F$_$k$H%Y!<%9%"%I%l%9(B
>    $B$d(B IRQ $B$,3d$jEv$F$i$l$^$7$?!J(BWindows $B$G3NG'!K!%(B
> 
>    $B$3$l$O$b$7$+$7$F:G6a$N5!4o$G$O(B ACPI $B$+2?$+$N4X78$G(B OS $B$,(B
>    $B=hCV$7$F$d$i$J$$$H;q8;$,3d$jEv$F$i$l$J$$$H$$$&$3$H$r0UL#(B
>    $B$7$F$$$^$9$+!)(B

Windows $B$G3d$jEv$F$i$l$F$$$?$N$O$?$^$?$^%/%i%9%3!<%I$K0lCW$9(B
$B$k%G%P%$%9%I%i%$%P$,$"$C$?$+$i$N$h$&$G$9!%$^$?(B Windows $B$N%P!<(B
$B%8%g%s$K$h$C$F$b5sF0$,0c$&$HK\$K=q$$$F$"$j$^$7$?(B <(..)>

$B$5$F(B FreeBSD $B$G%Y!<%9%"%I%l%9$,J,$+$i$J$$$H(B /dev/mem, /dev/io
$B$G%"%/%;%9$G$-$J$$$N$G(B pciconf -r pciX.Y.Z 0x00:0xFF $B$d(B
http://home.jp.freebsd.org/cgi-bin/showmail/FreeBSD-users-jp/81249
$B$N%9%l%C%I$G>R2p$5$l$F$$$?%W%m%0%i%`$r;n$7$?$N$G$9$,2?8N$+$9(B
$B$Y$F(B 0xffffff $B$@$C$?$j(B ioctl(PCIOCREAD): Operation not supported by device
$B$@$C$?$j$G>pJs$,F@$i$l$^$;$s!J(BCF-W2, FreeBSD-CURRENT$B!K!%(B

$B$3$l$O7k6IM}M3$O$o$+$i$J$+$C$?$N$G$9$,:#$O(B CardBus $B$@$+$i$H(B
$B$$$&5$$,$7$F$-$F$$$^$9!%(B

$B$^$?(B /sys/dev/ $B$N2<$r;29M$K%G%P%$%9%I%i%$%P(B(*1)$B$r:n$l$J$$$+(B
$B:n6H$7$F$$$?$i(B probe, attach $B$G$-$?CJ3,$G(B pciconf -r $B$,(B
0xffffff $B$G$O$J$$$A$c$s$H$7$?CM$rJV$7$F$/$l$k$h$&$K$J$j$^$7(B
$B$?!%$I$3$,8z$$$F$$$k$N$+$OJ,$+$j$^$;$s!%(B

$B$3$NJU$N;EAH$r2r@b$9$k;(;o$,$"$l$P$$$$$N$K$J$!$H;W$$$^$9!%(B
$B:#2s$O%a%b%j%G%P%$%9$@$C$?$N$G$3$l$r%a%b%j%U%!%$%k%7%9%F%`$K(B
$B$9$k$H$+%P%9%^%9%?%G%P%$%9$N:n$jJ}!J%O!<%I$H%=%U%H!K$H$+!%(B

(*1) $BE:IU$7$^$7$F$4$a$s$J$5$$!%(B

$BsnF#!s$*A{$,$;$7$F$4$a$s$J$5$$!w8P@>;T(B

----Next_Part(Mon_Jul_25_00_27_41_2005_452)--
Content-Type: Text/Plain; charset=iso-2022-jp
Content-Transfer-Encoding: 7bit
Content-Disposition: inline; filename="skld.shar"

# This is a shell archive.  Save it in a file, remove anything before
# this line, and then unpack it by entering "sh file".  Note, it may
# create directories; files and directories will be owned by you and
# have default permissions.
#
# This archive contains:
#
#	Makefile
#	skld.h
#	skld_pci.c
#
echo x - Makefile
sed 's/^X//' >Makefile << 'END-of-Makefile'
X
XKMOD=   skld
XSRCS=   skld_pci.c
XSRCS+=  device_if.h bus_if.h pci_if.h
X
X.include <bsd.kmod.mk>
END-of-Makefile
echo x - skld.h
sed 's/^X//' >skld.h << 'END-of-skld.h'
X/*
X * PCI registers defined in the PCI 2.2 spec.
X */
X
X/* $B;HMQ$9$k%a%b%j6u4V$r$3$N%l%8%9%?$GMW5a(B */
X#define PCI_CBMEM			PCIR_BAR(0)
X
Xstruct skld_softc {
X//	struct resource		*irq;
X	struct resource		*bsr;
X};
END-of-skld.h
echo x - skld_pci.c
sed 's/^X//' >skld_pci.c << 'END-of-skld_pci.c'
X/*
X * Simple KLD for as a CardBus card resource enabler...(?)
X */
X
X#include <sys/param.h>	/* defines used in kernel.h */
X#include <sys/kernel.h>	/* types used in module initialization */
X#include <sys/systm.h>
X#include <sys/module.h>
X#include <sys/bus.h>	/* structs, prototypes for pci bus stuff */
X
X#include <sys/errno.h>
X#include <sys/conf.h>	/* cdevsw struct */
X
X#include <machine/bus.h>
X#include <machine/resource.h>	/* resource type for architecture */
X#include <sys/rman.h>
X
X#include <dev/pci/pcivar.h>	/* For get_pci macros! */
X#include <dev/pci/pcireg.h>
X
X#include <skld.h>
X
Xstatic int skld_pci_attach(device_t self);
Xstatic int skld_pci_detach(device_t self);
X
Xstatic struct {
X	unsigned int vendor,device;
X	char *desc;
X} pci_ids[] = {
X        {0x6809, 0x8000, "Test TGT3 on the COM1300-C"},
X//        {0x1147, 0x0b73, "CSI-293166 DIO48 CMOS 5V-24V, Interface co."},
X        {0, 0, NULL}
X};
X
Xstatic int
Xskld_pci_probe(device_t dev)
X{
X	int i;
X
X	for(i=0; pci_ids[i].vendor != 0; i++) {
X		if ((pci_get_vendor(dev) == pci_ids[i].vendor) &&
X		    (pci_get_device(dev) == pci_ids[i].device)) {
X			device_set_desc(dev, pci_ids[i].desc);
X			return 0;
X		}
X	}
X	return ENXIO;
X}
X
X
Xstatic int
Xskld_pci_attach(device_t self)
X{
X	struct skld_softc *sc = device_get_softc(self);
X	int rid;
X
X        rid = PCI_CBMEM;
X        sc->bsr = bus_alloc_resource_any(self, SYS_RES_MEMORY, &rid, RF_ACTIVE);
X
X        if (!sc->bsr) {
X                device_printf(self, "Could not map memory\n");
X                return ENXIO;
X        }
X
X	return 0;
X}
X
X
Xstatic int
Xskld_pci_suspend(device_t dev)
X{
X	int err;
X
X	err = bus_generic_suspend(dev);
X	if (err)
X		return err;
X
X	return 0;
X}
X
X
Xstatic int
Xskld_pci_resume(device_t dev)
X{
X	int err;
X
X	err = bus_generic_resume(dev);
X	if (err)
X		return err;
X
X	return 0;
X}
X
X
Xstatic int
Xskld_pci_detach(device_t self)
X{
X	struct skld_softc *sc = device_get_softc(self);
X
X	if (sc->bsr) {
X		bus_release_resource(self, SYS_RES_MEMORY,PCI_CBMEM,sc->bsr);
X		sc->bsr = NULL;
X	}
X
X	return 0;
X}
X
X
Xstatic int
Xskld_pci_shutdown(device_t self)
X{
X	return 0;
X}
X
X
Xstatic device_method_t skld_methods[] = {
X	/* Device interface */
X	DEVMETHOD(device_probe,		skld_pci_probe),
X	DEVMETHOD(device_attach,	skld_pci_attach),
X	DEVMETHOD(device_detach,	skld_pci_detach),
X	DEVMETHOD(device_shutdown,	skld_pci_shutdown),
X	DEVMETHOD(device_suspend,	skld_pci_suspend),
X	DEVMETHOD(device_resume,	skld_pci_resume),
X
X	{ 0, 0 }
X};
X
X
Xstatic driver_t skld_driver = {
X	"skld",
X	skld_methods,
X	sizeof(struct skld_softc)
X};
X
X
Xdevclass_t skld_devclass;
X
XDRIVER_MODULE(skld, pci, skld_driver, skld_devclass, 0, 0);
XDRIVER_MODULE(skld, cardbus, skld_driver, skld_devclass, 0, 0);
END-of-skld_pci.c
exit


----Next_Part(Mon_Jul_25_00_27_41_2005_452)----
