You can subscribe to this list here.
2001 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(165) |
Sep
(240) |
Oct
(424) |
Nov
(526) |
Dec
(293) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2002 |
Jan
(242) |
Feb
(149) |
Mar
(143) |
Apr
(143) |
May
(76) |
Jun
(59) |
Jul
(20) |
Aug
(2) |
Sep
(49) |
Oct
(1) |
Nov
(4) |
Dec
|
2003 |
Jan
(1) |
Feb
|
Mar
|
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2004 |
Jan
|
Feb
|
Mar
|
Apr
(2) |
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
|
2008 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(3) |
Nov
|
Dec
|
2009 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
(72) |
Jul
(36) |
Aug
(9) |
Sep
(16) |
Oct
(23) |
Nov
(9) |
Dec
(3) |
2010 |
Jan
|
Feb
(1) |
Mar
(35) |
Apr
(44) |
May
(56) |
Jun
(71) |
Jul
(41) |
Aug
(41) |
Sep
(22) |
Oct
(3) |
Nov
(1) |
Dec
(1) |
2011 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2012 |
Jan
(1) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(1) |
2013 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
|
2014 |
Jan
(1) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2015 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(1) |
Sep
|
Oct
(1) |
Nov
(1) |
Dec
|
2016 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
|
2017 |
Jan
|
Feb
|
Mar
(1) |
Apr
(1) |
May
(1) |
Jun
|
Jul
(1) |
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
|
2021 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
(1) |
Sep
(25) |
Oct
(105) |
Nov
(15) |
Dec
|
2025 |
Jan
(1) |
Feb
|
Mar
|
Apr
|
May
(4) |
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Pete P. <pp...@us...> - 2002-04-03 00:30:24
|
Update of /cvsroot/linux-mips/linux/include/asm-mips In directory usw-pr-cvs1:/tmp/cvs-serv13922/include/asm-mips Modified Files: au1000.h au1000_pcmcia.h mc146818rtc.h Added Files: pb1100.h Log Message: Pb1100 support. --- NEW FILE: pb1100.h --- /* * Alchemy Semi PB1100 Referrence Board * * Copyright 2001 MontaVista Software Inc. * Author: MontaVista Software, Inc. * pp...@mv... or so...@mv... * * ######################################################################## * * This program is free software; you can distribute it and/or modify it * under the terms of the GNU General Public License (Version 2) as * published by the Free Software Foundation. * * This program is distributed in the hope it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 59 Temple Place - Suite 330, Boston MA 02111-1307, USA. * * ######################################################################## * * */ #ifndef __ASM_PB1100_H #define __ASM_PB1100_H #define PB1500_IDENT 0xAE000000 #define PB1500_BOARD_STATUS 0xAE000004 #define PB1500_PCI_PCMCIA 0xAE000010 #define PC_DEASSERT_RST 0x80 #define PC_DRV_EN 0x10 #define PB1500_G_CONTROL 0xAE000014 #define PB1500_RST_VDDI 0xAE00001C #define PB1500_LEDS 0xAE000018 #define PB1500_HEX_LED 0xAF000004 #define PB1500_HEX_LED_BLANK 0xAF000008 /* PCMCIA PB1500 specific defines */ #define PCMCIA_MAX_SOCK 0 /* VPP/VCC */ #define SET_VCC_VPP(VCC, VPP) (((VCC)<<2) | ((VPP)<<0)) #endif /* __ASM_PB1100_H */ Index: au1000.h =================================================================== RCS file: /cvsroot/linux-mips/linux/include/asm-mips/au1000.h,v retrieving revision 1.15 retrieving revision 1.16 diff -u -d -r1.15 -r1.16 --- au1000.h 23 Mar 2002 02:14:01 -0000 1.15 +++ au1000.h 2 Apr 2002 22:59:40 -0000 1.16 @@ -300,6 +300,12 @@ #define AU1000_MAX_INTR 63 +#define AU1100_SD 2 +#define AU1100_GPIO_208_215 29 +// REDEFINE SECONDARY GPIO BLOCK INTO IC1 CONTROLLER HERE + + + /* Programmable Counters 0 and 1 */ #define SYS_BASE 0xB1900000 #define SYS_COUNTER_CNTRL (SYS_BASE + 0x14) @@ -398,6 +404,7 @@ #define AU1000_ETH1_BASE 0xB0510000 #define AU1500_ETH0_BASE 0xB1500000 #define AU1500_ETH1_BASE 0xB1510000 +#define AU1100_ETH0_BASE 0xB0500000 /* 4 byte offsets from AU1000_ETH_BASE */ #define MAC_CONTROL 0x0 @@ -446,6 +453,8 @@ #define AU1000_MAC1_ENABLE 0xB0520004 #define AU1500_MAC0_ENABLE 0xB1520000 #define AU1500_MAC1_ENABLE 0xB1520004 +#define AU1100_MAC0_ENABLE 0xB0520000 + #define MAC_EN_CLOCK_ENABLE (1<<0) #define MAC_EN_RESET0 (1<<1) #define MAC_EN_TOSS (0<<2) Index: au1000_pcmcia.h =================================================================== RCS file: /cvsroot/linux-mips/linux/include/asm-mips/au1000_pcmcia.h,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- au1000_pcmcia.h 9 Mar 2002 01:41:24 -0000 1.5 +++ au1000_pcmcia.h 2 Apr 2002 22:59:40 -0000 1.6 @@ -89,6 +89,8 @@ extern struct pcmcia_low_level pb1000_pcmcia_ops; #elif defined (CONFIG_MIPS_PB1500) extern struct pcmcia_low_level pb1500_pcmcia_ops; +#elif defined (CONFIG_MIPS_PB1100) +extern struct pcmcia_low_level pb1500_pcmcia_ops; #endif #endif /* __ASM_AU1000_PCMCIA_H */ Index: mc146818rtc.h =================================================================== RCS file: /cvsroot/linux-mips/linux/include/asm-mips/mc146818rtc.h,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- mc146818rtc.h 19 Feb 2002 18:07:22 -0000 1.3 +++ mc146818rtc.h 2 Apr 2002 22:59:40 -0000 1.4 @@ -16,7 +16,7 @@ #ifndef RTC_PORT #if defined(CONFIG_MIPS_ITE8172) || defined(CONFIG_MIPS_IVR) #define RTC_PORT(x) (0x14014800 + (x)) -#elif defined(CONFIG_MIPS_PB1500) +#elif defined(CONFIG_MIPS_PB1500) || defined(CONFIG_MIPS_PB1100) #define RTC_PORT(x) (0xAC000000 + (x)) #else #define RTC_PORT(x) (0x70 + (x)) @@ -54,7 +54,7 @@ #elif defined(CONFIG_MIPS_ITE8172) || defined(CONFIG_MIPS_IVR) #include <asm/it8172/it8172_int.h> #define RTC_IRQ IT8172_RTC_IRQ -#elif defined(CONFIG_MIPS_PB1500) +#elif defined(CONFIG_MIPS_PB1500) || defined(CONFIG_MIPS_PB1100) #undef RTC_IRQ #else #define RTC_IRQ 8 |
From: Pete P. <pp...@us...> - 2002-04-03 00:30:24
|
Update of /cvsroot/linux-mips/linux/arch/mips/configs In directory usw-pr-cvs1:/tmp/cvs-serv13922/arch/mips/configs Modified Files: defconfig-pb1500 Added Files: defconfig-pb1100 Log Message: Pb1100 support. --- NEW FILE: defconfig-pb1100 --- # # Automatically generated make config: don't edit # CONFIG_MIPS=y # # Code maturity level options # CONFIG_EXPERIMENTAL=y # # Machine selection # # CONFIG_ACER_PICA_61 is not set # CONFIG_ALGOR_P4032 is not set # CONFIG_BAGET_MIPS is not set # CONFIG_MIPS_COBALT is not set # CONFIG_DECSTATION is not set # CONFIG_DDB5074 is not set # CONFIG_NEC_EAGLE is not set # CONFIG_NEC_KORVA is not set # CONFIG_MIPS_EV96100 is not set # CONFIG_MIPS_EV64120 is not set # CONFIG_MIPS_ATLAS is not set # CONFIG_MIPS_MALTA is not set # CONFIG_NINO is not set # CONFIG_SIBYTE_SB1250 is not set # CONFIG_PS2 is not set # CONFIG_CASIO_BE300 is not set # CONFIG_CASIO_E15 is not set # CONFIG_VADEM_CLIO_1000 is not set # CONFIG_NEC_MOBILEPRO is not set # CONFIG_IDT_79S334 is not set # CONFIG_IDT_79EB355 is not set # CONFIG_IBM_WORKPAD is not set # CONFIG_CASIO_E55 is not set # CONFIG_VICTOR_MPC303 is not set # CONFIG_MIPS_MAGNUM_4000 is not set # CONFIG_MOMENCO_OCELOT is not set # CONFIG_DDB5476 is not set # CONFIG_DDB5477 is not set # CONFIG_NEC_OSPREY is not set # CONFIG_OLIVETTI_M700 is not set # CONFIG_SGI_IP22 is not set # CONFIG_SNI_RM200_PCI is not set # CONFIG_MIPS_ITE8172 is not set # CONFIG_MIPS_IVR is not set # CONFIG_MIPS_PB1000 is not set # CONFIG_MIPS_PB1500 is not set CONFIG_MIPS_PB1100=y # CONFIG_TOSHIBA_JMR3927 is not set # CONFIG_HP_LASERJET is not set # CONFIG_HIGHMEM is not set CONFIG_RWSEM_GENERIC_SPINLOCK=y # CONFIG_RWSEM_XCHGADD_ALGORITHM is not set # CONFIG_MCA is not set # CONFIG_SBUS is not set CONFIG_MIPS_AU1000=y CONFIG_NEW_IRQ=y CONFIG_PCI=y # CONFIG_PCI_AUTO is not set CONFIG_NEW_PCI=y CONFIG_NONCOHERENT_IO=y CONFIG_PC_KEYB=y # CONFIG_ISA is not set # CONFIG_EISA is not set # # Loadable module support # CONFIG_MODULES=y # CONFIG_MODVERSIONS is not set CONFIG_KMOD=y # # CPU selection # # CONFIG_CPU_R3000 is not set # CONFIG_CPU_TX39XX is not set # CONFIG_CPU_R6000 is not set # CONFIG_CPU_VR41XX is not set # CONFIG_CPU_R4300 is not set # CONFIG_CPU_R4X00 is not set # CONFIG_CPU_TX49XX is not set # CONFIG_CPU_R5000 is not set # CONFIG_CPU_R5432 is not set # CONFIG_CPU_R5900 is not set # CONFIG_CPU_RM7000 is not set # CONFIG_CPU_SR7100 is not set # CONFIG_CPU_NEVADA is not set # CONFIG_CPU_R10000 is not set # CONFIG_CPU_SB1 is not set CONFIG_CPU_MIPS32=y # CONFIG_CPU_MIPS64 is not set # CONFIG_CPU_RC32300 is not set CONFIG_CPU_HAS_PREFETCH=y CONFIG_64BIT_PHYS_ADDR=y CONFIG_CPU_ADVANCED=y CONFIG_CPU_HAS_LLSC=y # CONFIG_CPU_HAS_LLDSCD is not set CONFIG_CPU_HAS_WB=y # # General setup # CONFIG_CPU_LITTLE_ENDIAN=y # CONFIG_CPU_R5900_CONTEXT is not set # CONFIG_VR4131_CACHE_FIX is not set # CONFIG_VR4122_CLKSPEEDREG_FIX is not set CONFIG_KCORE_ELF=y CONFIG_ELF_KERNEL=y # CONFIG_BINFMT_AOUT is not set CONFIG_BINFMT_ELF=y # CONFIG_BINFMT_MISC is not set # CONFIG_PM is not set # CONFIG_CPU_FREQ is not set CONFIG_NET=y CONFIG_PCI_NAMES=y CONFIG_HOTPLUG=y # # PCMCIA/CardBus support # CONFIG_PCMCIA=m # CONFIG_CARDBUS is not set # CONFIG_I82092 is not set # CONFIG_I82365 is not set # CONFIG_PCMCIA_IRQ_REMAP is not set # CONFIG_TCIC is not set # CONFIG_PCMCIA_AU1000 is not set # CONFIG_PCMCIA_AU1500 is not set # CONFIG_PCMCIA_AU1100 is not set # # PCI Hotplug Support # # CONFIG_HOTPLUG_PCI is not set # CONFIG_HOTPLUG_PCI_COMPAQ is not set # CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM is not set CONFIG_SYSVIPC=y # CONFIG_BSD_PROCESS_ACCT is not set CONFIG_SYSCTL=y # # Memory Technology Devices (MTD) # CONFIG_MTD=y # CONFIG_MTD_DEBUG is not set CONFIG_MTD_PARTITIONS=y # CONFIG_MTD_REDBOOT_PARTS is not set # # User Modules And Translation Layers # CONFIG_MTD_CHAR=y CONFIG_MTD_BLOCK=y # CONFIG_FTL is not set # CONFIG_NFTL is not set # # RAM/ROM/Flash chip drivers # CONFIG_MTD_CFI=y # CONFIG_MTD_JEDECPROBE is not set CONFIG_MTD_GEN_PROBE=y # CONFIG_MTD_CFI_ADV_OPTIONS is not set CONFIG_MTD_CFI_INTELEXT=y # CONFIG_MTD_CFI_AMDSTD is not set # CONFIG_MTD_RAM is not set # CONFIG_MTD_ROM is not set # CONFIG_MTD_ABSENT is not set # CONFIG_MTD_OBSOLETE_CHIPS is not set # CONFIG_MTD_AMDSTD is not set # CONFIG_MTD_SHARP is not set # CONFIG_MTD_JEDEC is not set # # Mapping drivers for chip access # # CONFIG_MTD_PHYSMAP is not set # CONFIG_MTD_PB1000 is not set # CONFIG_MTD_PB1500 is not set # CONFIG_MTD_CSTM_MIPS_IXX is not set # CONFIG_MTD_OCELOT is not set # # Self-contained MTD device drivers # # CONFIG_MTD_PMC551 is not set # CONFIG_MTD_SLRAM is not set # CONFIG_MTD_MTDRAM is not set # CONFIG_MTD_BLKMTD is not set # # Disk-On-Chip Device Drivers # # CONFIG_MTD_DOC1000 is not set # CONFIG_MTD_DOC2000 is not set # CONFIG_MTD_DOC2001 is not set # CONFIG_MTD_DOCPROBE is not set # # NAND Flash Device Drivers # # CONFIG_MTD_NAND is not set # # Parallel port support # # CONFIG_PARPORT is not set # # Block devices # # CONFIG_BLK_DEV_FD is not set # CONFIG_BLK_DEV_XD is not set # CONFIG_PARIDE is not set # CONFIG_BLK_CPQ_DA is not set # CONFIG_BLK_CPQ_CISS_DA is not set # CONFIG_BLK_DEV_DAC960 is not set CONFIG_BLK_DEV_LOOP=y # CONFIG_BLK_DEV_NBD is not set # CONFIG_BLK_DEV_RAM is not set # CONFIG_BLK_DEV_INITRD is not set # # Multi-device support (RAID and LVM) # # CONFIG_MD is not set # CONFIG_BLK_DEV_MD is not set # CONFIG_MD_LINEAR is not set # CONFIG_MD_RAID0 is not set # CONFIG_MD_RAID1 is not set # CONFIG_MD_RAID5 is not set # CONFIG_MD_MULTIPATH is not set # CONFIG_BLK_DEV_LVM is not set # # Networking options # CONFIG_PACKET=y # CONFIG_PACKET_MMAP is not set # CONFIG_NETLINK_DEV is not set CONFIG_NETFILTER=y # CONFIG_NETFILTER_DEBUG is not set # CONFIG_FILTER is not set CONFIG_UNIX=y CONFIG_INET=y CONFIG_IP_MULTICAST=y # CONFIG_IP_ADVANCED_ROUTER is not set CONFIG_IP_PNP=y # CONFIG_IP_PNP_DHCP is not set CONFIG_IP_PNP_BOOTP=y # CONFIG_IP_PNP_RARP is not set # CONFIG_NET_IPIP is not set # CONFIG_NET_IPGRE is not set # CONFIG_IP_MROUTE is not set # CONFIG_ARPD is not set # CONFIG_INET_ECN is not set # CONFIG_SYN_COOKIES is not set # # IP: Netfilter Configuration # # CONFIG_IP_NF_CONNTRACK is not set # CONFIG_IP_NF_QUEUE is not set # CONFIG_IP_NF_IPTABLES is not set # CONFIG_IP_NF_COMPAT_IPCHAINS is not set # CONFIG_IP_NF_COMPAT_IPFWADM is not set # CONFIG_IPV6 is not set # CONFIG_KHTTPD is not set # CONFIG_ATM is not set # CONFIG_VLAN_8021Q is not set # # # # CONFIG_IPX is not set # CONFIG_ATALK is not set # CONFIG_DECNET is not set # CONFIG_BRIDGE is not set # CONFIG_X25 is not set # CONFIG_LAPB is not set # CONFIG_LLC is not set # CONFIG_NET_DIVERT is not set # CONFIG_ECONET is not set # CONFIG_WAN_ROUTER is not set # CONFIG_NET_FASTROUTE is not set # CONFIG_NET_HW_FLOWCONTROL is not set # # QoS and/or fair queueing # # CONFIG_NET_SCHED is not set # # Telephony Support # # CONFIG_PHONE is not set # CONFIG_PHONE_IXJ is not set # CONFIG_PHONE_IXJ_PCMCIA is not set # # ATA/IDE/MFM/RLL support # # CONFIG_IDE is not set # CONFIG_BLK_DEV_IDE_MODES is not set # CONFIG_BLK_DEV_HD is not set # # SCSI support # # CONFIG_SCSI is not set # # I2O device support # # CONFIG_I2O is not set # CONFIG_I2O_PCI is not set # CONFIG_I2O_BLOCK is not set # CONFIG_I2O_LAN is not set # CONFIG_I2O_SCSI is not set # CONFIG_I2O_PROC is not set # # Network device support # CONFIG_NETDEVICES=y # # ARCnet devices # # CONFIG_ARCNET is not set # CONFIG_DUMMY is not set # CONFIG_BONDING is not set # CONFIG_EQUALIZER is not set # CONFIG_TUN is not set # CONFIG_ETHERTAP is not set # # Ethernet (10 or 100Mbit) # CONFIG_NET_ETHERNET=y CONFIG_MIPS_AU1000_ENET=y # CONFIG_SUNLANCE is not set # CONFIG_HAPPYMEAL is not set # CONFIG_SUNBMAC is not set # CONFIG_SUNQE is not set # CONFIG_SUNGEM is not set # CONFIG_NET_VENDOR_3COM is not set # CONFIG_LANCE is not set # CONFIG_NET_VENDOR_SMC is not set # CONFIG_NET_VENDOR_RACAL is not set # CONFIG_HP100 is not set # CONFIG_NET_ISA is not set # CONFIG_NET_PCI is not set # CONFIG_NET_POCKET is not set # # Ethernet (1000 Mbit) # # CONFIG_ACENIC is not set # CONFIG_DL2K is not set # CONFIG_MYRI_SBUS is not set # CONFIG_NS83820 is not set # CONFIG_HAMACHI is not set # CONFIG_YELLOWFIN is not set # CONFIG_SK98LIN is not set # CONFIG_FDDI is not set # CONFIG_HIPPI is not set # CONFIG_PLIP is not set CONFIG_PPP=m CONFIG_PPP_MULTILINK=y # CONFIG_PPP_FILTER is not set CONFIG_PPP_ASYNC=m # CONFIG_PPP_SYNC_TTY is not set CONFIG_PPP_DEFLATE=m # CONFIG_PPP_BSDCOMP is not set CONFIG_PPPOE=m # CONFIG_SLIP is not set # # Wireless LAN (non-hamradio) # # CONFIG_NET_RADIO is not set # # Token Ring devices # # CONFIG_TR is not set # CONFIG_NET_FC is not set # CONFIG_RCPCI is not set # CONFIG_SHAPER is not set # # Wan interfaces # # CONFIG_WAN is not set # # PCMCIA network device support # CONFIG_NET_PCMCIA=y CONFIG_PCMCIA_3C589=m # CONFIG_PCMCIA_3C574 is not set # CONFIG_PCMCIA_FMVJ18X is not set # CONFIG_PCMCIA_PCNET is not set # CONFIG_PCMCIA_AXNET is not set # CONFIG_PCMCIA_NMCLAN is not set # CONFIG_PCMCIA_SMC91C92 is not set # CONFIG_PCMCIA_XIRC2PS is not set # CONFIG_ARCNET_COM20020_CS is not set # CONFIG_PCMCIA_IBMTR is not set # CONFIG_NET_PCMCIA_RADIO is not set # # Amateur Radio support # # CONFIG_HAMRADIO is not set # # IrDA (infrared) support # # CONFIG_IRDA is not set # # ISDN subsystem # # CONFIG_ISDN is not set # # Old CD-ROM drivers (not SCSI, not IDE) # # CONFIG_CD_NO_IDESCSI is not set # # Character devices # CONFIG_VT=y CONFIG_VT_CONSOLE=y # CONFIG_SERIAL is not set # CONFIG_SERIAL_EXTENDED is not set CONFIG_SERIAL_NONSTANDARD=y # CONFIG_COMPUTONE is not set # CONFIG_ROCKETPORT is not set # CONFIG_CYCLADES is not set # CONFIG_DIGIEPCA is not set # CONFIG_DIGI is not set # CONFIG_ESPSERIAL is not set # CONFIG_MOXA_INTELLIO is not set # CONFIG_MOXA_SMARTIO is not set # CONFIG_ISI is not set # CONFIG_SYNCLINK is not set # CONFIG_N_HDLC is not set # CONFIG_RISCOM8 is not set # CONFIG_SPECIALIX is not set # CONFIG_SX is not set # CONFIG_RIO is not set # CONFIG_STALDRV is not set # CONFIG_SERIAL_TX3912 is not set # CONFIG_SERIAL_TX3912_CONSOLE is not set CONFIG_AU1000_UART=y CONFIG_AU1000_SERIAL_CONSOLE=y # CONFIG_TXX927_SERIAL is not set CONFIG_UNIX98_PTYS=y CONFIG_UNIX98_PTY_COUNT=256 # # I2C support # # CONFIG_I2C is not set # # Mice # # CONFIG_BUSMOUSE is not set # CONFIG_MOUSE is not set # # Joysticks # # CONFIG_INPUT_GAMEPORT is not set # CONFIG_INPUT_NS558 is not set # CONFIG_INPUT_LIGHTNING is not set # CONFIG_INPUT_PCIGAME is not set # CONFIG_INPUT_CS461X is not set # CONFIG_INPUT_EMU10K1 is not set # CONFIG_INPUT_SERIO is not set # CONFIG_INPUT_SERPORT is not set # # Joysticks # # CONFIG_INPUT_ANALOG is not set # CONFIG_INPUT_A3D is not set # CONFIG_INPUT_ADI is not set # CONFIG_INPUT_COBRA is not set # CONFIG_INPUT_GF2K is not set # CONFIG_INPUT_GRIP is not set # CONFIG_INPUT_INTERACT is not set # CONFIG_INPUT_TMDC is not set # CONFIG_INPUT_SIDEWINDER is not set # CONFIG_INPUT_IFORCE_USB is not set # CONFIG_INPUT_IFORCE_232 is not set # CONFIG_INPUT_WARRIOR is not set # CONFIG_INPUT_MAGELLAN is not set # CONFIG_INPUT_SPACEORB is not set # CONFIG_INPUT_SPACEBALL is not set # CONFIG_INPUT_STINGER is not set # CONFIG_INPUT_DB9 is not set # CONFIG_INPUT_GAMECON is not set # CONFIG_INPUT_TURBOGRAFX is not set # CONFIG_QIC02_TAPE is not set # # Watchdog Cards # # CONFIG_WATCHDOG is not set # CONFIG_INTEL_RNG is not set # CONFIG_NVRAM is not set CONFIG_RTC=y # CONFIG_DTLK is not set # CONFIG_R3964 is not set # CONFIG_APPLICOM is not set # # Ftape, the floppy tape device driver # # CONFIG_FTAPE is not set # CONFIG_AGP is not set # CONFIG_DRM is not set # # PCMCIA character devices # # CONFIG_PCMCIA_SERIAL_CS is not set # CONFIG_AU1000_GPIO is not set # CONFIG_TS_AU1000_ADS7846 is not set # # Multimedia devices # # CONFIG_VIDEO_DEV is not set # # File systems # # CONFIG_QUOTA is not set CONFIG_AUTOFS_FS=m CONFIG_AUTOFS4_FS=m CONFIG_REISERFS_FS=m # CONFIG_REISERFS_CHECK is not set # CONFIG_REISERFS_PROC_INFO is not set # CONFIG_ADFS_FS is not set # CONFIG_ADFS_FS_RW is not set # CONFIG_AFFS_FS is not set # CONFIG_HFS_FS is not set # CONFIG_BFS_FS is not set CONFIG_EXT3_FS=y CONFIG_JBD=y # CONFIG_JBD_DEBUG is not set # CONFIG_FAT_FS is not set # CONFIG_MSDOS_FS is not set # CONFIG_UMSDOS_FS is not set # CONFIG_VFAT_FS is not set # CONFIG_EFS_FS is not set CONFIG_JFFS_FS=m CONFIG_JFFS_FS_VERBOSE=0 CONFIG_JFFS_PROC_FS=y CONFIG_JFFS2_FS=m CONFIG_JFFS2_FS_DEBUG=0 CONFIG_CRAMFS=m CONFIG_TMPFS=y CONFIG_RAMFS=m # CONFIG_ISO9660_FS is not set # CONFIG_JOLIET is not set # CONFIG_ZISOFS is not set # CONFIG_MINIX_FS is not set # CONFIG_VXFS_FS is not set # CONFIG_NTFS_FS is not set # CONFIG_NTFS_RW is not set # CONFIG_HPFS_FS is not set CONFIG_PROC_FS=y # CONFIG_DEVFS_FS is not set # CONFIG_DEVFS_MOUNT is not set # CONFIG_DEVFS_DEBUG is not set CONFIG_DEVPTS_FS=y # CONFIG_QNX4FS_FS is not set # CONFIG_QNX4FS_RW is not set # CONFIG_ROMFS_FS is not set CONFIG_EXT2_FS=y # CONFIG_SYSV_FS is not set # CONFIG_UDF_FS is not set # CONFIG_UDF_RW is not set # CONFIG_UFS_FS is not set # CONFIG_UFS_FS_WRITE is not set # # Network File Systems # # CONFIG_CODA_FS is not set # CONFIG_INTERMEZZO_FS is not set CONFIG_NFS_FS=y # CONFIG_NFS_V3 is not set CONFIG_ROOT_NFS=y CONFIG_NFSD=m # CONFIG_NFSD_V3 is not set CONFIG_SUNRPC=y CONFIG_LOCKD=y CONFIG_SMB_FS=m # CONFIG_SMB_NLS_DEFAULT is not set # CONFIG_NCP_FS is not set # CONFIG_NCPFS_PACKET_SIGNING is not set # CONFIG_NCPFS_IOCTL_LOCKING is not set # CONFIG_NCPFS_STRONG is not set # CONFIG_NCPFS_NFS_NS is not set # CONFIG_NCPFS_OS2_NS is not set # CONFIG_NCPFS_SMALLDOS is not set # CONFIG_NCPFS_NLS is not set # CONFIG_NCPFS_EXTRAS is not set # CONFIG_ZISOFS_FS is not set CONFIG_ZLIB_FS_INFLATE=m # # Partition Types # # CONFIG_PARTITION_ADVANCED is not set CONFIG_MSDOS_PARTITION=y CONFIG_SMB_NLS=y CONFIG_NLS=y # # Native Language Support # CONFIG_NLS_DEFAULT="iso8859-1" # CONFIG_NLS_CODEPAGE_437 is not set # CONFIG_NLS_CODEPAGE_737 is not set # CONFIG_NLS_CODEPAGE_775 is not set # CONFIG_NLS_CODEPAGE_850 is not set # CONFIG_NLS_CODEPAGE_852 is not set # CONFIG_NLS_CODEPAGE_855 is not set # CONFIG_NLS_CODEPAGE_857 is not set # CONFIG_NLS_CODEPAGE_860 is not set # CONFIG_NLS_CODEPAGE_861 is not set # CONFIG_NLS_CODEPAGE_862 is not set # CONFIG_NLS_CODEPAGE_863 is not set # CONFIG_NLS_CODEPAGE_864 is not set # CONFIG_NLS_CODEPAGE_865 is not set # CONFIG_NLS_CODEPAGE_866 is not set # CONFIG_NLS_CODEPAGE_869 is not set # CONFIG_NLS_CODEPAGE_936 is not set # CONFIG_NLS_CODEPAGE_950 is not set # CONFIG_NLS_CODEPAGE_932 is not set # CONFIG_NLS_CODEPAGE_949 is not set # CONFIG_NLS_CODEPAGE_874 is not set # CONFIG_NLS_ISO8859_8 is not set # CONFIG_NLS_CODEPAGE_1250 is not set # CONFIG_NLS_CODEPAGE_1251 is not set # CONFIG_NLS_ISO8859_1 is not set # CONFIG_NLS_ISO8859_2 is not set # CONFIG_NLS_ISO8859_3 is not set # CONFIG_NLS_ISO8859_4 is not set # CONFIG_NLS_ISO8859_5 is not set # CONFIG_NLS_ISO8859_6 is not set # CONFIG_NLS_ISO8859_7 is not set # CONFIG_NLS_ISO8859_9 is not set # CONFIG_NLS_ISO8859_13 is not set # CONFIG_NLS_ISO8859_14 is not set # CONFIG_NLS_ISO8859_15 is not set # CONFIG_NLS_KOI8_R is not set # CONFIG_NLS_KOI8_U is not set # CONFIG_NLS_UTF8 is not set # # Console drivers # # CONFIG_VGA_CONSOLE is not set # CONFIG_MDA_CONSOLE is not set # # Frame-buffer support # CONFIG_FB=y CONFIG_DUMMY_CONSOLE=y # CONFIG_FB_RIVA is not set # CONFIG_FB_CLGEN is not set # CONFIG_FB_PM2 is not set # CONFIG_FB_CYBER2000 is not set # CONFIG_FB_E1355 is not set # CONFIG_FB_MQ200 is not set # CONFIG_FB_MATROX is not set # CONFIG_FB_ATY is not set # CONFIG_FB_RADEON is not set # CONFIG_FB_ATY128 is not set # CONFIG_FB_SIS is not set # CONFIG_FB_3DFX is not set # CONFIG_FB_VOODOO1 is not set # CONFIG_FB_TRIDENT is not set CONFIG_FB_E1356=y CONFIG_PB1500_CRT=y # CONFIG_PB1500_TFT is not set # CONFIG_FB_IT8181 is not set # CONFIG_FB_SIMPLE is not set # CONFIG_FB_HPCSFB is not set # CONFIG_FB_VIRTUAL is not set CONFIG_FBCON_ADVANCED=y # CONFIG_FBCON_MFB is not set # CONFIG_FBCON_CFB2 is not set # CONFIG_FBCON_CFB4 is not set CONFIG_FBCON_CFB8=y CONFIG_FBCON_CFB16=y # CONFIG_FBCON_CFB24 is not set # CONFIG_FBCON_CFB32 is not set # CONFIG_FBCON_AFB is not set # CONFIG_FBCON_ILBM is not set # CONFIG_FBCON_IPLAN2P2 is not set # CONFIG_FBCON_IPLAN2P4 is not set # CONFIG_FBCON_IPLAN2P8 is not set # CONFIG_FBCON_MAC is not set # CONFIG_FBCON_VGA_PLANES is not set # CONFIG_FBCON_VGA is not set # CONFIG_FBCON_HGA is not set # CONFIG_FBCON_FONTWIDTH8_ONLY is not set # CONFIG_FBCON_FONTS is not set CONFIG_FONT_8x8=y CONFIG_FONT_8x16=y # # Sound # # CONFIG_SOUND is not set # # USB support # # CONFIG_USB is not set # # USB Controllers # # CONFIG_USB_UHCI is not set # CONFIG_USB_UHCI_ALT is not set # CONFIG_USB_OHCI is not set # # USB Device Class drivers # # CONFIG_USB_AUDIO is not set # CONFIG_USB_BLUETOOTH is not set # # SCSI support is needed for USB Storage # # CONFIG_USB_STORAGE is not set # CONFIG_USB_STORAGE_DEBUG is not set # CONFIG_USB_STORAGE_DATAFAB is not set # CONFIG_USB_STORAGE_FREECOM is not set # CONFIG_USB_STORAGE_ISD200 is not set # CONFIG_USB_STORAGE_DPCM is not set # CONFIG_USB_STORAGE_HP8200e is not set # CONFIG_USB_STORAGE_SDDR09 is not set # CONFIG_USB_STORAGE_JUMPSHOT is not set # CONFIG_USB_ACM is not set # CONFIG_USB_PRINTER is not set # # USB Human Interface Devices (HID) # # CONFIG_USB_HID is not set # CONFIG_USB_HIDDEV is not set # CONFIG_USB_KBD is not set # CONFIG_USB_MOUSE is not set # CONFIG_USB_WACOM is not set # # USB Imaging devices # # CONFIG_USB_DC2XX is not set # CONFIG_USB_MDC800 is not set # CONFIG_USB_SCANNER is not set # CONFIG_USB_MICROTEK is not set # CONFIG_USB_HPUSBSCSI is not set # # USB Multimedia devices # # # Video4Linux support is needed for USB Multimedia device support # # # USB Network adaptors # # CONFIG_USB_PEGASUS is not set # CONFIG_USB_KAWETH is not set # CONFIG_USB_CATC is not set # CONFIG_USB_CDCETHER is not set # CONFIG_USB_USBNET is not set # # USB port drivers # # CONFIG_USB_USS720 is not set # # USB Serial Converter support # # CONFIG_USB_SERIAL is not set # CONFIG_USB_SERIAL_GENERIC is not set # CONFIG_USB_SERIAL_BELKIN is not set # CONFIG_USB_SERIAL_WHITEHEAT is not set # CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set # CONFIG_USB_SERIAL_EMPEG is not set # CONFIG_USB_SERIAL_FTDI_SIO is not set # CONFIG_USB_SERIAL_VISOR is not set # CONFIG_USB_SERIAL_IPAQ is not set # CONFIG_USB_SERIAL_IR is not set # CONFIG_USB_SERIAL_EDGEPORT is not set # CONFIG_USB_SERIAL_KEYSPAN_PDA is not set # CONFIG_USB_SERIAL_KEYSPAN is not set # CONFIG_USB_SERIAL_KEYSPAN_USA28 is not set # CONFIG_USB_SERIAL_KEYSPAN_USA28X is not set # CONFIG_USB_SERIAL_KEYSPAN_USA28XA is not set # CONFIG_USB_SERIAL_KEYSPAN_USA28XB is not set # CONFIG_USB_SERIAL_KEYSPAN_USA19 is not set # CONFIG_USB_SERIAL_KEYSPAN_USA18X is not set # CONFIG_USB_SERIAL_KEYSPAN_USA19W is not set # CONFIG_USB_SERIAL_KEYSPAN_USA49W is not set # CONFIG_USB_SERIAL_MCT_U232 is not set # CONFIG_USB_SERIAL_KLSI is not set # CONFIG_USB_SERIAL_PL2303 is not set # CONFIG_USB_SERIAL_CYBERJACK is not set # CONFIG_USB_SERIAL_XIRCOM is not set # CONFIG_USB_SERIAL_OMNINET is not set # # USB Miscellaneous drivers # # CONFIG_USB_RIO500 is not set # # Input core support # CONFIG_INPUT=y CONFIG_INPUT_KEYBDEV=y CONFIG_INPUT_MOUSEDEV=y CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 # CONFIG_INPUT_JOYDEV is not set CONFIG_INPUT_EVDEV=y # # Kernel hacking # CONFIG_CROSSCOMPILE=y # CONFIG_REMOTE_DEBUG is not set # CONFIG_GDB_CONSOLE is not set # CONFIG_DEBUG is not set # CONFIG_MAGIC_SYSRQ is not set # CONFIG_MIPS_UNCACHED is not set Index: defconfig-pb1500 =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/configs/defconfig-pb1500,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- defconfig-pb1500 9 Mar 2002 02:07:10 -0000 1.4 +++ defconfig-pb1500 2 Apr 2002 22:59:39 -0000 1.5 @@ -58,6 +58,7 @@ CONFIG_NEW_IRQ=y CONFIG_PCI=y CONFIG_NEW_PCI=y +CONFIG_PCI_AUTO=y CONFIG_NONCOHERENT_IO=y CONFIG_PC_KEYB=y MAX_HWIFS=1 @@ -115,9 +116,25 @@ # CONFIG_CPU_FREQ is not set CONFIG_NET=y CONFIG_PCI_NAMES=y -# CONFIG_HOTPLUG is not set -# CONFIG_PCMCIA is not set -# CONFIG_HOTPLUG_PCI is not set +CONFIG_HOTPLUG=y + +# +# PCMCIA/CardBus support +# +CONFIG_PCMCIA=y +CONFIG_CARDBUS=y +# CONFIG_I82092 is not set +# CONFIG_I82365 is not set +# CONFIG_PCMCIA_IRQ_REMAP is not set +# CONFIG_TCIC is not set +# CONFIG_PCMCIA_AU1000 is not set + +# +# PCI Hotplug Support +# +CONFIG_HOTPLUG_PCI=y +# CONFIG_HOTPLUG_PCI_COMPAQ is not set +# CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM is not set CONFIG_SYSVIPC=y # CONFIG_BSD_PROCESS_ACCT is not set CONFIG_SYSCTL=y @@ -293,7 +310,7 @@ # CONFIG_BLK_DEV_IDEDISK_WD is not set # CONFIG_BLK_DEV_COMMERIAL is not set # CONFIG_BLK_DEV_TIVO is not set -# CONFIG_BLK_DEV_IDECS is not set +CONFIG_BLK_DEV_IDECS=m # CONFIG_BLK_DEV_IDECD is not set # CONFIG_BLK_DEV_IDETAPE is not set # CONFIG_BLK_DEV_IDEFLOPPY is not set @@ -447,7 +464,19 @@ # # Wireless LAN (non-hamradio) # -# CONFIG_NET_RADIO is not set +CONFIG_NET_RADIO=y +# CONFIG_STRIP is not set +# CONFIG_WAVELAN is not set +# CONFIG_ARLAN is not set +# CONFIG_AIRONET4500 is not set +# CONFIG_AIRONET4500_NONCS is not set +# CONFIG_AIRONET4500_PROC is not set +# CONFIG_AIRO is not set +CONFIG_HERMES=m +# CONFIG_PLX_HERMES is not set +CONFIG_PCMCIA_HERMES=m +# CONFIG_AIRO_CS is not set +CONFIG_NET_WIRELESS=y # # Token Ring devices @@ -463,6 +492,24 @@ # CONFIG_WAN is not set # +# PCMCIA network device support +# +CONFIG_NET_PCMCIA=y +# CONFIG_PCMCIA_3C589 is not set +# CONFIG_PCMCIA_3C574 is not set +# CONFIG_PCMCIA_FMVJ18X is not set +# CONFIG_PCMCIA_PCNET is not set +# CONFIG_PCMCIA_AXNET is not set +# CONFIG_PCMCIA_NMCLAN is not set +# CONFIG_PCMCIA_SMC91C92 is not set +# CONFIG_PCMCIA_XIRC2PS is not set +# CONFIG_ARCNET_COM20020_CS is not set +# CONFIG_PCMCIA_IBMTR is not set +# CONFIG_PCMCIA_XIRCOM is not set +# CONFIG_PCMCIA_XIRTULIP is not set +# CONFIG_NET_PCMCIA_RADIO is not set + +# # Amateur Radio support # # CONFIG_HAMRADIO is not set @@ -548,6 +595,11 @@ # CONFIG_FTAPE is not set # CONFIG_AGP is not set # CONFIG_DRM is not set + +# +# PCMCIA character devices +# +# CONFIG_PCMCIA_SERIAL_CS is not set # CONFIG_AU1000_GPIO is not set # CONFIG_TS_AU1000_ADS7846 is not set @@ -560,6 +612,7 @@ # File systems # # CONFIG_QUOTA is not set +# CONFIG_FS_POSIX_ACL is not set CONFIG_AUTOFS_FS=m CONFIG_AUTOFS4_FS=m CONFIG_REISERFS_FS=m @@ -608,6 +661,10 @@ # CONFIG_UDF_RW is not set # CONFIG_UFS_FS is not set # CONFIG_UFS_FS_WRITE is not set +CONFIG_XFS_FS=y +# CONFIG_XFS_RT is not set +# CONFIG_XFS_QUOTA is not set +# CONFIG_XFS_DMAPI is not set # # Network File Systems @@ -711,6 +768,7 @@ # CONFIG_FB_VOODOO1 is not set # CONFIG_FB_TRIDENT is not set # CONFIG_FB_E1356 is not set +# CONFIG_FB_IT8181 is not set # CONFIG_FB_SIMPLE is not set # CONFIG_FB_HPCSFB is not set # CONFIG_FB_VIRTUAL is not set |
From: Pete P. <pp...@us...> - 2002-04-03 00:30:24
|
Update of /cvsroot/linux-mips/linux/drivers/pcmcia In directory usw-pr-cvs1:/tmp/cvs-serv13922/drivers/pcmcia Modified Files: Config.in Makefile au1000_generic.c Log Message: Pb1100 support. Index: Config.in =================================================================== RCS file: /cvsroot/linux-mips/linux/drivers/pcmcia/Config.in,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- Config.in 2 Dec 2001 19:05:32 -0000 1.4 +++ Config.in 2 Apr 2002 22:59:40 -0000 1.5 @@ -25,7 +25,9 @@ dep_tristate ' HD64465 host bridge support' CONFIG_HD64465_PCMCIA $CONFIG_PCMCIA fi if [ "$CONFIG_MIPS_AU1000" = "y" ]; then - dep_tristate ' AU1000 support' CONFIG_PCMCIA_AU1000 $CONFIG_PCMCIA + dep_tristate ' Au1000 support' CONFIG_PCMCIA_AU1000 $CONFIG_PCMCIA $CONFIG_MIPS_PB1000 + dep_tristate ' Au1500 support' CONFIG_PCMCIA_AU1500 $CONFIG_PCMCIA $CONFIG_MIPS_PB1500 + dep_tristate ' Au1100 support' CONFIG_PCMCIA_AU1100 $CONFIG_PCMCIA $CONFIG_MIPS_PB1100 fi fi Index: Makefile =================================================================== RCS file: /cvsroot/linux-mips/linux/drivers/pcmcia/Makefile,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- Makefile 5 Dec 2001 19:52:53 -0000 1.4 +++ Makefile 2 Apr 2002 22:59:40 -0000 1.5 @@ -60,8 +60,11 @@ endif obj-$(CONFIG_PCMCIA_AU1000) += au1000_ss.o +obj-$(CONFIG_PCMCIA_AU1500) += au1500_ss.o au1000_ss-objs-y := au1000_generic.o au1000_ss-objs-$(CONFIG_MIPS_PB1000) += au1000_pb1000.o +au1000_ss-objs-$(CONFIG_MIPS_PB1500) += au1000_pb1500.o +au1000_ss-objs-$(CONFIG_MIPS_PB1100) += au1000_pb1500.o obj-$(CONFIG_PCMCIA_SA1100) += sa1100_cs.o Index: au1000_generic.c =================================================================== RCS file: /cvsroot/linux-mips/linux/drivers/pcmcia/au1000_generic.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- au1000_generic.c 9 Mar 2002 01:41:24 -0000 1.7 +++ au1000_generic.c 2 Apr 2002 22:59:40 -0000 1.8 @@ -157,6 +157,8 @@ pcmcia_low_level=&pb1000_pcmcia_ops; #elif defined(CONFIG_MIPS_PB1500) pcmcia_low_level=&pb1500_pcmcia_ops; +#elif defined(CONFIG_MIPS_PB1100) + pcmcia_low_level=&pb1500_pcmcia_ops; #else #error Unsupported AU1000 board. #endif |
From: Pete P. <pp...@us...> - 2002-04-03 00:30:23
|
Update of /cvsroot/linux-mips/linux/arch/mips/kernel In directory usw-pr-cvs1:/tmp/cvs-serv13922/arch/mips/kernel Modified Files: setup.c Log Message: Pb1100 support. Index: setup.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/kernel/setup.c,v retrieving revision 1.53 retrieving revision 1.54 diff -u -d -r1.53 -r1.54 --- setup.c 11 Mar 2002 19:36:36 -0000 1.53 +++ setup.c 2 Apr 2002 22:59:39 -0000 1.54 @@ -853,6 +853,11 @@ au1500_setup(); break; #endif +#ifdef CONFIG_MIPS_PB1100 + case MACH_GROUP_ALCHEMY: + au1100_setup(); + break; +#endif #ifdef CONFIG_TOSHIBA_JMR3927 case MACH_GROUP_TOSHIBA: jmr3927_setup(); |
From: Pete P. <pp...@us...> - 2002-04-03 00:30:20
|
Update of /cvsroot/linux-mips/linux/arch/mips/au1000/pb1100 In directory usw-pr-cvs1:/tmp/cvs-serv13922/arch/mips/au1000/pb1100 Added Files: Makefile init.c pci_fixup.c pci_ops.c setup.c Log Message: Pb1100 support. --- NEW FILE: Makefile --- # # Copyright 2000,2001 MontaVista Software Inc. # Author: MontaVista Software, Inc. # pp...@mv... or so...@mv... # # Makefile for the Alchemy Semiconductor Pb1100 board. # # Note! Dependencies are done automagically by 'make dep', which also # removes any old dependencies. DON'T put your own dependencies here # unless it's something special (ie not a .c file). # .S.s: $(CPP) $(CFLAGS) $< -o $*.s .S.o: $(CC) $(CFLAGS) -c $< -o $*.o O_TARGET := pb1100.o obj-y := init.o setup.o obj-$(CONFIG_PCI) += pci_fixup.o pci_ops.o include $(TOPDIR)/Rules.make --- NEW FILE: init.c --- /* * * BRIEF MODULE DESCRIPTION * Pb1100 board setup * * Copyright 2002 MontaVista Software Inc. * Author: MontaVista Software, Inc. * pp...@mv... or so...@mv... * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 675 Mass Ave, Cambridge, MA 02139, USA. */ #include <linux/init.h> #include <linux/mm.h> #include <linux/sched.h> #include <linux/bootmem.h> #include <asm/addrspace.h> #include <asm/bootinfo.h> #include <linux/config.h> #include <linux/string.h> #include <linux/kernel.h> #include <linux/sched.h> int prom_argc; char **prom_argv, **prom_envp; extern void __init prom_init_cmdline(void); extern char *prom_getenv(char *envname); const char *get_system_type(void) { return "Alchemy Pb1100"; } int __init prom_init(int argc, char **argv, char **envp, int *prom_vec) { unsigned char *memsize_str; unsigned long memsize; prom_argc = argc; prom_argv = argv; prom_envp = envp; mips_machgroup = MACH_GROUP_ALCHEMY; mips_machtype = MACH_PB1000; prom_init_cmdline(); memsize_str = prom_getenv("memsize"); if (!memsize_str) { memsize = 0x04000000; } else { memsize = simple_strtol(memsize_str, NULL, 0); } add_memory_region(0, memsize, BOOT_MEM_RAM); return 0; } --- NEW FILE: pci_fixup.c --- /* * BRIEF MODULE DESCRIPTION * Board specific pci fixups. * * Copyright 2002 MontaVista Software Inc. * Author: MontaVista Software, Inc. * pp...@mv... or so...@mv... * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 675 Mass Ave, Cambridge, MA 02139, USA. */ #include <linux/config.h> #ifdef CONFIG_PCI #include <linux/types.h> #include <linux/pci.h> #include <linux/kernel.h> #include <linux/init.h> #include <asm/au1000.h> #include <asm/pb1100.h> #undef DEBUG #ifdef DEBUG #define DBG(x...) printk(x) #else #define DBG(x...) #endif static void fixup_resource(int r_num, struct pci_dev *dev) ; static unsigned long virt_io_addr; void __init pcibios_fixup_resources(struct pci_dev *dev) { } void __init pcibios_fixup(void) { } void __init pcibios_fixup_irqs(void) { } unsigned int pcibios_assign_all_busses(void) { return 0; } #endif --- NEW FILE: pci_ops.c --- /* * BRIEF MODULE DESCRIPTION * Pb1100 specific pci support. * * Copyright 2002 MontaVista Software Inc. * Author: MontaVista Software, Inc. * pp...@mv... or so...@mv... * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 675 Mass Ave, Cambridge, MA 02139, USA. */ #include <linux/config.h> #ifdef CONFIG_PCI #include <linux/types.h> #include <linux/pci.h> #include <linux/kernel.h> #include <linux/init.h> #include <asm/au1000.h> #include <asm/pb1100.h> #include <asm/pci_channel.h> #define PCI_ACCESS_READ 0 #define PCI_ACCESS_WRITE 1 #undef DEBUG #ifdef DEBUG #define DBG(x...) printk(x) #else #define DBG(x...) #endif struct pci_channel mips_pci_channels[] = { {(struct pci_ops *) NULL, (struct resource *) NULL, (struct resource *) NULL, (int) NULL, (int) NULL} }; #endif /* CONFIG_PCI */ --- NEW FILE: setup.c --- /* * * BRIEF MODULE DESCRIPTION * Alchemy Pb1100 board setup. * * Copyright 2002 MontaVista Software Inc. * Author: MontaVista Software, Inc. * pp...@mv... or so...@mv... * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 675 Mass Ave, Cambridge, MA 02139, USA. */ #include <linux/config.h> #include <linux/init.h> #include <linux/sched.h> #include <linux/ioport.h> #include <linux/mm.h> #include <linux/console.h> #include <linux/mc146818rtc.h> #include <linux/delay.h> #include <asm/cpu.h> #include <asm/bootinfo.h> #include <asm/irq.h> #include <asm/keyboard.h> #include <asm/mipsregs.h> #include <asm/reboot.h> #include <asm/pgtable.h> #include <asm/au1000.h> #include <asm/pb1500.h> #ifdef CONFIG_USB_OHCI // Enable the workaround for the OHCI DoneHead // register corruption problem. #define CONFIG_AU1000_OHCI_FIX #endif #if defined(CONFIG_AU1000_SERIAL_CONSOLE) extern void console_setup(char *, int *); char serial_console[20]; #endif #ifdef CONFIG_BLK_DEV_INITRD extern unsigned long initrd_start, initrd_end; extern void * __rd_start, * __rd_end; #endif #ifdef CONFIG_BLK_DEV_IDE extern struct ide_ops std_ide_ops; extern struct ide_ops *ide_ops; #endif #ifdef CONFIG_RTC extern struct rtc_ops pb1500_rtc_ops; #endif void (*__wbflush) (void); extern char * __init prom_getcmdline(void); extern void au1000_restart(char *); extern void au1000_halt(void); extern void au1000_power_off(void); extern struct resource ioport_resource; extern struct resource iomem_resource; void au1100_wbflush(void) { __asm__ volatile ("sync"); } void __init au1100_setup(void) { char *argptr; u32 pin_func, static_cfg0; u32 sys_freqctrl, sys_clksrc; argptr = prom_getcmdline(); /* NOTE: The memory map is established by YAMON 2.08+ */ /* Various early Au1000 Errata corrected by this */ set_cp0_config(1<<19); /* Config[OD] */ #ifdef CONFIG_AU1000_SERIAL_CONSOLE if ((argptr = strstr(argptr, "console=")) == NULL) { argptr = prom_getcmdline(); strcat(argptr, " console=ttyS0,115200"); } #endif #ifdef CONFIG_SOUND_AU1000 strcat(argptr, " au1000_audio=vra"); argptr = prom_getcmdline(); #endif __wbflush = au1100_wbflush; _machine_restart = au1000_restart; _machine_halt = au1000_halt; _machine_power_off = au1000_power_off; // IO/MEM resources. set_io_port_base(0); ioport_resource.start = 0x10000000; ioport_resource.end = 0xffffffff; iomem_resource.start = 0x10000000; iomem_resource.end = 0xffffffff; #ifdef CONFIG_BLK_DEV_INITRD ROOT_DEV = MKDEV(RAMDISK_MAJOR, 0); initrd_start = (unsigned long)&__rd_start; initrd_end = (unsigned long)&__rd_end; #endif // set AUX clock to 12MHz * 8 = 96 MHz writel(8, SYS_AUXPLL); writel(0, SYS_PINSTATERD); udelay(100); #if defined (CONFIG_USB_OHCI) || defined (CONFIG_AU1000_USB_DEVICE) #ifdef CONFIG_USB_OHCI if ((argptr = strstr(argptr, "usb_ohci=")) == NULL) { char usb_args[80]; argptr = prom_getcmdline(); memset(usb_args, 0, sizeof(usb_args)); sprintf(usb_args, " usb_ohci=base:0x%x,len:0x%x,irq:%d", USB_OHCI_BASE, USB_OHCI_LEN, AU1000_USB_HOST_INT); strcat(argptr, usb_args); } #endif /* zero and disable FREQ2 */ sys_freqctrl = readl(SYS_FREQCTRL0); sys_freqctrl &= ~0xFFF00000; writel(sys_freqctrl, SYS_FREQCTRL0); /* zero and disable USBH/USBD/IrDA clock */ sys_clksrc = readl(SYS_CLKSRC); sys_clksrc &= ~0x0000001F; writel(sys_clksrc, SYS_CLKSRC); sys_freqctrl = readl(SYS_FREQCTRL0); sys_freqctrl &= ~0xFFF00000; sys_clksrc = readl(SYS_CLKSRC); sys_clksrc &= ~0x0000001F; // FREQ2 = aux/2 = 48 MHz sys_freqctrl |= ((0<<22) | (1<<21) | (1<<20)); writel(sys_freqctrl, SYS_FREQCTRL0); /* * Route 48MHz FREQ2 into USBH/USBD/IrDA */ sys_clksrc |= ((4<<2) | (0<<1) | 0 ); writel(sys_clksrc, SYS_CLKSRC); // get USB Functionality pin state (device vs host drive pins) pin_func = readl(SYS_PINFUNC) & (u32)(~0x8000); #ifndef CONFIG_AU1000_USB_DEVICE // 2nd USB port is USB host pin_func |= 0x8000; #endif writel(pin_func, SYS_PINFUNC); #endif // defined (CONFIG_USB_OHCI) || defined (CONFIG_AU1000_USB_DEVICE) #ifdef CONFIG_USB_OHCI // enable host controller and wait for reset done writel(0x08, USB_HOST_CONFIG); udelay(1000); writel(0x0c, USB_HOST_CONFIG); udelay(1000); readl(USB_HOST_CONFIG); while (!(readl(USB_HOST_CONFIG) & 0x10)) ; readl(USB_HOST_CONFIG); #endif #ifdef CONFIG_FB conswitchp = &dummy_con; #endif #ifdef CONFIG_FB_E1356 if ((argptr = strstr(argptr, "video=")) == NULL) { argptr = prom_getcmdline(); strcat(argptr, " video=e1356fb:system:pb1500"); } #endif // CONFIG_FB_E1356 #ifndef CONFIG_SERIAL_NONSTANDARD /* don't touch the default serial console */ writel(0, UART0_ADDR + UART_CLK); #endif writel(0, UART3_ADDR + UART_CLK); #ifdef CONFIG_BLK_DEV_IDE ide_ops = &std_ide_ops; #endif while (readl(SYS_COUNTER_CNTRL) & SYS_CNTRL_E0S); writel(SYS_CNTRL_E0 | SYS_CNTRL_EN0, SYS_COUNTER_CNTRL); au_sync(); while (readl(SYS_COUNTER_CNTRL) & SYS_CNTRL_T0S); writel(0, SYS_TOYTRIM); ///* Enable BCLK switching */ // this is disabled to bring up epson sed part //writel(0x00000060, 0xb190003c); #ifdef CONFIG_RTC rtc_ops = &pb1500_rtc_ops; // Enable the RTC if not already enabled if (!(readb(0xac000028) & 0x20)) { writeb(readb(0xac000028) | 0x20, 0xac000028); au_sync(); } // Put the clock in BCD mode if (readb(0xac00002C) & 0x4) { /* reg B */ writeb(readb(0xac00002c) & ~0x4, 0xac00002c); au_sync(); } #endif } |
From: Pete P. <pp...@us...> - 2002-04-03 00:30:20
|
Update of /cvsroot/linux-mips/linux/arch/mips In directory usw-pr-cvs1:/tmp/cvs-serv13922/arch/mips Modified Files: Makefile config.in Log Message: Pb1100 support. Index: Makefile =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/Makefile,v retrieving revision 1.43 retrieving revision 1.44 diff -u -d -r1.43 -r1.44 --- Makefile 22 Mar 2002 10:22:43 -0000 1.43 +++ Makefile 2 Apr 2002 22:59:38 -0000 1.44 @@ -379,6 +379,13 @@ LOADADDR += 0x80100000 endif +ifdef CONFIG_MIPS_PB1100 +LIBS += arch/mips/au1000/pb1100/pb1100.o \ + arch/mips/au1000/common/au1000.o +SUBDIRS += arch/mips/au1000/pb1100 arch/mips/au1000/common +LOADADDR += 0x80100000 +endif + # # IDT 79S334 evaluation board. # Index: config.in =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/config.in,v retrieving revision 1.91 retrieving revision 1.92 diff -u -d -r1.91 -r1.92 --- config.in 22 Mar 2002 10:22:43 -0000 1.91 +++ config.in 2 Apr 2002 22:59:38 -0000 1.92 @@ -97,6 +97,7 @@ bool ' Support for PCI AUTO Config' CONFIG_PCI_AUTO fi bool 'Support for Alchemy Semi PB1500 board' CONFIG_MIPS_PB1500 +bool 'Support for Alchemy Semi PB1100 board' CONFIG_MIPS_PB1100 bool 'Support for Toshiba JMR-TX3927 board' CONFIG_TOSHIBA_JMR3927 bool 'Support for Hewlett Packard LaserJet board' CONFIG_HP_LASERJET @@ -381,6 +382,15 @@ define_bool CONFIG_NONCOHERENT_IO y define_bool CONFIG_PC_KEYB y define_int MAX_HWIFS 1 +fi +if [ "$CONFIG_MIPS_PB1100" = "y" ]; then + define_bool CONFIG_MIPS_AU1000 y + define_bool CONFIG_NEW_IRQ y + define_bool CONFIG_PCI y + define_bool CONFIG_PCI_AUTO n + define_bool CONFIG_NEW_PCI y + define_bool CONFIG_NONCOHERENT_IO y + define_bool CONFIG_PC_KEYB y fi if [ "$CONFIG_IDT_79S334" = "y" ]; then define_bool CONFIG_CPU_RC32334 y |
From: Pete P. <pp...@us...> - 2002-04-03 00:30:15
|
Update of /cvsroot/linux-mips/linux/arch/mips/au1000/common In directory usw-pr-cvs1:/tmp/cvs-serv13922/arch/mips/au1000/common Modified Files: irq.c reset.c Log Message: Pb1100 support. Index: irq.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/au1000/common/irq.c,v retrieving revision 1.16 retrieving revision 1.17 diff -u -d -r1.16 -r1.17 --- irq.c 23 Mar 2002 02:13:01 -0000 1.16 +++ irq.c 2 Apr 2002 22:59:39 -0000 1.17 @@ -51,6 +51,8 @@ #include <asm/pb1000.h> #elif defined(CONFIG_MIPS_PB1500) #include <asm/pb1500.h> +#elif defined(CONFIG_MIPS_PB1100) +#include <asm/pb1100.h> #else #error unsupported alchemy board #endif @@ -402,6 +404,12 @@ case AU1000_SSI1_INT: #endif +#ifdef CONFIG_MIPS_PB1100 + case AU1000_UART1_INT: + + case AU1000_SSI0_INT: + case AU1000_SSI1_INT: +#endif case AU1000_DMA_INT_BASE: case AU1000_DMA_INT_BASE+1: case AU1000_DMA_INT_BASE+2: @@ -415,9 +423,14 @@ case AU1000_IRDA_RX_INT: case AU1000_MAC0_DMA_INT: +#ifdef CONFIG_MIPS_PB1000 case AU1000_MAC1_DMA_INT: - +#endif +#ifdef CONFIG_MIPS_PB1500 + case AU1000_MAC1_DMA_INT: +#endif case AU1500_GPIO_204: + setup_local_irq(i, INTC_INT_HIGH_LEVEL, 0); irq_desc[i].handler = &level_irq_type; break; @@ -436,6 +449,14 @@ case AU1500_GPIO_203: case AU1500_GPIO_205: case AU1500_GPIO_207: +#endif + +#ifdef CONFIG_MIPS_PB1100 + case AU1000_GPIO_9: // PCMCIA Card Fully_Interted# + case AU1000_GPIO_10: // PCMCIA_STSCHG# + case AU1000_GPIO_11: // PCMCIA_IRQ# + case AU1000_GPIO_13: // DC_IRQ# + case AU1000_GPIO_23: // 2-wire SCL #endif setup_local_irq(i, INTC_INT_LOW_LEVEL, 0); irq_desc[i].handler = &level_irq_type; Index: reset.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/au1000/common/reset.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- reset.c 26 Feb 2002 17:34:14 -0000 1.4 +++ reset.c 2 Apr 2002 22:59:39 -0000 1.5 @@ -47,41 +47,61 @@ switch (prid & 0xFF000000) { case 0x00000000: /* Au1000 */ - outl(0x02, 0xb0000010); /* ac97_enable */ - outl(0x08, 0xb017fffc); /* usbh_enable - early errata */ + writel(0x02, 0xb0000010); /* ac97_enable */ + writel(0x08, 0xb017fffc); /* usbh_enable - early errata */ asm("sync"); - outl(0x00, 0xb017fffc); /* usbh_enable */ - outl(0x00, 0xb0200058); /* usbd_enable */ - outl(0x00, 0xb0300040); /* ir_enable */ - outl(0x00, 0xb0520000); /* macen0 */ - outl(0x00, 0xb0520004); /* macen1 */ - outl(0x00, 0xb1000008); /* i2s_enable */ - outl(0x00, 0xb1100100); /* uart0_enable */ - outl(0x00, 0xb1200100); /* uart1_enable */ - outl(0x00, 0xb1300100); /* uart2_enable */ - outl(0x00, 0xb1400100); /* uart3_enable */ - outl(0x02, 0xb1600100); /* ssi0_enable */ - outl(0x02, 0xb1680100); /* ssi1_enable */ - outl(0x00, 0xb1900020); /* sys_freqctrl0 */ - outl(0x00, 0xb1900024); /* sys_freqctrl1 */ - outl(0x00, 0xb1900028); /* sys_clksrc */ - outl(0x00, 0xb1900100); /* sys_pininputen */ + writel(0x00, 0xb017fffc); /* usbh_enable */ + writel(0x00, 0xb0200058); /* usbd_enable */ + writel(0x00, 0xb0300040); /* ir_enable */ + writel(0x00, 0xb0520000); /* macen0 */ + writel(0x00, 0xb0520004); /* macen1 */ + writel(0x00, 0xb1000008); /* i2s_enable */ + writel(0x00, 0xb1100100); /* uart0_enable */ + writel(0x00, 0xb1200100); /* uart1_enable */ + writel(0x00, 0xb1300100); /* uart2_enable */ + writel(0x00, 0xb1400100); /* uart3_enable */ + writel(0x02, 0xb1600100); /* ssi0_enable */ + writel(0x02, 0xb1680100); /* ssi1_enable */ + writel(0x00, 0xb1900020); /* sys_freqctrl0 */ + writel(0x00, 0xb1900024); /* sys_freqctrl1 */ + writel(0x00, 0xb1900028); /* sys_clksrc */ + writel(0x00, 0xb1900100); /* sys_pininputen */ break; case 0x01000000: /* Au1500 */ - outl(0x02, 0xb0000010); /* ac97_enable */ - outl(0x08, 0xb017fffc); /* usbh_enable - early errata */ + writel(0x02, 0xb0000010); /* ac97_enable */ + writel(0x08, 0xb017fffc); /* usbh_enable - early errata */ asm("sync"); - outl(0x00, 0xb017fffc); /* usbh_enable */ - outl(0x00, 0xb0200058); /* usbd_enable */ - outl(0x00, 0xb1520000); /* macen0 */ - outl(0x00, 0xb1520004); /* macen1 */ - outl(0x00, 0xb1100100); /* uart0_enable */ - outl(0x00, 0xb1400100); /* uart3_enable */ - outl(0x00, 0xb1900020); /* sys_freqctrl0 */ - outl(0x00, 0xb1900024); /* sys_freqctrl1 */ - outl(0x00, 0xb1900028); /* sys_clksrc */ - outl(0x00, 0xb1900100); /* sys_pininputen */ - + writel(0x00, 0xb017fffc); /* usbh_enable */ + writel(0x00, 0xb0200058); /* usbd_enable */ + writel(0x00, 0xb1520000); /* macen0 */ + writel(0x00, 0xb1520004); /* macen1 */ + writel(0x00, 0xb1100100); /* uart0_enable */ + writel(0x00, 0xb1400100); /* uart3_enable */ + writel(0x00, 0xb1900020); /* sys_freqctrl0 */ + writel(0x00, 0xb1900024); /* sys_freqctrl1 */ + writel(0x00, 0xb1900028); /* sys_clksrc */ + writel(0x00, 0xb1900100); /* sys_pininputen */ + break; + case 0x02000000: /* Au1100 */ + writel(0x02, 0xb0000010); /* ac97_enable */ + writel(0x08, 0xb017fffc); /* usbh_enable - early errata */ + asm("sync"); + writel(0x00, 0xb017fffc); /* usbh_enable */ + writel(0x00, 0xb0200058); /* usbd_enable */ + writel(0x00, 0xb0300040); /* ir_enable */ + writel(0x00, 0xb0520000); /* macen0 */ + writel(0x00, 0xb1000008); /* i2s_enable */ + writel(0x00, 0xb1100100); /* uart0_enable */ + writel(0x00, 0xb1200100); /* uart1_enable */ + writel(0x00, 0xb1400100); /* uart3_enable */ + writel(0x02, 0xb1600100); /* ssi0_enable */ + writel(0x02, 0xb1680100); /* ssi1_enable */ + writel(0x00, 0xb1900020); /* sys_freqctrl0 */ + writel(0x00, 0xb1900024); /* sys_freqctrl1 */ + writel(0x00, 0xb1900028); /* sys_clksrc */ + writel(0x00, 0xb1900100); /* sys_pininputen */ + break; + default: break; } |
From: Pete P. <pp...@us...> - 2002-04-03 00:29:25
|
Update of /cvsroot/linux-mips/linux/arch/mips/au1000/pb1100 In directory usw-pr-cvs1:/tmp/cvs-serv10702/arch/mips/au1000/pb1100 Log Message: Directory /cvsroot/linux-mips/linux/arch/mips/au1000/pb1100 added to the repository |
From: Steve L. <slo...@us...> - 2002-03-25 22:58:20
|
Update of /cvsroot/linux-mips/linux/arch/mips/au1000/common In directory usw-pr-cvs1:/tmp/cvs-serv1301/arch/mips/au1000/common Modified Files: dma.c Log Message: Some changes to Au1000 sound driver: - Added mutex locks around read/write methods, to prevent simultaneous access on SMP or preemptible kernels. - Removed the counter/pointer fragment aligning at the end of read/write methods, for madplay. - Use coherent DMA. Index: dma.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/au1000/common/dma.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- dma.c 23 Mar 2002 02:13:01 -0000 1.7 +++ dma.c 25 Mar 2002 22:58:15 -0000 1.8 @@ -77,23 +77,22 @@ unsigned int fifo_addr; unsigned int dma_mode; } dma_dev_table[DMA_NUM_DEV] = { - { - UART0_ADDR + UART_TX, 0}, { - UART0_ADDR + UART_RX, 0}, { - 0, 0}, { - 0, 0}, { - AC97C_DATA, DMA_DW16 | DMA_NC}, { - AC97C_DATA, DMA_DR | DMA_DW16 | DMA_NC}, { - UART3_ADDR + UART_TX, DMA_DW8 | DMA_NC}, { - UART3_ADDR + UART_RX, DMA_DR | DMA_DW8 | DMA_NC}, { - USBD_EP0RD, DMA_DR | DMA_DW8 | DMA_NC}, { - USBD_EP0WR, DMA_DW8 | DMA_NC}, { - USBD_EP2WR, DMA_DW8 | DMA_NC}, { - USBD_EP3WR, DMA_DW8 | DMA_NC}, { - USBD_EP4RD, DMA_DR | DMA_DW8 | DMA_NC}, { - USBD_EP5RD, DMA_DR | DMA_DW8 | DMA_NC}, { - I2S_DATA, DMA_DW32 | DMA_NC}, { - I2S_DATA, DMA_DR | DMA_DW32 | DMA_NC} + {UART0_ADDR + UART_TX, 0}, + {UART0_ADDR + UART_RX, 0}, + {0, 0}, + {0, 0}, + {AC97C_DATA, DMA_DW16 }, // coherent + {AC97C_DATA, DMA_DR | DMA_DW16 }, // coherent + {UART3_ADDR + UART_TX, DMA_DW8 | DMA_NC}, + {UART3_ADDR + UART_RX, DMA_DR | DMA_DW8 | DMA_NC}, + {USBD_EP0RD, DMA_DR | DMA_DW8 | DMA_NC}, + {USBD_EP0WR, DMA_DW8 | DMA_NC}, + {USBD_EP2WR, DMA_DW8 | DMA_NC}, + {USBD_EP3WR, DMA_DW8 | DMA_NC}, + {USBD_EP4RD, DMA_DR | DMA_DW8 | DMA_NC}, + {USBD_EP5RD, DMA_DR | DMA_DW8 | DMA_NC}, + {I2S_DATA, DMA_DW32 | DMA_NC}, + {I2S_DATA, DMA_DR | DMA_DW32 | DMA_NC} }; |
From: Steve L. <slo...@us...> - 2002-03-25 22:58:19
|
Update of /cvsroot/linux-mips/linux/drivers/sound In directory usw-pr-cvs1:/tmp/cvs-serv1301/drivers/sound Modified Files: au1000.c Log Message: Some changes to Au1000 sound driver: - Added mutex locks around read/write methods, to prevent simultaneous access on SMP or preemptible kernels. - Removed the counter/pointer fragment aligning at the end of read/write methods, for madplay. - Use coherent DMA. Index: au1000.c =================================================================== RCS file: /cvsroot/linux-mips/linux/drivers/sound/au1000.c,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- au1000.c 15 Feb 2002 19:47:28 -0000 1.9 +++ au1000.c 25 Mar 2002 22:58:15 -0000 1.10 @@ -42,6 +42,13 @@ * * Revision history * 06.27.2001 Initial version + * 03.20.2002 Added mutex locks around read/write methods, to prevent + * simultaneous access on SMP or preemptible kernels. Also + * removed the counter/pointer fragment aligning at the end + * of read/write methods [stevel]. + * 03.21.2002 Add support for coherent DMA on the audio read/write DMA + * channels [stevel]. + * */ #include <linux/version.h> #include <linux/module.h> @@ -73,6 +80,7 @@ #define AU1000_DEBUG #undef AU1000_VERBOSE_DEBUG +#define USE_COHERENT_DMA #define AU1000_MODULE_NAME "Au1000 audio" #define PFX AU1000_MODULE_NAME @@ -110,12 +118,13 @@ #endif /* AU1000_DEBUG */ struct ac97_codec codec; - unsigned codec_base_caps; // AC'97 reg 00h, "Reset Register" + unsigned codec_base_caps;// AC'97 reg 00h, "Reset Register" unsigned codec_ext_caps; // AC'97 reg 28h, "Extended Audio ID" int no_vra; // do not use VRA spinlock_t lock; struct semaphore open_sem; + struct semaphore sem; mode_t open_mode; wait_queue_head_t open_wait; @@ -136,7 +145,7 @@ unsigned numfrag; // # of DMA fragments in DMA buffer unsigned fragshift; void *nextIn; // ptr to next-in to DMA buffer - void *nextOut; // ptr to next-out from DMA buffer + void *nextOut;// ptr to next-out from DMA buffer int count; // current byte count in DMA buffer unsigned total_bytes; // total bytes written or read unsigned error; // over/underrun @@ -185,6 +194,34 @@ } +#ifdef USE_COHERENT_DMA +static inline void * dma_alloc(size_t size, dma_addr_t * dma_handle) +{ + void* ret = (void *)__get_free_pages(GFP_ATOMIC | GFP_DMA, + get_order(size)); + if (ret != NULL) { + memset(ret, 0, size); + *dma_handle = virt_to_phys(ret); + } + return ret; +} + +static inline void dma_free(size_t size, void* va, dma_addr_t dma_handle) +{ + free_pages((unsigned long)va, get_order(size)); +} +#else +static inline void * dma_alloc(size_t size, dma_addr_t * dma_handle) +{ + return pci_alloc_consistent(NULL, size, dma_handle); +} + +static inline void dma_free(size_t size, void* va, dma_addr_t dma_handle) +{ + pci_free_consistent(NULL, size, va, dma_handle); +} +#endif + /* --------------------------------------------------------------------- */ static void au1000_delay(int msec) @@ -304,6 +341,7 @@ /* --------------------------------------------------------------------- */ +/* stop the ADC before calling */ static void set_adc_rate(struct au1000_state *s, unsigned rate) { struct dmabuf *adc = &s->dma_adc; @@ -348,6 +386,7 @@ dac->sample_rate = dac_rate; } +/* stop the DAC before calling */ static void set_dac_rate(struct au1000_state *s, unsigned rate) { struct dmabuf *dac = &s->dma_dac; @@ -561,8 +600,7 @@ (PAGE_SIZE << db->buforder) - 1); for (page = virt_to_page(db->rawbuf); page <= pend; page++) mem_map_unreserve(page); - pci_free_consistent(NULL, PAGE_SIZE << db->buforder, - db->rawbuf, db->dmaaddr); + dma_free(PAGE_SIZE << db->buforder, db->rawbuf, db->dmaaddr); } db->rawbuf = db->nextIn = db->nextOut = NULL; db->mapped = db->ready = 0; @@ -580,10 +618,8 @@ db->ready = db->mapped = 0; for (order = DMABUF_DEFAULTORDER; order >= DMABUF_MINORDER; order--) - if ((db->rawbuf = - pci_alloc_consistent(NULL, - PAGE_SIZE << order, - &db->dmaaddr))) + if ((db->rawbuf = dma_alloc(PAGE_SIZE << order, + &db->dmaaddr))) break; if (!db->rawbuf) return -ENOMEM; @@ -595,7 +631,7 @@ for (page = virt_to_page(db->rawbuf); page <= pend; page++) mem_map_reserve(page); } - + db->cnt_factor = 1; if (db->sample_size == 8) db->cnt_factor *= 2; @@ -686,6 +722,8 @@ return; } + spin_lock(&s->lock); + if (buff_done != (DMA_D0 | DMA_D1)) { dac->nextOut += dac->dma_fragsize; if (dac->nextOut >= dac->rawbuf + dac->dmasize) @@ -699,9 +737,16 @@ dac->count -= dac->dma_fragsize; dac->total_bytes += dac->dma_fragsize; - if (dac->count <= 0) + if (dac->count <= 0) { +#ifdef AU1000_VERBOSE_DEBUG + dbg("dac underrun"); +#endif + spin_unlock(&s->lock); stop_dac(s); - else if (buff_done == DMA_D0) { + spin_lock(&s->lock); + dac->count = 0; + dac->nextIn = dac->nextOut; + } else if (buff_done == DMA_D0) { clear_dma_done0(dac->dmanr); // clear DMA done bit set_dma_count0(dac->dmanr, dac->dma_fragsize>>1); set_dma_addr0(dac->dmanr, newptr); @@ -714,7 +759,9 @@ } } else { // both done bits set, we missed an interrupt + spin_unlock(&s->lock); stop_dac(s); + spin_lock(&s->lock); dac->nextOut += 2*dac->dma_fragsize; if (dac->nextOut >= dac->rawbuf + dac->dmasize) @@ -723,14 +770,18 @@ dac->count -= 2*dac->dma_fragsize; dac->total_bytes += 2*dac->dma_fragsize; - if (dac->count > 0) + if (dac->count > 0) { + spin_unlock(&s->lock); start_dac(s); + spin_lock(&s->lock); + } } - /* wake up anybody listening */ if (waitqueue_active(&dac->wait)) - wake_up_interruptible(&dac->wait); + wake_up(&dac->wait); + + spin_unlock(&s->lock); } @@ -752,9 +803,12 @@ return; } + spin_lock(&s->lock); + if (buff_done != (DMA_D0 | DMA_D1)) { if (adc->count + adc->dma_fragsize > adc->dmasize) { // Overrun. Stop ADC and log the error + spin_unlock(&s->lock); stop_adc(s); adc->error++; err("adc overrun"); @@ -786,12 +840,15 @@ } } else { // both done bits set, we missed an interrupt + spin_unlock(&s->lock); stop_adc(s); - + spin_lock(&s->lock); + if (adc->count + 2*adc->dma_fragsize > adc->dmasize) { // Overrun. Log the error adc->error++; err("adc overrun"); + spin_unlock(&s->lock); return; } @@ -802,12 +859,16 @@ adc->count += 2*adc->dma_fragsize; adc->total_bytes += 2*adc->dma_fragsize; + spin_unlock(&s->lock); start_adc(s); + spin_lock(&s->lock); } /* wake up anybody listening */ if (waitqueue_active(&adc->wait)) - wake_up_interruptible(&adc->wait); + wake_up(&adc->wait); + + spin_unlock(&s->lock); } /* --------------------------------------------------------------------- */ @@ -1050,9 +1111,10 @@ { struct au1000_state *s = (struct au1000_state *)file->private_data; struct dmabuf *db = &s->dma_adc; + DECLARE_WAITQUEUE(wait, current); ssize_t ret; unsigned long flags; - int cnt, remainder, usercnt, avail; + int cnt, usercnt, avail; if (ppos != &file->f_pos) return -ESPIPE; @@ -1064,6 +1126,9 @@ count *= db->cnt_factor; + down(&s->sem); + add_wait_queue(&db->wait, &wait); + while (count > 0) { // wait for samples in ADC dma buffer do { @@ -1071,19 +1136,23 @@ start_adc(s); spin_lock_irqsave(&s->lock, flags); avail = db->count; + if (avail <= 0) + __set_current_state(TASK_INTERRUPTIBLE); spin_unlock_irqrestore(&s->lock, flags); if (avail <= 0) { if (file->f_flags & O_NONBLOCK) { if (!ret) ret = -EAGAIN; - return ret; + goto out; } - interruptible_sleep_on(&db->wait); + up(&s->sem); + schedule(); if (signal_pending(current)) { if (!ret) ret = -ERESTARTSYS; - return ret; + goto out2; } + down(&s->sem); } } while (avail <= 0); @@ -1093,16 +1162,15 @@ avail : count, 1)) < 0) { if (!ret) ret = -EFAULT; - return ret; + goto out; } spin_lock_irqsave(&s->lock, flags); db->count -= cnt; - spin_unlock_irqrestore(&s->lock, flags); - db->nextOut += cnt; if (db->nextOut >= db->rawbuf + db->dmasize) db->nextOut -= db->dmasize; + spin_unlock_irqrestore(&s->lock, flags); count -= cnt; usercnt = cnt / db->cnt_factor; @@ -1110,25 +1178,11 @@ ret += usercnt; } // while (count > 0) - /* - * See if the dma buffer count after this read call is - * aligned on a dma_fragsize boundary. If not, read from - * buffer until we reach a boundary, and let's hope this - * is just the last remainder of an audio record. If not - * it means the user is not reading in fragsize chunks, in - * which case it's his/her fault that there are audio gaps - * in their record. - */ - spin_lock_irqsave(&s->lock, flags); - remainder = db->count % db->dma_fragsize; - if (remainder) { - db->nextOut += remainder; - if (db->nextOut >= db->rawbuf + db->dmasize) - db->nextOut -= db->dmasize; - db->count -= remainder; - } - spin_unlock_irqrestore(&s->lock, flags); - +out: + up(&s->sem); +out2: + remove_wait_queue(&db->wait, &wait); + set_current_state(TASK_RUNNING); return ret; } @@ -1137,10 +1191,15 @@ { struct au1000_state *s = (struct au1000_state *)file->private_data; struct dmabuf *db = &s->dma_dac; + DECLARE_WAITQUEUE(wait, current); ssize_t ret = 0; unsigned long flags; - int cnt, remainder, usercnt, avail; + int cnt, usercnt, avail; +#ifdef AU1000_VERBOSE_DEBUG + dbg("write: count=%d", count); +#endif + if (ppos != &file->f_pos) return -ESPIPE; if (db->mapped) @@ -1150,45 +1209,51 @@ count *= db->cnt_factor; + down(&s->sem); + add_wait_queue(&db->wait, &wait); + while (count > 0) { // wait for space in playback buffer do { spin_lock_irqsave(&s->lock, flags); avail = (int) db->dmasize - db->count; + if (avail <= 0) + __set_current_state(TASK_INTERRUPTIBLE); spin_unlock_irqrestore(&s->lock, flags); if (avail <= 0) { if (file->f_flags & O_NONBLOCK) { if (!ret) ret = -EAGAIN; - return ret; + goto out; } - interruptible_sleep_on(&db->wait); + up(&s->sem); + schedule(); if (signal_pending(current)) { if (!ret) ret = -ERESTARTSYS; - return ret; + goto out2; } + down(&s->sem); } } while (avail <= 0); - // copy to nextIn + // copy from user to nextIn if ((cnt = copy_dmabuf_user(db, (char *) buffer, count > avail ? avail : count, 0)) < 0) { if (!ret) ret = -EFAULT; - return ret; + goto out; } spin_lock_irqsave(&s->lock, flags); db->count += cnt; - spin_unlock_irqrestore(&s->lock, flags); - if (db->stopped) - start_dac(s); - db->nextIn += cnt; if (db->nextIn >= db->rawbuf + db->dmasize) db->nextIn -= db->dmasize; + spin_unlock_irqrestore(&s->lock, flags); + if (db->stopped) + start_dac(s); count -= cnt; usercnt = cnt / db->cnt_factor; @@ -1196,27 +1261,11 @@ ret += usercnt; } // while (count > 0) - /* - * See if the dma buffer count after this write call is - * aligned on a dma_fragsize boundary. If not, fill buffer - * with silence to the next boundary, and let's hope this - * is just the last remainder of an audio playback. If not - * it means the user is not sending us fragsize chunks, in - * which case it's his/her fault that there are audio gaps - * in their playback. - */ - spin_lock_irqsave(&s->lock, flags); - remainder = db->count % db->dma_fragsize; - if (remainder) { - int fill_cnt = db->dma_fragsize - remainder; - memset(db->nextIn, 0, fill_cnt); - db->nextIn += fill_cnt; - if (db->nextIn >= db->rawbuf + db->dmasize) - db->nextIn -= db->dmasize; - db->count += fill_cnt; - } - spin_unlock_irqrestore(&s->lock, flags); - +out: + up(&s->sem); +out2: + remove_wait_queue(&db->wait, &wait); + set_current_state(TASK_RUNNING); return ret; } @@ -1241,6 +1290,7 @@ } spin_lock_irqsave(&s->lock, flags); + if (file->f_mode & FMODE_READ) { if (s->dma_adc.count >= (signed)s->dma_adc.dma_fragsize) mask |= POLLIN | POLLRDNORM; @@ -1265,35 +1315,40 @@ struct au1000_state *s = (struct au1000_state *)file->private_data; struct dmabuf *db; unsigned long size; - + int ret = 0; + dbg(__FUNCTION__); lock_kernel(); + down(&s->sem); if (vma->vm_flags & VM_WRITE) db = &s->dma_dac; else if (vma->vm_flags & VM_READ) db = &s->dma_adc; else { - unlock_kernel(); - return -EINVAL; + ret = -EINVAL; + goto out; } if (vma->vm_pgoff != 0) { - unlock_kernel(); - return -EINVAL; + ret = -EINVAL; + goto out; } size = vma->vm_end - vma->vm_start; if (size > (PAGE_SIZE << db->buforder)) { - unlock_kernel(); - return -EINVAL; + ret = -EINVAL; + goto out; } if (remap_page_range(vma->vm_start, virt_to_phys(db->rawbuf), size, vma->vm_page_prot)) { - unlock_kernel(); - return -EAGAIN; + ret = -EAGAIN; + goto out; } + vma->vm_flags &= ~VM_IO; db->mapped = 1; +out: + up(&s->sem); unlock_kernel(); - return 0; + return ret; } @@ -1368,9 +1423,9 @@ break; } if (count < sizeof(ioctl_str) / sizeof(ioctl_str[0])) - dbg("ioctl %s, arg=0x%x", ioctl_str[count].str, arg); + dbg("ioctl %s, arg=0x%lx", ioctl_str[count].str, arg); else - dbg("ioctl 0x%s unknown, arg=0x%x", cmd, arg); + dbg("ioctl 0x%x unknown, arg=0x%lx", cmd, arg); #endif switch (cmd) { @@ -1609,6 +1664,9 @@ s->dma_dac.cnt_factor; abinfo.fragstotal = s->dma_dac.numfrag; abinfo.fragments = abinfo.bytes >> s->dma_dac.fragshift; +#ifdef AU1000_VERBOSE_DEBUG + dbg("bytes=%d, fragments=%d", abinfo.bytes, abinfo.fragments); +#endif return copy_to_user((void *) arg, &abinfo, sizeof(abinfo)) ? -EFAULT : 0; @@ -1844,6 +1902,7 @@ s->open_mode |= file->f_mode & (FMODE_READ | FMODE_WRITE); up(&s->open_sem); + init_MUTEX(&s->sem); return 0; } @@ -1976,7 +2035,20 @@ s->dma_dac.irq = get_dma_done_irq(s->dma_dac.dmanr); s->dma_adc.irq = get_dma_done_irq(s->dma_adc.dmanr); - +#ifdef USE_COHERENT_DMA + // enable DMA coherency in read/write DMA channels + set_dma_mode(s->dma_dac.dmanr, + get_dma_mode(s->dma_dac.dmanr) & ~DMA_NC); + set_dma_mode(s->dma_adc.dmanr, + get_dma_mode(s->dma_adc.dmanr) & ~DMA_NC); +#else + // disable DMA coherency in read/write DMA channels + set_dma_mode(s->dma_dac.dmanr, + get_dma_mode(s->dma_dac.dmanr) | DMA_NC); + set_dma_mode(s->dma_adc.dmanr, + get_dma_mode(s->dma_adc.dmanr) | DMA_NC); +#endif + if (request_irq(s->dma_dac.irq, dac_dma_interrupt, SA_INTERRUPT, "audio DAC", s)) { err("Can't get DAC irq #%d", s->dma_dac.irq); |
From: Steve L. <slo...@us...> - 2002-03-25 22:58:19
|
Update of /cvsroot/linux-mips/linux/include/asm-mips In directory usw-pr-cvs1:/tmp/cvs-serv1301/include/asm-mips Modified Files: au1000_dma.h Log Message: Some changes to Au1000 sound driver: - Added mutex locks around read/write methods, to prevent simultaneous access on SMP or preemptible kernels. - Removed the counter/pointer fragment aligning at the end of read/write methods, for madplay. - Use coherent DMA. Index: au1000_dma.h =================================================================== RCS file: /cvsroot/linux-mips/linux/include/asm-mips/au1000_dma.h,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- au1000_dma.h 2 Dec 2001 19:05:32 -0000 1.7 +++ au1000_dma.h 25 Mar 2002 22:58:15 -0000 1.8 @@ -100,7 +100,7 @@ }; struct dma_chan { - int dev_id; // this channel is allocated if >=0, free otherwise + int dev_id; // this channel is allocated if >=0, free otherwise unsigned int io; int irq; const char *dev_str; @@ -174,8 +174,7 @@ outl_sync(virt_to_phys((void *) chan->fifo_addr), chan->io + DMA_PERIPHERAL_ADDR); - outl_sync(chan-> - mode | (chan->dev_id << DMA_DID_BIT) | DMA_IE | DMA_GO, + outl_sync(chan->mode | (chan->dev_id << DMA_DID_BIT) | DMA_IE | DMA_GO, chan->io + DMA_MODE_SET); } @@ -212,12 +211,21 @@ if (!chan) return; /* - * chan->mode only holds endianess, direction, transfer size, device - * FIFO width, and cacheability info for the channel. Make sure - * anything else is masked off. + * set_dma_mode is only allowed to change endianess, direction, + * transfer size, device FIFO width, and coherency settings. + * Make sure anything else is masked off. */ mode &= (DMA_BE | DMA_DR | DMA_TS8 | DMA_DW_MASK | DMA_NC); - chan->mode = mode; + chan->mode &= ~(DMA_BE | DMA_DR | DMA_TS8 | DMA_DW_MASK | DMA_NC); + chan->mode |= mode; +} + +static __inline__ unsigned int get_dma_mode(unsigned int dmanr) +{ + struct dma_chan *chan = get_dma_chan(dmanr); + if (!chan) + return 0; + return chan->mode; } static __inline__ int get_dma_active_buffer(unsigned int dmanr) |
From: Steve L. <slo...@us...> - 2002-03-25 22:58:19
|
Update of /cvsroot/linux-mips/linux/arch/mips/au1000/pb1500 In directory usw-pr-cvs1:/tmp/cvs-serv1301/arch/mips/au1000/pb1500 Modified Files: setup.c Log Message: Some changes to Au1000 sound driver: - Added mutex locks around read/write methods, to prevent simultaneous access on SMP or preemptible kernels. - Removed the counter/pointer fragment aligning at the end of read/write methods, for madplay. - Use coherent DMA. Index: setup.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/au1000/pb1500/setup.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- setup.c 23 Mar 2002 02:13:01 -0000 1.4 +++ setup.c 25 Mar 2002 22:58:15 -0000 1.5 @@ -207,7 +207,12 @@ #ifdef CONFIG_FB_E1356 if ((argptr = strstr(argptr, "video=")) == NULL) { argptr = prom_getcmdline(); - strcat(argptr, " video=e1356fb:system:pb1500,mmunalign:1"); + strcat(argptr, " video=e1356fb:system:pb1500"); + } +#elif defined (CONFIG_FB_XPERT98) + if ((argptr = strstr(argptr, "video=")) == NULL) { + argptr = prom_getcmdline(); + strcat(argptr, " video=atyfb:1024x768-8@70"); } #endif // CONFIG_FB_E1356 |
From: Pete P. <pp...@us...> - 2002-03-24 00:01:54
|
Update of /cvsroot/linux-mips/linux/include/asm-mips In directory usw-pr-cvs1:/tmp/cvs-serv17488/include/asm-mips Modified Files: io.h Log Message: Changed some of the macros to inline functions. The macros were causing compile errors in many drivers because of the do-while syntax used. Index: io.h =================================================================== RCS file: /cvsroot/linux-mips/linux/include/asm-mips/io.h,v retrieving revision 1.19 retrieving revision 1.20 diff -u -d -r1.19 -r1.20 --- io.h 18 Mar 2002 22:53:34 -0000 1.19 +++ io.h 24 Mar 2002 00:01:51 -0000 1.20 @@ -226,38 +226,38 @@ #define isa_check_signature(io, s, l) check_signature(i,s,l) -#define outb(val,port) \ -do { \ - *(volatile u8 *)(mips_io_port_base + (port)) = __ioswab8(val); \ -} while(0) +static inline void outb(unsigned char val, unsigned long port) +{ + *(volatile u8 *)(mips_io_port_base + (port)) = __ioswab8(val); +} -#define outw(val,port) \ -do { \ - *(volatile u16 *)(mips_io_port_base + (port)) = __ioswab16(val); \ -} while(0) +static inline void outw(unsigned short val, unsigned long port) +{ + *(volatile u16 *)(mips_io_port_base + (port)) = __ioswab16(val); +} -#define outl(val,port) \ -do { \ - *(volatile u32 *)(mips_io_port_base + (port)) = __ioswab32(val);\ -} while(0) +static inline void outl(unsigned long val, unsigned long port) +{ + *(volatile u32 *)(mips_io_port_base + (port)) = __ioswab32(val); +} -#define outb_p(val,port) \ -do { \ - *(volatile u8 *)(mips_io_port_base + (port)) = __ioswab8(val); \ - SLOW_DOWN_IO; \ -} while(0) +static inline void outb_p(unsigned char val, unsigned long port) +{ + *(volatile u8 *)(mips_io_port_base + (port)) = __ioswab8(val); + SLOW_DOWN_IO; +} -#define outw_p(val,port) \ -do { \ - *(volatile u16 *)(mips_io_port_base + (port)) = __ioswab16(val);\ - SLOW_DOWN_IO; \ -} while(0) +static inline void outw_p(unsigned short val, unsigned long port) +{ + *(volatile u16 *)(mips_io_port_base + (port)) = __ioswab16(val); + SLOW_DOWN_IO; +} -#define outl_p(val,port) \ -do { \ - *(volatile u32 *)(mips_io_port_base + (port)) = __ioswab32(val);\ - SLOW_DOWN_IO; \ -} while(0) +static inline void outl_p(unsigned long val, unsigned long port) +{ + *(volatile u32 *)(mips_io_port_base + (port)) = __ioswab32(val); + SLOW_DOWN_IO; +} static inline unsigned char inb(unsigned long port) { |
From: Pete P. <pp...@us...> - 2002-03-23 02:36:12
|
Update of /cvsroot/linux-mips/linux/include/asm-mips In directory usw-pr-cvs1:/tmp/cvs-serv24508/include/asm-mips Modified Files: pgtable.h Log Message: Reverted back to 1.14 and then added the typo fix from oss. Index: pgtable.h =================================================================== RCS file: /cvsroot/linux-mips/linux/include/asm-mips/pgtable.h,v retrieving revision 1.15 retrieving revision 1.16 diff -u -d -r1.15 -r1.16 --- pgtable.h 18 Mar 2002 22:46:30 -0000 1.15 +++ pgtable.h 23 Mar 2002 02:36:09 -0000 1.16 @@ -19,6 +19,7 @@ #include <asm/cachectl.h> #include <asm/fixmap.h> + /* Cache flushing: * * - flush_cache_all() flushes entire cache @@ -91,11 +92,6 @@ #endif /* !defined (_LANGUAGE_ASSEMBLY) */ /* PMD_SHIFT determines the size of the area a second-level page table can map */ -#ifdef CONFIG_64BIT_PHYS_ADDR -#define PMD_SHIFT 21 -#else -#define PMD_SHIFT 22 -#endif #define PMD_SIZE (1UL << PMD_SHIFT) #define PMD_MASK (~(PMD_SIZE-1)) @@ -108,17 +104,6 @@ * Entries per page directory level: we use two-level, so * we don't really have any PMD directory physically. */ -#ifdef CONFIG_64BIT_PHYS_ADDR -#define PTRS_PER_PTE 512 -#define PTRS_PER_PMD 1 -#define PTRS_PER_PGD 2048 -#define PGD_ORDER 1 -#else -#define PTRS_PER_PTE 1024 -#define PTRS_PER_PMD 1 -#define PTRS_PER_PGD 1024 -#define PGD_ORDER 0 -#endif #define USER_PTRS_PER_PGD (0x80000000UL/PGDIR_SIZE) #define FIRST_USER_PGD_NR 0 @@ -186,7 +171,6 @@ #define _CACHE_UNCACHED (2<<9) #define _CACHE_CACHABLE_COW (5<<9) #define _CACHE_CACHABLE_NONCOHERENT (5<<9) -#define _CACHE_UNCACHED_ACCELERATED (7<<9) #else @@ -252,19 +236,13 @@ #define __S110 PAGE_SHARED #define __S111 PAGE_SHARED -#if !defined (_LANGUAGE_ASSEMBLY) - -#ifdef CONFIG_64BIT_PHYS_ADDR -#define pte_ERROR(e) \ - printk("%s:%d: bad pte %016Lx.\n", __FILE__, __LINE__, pte_val(e)) +#if defined(CONFIG_64BIT_PHYS_ADDR) && defined(CONFIG_CPU_MIPS32) +#include <asm/pgtable-3level.h> #else -#define pte_ERROR(e) \ - printk("%s:%d: bad pte %08lx.\n", __FILE__, __LINE__, pte_val(e)) +#include <asm/pgtable-2level.h> #endif -#define pmd_ERROR(e) \ - printk("%s:%d: bad pmd %08lx.\n", __FILE__, __LINE__, pmd_val(e)) -#define pgd_ERROR(e) \ - printk("%s:%d: bad pgd %08lx.\n", __FILE__, __LINE__, pgd_val(e)) + +#if !defined (_LANGUAGE_ASSEMBLY) extern unsigned long empty_zero_page; extern unsigned long zero_page_mask; @@ -290,29 +268,7 @@ pmd_val(*pmdp) = (((unsigned long) ptep) & PAGE_MASK); } -static inline int pte_none(pte_t pte) { return !pte_val(pte); } -static inline int pte_present(pte_t pte) { return pte_val(pte) & _PAGE_PRESENT; } -/* Certain architectures need to do special things when pte's - * within a page table are directly modified. Thus, the following - * hook is made available. - */ -static inline void set_pte(pte_t *ptep, pte_t pteval) -{ - *ptep = pteval; -} - -static inline void pte_clear(pte_t *ptep) -{ - set_pte(ptep, __pte(0)); -} - -/* - * (pmds are folded into pgds so this doesnt get actually called, - * but the define is needed for a generic inline function.) - */ -#define set_pmd(pmdptr, pmdval) (*(pmdptr) = pmdval) -#define set_pgd(pgdptr, pgdval) (*(pgdptr) = pgdval) /* * Empty pgd/pmd entries point to the invalid_pte_table. @@ -339,6 +295,12 @@ } /* + * Permanent address of a page. Obviously must never be called on a highmem + * page. + */ +#define page_address(page) ((page)->virtual) + +/* * The "pgd_xxx()" functions here are trivial for a folded two-level * setup: the pgd is never bad, and a pmd always exists (as it's folded * into the pgd entry) @@ -349,70 +311,69 @@ static inline void pgd_clear(pgd_t *pgdp) { } /* - * Permanent address of a page. Obviously must never be called on a highmem - * page. - */ -#define page_address(page) ((page)->virtual) -#ifdef CONFIG_CPU_VR41XX -#define pte_page(x) (mem_map+(unsigned long)((pte_val(x) >> (PAGE_SHIFT + 2)))) -#else -#define pte_page(x) (mem_map+(unsigned long)((pte_val(x) >> PAGE_SHIFT))) -#endif - -/* * The following only work if pte_present() is true. * Undefined behaviour if not.. */ -static inline int pte_read(pte_t pte) { return pte_val(pte) & _PAGE_READ; } -static inline int pte_write(pte_t pte) { return pte_val(pte) & _PAGE_WRITE; } -static inline int pte_dirty(pte_t pte) { return pte_val(pte) & _PAGE_MODIFIED; } -static inline int pte_young(pte_t pte) { return pte_val(pte) & _PAGE_ACCESSED; } +static inline int pte_present(pte_t pte) { return (pte.pte_low) & _PAGE_PRESENT; } + +static inline int pte_read(pte_t pte) { return (pte).pte_low & _PAGE_READ; } +static inline int pte_write(pte_t pte) { return (pte).pte_low & _PAGE_WRITE; } +static inline int pte_dirty(pte_t pte) { return (pte).pte_low & _PAGE_MODIFIED; } +static inline int pte_young(pte_t pte) { return (pte).pte_low & _PAGE_ACCESSED; } + +static inline void pte_clear(pte_t *ptep) +{ + set_pte(ptep, __pte(0)); +} static inline pte_t pte_wrprotect(pte_t pte) { - pte_val(pte) &= ~(_PAGE_WRITE | _PAGE_SILENT_WRITE); + (pte).pte_low &= ~(_PAGE_WRITE | _PAGE_SILENT_WRITE); return pte; } static inline pte_t pte_rdprotect(pte_t pte) { - pte_val(pte) &= ~(_PAGE_READ | _PAGE_SILENT_READ); + (pte).pte_low &= ~(_PAGE_READ | _PAGE_SILENT_READ); return pte; } static inline pte_t pte_mkclean(pte_t pte) { - pte_val(pte) &= ~(_PAGE_MODIFIED|_PAGE_SILENT_WRITE); + (pte).pte_low &= ~(_PAGE_MODIFIED|_PAGE_SILENT_WRITE); return pte; } static inline pte_t pte_mkold(pte_t pte) { - pte_val(pte) &= ~(_PAGE_ACCESSED|_PAGE_SILENT_READ); + (pte).pte_low &= ~(_PAGE_ACCESSED|_PAGE_SILENT_READ); return pte; } static inline pte_t pte_mkwrite(pte_t pte) { - pte_val(pte) |= _PAGE_WRITE; - if (pte_val(pte) & _PAGE_MODIFIED) - pte_val(pte) |= _PAGE_SILENT_WRITE; + (pte).pte_low |= _PAGE_WRITE; + if ((pte).pte_low & _PAGE_MODIFIED) { + (pte).pte_low |= _PAGE_SILENT_WRITE; + } return pte; } static inline pte_t pte_mkread(pte_t pte) { - pte_val(pte) |= _PAGE_READ; - if (pte_val(pte) & _PAGE_ACCESSED) - pte_val(pte) |= _PAGE_SILENT_READ; + (pte).pte_low |= _PAGE_READ; + if ((pte).pte_low & _PAGE_ACCESSED) { + (pte).pte_low |= _PAGE_SILENT_READ; + } return pte; } static inline pte_t pte_mkdirty(pte_t pte) { - pte_val(pte) |= _PAGE_MODIFIED; - if (pte_val(pte) & _PAGE_WRITE) - pte_val(pte) |= _PAGE_SILENT_WRITE; + (pte).pte_low |= _PAGE_MODIFIED; + if ((pte).pte_low & _PAGE_WRITE) { + (pte).pte_low |= _PAGE_SILENT_WRITE; + } return pte; } @@ -435,9 +396,9 @@ static inline pte_t pte_mkyoung(pte_t pte) { - pte_val(pte) |= _PAGE_ACCESSED; - if (pte_val(pte) & _PAGE_READ) - pte_val(pte) |= _PAGE_SILENT_READ; + (pte).pte_low |= _PAGE_ACCESSED; + if ((pte).pte_low & _PAGE_READ) + (pte).pte_low |= _PAGE_SILENT_READ; return pte; } @@ -446,42 +407,21 @@ * and a page entry and page directory to the page they refer to. */ -#ifdef CONFIG_CPU_VR41XX -#define mk_pte(page, pgprot) \ -({ \ - pte_t __pte; \ - \ - pte_val(__pte) = ((phys_t)(page - mem_map) << (PAGE_SHIFT + 2)) | \ - pgprot_val(pgprot); \ - \ - __pte; \ -}) -#else -#define mk_pte(page, pgprot) \ -({ \ - pte_t __pte; \ - \ - pte_val(__pte) = ((phys_t)(page - mem_map) << PAGE_SHIFT) | \ - pgprot_val(pgprot); \ - \ - __pte; \ -}) -#endif - -static inline pte_t mk_pte_phys(phys_t physpage, pgprot_t pgprot) -{ -#ifdef CONFIG_CPU_VR41XX - return __pte((physpage << 2) | pgprot_val(pgprot)); -#else - return __pte(physpage | pgprot_val(pgprot)); -#endif -} +#define mk_pte(page, pgprot) __mk_pte((page) - mem_map, (pgprot)) +#define mk_pte_phys(physpage, pgprot) __mk_pte((physpage) >> PAGE_SHIFT, pgprot) static inline pte_t pte_modify(pte_t pte, pgprot_t newprot) { - return __pte((pte_val(pte) & _PAGE_CHG_MASK) | pgprot_val(newprot)); + return __pte(((pte).pte_low & _PAGE_CHG_MASK) | pgprot_val(newprot)); } +/* + * (pmds are folded into pgds so this doesnt get actually called, + * but the define is needed for a generic inline function.) + */ +#define set_pmd(pmdptr, pmdval) (*(pmdptr) = pmdval) +#define set_pgd(pgdptr, pgdval) (*(pgdptr) = pgdval) + #define page_pte(page) page_pte_prot(page, __pgprot(0)) #define __pgd_offset(address) pgd_index(address) @@ -523,7 +463,7 @@ #define SWP_TYPE(x) (((x).val >> 1) & 0x3f) #define SWP_OFFSET(x) ((x).val >> 8) #define SWP_ENTRY(type,offset) ((swp_entry_t) { ((type) << 1) | ((offset) << 8) }) -#define pte_to_swp_entry(pte) ((swp_entry_t) { pte_val(pte) }) +#define pte_to_swp_entry(pte) ((swp_entry_t) { (pte).pte_low }) #define swp_entry_to_pte(x) ((pte_t) { (x).val }) |
From: Pete P. <pp...@us...> - 2002-03-23 02:16:30
|
Update of /cvsroot/linux-mips/linux/arch/mips/kernel In directory usw-pr-cvs1:/tmp/cvs-serv20355/arch/mips/kernel Modified Files: pci_auto.c Log Message: Cardbus support. Port from PPC pci_auto. Index: pci_auto.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/kernel/pci_auto.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- pci_auto.c 7 Mar 2002 03:16:53 -0000 1.5 +++ pci_auto.c 23 Mar 2002 02:16:27 -0000 1.6 @@ -180,7 +180,8 @@ goto retry; } } - DBG(" unavailable -- skipping\n"); + DBG(" unavailable -- skipping, value %x size %x\n", + bar_value, bar_size); continue; } @@ -285,6 +286,95 @@ | PCI_COMMAND_MASTER); } +void __init +pciauto_prescan_setup_cardbus_bridge(struct pci_channel *hose, + int top_bus, + int current_bus, + int pci_devfn, + int sub_bus) +{ + /* Configure bus number registers */ + early_write_config_byte(hose, top_bus, current_bus, pci_devfn, + PCI_PRIMARY_BUS, current_bus); + early_write_config_byte(hose, top_bus, current_bus, pci_devfn, + PCI_SECONDARY_BUS, sub_bus + 1); + early_write_config_byte(hose, top_bus, current_bus, pci_devfn, + PCI_SUBORDINATE_BUS, 0xff); + + /* Align memory and I/O to 4KB and 4 byte boundaries. */ + pciauto_lower_memspc = (pciauto_lower_memspc + (0x1000 - 1)) + & ~(0x1000 - 1); + pciauto_lower_iospc = (pciauto_lower_iospc + (0x4 - 1)) + & ~(0x4 - 1); + + early_write_config_dword(hose, top_bus, current_bus, pci_devfn, + PCI_CB_MEMORY_BASE_0, pciauto_lower_memspc); + early_write_config_dword(hose, top_bus, current_bus, pci_devfn, + PCI_CB_IO_BASE_0, pciauto_lower_iospc); +} + +void __init +pciauto_postscan_setup_cardbus_bridge(struct pci_channel *hose, + int top_bus, + int current_bus, + int pci_devfn, + int sub_bus) +{ + u32 temp; + int cmdstat; + + /* + * [jsun] we always bump up baselines a little, so that if there + * nothing behind P2P bridge, we don't wind up overlapping IO/MEM + * spaces. + */ + pciauto_lower_memspc += 1; + pciauto_lower_iospc += 1; + + /* + * Configure subordinate bus number. The PCI subsystem + * bus scan will renumber buses (reserving three additional + * for this PCI<->CardBus bridge for the case where a CardBus + * adapter contains a P2P or CB2CB bridge. + */ + + early_write_config_byte(hose, top_bus, current_bus, pci_devfn, + PCI_SUBORDINATE_BUS, sub_bus); + + /* + * Reserve an additional 4MB for mem space and 16KB for + * I/O space. This should cover any additional space + * requirement of unusual CardBus devices with + * additional bridges that can consume more address space. + * + * Although pcmcia-cs currently will reprogram bridge + * windows, the goal is to add an option to leave them + * alone and use the bridge window ranges as the regions + * that are searched for free resources upon hot-insertion + * of a device. This will allow a PCI<->CardBus bridge + * configured by this routine to happily live behind a + * P2P bridge in a system. + */ + + /* Align memory and I/O to 4KB and 4 byte boundaries. */ + pciauto_lower_memspc = (pciauto_lower_memspc + (0x1000 - 1)) + & ~(0x1000 - 1); + pciauto_lower_iospc = (pciauto_lower_iospc + (0x4 - 1)) + & ~(0x4 - 1); + /* Set up memory and I/O filter limits, assume 32-bit I/O space */ + early_write_config_dword(hose, top_bus, current_bus, pci_devfn, + PCI_CB_MEMORY_LIMIT_0, pciauto_lower_memspc - 1); + early_write_config_dword(hose, top_bus, current_bus, pci_devfn, + PCI_CB_IO_LIMIT_0, pciauto_lower_iospc - 1); + + /* Enable memory and I/O accesses, enable bus master */ + early_read_config_dword(hose, top_bus, current_bus, pci_devfn, + PCI_COMMAND, &temp); + early_write_config_dword(hose, top_bus, current_bus, pci_devfn, + PCI_COMMAND, temp | PCI_COMMAND_IO | PCI_COMMAND_MEMORY + | PCI_COMMAND_MASTER); +} + #define PCIAUTO_IDE_MODE_MASK 0x05 int __init @@ -346,6 +436,26 @@ pciauto_postscan_setup_bridge(hose, top_bus, current_bus, pci_devfn, sub_bus); continue; + } else if ((pci_class >> 16) == PCI_CLASS_BRIDGE_CARDBUS) { + int iosave, memsave; + + DBG(" CARDBUS Bridge: primary=%.2x, secondary=%.2x\n", + current_bus, sub_bus + 1); + DBG("PCI Autoconfig: Found CardBus bridge, device %d function %d\n", PCI_SLOT(pci_devfn), PCI_FUNC(pci_devfn)); + /* Place CardBus Socket/ExCA registers */ + pciauto_setup_bars(hose, top_bus, current_bus, pci_devfn); + + pciauto_prescan_setup_cardbus_bridge(hose, top_bus, + current_bus, pci_devfn, sub_bus); + + DBG("Scanning sub bus %.2x, I/O 0x%.8x, Mem 0x%.8x\n", + sub_bus + 1, + pciauto_lower_iospc, pciauto_lower_memspc); + sub_bus = pciauto_bus_scan(hose, top_bus, sub_bus+1); + DBG("Back to bus %.2x, sub_bus is %x\n", current_bus, sub_bus); + pciauto_postscan_setup_cardbus_bridge(hose, top_bus, + current_bus, pci_devfn, sub_bus); + continue; } else if ((pci_class >> 16) == PCI_CLASS_STORAGE_IDE) { unsigned char prg_iface; |
From: Pete P. <pp...@us...> - 2002-03-23 02:14:04
|
Update of /cvsroot/linux-mips/linux/include/asm-mips In directory usw-pr-cvs1:/tmp/cvs-serv19885/include/asm-mips Modified Files: au1000.h Log Message: Changed PCI IO starting address. Index: au1000.h =================================================================== RCS file: /cvsroot/linux-mips/linux/include/asm-mips/au1000.h,v retrieving revision 1.14 retrieving revision 1.15 diff -u -d -r1.14 -r1.15 --- au1000.h 9 Mar 2002 01:40:52 -0000 1.14 +++ au1000.h 23 Mar 2002 02:14:01 -0000 1.15 @@ -54,19 +54,19 @@ void static inline outb_sync(u8 val, int reg) { - outb(val, reg); + writeb(val, reg); au_sync(); } void static inline outw_sync(u16 val, int reg) { - outw(val, reg); + writew(val, reg); au_sync(); } void static inline outl_sync(u32 val, int reg) { - outl(val, reg); + writel(val, reg); au_sync(); } @@ -777,8 +777,9 @@ * ourselves and then adjust the device's resources. */ #define Au1500_EXT_CFG 0x600000000 -#define Au1500_PCI_IO_START 0x550000000 -#define Au1500_PCI_IO_END 0x5500FFFFF +#define Au1500_EXT_CFG_TYPE1 0x680000000 +#define Au1500_PCI_IO_START 0x500000000 +#define Au1500_PCI_IO_END 0x5000FFFFF #define Au1500_PCI_MEM_START 0x440000000 #define Au1500_PCI_MEM_END 0x443FFFFFF |
From: Pete P. <pp...@us...> - 2002-03-23 02:13:04
|
Update of /cvsroot/linux-mips/linux/arch/mips/au1000/common In directory usw-pr-cvs1:/tmp/cvs-serv19624/common Modified Files: clocks.c dma.c irq.c serial.c time.c usbdev.c Log Message: * replace inb/oub macros with the corresponding readb/writeb ones * changed starting pci io bus address to be 0, instead of 0x50000000 * set mips_io_port_base to be the virtual (ioremapped) address of the pci io window Index: clocks.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/au1000/common/clocks.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- clocks.c 15 Feb 2002 19:47:24 -0000 1.3 +++ clocks.c 23 Mar 2002 02:13:01 -0000 1.4 @@ -75,9 +75,9 @@ unsigned int static_cfg0; unsigned int sys_busclk = (get_au1000_speed()/1000) / - ((int)(inl(SYS_POWERCTRL)&0x03) + 2); + ((int)(readl(SYS_POWERCTRL)&0x03) + 2); - static_cfg0 = inl(MEM_STCFG0); + static_cfg0 = readl(MEM_STCFG0); if (static_cfg0 & (1<<11)) lcd_clock = sys_busclk / 5; /* note: BCLK switching fails with D5 */ Index: dma.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/au1000/common/dma.c,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- dma.c 15 Feb 2002 19:47:24 -0000 1.6 +++ dma.c 23 Mar 2002 02:13:01 -0000 1.7 @@ -134,17 +134,17 @@ printk(KERN_INFO "Au1000 DMA%d Register Dump:\n", dmanr); printk(KERN_INFO " mode = 0x%08x\n", - inl(chan->io + DMA_MODE_SET)); + readl(chan->io + DMA_MODE_SET)); printk(KERN_INFO " addr = 0x%08x\n", - inl(chan->io + DMA_PERIPHERAL_ADDR)); + readl(chan->io + DMA_PERIPHERAL_ADDR)); printk(KERN_INFO " start0 = 0x%08x\n", - inl(chan->io + DMA_BUFFER0_START)); + readl(chan->io + DMA_BUFFER0_START)); printk(KERN_INFO " start1 = 0x%08x\n", - inl(chan->io + DMA_BUFFER1_START)); + readl(chan->io + DMA_BUFFER1_START)); printk(KERN_INFO " count0 = 0x%08x\n", - inl(chan->io + DMA_BUFFER0_COUNT)); + readl(chan->io + DMA_BUFFER0_COUNT)); printk(KERN_INFO " count1 = 0x%08x\n", - inl(chan->io + DMA_BUFFER1_COUNT)); + readl(chan->io + DMA_BUFFER1_COUNT)); } Index: irq.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/au1000/common/irq.c,v retrieving revision 1.15 retrieving revision 1.16 diff -u -d -r1.15 -r1.16 --- irq.c 9 Mar 2002 01:40:52 -0000 1.15 +++ irq.c 23 Mar 2002 02:13:01 -0000 1.16 @@ -103,86 +103,86 @@ if (irq_nr > AU1000_LAST_INTC0_INT) { switch (type) { case INTC_INT_RISE_EDGE: /* 0:0:1 */ - outl(1<<(irq_nr-32), IC1_CFG2CLR); - outl(1<<(irq_nr-32), IC1_CFG1CLR); - outl(1<<(irq_nr-32), IC1_CFG0SET); + writel(1<<(irq_nr-32), IC1_CFG2CLR); + writel(1<<(irq_nr-32), IC1_CFG1CLR); + writel(1<<(irq_nr-32), IC1_CFG0SET); break; case INTC_INT_FALL_EDGE: /* 0:1:0 */ - outl(1<<(irq_nr-32), IC1_CFG2CLR); - outl(1<<(irq_nr-32), IC1_CFG1SET); - outl(1<<(irq_nr-32), IC1_CFG0CLR); + writel(1<<(irq_nr-32), IC1_CFG2CLR); + writel(1<<(irq_nr-32), IC1_CFG1SET); + writel(1<<(irq_nr-32), IC1_CFG0CLR); break; case INTC_INT_HIGH_LEVEL: /* 1:0:1 */ - outl(1<<(irq_nr-32), IC1_CFG2SET); - outl(1<<(irq_nr-32), IC1_CFG1CLR); - outl(1<<(irq_nr-32), IC1_CFG0SET); + writel(1<<(irq_nr-32), IC1_CFG2SET); + writel(1<<(irq_nr-32), IC1_CFG1CLR); + writel(1<<(irq_nr-32), IC1_CFG0SET); break; case INTC_INT_LOW_LEVEL: /* 1:1:0 */ - outl(1<<(irq_nr-32), IC1_CFG2SET); - outl(1<<(irq_nr-32), IC1_CFG1SET); - outl(1<<(irq_nr-32), IC1_CFG0CLR); + writel(1<<(irq_nr-32), IC1_CFG2SET); + writel(1<<(irq_nr-32), IC1_CFG1SET); + writel(1<<(irq_nr-32), IC1_CFG0CLR); break; case INTC_INT_DISABLED: /* 0:0:0 */ - outl(1<<(irq_nr-32), IC1_CFG0CLR); - outl(1<<(irq_nr-32), IC1_CFG1CLR); - outl(1<<(irq_nr-32), IC1_CFG2CLR); + writel(1<<(irq_nr-32), IC1_CFG0CLR); + writel(1<<(irq_nr-32), IC1_CFG1CLR); + writel(1<<(irq_nr-32), IC1_CFG2CLR); break; default: /* disable the interrupt */ printk("unexpected int type %d (irq %d)\n", type, irq_nr); - outl(1<<(irq_nr-32), IC1_CFG0CLR); - outl(1<<(irq_nr-32), IC1_CFG1CLR); - outl(1<<(irq_nr-32), IC1_CFG2CLR); + writel(1<<(irq_nr-32), IC1_CFG0CLR); + writel(1<<(irq_nr-32), IC1_CFG1CLR); + writel(1<<(irq_nr-32), IC1_CFG2CLR); return; } if (int_req) /* assign to interrupt request 1 */ - outl(1<<(irq_nr-32), IC1_ASSIGNCLR); + writel(1<<(irq_nr-32), IC1_ASSIGNCLR); else /* assign to interrupt request 0 */ - outl(1<<(irq_nr-32), IC1_ASSIGNSET); - outl(1<<(irq_nr-32), IC1_SRCSET); - outl(1<<(irq_nr-32), IC1_MASKCLR); - outl(1<<(irq_nr-32), IC1_WAKECLR); + writel(1<<(irq_nr-32), IC1_ASSIGNSET); + writel(1<<(irq_nr-32), IC1_SRCSET); + writel(1<<(irq_nr-32), IC1_MASKCLR); + writel(1<<(irq_nr-32), IC1_WAKECLR); } else { switch (type) { case INTC_INT_RISE_EDGE: /* 0:0:1 */ - outl(1<<irq_nr, IC0_CFG2CLR); - outl(1<<irq_nr, IC0_CFG1CLR); - outl(1<<irq_nr, IC0_CFG0SET); + writel(1<<irq_nr, IC0_CFG2CLR); + writel(1<<irq_nr, IC0_CFG1CLR); + writel(1<<irq_nr, IC0_CFG0SET); break; case INTC_INT_FALL_EDGE: /* 0:1:0 */ - outl(1<<irq_nr, IC0_CFG2CLR); - outl(1<<irq_nr, IC0_CFG1SET); - outl(1<<irq_nr, IC0_CFG0CLR); + writel(1<<irq_nr, IC0_CFG2CLR); + writel(1<<irq_nr, IC0_CFG1SET); + writel(1<<irq_nr, IC0_CFG0CLR); break; case INTC_INT_HIGH_LEVEL: /* 1:0:1 */ - outl(1<<irq_nr, IC0_CFG2SET); - outl(1<<irq_nr, IC0_CFG1CLR); - outl(1<<irq_nr, IC0_CFG0SET); + writel(1<<irq_nr, IC0_CFG2SET); + writel(1<<irq_nr, IC0_CFG1CLR); + writel(1<<irq_nr, IC0_CFG0SET); break; case INTC_INT_LOW_LEVEL: /* 1:1:0 */ - outl(1<<irq_nr, IC0_CFG2SET); - outl(1<<irq_nr, IC0_CFG1SET); - outl(1<<irq_nr, IC0_CFG0CLR); + writel(1<<irq_nr, IC0_CFG2SET); + writel(1<<irq_nr, IC0_CFG1SET); + writel(1<<irq_nr, IC0_CFG0CLR); break; case INTC_INT_DISABLED: /* 0:0:0 */ - outl(1<<irq_nr, IC0_CFG0CLR); - outl(1<<irq_nr, IC0_CFG1CLR); - outl(1<<irq_nr, IC0_CFG2CLR); + writel(1<<irq_nr, IC0_CFG0CLR); + writel(1<<irq_nr, IC0_CFG1CLR); + writel(1<<irq_nr, IC0_CFG2CLR); break; default: /* disable the interrupt */ printk("unexpected int type %d (irq %d)\n", type, irq_nr); - outl(1<<irq_nr, IC0_CFG0CLR); - outl(1<<irq_nr, IC0_CFG1CLR); - outl(1<<irq_nr, IC0_CFG2CLR); + writel(1<<irq_nr, IC0_CFG0CLR); + writel(1<<irq_nr, IC0_CFG1CLR); + writel(1<<irq_nr, IC0_CFG2CLR); return; } if (int_req) /* assign to interrupt request 1 */ - outl(1<<irq_nr, IC0_ASSIGNCLR); + writel(1<<irq_nr, IC0_ASSIGNCLR); else /* assign to interrupt request 0 */ - outl(1<<irq_nr, IC0_ASSIGNSET); - outl(1<<irq_nr, IC0_SRCSET); - outl(1<<irq_nr, IC0_MASKCLR); - outl(1<<irq_nr, IC0_WAKECLR); + writel(1<<irq_nr, IC0_ASSIGNSET); + writel(1<<irq_nr, IC0_SRCSET); + writel(1<<irq_nr, IC0_MASKCLR); + writel(1<<irq_nr, IC0_WAKECLR); } au_sync(); } @@ -205,12 +205,12 @@ inline void local_enable_irq(unsigned int irq_nr) { if (irq_nr > AU1000_LAST_INTC0_INT) { - outl(1<<(irq_nr-32), IC1_MASKSET); - outl(1<<(irq_nr-32), IC1_WAKESET); + writel(1<<(irq_nr-32), IC1_MASKSET); + writel(1<<(irq_nr-32), IC1_WAKESET); } else { - outl(1<<irq_nr, IC0_MASKSET); - outl(1<<irq_nr, IC0_WAKESET); + writel(1<<irq_nr, IC0_MASKSET); + writel(1<<irq_nr, IC0_WAKESET); } au_sync(); } @@ -219,12 +219,12 @@ inline void local_disable_irq(unsigned int irq_nr) { if (irq_nr > AU1000_LAST_INTC0_INT) { - outl(1<<(irq_nr-32), IC1_MASKCLR); - outl(1<<(irq_nr-32), IC1_WAKECLR); + writel(1<<(irq_nr-32), IC1_MASKCLR); + writel(1<<(irq_nr-32), IC1_WAKECLR); } else { - outl(1<<irq_nr, IC0_MASKCLR); - outl(1<<irq_nr, IC0_WAKECLR); + writel(1<<irq_nr, IC0_MASKCLR); + writel(1<<irq_nr, IC0_WAKECLR); } au_sync(); } @@ -233,12 +233,12 @@ static inline void mask_and_ack_rise_edge_irq(unsigned int irq_nr) { if (irq_nr > AU1000_LAST_INTC0_INT) { - outl(1<<(irq_nr-32), IC1_RISINGCLR); - outl(1<<(irq_nr-32), IC1_MASKCLR); + writel(1<<(irq_nr-32), IC1_RISINGCLR); + writel(1<<(irq_nr-32), IC1_MASKCLR); } else { - outl(1<<irq_nr, IC0_RISINGCLR); - outl(1<<irq_nr, IC0_MASKCLR); + writel(1<<irq_nr, IC0_RISINGCLR); + writel(1<<irq_nr, IC0_MASKCLR); } au_sync(); } @@ -247,12 +247,12 @@ static inline void mask_and_ack_fall_edge_irq(unsigned int irq_nr) { if (irq_nr > AU1000_LAST_INTC0_INT) { - outl(1<<(irq_nr-32), IC1_FALLINGCLR); - outl(1<<(irq_nr-32), IC1_MASKCLR); + writel(1<<(irq_nr-32), IC1_FALLINGCLR); + writel(1<<(irq_nr-32), IC1_MASKCLR); } else { - outl(1<<irq_nr, IC0_FALLINGCLR); - outl(1<<irq_nr, IC0_MASKCLR); + writel(1<<irq_nr, IC0_FALLINGCLR); + writel(1<<irq_nr, IC0_MASKCLR); } au_sync(); } @@ -490,8 +490,8 @@ int irq = 0, i; static unsigned long intc0_req0 = 0; - intc0_req0 |= inl(IC0_REQ0INT); - + intc0_req0 |= readl(IC0_REQ0INT); + if (!intc0_req0) return; for (i=0; i<32; i++) { @@ -510,7 +510,7 @@ int irq = 0, i; static unsigned long intc0_req1 = 0; - intc0_req1 = inl(IC0_REQ1INT); + intc0_req1 = readl(IC0_REQ1INT); if (!intc0_req1) return; @@ -546,7 +546,7 @@ volatile unsigned short levels, mdr; unsigned char ide_status; - intc1_req0 |= inl(IC1_REQ0INT); + intc1_req0 |= readl(IC1_REQ0INT); if (!intc1_req0) return; @@ -578,7 +578,7 @@ int irq = 0, i; static unsigned long intc1_req1 = 0; - intc1_req1 |= inl(IC1_REQ1INT); + intc1_req1 |= readl(IC1_REQ1INT); if (!intc1_req1) return; Index: serial.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/au1000/common/serial.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- serial.c 15 Feb 2002 19:47:24 -0000 1.7 +++ serial.c 23 Mar 2002 02:13:01 -0000 1.8 @@ -241,12 +241,12 @@ static _INLINE_ unsigned int serial_in(struct async_struct *info, int offset) { - return (inl(info->port+offset) & 0xffff); + return (readl(info->port+offset) & 0xffff); } static _INLINE_ void serial_out(struct async_struct *info, int offset, int value) { - outl(value & 0xffff, info->port+offset); + writel(value & 0xffff, info->port+offset); } @@ -750,8 +750,8 @@ info->xmit.buf = (unsigned char *) page; - if (inl(UART_MOD_CNTRL + state->port) != 0x3) { - outl(3, UART_MOD_CNTRL + state->port); + if (readl(UART_MOD_CNTRL + state->port) != 0x3) { + writel(3, UART_MOD_CNTRL + state->port); au_sync_delay(10); } #ifdef SERIAL_DEBUG_OPEN @@ -988,7 +988,7 @@ info->flags &= ~ASYNC_INITIALIZED; #ifndef CONFIG_REMOTE_DEBUG - outl(0, UART_MOD_CNTRL + state->port); + writel(0, UART_MOD_CNTRL + state->port); au_sync_delay(10); #endif restore_flags(flags); @@ -2515,8 +2515,8 @@ if (!CONFIGURED_SERIAL_PORT(state)) return; - if (inl(UART_MOD_CNTRL + state->port) != 0x3) { - outl(3, UART_MOD_CNTRL + state->port); + if (readl(UART_MOD_CNTRL + state->port) != 0x3) { + writel(3, UART_MOD_CNTRL + state->port); au_sync_delay(10); } @@ -2550,7 +2550,7 @@ serial_outp(info, UART_IER, 0); #ifndef CONFIG_REMOTE_DEBUG - outl(0, UART_MOD_CNTRL + state->port); + writel(0, UART_MOD_CNTRL + state->port); au_sync_delay(10); #endif restore_flags(flags); Index: time.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/au1000/common/time.c,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- time.c 15 Feb 2002 19:47:24 -0000 1.10 +++ time.c 23 Mar 2002 02:13:01 -0000 1.11 @@ -129,7 +129,7 @@ return; } - pc0 = inl(SYS_TOYREAD); + pc0 = readl(SYS_TOYREAD); if (pc0 < last_match20) { /* counter overflowed */ time_elapsed = (0xffffffff - last_match20) + pc0; @@ -146,7 +146,7 @@ } last_pc0 = pc0; - outl(last_match20 + MATCH20_INC, SYS_TOYMATCH2); + writel(last_match20 + MATCH20_INC, SYS_TOYMATCH2); au_sync(); /* our counter ticks at 10.009765625 ms/tick, we we're running @@ -176,27 +176,27 @@ save_and_cli(flags); - counter = inl(SYS_COUNTER_CNTRL); - outl(counter | SYS_CNTRL_EN1, SYS_COUNTER_CNTRL); + counter = readl(SYS_COUNTER_CNTRL); + writel(counter | SYS_CNTRL_EN1, SYS_COUNTER_CNTRL); - while (inl(SYS_COUNTER_CNTRL) & SYS_CNTRL_T1S); - outl(trim_divide-1, SYS_RTCTRIM); /* RTC now ticks at 32.768/16 kHz */ - while (inl(SYS_COUNTER_CNTRL) & SYS_CNTRL_T1S); + while (readl(SYS_COUNTER_CNTRL) & SYS_CNTRL_T1S); + writel(trim_divide-1, SYS_RTCTRIM); /* RTC now ticks at 32.768/16 kHz */ + while (readl(SYS_COUNTER_CNTRL) & SYS_CNTRL_T1S); - while (inl(SYS_COUNTER_CNTRL) & SYS_CNTRL_C1S); - outl (0, SYS_TOYWRITE); - while (inl(SYS_COUNTER_CNTRL) & SYS_CNTRL_C1S); + while (readl(SYS_COUNTER_CNTRL) & SYS_CNTRL_C1S); + writel (0, SYS_TOYWRITE); + while (readl(SYS_COUNTER_CNTRL) & SYS_CNTRL_C1S); - start = inl(SYS_RTCREAD); + start = readl(SYS_RTCREAD); start += 2; /* wait for the beginning of a new tick */ - while (inl(SYS_RTCREAD) < start); + while (readl(SYS_RTCREAD) < start); /* Start r4k counter. */ write_32bit_cp0_register(CP0_COUNT, 0); end = start + (32768 / trim_divide)/2; /* wait 0.5 seconds */ - while (end > inl(SYS_RTCREAD)); + while (end > readl(SYS_RTCREAD)); count = read_32bit_cp0_register(CP0_COUNT); cpu_speed = count * 2; Index: usbdev.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/au1000/common/usbdev.c,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- usbdev.c 15 Feb 2002 19:47:24 -0000 1.8 +++ usbdev.c 23 Mar 2002 02:13:01 -0000 1.9 @@ -591,7 +591,7 @@ spin_lock_irqsave(&ep->lock, flags); - cs = inl(ep->reg->ctrl_stat) | USBDEV_CS_STALL; + cs = readl(ep->reg->ctrl_stat) | USBDEV_CS_STALL; outl_sync(cs, ep->reg->ctrl_stat); spin_unlock_irqrestore(&ep->lock, flags); @@ -607,7 +607,7 @@ spin_lock_irqsave(&ep->lock, flags); - cs = inl(ep->reg->ctrl_stat) & ~USBDEV_CS_STALL; + cs = readl(ep->reg->ctrl_stat) & ~USBDEV_CS_STALL; outl_sync(cs, ep->reg->ctrl_stat); spin_unlock_irqrestore(&ep->lock, flags); @@ -635,8 +635,8 @@ spin_lock_irqsave(&ep->lock, flags); bufptr = pkt->bufptr; - while (inl(ep->reg->read_fifo_status) & USBDEV_FSTAT_FCNT_MASK) { - *bufptr++ = inl(ep->reg->read_fifo) & 0xff; + while (readl(ep->reg->read_fifo_status) & USBDEV_FSTAT_FCNT_MASK) { + *bufptr++ = readl(ep->reg->read_fifo) & 0xff; read_count++; pkt->size++; } @@ -661,7 +661,7 @@ spin_lock_irqsave(&ep->lock, flags); bufptr = pkt->bufptr; - while ((inl(ep->reg->write_fifo_status) & USBDEV_FSTAT_FCNT_MASK) < + while ((readl(ep->reg->write_fifo_status) & USBDEV_FSTAT_FCNT_MASK) < EP_FIFO_DEPTH) { if (bufptr < pkt->buf + pkt->size) { outl_sync(*bufptr++, ep->reg->write_fifo); @@ -698,7 +698,7 @@ * working right, but flush it anyway just in case. */ flush_write_fifo(ep); - cs = inl(ep->reg->ctrl_stat) & USBDEV_CS_STALL; + cs = readl(ep->reg->ctrl_stat) & USBDEV_CS_STALL; cs |= (pkt->size << USBDEV_CS_TSIZE_BIT); outl_sync(cs, ep->reg->ctrl_stat); #ifdef USBDEV_PIO @@ -731,7 +731,7 @@ dbg(__FUNCTION__ ": pkt=%p, ab=%d", ep->inlist.head, get_dma_active_buffer(ep->indma)); - outl_sync(inl(ep->reg->ctrl_stat) & USBDEV_CS_STALL, + outl_sync(readl(ep->reg->ctrl_stat) & USBDEV_CS_STALL, ep->reg->ctrl_stat); //disable_dma(ep->indma); free_packet(ep, &ep->inlist); @@ -1084,7 +1084,7 @@ pkt_t *pkt = 0; u32 cs; - cs = inl(ep->reg->ctrl_stat); + cs = readl(ep->reg->ctrl_stat); switch (fifo_num) { case 0: @@ -1151,7 +1151,7 @@ int i; u32 status; - status = inl(USB_DEV_INT_STATUS); + status = readl(USB_DEV_INT_STATUS); outl_sync(status, USB_DEV_INT_STATUS); // ack'em #ifdef USBDEV_PIO @@ -1181,7 +1181,7 @@ u32 cs0, buff_done; spin_lock(&ep->lock); - cs0 = inl(ep->reg->ctrl_stat); + cs0 = readl(ep->reg->ctrl_stat); // first check packet transmit done if ((buff_done = get_dma_buffer_done(ep->indma)) != 0) { |
From: Pete P. <pp...@us...> - 2002-03-23 02:13:04
|
Update of /cvsroot/linux-mips/linux/arch/mips/au1000/pb1500 In directory usw-pr-cvs1:/tmp/cvs-serv19624/pb1500 Modified Files: pci_fixup.c pci_ops.c setup.c Log Message: * replace inb/oub macros with the corresponding readb/writeb ones * changed starting pci io bus address to be 0, instead of 0x50000000 * set mips_io_port_base to be the virtual (ioremapped) address of the pci io window Index: pci_fixup.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/au1000/pb1500/pci_fixup.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- pci_fixup.c 9 Mar 2002 01:40:52 -0000 1.3 +++ pci_fixup.c 23 Mar 2002 02:13:01 -0000 1.4 @@ -66,6 +66,9 @@ return; } + set_io_port_base(virt_io_addr); + +#if 0 pci_for_each_dev(dev) { for (i=0; i < DEVICE_COUNT_RESOURCE; i++) { if (dev->resource[i].start) { @@ -73,6 +76,7 @@ } } } +#endif } void __init pcibios_fixup_irqs(void) @@ -107,6 +111,7 @@ { unsigned long start, size, new_start; +#if 0 if (dev->resource[r_num].flags & IORESOURCE_IO) { start = dev->resource[r_num].start; size = dev->resource[r_num].end - start; @@ -114,5 +119,6 @@ dev->resource[r_num].start = new_start; dev->resource[r_num].end = new_start + size; } +#endif } #endif Index: pci_ops.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/au1000/pb1500/pci_ops.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- pci_ops.c 15 Feb 2002 19:47:26 -0000 1.2 +++ pci_ops.c 23 Mar 2002 02:13:01 -0000 1.3 @@ -52,15 +52,15 @@ /* TBD */ static struct resource pci_io_resource = { "pci IO space", - Au1500_PCI_IO_START, - Au1500_PCI_IO_END, + (u32)Au1500_PCI_IO_START + 0x300, + (u32)Au1500_PCI_IO_END, IORESOURCE_IO }; static struct resource pci_mem_resource = { "pci memory space", - Au1500_PCI_MEM_START, - Au1500_PCI_MEM_END, + (u32)Au1500_PCI_MEM_START, + (u32)Au1500_PCI_MEM_END, IORESOURCE_MEM }; @@ -72,7 +72,7 @@ (struct resource *) NULL, (int) NULL, (int) NULL} }; -static unsigned long cfg_addr; +static unsigned long cfg_addr, cfg_addr_type1; static int config_access(unsigned char access_type, struct pci_dev *dev, unsigned char where, u32 * data) { @@ -87,28 +87,25 @@ * 2:0 = function */ - if (bus != 0) { - *data = 0xffffffff; - return -1; - } - if (first) { first = 0; cfg_addr = ioremap(Au1500_EXT_CFG, 0x10000000); if (!cfg_addr) - printk (KERN_ERR "PCI unable to ioremap cfg space\n"); + panic (KERN_ERR "PCI unable to ioremap cfg space\n"); + + cfg_addr_type1 = ioremap(Au1500_EXT_CFG_TYPE1, 0x10000000); + if (!cfg_addr_type1) { + panic (KERN_ERR "PCI unable to ioremap cfg space\n"); + } } device = (dev_fn >> 3) & 0x1f; function = dev_fn & 0x7; -#if 1 - //if (!cfg_addr || (device < 10) || (device > 16)) { - if (!cfg_addr || (device > 16)) { + if (device > 16) { *data = 0xffffffff; return -1; } -#endif writel(((0x2000 << 16) | (readl(Au1500_PCI_STATCMD) & 0xffff)), Au1500_PCI_STATCMD); @@ -116,8 +113,13 @@ au_sync_udelay(1); /* setup the lower 31 bits of the 36 bit address */ - config = cfg_addr | - ((1<<device)<<11) | (function << 8) | (where & ~0x3); + if (bus == 0) { + config = cfg_addr | + ((1<<device)<<11) | (function << 8) | (where & ~0x3); + } else { + config = cfg_addr_type1 | (bus<<16) | (device<<11) | + (function << 8) | (where & ~0x3); + } #if 0 printk("cfg access: config %x, dev_fn %x, device %x function %x\n", @@ -129,7 +131,7 @@ } else { *data = readl(config); } - au_sync_udelay(1); + au_sync_udelay(2); DBG("config_access: %d bus %d device %d at %x *data %x, conf %x\n", access_type, bus, device, where, *data, config); Index: setup.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/au1000/pb1500/setup.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- setup.c 9 Mar 2002 01:40:06 -0000 1.3 +++ setup.c 23 Mar 2002 02:13:01 -0000 1.4 @@ -119,8 +119,7 @@ __ioremap_fixup = pb1500_ioremap_fixup; // IO/MEM resources. - set_io_port_base(0); - ioport_resource.start = 0x10000000; + ioport_resource.start = 0x00000000; ioport_resource.end = 0xffffffff; iomem_resource.start = 0x10000000; iomem_resource.end = 0xffffffff; @@ -133,7 +132,7 @@ // set AUX clock to 12MHz * 8 = 96 MHz writel(8, SYS_AUXPLL); - outl(0, SYS_PINSTATERD); + writel(0, SYS_PINSTATERD); udelay(100); #if defined (CONFIG_USB_OHCI) || defined (CONFIG_AU1000_USB_DEVICE) @@ -239,7 +238,7 @@ writel(SYS_CNTRL_E0 | SYS_CNTRL_EN0, SYS_COUNTER_CNTRL); au_sync(); while (readl(SYS_COUNTER_CNTRL) & SYS_CNTRL_T0S); - outl(0, SYS_TOYTRIM); + writel(0, SYS_TOYTRIM); /* Enable BCLK switching */ writel(0x00000060, 0xb190003c); @@ -269,6 +268,9 @@ /* check for pci memory window */ if ((phys_addr >= pci_start) && ((phys_addr + size) < pci_end)) { return (phys_t)((phys_addr - pci_start) + Au1500_PCI_MEM_START); + } + else if (phys_addr > (pci_start + size)) { + printk("warning: bad remap address: %Lx\n", phys_addr); } else return phys_addr; |
From: Leblanc f. <fle...@us...> - 2002-03-22 10:22:48
|
Update of /cvsroot/linux-mips/linux/arch/mips/vr41xx/vr4111/casio-e15 In directory usw-pr-cvs1:/tmp/cvs-serv6638/arch/mips/vr41xx/vr4111/casio-e15 Modified Files: Makefile setup.c Added Files: gdb.c Log Message: Casio E15 power on/off improvement & GPIO Documentation added. --- NEW FILE: gdb.c --- /* * arch/mips/vr41xx/vr4111/casio-e15/gdb.c * provide fonctions for gdb use. * * Copyright (C) 2002 Francois Leblanc <fra...@ce...> * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * */ #include <linux/config.h> #include <linux/types.h> #include <linux/serial.h> #include <linux/serial_reg.h> #include <asm/vr41xx.h> /* * This is the interface to the remote debugger stub. * I've put that here to be able to control the serial * device more directly. * * We're a little paranoid with the barrier()s, just in * case the compiler tries to be too cute. */ static int initialized = 0; void DbgInitSerial(void) { unsigned char dummy; /* Ensure that serial is set to RS-232C (not IrDA) */ *VR41XX_SIUIRSEL &= ~VR41XX_SIUIRSEL_SIRSEL; /* Supply clocks to all serial units */ vr41xx_clock_supply(VR41XX_CMUCLKMSK_MSKSIU); vr41xx_clock_supply(VR41XX_CMUCLKMSK_MSKDSIU); vr41xx_clock_supply(VR41XX_CMUCLKMSK_MSKSSIU); #if 0 /* turn on the clocks to the serial port */ serial_power_on(0); #endif *VR41XX_SIULC = UART_LCR_DLAB; /* prepare to set baud rate */ barrier(); *VR41XX_SIUDLL = 10; /* set 120 here for 9600 */ *VR41XX_SIUDLM = 0; /* hardcoded: set to 115200 */ barrier(); *VR41XX_SIULC = UART_LCR_WLEN8; /* clear DLAB, set up for 8N1 */ barrier(); *VR41XX_SIUIE = 0; /* disable interrupts */ *VR41XX_SIUFC = UART_FCR_CLEAR_RCVR | UART_FCR_CLEAR_XMIT; #ifdef CONFIG_PM //fcr_shadow[0] = 0; #endif *VR41XX_SIUMC = UART_MCR_RTS | UART_MCR_DTR; /* set RTS and DTR */ dummy = *VR41XX_SIURB; /* clear any pending ints */ dummy = *VR41XX_SIUMS; dummy = *VR41XX_SIUIID; barrier(); /* clear the receive buffer (and finish clearing ints) */ while ( *VR41XX_SIULS & UART_LSR_DR ) dummy = *VR41XX_SIURB; } int putDebugChar(unsigned char c) { if (!initialized) { /* need to init device first */ DbgInitSerial(); initialized = 1; } while ( !(*VR41XX_SIULS & UART_LSR_THRE) ) ; barrier(); *VR41XX_SIUTH = c; return 1; } char getDebugChar(void) { if (!initialized) { /* need to init device first */ DbgInitSerial(); initialized = 1; } while ( !(*VR41XX_SIULS & UART_LSR_DR) ) ; barrier(); return(*VR41XX_SIURB); } Index: Makefile =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/vr41xx/vr4111/casio-e15/Makefile,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- Makefile 19 Mar 2002 14:22:21 -0000 1.2 +++ Makefile 22 Mar 2002 10:22:43 -0000 1.3 @@ -20,6 +20,7 @@ all: casio-e15.o obj-y += setup.o prom.o +obj-$(CONFIG_REMOTE_DEBUG) += gdb.o include $(TOPDIR)/Rules.make Index: setup.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/vr41xx/vr4111/casio-e15/setup.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- setup.c 19 Mar 2002 14:22:21 -0000 1.3 +++ setup.c 22 Mar 2002 10:22:43 -0000 1.4 @@ -1,38 +1,40 @@ /* - * linux/arch/mips/vr4111/casio/setup.c - * - * VR41xx setup routines - * - * Copyright (C) 1999 Bradley D. LaRonde - * Copyright (C) 1999, 2000 Michael Klar + * FILE NAME + * arch/mips/vr41xx/vr4111/casio-e15/setup.c * - * Copyright 2001 MontaVista Software Inc. - * Author: js...@mv... or js...@ju... + * BRIEF MODULE DESCRIPTION + * Setup for the CASIO CASSIOPEIA E-15. * - * Copyright 2001 Jim Paris <ji...@jt...> + * Copyright 2002 Yoichi Yuasa + * yu...@hh... * - * This file is subject to the terms and conditions of the GNU General Public - * License. See the file "COPYING" in the main directory of this archive - * for more details. + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2 of the License, or (at your + * option) any later version. * */ +/* + * Changes: + * - Francois Leblanc <fra...@ce...> + * Copy from casio-e55/setup.c an update to casio-e15. + * + */ #include <linux/config.h> #include <linux/init.h> #include <linux/console.h> -#ifdef CONFIG_IDE #include <linux/ide.h> -#endif #include <linux/ioport.h> #include <asm/reboot.h> #include <asm/time.h> #include <asm/vr41xx.h> #include <asm/vr41xx/e15.h> -#ifdef CONFIG_PM_SUSPEND_WAKEUP -#include <asm/power.h> -#endif extern void vr41xx_xblink_led(unsigned int times, unsigned int time_on, unsigned int time_off); +extern void vr4111_wait(void); +extern void vr4111_hibernate(void); +extern void vr4111_suspend(void); #ifdef CONFIG_BLK_DEV_INITRD extern unsigned long initrd_start, initrd_end; @@ -50,6 +52,94 @@ { } +#ifdef CONFIG_PM_SUSPEND_WAKEUP +void vr41xx_board_hibernate(void) +{ + vr4111_hibernate(); +} +#endif +#ifdef CONFIG_PM_POWERED_SUSPEND +void vr41xx_board_suspend(void) +{ + vr4111_suspend(); +} +#endif +#ifdef CONFIG_PM_STANDBY +void vr41xx_board_standby(void) +{ + vr4111_wait(); +} +#endif + +#ifdef CONFIG_PM_SUSPEND_WAKEUP +#include <asm/vr41xx-platdep.h> +#include <asm/gdb-stub.h> + +extern void breakpoint(void); +extern void kernel_entry(void); +extern void DbgInitSerial(void); + +// Put contents of WINCE_SIGNATURE_CHECK1 & 2 at +// WINCE_SIGNATURE_ADD1 & 2 set WINCE_RETURN_ADD +// to kernel_entry for go back to linux. + +#define WINCE_SIGNATURE_ADD1 ((unsigned int *)0xa0006000) +#define WINCE_SIGNATURE_ADD2 ((unsigned int *)0xa0006004) +#define WINCE_RETURN_ADD ((unsigned int *)0xa0006008) +#define WINCE_SIGNATURE_CHECK1 ((unsigned int *)0x9f00048c) +#define WINCE_SIGNATURE_CHECK2 ((unsigned int *)0x9f000490) + +static unsigned int wince_signature_old1; +static unsigned int wince_signature_old2; +static unsigned int wince_return_old; + +static asmlinkage void casio_e15_wakeup(void) +{ + write_32bit_cp0_register(CP0_STATUS, ST0_CU0); + + // Let the CPU know we are alive by resetting HAL timer. + *VR41XX_PMUCNTREG |= 0x4; + + // Restore context, necessary if do_wakeup scratch + // the next reset call should restore wince internal + // since memory signature is corrupted ! + *WINCE_SIGNATURE_ADD1 = wince_signature_old1; + *WINCE_SIGNATURE_ADD2 = wince_signature_old2; + *WINCE_RETURN_ADD = wince_return_old; + +#ifdef CONFIG_REMOTE_DEBUG + //re-init serial + set_debug_traps(); + DbgInitSerial(); +#endif + + //try restore screen view + gpiolcd_lcdpower(1); + +#ifdef CONFIG_VR41XX_LED + vr41xx_xblink_led(2, 12, 3); +#endif + + // restart kernel + kernel_entry(); +} + +void vr41xx_extend_hibernate(void) +{ + // wince E15 signature + wince_signature_old1 = *WINCE_SIGNATURE_ADD1; + wince_signature_old2 = *WINCE_SIGNATURE_ADD2; + wince_return_old = *WINCE_RETURN_ADD; + + *WINCE_SIGNATURE_ADD1 = *WINCE_SIGNATURE_CHECK1; + *WINCE_SIGNATURE_ADD2 = *WINCE_SIGNATURE_CHECK2; + *WINCE_RETURN_ADD = casio_e15_wakeup; + + printk (KERN_NOTICE "Hibernate signature set, ready for wake up !\n"); + +} +#endif /* end of CONFIG_PM_SUSPEND_WAKEUP */ + void __init nec_vr41xx_setup(void) { set_io_port_base(IO_PORT_BASE); @@ -88,6 +178,7 @@ init_MUTEX(&vr41xx_dma_sem); #ifdef CONFIG_VR41XX_LED - vr41xx_xblink_led(4, 16, 4); + vr41xx_xblink_led(2, 12, 3); #endif } + |
From: Leblanc f. <fle...@us...> - 2002-03-22 10:22:47
|
Update of /cvsroot/linux-mips/linux/fs/proc In directory usw-pr-cvs1:/tmp/cvs-serv6638/fs/proc Modified Files: proc_misc.c Log Message: Casio E15 power on/off improvement & GPIO Documentation added. Index: proc_misc.c =================================================================== RCS file: /cvsroot/linux-mips/linux/fs/proc/proc_misc.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- proc_misc.c 2 Dec 2001 19:05:32 -0000 1.5 +++ proc_misc.c 22 Mar 2002 10:22:43 -0000 1.6 @@ -566,3 +566,16 @@ if (entry) entry->write_proc = slabinfo_write_proc; } + +#ifdef CONFIG_MOUNT_PROC +void __init mount_proc(void) +{ + int err; + + err = do_mount ("/proc", "/proc", "proc", 0, ""); + if (err == 0) printk ("Mounted proc on /proc\n"); + else printk ("Warning: unable to mount proc, err: %d\n", err); +} +#endif + + |
From: Leblanc f. <fle...@us...> - 2002-03-22 10:22:46
|
Update of /cvsroot/linux-mips/linux/include/asm-mips In directory usw-pr-cvs1:/tmp/cvs-serv6638/include/asm-mips Modified Files: power.h Log Message: Casio E15 power on/off improvement & GPIO Documentation added. Index: power.h =================================================================== RCS file: /cvsroot/linux-mips/linux/include/asm-mips/power.h,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- power.h 7 Mar 2002 09:15:17 -0000 1.1 +++ power.h 22 Mar 2002 10:22:43 -0000 1.2 @@ -16,7 +16,7 @@ extern unsigned int powerevent_queued; extern unsigned int hibernation_state; -extern asmlinkage void do_wakeup(char *command); +extern asmlinkage int do_wakeup(void); extern asmlinkage void do_hibernate(void *sp); #endif |
From: Leblanc f. <fle...@us...> - 2002-03-22 10:22:46
|
Update of /cvsroot/linux-mips/linux/arch/mips/configs In directory usw-pr-cvs1:/tmp/cvs-serv6638/arch/mips/configs Modified Files: defconfig-casio-e15 Log Message: Casio E15 power on/off improvement & GPIO Documentation added. Index: defconfig-casio-e15 =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/configs/defconfig-casio-e15,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- defconfig-casio-e15 19 Mar 2002 14:22:21 -0000 1.2 +++ defconfig-casio-e15 22 Mar 2002 10:22:43 -0000 1.3 @@ -73,6 +73,7 @@ CONFIG_VR41XX_LED=y CONFIG_ADIF=y CONFIG_GPIO_LCD=y +CONFIG_VR41XX_EXTEND_HIBERNATE=y CONFIG_EISA=y # @@ -118,8 +119,12 @@ # CONFIG_BINFMT_AOUT is not set CONFIG_BINFMT_ELF=y CONFIG_BINFMT_MISC=y -# CONFIG_PM is not set -# CONFIG_PROC_GIUINFO is not set +CONFIG_PM=y +CONFIG_PM_SUSPEND_WAKEUP=y +CONFIG_PM_POWERED_SUSPEND=y +# CONFIG_PM_STANDBY is not set +CONFIG_PROC_GIUINFO=y +CONFIG_MOUNT_PROC=y # CONFIG_CPU_FREQ is not set CONFIG_NET=y CONFIG_HOTPLUG=y @@ -166,8 +171,10 @@ # CONFIG_BLK_DEV_DAC960 is not set CONFIG_BLK_DEV_LOOP=y CONFIG_BLK_DEV_NBD=y -# CONFIG_BLK_DEV_RAM is not set -# CONFIG_BLK_DEV_INITRD is not set +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_SIZE=4096 +CONFIG_BLK_DEV_INITRD=y +CONFIG_EMBEDDED_RAMDISK=y # # Multi-device support (RAID and LVM) @@ -476,7 +483,7 @@ # CONFIG_JBD_DEBUG is not set CONFIG_FAT_FS=y CONFIG_MSDOS_FS=y -# CONFIG_UMSDOS_FS is not set +CONFIG_UMSDOS_FS=y CONFIG_VFAT_FS=y # CONFIG_EFS_FS is not set # CONFIG_JFFS_FS is not set @@ -671,7 +678,7 @@ # CONFIG_SOUND_MSNDPIN is not set # CONFIG_SOUND_VIA82CXXX is not set # CONFIG_MIDI_VIA82CXXX is not set -# CONFIG_SOUND_VR41XX is not set +CONFIG_SOUND_VR41XX=y # CONFIG_SOUND_OSS is not set # CONFIG_SOUND_TVMIXER is not set |
From: Leblanc f. <fle...@us...> - 2002-03-22 10:22:46
|
Update of /cvsroot/linux-mips/linux/arch/mips/vr41xx/common In directory usw-pr-cvs1:/tmp/cvs-serv6638/arch/mips/vr41xx/common Modified Files: power.c Log Message: Casio E15 power on/off improvement & GPIO Documentation added. Index: power.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/vr41xx/common/power.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- power.c 7 Mar 2002 09:15:16 -0000 1.1 +++ power.c 22 Mar 2002 10:22:43 -0000 1.2 @@ -33,6 +33,11 @@ */ extern struct semaphore vr41xx_dma_sem; +extern void vr41xx_extend_hibernate(void); +extern void vr41xx_board_hibernate(void); +extern void vr41xx_board_suspend(void); +extern void vr41xx_board_standby(void); + #ifdef CONFIG_PM_SUSPEND_WAKEUP // @@ -76,7 +81,6 @@ unsigned int powerevent_queued; unsigned int hibernation_state = LOAD_MAGIC; static unsigned short clkmsk_state; -//extern void do_pm_irq_request(pm_request_t rqst); #ifndef VR41XX_IRQ_MAX #define VR41XX_IRQ_MAX ((VR41XX_NUM_CPU_IRQ)+(VR41XX_NUM_SYS_IRQ)+(VR41XX_NUM_GPIO_IRQ)) @@ -148,17 +152,19 @@ gpio_state[i] = *(MIN_GPIOREG + i); clkmsk_state = *VR41XX_CMUCLKMSK; + // do more board specific hibernate code +#ifdef CONFIG_VR41XX_EXTEND_HIBERNATE + vr41xx_extend_hibernate(); +#endif + // we may want to put in some checksum or CRC on all of RAM, too - hibernation_state = HIB_MAGIC; - //flush_cache_all(); - //vr41xx_hibernate(); - machine_halt (); + flush_cache_all(); + vr41xx_board_hibernate(); // never reached... } -//asmlinkage int do_wakeup(void) -asmlinkage void do_wakeup(char *command) +asmlinkage int do_wakeup(void) { int i, retval; @@ -167,12 +173,10 @@ write_32bit_cp0_register(CP0_STATUS, ST0_CU0); // Do what loadmmu would have done if cold init - //set_cp0_config(CONF_CM_CMASK, CONF_CM_CACHABLE_NONCOHERENT); change_cp0_config(CONF_CM_CMASK, CONF_CM_CACHABLE_NONCOHERENT); flush_cache_all(); write_32bit_cp0_register(CP0_WIRED, 0); set_pagemask(PM_4K); - //write_32bit_cp0_register(CP0_PAGEMASK, PM_4K); flush_tlb_all(); // this is about the point where we would check CRC if we did one @@ -186,7 +190,7 @@ sti(); up(&vr41xx_dma_sem); } - //return retval; + return retval; } /* @@ -260,8 +264,7 @@ up(&vr41xx_dma_sem); return retval; } - //vr41xx_suspend(); - machine_power_off (); + vr41xx_board_suspend(); retval = pm_send_all(PM_RESUME, (void *)0); up(&vr41xx_dma_sem); @@ -293,8 +296,7 @@ } else { // MFK: replace with send PM_SUSPEND request to pm_time_request: disable_irq(VR41XX_IRQ_INT1); - //vr41xx_standby(); - machine_power_off (); + vr41xx_board_standby (); // MFK: replace with send PM_RESUME request to pm_time_request: enable_irq(VR41XX_IRQ_INT1); } |
From: Leblanc f. <fle...@us...> - 2002-03-22 10:22:46
|
Update of /cvsroot/linux-mips/linux/Documentation/mips In directory usw-pr-cvs1:/tmp/cvs-serv6638/Documentation/mips Added Files: casio-e15.txt Log Message: Casio E15 power on/off improvement & GPIO Documentation added. --- NEW FILE: casio-e15.txt --- Casio E15 gpio definition (2002/03/18) ====================================== This document is the result of my investigations about Casio Cassiopeia hardware definitions. Feel free to append any informations about E15 that you think useful. François Leblanc <fra...@ce...> This informations are no officials since Casio cie never transmit me any informations of this device although I ask them many times. <<I advice anybody to not buy casio devices for future use unless they don't need linux on it. Casio don't care of open source developpers and don't give any informations of any kinds about theirs products. I had to spend a lot of my time life to get this informations available althought device is quite old... I don't think that device schematics are still secret, perhaps they use it on nuclear weapons? :-).>> Sorry, it's for my nerves because they get on my nerves... due to this I prefer add below: /* * THIS INFORMATIONS ARE PROVIDED BY The Author "AS IS". The Author * IS NOT RESPONSABLE IN ANY WAY OF LOSS OF DATA HARDWARE DAMAGE OR * ANY THINGS THAT CAN RESULT OF THE USE OF THIS INFORMATIONS. YOU * USE THEM AT YOUR OWN RISK. */ GPIO base value: ---------------- 0xab000100: 0x0000 0x1fc0 0x7fc3 0xebe9 0x8004 0x1414 0xffff 0xe03f 0xab000110: 0x0000 0x0000 0x0038 0x0002 0xffe9 0xe02a 0x0f67 0x0000 0xab000100: 0x0000 0xab000102: 0x1fc0 0xab000104: 0x7fc3 0xab000106: 0xebe9 gpiodl I/O | fonction | 0x7fc3 | 0111 1111 1100 0011 | hexa value | name ------------------------------------------------------------------- (I) | | | 1111 1111 1100 0011 | | GPIO15 (I) | KEY DOWN | 0x3fc3 | 0011 1111 1100 0011 | | GPIO14 (I) | UP_ACT | 0x5fc3 | 0101 1111 1100 0011 | | GPIO13 (I) | DN_ACT | 0x6fc3 | 0110 1111 1100 0011 | | GPIO12 (I) | VOICE | 0x77c3 | 0111 0111 1100 0011 | | GPIO11 (I) | APP1 | 0x7bc3 | 0111 1011 1100 0011 | | GPIO10 (I) | APP2 | 0x7dc3 | 0111 1101 1100 0011 | | GPIO9 (I) | APP3 | 0x7ec3 | 0111 1110 1100 0011 | | GPIO8 (I) | EXIT | 0x7f43 | 0111 1111 0100 0011 | | GPIO7 (I) | ACTION | 0x7f83 | 0111 1111 1000 0011 | | GPIO6 (I) | POWER | 0x7fe3 | 0111 1111 1110 0011 | | GPIO5 (I) | | | 0111 1111 1101 0011 | | GPIO4 (I) | | | 0111 1111 1100 1011 | | GPIO3 (I) | | | 0111 1111 1100 0111 | | GPIO2 (I) | | | 0111 1111 1110 0001 | | GPIO1 (I) | | | 0111 1111 1110 0010 | | GPIO0 gpiodh I/O | fonction | 0xe3e9 | 1110 0011 1110 1001 | hexa value | name ------------------------------------------------------------------- (I) | LEFT | 0x63e9 | 0110 0011 1110 1001 | | GPIO31 (I) | RIGHT | 0xa3e9 | 1010 0011 1110 1001 | | GPIO30 (I) | UP | 0xc3e9 | 1100 0011 1110 1001 | | GPIO29 (O) | UNKNOW | | | 0x1000 | GPIO28 (O) | SPEAKER | | | 0x0800 | GPIO27 (O) | BACKLIGHT | | | 0x0400 | GPIO26 (O) | UNKNOW | | | 0x0200 | GPIO25 (O) | LCD ON/OFF | | | 0x0100 | GPIO24 (I) | | 0xe3fd | 1110 0011 1111 1101 | | GPIO20 (main battery low???) (I) | RESET? | 0xXXXX | 1110 0011 1110 0001 | | GPIO19 (back reset button???) (I) | | 0xe3ed | 1110 0011 1110 1101 | | GPIO18 (backup battery low???) (I) | | | | | GPIO17 (I) | | | | | GPIO16 CONTROL: ---- UNKNOW: 0x1000 GPIO28 SOUND (SPEAKER):0x0800 GPIO27 LCD BACKLIGHT: 0x0400 GPIO26 UNKNOW: 0x0200 GPIO25 LCD ON/OFF: 0x0100 GPIO24 UNKNOW: 0x0080 GPIO23 UNKNOW: 0x0040 GPIO22 CONTRAST: 0xab00 011c = 0x0f67 --------- 0-16: PODAT LOW xxxx xxxx xxxx 0000 Low contrast value 0 xxxx xxxx xxxx 1111 Max contrast value 16 |
From: Leblanc f. <fle...@us...> - 2002-03-22 10:22:46
|
Update of /cvsroot/linux-mips/linux/arch/mips In directory usw-pr-cvs1:/tmp/cvs-serv6638/arch/mips Modified Files: Makefile config.in Log Message: Casio E15 power on/off improvement & GPIO Documentation added. Index: Makefile =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/Makefile,v retrieving revision 1.42 retrieving revision 1.43 diff -u -d -r1.42 -r1.43 --- Makefile 19 Mar 2002 14:22:21 -0000 1.42 +++ Makefile 22 Mar 2002 10:22:43 -0000 1.43 @@ -478,7 +478,7 @@ LIBS += arch/mips/vr41xx/common/vr41xx.o \ arch/mips/vr41xx/vr4111/common/vr4111.o \ arch/mips/vr41xx/vr4111/casio-e15/casio-e15.o -LOADADDR += 0x80001000 +LOADADDR += 0x80008000 endif ifdef CONFIG_TOSHIBA_JMR3927 Index: config.in =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/config.in,v retrieving revision 1.90 retrieving revision 1.91 diff -u -d -r1.90 -r1.91 --- config.in 19 Mar 2002 14:22:21 -0000 1.90 +++ config.in 22 Mar 2002 10:22:43 -0000 1.91 @@ -479,6 +479,7 @@ define_bool CONFIG_VR41XX_LED y define_bool CONFIG_ADIF y define_bool CONFIG_GPIO_LCD y + define_bool CONFIG_VR41XX_EXTEND_HIBERNATE y fi if [ "$CONFIG_HP_LASERJET" = "y" ]; then @@ -660,6 +661,7 @@ fi if [ "$CONFIG_PROC_FS" = "y" ]; then bool 'GPIO Diagnostic information on /proc/giuinfo' CONFIG_PROC_GIUINFO + bool 'Auto mount proc on /proc' CONFIG_MOUNT_PROC fi fi dep_bool 'Support CPU clock change (EXPERIMENTAL)' CONFIG_CPU_FREQ $CONFIG_EXPERIMENTAL |