LinuxPPC-Dev Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH][3/3] ppc32: add bamboo defconfig
From: Matt Porter @ 2005-07-27 17:34 UTC (permalink / raw)
  To: akpm; +Cc: linux-kernel, linuxppc-embedded
In-Reply-To: <11224856632322@foobar.com>


Add Bamboo platform defconfig

Signed-off-by: Wade Farnsworth <wfarnsworth@mvista.com>
Signed-off-by: Matt Porter <mporter@kernel.crashing.org>

diff --git a/arch/ppc/configs/bamboo_defconfig b/arch/ppc/configs/bamboo_de=
fconfig
new file mode 100644
--- /dev/null
+++ b/arch/ppc/configs/bamboo_defconfig
@@ -0,0 +1,943 @@
+#
+# Automatically generated make config: don't edit
+# Linux kernel version: 2.6.12
+# Tue Jun 28 15:24:25 2005
+#
+CONFIG_MMU=3Dy
+CONFIG_GENERIC_HARDIRQS=3Dy
+CONFIG_RWSEM_XCHGADD_ALGORITHM=3Dy
+CONFIG_GENERIC_CALIBRATE_DELAY=3Dy
+CONFIG_HAVE_DEC_LOCK=3Dy
+CONFIG_PPC=3Dy
+CONFIG_PPC32=3Dy
+CONFIG_GENERIC_NVRAM=3Dy
+CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=3Dy
+
+#
+# Code maturity level options
+#
+CONFIG_EXPERIMENTAL=3Dy
+CONFIG_CLEAN_COMPILE=3Dy
+CONFIG_BROKEN_ON_SMP=3Dy
+CONFIG_INIT_ENV_ARG_LIMIT=3D32
+
+#
+# General setup
+#
+CONFIG_LOCALVERSION=3D""
+CONFIG_SWAP=3Dy
+CONFIG_SYSVIPC=3Dy
+# CONFIG_POSIX_MQUEUE is not set
+# CONFIG_BSD_PROCESS_ACCT is not set
+CONFIG_SYSCTL=3Dy
+# CONFIG_AUDIT is not set
+# CONFIG_HOTPLUG is not set
+CONFIG_KOBJECT_UEVENT=3Dy
+# CONFIG_IKCONFIG is not set
+CONFIG_EMBEDDED=3Dy
+CONFIG_KALLSYMS=3Dy
+# CONFIG_KALLSYMS_ALL is not set
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
+CONFIG_PRINTK=3Dy
+CONFIG_BUG=3Dy
+CONFIG_BASE_FULL=3Dy
+CONFIG_FUTEX=3Dy
+CONFIG_EPOLL=3Dy
+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_SHMEM=3Dy
+CONFIG_CC_ALIGN_FUNCTIONS=3D0
+CONFIG_CC_ALIGN_LABELS=3D0
+CONFIG_CC_ALIGN_LOOPS=3D0
+CONFIG_CC_ALIGN_JUMPS=3D0
+# CONFIG_TINY_SHMEM is not set
+CONFIG_BASE_SMALL=3D0
+
+#
+# Loadable module support
+#
+CONFIG_MODULES=3Dy
+CONFIG_MODULE_UNLOAD=3Dy
+# CONFIG_MODULE_FORCE_UNLOAD is not set
+CONFIG_OBSOLETE_MODPARM=3Dy
+# CONFIG_MODVERSIONS is not set
+# CONFIG_MODULE_SRCVERSION_ALL is not set
+CONFIG_KMOD=3Dy
+
+#
+# Processor
+#
+# CONFIG_6xx is not set
+# CONFIG_40x is not set
+CONFIG_44x=3Dy
+# CONFIG_POWER3 is not set
+# CONFIG_POWER4 is not set
+# CONFIG_8xx is not set
+# CONFIG_E200 is not set
+# CONFIG_E500 is not set
+CONFIG_PPC_FPU=3Dy
+CONFIG_BOOKE=3Dy
+CONFIG_PTE_64BIT=3Dy
+CONFIG_PHYS_64BIT=3Dy
+# CONFIG_MATH_EMULATION is not set
+# CONFIG_KEXEC is not set
+# CONFIG_CPU_FREQ is not set
+CONFIG_4xx=3Dy
+
+#
+# IBM 4xx options
+#
+CONFIG_BAMBOO=3Dy
+# CONFIG_EBONY is not set
+# CONFIG_LUAN is not set
+# CONFIG_OCOTEA is not set
+CONFIG_440EP=3Dy
+CONFIG_440=3Dy
+CONFIG_IBM440EP_ERR42=3Dy
+CONFIG_IBM_OCP=3Dy
+# CONFIG_PPC4xx_DMA is not set
+CONFIG_PPC_GEN550=3Dy
+# CONFIG_PM is not set
+CONFIG_NOT_COHERENT_CACHE=3Dy
+
+#
+# Platform options
+#
+# CONFIG_PC_KEYBOARD is not set
+# CONFIG_SMP is not set
+# CONFIG_PREEMPT is not set
+# CONFIG_HIGHMEM is not set
+CONFIG_SELECT_MEMORY_MODEL=3Dy
+CONFIG_FLATMEM_MANUAL=3Dy
+# CONFIG_DISCONTIGMEM_MANUAL is not set
+# CONFIG_SPARSEMEM_MANUAL is not set
+CONFIG_FLATMEM=3Dy
+CONFIG_FLAT_NODE_MEM_MAP=3Dy
+CONFIG_BINFMT_ELF=3Dy
+# CONFIG_BINFMT_MISC is not set
+CONFIG_CMDLINE_BOOL=3Dy
+CONFIG_CMDLINE=3D"ip=3Don"
+CONFIG_SECCOMP=3Dy
+CONFIG_ISA_DMA_API=3Dy
+
+#
+# Bus options
+#
+CONFIG_PCI=3Dy
+CONFIG_PCI_DOMAINS=3Dy
+# CONFIG_PCI_LEGACY_PROC is not set
+# CONFIG_PCI_NAMES is not set
+# CONFIG_PCI_DEBUG is not set
+
+#
+# PCCARD (PCMCIA/CardBus) support
+#
+# CONFIG_PCCARD is not set
+
+#
+# Advanced setup
+#
+# CONFIG_ADVANCED_OPTIONS is not set
+
+#
+# Default settings for advanced configuration options are used
+#
+CONFIG_HIGHMEM_START=3D0xfe000000
+CONFIG_LOWMEM_SIZE=3D0x30000000
+CONFIG_KERNEL_START=3D0xc0000000
+CONFIG_TASK_SIZE=3D0x80000000
+CONFIG_CONSISTENT_START=3D0xff100000
+CONFIG_CONSISTENT_SIZE=3D0x00200000
+CONFIG_BOOT_LOAD=3D0x01000000
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+# CONFIG_STANDALONE is not set
+CONFIG_PREVENT_FIRMWARE_BUILD=3Dy
+# CONFIG_FW_LOADER is not set
+# CONFIG_DEBUG_DRIVER is not set
+
+#
+# Memory Technology Devices (MTD)
+#
+# CONFIG_MTD is not set
+
+#
+# Parallel port support
+#
+# CONFIG_PARPORT is not set
+
+#
+# Plug and Play support
+#
+
+#
+# Block devices
+#
+# CONFIG_BLK_DEV_FD 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_UMEM is not set
+# CONFIG_BLK_DEV_COW_COMMON is not set
+# CONFIG_BLK_DEV_LOOP is not set
+# CONFIG_BLK_DEV_NBD is not set
+# CONFIG_BLK_DEV_SX8 is not set
+# CONFIG_BLK_DEV_UB is not set
+# CONFIG_BLK_DEV_RAM is not set
+CONFIG_BLK_DEV_RAM_COUNT=3D16
+CONFIG_INITRAMFS_SOURCE=3D""
+# CONFIG_LBD is not set
+# CONFIG_CDROM_PKTCDVD is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=3Dy
+CONFIG_IOSCHED_AS=3Dy
+CONFIG_IOSCHED_DEADLINE=3Dy
+CONFIG_IOSCHED_CFQ=3Dy
+# CONFIG_ATA_OVER_ETH is not set
+
+#
+# ATA/ATAPI/MFM/RLL support
+#
+CONFIG_IDE=3Dy
+CONFIG_BLK_DEV_IDE=3Dy
+
+#
+# Please see Documentation/ide.txt for help/info on IDE drives
+#
+# CONFIG_BLK_DEV_IDE_SATA is not set
+CONFIG_BLK_DEV_IDEDISK=3Dy
+# CONFIG_IDEDISK_MULTI_MODE 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_IDE_TASK_IOCTL is not set
+
+#
+# IDE chipset support/bugfixes
+#
+CONFIG_IDE_GENERIC=3Dy
+CONFIG_BLK_DEV_IDEPCI=3Dy
+# CONFIG_IDEPCI_SHARE_IRQ is not set
+# CONFIG_BLK_DEV_OFFBOARD is not set
+# CONFIG_BLK_DEV_GENERIC is not set
+# CONFIG_BLK_DEV_OPTI621 is not set
+# CONFIG_BLK_DEV_SL82C105 is not set
+CONFIG_BLK_DEV_IDEDMA_PCI=3Dy
+# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
+# CONFIG_IDEDMA_PCI_AUTO is not set
+# CONFIG_BLK_DEV_AEC62XX is not set
+# CONFIG_BLK_DEV_ALI15X3 is not set
+# CONFIG_BLK_DEV_AMD74XX is not set
+CONFIG_BLK_DEV_CMD64X=3Dy
+# CONFIG_BLK_DEV_TRIFLEX is not set
+# CONFIG_BLK_DEV_CY82C693 is not set
+# CONFIG_BLK_DEV_CS5520 is not set
+# CONFIG_BLK_DEV_CS5530 is not set
+# CONFIG_BLK_DEV_HPT34X is not set
+# CONFIG_BLK_DEV_HPT366 is not set
+# CONFIG_BLK_DEV_SC1200 is not set
+# CONFIG_BLK_DEV_PIIX is not set
+# CONFIG_BLK_DEV_IT821X is not set
+# CONFIG_BLK_DEV_NS87415 is not set
+# CONFIG_BLK_DEV_PDC202XX_OLD is not set
+# CONFIG_BLK_DEV_PDC202XX_NEW is not set
+# CONFIG_BLK_DEV_SVWKS is not set
+# CONFIG_BLK_DEV_SIIMAGE is not set
+# CONFIG_BLK_DEV_SLC90E66 is not set
+# CONFIG_BLK_DEV_TRM290 is not set
+# CONFIG_BLK_DEV_VIA82CXXX is not set
+# CONFIG_IDE_ARM is not set
+CONFIG_BLK_DEV_IDEDMA=3Dy
+# CONFIG_IDEDMA_IVB is not set
+# CONFIG_IDEDMA_AUTO is not set
+# CONFIG_BLK_DEV_HD is not set
+
+#
+# SCSI device support
+#
+CONFIG_SCSI=3Dy
+CONFIG_SCSI_PROC_FS=3Dy
+
+#
+# SCSI support type (disk, tape, CD-ROM)
+#
+# CONFIG_BLK_DEV_SD is not set
+CONFIG_CHR_DEV_ST=3Dy
+# CONFIG_CHR_DEV_OSST is not set
+# CONFIG_BLK_DEV_SR is not set
+# CONFIG_CHR_DEV_SG is not set
+# CONFIG_CHR_DEV_SCH is not set
+
+#
+# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
+#
+# CONFIG_SCSI_MULTI_LUN is not set
+# CONFIG_SCSI_CONSTANTS is not set
+# CONFIG_SCSI_LOGGING is not set
+
+#
+# SCSI Transport Attributes
+#
+CONFIG_SCSI_SPI_ATTRS=3Dy
+# CONFIG_SCSI_FC_ATTRS is not set
+# CONFIG_SCSI_ISCSI_ATTRS is not set
+
+#
+# SCSI low-level drivers
+#
+# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
+# CONFIG_SCSI_3W_9XXX is not set
+# CONFIG_SCSI_ACARD is not set
+# CONFIG_SCSI_AACRAID is not set
+# CONFIG_SCSI_AIC7XXX is not set
+# CONFIG_SCSI_AIC7XXX_OLD is not set
+# CONFIG_SCSI_AIC79XX is not set
+# CONFIG_SCSI_DPT_I2O is not set
+# CONFIG_MEGARAID_NEWGEN is not set
+# CONFIG_MEGARAID_LEGACY is not set
+# CONFIG_SCSI_SATA is not set
+# CONFIG_SCSI_BUSLOGIC is not set
+# CONFIG_SCSI_DMX3191D is not set
+# CONFIG_SCSI_EATA is not set
+# CONFIG_SCSI_FUTURE_DOMAIN is not set
+# CONFIG_SCSI_GDTH is not set
+# CONFIG_SCSI_IPS is not set
+# CONFIG_SCSI_INITIO is not set
+# CONFIG_SCSI_INIA100 is not set
+CONFIG_SCSI_SYM53C8XX_2=3Dy
+CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=3D1
+CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=3D16
+CONFIG_SCSI_SYM53C8XX_MAX_TAGS=3D64
+# CONFIG_SCSI_SYM53C8XX_IOMAPPED is not set
+# CONFIG_SCSI_IPR is not set
+# CONFIG_SCSI_QLOGIC_FC is not set
+# CONFIG_SCSI_QLOGIC_1280 is not set
+CONFIG_SCSI_QLA2XXX=3Dy
+# CONFIG_SCSI_QLA21XX is not set
+# CONFIG_SCSI_QLA22XX is not set
+# CONFIG_SCSI_QLA2300 is not set
+# CONFIG_SCSI_QLA2322 is not set
+# CONFIG_SCSI_QLA6312 is not set
+# CONFIG_SCSI_LPFC is not set
+# CONFIG_SCSI_DC395x is not set
+# CONFIG_SCSI_DC390T is not set
+# CONFIG_SCSI_NSP32 is not set
+# CONFIG_SCSI_DEBUG is not set
+
+#
+# Multi-device support (RAID and LVM)
+#
+# CONFIG_MD is not set
+
+#
+# Fusion MPT device support
+#
+# CONFIG_FUSION is not set
+# CONFIG_FUSION_SPI is not set
+# CONFIG_FUSION_FC is not set
+
+#
+# IEEE 1394 (FireWire) support
+#
+# CONFIG_IEEE1394 is not set
+
+#
+# I2O device support
+#
+# CONFIG_I2O is not set
+
+#
+# Macintosh device drivers
+#
+
+#
+# Networking support
+#
+CONFIG_NET=3Dy
+
+#
+# Networking options
+#
+CONFIG_PACKET=3Dy
+# CONFIG_PACKET_MMAP is not set
+CONFIG_UNIX=3Dy
+# CONFIG_NET_KEY is not set
+CONFIG_INET=3Dy
+# CONFIG_IP_MULTICAST is not set
+# CONFIG_IP_ADVANCED_ROUTER is not set
+CONFIG_IP_FIB_HASH=3Dy
+CONFIG_IP_PNP=3Dy
+# CONFIG_IP_PNP_DHCP is not set
+CONFIG_IP_PNP_BOOTP=3Dy
+# CONFIG_IP_PNP_RARP is not set
+# CONFIG_NET_IPIP is not set
+# CONFIG_NET_IPGRE is not set
+# CONFIG_ARPD is not set
+# CONFIG_SYN_COOKIES is not set
+# CONFIG_INET_AH is not set
+# CONFIG_INET_ESP is not set
+# CONFIG_INET_IPCOMP is not set
+# CONFIG_INET_TUNNEL is not set
+CONFIG_IP_TCPDIAG=3Dy
+# CONFIG_IP_TCPDIAG_IPV6 is not set
+# CONFIG_TCP_CONG_ADVANCED is not set
+CONFIG_TCP_CONG_BIC=3Dy
+
+#
+# IP: Virtual Server Configuration
+#
+# CONFIG_IP_VS is not set
+# CONFIG_IPV6 is not set
+CONFIG_NETFILTER=3Dy
+# CONFIG_NETFILTER_DEBUG is not set
+
+#
+# IP: Netfilter Configuration
+#
+# CONFIG_IP_NF_CONNTRACK is not set
+# CONFIG_IP_NF_CONNTRACK_MARK is not set
+# CONFIG_IP_NF_QUEUE is not set
+# CONFIG_IP_NF_IPTABLES is not set
+# CONFIG_IP_NF_ARPTABLES is not set
+
+#
+# SCTP Configuration (EXPERIMENTAL)
+#
+# CONFIG_IP_SCTP is not set
+# CONFIG_ATM is not set
+# CONFIG_BRIDGE is not set
+# CONFIG_VLAN_8021Q is not set
+# CONFIG_DECNET is not set
+# CONFIG_LLC2 is not set
+# CONFIG_IPX is not set
+# CONFIG_ATALK is not set
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_NET_DIVERT is not set
+# CONFIG_ECONET is not set
+# CONFIG_WAN_ROUTER is not set
+
+#
+# QoS and/or fair queueing
+#
+# CONFIG_NET_SCHED is not set
+# CONFIG_NET_CLS_ROUTE is not set
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
+# CONFIG_HAMRADIO is not set
+# CONFIG_IRDA is not set
+# CONFIG_BT is not set
+CONFIG_NETDEVICES=3Dy
+# CONFIG_DUMMY is not set
+# CONFIG_BONDING is not set
+# CONFIG_EQUALIZER is not set
+# CONFIG_TUN is not set
+
+#
+# ARCnet devices
+#
+# CONFIG_ARCNET is not set
+
+#
+# Ethernet (10 or 100Mbit)
+#
+CONFIG_NET_ETHERNET=3Dy
+CONFIG_MII=3Dy
+# CONFIG_HAPPYMEAL is not set
+# CONFIG_SUNGEM is not set
+# CONFIG_NET_VENDOR_3COM is not set
+
+#
+# Tulip family network device support
+#
+# CONFIG_NET_TULIP is not set
+# CONFIG_HP100 is not set
+CONFIG_IBM_EMAC=3Dy
+# CONFIG_IBM_EMAC_ERRMSG is not set
+CONFIG_IBM_EMAC_RXB=3D64
+CONFIG_IBM_EMAC_TXB=3D8
+CONFIG_IBM_EMAC_FGAP=3D8
+CONFIG_IBM_EMAC_SKBRES=3D0
+CONFIG_NET_PCI=3Dy
+# CONFIG_PCNET32 is not set
+# CONFIG_AMD8111_ETH is not set
+# CONFIG_ADAPTEC_STARFIRE is not set
+# CONFIG_B44 is not set
+# CONFIG_FORCEDETH is not set
+# CONFIG_DGRS is not set
+CONFIG_EEPRO100=3Dy
+# CONFIG_E100 is not set
+# CONFIG_FEALNX is not set
+CONFIG_NATSEMI=3Dy
+# CONFIG_NE2K_PCI is not set
+# CONFIG_8139CP is not set
+# CONFIG_8139TOO is not set
+# CONFIG_SIS900 is not set
+# CONFIG_EPIC100 is not set
+# CONFIG_SUNDANCE is not set
+# CONFIG_TLAN is not set
+# CONFIG_VIA_RHINE is not set
+
+#
+# Ethernet (1000 Mbit)
+#
+# CONFIG_ACENIC is not set
+# CONFIG_DL2K is not set
+CONFIG_E1000=3Dy
+# CONFIG_E1000_NAPI is not set
+# CONFIG_NS83820 is not set
+# CONFIG_HAMACHI is not set
+# CONFIG_YELLOWFIN is not set
+# CONFIG_R8169 is not set
+# CONFIG_SKGE is not set
+# CONFIG_SK98LIN is not set
+# CONFIG_VIA_VELOCITY is not set
+# CONFIG_TIGON3 is not set
+# CONFIG_BNX2 is not set
+
+#
+# Ethernet (10000 Mbit)
+#
+# CONFIG_IXGB is not set
+# CONFIG_S2IO is not set
+
+#
+# Token Ring devices
+#
+# CONFIG_TR is not set
+
+#
+# Wireless LAN (non-hamradio)
+#
+# CONFIG_NET_RADIO is not set
+
+#
+# Wan interfaces
+#
+# CONFIG_WAN is not set
+# CONFIG_FDDI is not set
+# CONFIG_HIPPI is not set
+# CONFIG_PPP is not set
+# CONFIG_SLIP is not set
+# CONFIG_NET_FC is not set
+# CONFIG_SHAPER is not set
+# CONFIG_NETCONSOLE is not set
+
+#
+# ISDN subsystem
+#
+# CONFIG_ISDN is not set
+
+#
+# Telephony Support
+#
+# CONFIG_PHONE is not set
+
+#
+# Input device support
+#
+CONFIG_INPUT=3Dy
+
+#
+# Userland interfaces
+#
+CONFIG_INPUT_MOUSEDEV=3Dy
+CONFIG_INPUT_MOUSEDEV_PSAUX=3Dy
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=3D1024
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=3D768
+# CONFIG_INPUT_JOYDEV is not set
+# CONFIG_INPUT_TSDEV is not set
+# CONFIG_INPUT_EVDEV is not set
+# CONFIG_INPUT_EVBUG is not set
+
+#
+# Input Device Drivers
+#
+# CONFIG_INPUT_KEYBOARD is not set
+# CONFIG_INPUT_MOUSE is not set
+# CONFIG_INPUT_JOYSTICK is not set
+# CONFIG_INPUT_TOUCHSCREEN is not set
+# CONFIG_INPUT_MISC is not set
+
+#
+# Hardware I/O ports
+#
+CONFIG_SERIO=3Dy
+# CONFIG_SERIO_I8042 is not set
+# CONFIG_SERIO_SERPORT is not set
+# CONFIG_SERIO_PCIPS2 is not set
+# CONFIG_SERIO_LIBPS2 is not set
+# CONFIG_SERIO_RAW is not set
+# CONFIG_GAMEPORT is not set
+
+#
+# Character devices
+#
+# CONFIG_VT is not set
+# CONFIG_SERIAL_NONSTANDARD is not set
+
+#
+# Serial drivers
+#
+CONFIG_SERIAL_8250=3Dy
+CONFIG_SERIAL_8250_CONSOLE=3Dy
+CONFIG_SERIAL_8250_NR_UARTS=3D4
+CONFIG_SERIAL_8250_EXTENDED=3Dy
+# CONFIG_SERIAL_8250_MANY_PORTS is not set
+CONFIG_SERIAL_8250_SHARE_IRQ=3Dy
+# CONFIG_SERIAL_8250_DETECT_IRQ is not set
+# CONFIG_SERIAL_8250_RSA is not set
+
+#
+# Non-8250 serial port support
+#
+CONFIG_SERIAL_CORE=3Dy
+CONFIG_SERIAL_CORE_CONSOLE=3Dy
+# CONFIG_SERIAL_JSM is not set
+CONFIG_UNIX98_PTYS=3Dy
+CONFIG_LEGACY_PTYS=3Dy
+CONFIG_LEGACY_PTY_COUNT=3D256
+
+#
+# IPMI
+#
+# CONFIG_IPMI_HANDLER is not set
+
+#
+# Watchdog Cards
+#
+# CONFIG_WATCHDOG is not set
+# CONFIG_NVRAM is not set
+# CONFIG_GEN_RTC is not set
+# CONFIG_DTLK is not set
+# CONFIG_R3964 is not set
+# CONFIG_APPLICOM is not set
+
+#
+# Ftape, the floppy tape device driver
+#
+# CONFIG_AGP is not set
+# CONFIG_DRM is not set
+# CONFIG_RAW_DRIVER is not set
+
+#
+# TPM devices
+#
+# CONFIG_TCG_TPM is not set
+
+#
+# I2C support
+#
+# CONFIG_I2C is not set
+
+#
+# Dallas's 1-wire bus
+#
+# CONFIG_W1 is not set
+
+#
+# Misc devices
+#
+
+#
+# Multimedia devices
+#
+# CONFIG_VIDEO_DEV is not set
+
+#
+# Digital Video Broadcasting Devices
+#
+# CONFIG_DVB is not set
+
+#
+# Graphics support
+#
+# CONFIG_FB is not set
+
+#
+# Sound
+#
+# CONFIG_SOUND is not set
+
+#
+# USB support
+#
+CONFIG_USB_ARCH_HAS_HCD=3Dy
+CONFIG_USB_ARCH_HAS_OHCI=3Dy
+CONFIG_USB=3Dy
+CONFIG_USB_DEBUG=3Dy
+
+#
+# Miscellaneous USB options
+#
+# CONFIG_USB_DEVICEFS is not set
+# CONFIG_USB_BANDWIDTH is not set
+# CONFIG_USB_DYNAMIC_MINORS is not set
+# CONFIG_USB_OTG is not set
+
+#
+# USB Host Controller Drivers
+#
+# CONFIG_USB_EHCI_HCD is not set
+# CONFIG_USB_ISP116X_HCD is not set
+# CONFIG_USB_OHCI_HCD is not set
+# CONFIG_USB_UHCI_HCD is not set
+# CONFIG_USB_SL811_HCD is not set
+
+#
+# USB Device Class drivers
+#
+# CONFIG_USB_BLUETOOTH_TTY is not set
+# CONFIG_USB_ACM is not set
+# CONFIG_USB_PRINTER is not set
+
+#
+# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be need=
ed; see USB_STORAGE Help for more information
+#
+# CONFIG_USB_STORAGE is not set
+
+#
+# USB Input Devices
+#
+# CONFIG_USB_HID is not set
+
+#
+# USB HID Boot Protocol drivers
+#
+# CONFIG_USB_KBD is not set
+# CONFIG_USB_MOUSE is not set
+# CONFIG_USB_AIPTEK is not set
+# CONFIG_USB_WACOM is not set
+# CONFIG_USB_ACECAD is not set
+# CONFIG_USB_KBTAB is not set
+# CONFIG_USB_POWERMATE is not set
+# CONFIG_USB_MTOUCH is not set
+# CONFIG_USB_ITMTOUCH is not set
+# CONFIG_USB_EGALAX is not set
+# CONFIG_USB_XPAD is not set
+# CONFIG_USB_ATI_REMOTE is not set
+
+#
+# USB Imaging devices
+#
+# CONFIG_USB_MDC800 is not set
+# CONFIG_USB_MICROTEK is not set
+
+#
+# USB Multimedia devices
+#
+# CONFIG_USB_DABUSB is not set
+
+#
+# Video4Linux support is needed for USB Multimedia device support
+#
+
+#
+# USB Network Adapters
+#
+# CONFIG_USB_CATC is not set
+# CONFIG_USB_KAWETH is not set
+CONFIG_USB_PEGASUS=3Dy
+# CONFIG_USB_RTL8150 is not set
+# CONFIG_USB_USBNET is not set
+CONFIG_USB_MON=3Dy
+
+#
+# USB port drivers
+#
+
+#
+# USB Serial Converter support
+#
+# CONFIG_USB_SERIAL is not set
+
+#
+# USB Miscellaneous drivers
+#
+# CONFIG_USB_EMI62 is not set
+# CONFIG_USB_EMI26 is not set
+# CONFIG_USB_AUERSWALD is not set
+# CONFIG_USB_RIO500 is not set
+# CONFIG_USB_LEGOTOWER is not set
+# CONFIG_USB_LCD is not set
+# CONFIG_USB_LED is not set
+# CONFIG_USB_CYTHERM is not set
+# CONFIG_USB_PHIDGETKIT is not set
+# CONFIG_USB_PHIDGETSERVO is not set
+# CONFIG_USB_IDMOUSE is not set
+
+#
+# USB DSL modem support
+#
+
+#
+# USB Gadget Support
+#
+# CONFIG_USB_GADGET is not set
+
+#
+# MMC/SD Card support
+#
+# CONFIG_MMC is not set
+
+#
+# InfiniBand support
+#
+# CONFIG_INFINIBAND is not set
+
+#
+# SN Devices
+#
+
+#
+# File systems
+#
+# CONFIG_EXT2_FS is not set
+# CONFIG_EXT3_FS is not set
+# CONFIG_JBD is not set
+# CONFIG_REISERFS_FS is not set
+# CONFIG_JFS_FS is not set
+
+#
+# XFS support
+#
+# CONFIG_XFS_FS is not set
+# CONFIG_MINIX_FS is not set
+# CONFIG_ROMFS_FS is not set
+# CONFIG_QUOTA is not set
+CONFIG_DNOTIFY=3Dy
+# CONFIG_AUTOFS_FS is not set
+# CONFIG_AUTOFS4_FS is not set
+
+#
+# CD-ROM/DVD Filesystems
+#
+# CONFIG_ISO9660_FS is not set
+# CONFIG_UDF_FS is not set
+
+#
+# DOS/FAT/NT Filesystems
+#
+# CONFIG_MSDOS_FS is not set
+# CONFIG_VFAT_FS is not set
+# CONFIG_NTFS_FS is not set
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=3Dy
+CONFIG_PROC_KCORE=3Dy
+CONFIG_SYSFS=3Dy
+# CONFIG_DEVPTS_FS_XATTR is not set
+# CONFIG_TMPFS is not set
+# CONFIG_HUGETLB_PAGE is not set
+CONFIG_RAMFS=3Dy
+
+#
+# Miscellaneous filesystems
+#
+# CONFIG_ADFS_FS is not set
+# CONFIG_AFFS_FS is not set
+# CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
+# CONFIG_BEFS_FS is not set
+# CONFIG_BFS_FS is not set
+# CONFIG_EFS_FS is not set
+# CONFIG_CRAMFS is not set
+# CONFIG_VXFS_FS is not set
+# CONFIG_HPFS_FS is not set
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_SYSV_FS is not set
+# CONFIG_UFS_FS is not set
+
+#
+# Network File Systems
+#
+CONFIG_NFS_FS=3Dy
+# CONFIG_NFS_V3 is not set
+# CONFIG_NFS_V4 is not set
+# CONFIG_NFS_DIRECTIO is not set
+# CONFIG_NFSD is not set
+CONFIG_ROOT_NFS=3Dy
+CONFIG_LOCKD=3Dy
+CONFIG_NFS_COMMON=3Dy
+CONFIG_SUNRPC=3Dy
+# CONFIG_RPCSEC_GSS_KRB5 is not set
+# CONFIG_RPCSEC_GSS_SPKM3 is not set
+# CONFIG_SMB_FS is not set
+# CONFIG_CIFS is not set
+# CONFIG_NCP_FS is not set
+# CONFIG_CODA_FS is not set
+# CONFIG_AFS_FS is not set
+
+#
+# Partition Types
+#
+# CONFIG_PARTITION_ADVANCED is not set
+CONFIG_MSDOS_PARTITION=3Dy
+
+#
+# Native Language Support
+#
+# CONFIG_NLS is not set
+
+#
+# Library routines
+#
+# CONFIG_CRC_CCITT is not set
+CONFIG_CRC32=3Dy
+# CONFIG_LIBCRC32C is not set
+
+#
+# Profiling support
+#
+# CONFIG_PROFILING is not set
+
+#
+# Kernel hacking
+#
+# CONFIG_PRINTK_TIME is not set
+CONFIG_DEBUG_KERNEL=3Dy
+CONFIG_MAGIC_SYSRQ=3Dy
+CONFIG_LOG_BUF_SHIFT=3D14
+# CONFIG_SCHEDSTATS is not set
+# CONFIG_DEBUG_SLAB is not set
+# CONFIG_DEBUG_SPINLOCK is not set
+# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
+# CONFIG_DEBUG_KOBJECT is not set
+CONFIG_DEBUG_INFO=3Dy
+# CONFIG_DEBUG_FS is not set
+# CONFIG_KGDB is not set
+# CONFIG_XMON is not set
+CONFIG_BDI_SWITCH=3Dy
+# CONFIG_SERIAL_TEXT_DEBUG is not set
+CONFIG_PPC_OCP=3Dy
+
+#
+# Security options
+#
+# CONFIG_KEYS is not set
+# CONFIG_SECURITY is not set
+
+#
+# Cryptographic options
+#
+# CONFIG_CRYPTO is not set
+
+#
+# Hardware crypto devices
+#

