[PATCH] ppc32: Support for Freescale PQ2FADS
From: Wade Farnsworth <[EMAIL PROTECTED]> Adds support for the Freescale PQ2FADS board. Signed-off-by: Wade Farnsworth --- This patch makes use of PHYLIB, and as such requires the following patches from Vitaly Bordug : ppc32: Fix string comparing in platform_notify_map PAL: Support of the fixed PHY FS_ENET: use PAL for mii management This supercedes the previous patch posted on April 4. arch/ppc/Kconfig |2 arch/ppc/configs/pq2fads_defconfig | 783 +++ arch/ppc/platforms/Makefile|1 arch/ppc/platforms/pq2ads.h| 17 arch/ppc/platforms/pq2ads_pd.h | 15 arch/ppc/platforms/pq2fads_setup.c | 248 arch/ppc/syslib/m82xx_pci.c|5 arch/ppc/syslib/pq2_sys.c | 10 8 files changed, 1075 insertions(+), 6 deletions(-) diff -uprN linux-2.6-orig/arch/ppc/Kconfig linux-2.6-new/arch/ppc/Kconfig --- linux-2.6-orig/arch/ppc/Kconfig 2006-04-11 11:00:08.0 -0700 +++ linux-2.6-new/arch/ppc/Kconfig 2006-04-11 11:14:52.0 -0700 @@ -731,7 +731,7 @@ endchoice config PQ2ADS bool - depends on ADS8272 + depends on ADS8272 || PQ2FADS default y config TQM8xxL diff -uprN linux-2.6-orig/arch/ppc/configs/pq2fads_defconfig linux-2.6-new/arch/ppc/configs/pq2fads_defconfig --- linux-2.6-orig/arch/ppc/configs/pq2fads_defconfig 1969-12-31 17:00:00.0 -0700 +++ linux-2.6-new/arch/ppc/configs/pq2fads_defconfig2006-04-11 11:34:30.0 -0700 @@ -0,0 +1,783 @@ +# +# Automatically generated make config: don't edit +# Linux kernel version: 2.6.17-rc1 +# Tue Apr 11 11:34:23 2006 +# +CONFIG_MMU=y +CONFIG_GENERIC_HARDIRQS=y +CONFIG_RWSEM_XCHGADD_ALGORITHM=y +CONFIG_GENERIC_HWEIGHT=y +CONFIG_GENERIC_CALIBRATE_DELAY=y +CONFIG_PPC=y +CONFIG_PPC32=y +CONFIG_GENERIC_NVRAM=y +CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y +CONFIG_ARCH_MAY_HAVE_PC_FDC=y + +# +# Code maturity level options +# +CONFIG_EXPERIMENTAL=y +CONFIG_BROKEN_ON_SMP=y +CONFIG_INIT_ENV_ARG_LIMIT=32 + +# +# General setup +# +CONFIG_LOCALVERSION="" +CONFIG_LOCALVERSION_AUTO=y +CONFIG_SWAP=y +CONFIG_SYSVIPC=y +# CONFIG_POSIX_MQUEUE is not set +# CONFIG_BSD_PROCESS_ACCT is not set +CONFIG_SYSCTL=y +# CONFIG_AUDIT is not set +# CONFIG_IKCONFIG is not set +# CONFIG_RELAY is not set +CONFIG_INITRAMFS_SOURCE="" +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set +CONFIG_EMBEDDED=y +# CONFIG_KALLSYMS is not set +# CONFIG_HOTPLUG is not set +CONFIG_PRINTK=y +CONFIG_BUG=y +CONFIG_ELF_CORE=y +CONFIG_BASE_FULL=y +CONFIG_FUTEX=y +# CONFIG_EPOLL is not set +CONFIG_SHMEM=y +CONFIG_SLAB=y +CONFIG_DOUBLEFAULT=y +# CONFIG_TINY_SHMEM is not set +CONFIG_BASE_SMALL=0 +# CONFIG_SLOB is not set + +# +# Loadable module support +# +# CONFIG_MODULES is not set + +# +# Block layer +# +# CONFIG_LBD is not set +# CONFIG_BLK_DEV_IO_TRACE is not set +# CONFIG_LSF is not set + +# +# IO Schedulers +# +CONFIG_IOSCHED_NOOP=y +CONFIG_IOSCHED_AS=y +CONFIG_IOSCHED_DEADLINE=y +CONFIG_IOSCHED_CFQ=y +CONFIG_DEFAULT_AS=y +# CONFIG_DEFAULT_DEADLINE is not set +# CONFIG_DEFAULT_CFQ is not set +# CONFIG_DEFAULT_NOOP is not set +CONFIG_DEFAULT_IOSCHED="anticipatory" + +# +# Processor +# +CONFIG_6xx=y +# CONFIG_40x is not set +# CONFIG_44x is not set +# CONFIG_8xx is not set +# CONFIG_E200 is not set +# CONFIG_E500 is not set +CONFIG_PPC_FPU=y +# CONFIG_KEXEC is not set +# CONFIG_CPU_FREQ is not set +# CONFIG_WANT_EARLY_SERIAL is not set +CONFIG_EMBEDDEDBOOT=y +CONFIG_PPC_STD_MMU=y + +# +# Platform options +# + +# +# Freescale Ethernet driver platform-specific options +# +# CONFIG_PPC_PREP is not set +# CONFIG_APUS is not set +# CONFIG_KATANA is not set +# CONFIG_WILLOW is not set +# CONFIG_CPCI690 is not set +# CONFIG_POWERPMC250 is not set +# CONFIG_CHESTNUT is not set +# CONFIG_SPRUCE is not set +# CONFIG_HDPU is not set +# CONFIG_EV64260 is not set +# CONFIG_LOPEC is not set +# CONFIG_MVME5100 is not set +# CONFIG_PPLUS is not set +# CONFIG_PRPMC750 is not set +# CONFIG_PRPMC800 is not set +# CONFIG_SANDPOINT is not set +# CONFIG_RADSTONE_PPC7D is not set +# CONFIG_PAL4 is not set +# CONFIG_GEMINI is not set +# CONFIG_EST8260 is not set +# CONFIG_SBC82xx is not set +# CONFIG_SBS8260 is not set +# CONFIG_RPX8260 is not set +# CONFIG_TQM8260 is not set +# CONFIG_ADS8272 is not set +CONFIG_PQ2FADS=y +# CONFIG_LITE5200 is not set +# CONFIG_MPC834x_SYS is not set +# CONFIG_EV64360 is not set +CONFIG_PQ2ADS=y +CONFIG_8260=y +CONFIG_CPM2=y +# CONFIG_PC_KEYBOARD is not set +# CONFIG_SMP is not set +# CONFIG_HIGHMEM is not set +# CONFIG_HZ_100 is not set +CONFIG_HZ_250=y +# CONFIG_HZ_1000 is not set +CONFIG_HZ=250 +CONFIG_PREEMPT_NONE=y +# CONFIG_PREEMPT_VOLUNTARY is not set +# CONFIG_PREEMPT is not set +CONFIG_SELECT_MEMORY_MODEL=y +CONFIG_FLATMEM_MANUAL=y +# CONFIG_DISCONTIGMEM_MANUAL is not set +# CONFIG_SPARSEMEM_MANUAL is not set +CONFIG_FLATMEM=y +CONFIG_FLAT_NODE_MEM_MAP=y +# CONFIG_SPARSEMEM_STATIC is not set +CONFIG
[PATCH] ppc32: Support for Freescale PQ2FADS
On Thu, 2006-04-06 at 09:06, Wade Farnsworth wrote: > On Thu, 2006-04-06 at 07:05, Vitaly Bordug wrote: > > > > Though I doubt if new boards are accepting to ppc/ currently, it's nice to > > have a patch > > available. BTW, I suggest to use phy abstraction and updated fs_enet > > (submitted here recently) > > > +CONFIG_USB_ARCH_HAS_HCD=y > > > +CONFIG_USB_ARCH_HAS_OHCI=y > > > > Not sure this is required as well. > > I'll disable this as well. Looking at drivers/usb/Kconfig, these are actually enabled by default if CONFIG_PCI is enabled. CONFIG_USB then depends on CONFIG_USB_ARCH_HAS_HCD. > > > > > > +#ifdef CONFIG_PQ2FADS > > > +#define F2_RXCLK 13 > > > +#define F2_TXCLK 14 > > > +#else > > > #define F2_RXCLK 15 > > > #define F2_TXCLK 16 > > > +#endif > > > > > Hmm, this should go into the board-specific header - here should exist just > > a "reasonable default" (pq2ads.h in this context). > > > > > > > /* FCC3 Clock Source Configuration. These can be redefined in the board > > > specific file. > > > Can only choose from CLK13-16 */ > > > +#ifdef CONFIG_PQ2FADS > > > +#define F3_RXCLK 15 > > > +#define F3_TXCLK 16 > > > +#else > > > #define F3_RXCLK 13 > > > #define F3_TXCLK 14 > > > +#endif > > > > > ditto. > > Ok, I'll move these defines into pq2ads.h > Also, moving the defines into pq2ads.h results in some nasty warning messages. I'll put some #ifndef's around the #define's in pq2ads_pd.h to squelch them. -Wade
[PATCH] ppc32: Support for Freescale PQ2FADS
On Thu, 2006-04-06 at 07:05, Vitaly Bordug wrote: > > Though I doubt if new boards are accepting to ppc/ currently, it's nice to > have a patch > available. BTW, I suggest to use phy abstraction and updated fs_enet > (submitted here recently) I'll look into that. > > Some more notes below. > > +CONFIG_INPUT=y > > This is useless for the board iirc. > > > > +CONFIG_SOUND_GAMEPORT=y > ditto. Yes, you're right. I'm not sure why I had those enabled. > > +CONFIG_USB_ARCH_HAS_HCD=y > > +CONFIG_USB_ARCH_HAS_OHCI=y > > Not sure this is required as well. I'll disable this as well. > > +#ifdef CONFIG_PQ2FADS > > +#define F2_RXCLK 13 > > +#define F2_TXCLK 14 > > +#else > > #define F2_RXCLK 15 > > #define F2_TXCLK 16 > > +#endif > > > Hmm, this should go into the board-specific header - here should exist just a > "reasonable default" (pq2ads.h in this context). > > > > /* FCC3 Clock Source Configuration. These can be redefined in the board > > specific file. > > Can only choose from CLK13-16 */ > > +#ifdef CONFIG_PQ2FADS > > +#define F3_RXCLK 15 > > +#define F3_TXCLK 16 > > +#else > > #define F3_RXCLK 13 > > #define F3_TXCLK 14 > > +#endif > > > ditto. Ok, I'll move these defines into pq2ads.h Thanks for the feedback. I'll make the changes and resubmit. -Wade Farnsworth
[PATCH] ppc32: Support for Freescale PQ2FADS
From: Wade Farnsworth <[EMAIL PROTECTED]> Adds support for the Freescale PQ2FADS board. Signed-off-by: Wade Farnsworth --- arch/ppc/Kconfig |2 arch/ppc/configs/pq2fads_defconfig | 712 +++ arch/ppc/platforms/Makefile|1 arch/ppc/platforms/pq2ads.h| 10 arch/ppc/platforms/pq2ads_pd.h | 11 arch/ppc/platforms/pq2fads_setup.c | 235 arch/ppc/syslib/m82xx_pci.c|5 7 files changed, 975 insertions(+), 1 deletion(-) diff --git a/arch/ppc/Kconfig b/arch/ppc/Kconfig --- a/arch/ppc/Kconfig +++ b/arch/ppc/Kconfig @@ -731,7 +731,7 @@ endchoice config PQ2ADS bool - depends on ADS8272 + depends on ADS8272 || PQ2FADS default y config TQM8xxL diff --git a/arch/ppc/configs/pq2fads_defconfig b/arch/ppc/configs/pq2fads_defconfig new file mode 100644 --- /dev/null +++ b/arch/ppc/configs/pq2fads_defconfig @@ -0,0 +1,712 @@ +# +# Automatically generated make config: don't edit +# Linux kernel version: 2.6.10_mvl401 +# Thu Mar 23 14:28:38 2006 +# +CONFIG_MMU=y +CONFIG_GENERIC_HARDIRQS=y +CONFIG_RWSEM_GENERIC_SPINLOCK=y +CONFIG_ASM_SEMAPHORES=y +CONFIG_HAVE_DEC_LOCK=y +CONFIG_PPC=y +CONFIG_PPC32=y +CONFIG_GENERIC_NVRAM=y + +# +# Code maturity level options +# +CONFIG_EXPERIMENTAL=y +CONFIG_CLEAN_COMPILE=y +CONFIG_BROKEN_ON_SMP=y + +# +# General setup +# +CONFIG_LOCALVERSION="" +CONFIG_SWAP=y +CONFIG_SYSVIPC=y +CONFIG_SYSVIPC_SEMMNI=128 +CONFIG_SYSVIPC_SEMMSL=250 +# CONFIG_POSIX_MQUEUE is not set +# CONFIG_BSD_PROCESS_ACCT is not set +CONFIG_SYSCTL=y +# CONFIG_AUDIT is not set +CONFIG_LOG_BUF_SHIFT=14 +# CONFIG_HOTPLUG is not set +CONFIG_KOBJECT_UEVENT=y +# CONFIG_IKCONFIG is not set +CONFIG_EMBEDDED=y +# CONFIG_KALLSYMS is not set +CONFIG_FUTEX=y +# CONFIG_EPOLL is not set +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set +CONFIG_SHMEM=y +CONFIG_CC_ALIGN_FUNCTIONS=0 +CONFIG_CC_ALIGN_LABELS=0 +CONFIG_CC_ALIGN_LOOPS=0 +CONFIG_CC_ALIGN_JUMPS=0 +# CONFIG_BOOT_FLIGHT_RECORDER is not set +CONFIG_LOCKLESS=y +CONFIG_BOOT_FLIGHT_BUFFERS=4 +CONFIG_BOOT_FLIGHT_SIZE=524288 +CONFIG_FLIGHT_PROC_BUFFERS=8 +CONFIG_FLIGHT_PROC_SIZE=8192 +CONFIG_NEWEV=y +CONFIG_CSTM=y +# CONFIG_TINY_SHMEM is not set + +# +# Loadable module support +# +# CONFIG_MODULES is not set + +# +# Processor +# +CONFIG_6xx=y +# CONFIG_40x is not set +# CONFIG_44x is not set +# 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=y +# CONFIG_CPU_FREQ is not set +CONFIG_EMBEDDEDBOOT=y +CONFIG_PPC_STD_MMU=y + +# +# Platform options +# + +# +# Freescale Ethernet driver platform-specific options +# +# CONFIG_PPC_MULTIPLATFORM is not set +# CONFIG_APUS is not set +# CONFIG_KATANA is not set +# CONFIG_WILLOW is not set +# CONFIG_CPCI690 is not set +# CONFIG_PCORE is not set +# CONFIG_POWERPMC250 is not set +# CONFIG_CHESTNUT is not set +# CONFIG_SPRUCE is not set +# CONFIG_EV64260 is not set +# CONFIG_LOPEC is not set +# CONFIG_MCPN765 is not set +# CONFIG_MVME5100 is not set +# CONFIG_PPLUS is not set +# CONFIG_PRPMC750 is not set +# CONFIG_PRPMC800 is not set +# CONFIG_SANDPOINT is not set +# CONFIG_ADIR is not set +# CONFIG_K2 is not set +# CONFIG_PAL4 is not set +# CONFIG_GEMINI is not set +# CONFIG_EST8260 is not set +# CONFIG_SBC82xx is not set +# CONFIG_SBS8260 is not set +# CONFIG_RPX8260 is not set +# CONFIG_TQM8260 is not set +# CONFIG_ADS8272 is not set +CONFIG_PQ2FADS=y +# CONFIG_LITE5200 is not set +# CONFIG_MPC834x_SYS is not set +CONFIG_PQ2ADS=y +CONFIG_8260=y +CONFIG_CPM2=y +# CONFIG_PC_KEYBOARD is not set +# CONFIG_SMP is not set +CONFIG_PREEMPT_NONE=y +# CONFIG_PREEMPT_VOLUNTARY is not set +# CONFIG_PREEMPT_DESKTOP is not set +# CONFIG_PREEMPT_RT is not set +# CONFIG_PREEMPT_SOFTIRQS is not set +# CONFIG_PREEMPT_HARDIRQS is not set +# CONFIG_PREEMPT_BKL is not set +# CONFIG_HIGHMEM is not set +# CONFIG_HIGH_RES_TIMERS is not set +CONFIG_BINFMT_ELF=y +# CONFIG_BINFMT_MISC is not set +# CONFIG_CMDLINE_BOOL is not set + +# +# Bus options +# +CONFIG_PCI=y +CONFIG_PCI_DOMAINS=y +CONFIG_PCI_8260=y +# CONFIG_8260_PCI9 is not set +# CONFIG_PCI_LEGACY_PROC is not set +# CONFIG_PCI_NAMES is not set + +# +# Advanced setup +# +# CONFIG_ADVANCED_OPTIONS is not set + +# +# Default settings for advanced configuration options are used +# +CONFIG_HIGHMEM_START=0xfe00 +CONFIG_LOWMEM_SIZE=0x3000 +CONFIG_KERNEL_START=0xc000 +CONFIG_TASK_SIZE=0x8000 +CONFIG_BOOT_LOAD=0x0040 + +# +# Device Drivers +# + +# +# Generic Driver Options +# +CONFIG_STANDALONE=y +CONFIG_PREVENT_FIRMWARE_BUILD=y + +# +# 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_BL
[PATCH 6/6] MTD defines for Luan
This fixes the defines for MTD support in the Luan platform file. --Wade Signed off by: Wade Farnsworth -- next part -- A non-text attachment was scrubbed... Name: luan-mtd-defs.patch Type: text/x-patch Size: 1412 bytes Desc: not available Url : http://ozlabs.org/pipermail/linuxppc-embedded/attachments/20060301/f1ceffd2/attachment.bin
[PATCH 5/6] Clock and power management define fixes for 440SP
This fixes the clock and power management defines on the 440SP. --Wade Signed off by: Wade Farnsworth -- next part -- A non-text attachment was scrubbed... Name: luan-cpm.patch Type: text/x-patch Size: 2672 bytes Desc: not available Url : http://ozlabs.org/pipermail/linuxppc-embedded/attachments/20060301/8667493c/attachment.bin
[PATCH 4/6] L2 Cache support for 440SP
This adds L2 Cache support for the 440SP. --Wade Signed off by: Wade Farnsworth -- next part -- A non-text attachment was scrubbed... Name: luan-l2c.patch Type: text/x-patch Size: 636 bytes Desc: not available Url : http://ozlabs.org/pipermail/linuxppc-embedded/attachments/20060301/29449566/attachment.bin
[PATCH 3/6] PCIX fixes and enhancements for 440SP & Luan
This patch allows each bridge on the 440SP to be configured for both host and adapter mode. Previously, PCIX0 was configured for adapter mode only. Also fixes PCIXn_IO_BASE for PCIX1 and 2. Signed off by: Wade Farnsworth -- next part -- A non-text attachment was scrubbed... Name: luan-pcix.patch Type: text/x-patch Size: 4304 bytes Desc: not available Url : http://ozlabs.org/pipermail/linuxppc-embedded/attachments/20060301/08ee9b91/attachment.bin
[PATCH 2/6] Add UIC settings for 440SP & Luan
This adds the necessary structures for the UIC polarity and triggering on the 440SP & Luan. -Wade Signed off by: Wade Farnsworth -- next part -- A non-text attachment was scrubbed... Name: luan-uic.patch Type: text/x-patch Size: 1590 bytes Desc: not available Url : http://ozlabs.org/pipermail/linuxppc-embedded/attachments/20060301/42c05e04/attachment.bin
[PATCH 1/6] Support for UART 2 on 440SP and Luan
This fixes the IRQ number for UART 2 on the 440SP and adds support to ibm440gx_get_clocks() for it. It also enables the UART on the Luan. --Wade Signed off by: Wade Farnsworth -- next part -- A non-text attachment was scrubbed... Name: luan-uart2.patch Type: text/x-patch Size: 2731 bytes Desc: not available Url : http://ozlabs.org/pipermail/linuxppc-embedded/attachments/20060301/3f19a965/attachment.bin
[PATCH 0/6] AMCC 440SP/Luan board enhancements & fixes
Greetings, The following patches are enhancements and/or fixes for the AMCC 440SP SoC and the Luan board. Most notably there is support for UART2 and the L2 Cache, as well as increased flexibility for the PCIX bridges. --Wade Farnsworth
Transmit timeouts on 440GX Ocotea on 10baseT-HD network
On Wed, 2005-12-07 at 10:35, Eugene Surovegin wrote: > Hmm, I think this should have been fixed in the latest 2.6. Check > that you tree has this patch: > > [PATCH] ibm_emac: fix graceful stop timeout handling > > It went in on 01 Dec. Although this fix assumed FDX operation for > timeouts, without collisions. Maybe I was too optimistic thinking that > nobody uses 10/HDX :). That was my first thought as well, but I've tried it with the patch, and still get the timeouts. > > Try making STOP_TIMEOUT_10 bigger, say twice as big. That doesn't seem to help any. > > If this doesn't help, I'll send you patch with enables some additional > debugging, so I can check that stop you are experiencing is the same > problem I had last month. Much appreciated. Thanks! Regards, Wade Farnsworth
Transmit timeouts on 440GX Ocotea on 10baseT-HD network
On Wed, 2005-12-07 at 08:15, Wade Farnsworth wrote: > Hi Eugene, > > I'm seeing some "NETDEV WATCHDOG: eth0: transmit timed out" messages on > the Ocotea when it's connected to a 10baseT hub, and it's put under > heavy load. I'm using the most current 2.6 git tree. > > This can be reproduced by ssh'ing into the Ocotea and running the > command "ping -A -s 1200", then also doing the same ping > command from the host to the Ocotea. The pings will be successful for a > short time, then all transmits on the Ocotea will stop for a few seconds > (usually preceded by a few duplicate packets). Transmits begin again > once the timeout occurs. /proc/net/dev doesn't report any errors, just a > few dropped packets. > > Do you know what might be causing the EMAC to stop transmitting in this > situation? One more data point to consider: I ran this test on an Ebony board, but don't encounter any timeouts. Do you know of any 440GX-specific issues that might cause this? Thanks again, Wade Farnsworth
Transmit timeouts on 440GX Ocotea on 10baseT-HD network
Hi Eugene, I'm seeing some "NETDEV WATCHDOG: eth0: transmit timed out" messages on the Ocotea when it's connected to a 10baseT hub, and it's put under heavy load. I'm using the most current 2.6 git tree. This can be reproduced by ssh'ing into the Ocotea and running the command "ping -A -s 1200", then also doing the same ping command from the host to the Ocotea. The pings will be successful for a short time, then all transmits on the Ocotea will stop for a few seconds (usually preceded by a few duplicate packets). Transmits begin again once the timeout occurs. /proc/net/dev doesn't report any errors, just a few dropped packets. Do you know what might be causing the EMAC to stop transmitting in this situation? Thanks, Wade Farnsworth
[PATCH] Add support for USB to 440EP platform files
This adds support for the USB host and device interfaces on the 440EP to the appropriate platform-specific files. Signed off by: John Otken Signed off by: Wade Farnsworth -- next part -- A non-text attachment was scrubbed... Name: 440ep-ppc-usb.patch Type: text/x-patch Size: 2374 bytes Desc: not available Url : http://ozlabs.org/pipermail/linuxppc-embedded/attachments/20050919/2e875886/attachment.bin
[PATCH] add field to struct ocp_func_emac_data for platform-specific unsupported PHY features
On Mon, 2005-08-08 at 16:44, Matt Porter wrote: (snip) > > Could you update this field (and related usages) to be "phy_ftr_exc"? > For "Excluded phy features". Eugene and I discussed this on IRC and > think it's a better name...for one it starts with the phy_ prefix like > other related phy data. Except for that, it's ready for upstream. > > Thanks, > Matt Here is the updated patch with the field renamed to "phy_ftr_exc" instead of "feat_unsupp". -Wade Farnsworth Signed-off-by: Wade Farnsworth -- next part -- A non-text attachment was scrubbed... Name: ibm-emac-phy-feat-exc-ppc.patch Type: text/x-patch Size: 3264 bytes Desc: not available Url : http://ozlabs.org/pipermail/linuxppc-embedded/attachments/20050811/4db41b2b/attachment.bin
[PATCH] add field to struct ocp_func_emac_data for platform-specific unsupported PHY features
Hello all, This patch adds a field to struct ocp_func_emac_data that allows platform-specific unsupported PHY features to be passed in to the ibm_emac ethernet driver. This patch also adds some logic for the Bamboo eval board to populate this field based on the dip switches on the board. This is a workaround for the improperly biased RJ-45 sockets on the Rev. 0 Bamboo. See the comments in bamboo.c for more information on this bug. -Wade Farnsworth Signed-off by: Wade Farnsworth -- next part -- --- linux-2.6/arch/ppc/platforms/4xx/bamboo.c 2005-08-03 13:33:41.0 -0700 +++ linux-2.6-dev/arch/ppc/platforms/4xx/bamboo.c 2005-08-02 10:51:00.0 -0700 @@ -123,33 +123,69 @@ bamboo_map_irq(struct pci_dev *dev, unsi static void __init bamboo_set_emacdata(void) { - unsigned char * selection1_base; + u8 * base_addr; struct ocp_def *def; struct ocp_func_emac_data *emacdata; - u8 selection1_val; + u8 val; int mode; + u32 unsupported = 0; - selection1_base = ioremap64(BAMBOO_FPGA_SELECTION1_REG_ADDR, 16); - selection1_val = readb(selection1_base); - iounmap((void *) selection1_base); - if (BAMBOO_SEL_MII(selection1_val)) + base_addr = ioremap64(BAMBOO_FPGA_SELECTION1_REG_ADDR, 16); + val = readb(base_addr); + iounmap((void *) base_addr); + if (BAMBOO_SEL_MII(val)) mode = PHY_MODE_MII; - else if (BAMBOO_SEL_RMII(selection1_val)) + else if (BAMBOO_SEL_RMII(val)) mode = PHY_MODE_RMII; else mode = PHY_MODE_SMII; - /* Set mac_addr and phy mode for each EMAC */ + /* +* SW2 on the Bamboo is used for ethernet configuration and is accessed +* via the CONFIG2 register in the FPGA. If the ANEG pin is set, +* overwrite the supported features with the settings in SW2. +* +* This is used as a workaround for the improperly biased RJ-45 sockets +* on the Rev. 0 Bamboo. By default only 10baseT is functional. +* Removing inductors L17 and L18 from the board allows 100baseT, but +* disables 10baseT. The Rev. 1 has no such limitations. +*/ + + base_addr = ioremap64(BAMBOO_FPGA_CONFIG2_REG_ADDR, 8); + val = readb(base_addr); + iounmap((void *) base_addr); + if (!BAMBOO_AUTONEGOTIATE(val)) { + unsupported |= SUPPORTED_Autoneg; + if (BAMBOO_FORCE_100Mbps(val)) { + unsupported |= SUPPORTED_10baseT_Full; + unsupported |= SUPPORTED_10baseT_Half; + if (BAMBOO_FULL_DUPLEX_EN(val)) + unsupported |= SUPPORTED_100baseT_Half; + else + unsupported |= SUPPORTED_100baseT_Full; + } else { + unsupported |= SUPPORTED_100baseT_Full; + unsupported |= SUPPORTED_100baseT_Half; + if (BAMBOO_FULL_DUPLEX_EN(val)) + unsupported |= SUPPORTED_10baseT_Half; + else + unsupported |= SUPPORTED_10baseT_Full; + } + } + + /* Set mac_addr, phy mode and unsupported phy features for each EMAC */ def = ocp_get_one_device(OCP_VENDOR_IBM, OCP_FUNC_EMAC, 0); emacdata = def->additions; memcpy(emacdata->mac_addr, __res.bi_enetaddr, 6); emacdata->phy_mode = mode; + emacdata->feat_unsupp = unsupported; def = ocp_get_one_device(OCP_VENDOR_IBM, OCP_FUNC_EMAC, 1); emacdata = def->additions; memcpy(emacdata->mac_addr, __res.bi_enet1addr, 6); emacdata->phy_mode = mode; + emacdata->feat_unsupp = unsupported; } static int --- linux-2.6/include/asm-ppc/ibm_ocp.h 2005-08-03 13:34:08.0 -0700 +++ linux-2.6-dev/include/asm-ppc/ibm_ocp.h 2005-08-02 10:49:42.0 -0700 @@ -67,6 +67,7 @@ struct ocp_func_emac_data { int phy_mode; /* PHY type or configurable mode */ u8 mac_addr[6];/* EMAC mac address */ u32 phy_map;/* EMAC phy map */ + u32 feat_unsupp;/* Unsupported phy features */ }; /* Sysfs support */
Musbhsfc USB gadget appears in latest 440EP/Bamboo patch
On Thu, 2005-07-28 at 13:39, John Otken wrote: > Hi Wade, > > In your most recent patch for the Bamboo board, you added an entry for the > 440EP's "musbhsfc" USB device/gadget. I do not see a driver in the 2.6 tree > for this device. Did I overlook something or perhaps you are working on it? > Thanks in advances for any information. > > John Otken Hi John, I'm currently working on a driver for the on-board USB device. -Wade
[PATCH 3/3] MTD support for the Bamboo board
On Tue, 2005-07-26 at 09:40, Eugene Surovegin wrote: > On Tue, Jul 26, 2005 at 09:06:14AM -0700, Wade Farnsworth wrote: > > This adds MTD support for the Bamboo board. > > > > Signed-off by: Wade Farnsworth > > > diff -uprN linux-2.6.12/drivers/mtd/maps/Kconfig.orig > > linux-2.6.12-440ep/drivers/mtd/maps/Kconfig.orig > > --- linux-2.6.12/drivers/mtd/maps/Kconfig.orig 1969-12-31 > > 17:00:00.0 -0700 > > +++ linux-2.6.12-440ep/drivers/mtd/maps/Kconfig.orig2005-07-25 > > 11:31:51.0 -0700 > > This hunk seems to be bogus. > > > diff -uprN linux-2.6.12/drivers/mtd/maps/Makefile.orig > > linux-2.6.12-440ep/drivers/mtd/maps/Makefile.orig > > --- linux-2.6.12/drivers/mtd/maps/Makefile.orig 1969-12-31 > > 17:00:00.0 -0700 > > +++ linux-2.6.12-440ep/drivers/mtd/maps/Makefile.orig 2005-07-25 > > 11:31:51.0 -0700 > > Ditto. > > > diff -uprN linux-2.6.12/drivers/mtd/nand/Kconfig.orig > > linux-2.6.12-440ep/drivers/mtd/nand/Kconfig.orig > > --- linux-2.6.12/drivers/mtd/nand/Kconfig.orig 1969-12-31 > > 17:00:00.0 -0700 > > +++ linux-2.6.12-440ep/drivers/mtd/nand/Kconfig.orig2005-07-25 > > 11:31:51.0 -0700 > > Ditto Oops. Sorry about that. This patch removes the bogus hunks. Signed-off by: Wade Farnsworth -- next part -- A non-text attachment was scrubbed... Name: 440ep-mtd.patch Type: text/x-patch Size: 21076 bytes Desc: not available Url : http://ozlabs.org/pipermail/linuxppc-embedded/attachments/20050726/8f60f44c/attachment.bin
[PATCH 3/3] MTD support for the Bamboo board
This adds MTD support for the Bamboo board. Signed-off by: Wade Farnsworth -- next part -- A non-text attachment was scrubbed... Name: 440ep-mtd.patch Type: text/x-patch Size: 56380 bytes Desc: not available Url : http://ozlabs.org/pipermail/linuxppc-embedded/attachments/20050726/dab8109c/attachment.bin
[PATCH 2/3] IBM EMAC support for the PPC440EP
This adds support to the IBM EMAC ethernet driver for the 440EP. Signed-off by: Wade Farnsworth -- next part -- A non-text attachment was scrubbed... Name: 440ep-net.patch Type: text/x-patch Size: 2788 bytes Desc: not available Url : http://ozlabs.org/pipermail/linuxppc-embedded/attachments/20050726/ef88c5e6/attachment.bin
[PATCH 1/3] PPC440EP SoC and Bamboo board support
Hello, This adds support for the AMCC PPC440EP SoC and the Bamboo reference board. This patch makes use of fpu.S. Signed-off by: Wade Farnsworth -- next part -- A non-text attachment was scrubbed... Name: 440ep-ppc.patch Type: text/x-patch Size: 58807 bytes Desc: not available Url : http://ozlabs.org/pipermail/linuxppc-embedded/attachments/20050726/e35722dd/attachment.bin
[PATCH 3/3] PPC440EP: MTD support for the Bamboo Board
On Wed, 2005-04-06 at 17:58, Josh Boyer wrote: > On Wed, 2005-04-06 at 10:33 -0700, Wade Farnsworth wrote: > > Cool beans. Can't wait to test this out tomorrow. Just a couple comments. > > > > > +struct ppc440ep_ndfc_regs { > > + uint cmd; > > + uint addr; > > + uint data; > > + uint reserved1; > > + uint ecc0; > > + uint ecc1; > > + uint ecc2; > > + uint ecc3; > > + uint ecc4; > > + uint ecc5; > > + uint ecc6; > > + uint ecc7; > > + uint b0cr; > > + uint b1cr; > > + uint b2cr; > > + uint b3cr; > > + uint cr; > > + uint sr; > > + uint hwctl; > > + uint reserved2; > > + uint revid; > > +}; > > These ecc registers actually have a use... > > > > > + > > + /* Set address of NAND IO lines (Using Linear Data Access Region) */ > > + this->IO_ADDR_R = (void __iomem *) ((ulong) bamboo_ndfc + 0x1000); > > + this->IO_ADDR_W = (void __iomem *) ((ulong) bamboo_ndfc + 0x1000); > > + /* Reference hardware control function */ > > + this->hwcontrol = bamboo_nand0_hwcontrol; > > + /* Set command delay time */ > > + this->chip_delay = 12; > > + this->eccmode= NAND_ECC_SOFT; > > + this->write_byte = bamboo_nand0_write_byte; > > + this->read_byte = bamboo_nand0_read_byte; > > + this->write_buf = bamboo_nand0_write_buf; > > + this->read_buf = bamboo_nand0_read_buf; > > + this->verify_buf = bamboo_nand0_verify_buf; > > + this->dev_ready = bamboo_dev_ready; > > > > > + /* Link the private data with the MTD structure */ > > + bamboo_nand1_mtd->priv = this; > > + > > + /* Set address of NAND IO lines (Using Linear Data Access Region) */ > > + this->IO_ADDR_R = (void __iomem *) ((ulong) bamboo_ndfc + 0x1000); > > + this->IO_ADDR_W = (void __iomem *) ((ulong) bamboo_ndfc + 0x1000); > > + /* Reference hardware control function */ > > + this->hwcontrol = bamboo_nand1_hwcontrol; > > + /* Set command delay time */ > > + this->chip_delay = 25; > > + this->eccmode= NAND_ECC_SOFT; > > + this->write_byte = bamboo_nand1_write_byte; > > + this->read_byte = bamboo_nand1_read_byte; > > + this->write_buf = bamboo_nand1_write_buf; > > + this->read_buf = bamboo_nand1_read_buf; > > + this->verify_buf = bamboo_nand1_verify_buf; > > + this->dev_ready = NULL; > > ... so any reason why NAND_ECC_SOFT is used instead of making use of the > ECC registers that come with the NDFC? Mainly because I haven't looked at what it would take to get HW ECC working yet. I'll look at this when I have time, but until then at least the NAND flashes are functional. > > Overall, I think the patch looks good. Care to send it to the MTD > maintainers so it gets in their CVS tree? Will do. -Wade
[PATCH 1/3] PPC440EP SoC and Bamboo board support
On Wed, 2005-04-06 at 10:37, Eugene Surovegin wrote: > On Wed, Apr 06, 2005 at 10:21:25AM -0700, Wade Farnsworth wrote: > > > > This patch adds support for the IBM/AMCC PPC440EP SoC and the Bamboo > > reference board. > > [snip] > > > + * Bamboo external IRQ triggering/polarity settings > > + */ > > +unsigned char ppc4xx_uic_ext_irq_cfg[] __initdata = { > > + (IRQ_SENSE_LEVEL | IRQ_POLARITY_NEGATIVE), /* IRQ0: Ethernet > > transceiver */ > > + (IRQ_SENSE_LEVEL | IRQ_POLARITY_POSITIVE), /* IRQ1: Expansion connector > > */ > > + (IRQ_SENSE_LEVEL | IRQ_POLARITY_NEGATIVE), /* IRQ2: PCI slot 0 */ > > + (IRQ_SENSE_LEVEL | IRQ_POLARITY_NEGATIVE), /* IRQ3: PCI slot 1 */ > > + (IRQ_SENSE_LEVEL | IRQ_POLARITY_NEGATIVE), /* IRQ4: PCI slot 2 */ > > + (IRQ_SENSE_LEVEL | IRQ_POLARITY_NEGATIVE), /* IRQ5: PCI slot 3 */ > > + (IRQ_SENSE_EDGE | IRQ_POLARITY_NEGATIVE), /* IRQ6: SMI pushbutton */ > > + (IRQ_SENSE_LEVEL | IRQ_POLARITY_NEGATIVE), /* IRQ7: EXT */ > > + (IRQ_SENSE_LEVEL | IRQ_POLARITY_NEGATIVE), /* IRQ8: EXT */ > > + (IRQ_SENSE_LEVEL | IRQ_POLARITY_NEGATIVE), /* IRQ9: EXT */ > > +}; > > You need to define ppc4xx_core_uic_cfg[] in ibm440ep.c for this thing > to work, otherwise it's ignored. Thanks, Eugene. This patch includes that array. -Wade Signed-off by: Wade Farnsworth -- next part -- A non-text attachment was scrubbed... Name: ibm440ep-ppc.patch Type: text/x-patch Size: 61725 bytes Desc: not available Url : http://ozlabs.org/pipermail/linuxppc-embedded/attachments/20050406/410b528a/attachment.bin
[PATCH 2/3] PPC440EP: IBM EMAC support for the Bamboo board
Oops, this should be Patch 2/3. -Wade
[PATCH 3/3] PPC440EP: MTD support for the Bamboo Board
This adds MTD support for the Bamboo board. -Wade Farnsworth -- next part -- A non-text attachment was scrubbed... Name: ibm440ep-mtd.patch Type: text/x-patch Size: 21155 bytes Desc: not available Url : http://ozlabs.org/pipermail/linuxppc-embedded/attachments/20050406/b5dff001/attachment.bin
[PATCH 1/3] PPC440EP: IBM EMAC support for the Bamboo board
This adds support for the Bamboo board in the EMAC driver. Jason McMullan pointed out to me that for the Bamboo Rev. 0 to boot from ethernet, the ANEG pin on SW2 needs to be turned off. If we use this, we can avoid using the PVR to determine which board rev, we're running on. This patch addresses this. Comments would be appreciated. -Wade Farnsworth Signed-off by: Wade Farnsworth -- next part -- A non-text attachment was scrubbed... Name: ibm440ep-ibm_emac.patch Type: text/x-patch Size: 2782 bytes Desc: not available Url : http://ozlabs.org/pipermail/linuxppc-embedded/attachments/20050406/9eee7935/attachment.bin
[PATCH 1/3] PPC440EP SoC and Bamboo board support
Hi all, This patch adds support for the IBM/AMCC PPC440EP SoC and the Bamboo reference board. -Wade Farnsworth Signed-off by: Wade Farnsworth -- next part -- A non-text attachment was scrubbed... Name: ibm440ep-ppc.patch Type: text/x-patch Size: 61322 bytes Desc: not available Url : http://ozlabs.org/pipermail/linuxppc-embedded/attachments/20050406/9ca259fc/attachment.bin
440EP FPU patch
On Fri, 2005-03-18 at 12:30, Tom Rini wrote: > On Fri, Mar 18, 2005 at 01:43:11PM -0500, Jason McMullan wrote: > > On Fri, 2005-03-18 at 10:06 -0600, Kumar Gala wrote: > > > Can you build your patch for the lopec_defconfig and fix the errors > > > associated with enabling altivec. > > > > > > Looks like you need to include asm/offset.h & asm/page.h in vector.S, > > > however there is another build error after that. > > > > Thanks! That also found a linking bug, fixed in this patch.. Please > > double check the call in 'AltiVecUnavalible' in head.S, and the re-load > > of 'ctr' at the end of load_up_altivec, as I do not have an AltiVec > > machine here. > > No dice: > VFS: Mounted root (nfs filesystem) readonly. > Freeing unused kernel memory: 100k init 4k prep > floating point used in kernel (task=c03816b0, pc=c000d664) > Doing some objdump'ing, that's the start of load_up_altivec. Hi Jason and Tom, Has there been any more progress on this patch? Thanks, Wade Farnsworth
[PATCH 3/3] PPC440EP IBM EMAC support
On Tue, 2005-03-15 at 13:37, Matt Porter wrote: > On Tue, Mar 15, 2005 at 11:22:16AM -0800, Eugene Surovegin wrote: > > On Tue, Mar 15, 2005 at 11:58:54AM -0700, Wade Farnsworth wrote: > > > This patch adds support to the IBM EMAC ethernet driver for the 440EP. > > > > > > Regards, > > > Wade Farnsworth > > > > > > Signed-off-by: Wade Farnsworth > > > > > > > > --- linux-2.6.11-bk7/drivers/net/ibm_emac/ibm_emac_phy.c 2005-03-02 > > > 00:38:13.0 -0700 > > > +++ linux-2.6.11-bk7-440ep/drivers/net/ibm_emac/ibm_emac_phy.c > > > 2005-03-11 16:32:01.0 -0700 > > > @@ -27,6 +27,12 @@ > > > > > > #include "ibm_emac_phy.h" > > > > > > +#ifdef CONFIG_BAMBOO > > > +#define BAMBOO_REV0 (mfspr(PVR) == PVR_440EP_RA) > > > +#else > > > +#define BAMBOO_REV0 0 > > > +#endif > > > + > > > > I really don't like it. Chip revision doesn't imply which board > > this code is running on. Please, think of some other way to do this or > > drop this completely. > > Wade and I talked about this one before and there is no direct way > to detect the board revision on this platform. Given that, I > think that if the PVR of the 440EP in a Bamboo board does imply > the board revision, then this is appropriate. I emailed AMCC support about the 440EP eval board revision situation and (finally) got a reply. It seems there are no plans to replace the Rev 0 boards with Rev 1 boards. It is, therefore, conceivable that some users will have Rev 0 boards, and will need the workaround in the patch. Others will have Rev 1 boards, which work fine with the current version of the driver. So it looks like there will have to be some sort of way to determine which board the kernel is running on. According to AMCC, all Rev 0's have the 440EP Rev A processor and all Rev 1's have the 440EP Rev B processor. AMCC also says that the best way for software to determine to determine which board rev it is running on is to either use the PVR or the JTAG ID. I agree this is not an ideal solution, but it seems to be the best one. I am, however, open to suggestions, if anyone knows of a better solution. Thanks, -Wade Farnsworth
[PATCH 1/3] PPC440EP SoC and Bamboo board support
On Wed, 2005-03-16 at 10:26, Jason McMullan wrote: > Do you need a 'special' toolchain to work around Errata 42 (isync before > blrl) for user-space, or are the kernel-land fixes sufficient? Yes, this work around also needs to be in gcc. I know this has been fixed in MontaVista's toolchain, but I don't know if the work around has been pushed up to the main gcc tree. -Wade Farnsworth
[PATCH 1/3] PPC440EP SoC and Bamboo board support
On Tue, 2005-03-15 at 18:43, Josh Boyer wrote: > On Tue, 2005-03-15 at 10:17 -0700, Wade Farnsworth wrote: > > Hello all, > > > > This adds support for the IBM/AMCC PPC440EP SoC and the Bamboo reference > > board. Any comments would be appreciated. > > Isn't the NAND chip on that board a 64MiB chip? If so, the > BAMBOO_NAND_FLASH_SIZE define is wrong. It should be 0x400. > > Also, are there any plans to add MTD support for the NAND controller > found on those boards? > > thx, > josh Yes, you're right. I'll fix that. I'm working on MTD support, including support for the NAND controller. Thanks, Wade Farnsworth
[PATCH 1/3] PPC440EP SoC and Bamboo board support
On Tue, 2005-03-15 at 13:58, Jason McMullan wrote: > I think your setup for BAMBOO_PCIL0_PTM1MS is actually incorrect. > According to the AMCC 440EP docs, BAMBOO_PCIL0_PTM1MS is a mask, > so the correct code should look more like: > > memory_size = 0x - (memory_size - 1); > PCI_WRITEL(memory_size | 1, BAMBOO_PCIL0_PTM1MS); > > (assuming 'memory_size' is a power of 2) Jason, I think you're right. Your way is much more concise too. Thanks, Wade Farnsworth
[PATCH 1/3] PPC440EP SoC and Bamboo board support
On Tue, 2005-03-15 at 11:41, Eugene Surovegin wrote: [snip] > > > diff -uprN linux-2.6.11-bk7/include/asm-ppc/reg.h > > linux-2.6.11-bk7-440ep/include/asm-ppc/reg.h > > --- linux-2.6.11-bk7/include/asm-ppc/reg.h 2005-03-11 16:25:22.0 > > -0700 > > +++ linux-2.6.11-bk7-440ep/include/asm-ppc/reg.h2005-03-14 > > 10:05:47.0 -0700 > > @@ -449,6 +449,8 @@ > > #define PVR_STB03XXX 0x4031 > > #define PVR_NP405H 0x4141 > > #define PVR_NP405L 0x4161 > > +#define PVR_440EP_RA 0x42221850 > > +#define PVR_440EP_RB 0x422218D3 > > > I don't think it's needed. There are plans to get rid of all not-used > PVR defines. The PVR for the Rev A is needed for a workaround in the IBM EMAC code (see patch 3/3). If there is a better way to do this, or if it would be better to put the PVR define somewhere else, please let me know. Thanks for your comments. Regards, Wade Farnsworth
[PATCH 3/3] PPC440EP IBM EMAC support
This patch adds support to the IBM EMAC ethernet driver for the 440EP. Regards, Wade Farnsworth Signed-off-by: Wade Farnsworth -- next part -- An embedded and charset-unspecified text was scrubbed... Name: ibm440ep-ibm_emac.patch Url: http://ozlabs.org/pipermail/linuxppc-embedded/attachments/20050315/6c5cbc97/attachment.txt
[PATCH 2/3] PPC440EP: ibm_emac phy mode bug fix
This patch fixes a bug in drivers/net/ibm_emac/ibm_emac_core.c where if the MDI0 bit is set in the ZMII_FER register, then the phy mode is not detected properly, and SMII is selected by default. This only occurs on platforms where the phy_mode field of struct ocp_func_emac_data is not used. Regards, Wade Farnsworth Signed-off-by: Wade Farnsworth -- next part -- An embedded and charset-unspecified text was scrubbed... Name: ibm440ep-ibm_emac-bugfix.patch Url: http://ozlabs.org/pipermail/linuxppc-embedded/attachments/20050315/6c18a936/attachment.txt
[PATCH 1/3] PPC440EP SoC and Bamboo board support
Hello all, This adds support for the IBM/AMCC PPC440EP SoC and the Bamboo reference board. Any comments would be appreciated. Regards, Wade Farnsworth Signed-off-by: Wade Farnsworth -- next part -- A non-text attachment was scrubbed... Name: ibm440ep-ppc.patch Type: text/x-patch Size: 82336 bytes Desc: not available Url : http://ozlabs.org/pipermail/linuxppc-embedded/attachments/20050315/4a67c59b/attachment.bin