* Re: CPCI-405 port (PPC405GP) [not found] <EFEAIMDCOOOHIEPHDNFJEEENDCAA.stefan.roese@esd-electronics.com> @ 2001-09-10 17:13 ` Dan Malek 2001-09-11 7:15 ` AW: " Stefan Roese 2001-09-18 18:57 ` Tom Rini 1 sibling, 1 reply; 42+ messages in thread From: Dan Malek @ 2001-09-10 17:13 UTC (permalink / raw) To: Stefan Roese; +Cc: Linuxppc-Embedded, Linuxppc-Commit Stefan Roese wrote: > Please find attached a port to our CPCI-405 board Nice job, but did you actually get your system booted? There is something generically wrong with the 405 port, and it's been a pain in the ass trying to find it. If you actually booted a system that ran properly, it would be interesting to know what you used for a file system. Thanks. -- Dan ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/ ^ permalink raw reply [flat|nested] 42+ messages in thread
* AW: CPCI-405 port (PPC405GP) 2001-09-10 17:13 ` CPCI-405 port (PPC405GP) Dan Malek @ 2001-09-11 7:15 ` Stefan Roese 2001-09-11 17:36 ` Matthew Locke 0 siblings, 1 reply; 42+ messages in thread From: Stefan Roese @ 2001-09-11 7:15 UTC (permalink / raw) To: Linuxppc-Embedded, Linuxppc-Commit > > Please find attached a port to our CPCI-405 board > > Nice job, but did you actually get your system booted? There is > something generically wrong with the 405 port, and it's been a pain > in the ass trying to find it. If you actually booted a system > that ran properly, it would be interesting to know what you used for > a file system. I get my system booted up to the busybox prompt via nfs root file system. After this most commands do nothing at all (as described from andrew may "405GP booting"), and the system hangs pretty soon :-(. I would think that the walnut port is behaving this way too, am I right? If you are interrested, please take a look at the bootup snapshop of our board: PPCBoot 1.0.4 (Aug 29 2001 - 18:55:29) CPU: IBM PowerPC 405GP Rev. D at 198 MHz (PLB=99, OPB=49, EBC=33 MHz) PCI sync clock at 33 MHz, internal PCI arbiter enabled 16 kB I-Cache 8 kB D-Cache Board: CPCI405_AC033 (PCI Host Version) FPGA: cpci4052.ncd s05xlvq100 2001/05/10 15:15:23 DRAM: 16 MB FLASH: 4 MB IDE: Bus 0: OK Device 0: Model: Hitachi CV 7.1.1 Firm: Rev 1.01 Ser#: Type: Removable Hard Disk Capacity: 15.4 MB = 0.0 GB (31488 x 512) BEDBUG Ready In: serial Out: serial Err: serial Hit any key to stop autoboot: 0 ENET Speed is 100 Mbps - FULL duplex connection ARP broadcast 1 TFTP from server 10.0.18.190; our IP address is 10.0.111.111 Filename '/tftpboot/pImage88'. Load address: 0x400000 Loading: ############################################################################ ########################## done Bytes transferred = 519304 (7ec88 hex) ## Booting image at 00400000 ... Image Name: Linux-2.4.10-pre6 Image Type: PowerPC Linux Kernel Image (gzip compressed) Data Size: 519240 Bytes = 507 kB = 0 MB Load Address: 00000000 Entry Point: 00000000 Verifying Checksum ... OK Uncompressing Kernel Image ... OK Linux version 2.4.10-pre6 (stefan@pc-linux-dev) (gcc version 2.95.2 19991030 (2.95.3 prerelease/franzo)) #2 Mon Sep 10 16:57:01 CEST 2001 On node 0 totalpages: 4096 zone(0): 4096 pages. zone(1): 0 pages. zone(2): 0 pages. Kernel command line: root=/dev/nfs rw nfsroot=10.0.18.190:/home/matthias/target_root_esd ip=10.0.111.111:10.0.18.190:10.0.0.79:255.255.0.0:pc-linux-dev::off Calibrating delay loop... 197.83 BogoMIPS Memory: 14636k available (924k kernel code, 448k data, 64k init, 0k highmem) Dentry-cache hash table entries: 2048 (order: 2, 16384 bytes) Inode-cache hash table entries: 1024 (order: 1, 8192 bytes) Mount-cache hash table entries: 512 (order: 0, 4096 bytes) Buffer-cache hash table entries: 1024 (order: 0, 4096 bytes) Page-cache hash table entries: 4096 (order: 2, 16384 bytes) POSIX conformance testing by UNIFIX PCI: Probing PCI hardware Memory resource not set for host bridge 0 PCI: Failed to allocate resource 1(0-ffffffff) for 00:00.0 Linux NET4.0 for Linux 2.4 Based upon Swansea University Computer Society NET3.039 Starting kswapd v1.8 i2c-core.o: i2c core module Serial driver version 5.05c (2001-07-08) with MANY_PORTS SHARE_IRQ SERIAL_PCI enabled ttyS00 at 0x0000 (irq = 0) is a 16550A ttyS01 at 0x0000 (irq = 1) is a 16550A block: 64 slots per queue, batch=8 RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize loop: loaded (max 8 devices) : PPC405 EMAC 100 Mbs Full duplex MAC 00:02:27:00:01:79 NET4: Linux TCP/IP 1.0 for NET4.0 IP Protocols: ICMP, UDP, TCP, IGMP IP: routing cache hash table of 512 buckets, 4Kbytes TCP: Hash tables configured (established 1024 bind 1024) Reset ethernet interfaces eth0: PPC405 Enet open completed IP-Config: Complete: device=eth0, addr=10.0.111.111, mask=255.255.0.0, gw=10.0.0.79, host=pc-linux-dev, domain=, nis-domain=(none), bootserver=10.0.18.190, rootserver=10.0.18.190, rootpath= NET4: Unix domain sockets 1.0/SMP for Linux NET4.0. Looking up port of RPC 100003/2 on 10.0.18.190 Looking up port of RPC 100005/1 on 10.0.18.190 VFS: Mounted root (nfs filesystem). Freeing unused kernel memory: 64k init 4k openfirmware serial console detected. Disabling virtual terminals. init started: BusyBox v0.60.1 (2001.08.24-09:23+0000) multi-call binary Please press Enter to activate this console. BusyBox v0.60.1 (2001.08.24-10:05+0000) Built-in shell (msh) Enter 'help' for a list of built-in commands. # ps # ls Please press Enter to activate this console. ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/ ^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: AW: CPCI-405 port (PPC405GP) 2001-09-11 7:15 ` AW: " Stefan Roese @ 2001-09-11 17:36 ` Matthew Locke 2001-09-11 17:53 ` Dan Malek 0 siblings, 1 reply; 42+ messages in thread From: Matthew Locke @ 2001-09-11 17:36 UTC (permalink / raw) To: Stefan Roese; +Cc: Linuxppc-Embedded, Linuxppc-Commit Stefan Roese wrote: >>> Please find attached a port to our CPCI-405 board >> >> Nice job, but did you actually get your system booted? There is >> something generically wrong with the 405 port, and it's been a pain >> in the ass trying to find it. If you actually booted a system >> that ran properly, it would be interesting to know what you used for >> a file system. > > > I get my system booted up to the busybox prompt via nfs root file system. > After this most commands do nothing at all (as described from andrew may > "405GP booting"), and the system hangs pretty soon :-(. > > I would think that the walnut port is behaving this way too, am I right? > no, I pulled this morning and the walnut works fine. I am using nfs root with HHL2.0 userland. ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/ ^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: AW: CPCI-405 port (PPC405GP) 2001-09-11 17:36 ` Matthew Locke @ 2001-09-11 17:53 ` Dan Malek 2001-09-12 13:12 ` AW: " Stefan Roese 0 siblings, 1 reply; 42+ messages in thread From: Dan Malek @ 2001-09-11 17:53 UTC (permalink / raw) To: Matthew Locke; +Cc: Stefan Roese, Linuxppc-Embedded, Linuxppc-Commit Matthew Locke wrote: > no, I pulled this morning and the walnut works fine. I am using nfs > root with HHL2.0 userland. I fixed it last night...... -- Dan ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/ ^ permalink raw reply [flat|nested] 42+ messages in thread
* AW: AW: CPCI-405 port (PPC405GP) 2001-09-11 17:53 ` Dan Malek @ 2001-09-12 13:12 ` Stefan Roese 0 siblings, 0 replies; 42+ messages in thread From: Stefan Roese @ 2001-09-12 13:12 UTC (permalink / raw) To: Linuxppc-Embedded, Linuxppc-Commit > > no, I pulled this morning and the walnut works fine. I am using nfs > > root with HHL2.0 userland. > > I fixed it last night...... Ahhh, this fix has done it. Now our userland seems to work too ;-) Thank's again for the good work! Best regards Stefan. ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/ ^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: CPCI-405 port (PPC405GP) [not found] <EFEAIMDCOOOHIEPHDNFJEEENDCAA.stefan.roese@esd-electronics.com> 2001-09-10 17:13 ` CPCI-405 port (PPC405GP) Dan Malek @ 2001-09-18 18:57 ` Tom Rini 2001-09-19 13:46 ` Stefan Roese 1 sibling, 1 reply; 42+ messages in thread From: Tom Rini @ 2001-09-18 18:57 UTC (permalink / raw) To: Stefan Roese; +Cc: Linuxppc-Embedded, Linuxppc-Commit On Mon, Sep 10, 2001 at 06:36:47PM +0200, Stefan Roese wrote: > Please find attached a port to our CPCI-405 board (a CompactPCI board based > on the IBM PPC405GP). This patch is based upon "Linux-2.4.10-pre6" from the > linuxppc_2_4_devel tree a few hour ago. This looks good, but I've got some minor questions. First, does arch/ppc/kernel/cpci405.c need all of those includes? (And is bios_fixup an init time only function?) Also do we actually need include/asm-ppc/cpci405.h? All it does is include ppcboot.h. So I'm guessing this board only boots w/ PPCBOOT, which should include it's own version of this file. So is this really needed? -- Tom Rini (TR1265) http://gate.crashing.org/~trini/ ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/ ^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: CPCI-405 port (PPC405GP) 2001-09-18 18:57 ` Tom Rini @ 2001-09-19 13:46 ` Stefan Roese 2001-09-19 14:17 ` Tom Rini 2001-09-19 14:32 ` Stefan Roese 0 siblings, 2 replies; 42+ messages in thread From: Stefan Roese @ 2001-09-19 13:46 UTC (permalink / raw) To: Linuxppc-Embedded, Linuxppc-Commit [-- Attachment #1: Type: text/plain, Size: 1267 bytes --] > This looks good, but I've got some minor questions. First, does > arch/ppc/kernel/cpci405.c need all of those includes? No, you are right! This would apply to walnut.c also - since I gererated cpci405.c out of this file. > (And is bios_fixup an init time only function?) After thinking about this function again, I removed it. On our board PPCBoot is responsible for pci plug-and-play configuration. If there is still a problem in this pci setup, we will change PPCBoot instead! I also tried to make the "ppc405_map_irq" function more generic (since the number of slots isn't identical for all 405gp boards). Any comments? > Also do we actually need > include/asm-ppc/cpci405.h? All it does is include ppcboot.h. So I'm > guessing this board only boots w/ PPCBOOT, which should include it's own > version of this file. So is this really needed? You are right again. At this moment this file isn't needed at all. I thought that I would need this file perhaps later, when some other boardspecific defines have to be included (like in tqm8xx.h). Please let me know if you would still suggest to remove this file. Please find attached the new (hopefully acceptable) patch against the linuxppc_2_4_devel tree (2.4.10-pre12) from today. Best regards, Stefan [-- Attachment #2: linux_cpci405.diff --] [-- Type: application/octet-stream, Size: 26831 bytes --] diff -N -u -r --exclude=SCCS --exclude=BitKeeper --exclude=defconfig /usr/src/linuxppc_2_4_devel/arch/ppc/config.in linuxppc_2_4_devel/arch/ppc/config.in --- /usr/src/linuxppc_2_4_devel/arch/ppc/config.in Wed Sep 19 09:23:00 2001 +++ linuxppc_2_4_devel/arch/ppc/config.in Wed Sep 19 12:26:26 2001 @@ -71,6 +71,7 @@ Redwood-4 CONFIG_REDWOOD_4 \ Tivo CONFIG_TIVO \ EP405 CONFIG_EP405 \ + CPCI405 CONFIG_CPCI405 \ Walnut CONFIG_WALNUT" Walnut fi @@ -203,6 +204,9 @@ if [ "$CONFIG_EP405" = "y" ]; then define_bool CONFIG_405GP y define_bool CONFIG_EMBEDDEDBOOT y + fi + if [ "$CONFIG_CPCI405" = "y" ]; then + define_bool CONFIG_405GP y fi if [ "$CONFIG_OAK" = "y" -o "$CONFIG_TIVO" = "y" ]; then define_bool CONFIG_403GCX y diff -N -u -r --exclude=SCCS --exclude=BitKeeper --exclude=defconfig /usr/src/linuxppc_2_4_devel/arch/ppc/configs/cpci405_defconfig linuxppc_2_4_devel/arch/ppc/configs/cpci405_defconfig --- /usr/src/linuxppc_2_4_devel/arch/ppc/configs/cpci405_defconfig Thu Jan 1 01:00:00 1970 +++ linuxppc_2_4_devel/arch/ppc/configs/cpci405_defconfig Wed Sep 19 14:58:11 2001 @@ -0,0 +1,479 @@ +# +# Automatically generated by make menuconfig: don't edit +# +# CONFIG_UID16 is not set +# CONFIG_RWSEM_GENERIC_SPINLOCK is not set +CONFIG_RWSEM_XCHGADD_ALGORITHM=y + +# +# Code maturity level options +# +CONFIG_EXPERIMENTAL=y + +# +# Loadable module support +# +CONFIG_MODULES=y +# CONFIG_MODVERSIONS is not set +CONFIG_KMOD=y + +# +# Platform support +# +CONFIG_PPC=y +CONFIG_PPC32=y +# CONFIG_6xx is not set +CONFIG_4xx=y +# CONFIG_POWER3 is not set +# CONFIG_POWER4 is not set +# CONFIG_8xx is not set +# CONFIG_PPC_ISERIES is not set +# CONFIG_OAK is not set +# CONFIG_REDWOOD_4 is not set +# CONFIG_TIVO is not set +# CONFIG_EP405 is not set +CONFIG_CPCI405=y +# CONFIG_WALNUT is not set +CONFIG_PPC601_SYNC_FIX=y +# CONFIG_ALL_PPC is not set +# CONFIG_SMP is not set +# CONFIG_MATH_EMULATION is not set +CONFIG_405GP=y +# CONFIG_405_DMA is not set +CONFIG_ATOMIC_SYNC_FIX=y +CONFIG_IBM405_ERR51=y +CONFIG_NOT_COHERENT_CACHE=y + +# +# General setup +# +# CONFIG_HIGHMEM is not set +# CONFIG_ISA is not set +# CONFIG_EISA is not set +# CONFIG_SBUS is not set +# CONFIG_MCA is not set +CONFIG_PCI=y +CONFIG_NET=y +CONFIG_SYSCTL=y +CONFIG_SYSVIPC=y +# CONFIG_BSD_PROCESS_ACCT is not set +CONFIG_KCORE_ELF=y +CONFIG_BINFMT_ELF=y +CONFIG_KERNEL_ELF=y +# CONFIG_BINFMT_MISC is not set +# CONFIG_PCI_NAMES is not set +# CONFIG_HOTPLUG is not set +# CONFIG_PCMCIA is not set + +# +# Parallel port support +# +# CONFIG_PARPORT is not set +# CONFIG_PPC_RTC is not set +# CONFIG_CMDLINE_BOOL is not set + +# +# Memory Technology Devices (MTD) +# +# CONFIG_MTD is not set + +# +# Plug and Play configuration +# +# CONFIG_PNP is not set +# CONFIG_ISAPNP is not set +# CONFIG_PNPBIOS is not set + +# +# Block devices +# +# CONFIG_BLK_DEV_FD is not set +# CONFIG_VIODASD 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=y +CONFIG_BLK_DEV_RAM_SIZE=4096 +CONFIG_BLK_DEV_INITRD=y + +# +# 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 is not set +# CONFIG_NETLINK is not set +# CONFIG_NETFILTER 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=y +# CONFIG_NET_IPIP is not set +# CONFIG_NET_IPGRE is not set +# CONFIG_IP_MROUTE is not set +# CONFIG_INET_ECN is not set +CONFIG_SYN_COOKIES=y +# CONFIG_IPV6 is not set +# CONFIG_KHTTPD is not set +# CONFIG_ATM 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 + +# +# ATA/IDE/MFM/RLL support +# +CONFIG_IDE=y + +# +# IDE, ATA and ATAPI Block devices +# +CONFIG_BLK_DEV_IDE=y +# CONFIG_BLK_DEV_HD_IDE is not set +# CONFIG_BLK_DEV_HD is not set +CONFIG_BLK_DEV_IDEDISK=y +# CONFIG_IDEDISK_MULTI_MODE is not set +# CONFIG_BLK_DEV_IDEDISK_VENDOR is not set +# CONFIG_BLK_DEV_IDEDISK_FUJITSU is not set +# CONFIG_BLK_DEV_IDEDISK_IBM is not set +# CONFIG_BLK_DEV_IDEDISK_MAXTOR is not set +# CONFIG_BLK_DEV_IDEDISK_QUANTUM is not set +# CONFIG_BLK_DEV_IDEDISK_SEAGATE is not set +# 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_IDECD is not set +# CONFIG_BLK_DEV_IDETAPE is not set +# CONFIG_BLK_DEV_IDEFLOPPY is not set +# CONFIG_BLK_DEV_IDESCSI is not set +# CONFIG_BLK_DEV_CMD640 is not set +# CONFIG_BLK_DEV_CMD640_ENHANCED is not set +# CONFIG_BLK_DEV_ISAPNP is not set +# CONFIG_BLK_DEV_RZ1000 is not set +# CONFIG_BLK_DEV_IDEPCI is not set +# CONFIG_BLK_DEV_SL82C105 is not set +CONFIG_BLK_DEV_CPCI405_IDE=y +# CONFIG_IDE_CHIPSETS is not set +# CONFIG_IDEDMA_AUTO is not set +# CONFIG_DMA_NONPCI is not set +# CONFIG_BLK_DEV_IDE_MODES is not set +# CONFIG_BLK_DEV_ATARAID is not set +# CONFIG_BLK_DEV_ATARAID_PDC is not set +# CONFIG_BLK_DEV_ATARAID_HPT is not set + +# +# SCSI support +# +# CONFIG_SCSI is not set + +# +# IEEE 1394 (FireWire) support (EXPERIMENTAL) +# +# CONFIG_IEEE1394 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 + +# +# Ethernet (10 or 100Mbit) +# +CONFIG_NET_ETHERNET=y +# CONFIG_MACE is not set +# CONFIG_BMAC is not set +# CONFIG_GMAC is not set +# CONFIG_NCR885E is not set +# CONFIG_OAKNET is not set +CONFIG_PPC405_ENET=y +CONFIG_PPC405_ENET_PHY_ADDR=1 +# CONFIG_PPC405_ENET_ERROR_MSG is not set +CONFIG_PPC405_ENET_RX_BUFF=64 +CONFIG_PPC405_ENET_TX_BUFF=8 +CONFIG_PPC405_ENET_GAP=8 +# CONFIG_SUNLANCE is not set +# CONFIG_HAPPYMEAL is not set +# CONFIG_SUNBMAC is not set +# CONFIG_SUNQE is not set +# CONFIG_SUNLANCE 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 is not set +# 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 + +# +# 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 + +# +# Console drivers +# + +# +# Frame-buffer support +# +# CONFIG_FB is not set + +# +# Input core support +# +# CONFIG_INPUT is not set +# CONFIG_INPUT_KEYBDEV is not set +# CONFIG_INPUT_MOUSEDEV is not set +# CONFIG_INPUT_JOYDEV is not set +# CONFIG_INPUT_EVDEV is not set + +# +# Macintosh device drivers +# + +# +# Character devices +# +# CONFIG_VT is not set +CONFIG_SERIAL=y +CONFIG_SERIAL_CONSOLE=y +# CONFIG_SERIAL_EXTENDED is not set +# CONFIG_SERIAL_NONSTANDARD is not set +# CONFIG_UNIX98_PTYS is not set +# CONFIG_VIOCONS is not set + +# +# I2C support +# +CONFIG_I2C=y +# CONFIG_I2C_ALGOBIT is not set +# CONFIG_I2C_ALGOPCF is not set +# CONFIG_I2C_CHARDEV is not set + +# +# Mice +# +# CONFIG_BUSMOUSE is not set +# CONFIG_MOUSE is not set + +# +# Joysticks +# +# CONFIG_INPUT_GAMEPORT is not set +# CONFIG_QIC02_TAPE is not set +# CONFIG_VIOTAPE is not set + +# +# Watchdog Cards +# +# CONFIG_WATCHDOG is not set +# CONFIG_INTEL_RNG is not set +# CONFIG_NVRAM is not set +# CONFIG_RTC is not set +# CONFIG_DTLK is not set +# CONFIG_R3964 is not set +# CONFIG_APPLICOM is not set +# CONFIG_SONYPI is not set + +# +# Ftape, the floppy tape device driver +# +# CONFIG_FTAPE is not set +# CONFIG_AGP is not set +# CONFIG_DRM is not set + +# +# Multimedia devices +# +# CONFIG_VIDEO_DEV is not set + +# +# File systems +# +# CONFIG_QUOTA is not set +# CONFIG_AUTOFS_FS is not set +# CONFIG_AUTOFS4_FS is not set +# CONFIG_REISERFS_FS is not set +# CONFIG_REISERFS_CHECK 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_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 is not set +# CONFIG_CRAMFS is not set +CONFIG_TMPFS=y +# CONFIG_RAMFS is not set +# CONFIG_ISO9660_FS is not set +# CONFIG_JOLIET 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 is not set +# 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_NFS_FS=y +# CONFIG_NFS_V3 is not set +CONFIG_ROOT_NFS=y +# CONFIG_NFSD is not set +# CONFIG_NFSD_V3 is not set +CONFIG_SUNRPC=y +CONFIG_LOCKD=y +# CONFIG_SMB_FS 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 + +# +# Partition Types +# +# CONFIG_PARTITION_ADVANCED is not set +CONFIG_MSDOS_PARTITION=y +# CONFIG_SMB_NLS is not set +# CONFIG_NLS is not set + +# +# Sound +# +# CONFIG_SOUND is not set + +# +# USB support +# +# CONFIG_USB is not set + +# +# Bluetooth support +# +# CONFIG_BLUEZ is not set + +# +# Kernel hacking +# +# CONFIG_MAGIC_SYSRQ is not set +# CONFIG_KGDB is not set +# CONFIG_XMON is not set +# CONFIG_BDI_SWITCH is not set diff -N -u -r --exclude=SCCS --exclude=BitKeeper --exclude=defconfig /usr/src/linuxppc_2_4_devel/arch/ppc/kernel/Makefile linuxppc_2_4_devel/arch/ppc/kernel/Makefile --- /usr/src/linuxppc_2_4_devel/arch/ppc/kernel/Makefile Mon Sep 17 08:56:49 2001 +++ linuxppc_2_4_devel/arch/ppc/kernel/Makefile Wed Sep 19 10:51:52 2001 @@ -45,6 +45,7 @@ obj-$(CONFIG_405_DMA) += ppc405_dma.o obj-$(CONFIG_WALNUT) += walnut.o obj-$(CONFIG_EP405) += ep405.o +obj-$(CONFIG_CPCI405) += cpci405.o ifeq ($(CONFIG_405GP),y) obj-$(CONFIG_PCI) += ppc405_pci.o indirect_pci.o pci_auto.o obj-$(CONFIG_PPC_RTC) += todc_time.o diff -N -u -r --exclude=SCCS --exclude=BitKeeper --exclude=defconfig /usr/src/linuxppc_2_4_devel/arch/ppc/kernel/cpci405.c linuxppc_2_4_devel/arch/ppc/kernel/cpci405.c --- /usr/src/linuxppc_2_4_devel/arch/ppc/kernel/cpci405.c Thu Jan 1 01:00:00 1970 +++ linuxppc_2_4_devel/arch/ppc/kernel/cpci405.c Wed Sep 19 13:51:50 2001 @@ -0,0 +1,51 @@ +/* + * arch/ppc/kernel/cpci405.c + * + * Board setup routines for the esd CPCI-405 cPCI Board. + * + * Author: Stefan Roese + * stefan.roese@esd-electronics.com + * + * Copyright 2001 esd electronic system design - hannover germany + * + * 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/init.h> +#include <asm/system.h> + +#include "pci.h" + + +/* + * Some IRQs unique to CPCI-405. + */ +inline int __init +ppc405_map_irq(struct pci_dev *dev, unsigned char idsel, unsigned char pin) +{ + static char pci_irq_table[][4] = + /* + * PCI IDSEL/INTPIN->INTLINE + * A B C D + */ + { + {28, 28, 28, 28}, /* IDSEL 15 - cPCI slot 8 */ + {29, 29, 29, 29}, /* IDSEL 16 - cPCI slot 7 */ + {30, 30, 30, 30}, /* IDSEL 17 - cPCI slot 6 */ + {27, 27, 27, 27}, /* IDSEL 18 - cPCI slot 5 */ + {28, 28, 28, 28}, /* IDSEL 19 - cPCI slot 4 */ + {29, 29, 29, 29}, /* IDSEL 20 - cPCI slot 3 */ + {30, 30, 30, 30}, /* IDSEL 21 - cPCI slot 2 */ + }; + const long min_idsel = 15, max_idsel = 21, irqs_per_slot = 4; + return PCI_IRQ_TABLE_LOOKUP; +}; + +void __init +board_setup_arch(void) +{ +} diff -N -u -r --exclude=SCCS --exclude=BitKeeper --exclude=defconfig /usr/src/linuxppc_2_4_devel/arch/ppc/kernel/ep405.c linuxppc_2_4_devel/arch/ppc/kernel/ep405.c --- /usr/src/linuxppc_2_4_devel/arch/ppc/kernel/ep405.c Mon Sep 17 08:56:49 2001 +++ linuxppc_2_4_devel/arch/ppc/kernel/ep405.c Wed Sep 19 13:52:57 2001 @@ -10,29 +10,35 @@ #include <linux/config.h> #include <linux/init.h> -char pci_irq_table[][4] = - /* - * PCI IDSEL/INTPIN->INTLINE - * A B C D - */ +inline int __init +ppc405_map_irq(struct pci_dev *dev, unsigned char idsel, unsigned char pin) +{ + static char pci_irq_table[][4] = + /* + * PCI IDSEL/INTPIN->INTLINE + * A B C D + */ { - {0, 0, 0, 0}, /* IDSEL 0 - unused */ - {28, 28, 28, 28}, /* IDSEL 1 - PCI slot 1 */ - {29, 29, 29, 29}, /* IDSEL 2 - PCI slot 2 */ - {30, 30, 30, 30}, /* IDSEL 3 - PCI slot 3 */ - {31, 31, 31, 31}, /* IDSEL 4 - PCI slot 4 */ - {0, 0, 0, 0}, /* IDSEL 5 - unused */ - {0, 0, 0, 0}, /* IDSEL 6 - unused */ - {0, 0, 0, 0}, /* IDSEL 7 - unused */ - {0, 0, 0, 0}, /* IDSEL 8 - unused */ - {0, 0, 0, 0}, /* IDSEL 9 - unused */ - {0, 0, 0, 0}, /* IDSEL 10 - unused */ - {0, 0, 0, 0}, /* IDSEL 11 - unused */ - {0, 0, 0, 0}, /* IDSEL 12 - unused */ - {0, 0, 0, 0}, /* IDSEL 13 - unused */ - {0, 0, 0, 0}, /* IDSEL 14 - unused */ - {0, 0, 0, 0}, /* IDSEL 15 - unused */ - }; + {0, 0, 0, 0}, /* IDSEL 0 - unused */ + {28, 28, 28, 28}, /* IDSEL 1 - PCI slot 1 */ + {29, 29, 29, 29}, /* IDSEL 2 - PCI slot 2 */ + {30, 30, 30, 30}, /* IDSEL 3 - PCI slot 3 */ + {31, 31, 31, 31}, /* IDSEL 4 - PCI slot 4 */ + {0, 0, 0, 0}, /* IDSEL 5 - unused */ + {0, 0, 0, 0}, /* IDSEL 6 - unused */ + {0, 0, 0, 0}, /* IDSEL 7 - unused */ + {0, 0, 0, 0}, /* IDSEL 8 - unused */ + {0, 0, 0, 0}, /* IDSEL 9 - unused */ + {0, 0, 0, 0}, /* IDSEL 10 - unused */ + {0, 0, 0, 0}, /* IDSEL 11 - unused */ + {0, 0, 0, 0}, /* IDSEL 12 - unused */ + {0, 0, 0, 0}, /* IDSEL 13 - unused */ + {0, 0, 0, 0}, /* IDSEL 14 - unused */ + {0, 0, 0, 0}, /* IDSEL 15 - unused */ + }; + const long min_idsel = 0, max_idsel = 15, irqs_per_slot = 4; + return PCI_IRQ_TABLE_LOOKUP; +}; void __init diff -N -u -r --exclude=SCCS --exclude=BitKeeper --exclude=defconfig /usr/src/linuxppc_2_4_devel/arch/ppc/kernel/ppc405_pci.c linuxppc_2_4_devel/arch/ppc/kernel/ppc405_pci.c --- /usr/src/linuxppc_2_4_devel/arch/ppc/kernel/ppc405_pci.c Fri Sep 14 15:43:55 2001 +++ linuxppc_2_4_devel/arch/ppc/kernel/ppc405_pci.c Wed Sep 19 11:59:18 2001 @@ -48,6 +48,7 @@ #endif extern void bios_fixup(struct pci_controller *, void *); +extern int ppc405_map_irq(struct pci_dev *dev, unsigned char idsel, unsigned char pin); void __init ppc405_pcibios_fixup_bus(struct pci_bus *bus) { @@ -144,24 +145,6 @@ res->start = 0; } } -} - -static int ppc405_map_irq(struct pci_dev *dev, unsigned char idsel, unsigned char pin) -{ - -#define IRQS_PER_SLOT 4 -#define MAX_IDSEL 15 - - int irq; - extern char pci_irq_table[][4]; - - if ((idsel <= MAX_IDSEL) && (pin <= IRQS_PER_SLOT)) { - irq = pci_irq_table[idsel][pin-1]; - } else { - irq = -1; - } - - return(irq); } void ppc4xx_find_bridges(void) diff -N -u -r --exclude=SCCS --exclude=BitKeeper --exclude=defconfig /usr/src/linuxppc_2_4_devel/arch/ppc/kernel/walnut.c linuxppc_2_4_devel/arch/ppc/kernel/walnut.c --- /usr/src/linuxppc_2_4_devel/arch/ppc/kernel/walnut.c Fri Sep 14 15:44:02 2001 +++ linuxppc_2_4_devel/arch/ppc/kernel/walnut.c Wed Sep 19 13:52:24 2001 @@ -60,12 +60,15 @@ /* Some IRQs unique to Walnut. * Used by the generic 405 PCI setup functions in ppc4xx_pci.c */ -char pci_irq_table[][4] = - /* - * PCI IDSEL/INTPIN->INTLINE - * A B C D - */ - { +inline int __init +ppc405_map_irq(struct pci_dev *dev, unsigned char idsel, unsigned char pin) +{ + static char pci_irq_table[][4] = + /* + * PCI IDSEL/INTPIN->INTLINE + * A B C D + */ + { {0, 0, 0, 0}, /* IDSEL 0 - unused */ {28, 28, 28, 28}, /* IDSEL 1 - PCI slot 1 */ {29, 29, 29, 29}, /* IDSEL 2 - PCI slot 2 */ @@ -83,6 +86,9 @@ {0, 0, 0, 0}, /* IDSEL 14 - unused */ {0, 0, 0, 0}, /* IDSEL 15 - unused */ }; + const long min_idsel = 0, max_idsel = 15, irqs_per_slot = 4; + return PCI_IRQ_TABLE_LOOKUP; +}; void __init diff -N -u -r --exclude=SCCS --exclude=BitKeeper --exclude=defconfig /usr/src/linuxppc_2_4_devel/drivers/ide/Config.in linuxppc_2_4_devel/drivers/ide/Config.in --- /usr/src/linuxppc_2_4_devel/drivers/ide/Config.in Wed Sep 19 09:23:02 2001 +++ linuxppc_2_4_devel/drivers/ide/Config.in Wed Sep 19 10:46:33 2001 @@ -121,6 +121,9 @@ if [ "$CONFIG_MAC" = "y" ]; then dep_bool ' Macintosh Quadra/Powerbook IDE interface support' CONFIG_BLK_DEV_MAC_IDE $CONFIG_MAC fi + if [ "$CONFIG_CPCI405" = "y" ]; then + dep_bool ' CPCI-405 IDE interface support' CONFIG_BLK_DEV_CPCI405_IDE $CONFIG_CPCI405 + fi if [ "$CONFIG_Q40" = "y" ]; then dep_bool ' Q40/Q60 IDE interface support' CONFIG_BLK_DEV_Q40IDE $CONFIG_Q40 fi diff -N -u -r --exclude=SCCS --exclude=BitKeeper --exclude=defconfig /usr/src/linuxppc_2_4_devel/drivers/ide/Makefile linuxppc_2_4_devel/drivers/ide/Makefile --- /usr/src/linuxppc_2_4_devel/drivers/ide/Makefile Wed Sep 19 09:23:02 2001 +++ linuxppc_2_4_devel/drivers/ide/Makefile Wed Sep 19 10:46:35 2001 @@ -33,6 +33,7 @@ ide-obj-$(CONFIG_BLK_DEV_BUDDHA) += buddha.o ide-obj-$(CONFIG_BLK_DEV_CMD640) += cmd640.o ide-obj-$(CONFIG_BLK_DEV_CMD64X) += cmd64x.o +ide-obj-$(CONFIG_BLK_DEV_CPCI405_IDE) += cpci405ide.o ide-obj-$(CONFIG_BLK_DEV_CS5530) += cs5530.o ide-obj-$(CONFIG_BLK_DEV_CY82C693) += cy82c693.o ide-obj-$(CONFIG_BLK_DEV_DTC2278) += dtc2278.o diff -N -u -r --exclude=SCCS --exclude=BitKeeper --exclude=defconfig /usr/src/linuxppc_2_4_devel/drivers/ide/cpci405ide.c linuxppc_2_4_devel/drivers/ide/cpci405ide.c --- /usr/src/linuxppc_2_4_devel/drivers/ide/cpci405ide.c Thu Jan 1 01:00:00 1970 +++ linuxppc_2_4_devel/drivers/ide/cpci405ide.c Wed Sep 19 14:02:33 2001 @@ -0,0 +1,92 @@ +/* + * linux/drivers/ide/cpci405.c -- CPCI405 IDE Driver + * + * Copyright (C) 2001 by Stefan Roese + * + * This driver was written based on information obtained from the MacOS IDE + * driver binary by Mikael Forselius + * + * 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. + */ + +#include <linux/types.h> +#include <linux/mm.h> +#include <linux/interrupt.h> +#include <linux/blkdev.h> +#include <linux/hdreg.h> +#include <linux/delay.h> +#include <linux/ide.h> +#include <linux/init.h> + + +/* + * Base of the IDE interface + */ + +#define CPCI405_HD_BASE 0xf0100000 + +/* + * Offsets from the above base (scaling 4) + */ + +#define CPCI405_HD_DATA 0x00 +#define CPCI405_HD_ERROR 0x01 /* see err-bits */ +#define CPCI405_HD_NSECTOR 0x02 /* nr of sectors to read/write */ +#define CPCI405_HD_SECTOR 0x03 /* starting sector */ +#define CPCI405_HD_LCYL 0x04 /* starting cylinder */ +#define CPCI405_HD_HCYL 0x05 /* high byte of starting cyl */ +#define CPCI405_HD_SELECT 0x06 /* 101dhhhh , d=drive, hhhh=head */ +#define CPCI405_HD_STATUS 0x07 /* see status-bits */ +#define CPCI405_HD_CONTROL 0x0e /* control/altstatus */ + +#define CPCI405_IRQ_IDE 0x1f + +static int cpci405ide_offsets[IDE_NR_PORTS] __initdata = { + CPCI405_HD_DATA, CPCI405_HD_ERROR, CPCI405_HD_NSECTOR, CPCI405_HD_SECTOR, + CPCI405_HD_LCYL, CPCI405_HD_HCYL, CPCI405_HD_SELECT, CPCI405_HD_STATUS, + CPCI405_HD_CONTROL +}; + +static void *cpci405_ide_base_mapped; + + +static int cpci405ide_check_region(ide_ioreg_t start, unsigned int len) +{ + if (((unsigned long)start >= (unsigned long)cpci405_ide_base_mapped) && + (((unsigned long)start+len) <= (unsigned long)cpci405_ide_base_mapped+0x200)) + return 0; + else + return -1; +} + + +/* + * Probe for a CPCI405 IDE interface + */ + +void __init cpci405ide_init(void) +{ + hw_regs_t hw; + int index = -1; + + ppc_ide_md.ide_check_region = cpci405ide_check_region; + +#if 0 + printk("cpci405ide: physical address=%08lx\n", + (unsigned long)CPCI405_HD_BASE); /* test-only */ +#endif + cpci405_ide_base_mapped = + ioremap((unsigned long) CPCI405_HD_BASE, 0x200) - _IO_BASE; +#if 0 + printk("cpci405ide: mapped address=%08lx\n", + (unsigned long)cpci405_ide_base_mapped); /* test-only */ +#endif + ide_setup_ports(&hw, (ide_ioreg_t)cpci405_ide_base_mapped, + cpci405ide_offsets, 0, 0, NULL, CPCI405_IRQ_IDE); + index = ide_register_hw(&hw, NULL); + if (index != -1) + printk("ide%d: CPCI405 IDE interface\n", index); + +} diff -N -u -r --exclude=SCCS --exclude=BitKeeper --exclude=defconfig /usr/src/linuxppc_2_4_devel/drivers/ide/ide.c linuxppc_2_4_devel/drivers/ide/ide.c --- /usr/src/linuxppc_2_4_devel/drivers/ide/ide.c Wed Sep 19 09:23:02 2001 +++ linuxppc_2_4_devel/drivers/ide/ide.c Wed Sep 19 10:46:38 2001 @@ -3395,6 +3395,12 @@ macide_init(); } #endif /* CONFIG_BLK_DEV_MAC_IDE */ +#ifdef CONFIG_BLK_DEV_CPCI405_IDE + { + extern void cpci405ide_init(void); + cpci405ide_init(); + } +#endif /* CONFIG_BLK_DEV_CPCI405_IDE */ #ifdef CONFIG_BLK_DEV_Q40IDE { extern void q40ide_init(void); diff -N -u -r --exclude=SCCS --exclude=BitKeeper --exclude=defconfig /usr/src/linuxppc_2_4_devel/include/asm-ppc/cpci405.h linuxppc_2_4_devel/include/asm-ppc/cpci405.h --- /usr/src/linuxppc_2_4_devel/include/asm-ppc/cpci405.h Thu Jan 1 01:00:00 1970 +++ linuxppc_2_4_devel/include/asm-ppc/cpci405.h Wed Sep 19 14:09:43 2001 @@ -0,0 +1,17 @@ +/* + * BK Id: %F% %I% %G% %U% %#% + */ +/* + * CPCI-405 board specific definitions + * + * Copyright (c) 2001 Stefan Roese (stefan.roese@esd-electronics.com) + */ + +#ifndef __CPCI405_H +#define __CPCI405_H + +#include <linux/config.h> + +#include <asm/ppcboot.h> + +#endif /* __CPCI405_H */ diff -N -u -r --exclude=SCCS --exclude=BitKeeper --exclude=defconfig /usr/src/linuxppc_2_4_devel/include/asm-ppc/ppc4xx.h linuxppc_2_4_devel/include/asm-ppc/ppc4xx.h --- /usr/src/linuxppc_2_4_devel/include/asm-ppc/ppc4xx.h Mon Sep 17 08:56:49 2001 +++ linuxppc_2_4_devel/include/asm-ppc/ppc4xx.h Wed Sep 19 14:09:43 2001 @@ -30,6 +30,10 @@ #include <asm/ep405.h> #endif +#if defined(CONFIG_CPCI405) +#include <asm/cpci405.h> +#endif + /* IO_BASE is for PCI I/O. * ISA not supported, just here to resolve copilation. */ diff -N -u -r --exclude=SCCS --exclude=BitKeeper --exclude=defconfig /usr/src/linuxppc_2_4_devel/include/asm-ppc/ppcboot.h linuxppc_2_4_devel/include/asm-ppc/ppcboot.h --- /usr/src/linuxppc_2_4_devel/include/asm-ppc/ppcboot.h Wed Sep 19 09:23:04 2001 +++ linuxppc_2_4_devel/include/asm-ppc/ppcboot.h Wed Sep 19 14:07:18 2001 @@ -69,11 +69,13 @@ unsigned long bi_vco; /* VCO Out from PLL, in MHz */ #endif unsigned long bi_baudrate; /* Console Baudrate */ -#if defined(CONFIG_PPC405GP) +#if defined(CONFIG_405GP) || defined(CONFIG_405CR) unsigned char bi_s_version[4]; /* Version of this structure */ unsigned char bi_r_version[32]; /* Version of the ROM (IBM) */ unsigned int bi_procfreq; /* CPU (Internal) Freq, in Hz */ unsigned int bi_plb_busfreq; /* PLB Bus speed, in Hz */ +#endif +#if defined(CONFIG_405GP) unsigned int bi_pci_busfreq; /* PCI Bus speed, in Hz */ unsigned char bi_pci_enetaddr[6]; /* PCI Ethernet MAC address */ #endif ^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: CPCI-405 port (PPC405GP) 2001-09-19 13:46 ` Stefan Roese @ 2001-09-19 14:17 ` Tom Rini 2001-09-19 15:55 ` AW: " Stefan Roese 2001-09-19 18:10 ` Dan Malek 2001-09-19 14:32 ` Stefan Roese 1 sibling, 2 replies; 42+ messages in thread From: Tom Rini @ 2001-09-19 14:17 UTC (permalink / raw) To: Stefan Roese; +Cc: Linuxppc-Embedded, Linuxppc-Commit, dan On Wed, Sep 19, 2001 at 03:46:37PM +0200, Stefan Roese wrote: > I also tried to make the "ppc405_map_irq" function more generic (since the > number of slots isn't identical for all 405gp boards). Any comments? Sounds like a good idea. Also, doing inline ... __init is rather silly. How's the idea sound Dan? > > Also do we actually need > > include/asm-ppc/cpci405.h? All it does is include ppcboot.h. So I'm > > guessing this board only boots w/ PPCBOOT, which should include it's own > > version of this file. So is this really needed? > > You are right again. At this moment this file isn't needed at all. I thought > that I would need this file perhaps later, when some other boardspecific > defines have to be included (like in tqm8xx.h). Please let me know if you > would still suggest to remove this file. Well, do you forsee the need to put in board-specific defines? -- Tom Rini (TR1265) http://gate.crashing.org/~trini/ ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/ ^ permalink raw reply [flat|nested] 42+ messages in thread
* AW: CPCI-405 port (PPC405GP) 2001-09-19 14:17 ` Tom Rini @ 2001-09-19 15:55 ` Stefan Roese 2001-09-19 18:10 ` Dan Malek 1 sibling, 0 replies; 42+ messages in thread From: Stefan Roese @ 2001-09-19 15:55 UTC (permalink / raw) To: Linuxppc-Embedded, Linuxppc-Commit [-- Attachment #1: Type: text/plain, Size: 122 bytes --] > Well, do you forsee the need to put in board-specific defines? OK, ok! Here you go (now without cpci405.h) ;-) Stefan. [-- Attachment #2: linux_cpci405.diff --] [-- Type: application/octet-stream, Size: 26225 bytes --] diff -N -u -r --exclude=SCCS --exclude=BitKeeper --exclude=defconfig /usr/src/linuxppc_2_4_devel/arch/ppc/config.in linuxppc_2_4_devel/arch/ppc/config.in --- /usr/src/linuxppc_2_4_devel/arch/ppc/config.in Wed Sep 19 15:34:42 2001 +++ linuxppc_2_4_devel/arch/ppc/config.in Wed Sep 19 15:42:40 2001 @@ -71,6 +71,7 @@ Redwood-4 CONFIG_REDWOOD_4 \ Tivo CONFIG_TIVO \ EP405 CONFIG_EP405 \ + CPCI405 CONFIG_CPCI405 \ Walnut CONFIG_WALNUT" Walnut fi @@ -203,6 +204,9 @@ if [ "$CONFIG_EP405" = "y" ]; then define_bool CONFIG_405GP y define_bool CONFIG_EMBEDDEDBOOT y + fi + if [ "$CONFIG_CPCI405" = "y" ]; then + define_bool CONFIG_405GP y fi if [ "$CONFIG_OAK" = "y" -o "$CONFIG_TIVO" = "y" ]; then define_bool CONFIG_403GCX y diff -N -u -r --exclude=SCCS --exclude=BitKeeper --exclude=defconfig /usr/src/linuxppc_2_4_devel/arch/ppc/configs/cpci405_defconfig linuxppc_2_4_devel/arch/ppc/configs/cpci405_defconfig --- /usr/src/linuxppc_2_4_devel/arch/ppc/configs/cpci405_defconfig Thu Jan 1 01:00:00 1970 +++ linuxppc_2_4_devel/arch/ppc/configs/cpci405_defconfig Wed Sep 19 15:42:41 2001 @@ -0,0 +1,479 @@ +# +# Automatically generated by make menuconfig: don't edit +# +# CONFIG_UID16 is not set +# CONFIG_RWSEM_GENERIC_SPINLOCK is not set +CONFIG_RWSEM_XCHGADD_ALGORITHM=y + +# +# Code maturity level options +# +CONFIG_EXPERIMENTAL=y + +# +# Loadable module support +# +CONFIG_MODULES=y +# CONFIG_MODVERSIONS is not set +CONFIG_KMOD=y + +# +# Platform support +# +CONFIG_PPC=y +CONFIG_PPC32=y +# CONFIG_6xx is not set +CONFIG_4xx=y +# CONFIG_POWER3 is not set +# CONFIG_POWER4 is not set +# CONFIG_8xx is not set +# CONFIG_PPC_ISERIES is not set +# CONFIG_OAK is not set +# CONFIG_REDWOOD_4 is not set +# CONFIG_TIVO is not set +# CONFIG_EP405 is not set +CONFIG_CPCI405=y +# CONFIG_WALNUT is not set +CONFIG_PPC601_SYNC_FIX=y +# CONFIG_ALL_PPC is not set +# CONFIG_SMP is not set +# CONFIG_MATH_EMULATION is not set +CONFIG_405GP=y +# CONFIG_405_DMA is not set +CONFIG_ATOMIC_SYNC_FIX=y +CONFIG_IBM405_ERR51=y +CONFIG_NOT_COHERENT_CACHE=y + +# +# General setup +# +# CONFIG_HIGHMEM is not set +# CONFIG_ISA is not set +# CONFIG_EISA is not set +# CONFIG_SBUS is not set +# CONFIG_MCA is not set +CONFIG_PCI=y +CONFIG_NET=y +CONFIG_SYSCTL=y +CONFIG_SYSVIPC=y +# CONFIG_BSD_PROCESS_ACCT is not set +CONFIG_KCORE_ELF=y +CONFIG_BINFMT_ELF=y +CONFIG_KERNEL_ELF=y +# CONFIG_BINFMT_MISC is not set +# CONFIG_PCI_NAMES is not set +# CONFIG_HOTPLUG is not set +# CONFIG_PCMCIA is not set + +# +# Parallel port support +# +# CONFIG_PARPORT is not set +# CONFIG_PPC_RTC is not set +# CONFIG_CMDLINE_BOOL is not set + +# +# Memory Technology Devices (MTD) +# +# CONFIG_MTD is not set + +# +# Plug and Play configuration +# +# CONFIG_PNP is not set +# CONFIG_ISAPNP is not set +# CONFIG_PNPBIOS is not set + +# +# Block devices +# +# CONFIG_BLK_DEV_FD is not set +# CONFIG_VIODASD 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=y +CONFIG_BLK_DEV_RAM_SIZE=4096 +CONFIG_BLK_DEV_INITRD=y + +# +# 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 is not set +# CONFIG_NETLINK is not set +# CONFIG_NETFILTER 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=y +# CONFIG_NET_IPIP is not set +# CONFIG_NET_IPGRE is not set +# CONFIG_IP_MROUTE is not set +# CONFIG_INET_ECN is not set +CONFIG_SYN_COOKIES=y +# CONFIG_IPV6 is not set +# CONFIG_KHTTPD is not set +# CONFIG_ATM 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 + +# +# ATA/IDE/MFM/RLL support +# +CONFIG_IDE=y + +# +# IDE, ATA and ATAPI Block devices +# +CONFIG_BLK_DEV_IDE=y +# CONFIG_BLK_DEV_HD_IDE is not set +# CONFIG_BLK_DEV_HD is not set +CONFIG_BLK_DEV_IDEDISK=y +# CONFIG_IDEDISK_MULTI_MODE is not set +# CONFIG_BLK_DEV_IDEDISK_VENDOR is not set +# CONFIG_BLK_DEV_IDEDISK_FUJITSU is not set +# CONFIG_BLK_DEV_IDEDISK_IBM is not set +# CONFIG_BLK_DEV_IDEDISK_MAXTOR is not set +# CONFIG_BLK_DEV_IDEDISK_QUANTUM is not set +# CONFIG_BLK_DEV_IDEDISK_SEAGATE is not set +# 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_IDECD is not set +# CONFIG_BLK_DEV_IDETAPE is not set +# CONFIG_BLK_DEV_IDEFLOPPY is not set +# CONFIG_BLK_DEV_IDESCSI is not set +# CONFIG_BLK_DEV_CMD640 is not set +# CONFIG_BLK_DEV_CMD640_ENHANCED is not set +# CONFIG_BLK_DEV_ISAPNP is not set +# CONFIG_BLK_DEV_RZ1000 is not set +# CONFIG_BLK_DEV_IDEPCI is not set +# CONFIG_BLK_DEV_SL82C105 is not set +CONFIG_BLK_DEV_CPCI405_IDE=y +# CONFIG_IDE_CHIPSETS is not set +# CONFIG_IDEDMA_AUTO is not set +# CONFIG_DMA_NONPCI is not set +# CONFIG_BLK_DEV_IDE_MODES is not set +# CONFIG_BLK_DEV_ATARAID is not set +# CONFIG_BLK_DEV_ATARAID_PDC is not set +# CONFIG_BLK_DEV_ATARAID_HPT is not set + +# +# SCSI support +# +# CONFIG_SCSI is not set + +# +# IEEE 1394 (FireWire) support (EXPERIMENTAL) +# +# CONFIG_IEEE1394 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 + +# +# Ethernet (10 or 100Mbit) +# +CONFIG_NET_ETHERNET=y +# CONFIG_MACE is not set +# CONFIG_BMAC is not set +# CONFIG_GMAC is not set +# CONFIG_NCR885E is not set +# CONFIG_OAKNET is not set +CONFIG_PPC405_ENET=y +CONFIG_PPC405_ENET_PHY_ADDR=1 +# CONFIG_PPC405_ENET_ERROR_MSG is not set +CONFIG_PPC405_ENET_RX_BUFF=64 +CONFIG_PPC405_ENET_TX_BUFF=8 +CONFIG_PPC405_ENET_GAP=8 +# CONFIG_SUNLANCE is not set +# CONFIG_HAPPYMEAL is not set +# CONFIG_SUNBMAC is not set +# CONFIG_SUNQE is not set +# CONFIG_SUNLANCE 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 is not set +# 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 + +# +# 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 + +# +# Console drivers +# + +# +# Frame-buffer support +# +# CONFIG_FB is not set + +# +# Input core support +# +# CONFIG_INPUT is not set +# CONFIG_INPUT_KEYBDEV is not set +# CONFIG_INPUT_MOUSEDEV is not set +# CONFIG_INPUT_JOYDEV is not set +# CONFIG_INPUT_EVDEV is not set + +# +# Macintosh device drivers +# + +# +# Character devices +# +# CONFIG_VT is not set +CONFIG_SERIAL=y +CONFIG_SERIAL_CONSOLE=y +# CONFIG_SERIAL_EXTENDED is not set +# CONFIG_SERIAL_NONSTANDARD is not set +# CONFIG_UNIX98_PTYS is not set +# CONFIG_VIOCONS is not set + +# +# I2C support +# +CONFIG_I2C=y +# CONFIG_I2C_ALGOBIT is not set +# CONFIG_I2C_ALGOPCF is not set +# CONFIG_I2C_CHARDEV is not set + +# +# Mice +# +# CONFIG_BUSMOUSE is not set +# CONFIG_MOUSE is not set + +# +# Joysticks +# +# CONFIG_INPUT_GAMEPORT is not set +# CONFIG_QIC02_TAPE is not set +# CONFIG_VIOTAPE is not set + +# +# Watchdog Cards +# +# CONFIG_WATCHDOG is not set +# CONFIG_INTEL_RNG is not set +# CONFIG_NVRAM is not set +# CONFIG_RTC is not set +# CONFIG_DTLK is not set +# CONFIG_R3964 is not set +# CONFIG_APPLICOM is not set +# CONFIG_SONYPI is not set + +# +# Ftape, the floppy tape device driver +# +# CONFIG_FTAPE is not set +# CONFIG_AGP is not set +# CONFIG_DRM is not set + +# +# Multimedia devices +# +# CONFIG_VIDEO_DEV is not set + +# +# File systems +# +# CONFIG_QUOTA is not set +# CONFIG_AUTOFS_FS is not set +# CONFIG_AUTOFS4_FS is not set +# CONFIG_REISERFS_FS is not set +# CONFIG_REISERFS_CHECK 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_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 is not set +# CONFIG_CRAMFS is not set +CONFIG_TMPFS=y +# CONFIG_RAMFS is not set +# CONFIG_ISO9660_FS is not set +# CONFIG_JOLIET 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 is not set +# 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_NFS_FS=y +# CONFIG_NFS_V3 is not set +CONFIG_ROOT_NFS=y +# CONFIG_NFSD is not set +# CONFIG_NFSD_V3 is not set +CONFIG_SUNRPC=y +CONFIG_LOCKD=y +# CONFIG_SMB_FS 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 + +# +# Partition Types +# +# CONFIG_PARTITION_ADVANCED is not set +CONFIG_MSDOS_PARTITION=y +# CONFIG_SMB_NLS is not set +# CONFIG_NLS is not set + +# +# Sound +# +# CONFIG_SOUND is not set + +# +# USB support +# +# CONFIG_USB is not set + +# +# Bluetooth support +# +# CONFIG_BLUEZ is not set + +# +# Kernel hacking +# +# CONFIG_MAGIC_SYSRQ is not set +# CONFIG_KGDB is not set +# CONFIG_XMON is not set +# CONFIG_BDI_SWITCH is not set diff -N -u -r --exclude=SCCS --exclude=BitKeeper --exclude=defconfig /usr/src/linuxppc_2_4_devel/arch/ppc/kernel/Makefile linuxppc_2_4_devel/arch/ppc/kernel/Makefile --- /usr/src/linuxppc_2_4_devel/arch/ppc/kernel/Makefile Wed Sep 19 15:34:58 2001 +++ linuxppc_2_4_devel/arch/ppc/kernel/Makefile Wed Sep 19 15:42:41 2001 @@ -45,6 +45,7 @@ obj-$(CONFIG_405_DMA) += ppc405_dma.o obj-$(CONFIG_WALNUT) += walnut.o obj-$(CONFIG_EP405) += ep405.o +obj-$(CONFIG_CPCI405) += cpci405.o ifeq ($(CONFIG_405GP),y) obj-$(CONFIG_PCI) += ppc405_pci.o indirect_pci.o pci_auto.o obj-$(CONFIG_PPC_RTC) += todc_time.o diff -N -u -r --exclude=SCCS --exclude=BitKeeper --exclude=defconfig /usr/src/linuxppc_2_4_devel/arch/ppc/kernel/cpci405.c linuxppc_2_4_devel/arch/ppc/kernel/cpci405.c --- /usr/src/linuxppc_2_4_devel/arch/ppc/kernel/cpci405.c Thu Jan 1 01:00:00 1970 +++ linuxppc_2_4_devel/arch/ppc/kernel/cpci405.c Wed Sep 19 15:42:41 2001 @@ -0,0 +1,51 @@ +/* + * arch/ppc/kernel/cpci405.c + * + * Board setup routines for the esd CPCI-405 cPCI Board. + * + * Author: Stefan Roese + * stefan.roese@esd-electronics.com + * + * Copyright 2001 esd electronic system design - hannover germany + * + * 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/init.h> +#include <asm/system.h> + +#include "pci.h" + + +/* + * Some IRQs unique to CPCI-405. + */ +inline int __init +ppc405_map_irq(struct pci_dev *dev, unsigned char idsel, unsigned char pin) +{ + static char pci_irq_table[][4] = + /* + * PCI IDSEL/INTPIN->INTLINE + * A B C D + */ + { + {28, 28, 28, 28}, /* IDSEL 15 - cPCI slot 8 */ + {29, 29, 29, 29}, /* IDSEL 16 - cPCI slot 7 */ + {30, 30, 30, 30}, /* IDSEL 17 - cPCI slot 6 */ + {27, 27, 27, 27}, /* IDSEL 18 - cPCI slot 5 */ + {28, 28, 28, 28}, /* IDSEL 19 - cPCI slot 4 */ + {29, 29, 29, 29}, /* IDSEL 20 - cPCI slot 3 */ + {30, 30, 30, 30}, /* IDSEL 21 - cPCI slot 2 */ + }; + const long min_idsel = 15, max_idsel = 21, irqs_per_slot = 4; + return PCI_IRQ_TABLE_LOOKUP; +}; + +void __init +board_setup_arch(void) +{ +} diff -N -u -r --exclude=SCCS --exclude=BitKeeper --exclude=defconfig /usr/src/linuxppc_2_4_devel/arch/ppc/kernel/ep405.c linuxppc_2_4_devel/arch/ppc/kernel/ep405.c --- /usr/src/linuxppc_2_4_devel/arch/ppc/kernel/ep405.c Wed Sep 19 15:35:05 2001 +++ linuxppc_2_4_devel/arch/ppc/kernel/ep405.c Wed Sep 19 16:23:46 2001 @@ -9,30 +9,39 @@ */ #include <linux/config.h> #include <linux/init.h> +#include <asm/system.h> -char pci_irq_table[][4] = - /* - * PCI IDSEL/INTPIN->INTLINE - * A B C D - */ +#include "pci.h" + +inline int __init +ppc405_map_irq(struct pci_dev *dev, unsigned char idsel, unsigned char pin) +{ + static char pci_irq_table[][4] = + /* + * PCI IDSEL/INTPIN->INTLINE + * A B C D + */ { - {0, 0, 0, 0}, /* IDSEL 0 - unused */ - {28, 28, 28, 28}, /* IDSEL 1 - PCI slot 1 */ - {29, 29, 29, 29}, /* IDSEL 2 - PCI slot 2 */ - {30, 30, 30, 30}, /* IDSEL 3 - PCI slot 3 */ - {31, 31, 31, 31}, /* IDSEL 4 - PCI slot 4 */ - {0, 0, 0, 0}, /* IDSEL 5 - unused */ - {0, 0, 0, 0}, /* IDSEL 6 - unused */ - {0, 0, 0, 0}, /* IDSEL 7 - unused */ - {0, 0, 0, 0}, /* IDSEL 8 - unused */ - {0, 0, 0, 0}, /* IDSEL 9 - unused */ - {0, 0, 0, 0}, /* IDSEL 10 - unused */ - {0, 0, 0, 0}, /* IDSEL 11 - unused */ - {0, 0, 0, 0}, /* IDSEL 12 - unused */ - {0, 0, 0, 0}, /* IDSEL 13 - unused */ - {0, 0, 0, 0}, /* IDSEL 14 - unused */ - {0, 0, 0, 0}, /* IDSEL 15 - unused */ - }; + {0, 0, 0, 0}, /* IDSEL 0 - unused */ + {28, 28, 28, 28}, /* IDSEL 1 - PCI slot 1 */ + {29, 29, 29, 29}, /* IDSEL 2 - PCI slot 2 */ + {30, 30, 30, 30}, /* IDSEL 3 - PCI slot 3 */ + {31, 31, 31, 31}, /* IDSEL 4 - PCI slot 4 */ + {0, 0, 0, 0}, /* IDSEL 5 - unused */ + {0, 0, 0, 0}, /* IDSEL 6 - unused */ + {0, 0, 0, 0}, /* IDSEL 7 - unused */ + {0, 0, 0, 0}, /* IDSEL 8 - unused */ + {0, 0, 0, 0}, /* IDSEL 9 - unused */ + {0, 0, 0, 0}, /* IDSEL 10 - unused */ + {0, 0, 0, 0}, /* IDSEL 11 - unused */ + {0, 0, 0, 0}, /* IDSEL 12 - unused */ + {0, 0, 0, 0}, /* IDSEL 13 - unused */ + {0, 0, 0, 0}, /* IDSEL 14 - unused */ + {0, 0, 0, 0}, /* IDSEL 15 - unused */ + }; + const long min_idsel = 0, max_idsel = 15, irqs_per_slot = 4; + return PCI_IRQ_TABLE_LOOKUP; +}; void __init diff -N -u -r --exclude=SCCS --exclude=BitKeeper --exclude=defconfig /usr/src/linuxppc_2_4_devel/arch/ppc/kernel/ppc405_pci.c linuxppc_2_4_devel/arch/ppc/kernel/ppc405_pci.c --- /usr/src/linuxppc_2_4_devel/arch/ppc/kernel/ppc405_pci.c Fri Sep 14 15:43:55 2001 +++ linuxppc_2_4_devel/arch/ppc/kernel/ppc405_pci.c Wed Sep 19 15:42:41 2001 @@ -48,6 +48,7 @@ #endif extern void bios_fixup(struct pci_controller *, void *); +extern int ppc405_map_irq(struct pci_dev *dev, unsigned char idsel, unsigned char pin); void __init ppc405_pcibios_fixup_bus(struct pci_bus *bus) { @@ -144,24 +145,6 @@ res->start = 0; } } -} - -static int ppc405_map_irq(struct pci_dev *dev, unsigned char idsel, unsigned char pin) -{ - -#define IRQS_PER_SLOT 4 -#define MAX_IDSEL 15 - - int irq; - extern char pci_irq_table[][4]; - - if ((idsel <= MAX_IDSEL) && (pin <= IRQS_PER_SLOT)) { - irq = pci_irq_table[idsel][pin-1]; - } else { - irq = -1; - } - - return(irq); } void ppc4xx_find_bridges(void) diff -N -u -r --exclude=SCCS --exclude=BitKeeper --exclude=defconfig /usr/src/linuxppc_2_4_devel/arch/ppc/kernel/walnut.c linuxppc_2_4_devel/arch/ppc/kernel/walnut.c --- /usr/src/linuxppc_2_4_devel/arch/ppc/kernel/walnut.c Fri Sep 14 15:44:02 2001 +++ linuxppc_2_4_devel/arch/ppc/kernel/walnut.c Wed Sep 19 15:42:41 2001 @@ -60,12 +60,15 @@ /* Some IRQs unique to Walnut. * Used by the generic 405 PCI setup functions in ppc4xx_pci.c */ -char pci_irq_table[][4] = - /* - * PCI IDSEL/INTPIN->INTLINE - * A B C D - */ - { +inline int __init +ppc405_map_irq(struct pci_dev *dev, unsigned char idsel, unsigned char pin) +{ + static char pci_irq_table[][4] = + /* + * PCI IDSEL/INTPIN->INTLINE + * A B C D + */ + { {0, 0, 0, 0}, /* IDSEL 0 - unused */ {28, 28, 28, 28}, /* IDSEL 1 - PCI slot 1 */ {29, 29, 29, 29}, /* IDSEL 2 - PCI slot 2 */ @@ -83,6 +86,9 @@ {0, 0, 0, 0}, /* IDSEL 14 - unused */ {0, 0, 0, 0}, /* IDSEL 15 - unused */ }; + const long min_idsel = 0, max_idsel = 15, irqs_per_slot = 4; + return PCI_IRQ_TABLE_LOOKUP; +}; void __init diff -N -u -r --exclude=SCCS --exclude=BitKeeper --exclude=defconfig /usr/src/linuxppc_2_4_devel/drivers/ide/Config.in linuxppc_2_4_devel/drivers/ide/Config.in --- /usr/src/linuxppc_2_4_devel/drivers/ide/Config.in Wed Sep 19 15:35:39 2001 +++ linuxppc_2_4_devel/drivers/ide/Config.in Wed Sep 19 15:42:41 2001 @@ -121,6 +121,9 @@ if [ "$CONFIG_MAC" = "y" ]; then dep_bool ' Macintosh Quadra/Powerbook IDE interface support' CONFIG_BLK_DEV_MAC_IDE $CONFIG_MAC fi + if [ "$CONFIG_CPCI405" = "y" ]; then + dep_bool ' CPCI-405 IDE interface support' CONFIG_BLK_DEV_CPCI405_IDE $CONFIG_CPCI405 + fi if [ "$CONFIG_Q40" = "y" ]; then dep_bool ' Q40/Q60 IDE interface support' CONFIG_BLK_DEV_Q40IDE $CONFIG_Q40 fi diff -N -u -r --exclude=SCCS --exclude=BitKeeper --exclude=defconfig /usr/src/linuxppc_2_4_devel/drivers/ide/Makefile linuxppc_2_4_devel/drivers/ide/Makefile --- /usr/src/linuxppc_2_4_devel/drivers/ide/Makefile Wed Sep 19 15:35:39 2001 +++ linuxppc_2_4_devel/drivers/ide/Makefile Wed Sep 19 15:42:41 2001 @@ -33,6 +33,7 @@ ide-obj-$(CONFIG_BLK_DEV_BUDDHA) += buddha.o ide-obj-$(CONFIG_BLK_DEV_CMD640) += cmd640.o ide-obj-$(CONFIG_BLK_DEV_CMD64X) += cmd64x.o +ide-obj-$(CONFIG_BLK_DEV_CPCI405_IDE) += cpci405ide.o ide-obj-$(CONFIG_BLK_DEV_CS5530) += cs5530.o ide-obj-$(CONFIG_BLK_DEV_CY82C693) += cy82c693.o ide-obj-$(CONFIG_BLK_DEV_DTC2278) += dtc2278.o diff -N -u -r --exclude=SCCS --exclude=BitKeeper --exclude=defconfig /usr/src/linuxppc_2_4_devel/drivers/ide/cpci405ide.c linuxppc_2_4_devel/drivers/ide/cpci405ide.c --- /usr/src/linuxppc_2_4_devel/drivers/ide/cpci405ide.c Thu Jan 1 01:00:00 1970 +++ linuxppc_2_4_devel/drivers/ide/cpci405ide.c Wed Sep 19 15:42:41 2001 @@ -0,0 +1,92 @@ +/* + * linux/drivers/ide/cpci405.c -- CPCI405 IDE Driver + * + * Copyright (C) 2001 by Stefan Roese + * + * This driver was written based on information obtained from the MacOS IDE + * driver binary by Mikael Forselius + * + * 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. + */ + +#include <linux/types.h> +#include <linux/mm.h> +#include <linux/interrupt.h> +#include <linux/blkdev.h> +#include <linux/hdreg.h> +#include <linux/delay.h> +#include <linux/ide.h> +#include <linux/init.h> + + +/* + * Base of the IDE interface + */ + +#define CPCI405_HD_BASE 0xf0100000 + +/* + * Offsets from the above base (scaling 4) + */ + +#define CPCI405_HD_DATA 0x00 +#define CPCI405_HD_ERROR 0x01 /* see err-bits */ +#define CPCI405_HD_NSECTOR 0x02 /* nr of sectors to read/write */ +#define CPCI405_HD_SECTOR 0x03 /* starting sector */ +#define CPCI405_HD_LCYL 0x04 /* starting cylinder */ +#define CPCI405_HD_HCYL 0x05 /* high byte of starting cyl */ +#define CPCI405_HD_SELECT 0x06 /* 101dhhhh , d=drive, hhhh=head */ +#define CPCI405_HD_STATUS 0x07 /* see status-bits */ +#define CPCI405_HD_CONTROL 0x0e /* control/altstatus */ + +#define CPCI405_IRQ_IDE 0x1f + +static int cpci405ide_offsets[IDE_NR_PORTS] __initdata = { + CPCI405_HD_DATA, CPCI405_HD_ERROR, CPCI405_HD_NSECTOR, CPCI405_HD_SECTOR, + CPCI405_HD_LCYL, CPCI405_HD_HCYL, CPCI405_HD_SELECT, CPCI405_HD_STATUS, + CPCI405_HD_CONTROL +}; + +static void *cpci405_ide_base_mapped; + + +static int cpci405ide_check_region(ide_ioreg_t start, unsigned int len) +{ + if (((unsigned long)start >= (unsigned long)cpci405_ide_base_mapped) && + (((unsigned long)start+len) <= (unsigned long)cpci405_ide_base_mapped+0x200)) + return 0; + else + return -1; +} + + +/* + * Probe for a CPCI405 IDE interface + */ + +void __init cpci405ide_init(void) +{ + hw_regs_t hw; + int index = -1; + + ppc_ide_md.ide_check_region = cpci405ide_check_region; + +#if 0 + printk("cpci405ide: physical address=%08lx\n", + (unsigned long)CPCI405_HD_BASE); /* test-only */ +#endif + cpci405_ide_base_mapped = + ioremap((unsigned long) CPCI405_HD_BASE, 0x200) - _IO_BASE; +#if 0 + printk("cpci405ide: mapped address=%08lx\n", + (unsigned long)cpci405_ide_base_mapped); /* test-only */ +#endif + ide_setup_ports(&hw, (ide_ioreg_t)cpci405_ide_base_mapped, + cpci405ide_offsets, 0, 0, NULL, CPCI405_IRQ_IDE); + index = ide_register_hw(&hw, NULL); + if (index != -1) + printk("ide%d: CPCI405 IDE interface\n", index); + +} diff -N -u -r --exclude=SCCS --exclude=BitKeeper --exclude=defconfig /usr/src/linuxppc_2_4_devel/drivers/ide/ide.c linuxppc_2_4_devel/drivers/ide/ide.c --- /usr/src/linuxppc_2_4_devel/drivers/ide/ide.c Wed Sep 19 15:35:39 2001 +++ linuxppc_2_4_devel/drivers/ide/ide.c Wed Sep 19 15:42:41 2001 @@ -3395,6 +3395,12 @@ macide_init(); } #endif /* CONFIG_BLK_DEV_MAC_IDE */ +#ifdef CONFIG_BLK_DEV_CPCI405_IDE + { + extern void cpci405ide_init(void); + cpci405ide_init(); + } +#endif /* CONFIG_BLK_DEV_CPCI405_IDE */ #ifdef CONFIG_BLK_DEV_Q40IDE { extern void q40ide_init(void); diff -N -u -r --exclude=SCCS --exclude=BitKeeper --exclude=defconfig /usr/src/linuxppc_2_4_devel/include/asm-ppc/ppc4xx.h linuxppc_2_4_devel/include/asm-ppc/ppc4xx.h --- /usr/src/linuxppc_2_4_devel/include/asm-ppc/ppc4xx.h Wed Sep 19 15:36:56 2001 +++ linuxppc_2_4_devel/include/asm-ppc/ppc4xx.h Wed Sep 19 17:11:35 2001 @@ -30,6 +30,10 @@ #include <asm/ep405.h> #endif +#if defined(CONFIG_CPCI405) +#include <asm/ppcboot.h> +#endif + /* IO_BASE is for PCI I/O. * ISA not supported, just here to resolve copilation. */ diff -N -u -r --exclude=SCCS --exclude=BitKeeper --exclude=defconfig /usr/src/linuxppc_2_4_devel/include/asm-ppc/ppcboot.h linuxppc_2_4_devel/include/asm-ppc/ppcboot.h --- /usr/src/linuxppc_2_4_devel/include/asm-ppc/ppcboot.h Wed Sep 19 15:36:57 2001 +++ linuxppc_2_4_devel/include/asm-ppc/ppcboot.h Wed Sep 19 17:11:32 2001 @@ -69,11 +69,13 @@ unsigned long bi_vco; /* VCO Out from PLL, in MHz */ #endif unsigned long bi_baudrate; /* Console Baudrate */ -#if defined(CONFIG_PPC405GP) +#if defined(CONFIG_405GP) || defined(CONFIG_405CR) unsigned char bi_s_version[4]; /* Version of this structure */ unsigned char bi_r_version[32]; /* Version of the ROM (IBM) */ unsigned int bi_procfreq; /* CPU (Internal) Freq, in Hz */ unsigned int bi_plb_busfreq; /* PLB Bus speed, in Hz */ +#endif +#if defined(CONFIG_405GP) unsigned int bi_pci_busfreq; /* PCI Bus speed, in Hz */ unsigned char bi_pci_enetaddr[6]; /* PCI Ethernet MAC address */ #endif ^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: CPCI-405 port (PPC405GP) 2001-09-19 14:17 ` Tom Rini 2001-09-19 15:55 ` AW: " Stefan Roese @ 2001-09-19 18:10 ` Dan Malek 2001-09-19 22:57 ` Tom Rini 2001-09-20 8:00 ` Stefan Roese 1 sibling, 2 replies; 42+ messages in thread From: Dan Malek @ 2001-09-19 18:10 UTC (permalink / raw) To: Tom Rini; +Cc: Stefan Roese, Linuxppc-Embedded, Linuxppc-Commit Tom Rini wrote: > Sounds like a good idea. Also, doing inline ... __init is rather silly. > How's the idea sound Dan? The idea is OK, but I would prefer a different implementation. You are trying to do basically the same thing as all of the boards that use versions of OpenPIC, EPIC, etc. Rather than have a fixed size array, and fill most of it with zero, a generic solution should be able to work with variable sized arrays......just pass the size somehow. The sizeof() works pretty well for this :-). The boards initialize the array to whatever they need, and don't have to worry about others. > Well, do you forsee the need to put in board-specific defines? This isn't the right way. If you notice the way the ports work, everything 4xx (or 8xx, or 6xx, or whatever), include the single header file, in this case ppc4xx.h. This include file will select the proper board specific file. The board specific file, contains, well, the stuff specific to a board. Thanks. -- Dan ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/ ^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: CPCI-405 port (PPC405GP) 2001-09-19 18:10 ` Dan Malek @ 2001-09-19 22:57 ` Tom Rini 2001-09-19 23:02 ` Dan Malek 2001-09-20 8:00 ` Stefan Roese 1 sibling, 1 reply; 42+ messages in thread From: Tom Rini @ 2001-09-19 22:57 UTC (permalink / raw) To: Dan Malek; +Cc: Stefan Roese, Linuxppc-Embedded, Linuxppc-Commit On Wed, Sep 19, 2001 at 02:10:38PM -0400, Dan Malek wrote: > > Well, do you forsee the need to put in board-specific defines? > > This isn't the right way. If you notice the way the ports work, > everything 4xx (or 8xx, or 6xx, or whatever), include the single > header file, in this case ppc4xx.h. This include file will select > the proper board specific file. The board specific file, contains, > well, the stuff specific to a board. Er, yes. But if there's nothing specific to the CPCI405, why add in an empty file and the #ifdef CONFIG_CPCI405 #include <asm/cpci405.h> /* Empty */ #endif in ppc4xx.h? -- Tom Rini (TR1265) http://gate.crashing.org/~trini/ ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/ ^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: CPCI-405 port (PPC405GP) 2001-09-19 22:57 ` Tom Rini @ 2001-09-19 23:02 ` Dan Malek 2001-09-19 23:31 ` Tom Rini 0 siblings, 1 reply; 42+ messages in thread From: Dan Malek @ 2001-09-19 23:02 UTC (permalink / raw) To: Tom Rini; +Cc: Stefan Roese, Linuxppc-Embedded, Linuxppc-Commit Tom Rini wrote: > Er, yes. But if there's nothing specific to the CPCI405, why add in an > empty file and the There _must_ be something in that file. At a minimum it has to define the board information structure. -- Dan ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/ ^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: CPCI-405 port (PPC405GP) 2001-09-19 23:02 ` Dan Malek @ 2001-09-19 23:31 ` Tom Rini 2001-09-20 4:12 ` Dan Malek 0 siblings, 1 reply; 42+ messages in thread From: Tom Rini @ 2001-09-19 23:31 UTC (permalink / raw) To: Dan Malek; +Cc: Stefan Roese, Linuxppc-Embedded, Linuxppc-Commit On Wed, Sep 19, 2001 at 07:02:51PM -0400, Dan Malek wrote: > > Tom Rini wrote: > > > Er, yes. But if there's nothing specific to the CPCI405, why add in an > > empty file and the > > There _must_ be something in that file. At a minimum it has > to define the board information structure. Okay. Here's my latest thoughts. Which might or might not make sense. We now define CONFIG_TREEBOOT and CONFIG_EMBEDDEDBOOT for 4xx. Lets add in CONFIG_PPCBOOT, and then in ppc4xx.h, and possibly mpc8xx.h (I haven't looked) we can do #ifdef CONFIG_TREEBOOT #include <asm/treeboot.h> /* Tree board info struct */ #elif defined(CONFIG_EMBEDDEDBOOT) #include <asm/embeddedboot.h> /* EP & others */ #elif defined(CONFIG_PPCBOOT) #include <asm/ppcboot.h> /* PPCBoot */ #endif Or not, 8xx currently does #include <asm/ppcboot.h> in lots of its files. So, over-engineering or a good idea? :) -- Tom Rini (TR1265) http://gate.crashing.org/~trini/ ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/ ^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: CPCI-405 port (PPC405GP) 2001-09-19 23:31 ` Tom Rini @ 2001-09-20 4:12 ` Dan Malek 2001-09-20 9:20 ` Stefan Roese ` (2 more replies) 0 siblings, 3 replies; 42+ messages in thread From: Dan Malek @ 2001-09-20 4:12 UTC (permalink / raw) To: Tom Rini; +Cc: Stefan Roese, Linuxppc-Embedded, Linuxppc-Commit Tom Rini wrote: > .... We > now define CONFIG_TREEBOOT and CONFIG_EMBEDDEDBOOT for 4xx. Why? The Makefile can just as easily select this based upon board type. That's all the configuration script does.... The only thing unique about treeboot is the way the board information is gathered from the boot rom, which doesn't justify configuration variables like this. Take a look at the 8xx for an example. It configures board information based upon board type, which could be gathered from a variety of places. You guys need to look at what is currently done, understand it, and realize it has likely been done before. This is easy, don't keep complicating it by inventing something new all of the time. > .... Lets add in > CONFIG_PPCBOOT, No, let's not. All of this stuff is on the way out. We should be making modifications so the embedded boards support bi_recs.... All you are doing is inventing a new way to do the same thing that has always worked. Yes, you are _way_ over engineering. The PPCboot folks are going to have to do some major revamping of the way it works. I've warned them (and everyone) about the dependency of always using the compressed image and the bootloaders. It's time to convert all of this stuff, not promote all of these different boot methods and formats further into the kernel. > Or not, 8xx currently does #include <asm/ppcboot.h> in lots of its files. Crap, I hope not.....It's time for all of that to disappear, along with all of the board information stuff in all of the other 8xx files..... Thanks. -- Dan ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/ ^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: CPCI-405 port (PPC405GP) 2001-09-20 4:12 ` Dan Malek @ 2001-09-20 9:20 ` Stefan Roese 2001-09-20 15:20 ` Dan Malek 2001-09-20 14:55 ` Tom Rini 2001-09-20 14:59 ` Josh Huber 2 siblings, 1 reply; 42+ messages in thread From: Stefan Roese @ 2001-09-20 9:20 UTC (permalink / raw) To: Linuxppc-Embedded, Linuxppc-Commit > > .... We > > now define CONFIG_TREEBOOT and CONFIG_EMBEDDEDBOOT for 4xx. > > Why? The Makefile can just as easily select this based upon board > type. That's all the configuration script does.... > > The only thing unique about treeboot is the way the board information > is gathered from the boot rom, which doesn't justify configuration > variables like this. Take a look at the 8xx for an example. It > configures board information based upon board type, which could be > gathered from a variety of places. You guys need to look at what > is currently done, understand it, and realize it has likely been > done before. This is easy, don't keep complicating it by inventing > something new all of the time. Hmmm, now I am totally confused! It seems to me, that my first implementation did it exactly like most of the 8xx boards! My only difference was to implement a header without any content (included from ppc4xx.h of course): #ifndef __CPCI405_H #define __CPCI405_H #include <linux/config.h> #include <asm/ppcboot.h> #endif /* __CPCI405_H */ Tom convinced me to remove this header and so I changed ppc4xx.h this way: #if defined(CONFIG_CPCI405) #include <asm/ppcboot.h> #endif > > .... Lets add in > > CONFIG_PPCBOOT, > > No, let's not. All of this stuff is on the way out. We should be > making modifications so the embedded boards support bi_recs.... > All you are doing is inventing a new way to do the same thing that > has always worked. Yes, you are _way_ over engineering. > > The PPCboot folks are going to have to do some major revamping > of the way it works. I've warned them (and everyone) about the > dependency of always using the compressed image and the bootloaders. > It's time to convert all of this stuff, not promote all of these > different boot methods and formats further into the kernel. I already heard, that the bd_info struct will disappear someday soon, but I have to admit that I don't have a clue what is going to replace it (please have mercy with my ignorance ;-))! Can somebody enlighten me (link's, etc.)? Dan, you are right that we (PPCBoot) people will have some homework to do, but right now our only way to Linux is via the bd_info struct! So please, is anybody willing to check this stuff into the linuxppc_2_4_devel tree (Tom, Dan)? If not, tell me what else I have to change. And please, don't tell me my only way to get this checked in, is to change to bi_recs (what ever that is?) ;-) Thanks, Stefan. ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/ ^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: CPCI-405 port (PPC405GP) 2001-09-20 9:20 ` Stefan Roese @ 2001-09-20 15:20 ` Dan Malek 2001-09-20 15:46 ` Tom Rini 2001-09-23 18:01 ` Wolfgang Denk 0 siblings, 2 replies; 42+ messages in thread From: Dan Malek @ 2001-09-20 15:20 UTC (permalink / raw) To: Stefan Roese; +Cc: Linuxppc-Embedded, Linuxppc-Commit Stefan Roese wrote: > Hmmm, now I am totally confused! Me, too. I have more to do than just track the progress of this patch, which is changing faster than I can read e-mail. > #ifndef __CPCI405_H > #define __CPCI405_H > > #include <linux/config.h> > > #include <asm/ppcboot.h> > > #endif /* __CPCI405_H */ This is fine, Tom said it was an empty file......... > Tom convinced me to remove this header and so I changed ppc4xx.h this way: This is fine, too, but certainly doesn't justify re-engineering the way we handle all of the other embedded boards. Your board just happens to take advantage of all of the generic 4xx definitions, so you don't need anything else. > ...... but I > have to admit that I don't have a clue what is going to replace it (please > have mercy with my ignorance ;-))! Can somebody enlighten me (link's, etc.)? Just take a look at all of the bootloaders for all of the other platforms. The 4xx and 8xx should have changed to look like these long ago. I just didn't have time to do it, and no one else was interested. > Dan, you are right that we (PPCBoot) people will have some homework to do, > but right now our only way to Linux is via the bd_info struct! No, the way to Linux is to _always_ use a zImage with an attached bootloader. PPCboot can continue to pass whatever it wants, or the bootloader can find the information in other ways as it does today with many boards. Booting a vmlinux image and trying to keep track of that private interface between the bootloader and the kernel is difficult. We already have more changes planned in addition to the bi_recs interface. Much of the code found today in the head.S files is going to migrate to the bootloaders. > So please, is anybody willing to check this stuff into the > linuxppc_2_4_devel tree (Tom, Dan)? We are working on it. We all have real jobs to do besides trying to manage all of these sources. I would like to get some of _my_ stuff checked in as well. Thanks. -- Dan ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/ ^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: CPCI-405 port (PPC405GP) 2001-09-20 15:20 ` Dan Malek @ 2001-09-20 15:46 ` Tom Rini 2001-09-20 21:43 ` Dan Malek 2001-09-23 18:01 ` Wolfgang Denk 1 sibling, 1 reply; 42+ messages in thread From: Tom Rini @ 2001-09-20 15:46 UTC (permalink / raw) To: Dan Malek; +Cc: Stefan Roese, Linuxppc-Embedded, Linuxppc-Commit On Thu, Sep 20, 2001 at 11:20:26AM -0400, Dan Malek wrote: > > Stefan Roese wrote: > > > #ifndef __CPCI405_H > > #define __CPCI405_H > > > > #include <linux/config.h> > > > > #include <asm/ppcboot.h> > > > > #endif /* __CPCI405_H */ > > This is fine, Tom said it was an empty file......... Well, that's empty to me. :) ppcboot.h should include linux/config.h and that's all it does... > > Dan, you are right that we (PPCBoot) people will have some homework to do, > > but right now our only way to Linux is via the bd_info struct! > > No, the way to Linux is to _always_ use a zImage with an attached bootloader. > PPCboot can continue to pass whatever it wants, or the bootloader can find > the information in other ways as it does today with many boards. Booting > a vmlinux image and trying to keep track of that private interface between > the bootloader and the kernel is difficult. We already have more changes > planned in addition to the bi_recs interface. Much of the code found today > in the head.S files is going to migrate to the bootloaders. In the x86 world it's always true that we have a bit of a loader tacked on someplace. In some parts of the PPC world, we can't/don't for various reasons (technical and/or ingrained). For example, I don't see a problem with something which takes a vmlinux.gz and boots it. As long as we get the information we need, we shouldn't care. The in-kernel loaders are the easiest to get changed. But we should define what we're going to do before we do it so that yaboot/ppcboot and apus can figure out how much re-working they'll need and whatnot.. -- Tom Rini (TR1265) http://gate.crashing.org/~trini/ ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/ ^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: CPCI-405 port (PPC405GP) 2001-09-20 15:46 ` Tom Rini @ 2001-09-20 21:43 ` Dan Malek 2001-09-20 21:56 ` Tom Rini 0 siblings, 1 reply; 42+ messages in thread From: Dan Malek @ 2001-09-20 21:43 UTC (permalink / raw) To: Tom Rini; +Cc: Stefan Roese, Linuxppc-Embedded, Linuxppc-Commit Tom Rini wrote: > .... In some parts of the PPC world, we can't/don't for various > reasons (technical and/or ingrained). I can't think of any that don't......Help me remember :-). > .... For example, I don't see a problem > with something which takes a vmlinux.gz and boots it. First of all, someone has to uncompress it. Then someone has to handle any initrd loading. Then someone has to handle command line and other parameter passing. Then..... > .... But we should define what we're going to do before we do > it so that yaboot/ppcboot and apus can figure out how much re-working > they'll need and whatnot.. Well, I trusted Ben to provide some of this information. Mind you, it was only a few lines on IRC, but it started with moving all of the cputable initialization stuff into the bootloaders......and went downhill from there :-). -- Dan ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/ ^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: CPCI-405 port (PPC405GP) 2001-09-20 21:43 ` Dan Malek @ 2001-09-20 21:56 ` Tom Rini 2001-09-21 7:04 ` Geert Uytterhoeven 0 siblings, 1 reply; 42+ messages in thread From: Tom Rini @ 2001-09-20 21:56 UTC (permalink / raw) To: Dan Malek; +Cc: Stefan Roese, Linuxppc-Embedded, Linuxppc-Commit On Thu, Sep 20, 2001 at 05:43:10PM -0400, Dan Malek wrote: > Tom Rini wrote: > > > .... In some parts of the PPC world, we can't/don't for various > > reasons (technical and/or ingrained). > > I can't think of any that don't......Help me remember :-). heh. Well, chrp and pmac really should use yaboot or something similar. I'd go as far as to say on a machine which reasonably could be used for desktop (and thus the choice of multiple kernels) you want something to find where they are and let you pick one. > > .... For example, I don't see a problem > > with something which takes a vmlinux.gz and boots it. > > First of all, someone has to uncompress it. Then someone has > to handle any initrd loading. Then someone has to handle command line > and other parameter passing. Then..... In other words, do all of the stuff the in-kernel 'bootloader' does. I don't think this is a problem in a stable line. This stuff shouldn't change in a way that's not backwards compat. We've diddled this a bit along the way in 2.2 and 2.4 I'm sure, but we shouldn't. > > .... But we should define what we're going to do before we do > > it so that yaboot/ppcboot and apus can figure out how much re-working > > they'll need and whatnot.. > > Well, I trusted Ben to provide some of this information. Mind you, > it was only a few lines on IRC, but it started with moving all of > the cputable initialization stuff into the bootloaders......and went > downhill from there :-). heh. Well, I do think we should outline what we're going to attempt to do a bit and then throw out some code that does it. There's other people who for some reason or another want to have a bootloader external to the tree, and I think that's a good idea. I'd go as far as yanking our in-kernel crap out and making it it's own package once we got things settled down perhaps... But that's just my opinion. :) -- Tom Rini (TR1265) http://gate.crashing.org/~trini/ ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/ ^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: CPCI-405 port (PPC405GP) 2001-09-20 21:56 ` Tom Rini @ 2001-09-21 7:04 ` Geert Uytterhoeven 2001-09-21 13:55 ` Tom Rini 0 siblings, 1 reply; 42+ messages in thread From: Geert Uytterhoeven @ 2001-09-21 7:04 UTC (permalink / raw) To: Tom Rini; +Cc: Dan Malek, Stefan Roese, Linuxppc-Embedded, Linuxppc-Commit On Thu, 20 Sep 2001, Tom Rini wrote: > On Thu, Sep 20, 2001 at 05:43:10PM -0400, Dan Malek wrote: > > Tom Rini wrote: > > > .... In some parts of the PPC world, we can't/don't for various > > > reasons (technical and/or ingrained). > > > > I can't think of any that don't......Help me remember :-). > > heh. Well, chrp and pmac really should use yaboot or something similar. Do you use yaboot on your LongTrail? I still use the goof old OF booting, and cannot test another boot method right now because all my hardware is packed for the move (which is happening in different stages :-( Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/ ^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: CPCI-405 port (PPC405GP) 2001-09-21 7:04 ` Geert Uytterhoeven @ 2001-09-21 13:55 ` Tom Rini 0 siblings, 0 replies; 42+ messages in thread From: Tom Rini @ 2001-09-21 13:55 UTC (permalink / raw) To: Geert Uytterhoeven Cc: Dan Malek, Stefan Roese, Linuxppc-Embedded, Linuxppc-Commit On Fri, Sep 21, 2001 at 09:04:32AM +0200, Geert Uytterhoeven wrote: > On Thu, 20 Sep 2001, Tom Rini wrote: > > On Thu, Sep 20, 2001 at 05:43:10PM -0400, Dan Malek wrote: > > > Tom Rini wrote: > > > > .... In some parts of the PPC world, we can't/don't for various > > > > reasons (technical and/or ingrained). > > > > > > I can't think of any that don't......Help me remember :-). > > > > heh. Well, chrp and pmac really should use yaboot or something similar. > > Do you use yaboot on your LongTrail? I was working on it at one point. It might work. I'm pretty sure that other bigger chrp boxes do work tho. -- Tom Rini (TR1265) http://gate.crashing.org/~trini/ ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/ ^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: CPCI-405 port (PPC405GP) 2001-09-20 15:20 ` Dan Malek 2001-09-20 15:46 ` Tom Rini @ 2001-09-23 18:01 ` Wolfgang Denk [not found] ` <3BAEB9DA.232C8FEB@mvista.com> 1 sibling, 1 reply; 42+ messages in thread From: Wolfgang Denk @ 2001-09-23 18:01 UTC (permalink / raw) To: Dan Malek; +Cc: Stefan Roese, Linuxppc-Embedded, Linuxppc-Commit In message <3BAA093A.10E96272@mvista.com> you wrote: > > No, the way to Linux is to _always_ use a zImage with an attached bootloader. This is your private opinion, it seems. I see no reason to do this. Why should I? Attaching a bootloader is nonsense when the firmware does everything the bootloader might do, and more and better. Please explain why you think this is the one and only way? Wolfgang Denk -- Software Engineering: Embedded and Realtime Systems, Embedded Linux Phone: (+49)-8142-4596-87 Fax: (+49)-8142-4596-88 Email: wd@denx.de I paid too much for it, but its worth it. ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/ ^ permalink raw reply [flat|nested] 42+ messages in thread
[parent not found: <3BAEB9DA.232C8FEB@mvista.com>]
* Re: CPCI-405 port (PPC405GP) [not found] ` <3BAEB9DA.232C8FEB@mvista.com> @ 2001-09-29 15:34 ` Dan Malek 0 siblings, 0 replies; 42+ messages in thread From: Dan Malek @ 2001-09-29 15:34 UTC (permalink / raw) To: Wolfgang Denk, Stefan Roese, Linuxppc-Embedded, Linuxppc-Commit Dan Malek wrote: > I'm not in the bootrom business. While your experience is nearly > exclusively PPCboot, mine is nearly everything but PPCboot. I guess I should try to rephrase this. My effort to use a minimal amount of words missed the point I was trying to make. When I'm working on a new Linux port, I try to get the most done with the minimal amount of effort. I (or the customer paying me) try to use the bootrom that is on the board from the supplier, rather than get "into the bootrom business" when the goal is to port a kernel. That's why the piggyback loaders exist, to bridge the gap between a variety of boot roms and the kernel. If a bootrom doesn't exist or is quite inferior to the job, I would certainly port PPCBoot and use that. So, while lots of people work on PPCBoot (which I am thankful) and see it on a daily basis, I seldom see it in the commercial production environments. I'll change that whenever it it possible. The challenge changing or writing the boot rom is often more work and testing that the kernel port. The complexity of the processors and memory controllers, sometimes special hardware tools and development boards, and of course documentation to get this done right isn't always available outside of the company that designed the system. My real concern is PPCBoot is tied very tightly to the Linux start-up environment. Through these last few messages, I understand the design reasons for features and attempt to minimize code duplication. I just want everyone to be aware, as is happening and discussed today, that this environment is subject to change as we modify features and attempt to consolidate the code in the piggyback loaders that everyone except PPCBoot uses. I hope this helps. Thanks. -- Dan ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/ ^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: CPCI-405 port (PPC405GP) 2001-09-20 4:12 ` Dan Malek 2001-09-20 9:20 ` Stefan Roese @ 2001-09-20 14:55 ` Tom Rini 2001-09-20 15:34 ` Dan Malek 2001-09-20 14:59 ` Josh Huber 2 siblings, 1 reply; 42+ messages in thread From: Tom Rini @ 2001-09-20 14:55 UTC (permalink / raw) To: Dan Malek; +Cc: Linuxppc-Embedded, Linuxppc-Commit On Thu, Sep 20, 2001 at 12:12:18AM -0400, Dan Malek wrote: > Tom Rini wrote: > > > .... We > > now define CONFIG_TREEBOOT and CONFIG_EMBEDDEDBOOT for 4xx. > > Why? The Makefile can just as easily select this based upon board > type. That's all the configuration script does.... Well, because it keeps us from duplicating 4 lines in the makefile. As far as I know, you can't do ifdef CONFIG_8xx || CONFIG_EP405 for example, in a Makefile. CONFIG_TREEBOOT could probably die, unless someone revives Oak or TiVo uses it. > The only thing unique about treeboot is the way the board information > is gathered from the boot rom, which doesn't justify configuration > variables like this. treeboot also needs it's own special image format. So like I said, CONFIG_TREEBOOT could go away if TiVo and Oak (if it gets revived) need it. Remember, Makefile magic isn't as extensible as cpp magic. > > .... Lets add in > > CONFIG_PPCBOOT, > > No, let's not. All of this stuff is on the way out. We should be > making modifications so the embedded boards support bi_recs.... Not in 2.4 we aren't. We aren't forcing bi_recs upon everyone just yet. > The PPCboot folks are going to have to do some major revamping > of the way it works. I've warned them (and everyone) about the > dependency of always using the compressed image and the bootloaders. Eh? As far as I know, PPCBoot takes it's own slighlty mod'ed objcopy'ed and gzip'ed vmlinux. What's wrong with that? Hell, even in 2.5 as long as we get the bi_recs, we shouldn't care what the bootloader does.. > > Or not, 8xx currently does #include <asm/ppcboot.h> in lots of its files. > > Crap, I hope not.....It's time for all of that to disappear, along with > all of the board information stuff in all of the other 8xx files..... ppcboot.h just defines the board information struct that PPCBoot passes along. Are you talking about the board-specific stuff which is just there to be complete or what? -- Tom Rini (TR1265) http://gate.crashing.org/~trini/ ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/ ^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: CPCI-405 port (PPC405GP) 2001-09-20 14:55 ` Tom Rini @ 2001-09-20 15:34 ` Dan Malek 2001-09-20 15:51 ` Tom Rini 2001-09-23 18:01 ` Wolfgang Denk 0 siblings, 2 replies; 42+ messages in thread From: Dan Malek @ 2001-09-20 15:34 UTC (permalink / raw) To: Tom Rini; +Cc: Linuxppc-Embedded, Linuxppc-Commit Tom Rini wrote: > Well, because it keeps us from duplicating 4 lines in the makefile. OK. > ..... CONFIG_TREEBOOT could probably die, unless > someone revives Oak or TiVo uses it. Walnut and Spruce use it. Get it? TREEboot? > Not in 2.4 we aren't. We aren't forcing bi_recs upon everyone just > yet. We should. The purpose of consolidating bootloaders was to utilize a bunch of generic code on both sides (bootloader and Linux). It isn't a major change on either side, since we already have bootloaders that do it. > Eh? As far as I know, PPCBoot takes it's own slighlty mod'ed objcopy'ed > and gzip'ed vmlinux. What's wrong with that? We (or at least I :-) make subtle changes to the parameters passed to the kernel from the bootloaders from time to time. This means people with PPCboot roms have to change them any time this is done. One of the purposes of the bootloader is to isolate these changes into the bootloader. > .... Hell, even in 2.5 as long > as we get the bi_recs, we shouldn't care what the bootloader does.. The bootloader is a critical part to initializing the environment for the kernel. With all of the MMU futzing around we do trying to get Linux running, Ben and I have discussed yet another better bootloader method to move some of this around between the bootloader and the kernel start up. There are also initrd and command line things done by the bootloader (among other board specific initialization). It's more than whether or not we all use bi_recs. > Are you talking about the board-specific stuff ..... Never mind. Not important. -- Dan ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/ ^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: CPCI-405 port (PPC405GP) 2001-09-20 15:34 ` Dan Malek @ 2001-09-20 15:51 ` Tom Rini 2001-09-20 16:10 ` Mark Hatle 2001-09-20 21:38 ` Dan Malek 2001-09-23 18:01 ` Wolfgang Denk 1 sibling, 2 replies; 42+ messages in thread From: Tom Rini @ 2001-09-20 15:51 UTC (permalink / raw) To: Dan Malek; +Cc: Linuxppc-Embedded, Linuxppc-Commit On Thu, Sep 20, 2001 at 11:34:41AM -0400, Dan Malek wrote: > > Tom Rini wrote: > > > Well, because it keeps us from duplicating 4 lines in the makefile. > > OK. > > > ..... CONFIG_TREEBOOT could probably die, unless > > someone revives Oak or TiVo uses it. > > Walnut and Spruce use it. Get it? TREEboot? heh. You're assuming that I get to see docs on these boards. I forgot spruce uses it. oak.h's board_info is the same as walnut, minus the PCI line. And I dunno what TiVo uses... > > Not in 2.4 we aren't. We aren't forcing bi_recs upon everyone just > > yet. > > We should. The purpose of consolidating bootloaders was to utilize > a bunch of generic code on both sides (bootloader and Linux). It > isn't a major change on either side, since we already have bootloaders > that do it. Right. But it's still possible to break bi_recs in some cases (tho it's more theoretical). Anyhow tho, changing requirements of bootloaders (even in the case of just !ALL_PPC) in the middle of a 'stable' baseline doesn't sound good. > > .... Hell, even in 2.5 as long > > as we get the bi_recs, we shouldn't care what the bootloader does.. > > The bootloader is a critical part to initializing the environment for > the kernel. With all of the MMU futzing around we do trying to get > Linux running, Ben and I have discussed yet another better bootloader > method to move some of this around between the bootloader and the > kernel start up. There are also initrd and command line things done > by the bootloader (among other board specific initialization). It's > more than whether or not we all use bi_recs. Okay. Now, do you want to get this done in 2.4 first or 2.5 first? :) -- Tom Rini (TR1265) http://gate.crashing.org/~trini/ ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/ ^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: CPCI-405 port (PPC405GP) 2001-09-20 15:51 ` Tom Rini @ 2001-09-20 16:10 ` Mark Hatle 2001-09-20 21:38 ` Dan Malek 1 sibling, 0 replies; 42+ messages in thread From: Mark Hatle @ 2001-09-20 16:10 UTC (permalink / raw) To: Tom Rini; +Cc: Dan Malek, Linuxppc-Embedded, Linuxppc-Commit Tom Rini wrote: > > On Thu, Sep 20, 2001 at 11:34:41AM -0400, Dan Malek wrote: > > > > Tom Rini wrote: > > > > > Well, because it keeps us from duplicating 4 lines in the makefile. > > > > OK. > > > > > ..... CONFIG_TREEBOOT could probably die, unless > > > someone revives Oak or TiVo uses it. > > > > Walnut and Spruce use it. Get it? TREEboot? > > heh. You're assuming that I get to see docs on these boards. I forgot > spruce uses it. oak.h's board_info is the same as walnut, minus the PCI > line. And I dunno what TiVo uses... The TiVo uses TREEBoot, with slight modification. (There are some magic values and such that have to be in the right place in the bootloader....) (The TiVo is an Oak reference board on steroids..) --Mark ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/ ^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: CPCI-405 port (PPC405GP) 2001-09-20 15:51 ` Tom Rini 2001-09-20 16:10 ` Mark Hatle @ 2001-09-20 21:38 ` Dan Malek 1 sibling, 0 replies; 42+ messages in thread From: Dan Malek @ 2001-09-20 21:38 UTC (permalink / raw) To: Tom Rini; +Cc: Linuxppc-Embedded, Linuxppc-Commit Tom Rini wrote: > heh. You're assuming that I get to see docs on these boards. Oh yeah, I forgot the :-) when I wrote that line..... > Okay. Now, do you want to get this done in 2.4 first or 2.5 first? :) It seems 2.4 is still a development kernel............:-). -- Dan ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/ ^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: CPCI-405 port (PPC405GP) 2001-09-20 15:34 ` Dan Malek 2001-09-20 15:51 ` Tom Rini @ 2001-09-23 18:01 ` Wolfgang Denk 2001-09-23 20:54 ` Tom Rini 1 sibling, 1 reply; 42+ messages in thread From: Wolfgang Denk @ 2001-09-23 18:01 UTC (permalink / raw) To: Dan Malek; +Cc: Tom Rini, Linuxppc-Embedded, Linuxppc-Commit In message <3BAA0C91.42E0910D@mvista.com> you wrote: > > We (or at least I :-) make subtle changes to the parameters passed to > the kernel from the bootloaders from time to time. This means people > with PPCboot roms have to change them any time this is done. One of Changing parameters passed to the kernel is trivial in PPCBoot. Much simpler than with the bootloader where you have to recompile code to get new default settings. > the purposes of the bootloader is to isolate these changes into the > bootloader. As long as you don't create incompatible _interfaces_ there is no problem. > The bootloader is a critical part to initializing the environment for > the kernel. With all of the MMU futzing around we do trying to get > Linux running, Ben and I have discussed yet another better bootloader > method to move some of this around between the bootloader and the > kernel start up. There are also initrd and command line things done > by the bootloader (among other board specific initialization). It's > more than whether or not we all use bi_recs. Please keep in mind that PPCBoot exists, and is used on MANY boards. Even when you don't use it yourself, I ask you not to break compati- bility without GOOD reason. Also, I'd appreciate a little discussion with the PPCBoot folks before such changes happen. You know where to find us. We don't object against switching to bi_recs - as soon as somebody cares to document how they are going to look like. So far I have seen only vague statements about something completely new in 2.5, and the statement that they will NOT be an issue in 2.4. Wolfgang Denk -- Software Engineering: Embedded and Realtime Systems, Embedded Linux Phone: (+49)-8142-4596-87 Fax: (+49)-8142-4596-88 Email: wd@denx.de As far as the laws of mathematics refer to reality, they are not cer- tain, and as far as they are certain, they do not refer to reality. -- Albert Einstein ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/ ^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: CPCI-405 port (PPC405GP) 2001-09-23 18:01 ` Wolfgang Denk @ 2001-09-23 20:54 ` Tom Rini 0 siblings, 0 replies; 42+ messages in thread From: Tom Rini @ 2001-09-23 20:54 UTC (permalink / raw) To: Wolfgang Denk; +Cc: Dan Malek, Linuxppc-Embedded, Linuxppc-Commit On Sun, Sep 23, 2001 at 08:01:18PM +0200, Wolfgang Denk wrote: > In message <3BAA0C91.42E0910D@mvista.com> you wrote: > > > the purposes of the bootloader is to isolate these changes into the > > bootloader. > > As long as you don't create incompatible _interfaces_ there is no > problem. Well, 2.5/2.6 _will_ be incompatible with 2.4. But it should also be possible for bootloaders to work for both. > > The bootloader is a critical part to initializing the environment for > > the kernel. With all of the MMU futzing around we do trying to get > > Linux running, Ben and I have discussed yet another better bootloader > > method to move some of this around between the bootloader and the > > kernel start up. There are also initrd and command line things done > > by the bootloader (among other board specific initialization). It's > > more than whether or not we all use bi_recs. > > Please keep in mind that PPCBoot exists, and is used on MANY boards. > Even when you don't use it yourself, I ask you not to break compati- > bility without GOOD reason. Also, I'd appreciate a little discussion > with the PPCBoot folks before such changes happen. You know where to > find us. Well, this was on linuxppc-dev at least once. Possibly twice. And at least once more before we actually do this. 2.5 will be incompatible since everyone whose spoken before has agreeded that the current methods aren't 100%. If you wanna make a case for moving everyone to the way PPCBoot talks to the kernel, please do. -- Tom Rini (TR1265) http://gate.crashing.org/~trini/ ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/ ^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: CPCI-405 port (PPC405GP) 2001-09-20 4:12 ` Dan Malek 2001-09-20 9:20 ` Stefan Roese 2001-09-20 14:55 ` Tom Rini @ 2001-09-20 14:59 ` Josh Huber 2001-09-20 15:39 ` Dan Malek 2 siblings, 1 reply; 42+ messages in thread From: Josh Huber @ 2001-09-20 14:59 UTC (permalink / raw) To: Dan Malek; +Cc: Tom Rini, Stefan Roese, Linuxppc-Embedded, Linuxppc-Commit Dan Malek <dan@mvista.com> writes: > No, let's not. All of this stuff is on the way out. We should be > making modifications so the embedded boards support bi_recs.... All > you are doing is inventing a new way to do the same thing that has > always worked. Yes, you are _way_ over engineering. I'm seriously considering adding this support to ppcboot soon. I should discuss this on the ppcboot list fisrt, to make sure no one else is working on it first though. I definately agree that bi_recs is the way to go... -- Josh Huber ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/ ^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: CPCI-405 port (PPC405GP) 2001-09-20 14:59 ` Josh Huber @ 2001-09-20 15:39 ` Dan Malek 2001-09-20 15:57 ` Josh Huber 2001-09-23 18:00 ` Wolfgang Denk 0 siblings, 2 replies; 42+ messages in thread From: Dan Malek @ 2001-09-20 15:39 UTC (permalink / raw) To: Josh Huber; +Cc: Tom Rini, Stefan Roese, Linuxppc-Embedded, Linuxppc-Commit Josh Huber wrote: > I'm seriously considering adding this support to ppcboot soon. Why are you doing this? Why can't you just use a standard zImage format and bootloader like all other systems use? It just seems to me you are coding yourselves deeper into a hole where every little kernel interface change means a new boot rom. I would suggest just creating a standard interface to calling an image and passing information. Create a function in the embed_config.c to parse it, and call it a day...... -- Dan ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/ ^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: CPCI-405 port (PPC405GP) 2001-09-20 15:39 ` Dan Malek @ 2001-09-20 15:57 ` Josh Huber 2001-09-20 16:07 ` Tom Rini 2001-09-23 18:00 ` Wolfgang Denk 1 sibling, 1 reply; 42+ messages in thread From: Josh Huber @ 2001-09-20 15:57 UTC (permalink / raw) To: Dan Malek; +Cc: Tom Rini, Stefan Roese, Linuxppc-Embedded, Linuxppc-Commit Dan Malek <dan@mvista.com> writes: > Why are you doing this? Why can't you just use a standard zImage > format and bootloader like all other systems use? It just seems to > me you are coding yourselves deeper into a hole where every little > kernel interface change means a new boot rom. Well, I was under the impression that the whole point of using bi_recs was to avoid changes in the future. Isn't that the point? (a consistant interface that's forward/backward compatible) > I would suggest just creating a standard interface to calling an > image and passing information. Create a function in the > embed_config.c to parse it, and call it a day...... It seems to me like a cleaner solution to have the bootloader uncompress and pass information to the kernel directly... -- Josh Huber ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/ ^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: CPCI-405 port (PPC405GP) 2001-09-20 15:57 ` Josh Huber @ 2001-09-20 16:07 ` Tom Rini 2001-09-20 16:32 ` Josh Huber 0 siblings, 1 reply; 42+ messages in thread From: Tom Rini @ 2001-09-20 16:07 UTC (permalink / raw) To: Josh Huber; +Cc: Dan Malek, Stefan Roese, Linuxppc-Embedded, Linuxppc-Commit On Thu, Sep 20, 2001 at 11:57:34AM -0400, Josh Huber wrote: > Dan Malek <dan@mvista.com> writes: > > > Why are you doing this? Why can't you just use a standard zImage > > format and bootloader like all other systems use? It just seems to > > me you are coding yourselves deeper into a hole where every little > > kernel interface change means a new boot rom. > > Well, I was under the impression that the whole point of using bi_recs > was to avoid changes in the future. Isn't that the point? (a > consistant interface that's forward/backward compatible) But the bi_recs in 2.5 won't look like 2.4.current. -- Tom Rini (TR1265) http://gate.crashing.org/~trini/ ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/ ^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: CPCI-405 port (PPC405GP) 2001-09-20 16:07 ` Tom Rini @ 2001-09-20 16:32 ` Josh Huber 2001-09-20 16:35 ` Tom Rini 2001-09-23 18:00 ` Wolfgang Denk 0 siblings, 2 replies; 42+ messages in thread From: Josh Huber @ 2001-09-20 16:32 UTC (permalink / raw) To: Tom Rini; +Cc: Dan Malek, Stefan Roese, Linuxppc-Embedded, Linuxppc-Commit Tom Rini <trini@kernel.crashing.org> writes: > But the bi_recs in 2.5 won't look like 2.4.current. bummer...can it not be changed in a compatible manner? -- Josh Huber ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/ ^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: CPCI-405 port (PPC405GP) 2001-09-20 16:32 ` Josh Huber @ 2001-09-20 16:35 ` Tom Rini 2001-09-23 18:00 ` Wolfgang Denk 1 sibling, 0 replies; 42+ messages in thread From: Tom Rini @ 2001-09-20 16:35 UTC (permalink / raw) To: Josh Huber; +Cc: Dan Malek, Stefan Roese, Linuxppc-Embedded, Linuxppc-Commit On Thu, Sep 20, 2001 at 12:32:08PM -0400, Josh Huber wrote: > Tom Rini <trini@kernel.crashing.org> writes: > > > But the bi_recs in 2.5 won't look like 2.4.current. > > bummer...can it not be changed in a compatible manner? Not really. In 2.4 we toss the bi_recs near the end of the kernel+BSS, i _think_. In 2.5 we want r<3 or 4 or so> to be a pointer to where they are. This is why we've been waiting until 2.5, we want to break compatibility. -- Tom Rini (TR1265) http://gate.crashing.org/~trini/ ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/ ^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: CPCI-405 port (PPC405GP) 2001-09-20 16:32 ` Josh Huber 2001-09-20 16:35 ` Tom Rini @ 2001-09-23 18:00 ` Wolfgang Denk 2001-09-23 20:50 ` Tom Rini 2001-09-24 4:04 ` Dan Malek 1 sibling, 2 replies; 42+ messages in thread From: Wolfgang Denk @ 2001-09-23 18:00 UTC (permalink / raw) To: Josh Huber Cc: Tom Rini, Dan Malek, Stefan Roese, Linuxppc-Embedded, Linuxppc-Commit In message <87k7ytygaf.fsf@mclinux.com> Josh Huber wrote: > Tom Rini <trini@kernel.crashing.org> writes: > > > But the bi_recs in 2.5 won't look like 2.4.current. > > bummer...can it not be changed in a compatible manner? Where can I get more information what it will look like in 2.5? I'd like to be able to have PPCBoot prepared for this change, and ideally in a way that provides a soft migration from current kernel versions to the new stuff. Keep in mind that PPCBoot is in use for 50+ boards from many diffe- rent hardware manufacturers. And the number is growing every week. Or is there even a discussion of this stuff where one can at least inject ideas or point out thinks that might cause problems - BEFORE everything is cast in stone? Wolfgang Denk -- Software Engineering: Embedded and Realtime Systems, Embedded Linux Phone: (+49)-8142-4596-87 Fax: (+49)-8142-4596-88 Email: wd@denx.de Time is an illusion perpetrated by the manufacturers of space. ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/ ^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: CPCI-405 port (PPC405GP) 2001-09-23 18:00 ` Wolfgang Denk @ 2001-09-23 20:50 ` Tom Rini 2001-09-24 4:04 ` Dan Malek 1 sibling, 0 replies; 42+ messages in thread From: Tom Rini @ 2001-09-23 20:50 UTC (permalink / raw) To: Wolfgang Denk Cc: Josh Huber, Dan Malek, Stefan Roese, Linuxppc-Embedded, Linuxppc-Commit On Sun, Sep 23, 2001 at 08:00:07PM +0200, Wolfgang Denk wrote: > In message <87k7ytygaf.fsf@mclinux.com> Josh Huber wrote: > > Tom Rini <trini@kernel.crashing.org> writes: > > > > > But the bi_recs in 2.5 won't look like 2.4.current. > > > > bummer...can it not be changed in a compatible manner? > > Where can I get more information what it will look like in 2.5? I'd > like to be able to have PPCBoot prepared for this change, and ideally > in a way that provides a soft migration from current kernel versions > to the new stuff. Search the -dev archives for '2.5 birecs' or '2.5 bi recs'. It was also on the (old) -commit list before that. > Or is there even a discussion of this stuff where one can at least > inject ideas or point out thinks that might cause problems - BEFORE > everything is cast in stone? Well, it's already been 'agreeded' to look somewhat like the current bi_recs (<asm/bootinfo.h>). Different location and more of. And other changes that haven't been fleshed out.. -- Tom Rini (TR1265) http://gate.crashing.org/~trini/ ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/ ^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: CPCI-405 port (PPC405GP) 2001-09-23 18:00 ` Wolfgang Denk 2001-09-23 20:50 ` Tom Rini @ 2001-09-24 4:04 ` Dan Malek 1 sibling, 0 replies; 42+ messages in thread From: Dan Malek @ 2001-09-24 4:04 UTC (permalink / raw) To: Wolfgang Denk Cc: Josh Huber, Tom Rini, Stefan Roese, Linuxppc-Embedded, Linuxppc-Commit Wolfgang Denk wrote: > Where can I get more information what it will look like in 2.5? >From my understanding it will be similar to the current implementation, but will pass pointers/info in registers rather than stuffing it into a "well known" memory location. There should be some discussion in the archives. > Keep in mind that PPCBoot is in use for 50+ boards from many diffe- > rent hardware manufacturers. And the number is growing every week. That's why we keep suggesting a piggyback loader is always used rather than trying to boot vmlinux (or compressed version of it) directly. We currently support lots of boards that don't use PPCboot, the kernel interface has changed a couple of times (most recently the clock speed stuff), and it didn't affect any of the boot roms. You could just leave the PPCboot interface as it is, write a supporting function for it in the current embed_config.c file, and just use the same code we use on all of the other embedded boards. > Or is there even a discussion of this stuff where one can at least > inject ideas or point out thinks that might cause problems - BEFORE > everything is cast in stone? The discussion has pretty much died away. We just have to find time to implement it. The intention is to provide a single standard interface to the kernel, that is flexible and extensible. The bi_recs are basically a tag and information, you can ignore anything you don't understand in the list and provide defaults for things you don't see in the record list. Many of the piggyback loaders already support the first version of this, the "well known" memory location made it a challenge for the 8xx boards, so I was slow doing anything about it until Ben suggested the change to use the registers to pass the record start/end information. This will break the existing kernel calling interface, so everyone has to change to use the same thing. -- Dan ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/ ^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: CPCI-405 port (PPC405GP) 2001-09-20 15:39 ` Dan Malek 2001-09-20 15:57 ` Josh Huber @ 2001-09-23 18:00 ` Wolfgang Denk 1 sibling, 0 replies; 42+ messages in thread From: Wolfgang Denk @ 2001-09-23 18:00 UTC (permalink / raw) To: Dan Malek Cc: Josh Huber, Tom Rini, Stefan Roese, Linuxppc-Embedded, Linuxppc-Commit In message <3BAA0DCC.122CE6CB@mvista.com> Dan Malek wrote: > > > I'm seriously considering adding this support to ppcboot soon. > > Why are you doing this? Why can't you just use a standard zImage > format and bootloader like all other systems use? It just seems PPCBoot has a litle bit more in mind than just Linux. It will load and boot other OS as well. > to me you are coding yourselves deeper into a hole where every > little kernel interface change means a new boot rom. Maybe you could spend less time digging such holes and more time tinking about compatibility issues ;-) > I would suggest just creating a standard interface to calling > an image and passing information. Create a function in the There was such a "standard" interface. Now it's being changed. Ummm... what was your argument about "standard interface"? I have yet to see the Linux kernel interface standard that will NOT change at some point in time. > embed_config.c to parse it, and call it a day...... PPCBoot adds some functions that are not available with a "standard" zImage file like: - checksum protection - support for configuration management date (versioning at least) - separation of kernel and ramdisk images - support for other operating systems - support for standalone applications Also I feel it is silly to provide the same function in 2 or more places; for instance, you probably have 3 seriel drivers running on your system: one in the firmware, another one in the kernel bootloader, and yet another one in the Linux kernel. If you store several kernel images the number of instances of the code for the same function increses even more. The same is true for decompression etc. Feel free to waste resources like that on the systems you are using, but please allow other people to design for systems with less resources. There are 50+ boards using the PPCBoot concept by now, and the number is growing every week. You may ignore it, but please let us just do our work. Wolfgang Denk -- Software Engineering: Embedded and Realtime Systems, Embedded Linux Phone: (+49)-8142-4596-87 Fax: (+49)-8142-4596-88 Email: wd@denx.de Heavier than air flying machines are impossible. -- Lord Kelvin, President, Royal Society, c. 1895 ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/ ^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: CPCI-405 port (PPC405GP) 2001-09-19 18:10 ` Dan Malek 2001-09-19 22:57 ` Tom Rini @ 2001-09-20 8:00 ` Stefan Roese 1 sibling, 0 replies; 42+ messages in thread From: Stefan Roese @ 2001-09-20 8:00 UTC (permalink / raw) To: Linuxppc-Embedded, Linuxppc-Commit > > Sounds like a good idea. Also, doing inline ... __init is rather silly. > > How's the idea sound Dan? > > The idea is OK, but I would prefer a different implementation. You > are trying to do basically the same thing as all of the boards that > use versions of OpenPIC, EPIC, etc. Rather than have a fixed size > array, and fill most of it with zero, a generic solution should be > able to work with variable sized arrays......just pass the size > somehow. The sizeof() works pretty well for this :-). The boards > initialize the array to whatever they need, and don't have to worry > about others. Isn't that exactly what I did (in cpci405.c)? int __init ppc405_map_irq(struct pci_dev *dev, unsigned char idsel, unsigned char pin) { static char pci_irq_table[][4] = /* * PCI IDSEL/INTPIN->INTLINE * A B C D */ { {28, 28, 28, 28}, /* IDSEL 15 - cPCI slot 8 */ {29, 29, 29, 29}, /* IDSEL 16 - cPCI slot 7 */ {30, 30, 30, 30}, /* IDSEL 17 - cPCI slot 6 */ {27, 27, 27, 27}, /* IDSEL 18 - cPCI slot 5 */ {28, 28, 28, 28}, /* IDSEL 19 - cPCI slot 4 */ {29, 29, 29, 29}, /* IDSEL 20 - cPCI slot 3 */ {30, 30, 30, 30}, /* IDSEL 21 - cPCI slot 2 */ }; const long min_idsel = 15, max_idsel = 21, irqs_per_slot = 4; return PCI_IRQ_TABLE_LOOKUP; }; It seems to me, that nearly all other boards do it this way also. Perhaps you were referring to the walnut/ep405 implementations, which still had some zero's in the array (I corrected this by now). Best regards, Stefan. ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/ ^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: CPCI-405 port (PPC405GP) 2001-09-19 13:46 ` Stefan Roese 2001-09-19 14:17 ` Tom Rini @ 2001-09-19 14:32 ` Stefan Roese 1 sibling, 0 replies; 42+ messages in thread From: Stefan Roese @ 2001-09-19 14:32 UTC (permalink / raw) To: Linuxppc-Embedded, Linuxppc-Commit [-- Attachment #1: Type: text/plain, Size: 325 bytes --] > I also tried to make the "ppc405_map_irq" function more generic (since the > number of slots isn't identical for all 405gp boards). Any comments? Uups! I just noticed that my "generic" patch brakes the ep405 board because of some missing headers :-( So please ignore the previous patch and use this one instead. Stefan. [-- Attachment #2: linux_cpci405.diff --] [-- Type: application/octet-stream, Size: 26883 bytes --] diff -N -u -r --exclude=SCCS --exclude=BitKeeper --exclude=defconfig /usr/src/linuxppc_2_4_devel/arch/ppc/config.in linuxppc_2_4_devel/arch/ppc/config.in --- /usr/src/linuxppc_2_4_devel/arch/ppc/config.in Wed Sep 19 15:34:42 2001 +++ linuxppc_2_4_devel/arch/ppc/config.in Wed Sep 19 15:42:40 2001 @@ -71,6 +71,7 @@ Redwood-4 CONFIG_REDWOOD_4 \ Tivo CONFIG_TIVO \ EP405 CONFIG_EP405 \ + CPCI405 CONFIG_CPCI405 \ Walnut CONFIG_WALNUT" Walnut fi @@ -203,6 +204,9 @@ if [ "$CONFIG_EP405" = "y" ]; then define_bool CONFIG_405GP y define_bool CONFIG_EMBEDDEDBOOT y + fi + if [ "$CONFIG_CPCI405" = "y" ]; then + define_bool CONFIG_405GP y fi if [ "$CONFIG_OAK" = "y" -o "$CONFIG_TIVO" = "y" ]; then define_bool CONFIG_403GCX y diff -N -u -r --exclude=SCCS --exclude=BitKeeper --exclude=defconfig /usr/src/linuxppc_2_4_devel/arch/ppc/configs/cpci405_defconfig linuxppc_2_4_devel/arch/ppc/configs/cpci405_defconfig --- /usr/src/linuxppc_2_4_devel/arch/ppc/configs/cpci405_defconfig Thu Jan 1 01:00:00 1970 +++ linuxppc_2_4_devel/arch/ppc/configs/cpci405_defconfig Wed Sep 19 15:42:41 2001 @@ -0,0 +1,479 @@ +# +# Automatically generated by make menuconfig: don't edit +# +# CONFIG_UID16 is not set +# CONFIG_RWSEM_GENERIC_SPINLOCK is not set +CONFIG_RWSEM_XCHGADD_ALGORITHM=y + +# +# Code maturity level options +# +CONFIG_EXPERIMENTAL=y + +# +# Loadable module support +# +CONFIG_MODULES=y +# CONFIG_MODVERSIONS is not set +CONFIG_KMOD=y + +# +# Platform support +# +CONFIG_PPC=y +CONFIG_PPC32=y +# CONFIG_6xx is not set +CONFIG_4xx=y +# CONFIG_POWER3 is not set +# CONFIG_POWER4 is not set +# CONFIG_8xx is not set +# CONFIG_PPC_ISERIES is not set +# CONFIG_OAK is not set +# CONFIG_REDWOOD_4 is not set +# CONFIG_TIVO is not set +# CONFIG_EP405 is not set +CONFIG_CPCI405=y +# CONFIG_WALNUT is not set +CONFIG_PPC601_SYNC_FIX=y +# CONFIG_ALL_PPC is not set +# CONFIG_SMP is not set +# CONFIG_MATH_EMULATION is not set +CONFIG_405GP=y +# CONFIG_405_DMA is not set +CONFIG_ATOMIC_SYNC_FIX=y +CONFIG_IBM405_ERR51=y +CONFIG_NOT_COHERENT_CACHE=y + +# +# General setup +# +# CONFIG_HIGHMEM is not set +# CONFIG_ISA is not set +# CONFIG_EISA is not set +# CONFIG_SBUS is not set +# CONFIG_MCA is not set +CONFIG_PCI=y +CONFIG_NET=y +CONFIG_SYSCTL=y +CONFIG_SYSVIPC=y +# CONFIG_BSD_PROCESS_ACCT is not set +CONFIG_KCORE_ELF=y +CONFIG_BINFMT_ELF=y +CONFIG_KERNEL_ELF=y +# CONFIG_BINFMT_MISC is not set +# CONFIG_PCI_NAMES is not set +# CONFIG_HOTPLUG is not set +# CONFIG_PCMCIA is not set + +# +# Parallel port support +# +# CONFIG_PARPORT is not set +# CONFIG_PPC_RTC is not set +# CONFIG_CMDLINE_BOOL is not set + +# +# Memory Technology Devices (MTD) +# +# CONFIG_MTD is not set + +# +# Plug and Play configuration +# +# CONFIG_PNP is not set +# CONFIG_ISAPNP is not set +# CONFIG_PNPBIOS is not set + +# +# Block devices +# +# CONFIG_BLK_DEV_FD is not set +# CONFIG_VIODASD 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=y +CONFIG_BLK_DEV_RAM_SIZE=4096 +CONFIG_BLK_DEV_INITRD=y + +# +# 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 is not set +# CONFIG_NETLINK is not set +# CONFIG_NETFILTER 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=y +# CONFIG_NET_IPIP is not set +# CONFIG_NET_IPGRE is not set +# CONFIG_IP_MROUTE is not set +# CONFIG_INET_ECN is not set +CONFIG_SYN_COOKIES=y +# CONFIG_IPV6 is not set +# CONFIG_KHTTPD is not set +# CONFIG_ATM 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 + +# +# ATA/IDE/MFM/RLL support +# +CONFIG_IDE=y + +# +# IDE, ATA and ATAPI Block devices +# +CONFIG_BLK_DEV_IDE=y +# CONFIG_BLK_DEV_HD_IDE is not set +# CONFIG_BLK_DEV_HD is not set +CONFIG_BLK_DEV_IDEDISK=y +# CONFIG_IDEDISK_MULTI_MODE is not set +# CONFIG_BLK_DEV_IDEDISK_VENDOR is not set +# CONFIG_BLK_DEV_IDEDISK_FUJITSU is not set +# CONFIG_BLK_DEV_IDEDISK_IBM is not set +# CONFIG_BLK_DEV_IDEDISK_MAXTOR is not set +# CONFIG_BLK_DEV_IDEDISK_QUANTUM is not set +# CONFIG_BLK_DEV_IDEDISK_SEAGATE is not set +# 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_IDECD is not set +# CONFIG_BLK_DEV_IDETAPE is not set +# CONFIG_BLK_DEV_IDEFLOPPY is not set +# CONFIG_BLK_DEV_IDESCSI is not set +# CONFIG_BLK_DEV_CMD640 is not set +# CONFIG_BLK_DEV_CMD640_ENHANCED is not set +# CONFIG_BLK_DEV_ISAPNP is not set +# CONFIG_BLK_DEV_RZ1000 is not set +# CONFIG_BLK_DEV_IDEPCI is not set +# CONFIG_BLK_DEV_SL82C105 is not set +CONFIG_BLK_DEV_CPCI405_IDE=y +# CONFIG_IDE_CHIPSETS is not set +# CONFIG_IDEDMA_AUTO is not set +# CONFIG_DMA_NONPCI is not set +# CONFIG_BLK_DEV_IDE_MODES is not set +# CONFIG_BLK_DEV_ATARAID is not set +# CONFIG_BLK_DEV_ATARAID_PDC is not set +# CONFIG_BLK_DEV_ATARAID_HPT is not set + +# +# SCSI support +# +# CONFIG_SCSI is not set + +# +# IEEE 1394 (FireWire) support (EXPERIMENTAL) +# +# CONFIG_IEEE1394 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 + +# +# Ethernet (10 or 100Mbit) +# +CONFIG_NET_ETHERNET=y +# CONFIG_MACE is not set +# CONFIG_BMAC is not set +# CONFIG_GMAC is not set +# CONFIG_NCR885E is not set +# CONFIG_OAKNET is not set +CONFIG_PPC405_ENET=y +CONFIG_PPC405_ENET_PHY_ADDR=1 +# CONFIG_PPC405_ENET_ERROR_MSG is not set +CONFIG_PPC405_ENET_RX_BUFF=64 +CONFIG_PPC405_ENET_TX_BUFF=8 +CONFIG_PPC405_ENET_GAP=8 +# CONFIG_SUNLANCE is not set +# CONFIG_HAPPYMEAL is not set +# CONFIG_SUNBMAC is not set +# CONFIG_SUNQE is not set +# CONFIG_SUNLANCE 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 is not set +# 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 + +# +# 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 + +# +# Console drivers +# + +# +# Frame-buffer support +# +# CONFIG_FB is not set + +# +# Input core support +# +# CONFIG_INPUT is not set +# CONFIG_INPUT_KEYBDEV is not set +# CONFIG_INPUT_MOUSEDEV is not set +# CONFIG_INPUT_JOYDEV is not set +# CONFIG_INPUT_EVDEV is not set + +# +# Macintosh device drivers +# + +# +# Character devices +# +# CONFIG_VT is not set +CONFIG_SERIAL=y +CONFIG_SERIAL_CONSOLE=y +# CONFIG_SERIAL_EXTENDED is not set +# CONFIG_SERIAL_NONSTANDARD is not set +# CONFIG_UNIX98_PTYS is not set +# CONFIG_VIOCONS is not set + +# +# I2C support +# +CONFIG_I2C=y +# CONFIG_I2C_ALGOBIT is not set +# CONFIG_I2C_ALGOPCF is not set +# CONFIG_I2C_CHARDEV is not set + +# +# Mice +# +# CONFIG_BUSMOUSE is not set +# CONFIG_MOUSE is not set + +# +# Joysticks +# +# CONFIG_INPUT_GAMEPORT is not set +# CONFIG_QIC02_TAPE is not set +# CONFIG_VIOTAPE is not set + +# +# Watchdog Cards +# +# CONFIG_WATCHDOG is not set +# CONFIG_INTEL_RNG is not set +# CONFIG_NVRAM is not set +# CONFIG_RTC is not set +# CONFIG_DTLK is not set +# CONFIG_R3964 is not set +# CONFIG_APPLICOM is not set +# CONFIG_SONYPI is not set + +# +# Ftape, the floppy tape device driver +# +# CONFIG_FTAPE is not set +# CONFIG_AGP is not set +# CONFIG_DRM is not set + +# +# Multimedia devices +# +# CONFIG_VIDEO_DEV is not set + +# +# File systems +# +# CONFIG_QUOTA is not set +# CONFIG_AUTOFS_FS is not set +# CONFIG_AUTOFS4_FS is not set +# CONFIG_REISERFS_FS is not set +# CONFIG_REISERFS_CHECK 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_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 is not set +# CONFIG_CRAMFS is not set +CONFIG_TMPFS=y +# CONFIG_RAMFS is not set +# CONFIG_ISO9660_FS is not set +# CONFIG_JOLIET 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 is not set +# 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_NFS_FS=y +# CONFIG_NFS_V3 is not set +CONFIG_ROOT_NFS=y +# CONFIG_NFSD is not set +# CONFIG_NFSD_V3 is not set +CONFIG_SUNRPC=y +CONFIG_LOCKD=y +# CONFIG_SMB_FS 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 + +# +# Partition Types +# +# CONFIG_PARTITION_ADVANCED is not set +CONFIG_MSDOS_PARTITION=y +# CONFIG_SMB_NLS is not set +# CONFIG_NLS is not set + +# +# Sound +# +# CONFIG_SOUND is not set + +# +# USB support +# +# CONFIG_USB is not set + +# +# Bluetooth support +# +# CONFIG_BLUEZ is not set + +# +# Kernel hacking +# +# CONFIG_MAGIC_SYSRQ is not set +# CONFIG_KGDB is not set +# CONFIG_XMON is not set +# CONFIG_BDI_SWITCH is not set diff -N -u -r --exclude=SCCS --exclude=BitKeeper --exclude=defconfig /usr/src/linuxppc_2_4_devel/arch/ppc/kernel/Makefile linuxppc_2_4_devel/arch/ppc/kernel/Makefile --- /usr/src/linuxppc_2_4_devel/arch/ppc/kernel/Makefile Wed Sep 19 15:34:58 2001 +++ linuxppc_2_4_devel/arch/ppc/kernel/Makefile Wed Sep 19 15:42:41 2001 @@ -45,6 +45,7 @@ obj-$(CONFIG_405_DMA) += ppc405_dma.o obj-$(CONFIG_WALNUT) += walnut.o obj-$(CONFIG_EP405) += ep405.o +obj-$(CONFIG_CPCI405) += cpci405.o ifeq ($(CONFIG_405GP),y) obj-$(CONFIG_PCI) += ppc405_pci.o indirect_pci.o pci_auto.o obj-$(CONFIG_PPC_RTC) += todc_time.o diff -N -u -r --exclude=SCCS --exclude=BitKeeper --exclude=defconfig /usr/src/linuxppc_2_4_devel/arch/ppc/kernel/cpci405.c linuxppc_2_4_devel/arch/ppc/kernel/cpci405.c --- /usr/src/linuxppc_2_4_devel/arch/ppc/kernel/cpci405.c Thu Jan 1 01:00:00 1970 +++ linuxppc_2_4_devel/arch/ppc/kernel/cpci405.c Wed Sep 19 15:42:41 2001 @@ -0,0 +1,51 @@ +/* + * arch/ppc/kernel/cpci405.c + * + * Board setup routines for the esd CPCI-405 cPCI Board. + * + * Author: Stefan Roese + * stefan.roese@esd-electronics.com + * + * Copyright 2001 esd electronic system design - hannover germany + * + * 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/init.h> +#include <asm/system.h> + +#include "pci.h" + + +/* + * Some IRQs unique to CPCI-405. + */ +inline int __init +ppc405_map_irq(struct pci_dev *dev, unsigned char idsel, unsigned char pin) +{ + static char pci_irq_table[][4] = + /* + * PCI IDSEL/INTPIN->INTLINE + * A B C D + */ + { + {28, 28, 28, 28}, /* IDSEL 15 - cPCI slot 8 */ + {29, 29, 29, 29}, /* IDSEL 16 - cPCI slot 7 */ + {30, 30, 30, 30}, /* IDSEL 17 - cPCI slot 6 */ + {27, 27, 27, 27}, /* IDSEL 18 - cPCI slot 5 */ + {28, 28, 28, 28}, /* IDSEL 19 - cPCI slot 4 */ + {29, 29, 29, 29}, /* IDSEL 20 - cPCI slot 3 */ + {30, 30, 30, 30}, /* IDSEL 21 - cPCI slot 2 */ + }; + const long min_idsel = 15, max_idsel = 21, irqs_per_slot = 4; + return PCI_IRQ_TABLE_LOOKUP; +}; + +void __init +board_setup_arch(void) +{ +} diff -N -u -r --exclude=SCCS --exclude=BitKeeper --exclude=defconfig /usr/src/linuxppc_2_4_devel/arch/ppc/kernel/ep405.c linuxppc_2_4_devel/arch/ppc/kernel/ep405.c --- /usr/src/linuxppc_2_4_devel/arch/ppc/kernel/ep405.c Wed Sep 19 15:35:05 2001 +++ linuxppc_2_4_devel/arch/ppc/kernel/ep405.c Wed Sep 19 16:23:46 2001 @@ -9,30 +9,39 @@ */ #include <linux/config.h> #include <linux/init.h> +#include <asm/system.h> -char pci_irq_table[][4] = - /* - * PCI IDSEL/INTPIN->INTLINE - * A B C D - */ +#include "pci.h" + +inline int __init +ppc405_map_irq(struct pci_dev *dev, unsigned char idsel, unsigned char pin) +{ + static char pci_irq_table[][4] = + /* + * PCI IDSEL/INTPIN->INTLINE + * A B C D + */ { - {0, 0, 0, 0}, /* IDSEL 0 - unused */ - {28, 28, 28, 28}, /* IDSEL 1 - PCI slot 1 */ - {29, 29, 29, 29}, /* IDSEL 2 - PCI slot 2 */ - {30, 30, 30, 30}, /* IDSEL 3 - PCI slot 3 */ - {31, 31, 31, 31}, /* IDSEL 4 - PCI slot 4 */ - {0, 0, 0, 0}, /* IDSEL 5 - unused */ - {0, 0, 0, 0}, /* IDSEL 6 - unused */ - {0, 0, 0, 0}, /* IDSEL 7 - unused */ - {0, 0, 0, 0}, /* IDSEL 8 - unused */ - {0, 0, 0, 0}, /* IDSEL 9 - unused */ - {0, 0, 0, 0}, /* IDSEL 10 - unused */ - {0, 0, 0, 0}, /* IDSEL 11 - unused */ - {0, 0, 0, 0}, /* IDSEL 12 - unused */ - {0, 0, 0, 0}, /* IDSEL 13 - unused */ - {0, 0, 0, 0}, /* IDSEL 14 - unused */ - {0, 0, 0, 0}, /* IDSEL 15 - unused */ - }; + {0, 0, 0, 0}, /* IDSEL 0 - unused */ + {28, 28, 28, 28}, /* IDSEL 1 - PCI slot 1 */ + {29, 29, 29, 29}, /* IDSEL 2 - PCI slot 2 */ + {30, 30, 30, 30}, /* IDSEL 3 - PCI slot 3 */ + {31, 31, 31, 31}, /* IDSEL 4 - PCI slot 4 */ + {0, 0, 0, 0}, /* IDSEL 5 - unused */ + {0, 0, 0, 0}, /* IDSEL 6 - unused */ + {0, 0, 0, 0}, /* IDSEL 7 - unused */ + {0, 0, 0, 0}, /* IDSEL 8 - unused */ + {0, 0, 0, 0}, /* IDSEL 9 - unused */ + {0, 0, 0, 0}, /* IDSEL 10 - unused */ + {0, 0, 0, 0}, /* IDSEL 11 - unused */ + {0, 0, 0, 0}, /* IDSEL 12 - unused */ + {0, 0, 0, 0}, /* IDSEL 13 - unused */ + {0, 0, 0, 0}, /* IDSEL 14 - unused */ + {0, 0, 0, 0}, /* IDSEL 15 - unused */ + }; + const long min_idsel = 0, max_idsel = 15, irqs_per_slot = 4; + return PCI_IRQ_TABLE_LOOKUP; +}; void __init diff -N -u -r --exclude=SCCS --exclude=BitKeeper --exclude=defconfig /usr/src/linuxppc_2_4_devel/arch/ppc/kernel/ppc405_pci.c linuxppc_2_4_devel/arch/ppc/kernel/ppc405_pci.c --- /usr/src/linuxppc_2_4_devel/arch/ppc/kernel/ppc405_pci.c Fri Sep 14 15:43:55 2001 +++ linuxppc_2_4_devel/arch/ppc/kernel/ppc405_pci.c Wed Sep 19 15:42:41 2001 @@ -48,6 +48,7 @@ #endif extern void bios_fixup(struct pci_controller *, void *); +extern int ppc405_map_irq(struct pci_dev *dev, unsigned char idsel, unsigned char pin); void __init ppc405_pcibios_fixup_bus(struct pci_bus *bus) { @@ -144,24 +145,6 @@ res->start = 0; } } -} - -static int ppc405_map_irq(struct pci_dev *dev, unsigned char idsel, unsigned char pin) -{ - -#define IRQS_PER_SLOT 4 -#define MAX_IDSEL 15 - - int irq; - extern char pci_irq_table[][4]; - - if ((idsel <= MAX_IDSEL) && (pin <= IRQS_PER_SLOT)) { - irq = pci_irq_table[idsel][pin-1]; - } else { - irq = -1; - } - - return(irq); } void ppc4xx_find_bridges(void) diff -N -u -r --exclude=SCCS --exclude=BitKeeper --exclude=defconfig /usr/src/linuxppc_2_4_devel/arch/ppc/kernel/walnut.c linuxppc_2_4_devel/arch/ppc/kernel/walnut.c --- /usr/src/linuxppc_2_4_devel/arch/ppc/kernel/walnut.c Fri Sep 14 15:44:02 2001 +++ linuxppc_2_4_devel/arch/ppc/kernel/walnut.c Wed Sep 19 15:42:41 2001 @@ -60,12 +60,15 @@ /* Some IRQs unique to Walnut. * Used by the generic 405 PCI setup functions in ppc4xx_pci.c */ -char pci_irq_table[][4] = - /* - * PCI IDSEL/INTPIN->INTLINE - * A B C D - */ - { +inline int __init +ppc405_map_irq(struct pci_dev *dev, unsigned char idsel, unsigned char pin) +{ + static char pci_irq_table[][4] = + /* + * PCI IDSEL/INTPIN->INTLINE + * A B C D + */ + { {0, 0, 0, 0}, /* IDSEL 0 - unused */ {28, 28, 28, 28}, /* IDSEL 1 - PCI slot 1 */ {29, 29, 29, 29}, /* IDSEL 2 - PCI slot 2 */ @@ -83,6 +86,9 @@ {0, 0, 0, 0}, /* IDSEL 14 - unused */ {0, 0, 0, 0}, /* IDSEL 15 - unused */ }; + const long min_idsel = 0, max_idsel = 15, irqs_per_slot = 4; + return PCI_IRQ_TABLE_LOOKUP; +}; void __init diff -N -u -r --exclude=SCCS --exclude=BitKeeper --exclude=defconfig /usr/src/linuxppc_2_4_devel/drivers/ide/Config.in linuxppc_2_4_devel/drivers/ide/Config.in --- /usr/src/linuxppc_2_4_devel/drivers/ide/Config.in Wed Sep 19 15:35:39 2001 +++ linuxppc_2_4_devel/drivers/ide/Config.in Wed Sep 19 15:42:41 2001 @@ -121,6 +121,9 @@ if [ "$CONFIG_MAC" = "y" ]; then dep_bool ' Macintosh Quadra/Powerbook IDE interface support' CONFIG_BLK_DEV_MAC_IDE $CONFIG_MAC fi + if [ "$CONFIG_CPCI405" = "y" ]; then + dep_bool ' CPCI-405 IDE interface support' CONFIG_BLK_DEV_CPCI405_IDE $CONFIG_CPCI405 + fi if [ "$CONFIG_Q40" = "y" ]; then dep_bool ' Q40/Q60 IDE interface support' CONFIG_BLK_DEV_Q40IDE $CONFIG_Q40 fi diff -N -u -r --exclude=SCCS --exclude=BitKeeper --exclude=defconfig /usr/src/linuxppc_2_4_devel/drivers/ide/Makefile linuxppc_2_4_devel/drivers/ide/Makefile --- /usr/src/linuxppc_2_4_devel/drivers/ide/Makefile Wed Sep 19 15:35:39 2001 +++ linuxppc_2_4_devel/drivers/ide/Makefile Wed Sep 19 15:42:41 2001 @@ -33,6 +33,7 @@ ide-obj-$(CONFIG_BLK_DEV_BUDDHA) += buddha.o ide-obj-$(CONFIG_BLK_DEV_CMD640) += cmd640.o ide-obj-$(CONFIG_BLK_DEV_CMD64X) += cmd64x.o +ide-obj-$(CONFIG_BLK_DEV_CPCI405_IDE) += cpci405ide.o ide-obj-$(CONFIG_BLK_DEV_CS5530) += cs5530.o ide-obj-$(CONFIG_BLK_DEV_CY82C693) += cy82c693.o ide-obj-$(CONFIG_BLK_DEV_DTC2278) += dtc2278.o diff -N -u -r --exclude=SCCS --exclude=BitKeeper --exclude=defconfig /usr/src/linuxppc_2_4_devel/drivers/ide/cpci405ide.c linuxppc_2_4_devel/drivers/ide/cpci405ide.c --- /usr/src/linuxppc_2_4_devel/drivers/ide/cpci405ide.c Thu Jan 1 01:00:00 1970 +++ linuxppc_2_4_devel/drivers/ide/cpci405ide.c Wed Sep 19 15:42:41 2001 @@ -0,0 +1,92 @@ +/* + * linux/drivers/ide/cpci405.c -- CPCI405 IDE Driver + * + * Copyright (C) 2001 by Stefan Roese + * + * This driver was written based on information obtained from the MacOS IDE + * driver binary by Mikael Forselius + * + * 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. + */ + +#include <linux/types.h> +#include <linux/mm.h> +#include <linux/interrupt.h> +#include <linux/blkdev.h> +#include <linux/hdreg.h> +#include <linux/delay.h> +#include <linux/ide.h> +#include <linux/init.h> + + +/* + * Base of the IDE interface + */ + +#define CPCI405_HD_BASE 0xf0100000 + +/* + * Offsets from the above base (scaling 4) + */ + +#define CPCI405_HD_DATA 0x00 +#define CPCI405_HD_ERROR 0x01 /* see err-bits */ +#define CPCI405_HD_NSECTOR 0x02 /* nr of sectors to read/write */ +#define CPCI405_HD_SECTOR 0x03 /* starting sector */ +#define CPCI405_HD_LCYL 0x04 /* starting cylinder */ +#define CPCI405_HD_HCYL 0x05 /* high byte of starting cyl */ +#define CPCI405_HD_SELECT 0x06 /* 101dhhhh , d=drive, hhhh=head */ +#define CPCI405_HD_STATUS 0x07 /* see status-bits */ +#define CPCI405_HD_CONTROL 0x0e /* control/altstatus */ + +#define CPCI405_IRQ_IDE 0x1f + +static int cpci405ide_offsets[IDE_NR_PORTS] __initdata = { + CPCI405_HD_DATA, CPCI405_HD_ERROR, CPCI405_HD_NSECTOR, CPCI405_HD_SECTOR, + CPCI405_HD_LCYL, CPCI405_HD_HCYL, CPCI405_HD_SELECT, CPCI405_HD_STATUS, + CPCI405_HD_CONTROL +}; + +static void *cpci405_ide_base_mapped; + + +static int cpci405ide_check_region(ide_ioreg_t start, unsigned int len) +{ + if (((unsigned long)start >= (unsigned long)cpci405_ide_base_mapped) && + (((unsigned long)start+len) <= (unsigned long)cpci405_ide_base_mapped+0x200)) + return 0; + else + return -1; +} + + +/* + * Probe for a CPCI405 IDE interface + */ + +void __init cpci405ide_init(void) +{ + hw_regs_t hw; + int index = -1; + + ppc_ide_md.ide_check_region = cpci405ide_check_region; + +#if 0 + printk("cpci405ide: physical address=%08lx\n", + (unsigned long)CPCI405_HD_BASE); /* test-only */ +#endif + cpci405_ide_base_mapped = + ioremap((unsigned long) CPCI405_HD_BASE, 0x200) - _IO_BASE; +#if 0 + printk("cpci405ide: mapped address=%08lx\n", + (unsigned long)cpci405_ide_base_mapped); /* test-only */ +#endif + ide_setup_ports(&hw, (ide_ioreg_t)cpci405_ide_base_mapped, + cpci405ide_offsets, 0, 0, NULL, CPCI405_IRQ_IDE); + index = ide_register_hw(&hw, NULL); + if (index != -1) + printk("ide%d: CPCI405 IDE interface\n", index); + +} diff -N -u -r --exclude=SCCS --exclude=BitKeeper --exclude=defconfig /usr/src/linuxppc_2_4_devel/drivers/ide/ide.c linuxppc_2_4_devel/drivers/ide/ide.c --- /usr/src/linuxppc_2_4_devel/drivers/ide/ide.c Wed Sep 19 15:35:39 2001 +++ linuxppc_2_4_devel/drivers/ide/ide.c Wed Sep 19 15:42:41 2001 @@ -3395,6 +3395,12 @@ macide_init(); } #endif /* CONFIG_BLK_DEV_MAC_IDE */ +#ifdef CONFIG_BLK_DEV_CPCI405_IDE + { + extern void cpci405ide_init(void); + cpci405ide_init(); + } +#endif /* CONFIG_BLK_DEV_CPCI405_IDE */ #ifdef CONFIG_BLK_DEV_Q40IDE { extern void q40ide_init(void); diff -N -u -r --exclude=SCCS --exclude=BitKeeper --exclude=defconfig /usr/src/linuxppc_2_4_devel/include/asm-ppc/cpci405.h linuxppc_2_4_devel/include/asm-ppc/cpci405.h --- /usr/src/linuxppc_2_4_devel/include/asm-ppc/cpci405.h Thu Jan 1 01:00:00 1970 +++ linuxppc_2_4_devel/include/asm-ppc/cpci405.h Wed Sep 19 15:46:45 2001 @@ -0,0 +1,17 @@ +/* + * BK Id: %F% %I% %G% %U% %#% + */ +/* + * CPCI-405 board specific definitions + * + * Copyright (c) 2001 Stefan Roese (stefan.roese@esd-electronics.com) + */ + +#ifndef __CPCI405_H +#define __CPCI405_H + +#include <linux/config.h> + +#include <asm/ppcboot.h> + +#endif /* __CPCI405_H */ diff -N -u -r --exclude=SCCS --exclude=BitKeeper --exclude=defconfig /usr/src/linuxppc_2_4_devel/include/asm-ppc/ppc4xx.h linuxppc_2_4_devel/include/asm-ppc/ppc4xx.h --- /usr/src/linuxppc_2_4_devel/include/asm-ppc/ppc4xx.h Wed Sep 19 15:36:56 2001 +++ linuxppc_2_4_devel/include/asm-ppc/ppc4xx.h Wed Sep 19 16:16:12 2001 @@ -30,6 +30,10 @@ #include <asm/ep405.h> #endif +#if defined(CONFIG_CPCI405) +#include <asm/cpci405.h> +#endif + /* IO_BASE is for PCI I/O. * ISA not supported, just here to resolve copilation. */ diff -N -u -r --exclude=SCCS --exclude=BitKeeper --exclude=defconfig /usr/src/linuxppc_2_4_devel/include/asm-ppc/ppcboot.h linuxppc_2_4_devel/include/asm-ppc/ppcboot.h --- /usr/src/linuxppc_2_4_devel/include/asm-ppc/ppcboot.h Wed Sep 19 15:36:57 2001 +++ linuxppc_2_4_devel/include/asm-ppc/ppcboot.h Wed Sep 19 15:46:44 2001 @@ -69,11 +69,13 @@ unsigned long bi_vco; /* VCO Out from PLL, in MHz */ #endif unsigned long bi_baudrate; /* Console Baudrate */ -#if defined(CONFIG_PPC405GP) +#if defined(CONFIG_405GP) || defined(CONFIG_405CR) unsigned char bi_s_version[4]; /* Version of this structure */ unsigned char bi_r_version[32]; /* Version of the ROM (IBM) */ unsigned int bi_procfreq; /* CPU (Internal) Freq, in Hz */ unsigned int bi_plb_busfreq; /* PLB Bus speed, in Hz */ +#endif +#if defined(CONFIG_405GP) unsigned int bi_pci_busfreq; /* PCI Bus speed, in Hz */ unsigned char bi_pci_enetaddr[6]; /* PCI Ethernet MAC address */ #endif ^ permalink raw reply [flat|nested] 42+ messages in thread
end of thread, other threads:[~2001-09-29 15:34 UTC | newest]
Thread overview: 42+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <EFEAIMDCOOOHIEPHDNFJEEENDCAA.stefan.roese@esd-electronics.com>
2001-09-10 17:13 ` CPCI-405 port (PPC405GP) Dan Malek
2001-09-11 7:15 ` AW: " Stefan Roese
2001-09-11 17:36 ` Matthew Locke
2001-09-11 17:53 ` Dan Malek
2001-09-12 13:12 ` AW: " Stefan Roese
2001-09-18 18:57 ` Tom Rini
2001-09-19 13:46 ` Stefan Roese
2001-09-19 14:17 ` Tom Rini
2001-09-19 15:55 ` AW: " Stefan Roese
2001-09-19 18:10 ` Dan Malek
2001-09-19 22:57 ` Tom Rini
2001-09-19 23:02 ` Dan Malek
2001-09-19 23:31 ` Tom Rini
2001-09-20 4:12 ` Dan Malek
2001-09-20 9:20 ` Stefan Roese
2001-09-20 15:20 ` Dan Malek
2001-09-20 15:46 ` Tom Rini
2001-09-20 21:43 ` Dan Malek
2001-09-20 21:56 ` Tom Rini
2001-09-21 7:04 ` Geert Uytterhoeven
2001-09-21 13:55 ` Tom Rini
2001-09-23 18:01 ` Wolfgang Denk
[not found] ` <3BAEB9DA.232C8FEB@mvista.com>
2001-09-29 15:34 ` Dan Malek
2001-09-20 14:55 ` Tom Rini
2001-09-20 15:34 ` Dan Malek
2001-09-20 15:51 ` Tom Rini
2001-09-20 16:10 ` Mark Hatle
2001-09-20 21:38 ` Dan Malek
2001-09-23 18:01 ` Wolfgang Denk
2001-09-23 20:54 ` Tom Rini
2001-09-20 14:59 ` Josh Huber
2001-09-20 15:39 ` Dan Malek
2001-09-20 15:57 ` Josh Huber
2001-09-20 16:07 ` Tom Rini
2001-09-20 16:32 ` Josh Huber
2001-09-20 16:35 ` Tom Rini
2001-09-23 18:00 ` Wolfgang Denk
2001-09-23 20:50 ` Tom Rini
2001-09-24 4:04 ` Dan Malek
2001-09-23 18:00 ` Wolfgang Denk
2001-09-20 8:00 ` Stefan Roese
2001-09-19 14:32 ` Stefan Roese
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).