^ permalink raw reply

* [PATCH][1/3] ppc32: add 440ep support
From: Matt Porter @ 2005-07-27 17:34 UTC (permalink / raw)
  To: akpm; +Cc: linux-kernel, linuxppc-embedded


Add PPC440EP core support.  PPC440EP is a PPC440-based SoC with
a classic PPC FPU and another set of peripherals.

Signed-off-by: Wade Farnsworth <wfarnsworth@mvista.com>
Signed-off-by: Matt Porter <mporter@kernel.crashing.org>

diff --git a/arch/ppc/boot/simple/Makefile b/arch/ppc/boot/simple/Makefile
--- a/arch/ppc/boot/simple/Makefile
+++ b/arch/ppc/boot/simple/Makefile
@@ -61,6 +61,12 @@ zimageinitrd-$(CONFIG_IBM_OPENBIOS)	:=3D z
          end-$(CONFIG_EMBEDDEDBOOT)	:=3D embedded
         misc-$(CONFIG_EMBEDDEDBOOT)	:=3D misc-embedded.o
=20
+      zimage-$(CONFIG_BAMBOO)		:=3D zImage-TREE
+zimageinitrd-$(CONFIG_BAMBOO)		:=3D zImage.initrd-TREE
+         end-$(CONFIG_BAMBOO)		:=3D bamboo
+  entrypoint-$(CONFIG_BAMBOO)		:=3D 0x01000000
+     extra.o-$(CONFIG_BAMBOO)		:=3D pibs.o
+
       zimage-$(CONFIG_EBONY)		:=3D zImage-TREE
 zimageinitrd-$(CONFIG_EBONY)		:=3D zImage.initrd-TREE
          end-$(CONFIG_EBONY)		:=3D ebony
diff --git a/arch/ppc/boot/simple/pibs.c b/arch/ppc/boot/simple/pibs.c
--- a/arch/ppc/boot/simple/pibs.c
+++ b/arch/ppc/boot/simple/pibs.c
@@ -91,9 +91,11 @@ load_kernel(unsigned long load_addr, int
=20
 	mac64 =3D simple_strtoull((char *)PIBS_MAC_BASE, 0, 16);
 	memcpy(hold_residual->bi_enetaddr, (char *)&mac64+2, 6);
-#ifdef CONFIG_440GX
+#if defined(CONFIG_440GX) || defined(CONFIG_440EP)
 	mac64 =3D simple_strtoull((char *)(PIBS_MAC_BASE+PIBS_MAC_OFFSET), 0, 16);
 	memcpy(hold_residual->bi_enet1addr, (char *)&mac64+2, 6);
+#endif
+#ifdef CONFIG_440GX
 	mac64 =3D simple_strtoull((char *)(PIBS_MAC_BASE+PIBS_MAC_OFFSET*2), 0, 1=
6);
 	memcpy(hold_residual->bi_enet2addr, (char *)&mac64+2, 6);
 	mac64 =3D simple_strtoull((char *)(PIBS_MAC_BASE+PIBS_MAC_OFFSET*3), 0, 1=
6);
diff --git a/arch/ppc/kernel/cputable.c b/arch/ppc/kernel/cputable.c
--- a/arch/ppc/kernel/cputable.c
+++ b/arch/ppc/kernel/cputable.c
@@ -852,6 +852,26 @@ struct cpu_spec	cpu_specs[] =3D {
=20
 #endif /* CONFIG_40x */
 #ifdef CONFIG_44x
+	{
+		.pvr_mask		=3D 0xf0000fff,
+		.pvr_value		=3D 0x40000850,
+		.cpu_name		=3D "440EP Rev. A",
+		.cpu_features		=3D CPU_FTR_SPLIT_ID_CACHE |
+			CPU_FTR_USE_TB,
+		.cpu_user_features	=3D COMMON_PPC, /* 440EP has an FPU */
+		.icache_bsize		=3D 32,
+		.dcache_bsize		=3D 32,
+	},
+	{
+		.pvr_mask		=3D 0xf0000fff,
+		.pvr_value		=3D 0x400008d3,
+		.cpu_name		=3D "440EP Rev. B",
+		.cpu_features		=3D CPU_FTR_SPLIT_ID_CACHE |
+			CPU_FTR_USE_TB,
+		.cpu_user_features	=3D COMMON_PPC, /* 440EP has an FPU */
+		.icache_bsize		=3D 32,
+		.dcache_bsize		=3D 32,
+	},
 	{ 	/* 440GP Rev. B */
 		.pvr_mask		=3D 0xf0000fff,
 		.pvr_value		=3D 0x40000440,
diff --git a/arch/ppc/kernel/entry.S b/arch/ppc/kernel/entry.S
--- a/arch/ppc/kernel/entry.S
+++ b/arch/ppc/kernel/entry.S
@@ -215,6 +215,7 @@ syscall_dotrace_cont:
 	lwzx	r10,r10,r0	/* Fetch system call handler [ptr] */
 	mtlr	r10
 	addi	r9,r1,STACK_FRAME_OVERHEAD
+	PPC440EP_ERR42
 	blrl			/* Call handler */
 	.globl	ret_from_syscall
 ret_from_syscall:
diff --git a/arch/ppc/kernel/head_44x.S b/arch/ppc/kernel/head_44x.S
--- a/arch/ppc/kernel/head_44x.S
+++ b/arch/ppc/kernel/head_44x.S
@@ -190,7 +190,9 @@ skpinv:	addi	r4,r4,1				/* Increment */
=20
 	/* xlat fields */
 	lis	r4,UART0_PHYS_IO_BASE@h		/* RPN depends on SoC */
+#ifndef CONFIG_440EP
 	ori	r4,r4,0x0001		/* ERPN is 1 for second 4GB page */
+#endif
=20
 	/* attrib fields */
 	li	r5,0
@@ -228,6 +230,16 @@ skpinv:	addi	r4,r4,1				/* Increment */
 	lis	r4,interrupt_base@h	/* IVPR only uses the high 16-bits */
 	mtspr	SPRN_IVPR,r4
=20
+#ifdef CONFIG_440EP
+	/* Clear DAPUIB flag in CCR0 (enable APU between CPU and FPU) */
+	mfspr	r2,SPRN_CCR0
+	lis	r3,0xffef
+	ori	r3,r3,0xffff
+	and	r2,r2,r3
+	mtspr	SPRN_CCR0,r2
+	isync
+#endif
+
 	/*
 	 * This is where the main kernel code starts.
 	 */
diff --git a/arch/ppc/kernel/misc.S b/arch/ppc/kernel/misc.S
--- a/arch/ppc/kernel/misc.S
+++ b/arch/ppc/kernel/misc.S
@@ -1145,6 +1145,7 @@ _GLOBAL(kernel_thread)
 	stwu	r0,-16(r1)
 	mtlr	r30		/* fn addr in lr */
 	mr	r3,r31		/* load arg and call fn */
+	PPC440EP_ERR42
 	blrl
 	li	r0,__NR_exit	/* exit if function returns */
 	li	r3,0
diff --git a/arch/ppc/platforms/4xx/Kconfig b/arch/ppc/platforms/4xx/Kconfig
--- a/arch/ppc/platforms/4xx/Kconfig
+++ b/arch/ppc/platforms/4xx/Kconfig
@@ -68,6 +68,11 @@ choice
 	depends on 44x
 	default EBONY
=20
+config BAMBOO
+	bool "Bamboo"
+	help
+	  This option enables support for the IBM PPC440EP evaluation board.
+
 config EBONY
 	bool "Ebony"
 	help
@@ -98,6 +103,12 @@ config NP405H
 	depends on ASH
 	default y
=20
+config 440EP
+	bool
+	depends on BAMBOO
+	select PPC_FPU
+	default y
+
 config 440GP
 	bool
 	depends on EBONY
@@ -115,7 +126,7 @@ config 440SP
=20
 config 440
 	bool
-	depends on 440GP || 440SP
+	depends on 440GP || 440SP || 440EP
 	default y
=20
 config 440A
@@ -123,6 +134,11 @@ config 440A
 	depends on 440GX
 	default y
=20
+config IBM440EP_ERR42
+	bool
+	depends on 440EP
+	default y
+
 # All 405-based cores up until the 405GPR and 405EP have this errata.
 config IBM405_ERR77
 	bool
@@ -142,7 +158,7 @@ config BOOKE
=20
 config IBM_OCP
 	bool
-	depends on ASH || BUBINGA || CPCI405 || EBONY || EP405 || LUAN || OCOTEA =
|| REDWOOD_5 || REDWOOD_6 || SYCAMORE || WALNUT
+	depends on ASH || BAMBOO || BUBINGA || CPCI405 || EBONY || EP405 || LUAN =
|| OCOTEA || REDWOOD_5 || REDWOOD_6 || SYCAMORE || WALNUT
 	default y
=20
 config XILINX_OCP
diff --git a/arch/ppc/platforms/4xx/Makefile b/arch/ppc/platforms/4xx/Makef=
ile
--- a/arch/ppc/platforms/4xx/Makefile
+++ b/arch/ppc/platforms/4xx/Makefile
@@ -2,6 +2,7 @@
 # Makefile for the PowerPC 4xx linux kernel.
=20
 obj-$(CONFIG_ASH)		+=3D ash.o
+obj-$(CONFIG_BAMBOO)		+=3D bamboo.o
 obj-$(CONFIG_CPCI405)		+=3D cpci405.o
 obj-$(CONFIG_EBONY)		+=3D ebony.o
 obj-$(CONFIG_EP405)		+=3D ep405.o
@@ -19,6 +20,7 @@ obj-$(CONFIG_405GP)		+=3D ibm405gp.o
 obj-$(CONFIG_REDWOOD_5)		+=3D ibmstb4.o
 obj-$(CONFIG_NP405H)		+=3D ibmnp405h.o
 obj-$(CONFIG_REDWOOD_6)		+=3D ibmstbx25.o
+obj-$(CONFIG_440EP)		+=3D ibm440ep.o
 obj-$(CONFIG_440GP)		+=3D ibm440gp.o
 obj-$(CONFIG_440GX)		+=3D ibm440gx.o
 obj-$(CONFIG_440SP)		+=3D ibm440sp.o
diff --git a/arch/ppc/platforms/4xx/ibm440ep.c b/arch/ppc/platforms/4xx/ibm=
440ep.c
new file mode 100644
--- /dev/null
+++ b/arch/ppc/platforms/4xx/ibm440ep.c
@@ -0,0 +1,220 @@
+/*
+ * arch/ppc/platforms/4xx/ibm440ep.c
+ *
+ * PPC440EP I/O descriptions
+ *
+ * Wade Farnsworth <wfarnsworth@mvista.com>
+ * Copyright 2004 MontaVista Software Inc.
+ *
+ * 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/init.h>
+#include <linux/module.h>
+#include <platforms/4xx/ibm440ep.h>
+#include <asm/ocp.h>
+#include <asm/ppc4xx_pic.h>
+
+static struct ocp_func_emac_data ibm440ep_emac0_def =3D {
+	.rgmii_idx	=3D -1,           /* No RGMII */
+	.rgmii_mux	=3D -1,           /* No RGMII */
+	.zmii_idx       =3D 0,            /* ZMII device index */
+	.zmii_mux       =3D 0,            /* ZMII input of this EMAC */
+	.mal_idx        =3D 0,            /* MAL device index */
+	.mal_rx_chan    =3D 0,            /* MAL rx channel number */
+	.mal_tx_chan    =3D 0,            /* MAL tx channel number */
+	.wol_irq        =3D 61,		/* WOL interrupt number */
+	.mdio_idx       =3D -1,           /* No shared MDIO */
+	.tah_idx	=3D -1,           /* No TAH */
+};
+
+static struct ocp_func_emac_data ibm440ep_emac1_def =3D {
+	.rgmii_idx	=3D -1,           /* No RGMII */
+	.rgmii_mux	=3D -1,           /* No RGMII */
+	.zmii_idx       =3D 0,            /* ZMII device index */
+	.zmii_mux       =3D 1,            /* ZMII input of this EMAC */
+	.mal_idx        =3D 0,            /* MAL device index */
+	.mal_rx_chan    =3D 1,            /* MAL rx channel number */
+	.mal_tx_chan    =3D 2,            /* MAL tx channel number */
+	.wol_irq        =3D 63,  		/* WOL interrupt number */
+	.mdio_idx       =3D -1,           /* No shared MDIO */
+	.tah_idx	=3D -1,           /* No TAH */
+};
+OCP_SYSFS_EMAC_DATA()
+
+static struct ocp_func_mal_data ibm440ep_mal0_def =3D {
+	.num_tx_chans   =3D 4,  		/* Number of TX channels */
+	.num_rx_chans   =3D 2,    	/* Number of RX channels */
+	.txeob_irq	=3D 10,		/* TX End Of Buffer IRQ  */
+	.rxeob_irq	=3D 11,		/* RX End Of Buffer IRQ  */
+	.txde_irq	=3D 33,		/* TX Descriptor Error IRQ */
+	.rxde_irq	=3D 34,		/* RX Descriptor Error IRQ */
+	.serr_irq	=3D 32,		/* MAL System Error IRQ    */
+};
+OCP_SYSFS_MAL_DATA()
+
+static struct ocp_func_iic_data ibm440ep_iic0_def =3D {
+	.fast_mode	=3D 0,		/* Use standad mode (100Khz) */
+};
+
+static struct ocp_func_iic_data ibm440ep_iic1_def =3D {
+	.fast_mode	=3D 0,		/* Use standad mode (100Khz) */
+};
+OCP_SYSFS_IIC_DATA()
+
+struct ocp_def core_ocp[] =3D {
+	{ .vendor	=3D OCP_VENDOR_IBM,
+	  .function	=3D OCP_FUNC_OPB,
+	  .index	=3D 0,
+	  .paddr	=3D 0x0EF600000ULL,
+	  .irq		=3D OCP_IRQ_NA,
+	  .pm		=3D OCP_CPM_NA,
+	},
+	{ .vendor	=3D OCP_VENDOR_IBM,
+	  .function	=3D OCP_FUNC_16550,
+	  .index	=3D 0,
+	  .paddr	=3D PPC440EP_UART0_ADDR,
+	  .irq		=3D UART0_INT,
+	  .pm		=3D IBM_CPM_UART0,
+	},
+	{ .vendor	=3D OCP_VENDOR_IBM,
+	  .function	=3D OCP_FUNC_16550,
+	  .index	=3D 1,
+	  .paddr	=3D PPC440EP_UART1_ADDR,
+	  .irq		=3D UART1_INT,
+	  .pm		=3D IBM_CPM_UART1,
+	},
+	{ .vendor	=3D OCP_VENDOR_IBM,
+	  .function	=3D OCP_FUNC_16550,
+	  .index	=3D 2,
+	  .paddr	=3D PPC440EP_UART2_ADDR,
+	  .irq		=3D UART2_INT,
+	  .pm		=3D IBM_CPM_UART2,
+	},
+	{ .vendor	=3D OCP_VENDOR_IBM,
+	  .function	=3D OCP_FUNC_16550,
+	  .index	=3D 3,
+	  .paddr	=3D PPC440EP_UART3_ADDR,
+	  .irq		=3D UART3_INT,
+	  .pm		=3D IBM_CPM_UART3,
+	},
+	{ .vendor	=3D OCP_VENDOR_IBM,
+	  .function	=3D OCP_FUNC_IIC,
+	  .index	=3D 0,
+	  .paddr	=3D 0x0EF600700ULL,
+	  .irq		=3D 2,
+	  .pm		=3D IBM_CPM_IIC0,
+	  .additions	=3D &ibm440ep_iic0_def,
+	  .show		=3D &ocp_show_iic_data
+	},
+	{ .vendor	=3D OCP_VENDOR_IBM,
+	  .function	=3D OCP_FUNC_IIC,
+	  .index	=3D 1,
+	  .paddr	=3D 0x0EF600800ULL,
+	  .irq		=3D 7,
+	  .pm		=3D IBM_CPM_IIC1,
+	  .additions	=3D &ibm440ep_iic1_def,
+	  .show		=3D &ocp_show_iic_data
+	},
+	{ .vendor	=3D OCP_VENDOR_IBM,
+	  .function	=3D OCP_FUNC_GPIO,
+	  .index	=3D 0,
+	  .paddr	=3D 0x0EF600B00ULL,
+	  .irq		=3D OCP_IRQ_NA,
+	  .pm		=3D IBM_CPM_GPIO0,
+	},
+	{ .vendor	=3D OCP_VENDOR_IBM,
+	  .function	=3D OCP_FUNC_GPIO,
+	  .index	=3D 1,
+	  .paddr	=3D 0x0EF600C00ULL,
+	  .irq		=3D OCP_IRQ_NA,
+	  .pm		=3D OCP_CPM_NA,
+	},
+	{ .vendor	=3D OCP_VENDOR_IBM,
+	  .function	=3D OCP_FUNC_MAL,
+	  .paddr	=3D OCP_PADDR_NA,
+	  .irq		=3D OCP_IRQ_NA,
+	  .pm		=3D OCP_CPM_NA,
+	  .additions	=3D &ibm440ep_mal0_def,
+	  .show		=3D &ocp_show_mal_data,
+	},
+	{ .vendor	=3D OCP_VENDOR_IBM,
+	  .function	=3D OCP_FUNC_EMAC,
+	  .index	=3D 0,
+	  .paddr	=3D 0x0EF600E00ULL,
+	  .irq		=3D 60,
+	  .pm		=3D OCP_CPM_NA,
+	  .additions	=3D &ibm440ep_emac0_def,
+	  .show		=3D &ocp_show_emac_data,
+	},
+	{ .vendor	=3D OCP_VENDOR_IBM,
+	  .function	=3D OCP_FUNC_EMAC,
+	  .index	=3D 1,
+	  .paddr	=3D 0x0EF600F00ULL,
+	  .irq		=3D 62,
+	  .pm		=3D OCP_CPM_NA,
+	  .additions	=3D &ibm440ep_emac1_def,
+	  .show		=3D &ocp_show_emac_data,
+	},
+	{ .vendor	=3D OCP_VENDOR_IBM,
+	  .function	=3D OCP_FUNC_ZMII,
+	  .paddr	=3D 0x0EF600D00ULL,
+	  .irq		=3D OCP_IRQ_NA,
+	  .pm		=3D OCP_CPM_NA,
+	},
+	{ .vendor	=3D OCP_VENDOR_INVALID
+	}
+};
+
+/* Polarity and triggering settings for internal interrupt sources */
+struct ppc4xx_uic_settings ppc4xx_core_uic_cfg[] __initdata =3D {
+	{ .polarity	=3D 0xffbffe03,
+	  .triggering   =3D 0xfffffe00,
+	  .ext_irq_mask =3D 0x000001fc,	/* IRQ0 - IRQ6 */
+	},
+	{ .polarity	=3D 0xffffc6ef,
+	  .triggering	=3D 0xffffc7ff,
+	  .ext_irq_mask =3D 0x00003800,	/* IRQ7 - IRQ9 */
+	},
+};
+
+static struct resource usb_gadget_resources[] =3D {
+	[0] =3D {
+		.start	=3D 0x050000100ULL,
+		.end 	=3D 0x05000017FULL,
+		.flags	=3D IORESOURCE_MEM,
+	},
+	[1] =3D {
+		.start	=3D 55,
+		.end	=3D 55,
+		.flags	=3D IORESOURCE_IRQ,
+	},
+};
+
+static u64 dma_mask =3D 0xffffffffULL;
+
+static struct platform_device usb_gadget_device =3D {
+	.name		=3D "musbhsfc",
+	.id		=3D 0,
+	.num_resources	=3D ARRAY_SIZE(usb_gadget_resources),
+	.resource       =3D usb_gadget_resources,
+	.dev		=3D {
+		.dma_mask =3D &dma_mask,
+		.coherent_dma_mask =3D 0xffffffffULL,
+	}
+};
+
+static struct platform_device *ibm440ep_devs[] __initdata =3D {
+	&usb_gadget_device,
+};
+
+static int __init
+ibm440ep_platform_add_devices(void)
+{
+	return platform_add_devices(ibm440ep_devs, ARRAY_SIZE(ibm440ep_devs));
+}
+arch_initcall(ibm440ep_platform_add_devices);
+
diff --git a/arch/ppc/platforms/4xx/ibm440ep.h b/arch/ppc/platforms/4xx/ibm=
440ep.h
new file mode 100644
--- /dev/null
+++ b/arch/ppc/platforms/4xx/ibm440ep.h
@@ -0,0 +1,76 @@
+/*
+ * arch/ppc/platforms/4xx/ibm440ep.h
+ *
+ * PPC440EP definitions
+ *
+ * Wade Farnsworth <wfarnsworth@mvista.com>
+ *
+ * Copyright 2002 Roland Dreier
+ * Copyright 2004 MontaVista Software, Inc.
+ *
+ * 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.
+ *
+ */
+
+#ifdef __KERNEL__
+#ifndef __PPC_PLATFORMS_IBM440EP_H
+#define __PPC_PLATFORMS_IBM440EP_H
+
+#include <linux/config.h>
+#include <asm/ibm44x.h>
+
+/* UART */
+#define PPC440EP_UART0_ADDR		0x0EF600300
+#define PPC440EP_UART1_ADDR		0x0EF600400
+#define PPC440EP_UART2_ADDR		0x0EF600500
+#define PPC440EP_UART3_ADDR		0x0EF600600
+#define UART0_INT			0
+#define UART1_INT			1
+#define UART2_INT			3
+#define UART3_INT			4
+
+/* Clock and Power Management */
+#define IBM_CPM_IIC0		0x80000000	/* IIC interface */
+#define IBM_CPM_IIC1		0x40000000	/* IIC interface */
+#define IBM_CPM_PCI		0x20000000	/* PCI bridge */
+#define IBM_CPM_USB1H		0x08000000	/* USB 1.1 Host */
+#define IBM_CPM_FPU		0x04000000	/* floating point unit */
+#define IBM_CPM_CPU		0x02000000	/* processor core */
+#define IBM_CPM_DMA		0x01000000	/* DMA controller */
+#define IBM_CPM_BGO		0x00800000	/* PLB to OPB bus arbiter */
+#define IBM_CPM_BGI		0x00400000	/* OPB to PLB bridge */
+#define IBM_CPM_EBC		0x00200000	/* External Bus Controller */
+#define IBM_CPM_EBM		0x00100000	/* Ext Bus Master Interface */
+#define IBM_CPM_DMC		0x00080000	/* SDRAM peripheral controller */
+#define IBM_CPM_PLB4		0x00040000	/* PLB4 bus arbiter */
+#define IBM_CPM_PLB4x3		0x00020000	/* PLB4 to PLB3 bridge controller */
+#define IBM_CPM_PLB3x4		0x00010000	/* PLB3 to PLB4 bridge controller */
+#define IBM_CPM_PLB3		0x00008000	/* PLB3 bus arbiter */
+#define IBM_CPM_PPM		0x00002000	/* PLB Performance Monitor */
+#define IBM_CPM_UIC1		0x00001000	/* Universal Interrupt Controller */
+#define IBM_CPM_GPIO0		0x00000800	/* General Purpose IO (??) */
+#define IBM_CPM_GPT		0x00000400	/* General Purpose Timers  */
+#define IBM_CPM_UART0		0x00000200	/* serial port 0 */
+#define IBM_CPM_UART1		0x00000100	/* serial port 1 */
+#define IBM_CPM_UIC0		0x00000080	/* Universal Interrupt Controller */
+#define IBM_CPM_TMRCLK		0x00000040	/* CPU timers */
+#define IBM_CPM_EMAC0		0x00000020	/* ethernet port 0 */
+#define IBM_CPM_EMAC1		0x00000010	/* ethernet port 1 */
+#define IBM_CPM_UART2		0x00000008	/* serial port 2 */
+#define IBM_CPM_UART3		0x00000004	/* serial port 3 */
+#define IBM_CPM_USB2D		0x00000002	/* USB 2.0 Device */
+#define IBM_CPM_USB2H		0x00000001	/* USB 2.0 Host */
+
+#define DFLT_IBM4xx_PM		~(IBM_CPM_UIC0 | IBM_CPM_UIC1 | IBM_CPM_CPU \
+				| IBM_CPM_EBC | IBM_CPM_BGO | IBM_CPM_FPU \
+				| IBM_CPM_EBM | IBM_CPM_PLB4 | IBM_CPM_3x4 \
+				| IBM_CPM_PLB3 | IBM_CPM_PLB4x3 \
+				| IBM_CPM_EMAC0 | IBM_CPM_TMRCLK \
+				| IBM_CPM_DMA | IBM_CPM_PCI | IBM_CPM_EMAC1)
+
+
+#endif /* __PPC_PLATFORMS_IBM440EP_H */
+#endif /* __KERNEL__ */
diff --git a/arch/ppc/syslib/Makefile b/arch/ppc/syslib/Makefile
--- a/arch/ppc/syslib/Makefile
+++ b/arch/ppc/syslib/Makefile
@@ -11,6 +11,7 @@ obj-$(CONFIG_PPCBUG_NVRAM)	+=3D prep_nvram
 obj-$(CONFIG_PPC_OCP)		+=3D ocp.o
 obj-$(CONFIG_IBM_OCP)		+=3D ibm_ocp.o
 obj-$(CONFIG_44x)		+=3D ibm44x_common.o
+obj-$(CONFIG_440EP)		+=3D ibm440gx_common.o
 obj-$(CONFIG_440GP)		+=3D ibm440gp_common.o
 obj-$(CONFIG_440GX)		+=3D ibm440gx_common.o
 obj-$(CONFIG_440SP)		+=3D ibm440gx_common.o ibm440sp_common.o
@@ -44,6 +45,7 @@ obj-$(CONFIG_PPC_CHRP)		+=3D open_pic.o in
 obj-$(CONFIG_PPC_PREP)		+=3D open_pic.o indirect_pci.o i8259.o todc_time.o
 obj-$(CONFIG_ADIR)		+=3D i8259.o indirect_pci.o pci_auto.o \
 					todc_time.o
+obj-$(CONFIG_BAMBOO)		+=3D indirect_pci.o pci_auto.o todc_time.o
 obj-$(CONFIG_CPCI690)		+=3D todc_time.o pci_auto.o
 obj-$(CONFIG_EBONY)		+=3D indirect_pci.o pci_auto.o todc_time.o
 obj-$(CONFIG_EV64260)		+=3D todc_time.o pci_auto.o
diff --git a/arch/ppc/syslib/ibm440gx_common.c b/arch/ppc/syslib/ibm440gx_c=
ommon.c
--- a/arch/ppc/syslib/ibm440gx_common.c
+++ b/arch/ppc/syslib/ibm440gx_common.c
@@ -34,6 +34,10 @@ void __init ibm440gx_get_clocks(struct i
 	u32 plld  =3D CPR_READ(DCRN_CPR_PLLD);
 	u32 uart0 =3D SDR_READ(DCRN_SDR_UART0);
 	u32 uart1 =3D SDR_READ(DCRN_SDR_UART1);
+#ifdef CONFIG_440EP
+	u32 uart2 =3D SDR_READ(DCRN_SDR_UART2);
+	u32 uart3 =3D SDR_READ(DCRN_SDR_UART3);
+#endif
=20
 	/* Dividers */
 	u32 fbdv   =3D __fix_zero((plld >> 24) & 0x1f, 32);
@@ -96,6 +100,17 @@ bypass:
 		p->uart1 =3D ser_clk;
 	else
 		p->uart1 =3D p->plb / __fix_zero(uart1 & 0xff, 256);
+#ifdef CONFIG_440EP
+	if (uart2 & 0x00800000)
+		p->uart2 =3D ser_clk;
+	else
+		p->uart2 =3D p->plb / __fix_zero(uart2 & 0xff, 256);
+=09
+	if (uart3 & 0x00800000)
+		p->uart3 =3D ser_clk;
+	else
+		p->uart3 =3D p->plb / __fix_zero(uart3 & 0xff, 256);
+#endif
 }
=20
 /* Issue L2C diagnostic command */
diff --git a/arch/ppc/syslib/ibm44x_common.h b/arch/ppc/syslib/ibm44x_commo=
n.h
--- a/arch/ppc/syslib/ibm44x_common.h
+++ b/arch/ppc/syslib/ibm44x_common.h
@@ -29,6 +29,10 @@ struct ibm44x_clocks {
 	unsigned int ebc;	/* PerClk */
 	unsigned int uart0;
 	unsigned int uart1;
+#ifdef CONFIG_440EP
+	unsigned int uart2;
+	unsigned int uart3;
+#endif
 };
=20
 /* common 44x platform init */
diff --git a/include/asm-ppc/ibm44x.h b/include/asm-ppc/ibm44x.h
--- a/include/asm-ppc/ibm44x.h
+++ b/include/asm-ppc/ibm44x.h
@@ -35,8 +35,10 @@
 #define PPC44x_LOW_SLOT		63
=20
 /* LS 32-bits of UART0 physical address location for early serial text deb=
ug */
-#ifdef CONFIG_440SP
+#if defined(CONFIG_440SP)
 #define UART0_PHYS_IO_BASE	0xf0000200
+#elif defined(CONFIG_440EP)
+#define UART0_PHYS_IO_BASE	0xe0000000
 #else
 #define UART0_PHYS_IO_BASE	0x40000200
 #endif
@@ -49,11 +51,16 @@
 /*
  * Standard 4GB "page" definitions
  */
-#ifdef CONFIG_440SP
+#if defined(CONFIG_440SP)
 #define	PPC44x_IO_PAGE		0x0000000100000000ULL
 #define	PPC44x_PCICFG_PAGE	0x0000000900000000ULL
 #define	PPC44x_PCIIO_PAGE	PPC44x_PCICFG_PAGE
 #define	PPC44x_PCIMEM_PAGE	0x0000000a00000000ULL
+#elif defined(CONFIG_440EP)
+#define PPC44x_IO_PAGE		0x0000000000000000ULL
+#define PPC44x_PCICFG_PAGE	0x0000000000000000ULL
+#define PPC44x_PCIIO_PAGE	PPC44x_PCICFG_PAGE
+#define PPC44x_PCIMEM_PAGE	0x0000000000000000ULL
 #else
 #define	PPC44x_IO_PAGE		0x0000000100000000ULL
 #define	PPC44x_PCICFG_PAGE	0x0000000200000000ULL
@@ -64,7 +71,7 @@
 /*
  * 36-bit trap ranges
  */
-#ifdef CONFIG_440SP
+#if defined(CONFIG_440SP)
 #define PPC44x_IO_LO		0xf0000000UL
 #define PPC44x_IO_HI		0xf0000fffUL
 #define PPC44x_PCI0CFG_LO	0x0ec00000UL
@@ -75,6 +82,13 @@
 #define PPC44x_PCI2CFG_HI	0x2ec00007UL
 #define PPC44x_PCIMEM_LO	0x80000000UL
 #define PPC44x_PCIMEM_HI	0xdfffffffUL
+#elif defined(CONFIG_440EP)
+#define PPC44x_IO_LO		0xef500000UL
+#define PPC44x_IO_HI		0xefffffffUL
+#define PPC44x_PCI0CFG_LO	0xeec00000UL
+#define PPC44x_PCI0CFG_HI	0xeecfffffUL
+#define PPC44x_PCIMEM_LO	0xa0000000UL
+#define PPC44x_PCIMEM_HI	0xdfffffffUL
 #else
 #define PPC44x_IO_LO		0x40000000UL
 #define PPC44x_IO_HI		0x40000fffUL
@@ -152,6 +166,12 @@
 #define DCRN_SDR_UART0		0x0120
 #define DCRN_SDR_UART1		0x0121
=20
+#ifdef CONFIG_440EP
+#define DCRN_SDR_UART2		0x0122
+#define DCRN_SDR_UART3		0x0123
+#define DCRN_SDR_CUST0		0x4000
+#endif
+
 /* SDR read/write helper macros */
 #define SDR_READ(offset) ({\
 	mtdcr(DCRN_SDR_CONFIG_ADDR, offset); \
@@ -169,6 +189,14 @@
 #define DCRNCAP_DMA_SG		1	/* have DMA scatter/gather capability */
 #define DCRN_MAL_BASE		0x180
=20
+#ifdef CONFIG_440EP
+#define DCRN_DMA2P40_BASE	0x300
+#define DCRN_DMA2P41_BASE	0x308
+#define DCRN_DMA2P42_BASE	0x310
+#define DCRN_DMA2P43_BASE	0x318
+#define DCRN_DMA2P4SR_BASE	0x320
+#endif
+
 /* UIC */
 #define DCRN_UIC0_BASE	0xc0
 #define DCRN_UIC1_BASE	0xd0
diff --git a/include/asm-ppc/ibm4xx.h b/include/asm-ppc/ibm4xx.h
--- a/include/asm-ppc/ibm4xx.h
+++ b/include/asm-ppc/ibm4xx.h
@@ -97,6 +97,10 @@ void ppc4xx_init(unsigned long r3, unsig
=20
 #elif CONFIG_44x
=20
+#if defined(CONFIG_BAMBOO)
+#include <platforms/4xx/bamboo.h>
+#endif
+
 #if defined(CONFIG_EBONY)
 #include <platforms/4xx/ebony.h>
 #endif
diff --git a/include/asm-ppc/ppc_asm.h b/include/asm-ppc/ppc_asm.h
--- a/include/asm-ppc/ppc_asm.h
+++ b/include/asm-ppc/ppc_asm.h
@@ -186,6 +186,12 @@ END_FTR_SECTION_IFCLR(CPU_FTR_601)
 #define PPC405_ERR77_SYNC
 #endif
=20
+#ifdef CONFIG_IBM440EP_ERR42
+#define PPC440EP_ERR42 isync
+#else
+#define PPC440EP_ERR42
+#endif
+
 /* The boring bits... */
=20
 /* Condition Register Bit Fields */

^ permalink raw reply

* Re: [RFC PATCH 1/4] PHY Abstraction Layer III (now with more splitiness)
From: Andy Fleming @ 2005-07-27 18:01 UTC (permalink / raw)
  To: Francois Romieu; +Cc: Netdev, linuxppc-embedded
In-Reply-To: <20050725210646.GA17828@electric-eye.fr.zoreil.com>


On Jul 25, 2005, at 16:06, Francois Romieu wrote:

[snip]
>
>> +config DAVICOM_PHY
>> +    bool "Drivers for Davicom PHYs"
>> +    depends on PHYLIB
>> +    ---help---
>> +      Currently supports dm9161e and dm9131
>>
> [snip]


Yeah, I resisted splitting the patch up for this reason.  Suffice it  
to say, you have to apply patch #2 to not break everything.   
Splitting the PHY driver code from the PHY layer is just for  
"convenience"


>> +int mdiobus_register(struct mii_bus *bus)
>> +{
>> +    int i;
>> +    int err = 0;
>> +
>> +    spin_lock_init(&bus->mdio_lock);
>> +
>> +    if (NULL == bus || NULL == bus->name ||
>> +            NULL == bus->read ||
>> +            NULL == bus->write)
>>
>
> Be spartan:
>     if (!bus || !bus->name || !bus->read || !bus->write)


I think we have to agree to disagree here.  I could be convinced, but  
I'm partial to using NULL explicitly.


>> +
>> +/* Convenience function to print out the current phy status
>> + */
>> +void phy_print_status(struct phy_device *phydev)
>> +{
>> +    pr_info("%s: Link is %s", phydev->dev.bus_id,
>> +            phydev->link ? "Up" : "Down");
>> +    if (phydev->link)
>> +        printk(" - %d/%s", phydev->speed,
>>
>
> Missing KERN_SOMETHING in the printk.


Actually, KERN_SOMETHING would muck up the line, and make it look  
like this:

phy0:0: Link is Up<3> - 1000/Full

That's why it's like that.


>> +/* A mapping of all SUPPORTED settings to speed/duplex */
>> +static struct phy_setting settings[] = {
>> +    { .speed = 10000, .duplex = DUPLEX_FULL,
>> +        .setting = SUPPORTED_10000baseT_Full,
>> +    },
>> +    { .speed = SPEED_1000, .duplex = DUPLEX_FULL,
>> +        .setting = SUPPORTED_1000baseT_Full,
>> +    },
>> +    { .speed = SPEED_1000, .duplex = DUPLEX_HALF,
>> +        .setting = SUPPORTED_1000baseT_Half,
>> +    },
>> +    { .speed = SPEED_100, .duplex = DUPLEX_FULL,
>> +        .setting = SUPPORTED_100baseT_Full,
>> +    },
>> +    { .speed = SPEED_100, .duplex = DUPLEX_HALF,
>> +        .setting = SUPPORTED_100baseT_Half,
>> +    },
>> +    { .speed = SPEED_10, .duplex = DUPLEX_FULL,
>> +        .setting = SUPPORTED_10baseT_Full,
>> +    },
>> +    { .speed = SPEED_10, .duplex = DUPLEX_HALF,
>> +        .setting = SUPPORTED_10baseT_Half,
>> +    },
>> +};
>>
>
> Would you veto some macro to initialise this array ?


Depends on the macro.  :)  I'm not keen on writing it, but I would  
support one that:

a) works
b) Isn't uglier than the current solution.  :)


>> +static inline int phy_find_setting(int speed, int duplex)
>> +{
>> +    int idx = 0;
>> +
>> +    while (idx < MAX_NUM_SETTINGS &&
>> +            (settings[idx].speed != speed ||
>> +            settings[idx].duplex != duplex))
>> +        idx++;
>>
>
> "for" loop in disguise ?


Well....  I think it falls into the gray area.  It's searching until  
it finds something, which implies "while" to me.  Really it's more of  
a while...until.  Of course, a for loop could be used, but I often  
worry about using a for loop's iterator variable outside of the  
loop.  I will change to ARRAY_SIZE, though.


>
>
>> +
>> +    return idx < MAX_NUM_SETTINGS ? idx : MAX_NUM_SETTINGS - 1;
>>
>
> Ok (dunno if "idx % MAX_NUM_SETTINGS" is more idiomatic or not).


That would be completely different.  The current code makes sure  
that, if no valid match was found, the last value in the array is  
returned.  Using % would result in the first value being returned.  I  
was defaulting to the lowest setting.


>> +int phy_start_interrupts(struct phy_device *phydev)
>> +{
>> +    int err = 0;
>> +
>> +    INIT_WORK(&phydev->phy_queue, phy_change, phydev);
>> +
>> +    if (request_irq(phydev->irq, phy_interrupt,
>> +                SA_SHIRQ,
>> +                "phy_interrupt",
>> +                phydev) < 0) {
>>
>
> Please, don't do that :o(
>
>     err = request_irq(phydev->irq, phy_interrupt, SA_SHIRQ,
>               "phy_interrupt", phydev);
>     if (err < 0)
>         ...


I did a cursory search, and didn't find any other drivers which use  
this method.  Which is the method preferred in Linux?


>> +        printk(KERN_ERR "%s: Can't get IRQ %d (PHY)\n",
>> +                phydev->bus->name,
>> +                phydev->irq);
>> +        phydev->irq = PHY_POLL;
>> +        return 0;
>>
>
> The description of the function says "Returns 0 on success".


Failing to request the IRQ does not result in failure of the  
function.  It falls back to polling, instead.

However, it can fail if phy_enable_interrupts() fails, which would  
happen if a hardware issue occurred.


>> +    /* Otherwise, we allocate the device, and initialize the
>> +     * default values */
>> +    dev = kmalloc(sizeof(*dev), GFP_KERNEL);
>> +
>> +    if (NULL == dev) {
>> +        errno = -ENOMEM;
>> +        return NULL;
>> +    }
>> +
>> +    memset(dev, 0, sizeof(*dev));
>>
>
> The kernel provides kcalloc.


I went looking for it, and found it in fs/cifs/misc.c.  I'm hesitant  
to link to a function defined in the filesystem code just to save 1  
line of code


I agree with all the other suggestions, and will implement them.

^ permalink raw reply

* RE: MPC885 - USB HCI drivers.
From: Bastos Fernandez Alexandre @ 2005-07-27 18:08 UTC (permalink / raw)
  To: 'Pantelis Antoniou', Bryan O'Donoghue; +Cc: linuxppc-embedded

Guys,

Finally, was the patch submitted to the list?
I have searched deeply both ozlabs and gmane, but I couldn't
find it ...

I have been disconnected from the list for several weeks (wedding holidays
:-) )
so I am a bit unplugged with all this stuff.
By now, I would apprece a lot this usb host driver for 82xx.

Thanks,

Alex BASTOS


> -----Original Message-----
> From:	Pantelis Antoniou [SMTP:panto@intracom.gr]
> Sent:	Tuesday, May 17, 2005 11:45 AM
> To:	Bryan O'Donoghue
> Cc:	linuxppc-embedded@ozlabs.org
> Subject:	Re: MPC885 - USB HCI drivers.
> 
> Bryan O'Donoghue wrote:
> > Pantelis Antoniou wrote:
> > 
> > 
> >>Well I have USB host drivers for both 8xx & 82xx working.
> > 
> > 
> > Speaking of which... would it not be a good idea, to get these comitted
> > to the 2.6 tree... at some stage ... at least to stop people
> > periodically posting to this list... saying "Dear all have spent 2
> > months, writing code for m8xx_hci drivers", when it's a needless
> > replication of effort ?
> > 
> 
> Well, they are too hideous for human eyes :)
> 
> > 
> >>However I use them connected to a specific peripheral
> >>so I don't know how well they fare when used as a PC
> >>style USB host controller.
> > 
> > 
> > Also, one easy way to find out, how well or badly said code performs, in
> > hetrogenous environments, is to... suck it and see.
> > 
> > As I was attempting to intimate above, I'm sure there'd be a legion of
> > eager people to debug, modify and recode such drivers, if there lived in
> > an obvious place... in the 2.6 tree.
> > 
> > Just my EUR0.02.
> > 
> 
> Also they're 2.4 only :)
> 
> I'll try to clean them up and post them sometime this week.
> 
> But I don't have time left to hack them for 2.6. I'll need
> vict^H^H^Holunteers to do it...
> 
> Regards
> 
> Pantelis
> 
> 
> > --
> > 
> > Best,
> > Bryan
> > 
> > 
> 
> _______________________________________________
> Linuxppc-embedded mailing list
> Linuxppc-embedded@ozlabs.org
> https://ozlabs.org/mailman/listinfo/linuxppc-embedded

^ permalink raw reply

* Re: [RFC PATCH 1/4] PHY Abstraction Layer III (now with more splitiness)
From: Randy Dunlap @ 2005-07-27 18:08 UTC (permalink / raw)
  To: Andy Fleming, Francois Romieu, Netdev, linuxppc-embedded


> On Jul 25, 2005, at 16:06, Francois Romieu wrote:
> 
> 
> >> +int mdiobus_register(struct mii_bus *bus)
> >> +{
> >> +    int i;
> >> +    int err = 0;
> >> +
> >> +    spin_lock_init(&bus->mdio_lock);
> >> +
> >> +    if (NULL == bus || NULL == bus->name ||
> >> +            NULL == bus->read ||
> >> +            NULL == bus->write)
> >>
> >
> > Be spartan:
> >     if (!bus || !bus->name || !bus->read || !bus->write)
> 
> 
> I think we have to agree to disagree here.  I could be convinced, but  
> I'm partial to using NULL explicitly.

But there are 2 issues here (at least).  One is to use NULL or
not.  The other is using (constant == var) or (var == constant).

It's not described in CodingStlye afaik, but most recent email
on the subject strongly prefers (var == constant) [in my
unscientific survey -- of bits in my head].

So using the suggested style will fix both of these.  :)

> >> +    /* Otherwise, we allocate the device, and initialize the
> >> +     * default values */
> >> +    dev = kmalloc(sizeof(*dev), GFP_KERNEL);
> >> +
> >> +    if (NULL == dev) {
> >> +        errno = -ENOMEM;
> >> +        return NULL;
> >> +    }
> >> +
> >> +    memset(dev, 0, sizeof(*dev));
> >>
> >
> > The kernel provides kcalloc.
> 
> 
> I went looking for it, and found it in fs/cifs/misc.c.  I'm hesitant  
> to link to a function defined in the filesystem code just to save 1  
> line of code

It's more global than that.

~Randy

^ permalink raw reply

* Re: [RFC PATCH 1/4] PHY Abstraction Layer III (now with more splitiness)
From: Andy Fleming @ 2005-07-27 18:46 UTC (permalink / raw)
  To: Randy Dunlap; +Cc: Netdev, linuxppc-embedded, Francois Romieu
In-Reply-To: <1122487708.20267@shark.he.net>


On Jul 27, 2005, at 13:08, Randy Dunlap wrote:

>
>
>> On Jul 25, 2005, at 16:06, Francois Romieu wrote:
>>
>>
>>
>>>> +int mdiobus_register(struct mii_bus *bus)
>>>> +{
>>>> +    int i;
>>>> +    int err = 0;
>>>> +
>>>> +    spin_lock_init(&bus->mdio_lock);
>>>> +
>>>> +    if (NULL == bus || NULL == bus->name ||
>>>> +            NULL == bus->read ||
>>>> +            NULL == bus->write)
>>>>
>>>>
>>>
>>> Be spartan:
>>>     if (!bus || !bus->name || !bus->read || !bus->write)
>>>
>>
>>
>> I think we have to agree to disagree here.  I could be convinced, but
>> I'm partial to using NULL explicitly.
>>
>
> But there are 2 issues here (at least).  One is to use NULL or
> not.  The other is using (constant == var) or (var == constant).
>
> It's not described in CodingStlye afaik, but most recent email
> on the subject strongly prefers (var == constant) [in my
> unscientific survey -- of bits in my head].
>
> So using the suggested style will fix both of these.  :)


Ok, here I won't agree to disagree with you.  !foo as a check for  
NULL is a reasonable idea, but not my style.  If that's the preferred  
style for the kernel, I will do that.

But (var == constant) is a style that asks for errors.  By putting  
the constant first in these checks, you never run the risk of leaving  
a bug like this:

if (dev = NULL)
     ...

This kind of error is quite frustrating to detect, and the eye will  
often miss it when scanning for errors.  If you follow constant ==  
var, though, then the bug looks like this:

if (NULL = dev)

which is instantly caught by the compiler.

Just my 32 cents


>
>
>>>> +    /* Otherwise, we allocate the device, and initialize the
>>>> +     * default values */
>>>> +    dev = kmalloc(sizeof(*dev), GFP_KERNEL);
>>>> +
>>>> +    if (NULL == dev) {
>>>> +        errno = -ENOMEM;
>>>> +        return NULL;
>>>> +    }
>>>> +
>>>> +    memset(dev, 0, sizeof(*dev));
>>>>
>>>>
>>>
>>> The kernel provides kcalloc.
>>>
>>
>>
>> I went looking for it, and found it in fs/cifs/misc.c.  I'm hesitant
>> to link to a function defined in the filesystem code just to save 1
>> line of code
>>
>
> It's more global than that.


Should we move the function, then, to include/linux/slab.h?  Or  
somewhere else?

^ permalink raw reply

* Re: [RFC PATCH 1/4] PHY Abstraction Layer III (now with more splitiness)
From: Francois Romieu @ 2005-07-27 19:56 UTC (permalink / raw)
  To: Andy Fleming; +Cc: Netdev, Randy Dunlap, linuxppc-embedded
In-Reply-To: <EDA214E7-5655-4900-AF1A-FC736681DC74@freescale.com>

Andy Fleming <afleming@freescale.com> :
[kcalloc]
> Should we move the function, then, to include/linux/slab.h?  Or  
> somewhere else?

It is already in mm/slab.c

[rc = request_irq(...)]

It appears in drivers/net/*c. Jeff Garzik used to suggest something
similar but it does not matter as long as you do not need to return
an error status (KERN_ERR is probably a bit too strong then).

[initialization of struct phy_setting settings]

#define	NITZ(d,t,s)	{ .speed = s, .duplex = d, .setting = t }

static struct phy_setting settings[] = {
       NITZ(DUPLEX_FULL, SUPPORTED_10000baseT_Full,	10000),
       NITZ(DUPLEX_FULL, SUPPORTED_1000baseT_Full,	SPEED_1000),
       NITZ(DUPLEX_HALF, SUPPORTED_1000baseT_Half,	SPEED_1000),
       NITZ(DUPLEX_FULL, SUPPORTED_100baseT_Full,	SPEED_100),
       NITZ(DUPLEX_HALF, SUPPORTED_100baseT_Half,	SPEED_100),
       NITZ(DUPLEX_FULL, SUPPORTED_10baseT_Full,	SPEED_10),
       NITZ(DUPLEX_HALF, SUPPORTED_10baseT_Half,	SPEED_10),
};

#undef NITZ

--
Ueimor

^ permalink raw reply

* Re: [PATCH 00/14] ppc32: Remove board ports that are no longer maintained
From: Andrew Morton @ 2005-07-27 19:57 UTC (permalink / raw)
  To: Kumar Gala; +Cc: linux-kernel, linuxppc-embedded
In-Reply-To: <Pine.LNX.4.61.0507271029480.12237@nylon.am.freescale.net>

Kumar Gala <galak@freescale.com> wrote:
>
> The following board ports are no longer maintained or have become 
>  obsolete:
> 
>  adir
>  ash
>  beech
>  cedar
>  ep405
>  k2
>  mcpn765
>  menf1
>  oak
>  pcore
>  rainier
>  redwood
>  sm850
>  spd823ts
> 
>  We are there for removing support for them.

I'll merge all these into -mm for now, but will hold off sending any of
them upstream pending confirmation of which patches we really want to
proceed with.

^ permalink raw reply

* Re: [PATCH][1/3] ppc32: add 440ep support
From: Andrew Morton @ 2005-07-27 20:18 UTC (permalink / raw)
  To: Matt Porter; +Cc: linux-kernel, linuxppc-embedded
In-Reply-To: <11224856623638@foobar.com>

Matt Porter <mporter@kernel.crashing.org> wrote:
>
> +static u64 dma_mask = 0xffffffffULL;

I'm sure you're totally uninterested in this, but the above will probably
generate warnings on (say) ppc64, where u64 is implemented as unsigned
long.

I usually chuck a simple `-1' in there and the compiler always gets it
right, regardless of signedness and size and architecture.

^ permalink raw reply

* Re: [RFC PATCH 1/4] PHY Abstraction Layer III (now with more splitiness)
From: Randy Dunlap @ 2005-07-27 21:34 UTC (permalink / raw)
  To: Andy Fleming, Randy Dunlap, Francois Romieu, Netdev,
	linuxppc-embedded


> On Jul 27, 2005, at 13:08, Randy Dunlap wrote:
> 
> >
> >
> >> On Jul 25, 2005, at 16:06, Francois Romieu wrote:
> >>
> >>
> >>
> >>>> +int mdiobus_register(struct mii_bus *bus)
> >>>> +{
> >>>> +    int i;
> >>>> +    int err = 0;
> >>>> +
> >>>> +    spin_lock_init(&bus->mdio_lock);
> >>>> +
> >>>> +    if (NULL == bus || NULL == bus->name ||
> >>>> +            NULL == bus->read ||
> >>>> +            NULL == bus->write)
> >>>>
> >>>>
> >>>
> >>> Be spartan:
> >>>     if (!bus || !bus->name || !bus->read || !bus->write)
> >>>
> >>
> >>
> >> I think we have to agree to disagree here.  I could be convinced, but
> >> I'm partial to using NULL explicitly.
> >>
> >
> > But there are 2 issues here (at least).  One is to use NULL or
> > not.  The other is using (constant == var) or (var == constant).
> >
> > It's not described in CodingStlye afaik, but most recent email
> > on the subject strongly prefers (var == constant) [in my
> > unscientific survey -- of bits in my head].
> >
> > So using the suggested style will fix both of these.  :)
> 
> 
> Ok, here I won't agree to disagree with you.  !foo as a check for  
> NULL is a reasonable idea, but not my style.  If that's the preferred  
> style for the kernel, I will do that.
> 
> But (var == constant) is a style that asks for errors.  By putting  
> the constant first in these checks, you never run the risk of leaving  
> a bug like this:
> 
> if (dev = NULL)
>      ...
> 
> This kind of error is quite frustrating to detect, and the eye will  
> often miss it when scanning for errors.  If you follow constant ==  
> var, though, then the bug looks like this:
> 
> if (NULL = dev)
> 
> which is instantly caught by the compiler.
> 
> Just my 32 cents

Yes, we know about that argument.  :)

> >>>> +    /* Otherwise, we allocate the device, and initialize the
> >>>> +     * default values */
> >>>> +    dev = kmalloc(sizeof(*dev), GFP_KERNEL);
> >>>> +
> >>>> +    if (NULL == dev) {
> >>>> +        errno = -ENOMEM;
> >>>> +        return NULL;
> >>>> +    }
> >>>> +
> >>>> +    memset(dev, 0, sizeof(*dev));
> >>>>
> >>>>
> >>>
> >>> The kernel provides kcalloc.
> >>>
> >>
> >>
> >> I went looking for it, and found it in fs/cifs/misc.c.  I'm hesitant
> >> to link to a function defined in the filesystem code just to save 1
> >> line of code
> >>
> >
> > It's more global than that.
> 
> 
> Should we move the function, then, to include/linux/slab.h?  Or  
> somewhere else?

It's there, like Francois said.  Get use a current tree.

---
~Randy

^ permalink raw reply

* Re: platform/board removal update
From: 'Aristeu Sergio Rozanski Filho' @ 2005-07-27 21:46 UTC (permalink / raw)
  To: Marcelo Tosatti; +Cc: linuxppc-dev list, Embedded PPC Linux list
In-Reply-To: <20050726100500.GB28003@dmt.cnet>

> 8xx_io/fec.c is still using v2.4's workqueue infrastructure but other than
> that its working fine. 
> 
> The fix will be pushed upstream ASAP.
> 
> BTW, we should schedule 8xx_io/fec.c for removal, but before that we ought to 
> test all supported PHY's on the new driver.
> 
> Aris was talking to me about this on OLS. Aris, what are the PHY's not supported
> by Panto's driver again? We should build a list of those and ask around for
> testers.
I think that with Andy Fleming's PHY abstraction layer, the best thing to be done
is change fec_8xx to use this abstraction layer and then look for
testers. what you think?

-- 
Aristeu

^ permalink raw reply

* Re: [PATCH][1/3] ppc32: add 440ep support
From: Paul Mackerras @ 2005-07-27 22:56 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel, linuxppc-embedded
In-Reply-To: <20050727131857.78a56972.akpm@osdl.org>

Andrew Morton writes:

> Matt Porter <mporter@kernel.crashing.org> wrote:
> >
> > +static u64 dma_mask = 0xffffffffULL;
> 
> I'm sure you're totally uninterested in this, but the above will probably
> generate warnings on (say) ppc64, where u64 is implemented as unsigned
> long.
> 
> I usually chuck a simple `-1' in there and the compiler always gets it
> right, regardless of signedness and size and architecture.

Umm, I think we actually want 2^32-1 not -1, don't we?  In which case
I think Matt's code is what we have to have.

I tried a little test compile with gcc 4.0 with -m64 -Wall and it
didn't generate a warning with the 0xffffffffULL constant.

Paul.

^ permalink raw reply

* Re: [PATCH][1/3] ppc32: add 440ep support
From: Andrew Morton @ 2005-07-27 23:03 UTC (permalink / raw)
  To: Paul Mackerras; +Cc: linux-kernel, linuxppc-embedded
In-Reply-To: <17128.4407.838024.111955@cargo.ozlabs.ibm.com>

Paul Mackerras <paulus@samba.org> wrote:
>
> Andrew Morton writes:
> 
> > Matt Porter <mporter@kernel.crashing.org> wrote:
> > >
> > > +static u64 dma_mask = 0xffffffffULL;
> > 
> > I'm sure you're totally uninterested in this, but the above will probably
> > generate warnings on (say) ppc64, where u64 is implemented as unsigned
> > long.
> > 
> > I usually chuck a simple `-1' in there and the compiler always gets it
> > right, regardless of signedness and size and architecture.
> 
> Umm, I think we actually want 2^32-1 not -1, don't we?

Doh.  Cant coun't.

^ permalink raw reply

* Re: [PATCH 00/14] ppc32: Remove board ports that are no longer maintained
From: Kumar Gala @ 2005-07-27 23:34 UTC (permalink / raw)
  To: Matt Porter
  Cc: Andrew Morton, linux-kernel, Gala Kumar K.-galak,
	linuxppc-embedded
In-Reply-To: <20050727101502.B1114@cox.net>

On Jul 27, 2005, at 12:15 PM, Matt Porter wrote:

> On Wed, Jul 27, 2005 at 09:27:41AM -0700, Eugene Surovegin wrote:
>
>> On Wed, Jul 27, 2005 at 12:13:23PM -0400, Michael Richardson wrote:
>>
>>> Kumar, I thought that we had some volunteers to take care of some of
>>> those. I know that I still care about ep405, and I'm willing to
>>>
> maintain
>
>>> the code.
>>>
>>
>> Well, it has been almost two months since Kumar asked about
>>
> maintenance
>
>> for this board. Nothing happened since then.
>>
>> Why is it not fixed yet? Please, send a patch which fixes it. This is
>> the _best_ way to keep this board in the tree, not some empty
>> maintenance _promises_.
>>
>
> When we recover our history from the linuxppc-2.4/2.5 trees we can
> show exactly how long it's been since anybody touched ep405.
>
> Quick googling shows that it's been almost 2 years since the last
> mention of ep405 (exluding removal discussions) on linuxppc-embedded.
> Last ep405-related commits are more than 2 years ago.

So we are ok with it being removed.  This seems to be the only board  
port that I removed that has caused any noise.

- kumar

^ permalink raw reply

* Re: [PATCH 00/14] ppc32: Remove board ports that are no longer maintained
From: Kumar Gala @ 2005-07-27 23:35 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel, Gala Kumar K.-galak, linuxppc-embedded
In-Reply-To: <20050727125746.54329281.akpm@osdl.org>


On Jul 27, 2005, at 2:57 PM, Andrew Morton wrote:

> Kumar Gala <galak@freescale.com> wrote:
>
>>
>> The following board ports are no longer maintained or have become
>>  obsolete:
>>
>>  adir
>>  ash
>>  beech
>>  cedar
>>  ep405
>>  k2
>>  mcpn765
>>  menf1
>>  oak
>>  pcore
>>  rainier
>>  redwood
>>  sm850
>>  spd823ts
>>
>>  We are there for removing support for them.
>>
>
> I'll merge all these into -mm for now, but will hold off sending  
> any of
> them upstream pending confirmation of which patches we really want to
> proceed with.

Sounds good.  We will get to some resolution on the ep405 which seems  
the be the only system that people are making noise on today.

- kumar

^ permalink raw reply

* using bestcomm
From: 钟磊 @ 2005-07-28  3:32 UTC (permalink / raw)
  To: linuxppc-embedded

[-- Attachment #1: Type: text/plain, Size: 401 bytes --]

Hi all:
    In my embeded linux directory , I found the bestcomm API (ELDK\ppc_82xx\usr\src\linuxppc_2_4_devel
\arch\ppc\5xxx_io\bestcomm\capi)
    But I don't know how to use the API to handle my task which is to transfer a block of data from the FPGA's internal RAM to the PowerPC MPC5200. 
    Pls give me a simple example of how to use the bestcomm to transfer data from FPGA
Thanks
zhonglei

[-- Attachment #2: Type: text/html, Size: 938 bytes --]

^ permalink raw reply

* How to load a linux kernel under vxworks bootloader (PPC860 board)
From: FCG WANG Baohua @ 2005-07-28  4:16 UTC (permalink / raw)
  To: linuxppc-embedded

[-- Attachment #1: Type: text/plain, Size: 410 bytes --]

Dear All:
  I want to boot a linux 2.4.25 kernel under vxworks bootloader. When I using flat mode(0x200000 -->  0x10000) kernel  uncompressed ELF format ( vmlinux ),
 and download it using TFTP of vxworks, it print the "starting at 0x1000 ...." and  freeze.  No input or output on serial port.
 The version of vxworks is 5.3.1. 
 can you give me some detail advice or give me a tool to slove it? thanks !

[-- Attachment #2: Type: text/html, Size: 1168 bytes --]

^ permalink raw reply

* Re: How to load a linux kernel under vxworks bootloader (PPC860 board)
From: Frank @ 2005-07-28  4:28 UTC (permalink / raw)
  To: FCG WANG Baohua, linuxppc-embedded
In-Reply-To: <A9DE2BAF233E444FA9C5E77A5825A01E8652D4@ydmail.sbell.com.cn>



--- FCG WANG Baohua <Baohua.WANG@alcatel-sbell.com.cn> wrote:

> Dear All:
>   I want to boot a linux 2.4.25 kernel under vxworks
> bootloader. When I using flat mode(0x200000 -->  0x10000)
> kernel  uncompressed ELF format ( vmlinux ),
>  and download it using TFTP of vxworks, it print the "starting
> at 0x1000 ...." and  freeze.  No input or output on serial
> port.
>  The version of vxworks is 5.3.1. 
>  can you give me some detail advice or give me a tool to slove
> it? thanks !

Do what I did:
Replace the vxWorks rom with you u-boot and you can boot Linux
or vxWorks with the same bootloader.

__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 

^ permalink raw reply

* 答复: How to load a linux kernel under vxworks bootloader (PPC860 board)
From: FCG WANG Baohua @ 2005-07-28  4:49 UTC (permalink / raw)
  To: Frank, linuxppc-embedded

RGVhciBGcmFuazoNCiBJIGNhbm5vdCByZXBsYWNlIHRoZSB2eFdvcmtzIGJvb3Ryb20gYmVjYXVz
ZSBJIGhhdmUgbm8gc291cmNlIGFuZCBiaW4gZmlsZXMgb2Ygdnh3b3JrcyBib290bG9hZGVyLCBJ
IGhhdmUgZXZlbiBubyB0aGUgDQogaGFyZHdhcmUgZGlhZ3JhbSByZXNvdXJjZSBvZiBteSBQUEMg
ODYwIGJvYXJkLiAgSWYgSSB3cml0ZSB0aGUgVS1Cb290IGludG8gdGhlIHJvbSwgSSBtb3N0IHBv
c3NpYmxlIGNhbm5vdCBib290dXAgdGhlIGJvYXJkLg0KIEhvdyB0byBkb3dubG9hZCB0aGUgVS1C
b290IGludG8gUkFNIGRpcmVjdGx5IHVzaW5nIHRoZSB2eFdvcmtzIGJvb3Rsb2FkZXIsIEkgdHJp
ZWQgdG8gbG9hZCB0aGUgVS1Cb290IEVMRiBpbWFnZSBidXQgZ2V0IHRoZSBzYW1lIA0KIHJlc3Vs
dCAic3RhcnRpbmcgYXQgMHgyODAwMDAgLi4uIiB0aGVuIG5vIHJlc3BvbnNlIGZyb20gdGhlIHNl
cmlhbCBjb25zb2xlLg0KIFRoZSBvbmx5IHRoaW5nIEkgY2FuIGRvIGlzIHVzZSB2eFdvcmtzIFRG
VFAgdG8gZG93bmxvYWQgdGhlIEVMRiBpbWFnZSBmb3IgbGludXgga2VybmVsIG9yIFUtQm9vdCBp
bnRvIFJBTS4gDQogIENhbiB5b3UgdGVsbCBtZSBob3cgdG8gc2xvdmUgdGhlICBVLUJvb3QgInN0
YXJ0aW5nIGF0IDB4MjgwMDAwIC4uLiIgIHByb2JsZW0gPyB0aGFua3MhDQogIA0KDQotLS0tLeWO
n+Wni+mCruS7ti0tLS0tDQrlj5Hku7bkuro6IEZyYW5rIFttYWlsdG86ZnJhbm5rX20xQHlhaG9v
LmNvbV0NCuWPkemAgeaXtumXtDogMjAwNeW5tDfmnIgyOOaXpSAxMjoyOQ0K5pS25Lu25Lq6OiBG
Q0cgV0FORyBCYW9odWE7IGxpbnV4cHBjLWVtYmVkZGVkQG96bGFicy5vcmcNCuS4u+mimDogUmU6
IEhvdyB0byBsb2FkIGEgbGludXgga2VybmVsIHVuZGVyIHZ4d29ya3MgYm9vdGxvYWRlciAoUFBD
ODYwIGJvYXJkKQ0KDQoNCg0KDQotLS0gRkNHIFdBTkcgQmFvaHVhIDxCYW9odWEuV0FOR0BhbGNh
dGVsLXNiZWxsLmNvbS5jbj4gd3JvdGU6DQoNCj4gRGVhciBBbGw6DQo+ICAgSSB3YW50IHRvIGJv
b3QgYSBsaW51eCAyLjQuMjUga2VybmVsIHVuZGVyIHZ4d29ya3MNCj4gYm9vdGxvYWRlci4gV2hl
biBJIHVzaW5nIGZsYXQgbW9kZSgweDIwMDAwMCAtLT4gIDB4MTAwMDApDQo+IGtlcm5lbCAgdW5j
b21wcmVzc2VkIEVMRiBmb3JtYXQgKCB2bWxpbnV4ICksDQo+ICBhbmQgZG93bmxvYWQgaXQgdXNp
bmcgVEZUUCBvZiB2eHdvcmtzLCBpdCBwcmludCB0aGUgInN0YXJ0aW5nDQo+IGF0IDB4MTAwMCAu
Li4uIiBhbmQgIGZyZWV6ZS4gIE5vIGlucHV0IG9yIG91dHB1dCBvbiBzZXJpYWwNCj4gcG9ydC4N
Cj4gIFRoZSB2ZXJzaW9uIG9mIHZ4d29ya3MgaXMgNS4zLjEuIA0KPiAgY2FuIHlvdSBnaXZlIG1l
IHNvbWUgZGV0YWlsIGFkdmljZSBvciBnaXZlIG1lIGEgdG9vbCB0byBzbG92ZQ0KPiBpdD8gdGhh
bmtzICENCg0KRG8gd2hhdCBJIGRpZDoNClJlcGxhY2UgdGhlIHZ4V29ya3Mgcm9tIHdpdGggeW91
IHUtYm9vdCBhbmQgeW91IGNhbiBib290IExpbnV4DQpvciB2eFdvcmtzIHdpdGggdGhlIHNhbWUg
Ym9vdGxvYWRlci4NCg0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX18NCkRvIFlvdSBZYWhvbyE/DQpUaXJlZCBvZiBzcGFtPyAgWWFob28hIE1haWwgaGFz
IHRoZSBiZXN0IHNwYW0gcHJvdGVjdGlvbiBhcm91bmQgDQpodHRwOi8vbWFpbC55YWhvby5jb20g
DQo=

^ permalink raw reply

* 答复: ?-?¤: How to load a linux kernel under vxworks bootloader (PPC860 board)
From: FCG WANG Baohua @ 2005-07-28  5:12 UTC (permalink / raw)
  To: Frank; +Cc: linuxppc-embedded

RGVhciBGcmFuazoNCiAgSG93IGNhbiBJIHJldmlzZSB0aGUgYWRkcmVzcyBvZiBsaW5rZWQgdG8g
Ym9vdCBpbiBVLUJvb3QgTWFrZWZpbGUgb3IgY29uZmlnIGZpbGUgPyBUaGFua3MgIQ0KICBJIHVz
ZSB0aGUgbWtpbWFnZSB1dGlsaXR5IG9mIFBQQ0Jvb3QgdG8gcmVsb2NhdGUgdGhlIGVudHJ5IHBv
aW50IHRvIDB4MTAwMCwgYnV0IEkgc3RpbGwgZ2V0IHRoZSANCiAic3RhcnRpbmcgYXQgMHgyODAw
MDAuLi4uLiIuIEhvdyB0byBtYWtlIGl0IGVmZmVjdD8gVGhhbmtzICENCg0KDQotLS0tLeWOn+Wn
i+mCruS7ti0tLS0tDQrlj5Hku7bkuro6IEZyYW5rIFttYWlsdG86ZnJhbm5rX20xQHlhaG9vLmNv
bV0NCuWPkemAgeaXtumXtDogMjAwNeW5tDfmnIgyOOaXpSAxMjo1Nw0K5pS25Lu25Lq6OiBGQ0cg
V0FORyBCYW9odWENCuS4u+mimDogUmU6ID8tP8KkOiBIb3cgdG8gbG9hZCBhIGxpbnV4IGtlcm5l
bCB1bmRlciB2eHdvcmtzIGJvb3Rsb2FkZXIgKFBQQzg2MCBib2FyZCkNCg0KDQpTb3JyeSwNCkJ1
dCB5b3Ugd2lsbCBoYXZlIHRvIHJlY29tcGlsZSB1LWJvb3QgYXQgdGhhdCBhZGRyZXNzLiBJdCdz
DQpvcmlnaW5hbGx5IGNvbXBpbGVkIGFuZCBsaW5rZWQgdG8gYm9vdCBhdCAweGZmZjAwMTAwLiBJ
IGRvbid0DQprbm93IHdoYXQgeW91IGhhdmUgdG8gZG8gd2l0aCB2eFdvcmtzIHJvbS4uLg0KDQot
LS0gRkNHIFdBTkcgQmFvaHVhIDxCYW9odWEuV0FOR0BhbGNhdGVsLXNiZWxsLmNvbS5jbj4gd3Jv
dGU6DQoNCj4gRGVhciBGcmFuazoNCj4gIEkgY2Fubm90IHJlcGxhY2UgdGhlIHZ4V29ya3MgYm9v
dHJvbSBiZWNhdXNlIEkgaGF2ZSBubyBzb3VyY2UNCj4gYW5kIGJpbiBmaWxlcyBvZiB2eHdvcmtz
IGJvb3Rsb2FkZXIsIEkgaGF2ZSBldmVuIG5vIHRoZSANCj4gIGhhcmR3YXJlIGRpYWdyYW0gcmVz
b3VyY2Ugb2YgbXkgUFBDIDg2MCBib2FyZC4gIElmIEkgd3JpdGUNCj4gdGhlIFUtQm9vdCBpbnRv
IHRoZSByb20sIEkgbW9zdCBwb3NzaWJsZSBjYW5ub3QgYm9vdHVwIHRoZQ0KPiBib2FyZC4NCj4g
IEhvdyB0byBkb3dubG9hZCB0aGUgVS1Cb290IGludG8gUkFNIGRpcmVjdGx5IHVzaW5nIHRoZQ0K
PiB2eFdvcmtzIGJvb3Rsb2FkZXIsIEkgdHJpZWQgdG8gbG9hZCB0aGUgVS1Cb290IEVMRiBpbWFn
ZSBidXQNCj4gZ2V0IHRoZSBzYW1lIA0KPiAgcmVzdWx0ICJzdGFydGluZyBhdCAweDI4MDAwMCAu
Li4iIHRoZW4gbm8gcmVzcG9uc2UgZnJvbSB0aGUNCj4gc2VyaWFsIGNvbnNvbGUuDQo+ICBUaGUg
b25seSB0aGluZyBJIGNhbiBkbyBpcyB1c2UgdnhXb3JrcyBURlRQIHRvIGRvd25sb2FkIHRoZQ0K
PiBFTEYgaW1hZ2UgZm9yIGxpbnV4IGtlcm5lbCBvciBVLUJvb3QgaW50byBSQU0uIA0KPiAgIENh
biB5b3UgdGVsbCBtZSBob3cgdG8gc2xvdmUgdGhlICBVLUJvb3QgInN0YXJ0aW5nIGF0DQo+IDB4
MjgwMDAwIC4uLiIgIHByb2JsZW0gPyB0aGFua3MhDQo+ICAgDQo+IA0KPiAtLS0tLcOlxb3FuMOl
wqfigLnDqeKAmsKuw6TCu8K2LS0tLS0NCj4gw6XCj+KAmMOkwrvCtsOkwrrCujogRnJhbmsgW21h
aWx0bzpmcmFubmtfbTFAeWFob28uY29tXQ0KPiDDpcKP4oCYw6nigqzCgcOm4oCUwrbDqeKAlOKA
sjogMjAwNcOlwrnigLI3w6bFk8uGMjjDpuKAlO+/pSAxMjoyOQ0KPiDDpuKAncK2w6TCu8K2w6TC
usK6OiBGQ0cgV0FORyBCYW9odWE7IGxpbnV4cHBjLWVtYmVkZGVkQG96bGFicy5vcmcNCj4gw6TC
uMK7w6nvv6DLnDogUmU6IEhvdyB0byBsb2FkIGEgbGludXgga2VybmVsIHVuZGVyIHZ4d29ya3MN
Cj4gYm9vdGxvYWRlciAoUFBDODYwIGJvYXJkKQ0KPiANCj4gDQo+IA0KPiANCj4gLS0tIEZDRyBX
QU5HIEJhb2h1YSA8QmFvaHVhLldBTkdAYWxjYXRlbC1zYmVsbC5jb20uY24+IHdyb3RlOg0KPiAN
Cj4gPiBEZWFyIEFsbDoNCj4gPiAgIEkgd2FudCB0byBib290IGEgbGludXggMi40LjI1IGtlcm5l
bCB1bmRlciB2eHdvcmtzDQo+ID4gYm9vdGxvYWRlci4gV2hlbiBJIHVzaW5nIGZsYXQgbW9kZSgw
eDIwMDAwMCAtLT4gIDB4MTAwMDApDQo+ID4ga2VybmVsICB1bmNvbXByZXNzZWQgRUxGIGZvcm1h
dCAoIHZtbGludXggKSwNCj4gPiAgYW5kIGRvd25sb2FkIGl0IHVzaW5nIFRGVFAgb2Ygdnh3b3Jr
cywgaXQgcHJpbnQgdGhlDQo+ICJzdGFydGluZw0KPiA+IGF0IDB4MTAwMCAuLi4uIiBhbmQgIGZy
ZWV6ZS4gIE5vIGlucHV0IG9yIG91dHB1dCBvbiBzZXJpYWwNCj4gPiBwb3J0Lg0KPiA+ICBUaGUg
dmVyc2lvbiBvZiB2eHdvcmtzIGlzIDUuMy4xLiANCj4gPiAgY2FuIHlvdSBnaXZlIG1lIHNvbWUg
ZGV0YWlsIGFkdmljZSBvciBnaXZlIG1lIGEgdG9vbCB0bw0KPiBzbG92ZQ0KPiA+IGl0PyB0aGFu
a3MgIQ0KPiANCj4gRG8gd2hhdCBJIGRpZDoNCj4gUmVwbGFjZSB0aGUgdnhXb3JrcyByb20gd2l0
aCB5b3UgdS1ib290IGFuZCB5b3UgY2FuIGJvb3QgTGludXgNCj4gb3IgdnhXb3JrcyB3aXRoIHRo
ZSBzYW1lIGJvb3Rsb2FkZXIuDQo+IA0KPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fXw0KPiBEbyBZb3UgWWFob28hPw0KPiBUaXJlZCBvZiBzcGFtPyAg
WWFob28hIE1haWwgaGFzIHRoZSBiZXN0IHNwYW0gcHJvdGVjdGlvbg0KPiBhcm91bmQgDQo+IGh0
dHA6Ly9tYWlsLnlhaG9vLmNvbSANCj4gDQoNCg0KX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX18NCkRvIFlvdSBZYWhvbyE/DQpUaXJlZCBvZiBzcGFtPyAg
WWFob28hIE1haWwgaGFzIHRoZSBiZXN0IHNwYW0gcHJvdGVjdGlvbiBhcm91bmQgDQpodHRwOi8v
bWFpbC55YWhvby5jb20gDQo=

^ permalink raw reply

* Re: platform/board removal update
From: Pantelis Antoniou @ 2005-07-28  6:29 UTC (permalink / raw)
  To: 'Aristeu Sergio Rozanski Filho'
  Cc: linuxppc-dev list, Embedded PPC Linux list
In-Reply-To: <20050727214600.GB30557@cathedrallabs.org>

'Aristeu Sergio Rozanski Filho' wrote:
>>8xx_io/fec.c is still using v2.4's workqueue infrastructure but other than
>>that its working fine. 
>>
>>The fix will be pushed upstream ASAP.
>>
>>BTW, we should schedule 8xx_io/fec.c for removal, but before that we ought to 
>>test all supported PHY's on the new driver.
>>
>>Aris was talking to me about this on OLS. Aris, what are the PHY's not supported
>>by Panto's driver again? We should build a list of those and ask around for
>>testers.
> 
> I think that with Andy Fleming's PHY abstraction layer, the best thing to be done
> is change fec_8xx to use this abstraction layer and then look for
> testers. what you think?
> 

There's a fs_enet driver in the works which will use Andy's work.

Please refrain from doing anything :)

Regards

Pantelis

^ permalink raw reply

* Re: How to load a linux kernel under vxworks bootloader (PPC860 board)
From: Esben Nielsen @ 2005-07-28  7:47 UTC (permalink / raw)
  To: Frank; +Cc: FCG WANG Baohua, linuxppc-embedded
In-Reply-To: <20050728042840.36296.qmail@web32203.mail.mud.yahoo.com>

On Wed, 27 Jul 2005, Frank wrote:

> 
> 
> --- FCG WANG Baohua <Baohua.WANG@alcatel-sbell.com.cn> wrote:
> 
> > Dear All:
> >   I want to boot a linux 2.4.25 kernel under vxworks
> > bootloader. When I using flat mode(0x200000 -->  0x10000)
> > kernel  uncompressed ELF format ( vmlinux ),
> >  and download it using TFTP of vxworks, it print the "starting
> > at 0x1000 ...." and  freeze.  No input or output on serial
> > port.
> >  The version of vxworks is 5.3.1. 
> >  can you give me some detail advice or give me a tool to slove
> > it? thanks !

I have done it on a MPC5200 with a vxWorks 5.5 bootsector with ethernet
support: I just boot over FTP.  Give it the Linux kernel in elf-format, 
the bootsector doesn't care, _what_ the code actually is, it just loads
and run it. 

For vxWorks <= 5.4 I believe coff is used instead of elf - at least on
some architectures. Then you have a problem, because the kernel isn't
compiled to coff :-(

Esben


> 
> Do what I did:
> Replace the vxWorks rom with you u-boot and you can boot Linux
> or vxWorks with the same bootloader.
> 
> __________________________________________________
> Do You Yahoo!?
> Tired of spam?  Yahoo! Mail has the best spam protection around 
> http://mail.yahoo.com 
> _______________________________________________
> Linuxppc-embedded mailing list
> Linuxppc-embedded@ozlabs.org
> https://ozlabs.org/mailman/listinfo/linuxppc-embedded
> 

^ permalink raw reply

* Re : custom ads8272 board PCI interrupt no response
From: Sam Song @ 2005-07-28  8:57 UTC (permalink / raw)
  To: linuxppc-embedded
In-Reply-To: <20050727135233.7367.qmail@web15803.mail.cnb.yahoo.com>

Sam Song <samlinuxppc@yahoo.com.cn> wrote:
> Hi all,
> 
> A PCI interrupt probelm confused me when porting
> 2.6.13-rc3 on a custom 8248 board. There was a 
> Gb ethernet RTL8110S on board with IDSEL AD25 and
> IRQ3. So I made some changes as follows:
> 
> --- linux-2.6.13-rc3/arch/ppc/platforms/pq2ads.h
> +++ linux-2.6.13-rc3-sam/arch/ppc/platforms/pq2ads.h
> @@ -74,11 +78,11 @@
> -#define PCI_INT_TO_SIU 	SIU_INT_IRQ2
> +#define PCI_INT_TO_SIU 	SIU_INT_IRQ3

Ummm, not the case. ADS8272 uses a CPLD PCI interrupt
controller which takes up IRQ2. No need to me:-)

> --- linux-2.6.13-rc3/arch/ppc/syslib/m82xx_pci.c
> +++ linux-2.6.13-rc3-sam/arch/ppc/syslib/m82xx_pci.c
> @@ -60,12 +60,20 @@
>       * 	  A      B      C      D
>       */
>       {
> +#if 0
>     { PIRQA, PIRQB, PIRQC, PIRQD },/* IDSEL 22 - PCI
> 
> slot 0 */
>     { PIRQD, PIRQA, PIRQB, PIRQC }, /* IDSEL 23 -
> PCI 
> slot 1 */
>     { PIRQC, PIRQD, PIRQA, PIRQB }, /* IDSEL 24 -
> PCI 
> slot 2 */
> +#else  
> + {22, 22, 22, 22},/* IDSEL 22/IRQ4-PCI slot 0-USB
> */
> + {23, 23, 23, 23},/* IDSEL 23/IRQ5-PCI slot 1-IDE
> */
> + {24, 24, 0,   0},/* IDSEL 24 - PCI slot # - NULL
> */
> + {25, 25, 25, 25},/* IDSEL 25/IRQ3-PCI slot 2- Gb
> */

Set IRQ3 in the last line as 21 to assign the IRQ3
to Gb ethernet.

> Gb interrupt remained unchangable in the whole test
> process. I could ping target itself but not for 
> outside machine. So I suspect this result was due to
> PCI interrupt setting but don't know where the
> probelm is. Any idea?

Well, I finally masked pq2ads interrupt irq init and
adjusted SIUMCR IRQ3 setting correctly. Then 
everything went as smoothly as clockwork.

Sorry to bother here:-)

Sam

__________________________________________________
赶快注册雅虎超大容量免费邮箱?
http://cn.mail.yahoo.com

^ permalink raw reply

* Re: [RFC PATCH 1/4] PHY Abstraction Layer III (now with more splitiness)
From: Jörn Engel @ 2005-07-28  9:18 UTC (permalink / raw)
  To: Randy Dunlap; +Cc: Netdev, linuxppc-embedded, Francois Romieu
In-Reply-To: <1122500059.28777@shark.he.net>

On Wed, 27 July 2005 14:34:19 -0700, Randy Dunlap wrote:
> > 
> > Ok, here I won't agree to disagree with you.  !foo as a check for  
> > NULL is a reasonable idea, but not my style.  If that's the preferred  
> > style for the kernel, I will do that.
> > 
> > But (var == constant) is a style that asks for errors.  By putting  
> > the constant first in these checks, you never run the risk of leaving  
> > a bug like this:
> > 
> > if (dev = NULL)
> >      ...
> > 
> > This kind of error is quite frustrating to detect, and the eye will  
> > often miss it when scanning for errors.  If you follow constant ==  
> > var, though, then the bug looks like this:
> > 
> > if (NULL = dev)
> > 
> > which is instantly caught by the compiler.
> > 
> > Just my 32 cents
> 
> Yes, we know about that argument.  :)

The counter-argument basically goes like this:

1. All relevant compilers (GCC) warn on "if (dev = NULL)", so you will
only miss the bug if you ignore compiler warnings.  Ignoring compiler
warnings is not generally endorsed by the kernel crowd.

2. Very hard to read, "if (NULL = dev)" is.  Reversing the order is a
fun thing to do for small green characters in fantasy and scifi
stories and fairly popular in peotry as well.  But understanding the
meaning of reverse order sentences takes more time.  In the kernel,
peer review is an important aspect and making the code hard to read
hurts peer review.

And maybe you can add another one:

3. Im my personal experience, reverse order comparisons were a good
indicator of buggy code.

Jörn

-- 
Schrödinger's cat is <BLINK>not</BLINK> dead.
-- Illiad

^ permalink raw reply

* Re: CPM MCC sample driver?
From: Alex Zeffertt @ 2005-07-28  9:41 UTC (permalink / raw)
  To: bbosch; +Cc: linuxppc-embedded
In-Reply-To: <17127.49093.492554.638213@waldo.lisle.iphase.com>

On Wed, 27 Jul 2005 12:09:25 -0500
bbosch@iphase.com wrote:

> A couple of years ago, Adam Kaczynski announced a sample MCC HDLC and
> Transparent mode driver.  Both the URL Adam posted and Adam's email
> address are no longer valid.  Is this code or any other Linux MCC
> driver available anywhere?  I need to develop an MCC driver for a
> project I am working on and it would be very helpful to have an
> example to start with.
> 

I'm not sure what you mean by MCC.  I've got an PQI SCC tranparent mode driver which implements a
character device for reading from/writing to a PCM bus.  I wrote it a couple of years ago and tested
it using an external loopback - but I've never used it in anger.  Would this be useful to you?

Alex

^ permalink raw reply


This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox