* [PATCH] Remove flush_dcache_all export
From: Matt Porter @ 2006-08-04 16:41 UTC (permalink / raw)
To: linuxppc-dev
Removes the flush_dcache_all export for non coherent platforms.
We removed the last in-kernel user of this years ago in arch/ppc
so it no longer serves a purpose. Plus, it breaks the build
at the moment.
Signed-off-by: Matt Porter <mporter@embeddedalley.com>
diff --git a/arch/powerpc/kernel/ppc_ksyms.c b/arch/powerpc/kernel/ppc_ksyms.c
index 4b052ae..0e18342 100644
--- a/arch/powerpc/kernel/ppc_ksyms.c
+++ b/arch/powerpc/kernel/ppc_ksyms.c
@@ -127,10 +127,6 @@ EXPORT_SYMBOL(pci_bus_mem_base_phys);
EXPORT_SYMBOL(pci_bus_to_hose);
#endif /* CONFIG_PCI */
-#ifdef CONFIG_NOT_COHERENT_CACHE
-EXPORT_SYMBOL(flush_dcache_all);
-#endif
-
EXPORT_SYMBOL(start_thread);
EXPORT_SYMBOL(kernel_thread);
^ permalink raw reply related
* [PATCH] Fix powerpc 44x_mmu build
From: Matt Porter @ 2006-08-04 16:44 UTC (permalink / raw)
To: linuxppc-dev
The PIN_SIZE definition name changed, update 44x_mmu.c accordingly.
Signed-off-by: Matt Porter <mporter@embeddedalley.com>
diff --git a/arch/powerpc/mm/44x_mmu.c b/arch/powerpc/mm/44x_mmu.c
index 3d79ce2..e0152a9 100644
--- a/arch/powerpc/mm/44x_mmu.c
+++ b/arch/powerpc/mm/44x_mmu.c
@@ -104,7 +104,7 @@ unsigned long __init mmu_mapin_ram(void)
/* Determine number of entries necessary to cover lowmem */
pinned_tlbs = (unsigned int)
- (_ALIGN(total_lowmem, PPC44x_PIN_SIZE) >> PPC44x_PIN_SHIFT);
+ (_ALIGN(total_lowmem, PPC_PIN_SIZE) >> PPC44x_PIN_SHIFT);
/* Write upper watermark to save location */
tlb_44x_hwater = PPC44x_LOW_SLOT - pinned_tlbs;
@@ -112,7 +112,7 @@ unsigned long __init mmu_mapin_ram(void)
/* If necessary, set additional pinned TLBs */
if (pinned_tlbs > 1)
for (i = (PPC44x_LOW_SLOT-(pinned_tlbs-1)); i < PPC44x_LOW_SLOT; i++) {
- unsigned int phys_addr = (PPC44x_LOW_SLOT-i) * PPC44x_PIN_SIZE;
+ unsigned int phys_addr = (PPC44x_LOW_SLOT-i) * PPC_PIN_SIZE;
ppc44x_pin_tlb(i, phys_addr+PAGE_OFFSET, phys_addr);
}
^ permalink raw reply related
* Re: MTD Flash Howto ?
From: T Ziomek @ 2006-08-04 16:41 UTC (permalink / raw)
To: linuxppc-embedded, dhlii
In-Reply-To: <44D2C746.70303@dlasys.net>
The documents we've found helpful are
Linux MTD, JFFS HOWTO
<ftp://ftp.uk.linux.org/pub/people/dwmw2/mtd/cvs/mtd/mtd-jffs-HOWTO.txt>
"Embedded Linux - Managing Flash Memory" (a much better MTD FAQ than the
official one)
<http://www.ssiembedded.com/embedded_linux_managing_memory.html>
"Find your Root File System with MTD" (written for uClinux, but generally
not uClinux-specific)
<http://www.ucdot.org/article.pl?sid=03/01/11/1049210>
Tom
--
/"\ ASCII Ribbon Campaign |
\ / | Email to user 'CTZ001'
X Against HTML | at 'email.mot.com'
/ \ in e-mail & news |
^ permalink raw reply
* Re: RFC: Location for Device Tree Sources?
From: Tom Rini @ 2006-08-04 17:54 UTC (permalink / raw)
To: Paul Mackerras; +Cc: linuxppc-dev, g.liakhovetski, Milton Miller
In-Reply-To: <17618.53692.364647.412406@cargo.ozlabs.ibm.com>
On Fri, Aug 04, 2006 at 02:49:00PM +1000, Paul Mackerras wrote:
> Tom Rini writes:
>
> > But "content requirements change" isn't the same as "left things out of
> > their tree". It sounds, and I haven't seen the changes, so I'm not
> > certain that the meaning behind a field changed. Something like that
> > should change the dt version.
>
> I disagree. Strongly. The dt version relates to the representation
> of the tree, not its content.
But doesn't the representation include meaning?
> If we *have* to change the meaning of a property value in a particular
> node in an incompatible way, then we can do something such as adding
> another property to indicate what the interpretation of the first
> property value should be. Usually it's possible to find a way around
> the problem without resorting to that, though.
Agreed. Kicking myself for not being explicit enough :)
> > New fields aren't a problem. Changing
> > existing fields meaning in incompatible ways is a problem.
>
> Only a minor, localized problem. Nothing worth changing the whole dt
> version number for.
I'll rephrase what I said to what I think we all agree. Changing
existing fields meanings in incompatible ways and not somehow allowing
that to still work (like by adding a flag so new trees are interpreted
one way, old trees are fixed-up or whatever) is a problem.
--
Tom Rini
^ permalink raw reply
* [PATCH] update {g5,iseries,pseries}_defconfigs
From: Will Schmidt @ 2006-08-04 19:05 UTC (permalink / raw)
To: linuxppc-dev, paulus
Hi,
This is entirely cosmetic, and makes a number of "Nonexistent Symbol" messages
disappear for G5, iseries and pseries defconfigs.
Signed-off-by: Will Schmidt <will_schmidt@vnet.ibm.com>
diff --git a/arch/powerpc/configs/g5_defconfig b/arch/powerpc/configs/g5_defconfig
index a456275..509017c 100644
--- a/arch/powerpc/configs/g5_defconfig
+++ b/arch/powerpc/configs/g5_defconfig
@@ -1,16 +1,18 @@
#
# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.17-rc1
-# Wed Apr 19 13:24:37 2006
+# Linux kernel version: 2.6.18-rc3
+# Fri Aug 4 13:47:04 2006
#
CONFIG_PPC64=y
CONFIG_64BIT=y
CONFIG_PPC_MERGE=y
CONFIG_MMU=y
CONFIG_GENERIC_HARDIRQS=y
+CONFIG_IRQ_PER_CPU=y
CONFIG_RWSEM_XCHGADD_ALGORITHM=y
CONFIG_GENERIC_HWEIGHT=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_GENERIC_FIND_NEXT_BIT=y
CONFIG_PPC=y
CONFIG_EARLY_PRINTK=y
CONFIG_COMPAT=y
@@ -33,6 +35,7 @@ CONFIG_PPC_STD_MMU=y
CONFIG_VIRT_CPU_ACCOUNTING=y
CONFIG_SMP=y
CONFIG_NR_CPUS=4
+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
#
# Code maturity level options
@@ -50,6 +53,7 @@ CONFIG_SWAP=y
CONFIG_SYSVIPC=y
CONFIG_POSIX_MQUEUE=y
# CONFIG_BSD_PROCESS_ACCT is not set
+# CONFIG_TASKSTATS is not set
CONFIG_SYSCTL=y
# CONFIG_AUDIT is not set
CONFIG_IKCONFIG=y
@@ -67,10 +71,12 @@ CONFIG_PRINTK=y
CONFIG_BUG=y
CONFIG_ELF_CORE=y
CONFIG_BASE_FULL=y
+CONFIG_RT_MUTEXES=y
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_SHMEM=y
CONFIG_SLAB=y
+CONFIG_VM_EVENT_COUNTERS=y
# CONFIG_TINY_SHMEM is not set
CONFIG_BASE_SMALL=0
# CONFIG_SLOB is not set
@@ -116,12 +122,16 @@ CONFIG_PPC_PMAC=y
CONFIG_PPC_PMAC64=y
# CONFIG_PPC_MAPLE is not set
# CONFIG_PPC_CELL is not set
+# CONFIG_PPC_CELL_NATIVE is not set
+# CONFIG_PPC_IBM_CELL_BLADE is not set
+# CONFIG_UDBG_RTAS_CONSOLE is not set
CONFIG_U3_DART=y
CONFIG_MPIC=y
# CONFIG_PPC_RTAS is not set
# CONFIG_MMIO_NVRAM is not set
CONFIG_MPIC_BROKEN_U3=y
# CONFIG_PPC_MPC106 is not set
+CONFIG_PPC_970_NAP=y
CONFIG_CPU_FREQ=y
CONFIG_CPU_FREQ_TABLE=y
# CONFIG_CPU_FREQ_DEBUG is not set
@@ -153,6 +163,7 @@ # CONFIG_BINFMT_MISC is not set
CONFIG_FORCE_MAX_ZONEORDER=13
CONFIG_IOMMU_VMERGE=y
# CONFIG_HOTPLUG_CPU is not set
+CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
CONFIG_KEXEC=y
# CONFIG_CRASH_DUMP is not set
CONFIG_IRQ_ALL_CPUS=y
@@ -168,6 +179,7 @@ CONFIG_FLATMEM=y
CONFIG_FLAT_NODE_MEM_MAP=y
# CONFIG_SPARSEMEM_STATIC is not set
CONFIG_SPLIT_PTLOCK_CPUS=4
+CONFIG_RESOURCES_64BIT=y
# CONFIG_PPC_64K_PAGES is not set
# CONFIG_SCHED_SMT is not set
CONFIG_PROC_DEVICETREE=y
@@ -184,6 +196,7 @@ # CONFIG_PPC_I8259 is not set
# CONFIG_PPC_INDIRECT_PCI is not set
CONFIG_PCI=y
CONFIG_PCI_DOMAINS=y
+# CONFIG_PCIEPORTBUS is not set
# CONFIG_PCI_DEBUG is not set
#
@@ -227,6 +240,8 @@ CONFIG_INET_ESP=m
CONFIG_INET_IPCOMP=m
CONFIG_INET_XFRM_TUNNEL=m
CONFIG_INET_TUNNEL=y
+CONFIG_INET_XFRM_MODE_TRANSPORT=y
+CONFIG_INET_XFRM_MODE_TUNNEL=y
CONFIG_INET_DIAG=y
CONFIG_INET_TCP_DIAG=y
# CONFIG_TCP_CONG_ADVANCED is not set
@@ -239,6 +254,7 @@ # CONFIG_IP_VS is not set
# CONFIG_IPV6 is not set
# CONFIG_INET6_XFRM_TUNNEL is not set
# CONFIG_INET6_TUNNEL is not set
+# CONFIG_NETWORK_SECMARK is not set
CONFIG_NETFILTER=y
# CONFIG_NETFILTER_DEBUG is not set
@@ -263,6 +279,7 @@ CONFIG_IP_NF_TFTP=m
CONFIG_IP_NF_AMANDA=m
# CONFIG_IP_NF_PPTP is not set
# CONFIG_IP_NF_H323 is not set
+# CONFIG_IP_NF_SIP is not set
CONFIG_IP_NF_QUEUE=m
#
@@ -318,6 +335,7 @@ CONFIG_STANDALONE=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
CONFIG_FW_LOADER=y
# CONFIG_DEBUG_DRIVER is not set
+# CONFIG_SYS_HYPERVISOR is not set
#
# Connector - unified userspace <-> kernelspace linker
@@ -355,6 +373,7 @@ # CONFIG_BLK_DEV_UB is not set
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_COUNT=16
CONFIG_BLK_DEV_RAM_SIZE=65536
+CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
CONFIG_BLK_DEV_INITRD=y
CONFIG_CDROM_PKTCDVD=m
CONFIG_CDROM_PKTCDVD_BUFFERS=8
@@ -417,7 +436,6 @@ # CONFIG_BLK_DEV_VIA82CXXX is not set
CONFIG_BLK_DEV_IDE_PMAC=y
CONFIG_BLK_DEV_IDE_PMAC_ATA100FIRST=y
CONFIG_BLK_DEV_IDEDMA_PMAC=y
-# CONFIG_BLK_DEV_IDE_PMAC_BLINK is not set
# CONFIG_IDE_ARM is not set
CONFIG_BLK_DEV_IDEDMA=y
# CONFIG_IDEDMA_IVB is not set
@@ -478,6 +496,7 @@ # CONFIG_SCSI_ATA_PIIX is not set
# CONFIG_SCSI_SATA_MV is not set
# CONFIG_SCSI_SATA_NV is not set
# CONFIG_SCSI_PDC_ADMA is not set
+# CONFIG_SCSI_HPTIOP is not set
# CONFIG_SCSI_SATA_QSTOR is not set
# CONFIG_SCSI_SATA_PROMISE is not set
# CONFIG_SCSI_SATA_SX4 is not set
@@ -497,7 +516,6 @@ # CONFIG_SCSI_INITIO is not set
# CONFIG_SCSI_INIA100 is not set
# CONFIG_SCSI_SYM53C8XX_2 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_QLA_FC is not set
# CONFIG_SCSI_LPFC is not set
@@ -514,9 +532,7 @@ CONFIG_MD_LINEAR=y
CONFIG_MD_RAID0=y
CONFIG_MD_RAID1=y
CONFIG_MD_RAID10=m
-CONFIG_MD_RAID5=y
-# CONFIG_MD_RAID5_RESHAPE is not set
-CONFIG_MD_RAID6=m
+# CONFIG_MD_RAID456 is not set
CONFIG_MD_MULTIPATH=m
CONFIG_MD_FAULTY=m
CONFIG_BLK_DEV_DM=y
@@ -559,7 +575,6 @@ # Protocol Drivers
#
CONFIG_IEEE1394_VIDEO1394=m
CONFIG_IEEE1394_SBP2=m
-# CONFIG_IEEE1394_SBP2_PHYS_DMA is not set
CONFIG_IEEE1394_ETH1394=m
CONFIG_IEEE1394_DV1394=m
CONFIG_IEEE1394_RAWIO=y
@@ -573,6 +588,7 @@ #
# Macintosh device drivers
#
CONFIG_ADB_PMU=y
+# CONFIG_ADB_PMU_LED is not set
CONFIG_PMAC_SMU=y
CONFIG_THERM_PM72=y
CONFIG_WINDFARM=y
@@ -643,6 +659,7 @@ #
# CONFIG_CHELSIO_T1 is not set
# CONFIG_IXGB is not set
# CONFIG_S2IO is not set
+# CONFIG_MYRI10GE is not set
#
# Token Ring devices
@@ -739,6 +756,7 @@ #
CONFIG_VT=y
CONFIG_VT_CONSOLE=y
CONFIG_HW_CONSOLE=y
+# CONFIG_VT_HW_CONSOLE_BINDING is not set
# CONFIG_SERIAL_NONSTANDARD is not set
#
@@ -754,6 +772,7 @@ # CONFIG_SERIAL_JSM is not set
CONFIG_UNIX98_PTYS=y
CONFIG_LEGACY_PTYS=y
CONFIG_LEGACY_PTY_COUNT=256
+# CONFIG_BRIQ_PANEL is not set
#
# IPMI
@@ -764,6 +783,7 @@ #
# Watchdog Cards
#
# CONFIG_WATCHDOG is not set
+CONFIG_HW_RANDOM=y
CONFIG_GEN_RTC=y
# CONFIG_GEN_RTC_X is not set
# CONFIG_DTLK is not set
@@ -774,6 +794,7 @@ #
# Ftape, the floppy tape device driver
#
CONFIG_AGP=m
+# CONFIG_AGP_SIS is not set
# CONFIG_AGP_VIA is not set
CONFIG_AGP_UNINORTH=m
# CONFIG_DRM is not set
@@ -813,6 +834,7 @@ # CONFIG_I2C_I810 is not set
# CONFIG_I2C_PIIX4 is not set
CONFIG_I2C_POWERMAC=y
# CONFIG_I2C_NFORCE2 is not set
+# CONFIG_I2C_OCORES is not set
# CONFIG_I2C_PARPORT_LIGHT is not set
# CONFIG_I2C_PROSAVAGE is not set
# CONFIG_I2C_SAVAGE4 is not set
@@ -849,7 +871,6 @@ # CONFIG_SPI_MASTER is not set
#
# Dallas's 1-wire bus
#
-# CONFIG_W1 is not set
#
# Hardware Monitoring support
@@ -865,6 +886,7 @@ #
# Multimedia devices
#
# CONFIG_VIDEO_DEV is not set
+CONFIG_VIDEO_V4L2=y
#
# Digital Video Broadcasting Devices
@@ -875,22 +897,19 @@ # CONFIG_USB_DABUSB is not set
#
# Graphics support
#
+CONFIG_FIRMWARE_EDID=y
CONFIG_FB=y
CONFIG_FB_CFB_FILLRECT=y
CONFIG_FB_CFB_COPYAREA=y
CONFIG_FB_CFB_IMAGEBLIT=y
CONFIG_FB_MACMODES=y
-CONFIG_FB_FIRMWARE_EDID=y
+# CONFIG_FB_BACKLIGHT is not set
CONFIG_FB_MODE_HELPERS=y
CONFIG_FB_TILEBLITTING=y
# CONFIG_FB_CIRRUS is not set
# CONFIG_FB_PM2 is not set
# CONFIG_FB_CYBER2000 is not set
CONFIG_FB_OF=y
-# CONFIG_FB_CONTROL is not set
-# CONFIG_FB_PLATINUM is not set
-# CONFIG_FB_VALKYRIE is not set
-# CONFIG_FB_CT65550 is not set
# CONFIG_FB_ASILIANT is not set
# CONFIG_FB_IMSTT is not set
# CONFIG_FB_VGA16 is not set
@@ -990,6 +1009,18 @@ # CONFIG_SND_CA0106 is not set
# CONFIG_SND_CMIPCI is not set
# CONFIG_SND_CS4281 is not set
# CONFIG_SND_CS46XX is not set
+# CONFIG_SND_DARLA20 is not set
+# CONFIG_SND_GINA20 is not set
+# CONFIG_SND_LAYLA20 is not set
+# CONFIG_SND_DARLA24 is not set
+# CONFIG_SND_GINA24 is not set
+# CONFIG_SND_LAYLA24 is not set
+# CONFIG_SND_MONA is not set
+# CONFIG_SND_MIA is not set
+# CONFIG_SND_ECHO3G is not set
+# CONFIG_SND_INDIGO is not set
+# CONFIG_SND_INDIGOIO is not set
+# CONFIG_SND_INDIGODJ is not set
# CONFIG_SND_EMU10K1 is not set
# CONFIG_SND_EMU10K1X is not set
# CONFIG_SND_ENS1370 is not set
@@ -1027,6 +1058,12 @@ CONFIG_SND_POWERMAC=m
CONFIG_SND_POWERMAC_AUTO_DRC=y
#
+# Apple Onboard Audio driver
+#
+# CONFIG_SND_AOA is not set
+# CONFIG_SND_AOA_SOUNDBUS is not set
+
+#
# USB devices
#
CONFIG_SND_USB_AUDIO=m
@@ -1060,6 +1097,7 @@ #
CONFIG_USB_EHCI_HCD=y
# CONFIG_USB_EHCI_SPLIT_ISO is not set
# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
+# CONFIG_USB_EHCI_TT_NEWSCHED is not set
# CONFIG_USB_ISP116X_HCD is not set
CONFIG_USB_OHCI_HCD=y
# CONFIG_USB_OHCI_BIG_ENDIAN is not set
@@ -1110,9 +1148,7 @@ # 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_TOUCHSCREEN is not set
# CONFIG_USB_YEALINK is not set
# CONFIG_USB_XPAD is not set
# CONFIG_USB_ATI_REMOTE is not set
@@ -1155,6 +1191,7 @@ CONFIG_USB_SERIAL=m
CONFIG_USB_SERIAL_GENERIC=y
# CONFIG_USB_SERIAL_AIRPRIME is not set
# CONFIG_USB_SERIAL_ANYDATA is not set
+# CONFIG_USB_SERIAL_ARK3116 is not set
CONFIG_USB_SERIAL_BELKIN=m
# CONFIG_USB_SERIAL_WHITEHEAT is not set
CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
@@ -1162,6 +1199,7 @@ # CONFIG_USB_SERIAL_CP2101 is not set
CONFIG_USB_SERIAL_CYPRESS_M8=m
CONFIG_USB_SERIAL_EMPEG=m
CONFIG_USB_SERIAL_FTDI_SIO=m
+# CONFIG_USB_SERIAL_FUNSOFT is not set
CONFIG_USB_SERIAL_VISOR=m
CONFIG_USB_SERIAL_IPAQ=m
CONFIG_USB_SERIAL_IR=m
@@ -1191,9 +1229,11 @@ CONFIG_USB_SERIAL_PL2303=m
# CONFIG_USB_SERIAL_HP4X is not set
CONFIG_USB_SERIAL_SAFE=m
CONFIG_USB_SERIAL_SAFE_PADDED=y
+# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set
CONFIG_USB_SERIAL_TI=m
CONFIG_USB_SERIAL_CYBERJACK=m
CONFIG_USB_SERIAL_XIRCOM=m
+# CONFIG_USB_SERIAL_OPTION is not set
CONFIG_USB_SERIAL_OMNINET=m
CONFIG_USB_EZUSB=y
@@ -1207,10 +1247,12 @@ # 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_CYPRESS_CY7C63 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
+# CONFIG_USB_APPLEDISPLAY is not set
# CONFIG_USB_SISUSBVGA is not set
# CONFIG_USB_LD is not set
# CONFIG_USB_TEST is not set
@@ -1235,6 +1277,14 @@ #
# CONFIG_NEW_LEDS is not set
#
+# LED drivers
+#
+
+#
+# LED Triggers
+#
+
+#
# InfiniBand support
#
# CONFIG_INFINIBAND is not set
@@ -1249,6 +1299,19 @@ #
# CONFIG_RTC_CLASS is not set
#
+# DMA Engine support
+#
+# CONFIG_DMA_ENGINE is not set
+
+#
+# DMA Clients
+#
+
+#
+# DMA Devices
+#
+
+#
# File systems
#
CONFIG_EXT2_FS=y
@@ -1273,7 +1336,6 @@ CONFIG_REISERFS_FS_SECURITY=y
# CONFIG_JFS_FS is not set
CONFIG_FS_POSIX_ACL=y
CONFIG_XFS_FS=m
-CONFIG_XFS_EXPORT=y
# CONFIG_XFS_QUOTA is not set
CONFIG_XFS_SECURITY=y
CONFIG_XFS_POSIX_ACL=y
@@ -1282,6 +1344,7 @@ # CONFIG_OCFS2_FS is not set
# CONFIG_MINIX_FS is not set
# CONFIG_ROMFS_FS is not set
CONFIG_INOTIFY=y
+CONFIG_INOTIFY_USER=y
# CONFIG_QUOTA is not set
CONFIG_DNOTIFY=y
CONFIG_AUTOFS_FS=m
@@ -1363,7 +1426,9 @@ # CONFIG_RPCSEC_GSS_SPKM3 is not set
# CONFIG_SMB_FS is not set
CONFIG_CIFS=m
# CONFIG_CIFS_STATS is not set
+# CONFIG_CIFS_WEAK_PW_HASH is not set
# CONFIG_CIFS_XATTR is not set
+# CONFIG_CIFS_DEBUG2 is not set
# CONFIG_CIFS_EXPERIMENTAL is not set
# CONFIG_NCP_FS is not set
# CONFIG_CODA_FS is not set
@@ -1444,6 +1509,9 @@ CONFIG_CRC32=y
CONFIG_LIBCRC32C=m
CONFIG_ZLIB_INFLATE=y
CONFIG_ZLIB_DEFLATE=m
+CONFIG_TEXTSEARCH=y
+CONFIG_TEXTSEARCH_KMP=m
+CONFIG_PLIST=y
#
# Instrumentation Support
@@ -1457,14 +1525,19 @@ # Kernel hacking
#
# CONFIG_PRINTK_TIME is not set
CONFIG_MAGIC_SYSRQ=y
+# CONFIG_UNUSED_SYMBOLS is not set
CONFIG_DEBUG_KERNEL=y
CONFIG_LOG_BUF_SHIFT=17
CONFIG_DETECT_SOFTLOCKUP=y
# CONFIG_SCHEDSTATS is not set
# CONFIG_DEBUG_SLAB is not set
-CONFIG_DEBUG_MUTEXES=y
+# CONFIG_DEBUG_RT_MUTEXES is not set
+# CONFIG_RT_MUTEX_TESTER is not set
# CONFIG_DEBUG_SPINLOCK is not set
+CONFIG_DEBUG_MUTEXES=y
+# CONFIG_DEBUG_RWSEMS is not set
# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
+# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
# CONFIG_DEBUG_KOBJECT is not set
# CONFIG_DEBUG_INFO is not set
CONFIG_DEBUG_FS=y
@@ -1476,11 +1549,7 @@ # CONFIG_DEBUG_STACK_USAGE is not set
# CONFIG_DEBUGGER is not set
CONFIG_IRQSTACKS=y
CONFIG_BOOTX_TEXT=y
-# CONFIG_PPC_EARLY_DEBUG_LPAR is not set
-# CONFIG_PPC_EARLY_DEBUG_G5 is not set
-# CONFIG_PPC_EARLY_DEBUG_RTAS is not set
-# CONFIG_PPC_EARLY_DEBUG_MAPLE is not set
-# CONFIG_PPC_EARLY_DEBUG_ISERIES is not set
+# CONFIG_PPC_EARLY_DEBUG is not set
#
# Security options
diff --git a/arch/powerpc/configs/iseries_defconfig b/arch/powerpc/configs/iseries_defconfig
index a95e455..2fecfc4 100644
--- a/arch/powerpc/configs/iseries_defconfig
+++ b/arch/powerpc/configs/iseries_defconfig
@@ -1,16 +1,18 @@
#
# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.17-rc1
-# Wed Apr 19 11:46:44 2006
+# Linux kernel version: 2.6.18-rc3
+# Fri Aug 4 13:46:27 2006
#
CONFIG_PPC64=y
CONFIG_64BIT=y
CONFIG_PPC_MERGE=y
CONFIG_MMU=y
CONFIG_GENERIC_HARDIRQS=y
+CONFIG_IRQ_PER_CPU=y
CONFIG_RWSEM_XCHGADD_ALGORITHM=y
CONFIG_GENERIC_HWEIGHT=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_GENERIC_FIND_NEXT_BIT=y
CONFIG_PPC=y
CONFIG_EARLY_PRINTK=y
CONFIG_COMPAT=y
@@ -34,6 +36,7 @@ CONFIG_PPC_STD_MMU=y
CONFIG_VIRT_CPU_ACCOUNTING=y
CONFIG_SMP=y
CONFIG_NR_CPUS=32
+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
#
# Code maturity level options
@@ -51,6 +54,7 @@ CONFIG_SWAP=y
CONFIG_SYSVIPC=y
CONFIG_POSIX_MQUEUE=y
# CONFIG_BSD_PROCESS_ACCT is not set
+# CONFIG_TASKSTATS is not set
CONFIG_SYSCTL=y
CONFIG_AUDIT=y
CONFIG_AUDITSYSCALL=y
@@ -69,10 +73,12 @@ CONFIG_PRINTK=y
CONFIG_BUG=y
CONFIG_ELF_CORE=y
CONFIG_BASE_FULL=y
+CONFIG_RT_MUTEXES=y
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_SHMEM=y
CONFIG_SLAB=y
+CONFIG_VM_EVENT_COUNTERS=y
# CONFIG_TINY_SHMEM is not set
CONFIG_BASE_SMALL=0
# CONFIG_SLOB is not set
@@ -113,10 +119,14 @@ # CONFIG_PPC_MULTIPLATFORM is not set
CONFIG_PPC_ISERIES=y
# CONFIG_EMBEDDED6xx is not set
# CONFIG_APUS is not set
+# CONFIG_PPC_CELL is not set
+# CONFIG_PPC_CELL_NATIVE is not set
+# CONFIG_UDBG_RTAS_CONSOLE is not set
# CONFIG_PPC_RTAS is not set
# CONFIG_MMIO_NVRAM is not set
CONFIG_IBMVIO=y
# CONFIG_PPC_MPC106 is not set
+# CONFIG_PPC_970_NAP is not set
# CONFIG_CPU_FREQ is not set
# CONFIG_WANT_EARLY_SERIAL is not set
@@ -135,6 +145,7 @@ CONFIG_BINFMT_ELF=y
# CONFIG_BINFMT_MISC is not set
CONFIG_FORCE_MAX_ZONEORDER=13
CONFIG_IOMMU_VMERGE=y
+CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
CONFIG_IRQ_ALL_CPUS=y
CONFIG_LPARCFG=y
# CONFIG_NUMA is not set
@@ -149,6 +160,7 @@ CONFIG_FLATMEM=y
CONFIG_FLAT_NODE_MEM_MAP=y
# CONFIG_SPARSEMEM_STATIC is not set
CONFIG_SPLIT_PTLOCK_CPUS=4
+CONFIG_RESOURCES_64BIT=y
# CONFIG_PPC_64K_PAGES is not set
# CONFIG_SCHED_SMT is not set
CONFIG_PROC_DEVICETREE=y
@@ -164,6 +176,7 @@ # CONFIG_PPC_I8259 is not set
# CONFIG_PPC_INDIRECT_PCI is not set
CONFIG_PCI=y
CONFIG_PCI_DOMAINS=y
+# CONFIG_PCIEPORTBUS is not set
# CONFIG_PCI_DEBUG is not set
#
@@ -207,6 +220,8 @@ CONFIG_INET_ESP=m
CONFIG_INET_IPCOMP=m
CONFIG_INET_XFRM_TUNNEL=m
CONFIG_INET_TUNNEL=y
+CONFIG_INET_XFRM_MODE_TRANSPORT=y
+CONFIG_INET_XFRM_MODE_TUNNEL=y
CONFIG_INET_DIAG=y
CONFIG_INET_TCP_DIAG=y
# CONFIG_TCP_CONG_ADVANCED is not set
@@ -219,6 +234,7 @@ # CONFIG_IP_VS is not set
# CONFIG_IPV6 is not set
# CONFIG_INET6_XFRM_TUNNEL is not set
# CONFIG_INET6_TUNNEL is not set
+# CONFIG_NETWORK_SECMARK is not set
CONFIG_NETFILTER=y
# CONFIG_NETFILTER_DEBUG is not set
@@ -246,9 +262,11 @@ CONFIG_NETFILTER_XT_MATCH_MARK=m
# CONFIG_NETFILTER_XT_MATCH_POLICY is not set
# CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set
CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
+# CONFIG_NETFILTER_XT_MATCH_QUOTA is not set
CONFIG_NETFILTER_XT_MATCH_REALM=m
CONFIG_NETFILTER_XT_MATCH_SCTP=m
CONFIG_NETFILTER_XT_MATCH_STATE=m
+# CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set
CONFIG_NETFILTER_XT_MATCH_STRING=m
CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
@@ -267,6 +285,7 @@ CONFIG_IP_NF_TFTP=m
CONFIG_IP_NF_AMANDA=m
# CONFIG_IP_NF_PPTP is not set
# CONFIG_IP_NF_H323 is not set
+# CONFIG_IP_NF_SIP is not set
CONFIG_IP_NF_QUEUE=m
CONFIG_IP_NF_IPTABLES=m
CONFIG_IP_NF_MATCH_IPRANGE=m
@@ -360,6 +379,7 @@ CONFIG_STANDALONE=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
CONFIG_FW_LOADER=m
# CONFIG_DEBUG_DRIVER is not set
+# CONFIG_SYS_HYPERVISOR is not set
#
# Connector - unified userspace <-> kernelspace linker
@@ -396,6 +416,7 @@ # CONFIG_BLK_DEV_SX8 is not set
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_COUNT=16
CONFIG_BLK_DEV_RAM_SIZE=65536
+CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
CONFIG_BLK_DEV_INITRD=y
# CONFIG_CDROM_PKTCDVD is not set
# CONFIG_ATA_OVER_ETH is not set
@@ -453,6 +474,7 @@ # CONFIG_MEGARAID_NEWGEN is not set
# CONFIG_MEGARAID_LEGACY is not set
# CONFIG_MEGARAID_SAS is not set
# CONFIG_SCSI_SATA is not set
+# CONFIG_SCSI_HPTIOP is not set
# CONFIG_SCSI_BUSLOGIC is not set
# CONFIG_SCSI_DMX3191D is not set
# CONFIG_SCSI_EATA is not set
@@ -464,7 +486,6 @@ # CONFIG_SCSI_INITIO is not set
# CONFIG_SCSI_INIA100 is not set
# CONFIG_SCSI_SYM53C8XX_2 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_QLA_FC is not set
# CONFIG_SCSI_LPFC is not set
@@ -481,9 +502,7 @@ CONFIG_MD_LINEAR=y
CONFIG_MD_RAID0=y
CONFIG_MD_RAID1=y
CONFIG_MD_RAID10=m
-CONFIG_MD_RAID5=y
-# CONFIG_MD_RAID5_RESHAPE is not set
-CONFIG_MD_RAID6=m
+# CONFIG_MD_RAID456 is not set
CONFIG_MD_MULTIPATH=m
CONFIG_MD_FAULTY=m
CONFIG_BLK_DEV_DM=y
@@ -596,6 +615,7 @@ #
# CONFIG_CHELSIO_T1 is not set
# CONFIG_IXGB is not set
# CONFIG_S2IO is not set
+# CONFIG_MYRI10GE is not set
#
# Token Ring devices
@@ -696,6 +716,7 @@ # CONFIG_SERIAL_JSM is not set
CONFIG_UNIX98_PTYS=y
CONFIG_LEGACY_PTYS=y
CONFIG_LEGACY_PTY_COUNT=256
+# CONFIG_BRIQ_PANEL is not set
#
# IPMI
@@ -706,6 +727,7 @@ #
# Watchdog Cards
#
# CONFIG_WATCHDOG is not set
+CONFIG_HW_RANDOM=y
CONFIG_GEN_RTC=y
# CONFIG_GEN_RTC_X is not set
# CONFIG_DTLK is not set
@@ -741,7 +763,6 @@ # CONFIG_SPI_MASTER is not set
#
# Dallas's 1-wire bus
#
-# CONFIG_W1 is not set
#
# Hardware Monitoring support
@@ -757,6 +778,7 @@ #
# Multimedia devices
#
# CONFIG_VIDEO_DEV is not set
+CONFIG_VIDEO_V4L2=y
#
# Digital Video Broadcasting Devices
@@ -766,7 +788,9 @@ # CONFIG_DVB is not set
#
# Graphics support
#
+CONFIG_FIRMWARE_EDID=y
# CONFIG_FB is not set
+# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
#
# Sound
@@ -801,6 +825,14 @@ #
# CONFIG_NEW_LEDS is not set
#
+# LED drivers
+#
+
+#
+# LED Triggers
+#
+
+#
# InfiniBand support
#
# CONFIG_INFINIBAND is not set
@@ -815,6 +847,19 @@ #
# CONFIG_RTC_CLASS is not set
#
+# DMA Engine support
+#
+# CONFIG_DMA_ENGINE is not set
+
+#
+# DMA Clients
+#
+
+#
+# DMA Devices
+#
+
+#
# File systems
#
CONFIG_EXT2_FS=y
@@ -843,7 +888,6 @@ # CONFIG_JFS_DEBUG is not set
# CONFIG_JFS_STATISTICS is not set
CONFIG_FS_POSIX_ACL=y
CONFIG_XFS_FS=m
-CONFIG_XFS_EXPORT=y
# CONFIG_XFS_QUOTA is not set
CONFIG_XFS_SECURITY=y
CONFIG_XFS_POSIX_ACL=y
@@ -852,6 +896,7 @@ # CONFIG_OCFS2_FS is not set
# CONFIG_MINIX_FS is not set
# CONFIG_ROMFS_FS is not set
CONFIG_INOTIFY=y
+CONFIG_INOTIFY_USER=y
# CONFIG_QUOTA is not set
CONFIG_DNOTIFY=y
CONFIG_AUTOFS_FS=m
@@ -933,8 +978,10 @@ CONFIG_RPCSEC_GSS_SPKM3=m
# CONFIG_SMB_FS is not set
CONFIG_CIFS=m
# CONFIG_CIFS_STATS is not set
+# CONFIG_CIFS_WEAK_PW_HASH is not set
CONFIG_CIFS_XATTR=y
CONFIG_CIFS_POSIX=y
+# CONFIG_CIFS_DEBUG2 is not set
# CONFIG_CIFS_EXPERIMENTAL is not set
# CONFIG_NCP_FS is not set
# CONFIG_CODA_FS is not set
@@ -1013,10 +1060,12 @@ CONFIG_TEXTSEARCH=y
CONFIG_TEXTSEARCH_KMP=m
CONFIG_TEXTSEARCH_BM=m
CONFIG_TEXTSEARCH_FSM=m
+CONFIG_PLIST=y
#
# Instrumentation Support
#
+# CONFIG_PROFILING is not set
# CONFIG_KPROBES is not set
#
@@ -1024,14 +1073,19 @@ # Kernel hacking
#
# CONFIG_PRINTK_TIME is not set
CONFIG_MAGIC_SYSRQ=y
+# CONFIG_UNUSED_SYMBOLS is not set
CONFIG_DEBUG_KERNEL=y
CONFIG_LOG_BUF_SHIFT=17
CONFIG_DETECT_SOFTLOCKUP=y
# CONFIG_SCHEDSTATS is not set
# CONFIG_DEBUG_SLAB is not set
-# CONFIG_DEBUG_MUTEXES is not set
+# CONFIG_DEBUG_RT_MUTEXES is not set
+# CONFIG_RT_MUTEX_TESTER is not set
# CONFIG_DEBUG_SPINLOCK is not set
+# CONFIG_DEBUG_MUTEXES is not set
+# CONFIG_DEBUG_RWSEMS is not set
# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
+# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
# CONFIG_DEBUG_KOBJECT is not set
# CONFIG_DEBUG_INFO is not set
CONFIG_DEBUG_FS=y
@@ -1042,11 +1096,7 @@ CONFIG_DEBUG_STACKOVERFLOW=y
CONFIG_DEBUG_STACK_USAGE=y
# CONFIG_DEBUGGER is not set
CONFIG_IRQSTACKS=y
-# CONFIG_PPC_EARLY_DEBUG_LPAR is not set
-# CONFIG_PPC_EARLY_DEBUG_G5 is not set
-# CONFIG_PPC_EARLY_DEBUG_RTAS is not set
-# CONFIG_PPC_EARLY_DEBUG_MAPLE is not set
-# CONFIG_PPC_EARLY_DEBUG_ISERIES is not set
+# CONFIG_PPC_EARLY_DEBUG is not set
#
# Security options
diff --git a/arch/powerpc/configs/pseries_defconfig b/arch/powerpc/configs/pseries_defconfig
index 31708ad..45a807c 100644
--- a/arch/powerpc/configs/pseries_defconfig
+++ b/arch/powerpc/configs/pseries_defconfig
@@ -1,13 +1,14 @@
#
# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.17-rc4
-# Sun May 28 07:26:56 2006
+# Linux kernel version: 2.6.18-rc3
+# Fri Aug 4 13:46:09 2006
#
CONFIG_PPC64=y
CONFIG_64BIT=y
CONFIG_PPC_MERGE=y
CONFIG_MMU=y
CONFIG_GENERIC_HARDIRQS=y
+CONFIG_IRQ_PER_CPU=y
CONFIG_RWSEM_XCHGADD_ALGORITHM=y
CONFIG_GENERIC_HWEIGHT=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
@@ -35,6 +36,7 @@ CONFIG_PPC_STD_MMU=y
CONFIG_VIRT_CPU_ACCOUNTING=y
CONFIG_SMP=y
CONFIG_NR_CPUS=128
+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
#
# Code maturity level options
@@ -52,6 +54,7 @@ CONFIG_SWAP=y
CONFIG_SYSVIPC=y
CONFIG_POSIX_MQUEUE=y
# CONFIG_BSD_PROCESS_ACCT is not set
+# CONFIG_TASKSTATS is not set
CONFIG_SYSCTL=y
CONFIG_AUDIT=y
CONFIG_AUDITSYSCALL=y
@@ -70,10 +73,12 @@ CONFIG_PRINTK=y
CONFIG_BUG=y
CONFIG_ELF_CORE=y
CONFIG_BASE_FULL=y
+CONFIG_RT_MUTEXES=y
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_SHMEM=y
CONFIG_SLAB=y
+CONFIG_VM_EVENT_COUNTERS=y
# CONFIG_TINY_SHMEM is not set
CONFIG_BASE_SMALL=0
# CONFIG_SLOB is not set
@@ -118,6 +123,9 @@ CONFIG_PPC_PSERIES=y
# CONFIG_PPC_PMAC is not set
# CONFIG_PPC_MAPLE is not set
# CONFIG_PPC_CELL is not set
+# CONFIG_PPC_CELL_NATIVE is not set
+# CONFIG_PPC_IBM_CELL_BLADE is not set
+# CONFIG_UDBG_RTAS_CONSOLE is not set
CONFIG_XICS=y
# CONFIG_U3_DART is not set
CONFIG_MPIC=y
@@ -149,6 +157,7 @@ CONFIG_BINFMT_MISC=m
CONFIG_FORCE_MAX_ZONEORDER=13
CONFIG_IOMMU_VMERGE=y
CONFIG_HOTPLUG_CPU=y
+CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
CONFIG_KEXEC=y
# CONFIG_CRASH_DUMP is not set
CONFIG_IRQ_ALL_CPUS=y
@@ -173,6 +182,7 @@ CONFIG_SPARSEMEM_EXTREME=y
# CONFIG_MEMORY_HOTPLUG is not set
CONFIG_SPLIT_PTLOCK_CPUS=4
CONFIG_MIGRATION=y
+CONFIG_RESOURCES_64BIT=y
CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID=y
# CONFIG_PPC_64K_PAGES is not set
CONFIG_SCHED_SMT=y
@@ -190,6 +200,7 @@ CONFIG_PPC_I8259=y
# CONFIG_PPC_INDIRECT_PCI is not set
CONFIG_PCI=y
CONFIG_PCI_DOMAINS=y
+# CONFIG_PCIEPORTBUS is not set
# CONFIG_PCI_DEBUG is not set
#
@@ -238,6 +249,8 @@ CONFIG_INET_ESP=m
CONFIG_INET_IPCOMP=m
CONFIG_INET_XFRM_TUNNEL=m
CONFIG_INET_TUNNEL=y
+CONFIG_INET_XFRM_MODE_TRANSPORT=y
+CONFIG_INET_XFRM_MODE_TUNNEL=y
CONFIG_INET_DIAG=y
CONFIG_INET_TCP_DIAG=y
# CONFIG_TCP_CONG_ADVANCED is not set
@@ -250,6 +263,7 @@ # CONFIG_IP_VS is not set
# CONFIG_IPV6 is not set
# CONFIG_INET6_XFRM_TUNNEL is not set
# CONFIG_INET6_TUNNEL is not set
+# CONFIG_NETWORK_SECMARK is not set
CONFIG_NETFILTER=y
# CONFIG_NETFILTER_DEBUG is not set
@@ -277,6 +291,7 @@ CONFIG_IP_NF_TFTP=m
CONFIG_IP_NF_AMANDA=m
# CONFIG_IP_NF_PPTP is not set
# CONFIG_IP_NF_H323 is not set
+# CONFIG_IP_NF_SIP is not set
CONFIG_IP_NF_QUEUE=m
#
@@ -316,6 +331,7 @@ #
# Network testing
#
# CONFIG_NET_PKTGEN is not set
+# CONFIG_NET_TCPPROBE is not set
# CONFIG_HAMRADIO is not set
# CONFIG_IRDA is not set
# CONFIG_BT is not set
@@ -332,6 +348,7 @@ CONFIG_STANDALONE=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
CONFIG_FW_LOADER=y
# CONFIG_DEBUG_DRIVER is not set
+# CONFIG_SYS_HYPERVISOR is not set
#
# Connector - unified userspace <-> kernelspace linker
@@ -352,6 +369,7 @@ # CONFIG_PARPORT_SERIAL is not set
# CONFIG_PARPORT_PC_FIFO is not set
# CONFIG_PARPORT_PC_SUPERIO is not set
# CONFIG_PARPORT_GSC is not set
+# CONFIG_PARPORT_AX88796 is not set
# CONFIG_PARPORT_1284 is not set
#
@@ -376,6 +394,7 @@ # CONFIG_BLK_DEV_UB is not set
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_COUNT=16
CONFIG_BLK_DEV_RAM_SIZE=65536
+CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
CONFIG_BLK_DEV_INITRD=y
# CONFIG_CDROM_PKTCDVD is not set
# CONFIG_ATA_OVER_ETH is not set
@@ -487,6 +506,7 @@ # CONFIG_MEGARAID_NEWGEN is not set
# CONFIG_MEGARAID_LEGACY is not set
# CONFIG_MEGARAID_SAS is not set
# CONFIG_SCSI_SATA is not set
+# CONFIG_SCSI_HPTIOP is not set
# CONFIG_SCSI_BUSLOGIC is not set
# CONFIG_SCSI_DMX3191D is not set
# CONFIG_SCSI_EATA is not set
@@ -508,12 +528,6 @@ CONFIG_SCSI_IPR_TRACE=y
CONFIG_SCSI_IPR_DUMP=y
# CONFIG_SCSI_QLOGIC_1280 is not set
CONFIG_SCSI_QLA_FC=m
-CONFIG_SCSI_QLA2XXX_EMBEDDED_FIRMWARE=y
-CONFIG_SCSI_QLA21XX=m
-CONFIG_SCSI_QLA22XX=m
-CONFIG_SCSI_QLA2300=m
-CONFIG_SCSI_QLA2322=m
-CONFIG_SCSI_QLA24XX=m
CONFIG_SCSI_LPFC=m
# CONFIG_SCSI_DC395x is not set
# CONFIG_SCSI_DC390T is not set
@@ -528,9 +542,7 @@ CONFIG_MD_LINEAR=y
CONFIG_MD_RAID0=y
CONFIG_MD_RAID1=y
CONFIG_MD_RAID10=m
-CONFIG_MD_RAID5=y
-CONFIG_MD_RAID5_RESHAPE=y
-CONFIG_MD_RAID6=m
+# CONFIG_MD_RAID456 is not set
CONFIG_MD_MULTIPATH=m
CONFIG_MD_FAULTY=m
CONFIG_BLK_DEV_DM=y
@@ -651,6 +663,7 @@ CONFIG_IXGB=m
# CONFIG_IXGB_NAPI is not set
CONFIG_S2IO=m
# CONFIG_S2IO_NAPI is not set
+# CONFIG_MYRI10GE is not set
#
# Token Ring devices
@@ -754,6 +767,7 @@ #
CONFIG_VT=y
CONFIG_VT_CONSOLE=y
CONFIG_HW_CONSOLE=y
+# CONFIG_VT_HW_CONSOLE_BINDING is not set
# CONFIG_SERIAL_NONSTANDARD is not set
#
@@ -776,6 +790,7 @@ CONFIG_SERIAL_JSM=m
CONFIG_UNIX98_PTYS=y
CONFIG_LEGACY_PTYS=y
CONFIG_LEGACY_PTY_COUNT=256
+# CONFIG_BRIQ_PANEL is not set
# CONFIG_PRINTER is not set
# CONFIG_PPDEV is not set
# CONFIG_TIPAR is not set
@@ -793,6 +808,7 @@ #
# Watchdog Cards
#
# CONFIG_WATCHDOG is not set
+CONFIG_HW_RANDOM=y
CONFIG_GEN_RTC=y
# CONFIG_GEN_RTC_X is not set
# CONFIG_DTLK is not set
@@ -839,6 +855,7 @@ # CONFIG_I2C_I801 is not set
# CONFIG_I2C_I810 is not set
# CONFIG_I2C_PIIX4 is not set
# CONFIG_I2C_NFORCE2 is not set
+# CONFIG_I2C_OCORES is not set
# CONFIG_I2C_PARPORT is not set
# CONFIG_I2C_PARPORT_LIGHT is not set
# CONFIG_I2C_PROSAVAGE is not set
@@ -876,7 +893,6 @@ # CONFIG_SPI_MASTER is not set
#
# Dallas's 1-wire bus
#
-# CONFIG_W1 is not set
#
# Hardware Monitoring support
@@ -892,6 +908,7 @@ #
# Multimedia devices
#
# CONFIG_VIDEO_DEV is not set
+CONFIG_VIDEO_V4L2=y
#
# Digital Video Broadcasting Devices
@@ -902,19 +919,19 @@ # CONFIG_USB_DABUSB is not set
#
# Graphics support
#
+CONFIG_FIRMWARE_EDID=y
CONFIG_FB=y
CONFIG_FB_CFB_FILLRECT=y
CONFIG_FB_CFB_COPYAREA=y
CONFIG_FB_CFB_IMAGEBLIT=y
CONFIG_FB_MACMODES=y
-CONFIG_FB_FIRMWARE_EDID=y
+# CONFIG_FB_BACKLIGHT is not set
CONFIG_FB_MODE_HELPERS=y
CONFIG_FB_TILEBLITTING=y
# CONFIG_FB_CIRRUS is not set
# CONFIG_FB_PM2 is not set
# CONFIG_FB_CYBER2000 is not set
CONFIG_FB_OF=y
-# CONFIG_FB_CT65550 is not set
# CONFIG_FB_ASILIANT is not set
# CONFIG_FB_IMSTT is not set
# CONFIG_FB_VGA16 is not set
@@ -993,6 +1010,7 @@ #
CONFIG_USB_EHCI_HCD=y
# CONFIG_USB_EHCI_SPLIT_ISO is not set
# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
+# CONFIG_USB_EHCI_TT_NEWSCHED is not set
# CONFIG_USB_ISP116X_HCD is not set
CONFIG_USB_OHCI_HCD=y
# CONFIG_USB_OHCI_BIG_ENDIAN is not set
@@ -1083,10 +1101,12 @@ # 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_CYPRESS_CY7C63 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
+# CONFIG_USB_APPLEDISPLAY is not set
# CONFIG_USB_SISUSBVGA is not set
# CONFIG_USB_LD is not set
# CONFIG_USB_TEST is not set
@@ -1124,12 +1144,14 @@ #
CONFIG_INFINIBAND=m
CONFIG_INFINIBAND_USER_MAD=m
CONFIG_INFINIBAND_USER_ACCESS=m
+CONFIG_INFINIBAND_ADDR_TRANS=y
CONFIG_INFINIBAND_MTHCA=m
CONFIG_INFINIBAND_MTHCA_DEBUG=y
CONFIG_INFINIBAND_IPOIB=m
CONFIG_INFINIBAND_IPOIB_DEBUG=y
# CONFIG_INFINIBAND_IPOIB_DEBUG_DATA is not set
CONFIG_INFINIBAND_SRP=m
+# CONFIG_INFINIBAND_ISER is not set
#
# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
@@ -1141,6 +1163,19 @@ #
# CONFIG_RTC_CLASS is not set
#
+# DMA Engine support
+#
+# CONFIG_DMA_ENGINE is not set
+
+#
+# DMA Clients
+#
+
+#
+# DMA Devices
+#
+
+#
# File systems
#
CONFIG_EXT2_FS=y
@@ -1169,15 +1204,16 @@ # CONFIG_JFS_DEBUG is not set
# CONFIG_JFS_STATISTICS is not set
CONFIG_FS_POSIX_ACL=y
CONFIG_XFS_FS=m
-CONFIG_XFS_EXPORT=y
# CONFIG_XFS_QUOTA is not set
CONFIG_XFS_SECURITY=y
CONFIG_XFS_POSIX_ACL=y
# CONFIG_XFS_RT is not set
CONFIG_OCFS2_FS=m
+CONFIG_OCFS2_DEBUG_MASKLOG=y
# CONFIG_MINIX_FS is not set
# CONFIG_ROMFS_FS is not set
CONFIG_INOTIFY=y
+CONFIG_INOTIFY_USER=y
# CONFIG_QUOTA is not set
CONFIG_DNOTIFY=y
# CONFIG_AUTOFS_FS is not set
@@ -1259,8 +1295,10 @@ CONFIG_RPCSEC_GSS_SPKM3=m
# CONFIG_SMB_FS is not set
CONFIG_CIFS=m
# CONFIG_CIFS_STATS is not set
+# CONFIG_CIFS_WEAK_PW_HASH is not set
CONFIG_CIFS_XATTR=y
CONFIG_CIFS_POSIX=y
+# CONFIG_CIFS_DEBUG2 is not set
# CONFIG_CIFS_EXPERIMENTAL is not set
# CONFIG_NCP_FS is not set
# CONFIG_CODA_FS is not set
@@ -1326,6 +1364,9 @@ CONFIG_CRC32=y
CONFIG_LIBCRC32C=m
CONFIG_ZLIB_INFLATE=y
CONFIG_ZLIB_DEFLATE=m
+CONFIG_TEXTSEARCH=y
+CONFIG_TEXTSEARCH_KMP=m
+CONFIG_PLIST=y
#
# Instrumentation Support
@@ -1339,14 +1380,19 @@ # Kernel hacking
#
# CONFIG_PRINTK_TIME is not set
CONFIG_MAGIC_SYSRQ=y
+# CONFIG_UNUSED_SYMBOLS is not set
CONFIG_DEBUG_KERNEL=y
CONFIG_LOG_BUF_SHIFT=17
CONFIG_DETECT_SOFTLOCKUP=y
# CONFIG_SCHEDSTATS is not set
# CONFIG_DEBUG_SLAB is not set
-# CONFIG_DEBUG_MUTEXES is not set
+# CONFIG_DEBUG_RT_MUTEXES is not set
+# CONFIG_RT_MUTEX_TESTER is not set
# CONFIG_DEBUG_SPINLOCK is not set
+# CONFIG_DEBUG_MUTEXES is not set
+# CONFIG_DEBUG_RWSEMS is not set
# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
+# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
# CONFIG_DEBUG_KOBJECT is not set
# CONFIG_DEBUG_INFO is not set
CONFIG_DEBUG_FS=y
^ permalink raw reply related
* Re: ELDK 3.1.1 support for x86_64 host architecture
From: Wolfgang Denk @ 2006-08-04 20:11 UTC (permalink / raw)
To: Michael Carey; +Cc: linuxppc-embedded
In-Reply-To: <44D22E43020000710000243E@webmail.nearfield.com>
In message <44D22E43020000710000243E@webmail.nearfield.com> you wrote:
> I found the subject "ELDK 3.1.1 support for x86_64 host architecture" in the archives (Apr 15 2005) which describes my problem, however there was never any posting of a resolution.
There was none, as there is no problem. ELDK 3.1.1 (and later
versions) runs fine on x86_64 hosts, assuming you're using any sane
Linux distribution. For example:
-> ppc_8xx-gcc -v
Reading specs from /opt/eldk-3.1.1/usr/bin/../lib/gcc-lib/ppc-linux/3.3.3/specs
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --disable-checking --with-system-zlib --enable-__cxa_atexit --with-newlib --enable-languages=c,c++ --disable-libgcj --host=i386-redhat-linux --target=ppc-linux
Thread model: posix
gcc version 3.3.3 (DENX ELDK 3.1.1 3.3.3-9)
------------------------^^^^^^^^^^
-> uname -a
Linux pollux.denx.de 2.6.10-1.771_FC2smp #1 SMP Mon Mar 28 01:05:47 EST 2005 x86_64 x86_64 x86_64 GNU/Linux
-----------------------------------------------------------------------------^^^^^^
-> cat /etc/issue
Fedora Core release 2 (Tettnang)
...
> package rpm-4.1.1-1.8xa_10 is intended for a i386 architecture
Your Linux distro is kind of broken.
> The details on my system are:
...
> Welcome to SUSE LINUX 10.1 (X86-64) - Kernel \r (\l).
Yes, SuSE has always found interesting ways to break compatibility.
That's why I avoid it. IIRC, SuSE provides a special tool "linux32"
which has to be used to run 32-bit applications on a x86_64 system.
Don't ask me why they need it. Other distros run the 32-bit
applications just fine without such intricacy.
Best regards,
Wolfgang Denk
--
Software Engineering: Embedded and Realtime Systems, Embedded Linux
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd@denx.de
There are very few personal problems that cannot be solved through a
suitable application of high explosives.
^ permalink raw reply
* Re: ELDK 3.1.1 support for x86_64 host architecture
From: Frank @ 2006-08-04 20:43 UTC (permalink / raw)
To: Wolfgang Denk, Michael Carey; +Cc: linuxppc-embedded
In-Reply-To: <20060804201127.00D2D352640@atlas.denx.de>
--- Wolfgang Denk <wd@denx.de> wrote:
> In message <44D22E43020000710000243E@webmail.nearfield.com>
> you wrote:
> > I found the subject "ELDK 3.1.1 support for x86_64 host
> architecture" in the archives (Apr 15 2005) which describes my
> problem, however there was never any posting of a resolution.
>
> There was none, as there is no problem. ELDK 3.1.1 (and
> later
> versions) runs fine on x86_64 hosts, assuming you're using
> any sane
> Linux distribution. For example:
>
> -> ppc_8xx-gcc -v
> Reading specs from
> /opt/eldk-3.1.1/usr/bin/../lib/gcc-lib/ppc-linux/3.3.3/specs
> Configured with: ../configure --prefix=/usr
> --mandir=/usr/share/man --infodir=/usr/share/info
> --enable-shared --enable-threads=posix --disable-checking
> --with-system-zlib --enable-__cxa_atexit --with-newlib
> --enable-languages=c,c++ --disable-libgcj
> --host=i386-redhat-linux --target=ppc-linux
> Thread model: posix
> gcc version 3.3.3 (DENX ELDK 3.1.1 3.3.3-9)
> ------------------------^^^^^^^^^^
There is something wrong with your Suse installation. I have
been using ELDK with Suse(9.2 and 10.1) since 2004 without any problems...
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com
^ permalink raw reply
* Re: ELDK 3.1.1 support for x86_64 host architecture
From: Ben Warren @ 2006-08-04 21:00 UTC (permalink / raw)
To: Wolfgang Denk; +Cc: Michael Carey, linuxppc-embedded
In-Reply-To: <20060804201127.00D2D352640@atlas.denx.de>
On Fri, 2006-08-04 at 22:11 +0200, Wolfgang Denk wrote:
> Yes, SuSE has always found interesting ways to break compatibility.
> That's why I avoid it. IIRC, SuSE provides a special tool "linux32"
> which has to be used to run 32-bit applications on a x86_64 system.
>
> Don't ask me why they need it. Other distros run the 32-bit
> applications just fine without such intricacy.
>
>
I don't know about SUSE, but to get ELDK 4.0 running on my Debian x86_64
server I had to install a package called 'ia32_libs'.
regards,
Ben
^ permalink raw reply
* Re: RFC: Location for Device Tree Sources?
From: Paul Mackerras @ 2006-08-04 23:29 UTC (permalink / raw)
To: Tom Rini; +Cc: linuxppc-dev, g.liakhovetski, Milton Miller
In-Reply-To: <20060804175418.GA28095@smtp.west.cox.net>
Tom Rini writes:
> But doesn't the representation include meaning?
No, in the sense that the device-tree representation doesn't define
what meaning or interpretation is to be given to particular node and
property names or to particular property values.
> I'll rephrase what I said to what I think we all agree. Changing
> existing fields meanings in incompatible ways and not somehow allowing
> that to still work (like by adding a flag so new trees are interpreted
> one way, old trees are fixed-up or whatever) is a problem.
Yes it's a problem. Not one that we want to solve by changing the dt
version number, though.
Paul.
^ permalink raw reply
* Re: [PATCH] Fix powerpc 44x_mmu build
From: Josh Boyer @ 2006-08-05 1:12 UTC (permalink / raw)
To: Matt Porter; +Cc: linuxppc-dev
In-Reply-To: <20060804164401.GB4959@gate.crashing.org>
On Fri, 2006-08-04 at 11:44 -0500, Matt Porter wrote:
> The PIN_SIZE definition name changed, update 44x_mmu.c accordingly.
As far as I know, 4xx still builds as ARCH=ppc... is this patch just
something you noticed, or is it a hint that you're working on moving 4xx
to arch/powerpc?
Just curious, since I've been poking at this a bit and would rather not
duplicate effort.
josh
^ permalink raw reply
* Re: [PATCH] SLB shadow buffer
From: Milton Miller @ 2006-08-05 5:56 UTC (permalink / raw)
To: mikey, paulus, linuxppc-dev; +Cc: sfr
On Fri Aug 4 2006 12:53:19 AM CDT, Michael Neuling wrote:
> This adds a shadow buffer for the SLBs and regsiters it with PHYP.
> Only the bolted SLB entries (first 3) are saved.
>
> Signed-off-by: Michael Neuling <mikey@neuling.org>
>
>
> Index: linux-2.6-ozlabs/arch/powerpc/kernel/entry_64.S
> ===================================================================
> --- linux-2.6-ozlabs.orig/arch/powerpc/kernel/entry_64.S
> +++ linux-2.6-ozlabs/arch/powerpc/kernel/entry_64.S
> @@ -323,6 +323,10 @@ _GLOBAL(ret_from_fork)
> * The code which creates the new task context is in 'copy_thread'
> * in arch/powerpc/kernel/process.c
> */
> +#define SHADOW_SLB_BOLTED_LAST_ESID \
> + (SLBSHADOW_SAVEAREA + 0x10*(SLB_NUM_BOLTED-1))
> +#define SHADOW_SLB_BOLTED_LAST_VSID \
> + (SLBSHADOW_SAVEAREA + 0x10*(SLB_NUM_BOLTED-1) + 8)
It's not because it's the last one but that it's the one with the stack.
> .align 7
> _GLOBAL(_switch)
> mflr r0
> @@ -375,6 +379,14 @@ BEGIN_FTR_SECTION
> ld r7,KSP_VSID(r4) /* Get new stack's VSID */
> oris r0,r6,(SLB_ESID_V)@h
> ori r0,r0,(SLB_NUM_BOLTED-1)@l
> +
> + /* Update the last bolted SLB */
> + ld r9,PACA_SLBSHADOWPTR(r13)
> + li r12,0
> + std r12,SHADOW_SLB_BOLTED_LAST_ESID(r9) /* Clear ESID */
> + std r7,SHADOW_SLB_BOLTED_LAST_VSID(r9) /* Save VSID */
> + std r0,SHADOW_SLB_BOLTED_LAST_ESID(r9) /* Save ESID */
> +
Tabs not spaces please
> slbie r6
> slbie r6 /* Workaround POWER5 < DD2.1 issue */
> slbmte r7,r0
> Index: linux-2.6-ozlabs/arch/powerpc/kernel/paca.c
> ===================================================================
> --- linux-2.6-ozlabs.orig/arch/powerpc/kernel/paca.c
> +++ linux-2.6-ozlabs/arch/powerpc/kernel/paca.c
> @@ -17,6 +17,7 @@
> #include <asm/lppaca.h>
> #include <asm/iseries/it_lp_reg_save.h>
> #include <asm/paca.h>
> +#include <asm/mmu.h>
>
>
> /* This symbol is provided by the linker - let it fill in the paca
> @@ -45,6 +46,17 @@ struct lppaca lppaca[] = {
> },
> };
>
> +/*
> + * 3 persistent SLBs are registered here. The buffer will be zero
> + * initially, hence will all be invaild until we actually write them.
> + */
> +struct slb_shadow_buffer slb_shadow_buffer[] = {
> + [0 ... (NR_CPUS-1)] = {
> + .persistent = SLB_NUM_BOLTED,
> + .buffer_length = sizeof(struct slb_shadow_buffer),
> + },
> +};
How about making this per-cpu and setting the paca pointer at runtime?
It would save NR_CPUS-1 cachelines of data. Otherwise, put in
cacheline_aligned will potentially save some space.
> +
> /* The Paca is an array with one entry per processor. Each contains an
> * lppaca, which contains the information shared between the
> * hypervisor and Linux.
> @@ -59,7 +71,8 @@ struct lppaca lppaca[] = {
> .lock_token = 0x8000, \
> .paca_index = (number), /* Paca Index */ \
> .kernel_toc = (unsigned long)(&__toc_start) + 0x8000UL, \
> - .hw_cpu_id = 0xffff,
> + .hw_cpu_id = 0xffff, \
> + .slb_shadow_buffer_ptr = &slb_shadow_buffer[number]
Trailing , (yeah, still have to add the \ )
>
> #ifdef CONFIG_PPC_ISERIES
> #define PACA_INIT_ISERIES(number) \
> Index: linux-2.6-ozlabs/arch/powerpc/mm/slb.c
> ===================================================================
> --- linux-2.6-ozlabs.orig/arch/powerpc/mm/slb.c
> +++ linux-2.6-ozlabs/arch/powerpc/mm/slb.c
> @@ -22,6 +22,8 @@
> #include <asm/paca.h>
> #include <asm/cputable.h>
> #include <asm/cacheflush.h>
> +#include <asm/smp.h>
> +#include <linux/compiler.h>
>
> #ifdef DEBUG
> #define DBG(fmt...) udbg_printf(fmt)
> @@ -50,9 +52,29 @@ static inline unsigned long mk_vsid_data
> return (get_kernel_vsid(ea) << SLB_VSID_SHIFT) | flags;
> }
>
> +static inline void slb_shadow_update(unsigned long esid, unsigned long vsid,
> + unsigned long entry)
> +{
> + /* Clear the ESID first so the entry is not valid while we are
> + * updating it. Then write the VSID before the real ESID. */
Multi-line comments get the */ on it's own line
> + get_slb_shadow_buffer()->save_area[2*entry] = 0;
> + barrier();
> + get_slb_shadow_buffer()->save_area[2*entry+1] = vsid;
> + barrier();
> + get_slb_shadow_buffer()->save_area[2*entry] = esid;
> +
> +}
This 2* seems magic. How about an array of structs?
> +
> static inline void create_slbe(unsigned long ea, unsigned long flags,
> unsigned long entry)
Should we rename to create_shadowed_slbe?
> {
> + /* Updating the shadow buffer before writing the SLB ensures
> + * we don't get a stale entry here if we get preempted by PHYP
> + * between these two statements. */
own line
> + slb_shadow_update(mk_esid_data(ea, entry),
> + mk_vsid_data(ea, flags),
> + entry);
Do we need the third line?
> +
> asm volatile("slbmte %0,%1" :
> : "r" (mk_vsid_data(ea, flags)),
> "r" (mk_esid_data(ea, entry))
Hopefully the compiler only calculates these once.
> @@ -77,6 +99,11 @@ void slb_flush_and_rebolt(void)
> if ((ksp_esid_data & ESID_MASK) == PAGE_OFFSET)
> ksp_esid_data &= ~SLB_ESID_V;
>
> + /* Only second entry may change here so only resave that */
> + slb_shadow_update(ksp_esid_data,
> + mk_vsid_data(ksp_esid_data, lflags),
> + 2);
> +
1) it's the third entry 2) it's the stack slot
> /* We need to do this all in asm, so we're sure we don't touch
> * the stack between the slbia and rebolting it. */
own line
> asm volatile("isync\n"
> Index: linux-2.6-ozlabs/arch/powerpc/platforms/pseries/lpar.c
> ===================================================================
> --- linux-2.6-ozlabs.orig/arch/powerpc/platforms/pseries/lpar.c
> +++ linux-2.6-ozlabs/arch/powerpc/platforms/pseries/lpar.c
> @@ -254,18 +254,32 @@ out:
> void vpa_init(int cpu)
> {
> int hwcpu = get_hard_smp_processor_id(cpu);
> - unsigned long vpa = __pa(&lppaca[cpu]);
> + unsigned long vpa;
This is used for something other than vpa, rename.
> long ret;
>
> if (cpu_has_feature(CPU_FTR_ALTIVEC))
> lppaca[cpu].vmxregs_in_use = 1;
>
> + vpa = __pa(&lppaca[cpu]);
> ret = register_vpa(hwcpu, vpa);
>
> - if (ret)
> + if (ret) {
> printk(KERN_ERR "WARNING: vpa_init: VPA registration for "
> "cpu %d (hw %d) of area %lx returns %ld\n",
> cpu, hwcpu, vpa, ret);
> + return;
> + }
> + /* PAPR says this feature is SLB-Buffer but firmware never
> + * reports that. All SPLPAR support SLB shadow buffer. */
own line
> + vpa = __pa(&slb_shadow_buffer[cpu]);
> + if (firmware_has_feature(FW_FEATURE_SPLPAR)) {
> + ret = register_slb_shadow(hwcpu, vpa);
> + if (ret)
> + printk(KERN_ERR
> + "WARNING: vpa_init: SLB shadow buffer "
> + "registration for cpu %d (hw %d) of area %lx "
> + "returns %ld\n", cpu, hwcpu, vpa, ret);
> + }
> }
>
> long pSeries_lpar_hpte_insert(unsigned long hpte_group,
...
> Index: linux-2.6-ozlabs/arch/powerpc/platforms/pseries/setup.c
> ===================================================================
> --- linux-2.6-ozlabs.orig/arch/powerpc/platforms/pseries/setup.c
> +++ linux-2.6-ozlabs/arch/powerpc/platforms/pseries/setup.c
> @@ -234,8 +234,16 @@ static void pseries_kexec_cpu_down_xics(
> {
> /* Don't risk a hypervisor call if we're crashing */
> if (firmware_has_feature(FW_FEATURE_SPLPAR) && !crash_shutdown) {
> - unsigned long vpa = __pa(get_lppaca());
> + unsigned long vpa;
Rename.
>
> + vpa = __pa(get_slb_shadow_buffer());
> + if (unregister_slb_shadow(hard_smp_processor_id(), vpa))
> + printk("SLB shadow buffer deregistration of "
> + "cpu %u (hw_cpu_id %d) failed\n",
> + smp_processor_id(),
> + hard_smp_processor_id());
> +
> + vpa = __pa(get_lppaca());
> if (unregister_vpa(hard_smp_processor_id(), vpa)) {
> printk("VPA deregistration of cpu %u (hw_cpu_id %d) "
> "failed\n", smp_processor_id(),
Side comment: this seems like it should be in pseeries/lpar.c, that would
be a seperate cleanup.
> Index: linux-2.6-ozlabs/include/asm-powerpc/lppaca.h
> ===================================================================
> --- linux-2.6-ozlabs.orig/include/asm-powerpc/lppaca.h
> +++ linux-2.6-ozlabs/include/asm-powerpc/lppaca.h
> @@ -28,6 +28,7 @@
> //
> //----------------------------------------------------------------------------
> #include <asm/types.h>
> +#include <asm/mmu.h>
>
> /* The Hypervisor barfs if the lppaca crosses a page boundary. A 1k
> * alignment is sufficient to prevent this */
> @@ -133,5 +134,19 @@ struct lppaca {
>
> extern struct lppaca lppaca[];
>
> +/* SLB shadow buffer structure as defined in the PAPR. The save_area
> + * contains adjacent ESID and VSID pairs for each shadowed SLB. The
> + * ESID is stored in the lower 64bits, then the VSID. NOTE: This
> + * structure is 0x40 bytes long (with 3 bolted SLBs), but PHYP
> + * complaints if we're not 0x80 (cache line?) aligned. */
Own line
Less explaination needed with array of structs.
> +struct slb_shadow_buffer {
> + u32 persistent; // Number of persistent SLBs x00-x03
> + u32 buffer_length; // Total shadow buffer length x04-x07
> + u64 reserved; // Alignment x08-x0f
> + u64 save_area[SLB_NUM_BOLTED * 2]; // x10-x40
> +} __attribute__((__aligned__(0x80)));
> +
> +extern struct slb_shadow_buffer slb_shadow_buffer[];
> +
Remove buffer from these names? They seem quite long for linux.
> #endif /* __KERNEL__ */
> #endif /* _ASM_POWERPC_LPPACA_H */
> Index: linux-2.6-ozlabs/include/asm-powerpc/paca.h
> ===================================================================
> --- linux-2.6-ozlabs.orig/include/asm-powerpc/paca.h
> +++ linux-2.6-ozlabs/include/asm-powerpc/paca.h
> @@ -23,6 +23,7 @@
> register struct paca_struct *local_paca asm("r13");
> #define get_paca() local_paca
> #define get_lppaca() (get_paca()->lppaca_ptr)
> +#define get_slb_shadow_buffer() (get_paca()->slb_shadow_buffer_ptr)
>
> struct task_struct;
>
> @@ -98,6 +99,9 @@ struct paca_struct {
> u64 user_time; /* accumulated usermode TB ticks */
> u64 system_time; /* accumulated system TB ticks */
> u64 startpurr; /* PURR/TB value snapshot */
> +
> + /* Pointer to SLB shadow buffer */
> + struct slb_shadow_buffer *slb_shadow_buffer_ptr;
> };
With the long name the comment doesn't add much.
>
> extern struct paca_struct paca[];
>
^ permalink raw reply
* Re: [PATCH] SLB shadow buffer
From: Christoph Hellwig @ 2006-08-05 12:45 UTC (permalink / raw)
To: Michael Neuling; +Cc: linuxppc-dev, paulus, anton, sfr
In-Reply-To: <20060804055323.1A9BE679FB@ozlabs.org>
On Fri, Aug 04, 2006 at 03:53:19PM +1000, Michael Neuling wrote:
> This adds a shadow buffer for the SLBs and regsiters it with PHYP.
> Only the bolted SLB entries (first 3) are saved.
What is a SLB shadow buffer and why do we need it? (I don't want to
question the patch but rather learn a little more about lowlevel ppc64
mmu details)
^ permalink raw reply
* Re: [Alsa-devel] [PATCH 0/5] powerpc sound, some more patches
From: Johannes Berg @ 2006-08-05 16:09 UTC (permalink / raw)
To: Takashi Iwai; +Cc: linuxppc-dev, alsa-devel, Jaroslav Kysela
In-Reply-To: <s5hirllsoae.wl%tiwai@suse.de>
[-- Attachment #1: Type: text/plain, Size: 300 bytes --]
> Jaroslav, could you update alsa git tree for pushing?
> We have ca. 20 pending fixes including these ppc-patches.
Pretty please? People are hitting these bugs every week and I always get
mail about it (and probably more people hitting the bugs who don't
manage to mail me...).
johannes
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 828 bytes --]
^ permalink raw reply
* Re: [PATCH] Fix powerpc 44x_mmu build
From: Josh Boyer @ 2006-08-05 16:33 UTC (permalink / raw)
To: Matt Porter; +Cc: linuxppc-dev
In-Reply-To: <20060805131157.GA1873@matthew-porters-computer.local>
On Sat, 2006-08-05 at 09:11 -0400, Matt Porter wrote:
> On Fri, Aug 04, 2006 at 08:12:22PM -0500, Josh Boyer wrote:
> > On Fri, 2006-08-04 at 11:44 -0500, Matt Porter wrote:
> > > The PIN_SIZE definition name changed, update 44x_mmu.c accordingly.
> >
> > As far as I know, 4xx still builds as ARCH=ppc... is this patch just
> > something you noticed, or is it a hint that you're working on moving 4xx
> > to arch/powerpc?
>
> Yes, working on moving 4xx to arch/powerpc.
Excellent.
>
> > Just curious, since I've been poking at this a bit and would rather not
> > duplicate effort.
>
> Sounds great. In fact, I talked to BenH and tgall at ols about this
> and they mentioned you were doing some work. These patches are
> just some obvious basic things to get started.
>
> Since there's a lot of work here, what aspect are you working on?
> I haven't seen anything publicly but hear plenty of talk of people
> working on dt soc definitions for 4xx i/o blocks.
At the moment, I'm mostly trying to sit down and figure out the whole
device tree stack. That, and keep up with the irq rework BenH did. I
won't really be digging in for another couple weeks, but then I hope to
start actually doing something.
> I'm currently looking at merging ocotea but am using it to focus
> on a few fundamental things like merging over a version of the
> non-coherent DMA API implementation. The plan here is to get
> a serial-only port merged and then sync with whoever is working
> on the definitions and driver changes for the essential drivers
> (obviously emac first from my POV).
That sounds like a good plan. I know a guy already working on emac, but
it's a bit of a unique setup he's got. I'll try and get some patches
out of him soon.
>From talking with BenH, we'd also need the dt-in-zImage patches that are
floating around. Anybody know what's going on with those?
josh
^ permalink raw reply
* Re: ELDK 3.1.1 support for x86_64 host architecture
From: Wolfgang Denk @ 2006-08-05 19:32 UTC (permalink / raw)
To: Frank; +Cc: Michael Carey, linuxppc-embedded
In-Reply-To: <20060804204327.16319.qmail@web32202.mail.mud.yahoo.com>
In message <20060804204327.16319.qmail@web32202.mail.mud.yahoo.com> you wrote:
>
> There is something wrong with your Suse installation. I have
> been using ELDK with Suse(9.2 and 10.1) since 2004 without any problems...
Good to hear. But I heard similar reports before. Eventually they are
just missing some compatibility packages. I have no idea. I keep my
fingers off SuSE.
Best regards,
Wolfgang Denk
--
Software Engineering: Embedded and Realtime Systems, Embedded Linux
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd@denx.de
Were there fewer fools, knaves would starve. - Anonymous
^ permalink raw reply
* Re: [PATCH] SLB shadow buffer
From: Milton Miller @ 2006-08-05 21:18 UTC (permalink / raw)
To: hch, mikey; +Cc: linuxppc-dev, paulus, anton, sfr
On Sat Aug 5 2006 07:45:44 AM CDT, Christoph Hellwig wrote:
> On Fri, Aug 04, 2006 at 03:53:19PM +1000, Michael Neuling wrote:
> > This adds a shadow buffer for the SLBs and regsiters it with PHYP.
> > Only the bolted SLB entries (first 3) are saved.
>
> What is a SLB shadow buffer and why do we need it? (I don't want to
> question the patch but rather learn a little more about lowlevel ppc64
> mmu details)
The SLB is the segment lookaside buffer and holds mappings from the
effective address space (the address you get adding the register and
offset) to the virtual address space. Each entry covers 256MB (2^28)
and includes an access lookup switch for both problem states (a single
bit for each user and kernel mode), allowing the same or different
access permissions. The virtual address space, 80 bits shared by all
processes in the system (partition in lpar), is translated to a real address
and page permissions via the hash table, which is cached in the TLB.
The original 64 bit archiecture filled the SLB from a segment table
buffer (STAB), but this was changed to expicit software management in
version 2, used by POWER4 and later processors. The 32 bit
architecture uses 16 fixed segment registers to perfom this mapping to
a 52 bit virtual space.
The SLB shadow buffer is a pure software construct recording the required
segment translations. Registering a the shadow buffer informs the
hypervisor which entries are required when switching partitions, and may
allow it to recover the partition from a hardware error.
milton
^ permalink raw reply
* Re: [PATCH] SLB shadow buffer
From: Michael Neuling @ 2006-08-06 1:27 UTC (permalink / raw)
To: Milton Miller; +Cc: linuxppc-dev, sfr, paulus, anton
In-Reply-To: <1115481268674b0dc511.424238335.miltonm@bga.com>
> The SLB shadow buffer is a pure software construct recording the required
> segment translations. Registering a the shadow buffer informs the
> hypervisor which entries are required when switching partitions, and may
> allow it to recover the partition from a hardware error.
What Milton said. It's a high availability feature.
We can register volatile and persistent SLBs with PHYP. PHYP will
invalidate volatile entries and replace persistent entries if it sees a
problem with them.
Here I've only registered the 3 persistent (bolted) SLBs, as the
volatile SLBs can be handled with SLB faults in the kernel.
Mikey
^ permalink raw reply
* [PATCH] cputable: Correct IBM/750CXe rev3.x setup
From: Nicolas DET @ 2006-08-06 8:42 UTC (permalink / raw)
To: linuxppc-dev; +Cc: akpm
[-- Attachment #1: Type: text/plain, Size: 163 bytes --]
This patch simply add an entry in the cputable to recognize correctly the IBM750CXe rev3.1. Only rev 2.x was correctly detected before.
Your sincerly
Nicolas DET
[-- Attachment #2: powerpc_750cxe_rev3.patch --]
[-- Type: application/octet-stream, Size: 684 bytes --]
--- linux-2.6.17.7.orig/arch/powerpc/kernel/cputable.c 2006-07-25 05:36:01.000000000 +0200
+++ linux-2.6.17.7_nico/arch/powerpc/kernel/cputable.c 2006-08-06 07:50:29.000000000 +0200
@@ -447,6 +447,18 @@
.cpu_setup = __setup_cpu_750cx,
.platform = "ppc750",
},
+ { /* 750CXe rev 3.1 (0008x311) */
+ .pvr_mask = 0xffff0fff,
+ .pvr_value = 0x00080311,
+ .cpu_name = "750CXe",
+ .cpu_features = CPU_FTRS_750,
+ .cpu_user_features = COMMON_USER,
+ .icache_bsize = 32,
+ .dcache_bsize = 32,
+ .num_pmcs = 4,
+ .cpu_setup = __setup_cpu_750cx,
+ .platform = "ppc750",
+ },
{ /* 750CXe "Gekko" (83214) */
.pvr_mask = 0xffffffff,
.pvr_value = 0x00083214,
^ permalink raw reply
* [PATCH] powerpc: fix udbg warning
From: Geoff Levand @ 2006-08-06 20:49 UTC (permalink / raw)
To: Paul Mackerras; +Cc: linuxppc-dev
Fix an implicit declaration warning in hash_utils_64.c
when udbg is enabled.
hash_utils_64.c: In function =91htab_bolt_mapping=92:
hash_utils_64.c:169: warning: implicit declaration of function =91udbg_pr=
intf=92
Signed-off-by: Geoff Levand <geoffrey.levand@am.sony.com>
---
Index: a/arch/powerpc/mm/hash_utils_64.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- a.orig/arch/powerpc/mm/hash_utils_64.c
+++ a/arch/powerpc/mm/hash_utils_64.c
@@ -51,6 +51,7 @@
#include <asm/cputable.h>
#include <asm/abs_addr.h>
#include <asm/sections.h>
+#include <asm/udbg.h>
#ifdef DEBUG
#define DBG(fmt...) udbg_printf(fmt)
^ permalink raw reply
* Re: [PATCH] pSeries hvsi char driver null pointer deref
From: Hollis Blanchard @ 2006-08-06 23:49 UTC (permalink / raw)
To: Linas Vepstas; +Cc: akpm, linuxppc-dev, linux-kernel
In-Reply-To: <20060803201300.GB10638@austin.ibm.com>
On Thu, 2006-08-03 at 15:13 -0500, Linas Vepstas wrote:
> Andrew,
> Please apply.
>
> Under certain rare circumstances, it appears that there can be
> be a NULL-pointer deref when a user fiddles with terminal
> emeulation programs while outpu is being sent to the console.
> This patch checks for and avoids a NULL-pointer deref.
>
> Signed-off-by: Hollis Blanchard <hollisbl@austin.ibm.com>
> Signed-off-by: Linas Vepstas <linas@austin.ibm.com>
That email address is incorrect.
Signed-off-by: Hollis Blanchard <hollisb@us.ibm.com>
> ----
> drivers/char/hvsi.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> Index: linux-2.6.18-rc3-git1/drivers/char/hvsi.c
> ===================================================================
> --- linux-2.6.18-rc3-git1.orig/drivers/char/hvsi.c 2006-08-03 14:50:00.000000000 -0500
> +++ linux-2.6.18-rc3-git1/drivers/char/hvsi.c 2006-08-03 14:51:46.000000000 -0500
> @@ -311,7 +311,8 @@ static void hvsi_recv_control(struct hvs
> /* CD went away; no more connection */
> pr_debug("hvsi%i: CD dropped\n", hp->index);
> hp->mctrl &= TIOCM_CD;
> - if (!(hp->tty->flags & CLOCAL))
> + /* If userland hasn't done an open(2) yet, hp->tty is NULL. */
> + if (hp->tty && !(hp->tty->flags & CLOCAL))
> *to_hangup = hp->tty;
> }
> break;
> _______________________________________________
> Linuxppc-dev mailing list
> Linuxppc-dev@ozlabs.org
> https://ozlabs.org/mailman/listinfo/linuxppc-dev
^ permalink raw reply
* Re: [PATCH 1/6] bootwrapper: arch/powerpc/boot code reorg
From: Hollis Blanchard @ 2006-08-07 0:21 UTC (permalink / raw)
To: Mark A. Greer; +Cc: linuxppc-dev, xen-ppc-devel@lists.xensource.com
In-Reply-To: <20060719230014.GB3887@mag.az.mvista.com>
On Wed, 2006-07-19 at 16:00 -0700, an unknown sender wrote:
> diff --git a/arch/powerpc/boot/types.h b/arch/powerpc/boot/types.h
> new file mode 100644
> index 0000000..2a2fa2b
> --- /dev/null
> +++ b/arch/powerpc/boot/types.h
> @@ -0,0 +1,29 @@
> +#ifndef _TYPES_H_
> +#define _TYPES_H_
> +
> +#define COMMAND_LINE_SIZE 512
> +#define MAX_PATH_LEN 256
> +#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
> +
> +typedef unsigned char u8;
> +typedef unsigned short u16;
> +typedef unsigned int u32;
> +#ifdef __powerpc64__
> +typedef unsigned long u64;
> +#else
> +typedef unsigned long long u64;
> +#endif
As long as we're adding new typedefs, could we please use the stdint.h
ones (e.g. uint32_t)? For Xen, I need to do flat tree munging in
userspace, so using real types would help with code reuse.
--
Hollis Blanchard
IBM Linux Technology Center
^ permalink raw reply
* Re: [PATCH 3/6] bootwrapper: Add device tree ops for flattened device tree
From: Hollis Blanchard @ 2006-08-07 0:38 UTC (permalink / raw)
To: Mark A. Greer; +Cc: linuxppc-dev, xen-ppc-devel@lists.xensource.com
In-Reply-To: <20060719230544.GD3887@mag.az.mvista.com>
On Wed, 2006-07-19 at 16:05 -0700, an unknown sender wrote:
> --- /dev/null
> +++ b/arch/powerpc/boot/fdt.c
> @@ -0,0 +1,525 @@
> +/*
> + * Simple dtb (binary flattened device tree) search/manipulation routines.
> + *
> + * Author: Mark A. Greer <mgreer at mvista.com>
> + * - The code for strrchr() was copied from lib/string.c and is
> + * copyrighted by Linus Torvalds.
> + * - The smarts for fdt_finddevice() were copied with the author's
> + * permission from u-boot:common/ft_build.c which was written by
> + * Pantelis Antoniou <pantelis at embeddedalley.com>.
Hmm, so we'll have at least three copies of this code: uboot, kernel,
and Xen. Would it make sense to put this stuff into a libdt.a?
Technically, dtc has a "libdt" already, but it's absurdly incomplete (I
don't even know why it's there), so we could just replace it.
Xen needs all the finddevice and setprop functionality here, which looks
like it's about 2/3rds of this code.
> +static void *dtb_start;
> +static void *dtb_end;
I'd like to avoid the use of globals here. I know it's fine when you're
running in early boot, but as I mentioned I'd like to copy this code
elsewhere. Could these be moved into a structure that's passed as a
function parameter?
> +static void
> +fdt_modify_prop(u32 *dp, char *datap, u32 *old_prop_sizep, char *buf,
> + int buflen)
> +{
> + u32 old_prop_data_len, new_prop_data_len;
> +
> + old_prop_data_len = _ALIGN_UP(*old_prop_sizep, 4);
> + new_prop_data_len = _ALIGN_UP(buflen, 4);
> +
> + /* Check if new prop data fits in old prop data area */
> + if (new_prop_data_len == old_prop_data_len) {
> + memcpy(datap, buf, buflen);
> + *old_prop_sizep = buflen;
> + }
> + else { /* Need to alloc new area to put larger or smaller fdt */
> + struct boot_param_header *old_bph, *new_bph;
> + u32 *old_tailp, *new_tailp, *new_datap;
> + u32 old_total_size, new_total_size, head_len, tail_len, diff;
> + void *new_dtb_start, *new_dtb_end;
> +
> + old_bph = fdt_get_bph(dtb_start),
> + old_total_size = old_bph->totalsize;
> + head_len = (u32)datap - (u32)dtb_start;
> + tail_len = old_total_size - (head_len + old_prop_data_len);
> + old_tailp = (u32 *)((u32)dtb_end - tail_len);
> + new_total_size = head_len + new_prop_data_len + tail_len;
> +
> + if (!(new_dtb_start = malloc(new_total_size))) {
> + printf("Can't alloc space for new fdt\n\r");
> + exit();
> + }
> +
> + new_dtb_end = (void *)((u32)new_dtb_start + new_total_size);
> + new_datap = (u32 *)((u32)new_dtb_start + head_len);
> + new_tailp = (u32 *)((u32)new_dtb_end - tail_len);
> +
> + memcpy(new_dtb_start, dtb_start, head_len);
> + memcpy(new_datap, buf, buflen);
> + memcpy(new_tailp, old_tailp, tail_len);
> + *(new_datap - 2) = buflen;
> +
> + new_bph = fdt_get_bph(new_dtb_start),
> + new_bph->totalsize = new_total_size;
> +
> + diff = new_prop_data_len - old_prop_data_len;
> +
> + /* Adjust offsets of other sections, if necessary */
> + if (new_bph->off_dt_strings > new_bph->off_dt_struct)
> + new_bph->off_dt_strings += diff;
> +
> + if (new_bph->off_mem_rsvmap > new_bph->off_dt_struct)
> + new_bph->off_mem_rsvmap += diff;
> +
> + free(dtb_start, old_total_size);
> +
> + dtb_start = new_dtb_start;
> + dtb_end = new_dtb_end;
> + }
> +}
I didn't realize the boot wrapper had a full malloc() to work with. I
was actually planning to only allow overwriting properties with values
of the same size, since for the most part I just need to modify some
small fixed-size data. Do you need more? I guess if the code already
works...
--
Hollis Blanchard
IBM Linux Technology Center
^ permalink raw reply
* Re: [PATCH] powerpc: fix udbg warning
From: Geoff Levand @ 2006-08-07 0:51 UTC (permalink / raw)
To: Paul Mackerras; +Cc: linuxppc-dev
In-Reply-To: <44D655BF.3080803@am.sony.com>
Here's an updated version that fixes a few more warnings.
-Geoff
Fix an implicit declaration warning in hash_utils_64.c
when udbg is enabled.
hash_utils_64.c: In function =E2=80=98htab_bolt_mapping=E2=80=99:
hash_utils_64.c:169: warning: implicit declaration of function =E2=80=98u=
dbg_printf=E2=80=99
hash_utils_64.c:251: warning: format =E2=80=98%04x=E2=80=99 expects type =
=E2=80=98unsigned int=E2=80=99
Signed-off-by: Geoff Levand <geoffrey.levand@am.sony.com>
---
Index: cell--common--4/arch/powerpc/mm/hash_utils_64.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- cell--common--4.orig/arch/powerpc/mm/hash_utils_64.c
+++ cell--common--4/arch/powerpc/mm/hash_utils_64.c
@@ -51,6 +51,7 @@
#include <asm/cputable.h>
#include <asm/abs_addr.h>
#include <asm/sections.h>
+#include <asm/udbg.h>
#ifdef DEBUG
#define DBG(fmt...) udbg_printf(fmt)
@@ -247,7 +248,7 @@ static int __init htab_dt_scan_page_size
else
def->tlbiel =3D 0;
- DBG(" %d: shift=3D%02x, sllp=3D%04x, avpnm=3D%08x, "
+ DBG(" %d: shift=3D%02x, sllp=3D%04lx, avpnm=3D%08lx, "
"tlbiel=3D%d, penc=3D%d\n",
idx, shift, def->sllp, def->avpnm, def->tlbiel,
def->penc);
@@ -773,7 +774,7 @@ void flush_hash_page(unsigned long va, r
{
unsigned long hash, index, shift, hidx, slot;
- DBG_LOW("flush_hash_page(va=3D%016x)\n", va);
+ DBG_LOW("flush_hash_page(va=3D%016lx)\n", va);
pte_iterate_hashed_subpages(pte, psize, va, index, shift) {
hash =3D hpt_hash(va, shift);
hidx =3D __rpte_to_hidx(pte, index);
@@ -781,7 +782,7 @@ void flush_hash_page(unsigned long va, r
hash =3D ~hash;
slot =3D (hash & htab_hash_mask) * HPTES_PER_GROUP;
slot +=3D hidx & _PTEIDX_GROUP_IX;
- DBG_LOW(" sub %d: hash=3D%x, hidx=3D%x\n", index, slot, hidx);
+ DBG_LOW(" sub %ld: hash=3D%lx, hidx=3D%lx\n", index, slot, hidx);
ppc_md.hpte_invalidate(slot, va, psize, local);
} pte_iterate_hashed_end();
}
^ permalink raw reply
* [PATCH] fix for firewire patch added in 2.6.17.2 that breaks things on ppc
From: danny @ 2006-08-07 4:38 UTC (permalink / raw)
To: linuxppc-dev
In-Reply-To: <20060805151050.B24484@luna.ellen.dexterslabs.com>
[-- Attachment #1: Type: text/plain, Size: 614 bytes --]
Hello,
I sent this to Ben earlier but forgot to cc this list:
>
> Sleep broke on my ibook G3 with 2.6.17. After some tests it seemed it only broke when I had used my
> iSight. Plugging it after a sleep/resume cycle would sometimes instantly hang the machine.
>
> The problem appeared to result from a patch added in 2.6.17.2, where a
> pci_save_state(pdev);
> is called after
> pmac_call_feature(PMAC_FTR_1394_ENABLE, of_node, 0, 0);
>
> resuming shows that the corresponding pci_restore_state is writing all ffffffff to the config space.
> Which is probably not a good idea.
>
Patch is attached
Danny
[-- Attachment #2: ohci1394_save_state.patch --]
[-- Type: text/plain, Size: 987 bytes --]
2.6.17.2 contained a patch for preliminary suspend/resume
handling on !PPC_PMAC. However, this broke suspend and firewire
on powerpc because it saves the state after the device has already
been disabled.
Firewire works perfectly through suspend on my ibook, so save/restore
state is not needed there.
Signed-off-by: Danny Tholen <obiwan@mailmij.org>
--- linux-2.6.17.7/drivers/ieee1394/ohci1394.c~ 2006-08-03 10:00:01.875855084 -0400
+++ linux-2.6.17.7/drivers/ieee1394/ohci1394.c 2006-08-03 10:08:24.274059577 -0400
@@ -3537,9 +3537,9 @@
if (of_node)
pmac_call_feature (PMAC_FTR_1394_ENABLE, of_node, 0, 1);
}
-#endif /* CONFIG_PPC_PMAC */
-
+#else
pci_restore_state(pdev);
+#endif /* CONFIG_PPC_PMAC */
pci_enable_device(pdev);
return 0;
@@ -3557,10 +3557,9 @@
if (of_node)
pmac_call_feature(PMAC_FTR_1394_ENABLE, of_node, 0, 0);
}
-#endif
-
+#else
pci_save_state(pdev);
-
+#endif /* CONFIG_PPC_PMAC */
return 0;
}
^ permalink raw reply
* Re: [PATCH] SLB shadow buffer
From: Michael Neuling @ 2006-08-07 5:55 UTC (permalink / raw)
To: Milton Miller; +Cc: linuxppc-dev, paulus
In-Reply-To: <111547573996b8b45671.846930886.miltonm@bga.com>
> > +#define SHADOW_SLB_BOLTED_LAST_ESID \
> > + (SLBSHADOW_SAVEAREA + 0x10*(SLB_NUM_BOLTED-1))
> > +#define SHADOW_SLB_BOLTED_LAST_VSID \
> > + (SLBSHADOW_SAVEAREA + 0x10*(SLB_NUM_BOLTED-1) + 8)
>
> It's not because it's the last one but that it's the one with the stack.
Yep changed to SHADOW_SLB_BOLTED_STACK_<blah>
> > + std r12,SHADOW_SLB_BOLTED_LAST_ESID(r9) /* Clear ESID */
> > + std r7,SHADOW_SLB_BOLTED_LAST_VSID(r9) /* Save VSID */
> > + std r0,SHADOW_SLB_BOLTED_LAST_ESID(r9) /* Save ESID */
> > +
>
> Tabs not spaces please
Oops.. done
> > +/*
> > + * 3 persistent SLBs are registered here. The buffer will be zero
> > + * initially, hence will all be invaild until we actually write them.
> > + */
> > +struct slb_shadow_buffer slb_shadow_buffer[] = {
> > + [0 ... (NR_CPUS-1)] = {
> > + .persistent = SLB_NUM_BOLTED,
> > + .buffer_length = sizeof(struct slb_shadow_buffer),
> > + },
> > +};
>
> How about making this per-cpu and setting the paca pointer at runtime?
> It would save NR_CPUS-1 cachelines of data. Otherwise, put in
> cacheline_aligned will potentially save some space.
The PAPR requirement is that it's cache aligned so I've added the
necessary __cacheline_aligned foo.
I did some experiments and without the alignment. Alignment costs
around 8KB when NR_CPUS=128 so there is some space to be saved if we
play around.
I also tried putting the structure directly in the PACA but I couldn't
get any savings. I tired in a few different locations in the paca
struct, but it didn't make any difference. I may have been doing
something stupid though :-)
>
> > +
> > /* The Paca is an array with one entry per processor. Each contains an
> > * lppaca, which contains the information shared between the
> > * hypervisor and Linux.
> > @@ -59,7 +71,8 @@ struct lppaca lppaca[] = {
> > .lock_token = 0x8000, \
> > .paca_index = (number), /* Paca Index */ \
> > .kernel_toc = (unsigned long)(&__toc_start) + 0x8000UL, \
> > - .hw_cpu_id = 0xffff,
> > + .hw_cpu_id = 0xffff, \
> > + .slb_shadow_buffer_ptr = &slb_shadow_buffer[number]
>
> Trailing , (yeah, still have to add the \ )
Oops.. done
>
> >
> > #ifdef CONFIG_PPC_ISERIES
> > #define PACA_INIT_ISERIES(number) \
> > Index: linux-2.6-ozlabs/arch/powerpc/mm/slb.c
> > ===================================================================
> > --- linux-2.6-ozlabs.orig/arch/powerpc/mm/slb.c
> > +++ linux-2.6-ozlabs/arch/powerpc/mm/slb.c
> > @@ -22,6 +22,8 @@
> > #include <asm/paca.h>
> > #include <asm/cputable.h>
> > #include <asm/cacheflush.h>
> > +#include <asm/smp.h>
> > +#include <linux/compiler.h>
> >
> > #ifdef DEBUG
> > #define DBG(fmt...) udbg_printf(fmt)
> > @@ -50,9 +52,29 @@ static inline unsigned long mk_vsid_data
> > return (get_kernel_vsid(ea) << SLB_VSID_SHIFT) | flags;
> > }
> >
> > +static inline void slb_shadow_update(unsigned long esid, unsigned long vsi
d,
> > + unsigned long entry)
> > +{
> > + /* Clear the ESID first so the entry is not valid while we are
> > + * updating it. Then write the VSID before the real ESID. */
>
> Multi-line comments get the */ on it's own line
Ok... (most comments in that file are like this though)
> > + get_slb_shadow_buffer()->save_area[2*entry] = 0;
> > + barrier();
> > + get_slb_shadow_buffer()->save_area[2*entry+1] = vsid;
> > + barrier();
> > + get_slb_shadow_buffer()->save_area[2*entry] = esid;
> > +
> > +}
>
> This 2* seems magic. How about an array of structs?
OK, that's two people I've confused. Changed.
>
> > +
> > static inline void create_slbe(unsigned long ea, unsigned long flags,
> > unsigned long entry)
>
> Should we rename to create_shadowed_slbe?
Good point. Changed
> > + slb_shadow_update(mk_esid_data(ea, entry),
> > + mk_vsid_data(ea, flags),
> > + entry);
>
> Do we need the third line?
Nope.
>
> > +
> > asm volatile("slbmte %0,%1" :
> > : "r" (mk_vsid_data(ea, flags)),
> > "r" (mk_esid_data(ea, entry))
>
> Hopefully the compiler only calculates these once.
I've been keeping all my fingers and toes crossed...
> > @@ -77,6 +99,11 @@ void slb_flush_and_rebolt(void)
> > if ((ksp_esid_data & ESID_MASK) == PAGE_OFFSET)
> > ksp_esid_data &= ~SLB_ESID_V;
> >
> > + /* Only second entry may change here so only resave that */
> > + slb_shadow_update(ksp_esid_data,
> > + mk_vsid_data(ksp_esid_data, lflags),
> > + 2);
> > +
>
> 1) it's the third entry 2) it's the stack slot
Yep. Updated comment.
>
> > asm volatile("isync\n"
> > Index: linux-2.6-ozlabs/arch/powerpc/platforms/pseries/lpar.c
> > ===================================================================
> > --- linux-2.6-ozlabs.orig/arch/powerpc/platforms/pseries/lpar.c
> > +++ linux-2.6-ozlabs/arch/powerpc/platforms/pseries/lpar.c
> > @@ -254,18 +254,32 @@ out:
> > void vpa_init(int cpu)
> > {
> > int hwcpu = get_hard_smp_processor_id(cpu);
> > - unsigned long vpa = __pa(&lppaca[cpu]);
> > + unsigned long vpa;
>
> This is used for something other than vpa, rename.
Another complaint about this, I'll changed.
BTW It's called vpa in the PAPR for both calls.
> > +/* SLB shadow buffer structure as defined in the PAPR. The save_area
> > + * contains adjacent ESID and VSID pairs for each shadowed SLB. The
> > + * ESID is stored in the lower 64bits, then the VSID. NOTE: This
> > + * structure is 0x40 bytes long (with 3 bolted SLBs), but PHYP
> > + * complaints if we're not 0x80 (cache line?) aligned. */
>
> Own line
>
> Less explaination needed with array of structs.
Yep and yep.
>
> > +struct slb_shadow_buffer {
> > + u32 persistent; // Number of persistent SLBs x00-x03
> > + u32 buffer_length; // Total shadow buffer length x04-x07
> > + u64 reserved; // Alignment x08-x0f
> > + u64 save_area[SLB_NUM_BOLTED * 2]; // x10-x40
> > +} __attribute__((__aligned__(0x80)));
> > +
> > +extern struct slb_shadow_buffer slb_shadow_buffer[];
> > +
>
> Remove buffer from these names? They seem quite long for linux.
Ok. Changed.
> > u64 user_time; /* accumulated usermode TB ticks */
> > u64 system_time; /* accumulated system TB ticks */
> > u64 startpurr; /* PURR/TB value snapshot */
> > +
> > + /* Pointer to SLB shadow buffer */
> > + struct slb_shadow_buffer *slb_shadow_buffer_ptr;
> > };
>
> With the long name the comment doesn't add much.
True. The comment was only there since most other items in that struct
were documented.
Thanks for the review. I'll repost the updated patch.
Mikey
^ permalink raw reply
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox