ps3: Update kernel to linux-2.6.30
authorGeoff Levand <geoffrey.levand@am.sony.com>
Wed, 26 Aug 2009 21:57:24 +0000 (21:57 +0000)
committerGeoff Levand <geoffrey.levand@am.sony.com>
Wed, 26 Aug 2009 21:57:24 +0000 (21:57 +0000)
Signed-off-by: Geoff Levand <geoffrey.levand@am.sony.com>
SVN-Revision: 17411

target/linux/ps3/Makefile
target/linux/ps3/config-2.6.30 [new file with mode: 0644]
target/linux/ps3/patches-2.6.30/0016-ps3-gelic-fix-rxdmac.patch [new file with mode: 0644]

index b59e161..6c10bea 100644 (file)
@@ -13,7 +13,7 @@ MAINTAINER:=Geoff Levand <geoffrey.levand@am.sony.com>
 SUBTARGETS=petitboot
 FEATURES+=powerpc64
 
-LINUX_VERSION:=2.6.28.10
+LINUX_VERSION:=2.6.30.5
 
 KERNEL_CC:=
 
diff --git a/target/linux/ps3/config-2.6.30 b/target/linux/ps3/config-2.6.30
new file mode 100644 (file)
index 0000000..12a46c8
--- /dev/null
@@ -0,0 +1,359 @@
+CONFIG_64BIT=y
+CONFIG_ALTIVEC=y
+CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
+CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
+CONFIG_ARCH_HAS_ILOG2_U32=y
+CONFIG_ARCH_HAS_ILOG2_U64=y
+CONFIG_ARCH_HAS_WALK_MEMORY=y
+CONFIG_ARCH_MAY_HAVE_PC_FDC=y
+CONFIG_ARCH_MEMORY_PROBE=y
+CONFIG_ARCH_NO_VIRT_TO_BUS=y
+CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
+CONFIG_ARCH_POPULATES_NODE_MAP=y
+CONFIG_ARCH_SELECT_MEMORY_MODEL=y
+CONFIG_ARCH_SPARSEMEM_DEFAULT=y
+CONFIG_ARCH_SPARSEMEM_ENABLE=y
+CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
+# CONFIG_ARCH_SUPPORTS_MSI is not set
+CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
+# CONFIG_ARPD is not set
+CONFIG_AUDIT_ARCH=y
+CONFIG_BASE_SMALL=0
+# CONFIG_BINARY_PRINTF is not set
+CONFIG_BITREVERSE=y
+CONFIG_BLK_DEV_LOOP=y
+CONFIG_BLK_DEV_RAM=y
+CONFIG_BLK_DEV_RAM_COUNT=16
+CONFIG_BLK_DEV_RAM_SIZE=65535
+CONFIG_BLK_DEV_SD=y
+CONFIG_BLK_DEV_SR=y
+# CONFIG_BLK_DEV_SR_VENDOR is not set
+CONFIG_BLOCK_COMPAT=y
+# CONFIG_BOOTX_TEXT is not set
+CONFIG_BOUNCE=y
+# CONFIG_BRIDGE is not set
+# CONFIG_BSD_PROCESS_ACCT is not set
+# CONFIG_CGROUP_SCHED is not set
+CONFIG_CMDLINE=""
+CONFIG_CMDLINE_BOOL=y
+CONFIG_COMPAT=y
+CONFIG_COMPAT_BINFMT_ELF=y
+CONFIG_COMPAT_BRK=y
+CONFIG_CONSOLE_TRANSLATIONS=y
+# CONFIG_CPU_FREQ is not set
+# CONFIG_CRASH_DUMP is not set
+CONFIG_CRC16=y
+# CONFIG_CRYPTO is not set
+# CONFIG_DEBUG_BUGVERBOSE is not set
+# CONFIG_DEBUG_FS is not set
+# CONFIG_DEFAULT_UIMAGE is not set
+CONFIG_DEVKMEM=y
+CONFIG_DNOTIFY=y
+CONFIG_DTC=y
+CONFIG_DUMMY_CONSOLE=y
+CONFIG_EARLY_PRINTK=y
+# CONFIG_EDAC is not set
+CONFIG_ELF_CORE=y
+# CONFIG_ENABLE_WARN_DEPRECATED is not set
+CONFIG_EXT2_FS=y
+CONFIG_EXT3_FS=y
+# CONFIG_EXT4DEV_COMPAT is not set
+CONFIG_EXT4_FS=y
+# CONFIG_EXT4_FS_XATTR is not set
+CONFIG_FAIR_GROUP_SCHED=y
+CONFIG_FAT_FS=y
+CONFIG_FB=y
+# CONFIG_FB_BACKLIGHT is not set
+# CONFIG_FB_BOOT_VESA_SUPPORT is not set
+# CONFIG_FB_BROADSHEET is not set
+# CONFIG_FB_CFB_COPYAREA is not set
+# CONFIG_FB_CFB_FILLRECT is not set
+# CONFIG_FB_CFB_IMAGEBLIT is not set
+# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
+# CONFIG_FB_DDC is not set
+# CONFIG_FB_FOREIGN_ENDIAN is not set
+# CONFIG_FB_MACMODES is not set
+# CONFIG_FB_MB862XX is not set
+# CONFIG_FB_METRONOME is not set
+# CONFIG_FB_MODE_HELPERS is not set
+# CONFIG_FB_OF is not set
+CONFIG_FB_PS3=y
+CONFIG_FB_PS3_DEFAULT_SIZE_M=9
+# CONFIG_FB_S1D13XXX is not set
+# CONFIG_FB_SVGALIB is not set
+CONFIG_FB_SYS_COPYAREA=y
+CONFIG_FB_SYS_FILLRECT=y
+CONFIG_FB_SYS_FOPS=y
+CONFIG_FB_SYS_IMAGEBLIT=y
+# CONFIG_FB_TILEBLITTING is not set
+# CONFIG_FB_VGA16 is not set
+# CONFIG_FB_VIRTUAL is not set
+# CONFIG_FIRMWARE_EDID is not set
+# CONFIG_FLATMEM_MANUAL is not set
+# CONFIG_FONTS is not set
+CONFIG_FONT_8x16=y
+CONFIG_FONT_8x8=y
+CONFIG_FORCE_MAX_ZONEORDER=13
+CONFIG_FRAMEBUFFER_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
+CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
+CONFIG_FRAME_WARN=2048
+# CONFIG_FSL_ULI1575 is not set
+CONFIG_GELIC_NET=y
+# CONFIG_GELIC_WIRELESS is not set
+CONFIG_GENERIC_BUG=y
+CONFIG_GENERIC_CLOCKEVENTS=y
+CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
+CONFIG_GENERIC_CMOS_UPDATE=y
+CONFIG_GENERIC_FIND_LAST_BIT=y
+CONFIG_GENERIC_FIND_NEXT_BIT=y
+# CONFIG_GENERIC_IOMAP is not set
+CONFIG_GENERIC_ISA_DMA=y
+# CONFIG_GENERIC_TBSYNC is not set
+CONFIG_GENERIC_TIME_VSYSCALL=y
+# CONFIG_GEN_RTC is not set
+CONFIG_GROUP_SCHED=y
+# CONFIG_HAMRADIO is not set
+# CONFIG_HANGCHECK_TIMER is not set
+CONFIG_HAS_DMA=y
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_IOPORT=y
+# CONFIG_HAS_RAPIDIO is not set
+CONFIG_HAVE_ARCH_KGDB=y
+CONFIG_HAVE_ARCH_TRACEHOOK=y
+CONFIG_HAVE_DMA_ATTRS=y
+CONFIG_HAVE_DYNAMIC_FTRACE=y
+CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
+CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
+CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
+CONFIG_HAVE_FUNCTION_TRACER=y
+# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
+CONFIG_HAVE_IDE=y
+CONFIG_HAVE_IOREMAP_PROT=y
+CONFIG_HAVE_KPROBES=y
+CONFIG_HAVE_KRETPROBES=y
+CONFIG_HAVE_LATENCYTOP_SUPPORT=y
+CONFIG_HAVE_LMB=y
+CONFIG_HAVE_MEMORY_PRESENT=y
+CONFIG_HAVE_MLOCK=y
+CONFIG_HAVE_OPROFILE=y
+CONFIG_HAVE_SETUP_PER_CPU_AREA=y
+CONFIG_HAVE_SYSCALL_WRAPPERS=y
+CONFIG_HID=y
+CONFIG_HID_APPLE=y
+CONFIG_HID_BELKIN=y
+CONFIG_HID_CHERRY=y
+CONFIG_HID_EZKEY=y
+CONFIG_HID_LOGITECH=y
+CONFIG_HID_MICROSOFT=y
+CONFIG_HID_SONY=y
+CONFIG_HID_SUNPLUS=y
+CONFIG_HID_SUPPORT=y
+# CONFIG_HIGH_RES_TIMERS is not set
+# CONFIG_HUGETLBFS is not set
+CONFIG_HW_CONSOLE=y
+# CONFIG_HW_RANDOM is not set
+CONFIG_HZ=250
+# CONFIG_HZ_100 is not set
+CONFIG_HZ_250=y
+# CONFIG_I2C is not set
+CONFIG_INITRAMFS_ROOT_GID=500
+CONFIG_INITRAMFS_ROOT_UID=500
+CONFIG_INOTIFY=y
+CONFIG_INOTIFY_USER=y
+CONFIG_INPUT=y
+CONFIG_INPUT_EVDEV=y
+CONFIG_INPUT_JOYSTICK=y
+CONFIG_INPUT_MOUSEDEV=y
+CONFIG_INPUT_MOUSEDEV_PSAUX=y
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
+# CONFIG_INPUT_YEALINK is not set
+CONFIG_IOMMU_HELPER=y
+# CONFIG_IOMMU_VMERGE is not set
+# CONFIG_IPIC is not set
+# CONFIG_IP_ADVANCED_ROUTER is not set
+# CONFIG_IP_MULTICAST is not set
+# CONFIG_IRQSTACKS is not set
+# CONFIG_IRQ_ALL_CPUS is not set
+CONFIG_IRQ_PER_CPU=y
+CONFIG_ISA_DMA_API=y
+# CONFIG_ISDN is not set
+CONFIG_ISO9660_FS=y
+CONFIG_JBD=y
+CONFIG_JBD2=y
+# CONFIG_JOYSTICK_A3D is not set
+# CONFIG_JOYSTICK_ADI is not set
+# CONFIG_JOYSTICK_ANALOG is not set
+# CONFIG_JOYSTICK_COBRA is not set
+# CONFIG_JOYSTICK_GF2K is not set
+# CONFIG_JOYSTICK_GRIP is not set
+# CONFIG_JOYSTICK_GRIP_MP is not set
+# CONFIG_JOYSTICK_GUILLEMOT is not set
+# CONFIG_JOYSTICK_IFORCE is not set
+# CONFIG_JOYSTICK_INTERACT is not set
+# CONFIG_JOYSTICK_JOYDUMP is not set
+# CONFIG_JOYSTICK_MAGELLAN is not set
+# CONFIG_JOYSTICK_SIDEWINDER is not set
+# CONFIG_JOYSTICK_SPACEBALL is not set
+# CONFIG_JOYSTICK_SPACEORB is not set
+# CONFIG_JOYSTICK_STINGER is not set
+# CONFIG_JOYSTICK_TMDC is not set
+# CONFIG_JOYSTICK_TWIDJOY is not set
+# CONFIG_JOYSTICK_WARRIOR is not set
+# CONFIG_JOYSTICK_XPAD is not set
+# CONFIG_JOYSTICK_ZHENHUA is not set
+CONFIG_KERNEL_START=0xc000000000000000
+CONFIG_KEXEC=y
+# CONFIG_LEDS_TRIGGERS is not set
+CONFIG_LOCK_KERNEL=y
+# CONFIG_LOGO is not set
+CONFIG_LOG_BUF_SHIFT=15
+# CONFIG_MACINTOSH_DRIVERS is not set
+CONFIG_MEMORY_HOTPLUG=y
+CONFIG_MEMORY_HOTPLUG_SPARSE=y
+# CONFIG_MEMORY_HOTREMOVE is not set
+CONFIG_MIGRATION=y
+# CONFIG_MINI_FO is not set
+# CONFIG_MISC_DEVICES is not set
+# CONFIG_MMIO_NVRAM is not set
+# CONFIG_MPIC is not set
+# CONFIG_MPIC_WEIRD is not set
+CONFIG_MSDOS_FS=y
+# CONFIG_MTD is not set
+# CONFIG_NETFILTER is not set
+# CONFIG_NETWORK_FILESYSTEMS is not set
+# CONFIG_NET_ETHERNET is not set
+CONFIG_NLS=y
+CONFIG_NLS_CODEPAGE_437=y
+CONFIG_NLS_ISO8859_1=y
+CONFIG_NR_CPUS=2
+# CONFIG_NUMA is not set
+CONFIG_OF=y
+CONFIG_OF_DEVICE=y
+# CONFIG_PACKET_MMAP is not set
+CONFIG_PAGEFLAGS_EXTENDED=y
+CONFIG_PAGE_OFFSET=0xc000000000000000
+# CONFIG_PARTITION_ADVANCED is not set
+# CONFIG_PCI_DOMAINS is not set
+# CONFIG_PCI_SYSCALL is not set
+CONFIG_PHYSICAL_START=0x00000000
+CONFIG_PHYS_ADDR_T_64BIT=y
+CONFIG_POWER3=y
+CONFIG_POWER4=y
+# CONFIG_POWER4_ONLY is not set
+CONFIG_PPC=y
+CONFIG_PPC64=y
+# CONFIG_PPC_970_NAP is not set
+CONFIG_PPC_BOOK3S=y
+CONFIG_PPC_CELL=y
+# CONFIG_PPC_CELLEB is not set
+# CONFIG_PPC_CELL_NATIVE is not set
+# CONFIG_PPC_CELL_QPACE is not set
+# CONFIG_PPC_CLOCK is not set
+# CONFIG_PPC_DCR_MMIO is not set
+# CONFIG_PPC_DCR_NATIVE is not set
+# CONFIG_PPC_EARLY_DEBUG is not set
+CONFIG_PPC_FPU=y
+# CONFIG_PPC_HAS_HASH_64K is not set
+# CONFIG_PPC_I8259 is not set
+# CONFIG_PPC_IBM_CELL_BLADE is not set
+# CONFIG_PPC_INDIRECT_IO is not set
+# CONFIG_PPC_ISERIES is not set
+# CONFIG_PPC_MAPLE is not set
+# CONFIG_PPC_MM_SLICES is not set
+# CONFIG_PPC_MPC106 is not set
+CONFIG_PPC_OF=y
+# CONFIG_PPC_OF_BOOT_TRAMPOLINE is not set
+# CONFIG_PPC_PASEMI is not set
+CONFIG_PPC_PCI_CHOICE=y
+# CONFIG_PPC_PMAC is not set
+CONFIG_PPC_PS3=y
+# CONFIG_PPC_PSERIES is not set
+# CONFIG_PPC_RTAS is not set
+CONFIG_PPC_STD_MMU=y
+CONFIG_PPC_STD_MMU_64=y
+# CONFIG_PPC_UDBG_16550 is not set
+# CONFIG_PQ2ADS is not set
+CONFIG_PRINT_STACK_DEPTH=64
+CONFIG_PROC_DEVICETREE=y
+CONFIG_PROC_PAGE_MONITOR=y
+CONFIG_PS3_ADVANCED=y
+CONFIG_PS3_DISK=y
+# CONFIG_PS3_DYNAMIC_DMA is not set
+CONFIG_PS3_FLASH=y
+CONFIG_PS3_HTAB_SIZE=20
+# CONFIG_PS3_LPM is not set
+CONFIG_PS3_PS3AV=y
+CONFIG_PS3_ROM=y
+CONFIG_PS3_STORAGE=y
+CONFIG_PS3_SYS_MANAGER=y
+# CONFIG_PS3_VRAM is not set
+CONFIG_PS3_VUART=y
+# CONFIG_RD_LZMA is not set
+# CONFIG_RELOCATABLE is not set
+# CONFIG_RT_GROUP_SCHED is not set
+CONFIG_RWSEM_XCHGADD_ALGORITHM=y
+# CONFIG_SCHED_HRTICK is not set
+CONFIG_SCHED_OMIT_FRAME_POINTER=y
+# CONFIG_SCHED_SMT is not set
+CONFIG_SCSI=y
+# CONFIG_SCSI_LOWLEVEL is not set
+# CONFIG_SCSI_PROC_FS is not set
+# CONFIG_SERIAL_8250 is not set
+# CONFIG_SLOW_WORK is not set
+CONFIG_SMP=y
+CONFIG_SPARSEMEM=y
+CONFIG_SPARSEMEM_EXTREME=y
+CONFIG_SPARSEMEM_MANUAL=y
+# CONFIG_SPARSEMEM_VMEMMAP is not set
+CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
+# CONFIG_SPU_BASE is not set
+# CONFIG_SPU_FS is not set
+# CONFIG_SQUASHFS is not set
+CONFIG_STOP_MACHINE=y
+# CONFIG_SWAP is not set
+# CONFIG_SYSCTL_SYSCALL_CHECK is not set
+CONFIG_SYSVIPC_COMPAT=y
+# CONFIG_TEXTSEARCH is not set
+CONFIG_TRACING_SUPPORT=y
+CONFIG_TUNE_CELL=y
+# CONFIG_U3_DART is not set
+CONFIG_USB=y
+# CONFIG_USB_DEVICEFS is not set
+CONFIG_USB_EHCI_BIG_ENDIAN_MMIO=y
+CONFIG_USB_EHCI_HCD=y
+CONFIG_USB_EHCI_HCD_PPC_OF=y
+# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
+CONFIG_USB_HID=y
+# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
+CONFIG_USB_OHCI_BIG_ENDIAN_MMIO=y
+CONFIG_USB_OHCI_HCD=y
+# CONFIG_USB_OHCI_HCD_PPC_OF is not set
+CONFIG_USB_STORAGE=y
+# CONFIG_USB_STORAGE_ALAUDA is not set
+# CONFIG_USB_STORAGE_DATAFAB is not set
+# CONFIG_USB_STORAGE_FREECOM is not set
+# CONFIG_USB_STORAGE_JUMPSHOT is not set
+# CONFIG_USB_STORAGE_KARMA is not set
+# CONFIG_USB_STORAGE_SDDR09 is not set
+# CONFIG_USB_STORAGE_SDDR55 is not set
+# CONFIG_USB_STORAGE_USBAT is not set
+CONFIG_USB_SUPPORT=y
+CONFIG_USER_SCHED=y
+CONFIG_USE_GENERIC_SMP_HELPERS=y
+CONFIG_VFAT_FS=y
+# CONFIG_VGA_CONSOLE is not set
+CONFIG_VIDEO_OUTPUT_CONTROL=y
+CONFIG_VIRT_CPU_ACCOUNTING=y
+# CONFIG_VLAN_8021Q is not set
+CONFIG_VM_EVENT_COUNTERS=y
+# CONFIG_VSX is not set
+CONFIG_VT=y
+CONFIG_VT_CONSOLE=y
+CONFIG_VT_HW_CONSOLE_BINDING=y
+# CONFIG_WATCHDOG is not set
+# CONFIG_WIRELESS is not set
+# CONFIG_WLAN_80211 is not set
+CONFIG_WORD_SIZE=64
+# CONFIG_ZISOFS is not set
diff --git a/target/linux/ps3/patches-2.6.30/0016-ps3-gelic-fix-rxdmac.patch b/target/linux/ps3/patches-2.6.30/0016-ps3-gelic-fix-rxdmac.patch
new file mode 100644 (file)
index 0000000..00204e3
--- /dev/null
@@ -0,0 +1,89 @@
+Subject: net/ps3_gelic: Fix RX DMA restart
+
+Fix the condition where PS3 network RX hangs when no network
+TX is occuring by calling gelic_card_enable_rxdmac() during
+RX_DMA_CHAIN_END event processing.
+
+The gelic hardware automatically clears its RX_DMA_EN flag when
+it detects an RX_DMA_CHAIN_END event.  In its processing of
+RX_DMA_CHAIN_END the gelic driver is required to set RX_DMA_EN
+(with a call to gelic_card_enable_rxdmac()) to restart RX DMA
+transfers.  The existing gelic driver code does not set
+RX_DMA_EN directly in its processing of the RX_DMA_CHAIN_END
+event, but uses a flag variable card->rx_dma_restart_required
+to schedule the setting of RX_DMA_EN until next inside the
+interrupt handler.
+
+It seems this delayed setting of RX_DMA_EN causes the hang since
+the next RX interrupt after the RX_DMA_CHAIN_END event where
+RX_DMA_EN is scheduled to be set will not occur since RX_DMA_EN
+was not set.  In the case were network TX is occuring, RX_DMA_EN
+is set in the next TX interrupt and RX processing continues.
+
+Signed-off-by: Geoff Levand <geoffrey.levand@am.sony.com>
+---
+ drivers/net/ps3_gelic_net.c |   21 ++++++++-------------
+ drivers/net/ps3_gelic_net.h |    1 -
+ 2 files changed, 8 insertions(+), 14 deletions(-)
+
+--- a/drivers/net/ps3_gelic_net.c
++++ b/drivers/net/ps3_gelic_net.c
+@@ -970,10 +970,6 @@ static int gelic_card_decode_one_descr(s
+       int dmac_chain_ended;
+       status = gelic_descr_get_status(descr);
+-      /* is this descriptor terminated with next_descr == NULL? */
+-      dmac_chain_ended =
+-              be32_to_cpu(descr->dmac_cmd_status) &
+-              GELIC_DESCR_RX_DMA_CHAIN_END;
+       if (status == GELIC_DESCR_DMA_CARDOWNED)
+               return 0;
+@@ -1036,6 +1032,11 @@ static int gelic_card_decode_one_descr(s
+       /* ok, we've got a packet in descr */
+       gelic_net_pass_skb_up(descr, card, netdev);
+ refill:
++
++      /* is the current descriptor terminated with next_descr == NULL? */
++      dmac_chain_ended =
++              be32_to_cpu(descr->dmac_cmd_status) &
++              GELIC_DESCR_RX_DMA_CHAIN_END;
+       /*
+        * So that always DMAC can see the end
+        * of the descriptor chain to avoid
+@@ -1064,10 +1065,9 @@ refill:
+        * If dmac chain was met, DMAC stopped.
+        * thus re-enable it
+        */
+-      if (dmac_chain_ended) {
+-              card->rx_dma_restart_required = 1;
+-              dev_dbg(ctodev(card), "reenable rx dma scheduled\n");
+-      }
++
++      if (dmac_chain_ended)
++              gelic_card_enable_rxdmac(card);
+       return 1;
+ }
+@@ -1133,11 +1133,6 @@ static irqreturn_t gelic_card_interrupt(
+       status &= card->irq_mask;
+-      if (card->rx_dma_restart_required) {
+-              card->rx_dma_restart_required = 0;
+-              gelic_card_enable_rxdmac(card);
+-      }
+-
+       if (status & GELIC_CARD_RXINT) {
+               gelic_card_rx_irq_off(card);
+               napi_schedule(&card->napi);
+--- a/drivers/net/ps3_gelic_net.h
++++ b/drivers/net/ps3_gelic_net.h
+@@ -284,7 +284,6 @@ struct gelic_card {
+       struct gelic_descr_chain tx_chain;
+       struct gelic_descr_chain rx_chain;
+-      int rx_dma_restart_required;
+       int rx_csum;
+       /*
+        * tx_lock guards tx descriptor list and