* Re: Adding MTD concat support to FSL ELBC NAND driver
From: Scott Wood @ 2009-08-13 17:37 UTC (permalink / raw)
To: Felix Radensky; +Cc: linuxppc-dev@ozlabs.org list
In-Reply-To: <4A841933.8090808@embedded-sol.com>
Felix Radensky wrote:
> Currently concatenation support is implemented in physmap_of driver.
> The syntax used to define a concatenation device involves multiple
> reg tuples, as described in
> Documentation/powerpc/dts-bindings/mtd-physmap.txt. Will same syntax
> be acceptable for NAND chips ?
I'm not too fond of that -- it would require support in each controller
driver, and would preclude providing other device-specific information
in the node (e.g. what if each NAND chip has to sit under a different
parent node to describe its connection to the system?). What if a NAND
controller has multiple reg resources for each chip? It's not
memory-like the way NOR flash is.
If we're going to put it in the device tree at all (I suppose for the
same reason we put partitioning there), it should probably be some
external construct that glues together flash nodes.
-Scott
^ permalink raw reply
* Re: [PATCH 1/1 v1] powerpc44x: Add Eiger AMCC (AppliedMicro) PPC460SX evaluation board support.
From: Feng Kan @ 2009-08-13 17:34 UTC (permalink / raw)
To: Felix Radensky; +Cc: linuxppc-dev, Tai Tri Nguyen
In-Reply-To: <4A83AF5A.1040202@embedded-sol.com>
Hi Felix:
Sorry the documentation seems a little miss leading. There is no harm
with the bit
turned off to zero. Once the nand boot is over, we change the EBC to use
the ready
signal, this bit does not affect performance anymore.
Thanks
Feng Kan
On 08/12/2009 11:14 PM, Felix Radensky wrote:
> Hi,
>
> Feng Kan wrote:
>> This patch adds support for the AMCC (AppliedMicro) PPC460SX Eiger
>> evaluation board.
>>
>> Signed-off-by: Tai Tri Nguyen <ttnguyen@amcc.com>
>> Acked-by: Feng Kan <fkan@amcc.com>
>> Acked-by: Tirumala Marri <tmarri@amcc.com>
>> ---
>> arch/powerpc/boot/dts/eiger.dts | 421 ++++++++++
>> arch/powerpc/configs/44x/eiger_defconfig | 1200
>> ++++++++++++++++++++++++++++
>> arch/powerpc/platforms/44x/Kconfig | 12 +
>> arch/powerpc/platforms/44x/ppc44x_simple.c | 1 +
>> 4 files changed, 1634 insertions(+), 0 deletions(-)
>> create mode 100644 arch/powerpc/boot/dts/eiger.dts
>> create mode 100644 arch/powerpc/configs/44x/eiger_defconfig
>>
>> diff --git a/arch/powerpc/boot/dts/eiger.dts
>> b/arch/powerpc/boot/dts/eiger.dts
>> new file mode 100644
>> index 0000000..c4a934f
>> --- /dev/null
>> +++ b/arch/powerpc/boot/dts/eiger.dts
>> @@ -0,0 +1,421 @@
>> +/*
>> + * Device Tree Source for AMCC (AppliedMicro) Eiger(460SX)
>> + *
>> + * Copyright 2009 AMCC (AppliedMicro) <ttnguyen@amcc.com>
>> + *
>> + * This file is licensed under the terms of the GNU General Public
>> + * License version 2. This program is licensed "as is" without
>> + * any warranty of any kind, whether express or implied.
>> + */
>> +
>> +/dts-v1/;
>> +
>> +/ {
>> + #address-cells = <2>;
>> + #size-cells = <1>;
>> + model = "amcc,eiger";
>> + compatible = "amcc,eiger";
>> + dcr-parent = <&{/cpus/cpu@0}>;
>> +
>> + aliases {
>> + ethernet0 = &EMAC0;
>> + ethernet1 = &EMAC1;
>> + ethernet2 = &EMAC2;
>> + ethernet3 = &EMAC3;
>> + serial0 = &UART0;
>> + serial1 = &UART1;
>> + };
>> +
>> + cpus {
>> + #address-cells = <1>;
>> + #size-cells = <0>;
>> +
>> + cpu@0 {
>> + device_type = "cpu";
>> + model = "PowerPC,460SX";
>> + reg = <0x00000000>;
>> + clock-frequency = <0>; /* Filled in by U-Boot */
>> + timebase-frequency = <0>; /* Filled in by U-Boot */
>> + i-cache-line-size = <32>;
>> + d-cache-line-size = <32>;
>> + i-cache-size = <32768>;
>> + d-cache-size = <32768>;
>> + dcr-controller;
>> + dcr-access-method = "native";
>> + };
>> + };
>> +
>> + memory {
>> + device_type = "memory";
>> + reg = <0x00000000 0x00000000 0x00000000>; /* Filled in by
>> U-Boot */
>> + };
>> +
>> + UIC0: interrupt-controller0 {
>> + compatible = "ibm,uic-460sx","ibm,uic";
>> + interrupt-controller;
>> + cell-index = <0>;
>> + dcr-reg = <0x0c0 0x009>;
>> + #address-cells = <0>;
>> + #size-cells = <0>;
>> + #interrupt-cells = <2>;
>> + };
>> +
>> + UIC1: interrupt-controller1 {
>> + compatible = "ibm,uic-460sx","ibm,uic";
>> + interrupt-controller;
>> + cell-index = <1>;
>> + dcr-reg = <0x0d0 0x009>;
>> + #address-cells = <0>;
>> + #size-cells = <0>;
>> + #interrupt-cells = <2>;
>> + interrupts = <0x1e 0x4 0x1f 0x4>; /* cascade */
>> + interrupt-parent = <&UIC0>;
>> + };
>> +
>> + UIC2: interrupt-controller2 {
>> + compatible = "ibm,uic-460sx","ibm,uic";
>> + interrupt-controller;
>> + cell-index = <2>;
>> + dcr-reg = <0x0e0 0x009>;
>> + #address-cells = <0>;
>> + #size-cells = <0>;
>> + #interrupt-cells = <2>;
>> + interrupts = <0xa 0x4 0xb 0x4>; /* cascade */
>> + interrupt-parent = <&UIC0>;
>> + };
>> +
>> + UIC3: interrupt-controller3 {
>> + compatible = "ibm,uic-460sx","ibm,uic";
>> + interrupt-controller;
>> + cell-index = <3>;
>> + dcr-reg = <0x0f0 0x009>;
>> + #address-cells = <0>;
>> + #size-cells = <0>;
>> + #interrupt-cells = <2>;
>> + interrupts = <0x10 0x4 0x11 0x4>; /* cascade */
>> + interrupt-parent = <&UIC0>;
>> + };
>> +
>> + SDR0: sdr {
>> + compatible = "ibm,sdr-460sx";
>> + dcr-reg = <0x00e 0x002>;
>> + };
>> +
>> + CPR0: cpr {
>> + compatible = "ibm,cpr-460sx";
>> + dcr-reg = <0x00c 0x002>;
>> + };
>> +
>> + plb {
>> + compatible = "ibm,plb-460sx", "ibm,plb4";
>> + #address-cells = <2>;
>> + #size-cells = <1>;
>> + ranges;
>> + clock-frequency = <0>; /* Filled in by U-Boot */
>> +
>> + SDRAM0: sdram {
>> + compatible = "ibm,sdram-460sx", "ibm,sdram-405gp";
>> + dcr-reg = <0x010 0x002>;
>> + };
>> +
>> + MAL0: mcmal {
>> + compatible = "ibm,mcmal-460sx", "ibm,mcmal2";
>> + dcr-reg = <0x180 0x62>;
>> + num-tx-chans = <4>;
>> + num-rx-chans = <32>;
>> + #address-cells = <1>;
>> + #size-cells = <1>;
>> + interrupt-parent = <&UIC1>;
>> + interrupts = < /*TXEOB*/ 0x6 0x4
>> + /*RXEOB*/ 0x7 0x4
>> + /*SERR*/ 0x1 0x4
>> + /*TXDE*/ 0x2 0x4
>> + /*RXDE*/ 0x3 0x4
>> + /*COAL TX0*/ 0x18 0x2
>> + /*COAL TX1*/ 0x19 0x2
>> + /*COAL TX2*/ 0x1a 0x2
>> + /*COAL TX3*/ 0x1b 0x2
>> + /*COAL RX0*/ 0x1c 0x2
>> + /*COAL RX1*/ 0x1d 0x2
>> + /*COAL RX2*/ 0x1e 0x2
>> + /*COAL RX3*/ 0x1f 0x2>;
>> + };
>> +
>> + POB0: opb {
>> + compatible = "ibm,opb-460sx", "ibm,opb";
>> + #address-cells = <1>;
>> + #size-cells = <1>;
>> + ranges = <0xb0000000 0x00000004 0xb0000000 0x50000000>;
>> + clock-frequency = <0>; /* Filled in by U-Boot */
>> +
>> + EBC0: ebc {
>> + compatible = "ibm,ebc-460sx", "ibm,ebc";
>> + dcr-reg = <0x012 0x002>;
>> + #address-cells = <2>;
>> + #size-cells = <1>;
>> + clock-frequency = <0>; /* Filled in by U-Boot */
>> + /* ranges property is supplied by U-Boot */
>> + interrupts = <0x6 0x4>;
>> + interrupt-parent = <&UIC1>;
>> +
>> + nor_flash@0,0 {
>> + compatible = "amd,s29gl512n", "cfi-flash";
>> + bank-width = <2>;
>> + /* reg property is supplied in by U-Boot */
>> + #address-cells = <1>;
>> + #size-cells = <1>;
>> + partition@0 {
>> + label = "kernel";
>> + reg = <0x00000000 0x001e0000>;
>> + };
>> + partition@1e0000 {
>> + label = "dtb";
>> + reg = <0x001e0000 0x00020000>;
>> + };
>> + partition@200000 {
>> + label = "ramdisk";
>> + reg = <0x00200000 0x01400000>;
>> + };
>> + partition@1600000 {
>> + label = "jffs2";
>> + reg = <0x01600000 0x00400000>;
>> + };
>> + partition@1a00000 {
>> + label = "user";
>> + reg = <0x01a00000 0x02560000>;
>> + };
>> + partition@3f60000 {
>> + label = "env";
>> + reg = <0x03f60000 0x00040000>;
>> + };
>> + partition@3fa0000 {
>> + label = "u-boot";
>> + reg = <0x03fa0000 0x00060000>;
>> + };
>> + };
>> +
>> + ndfc@1,0 {
>> + compatible = "ibm,ndfc";
>> + /* reg property is supplied by U-boot */
>> + ccr = <0x00003000>;
>
> Why don't you set EBCC bit in CCR ? It seems to be required for normal
> operation.
>
>
>> + bank-settings = <0x80002222>;
>> + #address-cells = <1>;
>> + #size-cells = <1>;
>> +
>> + nand {
>> + #address-cells = <1>;
>> + #size-cells = <1>;
>> + partition@0 {
>> + label = "uboot";
>> + reg = <0x00000000 0x00200000>;
>> + };
>> + partition@200000 {
>> + label = "uboot-environment";
>> + reg = <0x00200000 0x00100000>;
>> + };
>> + partition@300000 {
>> + label = "linux";
>> + reg = <0x00300000 0x00300000>;
>> + };
>> + partition@600000 {
>> + label = "root-file-system";
>> + reg = <0x00600000 0x01900000>;
>> + };
>> + partition@1f00000 {
>> + label = "device-tree";
>> + reg = <0x01f00000 0x00020000>;
>> + };
>> + partition@1f20000 {
>> + label = "data";
>> + reg = <0x01f20000 0x060E0000>;
>> + };
>> + };
>> + };
>> + };
>> +
>
> Felix.
^ permalink raw reply
* Re: [PATCH] Add kmemleak annotations to lmb.c
From: Catalin Marinas @ 2009-08-13 15:40 UTC (permalink / raw)
To: Michael Ellerman; +Cc: linuxppc-dev, David S. Miller
In-Reply-To: <e846103b117cc36798b1f352ed526d600fd88e16.1250132460.git.michael@ellerman.id.au>
On Thu, 2009-08-13 at 13:01 +1000, Michael Ellerman wrote:
> We don't actually want kmemleak to track the lmb allocations, so we
> pass min_count as 0. However telling kmemleak about lmb allocations
> allows it to scan that memory for pointers to other memory that is
> tracked by kmemleak, ie. slab allocations etc.
Looks alright to me (though I haven't tested it). You can add a
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
--
Catalin
^ permalink raw reply
* [PATCH 2/2] powerpc/44x: Update Arches defconfig
From: Stefan Roese @ 2009-08-13 14:30 UTC (permalink / raw)
To: linuxppc-dev
This patch adds NOR MTD support and I2C HWMON support for the AD7414
to the AMCC Arches defconfig.
Signed-off-by: Stefan Roese <sr@denx.de>
---
arch/powerpc/configs/44x/arches_defconfig | 382 +++++++++++++++++++++++++----
1 files changed, 332 insertions(+), 50 deletions(-)
diff --git a/arch/powerpc/configs/44x/arches_defconfig b/arch/powerpc/configs/44x/arches_defconfig
index f7fd32c..6f976b5 100644
--- a/arch/powerpc/configs/44x/arches_defconfig
+++ b/arch/powerpc/configs/44x/arches_defconfig
@@ -1,14 +1,14 @@
#
# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.29-rc2
-# Tue Jan 20 08:22:31 2009
+# Linux kernel version: 2.6.31-rc5
+# Thu Aug 13 14:14:07 2009
#
# CONFIG_PPC64 is not set
#
# Processor support
#
-# CONFIG_6xx is not set
+# CONFIG_PPC_BOOK3S_32 is not set
# CONFIG_PPC_85xx is not set
# CONFIG_PPC_8xx is not set
# CONFIG_40x is not set
@@ -31,15 +31,16 @@ CONFIG_GENERIC_TIME=y
CONFIG_GENERIC_TIME_VSYSCALL=y
CONFIG_GENERIC_CLOCKEVENTS=y
CONFIG_GENERIC_HARDIRQS=y
+CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
CONFIG_IRQ_PER_CPU=y
CONFIG_STACKTRACE_SUPPORT=y
CONFIG_HAVE_LATENCYTOP_SUPPORT=y
+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
CONFIG_LOCKDEP_SUPPORT=y
CONFIG_RWSEM_XCHGADD_ALGORITHM=y
CONFIG_ARCH_HAS_ILOG2_U32=y
CONFIG_GENERIC_HWEIGHT=y
-CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_GENERIC_FIND_NEXT_BIT=y
# CONFIG_ARCH_NO_VIRT_TO_BUS is not set
CONFIG_PPC=y
@@ -53,11 +54,14 @@ CONFIG_PPC_UDBG_16550=y
# CONFIG_GENERIC_TBSYNC is not set
CONFIG_AUDIT_ARCH=y
CONFIG_GENERIC_BUG=y
+CONFIG_DTC=y
# CONFIG_DEFAULT_UIMAGE is not set
CONFIG_PPC_DCR_NATIVE=y
# CONFIG_PPC_DCR_MMIO is not set
CONFIG_PPC_DCR=y
+CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
+CONFIG_CONSTRUCTORS=y
#
# General setup
@@ -71,9 +75,19 @@ CONFIG_SWAP=y
CONFIG_SYSVIPC=y
CONFIG_SYSVIPC_SYSCTL=y
CONFIG_POSIX_MQUEUE=y
+CONFIG_POSIX_MQUEUE_SYSCTL=y
# CONFIG_BSD_PROCESS_ACCT is not set
# CONFIG_TASKSTATS is not set
# CONFIG_AUDIT is not set
+
+#
+# RCU Subsystem
+#
+CONFIG_CLASSIC_RCU=y
+# CONFIG_TREE_RCU is not set
+# CONFIG_PREEMPT_RCU is not set
+# CONFIG_TREE_RCU_TRACE is not set
+# CONFIG_PREEMPT_RCU_TRACE is not set
# CONFIG_IKCONFIG is not set
CONFIG_LOG_BUF_SHIFT=14
# CONFIG_GROUP_SCHED is not set
@@ -84,8 +98,12 @@ CONFIG_SYSFS_DEPRECATED_V2=y
# CONFIG_NAMESPACES is not set
CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE=""
+CONFIG_RD_GZIP=y
+# CONFIG_RD_BZIP2 is not set
+# CONFIG_RD_LZMA is not set
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
CONFIG_SYSCTL=y
+CONFIG_ANON_INODES=y
CONFIG_EMBEDDED=y
CONFIG_SYSCTL_SYSCALL=y
CONFIG_KALLSYMS=y
@@ -95,23 +113,30 @@ CONFIG_HOTPLUG=y
CONFIG_PRINTK=y
CONFIG_BUG=y
CONFIG_ELF_CORE=y
-CONFIG_COMPAT_BRK=y
CONFIG_BASE_FULL=y
CONFIG_FUTEX=y
-CONFIG_ANON_INODES=y
CONFIG_EPOLL=y
CONFIG_SIGNALFD=y
CONFIG_TIMERFD=y
CONFIG_EVENTFD=y
CONFIG_SHMEM=y
CONFIG_AIO=y
+CONFIG_HAVE_PERF_COUNTERS=y
+
+#
+# Performance Counters
+#
+# CONFIG_PERF_COUNTERS is not set
CONFIG_VM_EVENT_COUNTERS=y
CONFIG_PCI_QUIRKS=y
CONFIG_SLUB_DEBUG=y
+# CONFIG_STRIP_ASM_SYMS is not set
+CONFIG_COMPAT_BRK=y
# CONFIG_SLAB is not set
CONFIG_SLUB=y
# CONFIG_SLOB is not set
# CONFIG_PROFILING is not set
+# CONFIG_MARKERS is not set
CONFIG_HAVE_OPROFILE=y
# CONFIG_KPROBES is not set
CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
@@ -119,6 +144,12 @@ CONFIG_HAVE_IOREMAP_PROT=y
CONFIG_HAVE_KPROBES=y
CONFIG_HAVE_KRETPROBES=y
CONFIG_HAVE_ARCH_TRACEHOOK=y
+
+#
+# GCOV-based kernel profiling
+#
+# CONFIG_GCOV_KERNEL is not set
+# CONFIG_SLOW_WORK is not set
# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
CONFIG_SLABINFO=y
CONFIG_RT_MUTEXES=y
@@ -130,8 +161,7 @@ CONFIG_MODULE_UNLOAD=y
# CONFIG_MODVERSIONS is not set
# CONFIG_MODULE_SRCVERSION_ALL is not set
CONFIG_BLOCK=y
-CONFIG_LBD=y
-# CONFIG_BLK_DEV_IO_TRACE is not set
+CONFIG_LBDAF=y
# CONFIG_BLK_DEV_BSG is not set
# CONFIG_BLK_DEV_INTEGRITY is not set
@@ -147,11 +177,6 @@ CONFIG_DEFAULT_AS=y
# CONFIG_DEFAULT_CFQ is not set
# CONFIG_DEFAULT_NOOP is not set
CONFIG_DEFAULT_IOSCHED="anticipatory"
-CONFIG_CLASSIC_RCU=y
-# CONFIG_TREE_RCU is not set
-# CONFIG_PREEMPT_RCU is not set
-# CONFIG_TREE_RCU_TRACE is not set
-# CONFIG_PREEMPT_RCU_TRACE is not set
# CONFIG_FREEZER is not set
CONFIG_PPC4xx_PCI_EXPRESS=y
@@ -172,6 +197,7 @@ CONFIG_PPC4xx_PCI_EXPRESS=y
CONFIG_ARCHES=y
# CONFIG_CANYONLANDS is not set
# CONFIG_GLACIER is not set
+# CONFIG_REDWOOD is not set
# CONFIG_YOSEMITE is not set
# CONFIG_XILINX_VIRTEX440_GENERIC_BOARD is not set
CONFIG_PPC44x_SIMPLE=y
@@ -214,6 +240,7 @@ CONFIG_BINFMT_ELF=y
# CONFIG_BINFMT_MISC is not set
# CONFIG_MATH_EMULATION is not set
# CONFIG_IOMMU_HELPER is not set
+# CONFIG_SWIOTLB is not set
CONFIG_PPC_NEED_DMA_SYNC_OPS=y
CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
CONFIG_ARCH_HAS_WALK_MEMORY=y
@@ -233,10 +260,14 @@ CONFIG_PHYS_ADDR_T_64BIT=y
CONFIG_ZONE_DMA_FLAG=1
CONFIG_BOUNCE=y
CONFIG_VIRT_TO_BUS=y
-CONFIG_UNEVICTABLE_LRU=y
+CONFIG_HAVE_MLOCK=y
+CONFIG_HAVE_MLOCKED_PAGE_BIT=y
+CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
+CONFIG_STDBINUTILS=y
CONFIG_PPC_4K_PAGES=y
# CONFIG_PPC_16K_PAGES is not set
# CONFIG_PPC_64K_PAGES is not set
+# CONFIG_PPC_256K_PAGES is not set
CONFIG_FORCE_MAX_ZONEORDER=11
CONFIG_PROC_DEVICETREE=y
CONFIG_CMDLINE_BOOL=y
@@ -261,6 +292,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
# CONFIG_PCI_LEGACY is not set
# CONFIG_PCI_DEBUG is not set
# CONFIG_PCI_STUB is not set
+# CONFIG_PCI_IOV is not set
# CONFIG_PCCARD is not set
# CONFIG_HOTPLUG_PCI is not set
# CONFIG_HAS_RAPIDIO is not set
@@ -278,14 +310,12 @@ CONFIG_PAGE_OFFSET=0xc0000000
CONFIG_KERNEL_START=0xc0000000
CONFIG_PHYSICAL_START=0x00000000
CONFIG_TASK_SIZE=0xc0000000
-CONFIG_CONSISTENT_START=0xff100000
CONFIG_CONSISTENT_SIZE=0x00200000
CONFIG_NET=y
#
# Networking options
#
-CONFIG_COMPAT_NET_DEV_OPS=y
CONFIG_PACKET=y
# CONFIG_PACKET_MMAP is not set
CONFIG_UNIX=y
@@ -335,6 +365,8 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
# CONFIG_LAPB is not set
# CONFIG_ECONET is not set
# CONFIG_WAN_ROUTER is not set
+# CONFIG_PHONET is not set
+# CONFIG_IEEE802154 is not set
# CONFIG_NET_SCHED is not set
# CONFIG_DCB is not set
@@ -347,7 +379,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
# CONFIG_IRDA is not set
# CONFIG_BT is not set
# CONFIG_AF_RXRPC is not set
-# CONFIG_PHONET is not set
# CONFIG_WIRELESS is not set
# CONFIG_WIMAX is not set
# CONFIG_RFKILL is not set
@@ -371,8 +402,92 @@ CONFIG_EXTRA_FIRMWARE=""
# CONFIG_SYS_HYPERVISOR is not set
CONFIG_CONNECTOR=y
CONFIG_PROC_EVENTS=y
-# CONFIG_MTD is not set
+CONFIG_MTD=y
+# CONFIG_MTD_DEBUG is not set
+# CONFIG_MTD_CONCAT is not set
+CONFIG_MTD_PARTITIONS=y
+# CONFIG_MTD_TESTS is not set
+# CONFIG_MTD_REDBOOT_PARTS is not set
+CONFIG_MTD_CMDLINE_PARTS=y
+CONFIG_MTD_OF_PARTS=y
+# CONFIG_MTD_AR7_PARTS is not set
+
+#
+# User Modules And Translation Layers
+#
+CONFIG_MTD_CHAR=y
+CONFIG_MTD_BLKDEVS=y
+CONFIG_MTD_BLOCK=y
+# CONFIG_FTL is not set
+# CONFIG_NFTL is not set
+# CONFIG_INFTL is not set
+# CONFIG_RFD_FTL is not set
+# CONFIG_SSFDC is not set
+# CONFIG_MTD_OOPS is not set
+
+#
+# RAM/ROM/Flash chip drivers
+#
+CONFIG_MTD_CFI=y
+# CONFIG_MTD_JEDECPROBE is not set
+CONFIG_MTD_GEN_PROBE=y
+# CONFIG_MTD_CFI_ADV_OPTIONS is not set
+CONFIG_MTD_MAP_BANK_WIDTH_1=y
+CONFIG_MTD_MAP_BANK_WIDTH_2=y
+CONFIG_MTD_MAP_BANK_WIDTH_4=y
+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
+CONFIG_MTD_CFI_I1=y
+CONFIG_MTD_CFI_I2=y
+# CONFIG_MTD_CFI_I4 is not set
+# CONFIG_MTD_CFI_I8 is not set
+# CONFIG_MTD_CFI_INTELEXT is not set
+CONFIG_MTD_CFI_AMDSTD=y
+# CONFIG_MTD_CFI_STAA is not set
+CONFIG_MTD_CFI_UTIL=y
+# CONFIG_MTD_RAM is not set
+# CONFIG_MTD_ROM is not set
+# CONFIG_MTD_ABSENT is not set
+
+#
+# Mapping drivers for chip access
+#
+# CONFIG_MTD_COMPLEX_MAPPINGS is not set
+# CONFIG_MTD_PHYSMAP is not set
+CONFIG_MTD_PHYSMAP_OF=y
+# CONFIG_MTD_INTEL_VR_NOR is not set
+# CONFIG_MTD_PLATRAM is not set
+
+#
+# Self-contained MTD device drivers
+#
+# CONFIG_MTD_PMC551 is not set
+# CONFIG_MTD_SLRAM is not set
+# CONFIG_MTD_PHRAM is not set
+# CONFIG_MTD_MTDRAM is not set
+# CONFIG_MTD_BLOCK2MTD is not set
+
+#
+# Disk-On-Chip Device Drivers
+#
+# CONFIG_MTD_DOC2000 is not set
+# CONFIG_MTD_DOC2001 is not set
+# CONFIG_MTD_DOC2001PLUS is not set
+# CONFIG_MTD_NAND is not set
+# CONFIG_MTD_ONENAND is not set
+
+#
+# LPDDR flash memory drivers
+#
+# CONFIG_MTD_LPDDR is not set
+
+#
+# UBI - Unsorted block images
+#
+# CONFIG_MTD_UBI is not set
CONFIG_OF_DEVICE=y
+CONFIG_OF_I2C=y
# CONFIG_PARPORT is not set
CONFIG_BLK_DEV=y
# CONFIG_BLK_DEV_FD is not set
@@ -412,7 +527,11 @@ CONFIG_HAVE_IDE=y
#
#
-# Enable only one of the two stacks, unless you know what you are doing
+# You can enable one or both FireWire driver stacks.
+#
+
+#
+# See the help texts for more information.
#
# CONFIG_FIREWIRE is not set
# CONFIG_IEEE1394 is not set
@@ -433,6 +552,8 @@ CONFIG_NET_ETHERNET=y
# CONFIG_SUNGEM is not set
# CONFIG_CASSINI is not set
# CONFIG_NET_VENDOR_3COM is not set
+# CONFIG_ETHOC is not set
+# CONFIG_DNET is not set
# CONFIG_NET_TULIP is not set
# CONFIG_HP100 is not set
CONFIG_IBM_NEW_EMAC=y
@@ -451,6 +572,7 @@ CONFIG_IBM_NEW_EMAC_EMAC4=y
# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
# CONFIG_NET_PCI is not set
# CONFIG_B44 is not set
+# CONFIG_KS8842 is not set
# CONFIG_ATL2 is not set
# CONFIG_NETDEV_1000 is not set
# CONFIG_NETDEV_10000 is not set
@@ -461,7 +583,6 @@ CONFIG_IBM_NEW_EMAC_EMAC4=y
#
# CONFIG_WLAN_PRE80211 is not set
# CONFIG_WLAN_80211 is not set
-# CONFIG_IWLWIFI_LEDS is not set
#
# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -533,13 +654,143 @@ CONFIG_LEGACY_PTY_COUNT=256
# CONFIG_RAW_DRIVER is not set
# CONFIG_TCG_TPM is not set
CONFIG_DEVPORT=y
-# CONFIG_I2C is not set
+CONFIG_I2C=y
+CONFIG_I2C_BOARDINFO=y
+CONFIG_I2C_CHARDEV=y
+CONFIG_I2C_HELPER_AUTO=y
+
+#
+# I2C Hardware Bus support
+#
+
+#
+# PC SMBus host controller drivers
+#
+# CONFIG_I2C_ALI1535 is not set
+# CONFIG_I2C_ALI1563 is not set
+# CONFIG_I2C_ALI15X3 is not set
+# CONFIG_I2C_AMD756 is not set
+# CONFIG_I2C_AMD8111 is not set
+# CONFIG_I2C_I801 is not set
+# CONFIG_I2C_ISCH is not set
+# CONFIG_I2C_PIIX4 is not set
+# CONFIG_I2C_NFORCE2 is not set
+# CONFIG_I2C_SIS5595 is not set
+# CONFIG_I2C_SIS630 is not set
+# CONFIG_I2C_SIS96X is not set
+# CONFIG_I2C_VIA is not set
+# CONFIG_I2C_VIAPRO is not set
+
+#
+# I2C system bus drivers (mostly embedded / system-on-chip)
+#
+CONFIG_I2C_IBM_IIC=y
+# CONFIG_I2C_MPC is not set
+# CONFIG_I2C_OCORES is not set
+# CONFIG_I2C_SIMTEC is not set
+
+#
+# External I2C/SMBus adapter drivers
+#
+# CONFIG_I2C_PARPORT_LIGHT is not set
+# CONFIG_I2C_TAOS_EVM is not set
+
+#
+# Graphics adapter I2C/DDC channel drivers
+#
+# CONFIG_I2C_VOODOO3 is not set
+
+#
+# Other I2C/SMBus bus drivers
+#
+# CONFIG_I2C_PCA_PLATFORM is not set
+# CONFIG_I2C_STUB is not set
+
+#
+# Miscellaneous I2C Chip support
+#
+# CONFIG_DS1682 is not set
+# CONFIG_SENSORS_PCF8574 is not set
+# CONFIG_PCF8575 is not set
+# CONFIG_SENSORS_PCA9539 is not set
+# CONFIG_SENSORS_TSL2550 is not set
+# CONFIG_I2C_DEBUG_CORE is not set
+# CONFIG_I2C_DEBUG_ALGO is not set
+# CONFIG_I2C_DEBUG_BUS is not set
+# CONFIG_I2C_DEBUG_CHIP is not set
# CONFIG_SPI is not set
+
+#
+# PPS support
+#
+# CONFIG_PPS is not set
CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
# CONFIG_GPIOLIB is not set
# CONFIG_W1 is not set
# CONFIG_POWER_SUPPLY is not set
-# CONFIG_HWMON is not set
+CONFIG_HWMON=y
+# CONFIG_HWMON_VID is not set
+CONFIG_SENSORS_AD7414=y
+# CONFIG_SENSORS_AD7418 is not set
+# CONFIG_SENSORS_ADM1021 is not set
+# CONFIG_SENSORS_ADM1025 is not set
+# CONFIG_SENSORS_ADM1026 is not set
+# CONFIG_SENSORS_ADM1029 is not set
+# CONFIG_SENSORS_ADM1031 is not set
+# CONFIG_SENSORS_ADM9240 is not set
+# CONFIG_SENSORS_ADT7462 is not set
+# CONFIG_SENSORS_ADT7470 is not set
+# CONFIG_SENSORS_ADT7473 is not set
+# CONFIG_SENSORS_ADT7475 is not set
+# CONFIG_SENSORS_ATXP1 is not set
+# CONFIG_SENSORS_DS1621 is not set
+# CONFIG_SENSORS_I5K_AMB is not set
+# CONFIG_SENSORS_F71805F is not set
+# CONFIG_SENSORS_F71882FG is not set
+# CONFIG_SENSORS_F75375S is not set
+# CONFIG_SENSORS_G760A is not set
+# CONFIG_SENSORS_GL518SM is not set
+# CONFIG_SENSORS_GL520SM is not set
+# CONFIG_SENSORS_IT87 is not set
+# CONFIG_SENSORS_LM63 is not set
+# CONFIG_SENSORS_LM75 is not set
+# CONFIG_SENSORS_LM77 is not set
+# CONFIG_SENSORS_LM78 is not set
+# CONFIG_SENSORS_LM80 is not set
+# CONFIG_SENSORS_LM83 is not set
+# CONFIG_SENSORS_LM85 is not set
+# CONFIG_SENSORS_LM87 is not set
+# CONFIG_SENSORS_LM90 is not set
+# CONFIG_SENSORS_LM92 is not set
+# CONFIG_SENSORS_LM93 is not set
+# CONFIG_SENSORS_LTC4215 is not set
+# CONFIG_SENSORS_LTC4245 is not set
+# CONFIG_SENSORS_LM95241 is not set
+# CONFIG_SENSORS_MAX1619 is not set
+# CONFIG_SENSORS_MAX6650 is not set
+# CONFIG_SENSORS_PC87360 is not set
+# CONFIG_SENSORS_PC87427 is not set
+# CONFIG_SENSORS_PCF8591 is not set
+# CONFIG_SENSORS_SIS5595 is not set
+# CONFIG_SENSORS_DME1737 is not set
+# CONFIG_SENSORS_SMSC47M1 is not set
+# CONFIG_SENSORS_SMSC47M192 is not set
+# CONFIG_SENSORS_SMSC47B397 is not set
+# CONFIG_SENSORS_ADS7828 is not set
+# CONFIG_SENSORS_THMC50 is not set
+# CONFIG_SENSORS_TMP401 is not set
+# CONFIG_SENSORS_VIA686A is not set
+# CONFIG_SENSORS_VT1211 is not set
+# CONFIG_SENSORS_VT8231 is not set
+# CONFIG_SENSORS_W83781D is not set
+# CONFIG_SENSORS_W83791D is not set
+# CONFIG_SENSORS_W83792D is not set
+# CONFIG_SENSORS_W83793 is not set
+# CONFIG_SENSORS_W83L785TS is not set
+# CONFIG_SENSORS_W83L786NG is not set
+# CONFIG_SENSORS_W83627HF is not set
+# CONFIG_SENSORS_W83627EHF is not set
+# CONFIG_HWMON_DEBUG_CHIP is not set
# CONFIG_THERMAL is not set
# CONFIG_THERMAL_HWMON is not set
# CONFIG_WATCHDOG is not set
@@ -556,24 +807,15 @@ CONFIG_SSB_POSSIBLE=y
# CONFIG_MFD_CORE is not set
# CONFIG_MFD_SM501 is not set
# CONFIG_HTC_PASIC3 is not set
+# CONFIG_TWL4030_CORE is not set
# CONFIG_MFD_TMIO is not set
+# CONFIG_PMIC_DA903X is not set
+# CONFIG_MFD_WM8400 is not set
+# CONFIG_MFD_WM8350_I2C is not set
+# CONFIG_MFD_PCF50633 is not set
+# CONFIG_AB3100_CORE is not set
# CONFIG_REGULATOR is not set
-
-#
-# Multimedia devices
-#
-
-#
-# Multimedia core support
-#
-# CONFIG_VIDEO_DEV is not set
-# CONFIG_DVB_CORE is not set
-# CONFIG_VIDEO_MEDIA is not set
-
-#
-# Multimedia drivers
-#
-CONFIG_DAB=y
+# CONFIG_MEDIA_SUPPORT is not set
#
# Graphics support
@@ -600,7 +842,12 @@ CONFIG_VIDEO_OUTPUT_CONTROL=m
# CONFIG_EDAC is not set
# CONFIG_RTC_CLASS is not set
# CONFIG_DMADEVICES is not set
+# CONFIG_AUXDISPLAY is not set
# CONFIG_UIO is not set
+
+#
+# TI VLYNQ
+#
# CONFIG_STAGING is not set
#
@@ -614,11 +861,12 @@ CONFIG_EXT2_FS=y
# CONFIG_REISERFS_FS is not set
# CONFIG_JFS_FS is not set
# CONFIG_FS_POSIX_ACL is not set
-CONFIG_FILE_LOCKING=y
# CONFIG_XFS_FS is not set
# CONFIG_GFS2_FS is not set
# CONFIG_OCFS2_FS is not set
# CONFIG_BTRFS_FS is not set
+CONFIG_FILE_LOCKING=y
+CONFIG_FSNOTIFY=y
CONFIG_DNOTIFY=y
CONFIG_INOTIFY=y
CONFIG_INOTIFY_USER=y
@@ -628,6 +876,11 @@ CONFIG_INOTIFY_USER=y
# CONFIG_FUSE_FS is not set
#
+# Caches
+#
+# CONFIG_FSCACHE is not set
+
+#
# CD-ROM/DVD Filesystems
#
# CONFIG_ISO9660_FS is not set
@@ -660,6 +913,17 @@ CONFIG_MISC_FILESYSTEMS=y
# CONFIG_BEFS_FS is not set
# CONFIG_BFS_FS is not set
# CONFIG_EFS_FS is not set
+CONFIG_JFFS2_FS=y
+CONFIG_JFFS2_FS_DEBUG=0
+CONFIG_JFFS2_FS_WRITEBUFFER=y
+# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
+# CONFIG_JFFS2_SUMMARY is not set
+# CONFIG_JFFS2_FS_XATTR is not set
+# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
+CONFIG_JFFS2_ZLIB=y
+# CONFIG_JFFS2_LZO is not set
+CONFIG_JFFS2_RTIME=y
+# CONFIG_JFFS2_RUBIN is not set
CONFIG_CRAMFS=y
# CONFIG_SQUASHFS is not set
# CONFIG_VXFS_FS is not set
@@ -670,6 +934,7 @@ CONFIG_CRAMFS=y
# CONFIG_ROMFS_FS is not set
# CONFIG_SYSV_FS is not set
# CONFIG_UFS_FS is not set
+# CONFIG_NILFS2_FS is not set
CONFIG_NETWORK_FILESYSTEMS=y
CONFIG_NFS_FS=y
CONFIG_NFS_V3=y
@@ -681,7 +946,6 @@ CONFIG_LOCKD=y
CONFIG_LOCKD_V4=y
CONFIG_NFS_COMMON=y
CONFIG_SUNRPC=y
-# CONFIG_SUNRPC_REGISTER_V4 is not set
# CONFIG_RPCSEC_GSS_KRB5 is not set
# CONFIG_RPCSEC_GSS_SPKM3 is not set
# CONFIG_SMB_FS is not set
@@ -697,6 +961,7 @@ CONFIG_SUNRPC=y
CONFIG_MSDOS_PARTITION=y
# CONFIG_NLS is not set
# CONFIG_DLM is not set
+# CONFIG_BINARY_PRINTF is not set
#
# Library routines
@@ -711,11 +976,14 @@ CONFIG_CRC32=y
# CONFIG_CRC7 is not set
# CONFIG_LIBCRC32C is not set
CONFIG_ZLIB_INFLATE=y
-CONFIG_PLIST=y
+CONFIG_ZLIB_DEFLATE=y
+CONFIG_DECOMPRESS_GZIP=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y
CONFIG_HAS_DMA=y
CONFIG_HAVE_LMB=y
+CONFIG_NLATTR=y
+CONFIG_GENERIC_ATOMIC64=y
#
# Kernel hacking
@@ -733,6 +1001,9 @@ CONFIG_DEBUG_KERNEL=y
CONFIG_DETECT_SOFTLOCKUP=y
# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
+CONFIG_DETECT_HUNG_TASK=y
+# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
+CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
CONFIG_SCHED_DEBUG=y
# CONFIG_SCHEDSTATS is not set
# CONFIG_TIMER_STATS is not set
@@ -743,6 +1014,9 @@ CONFIG_SCHED_DEBUG=y
# CONFIG_RT_MUTEX_TESTER is not set
# CONFIG_DEBUG_SPINLOCK is not set
# CONFIG_DEBUG_MUTEXES is not set
+# CONFIG_DEBUG_LOCK_ALLOC is not set
+# CONFIG_PROVE_LOCKING is not set
+# CONFIG_LOCK_STAT is not set
# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
# CONFIG_DEBUG_KOBJECT is not set
@@ -754,7 +1028,6 @@ CONFIG_SCHED_DEBUG=y
# CONFIG_DEBUG_LIST is not set
# CONFIG_DEBUG_SG is not set
# CONFIG_DEBUG_NOTIFIERS is not set
-# CONFIG_BOOT_PRINTK_DELAY is not set
# CONFIG_RCU_TORTURE_TEST is not set
# CONFIG_RCU_CPU_STALL_DETECTOR is not set
# CONFIG_BACKTRACE_SELF_TEST is not set
@@ -762,27 +1035,36 @@ CONFIG_SCHED_DEBUG=y
# CONFIG_FAULT_INJECTION is not set
# CONFIG_LATENCYTOP is not set
CONFIG_SYSCTL_SYSCALL_CHECK=y
+# CONFIG_DEBUG_PAGEALLOC is not set
CONFIG_HAVE_FUNCTION_TRACER=y
+CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
CONFIG_HAVE_DYNAMIC_FTRACE=y
CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
-
-#
-# Tracers
-#
+CONFIG_TRACING_SUPPORT=y
+CONFIG_FTRACE=y
# CONFIG_FUNCTION_TRACER is not set
+# CONFIG_IRQSOFF_TRACER is not set
# CONFIG_SCHED_TRACER is not set
-# CONFIG_CONTEXT_SWITCH_TRACER is not set
+# CONFIG_ENABLE_DEFAULT_TRACERS is not set
# CONFIG_BOOT_TRACER is not set
-# CONFIG_TRACE_BRANCH_PROFILING is not set
+CONFIG_BRANCH_PROFILE_NONE=y
+# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
+# CONFIG_PROFILE_ALL_BRANCHES is not set
# CONFIG_STACK_TRACER is not set
-# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
+# CONFIG_KMEMTRACE is not set
+# CONFIG_WORKQUEUE_TRACER is not set
+# CONFIG_BLK_DEV_IO_TRACE is not set
+# CONFIG_DYNAMIC_DEBUG is not set
# CONFIG_SAMPLES is not set
CONFIG_HAVE_ARCH_KGDB=y
# CONFIG_KGDB is not set
+# CONFIG_KMEMCHECK is not set
+# CONFIG_PPC_DISABLE_WERROR is not set
+CONFIG_PPC_WERROR=y
CONFIG_PRINT_STACK_DEPTH=64
# CONFIG_DEBUG_STACKOVERFLOW is not set
# CONFIG_DEBUG_STACK_USAGE is not set
-# CONFIG_DEBUG_PAGEALLOC is not set
+# CONFIG_PPC_EMULATED_STATS is not set
# CONFIG_CODE_PATCHING_SELFTEST is not set
# CONFIG_FTR_FIXUP_SELFTEST is not set
# CONFIG_MSI_BITMAP_SELFTEST is not set
--
1.6.3.4
^ permalink raw reply related
* [PATCH 1/2] powerpc/44x: Update Arches dts
From: Stefan Roese @ 2009-08-13 14:30 UTC (permalink / raw)
To: linuxppc-dev
This patch adds some nodes to the AMCC Arches dts:
- L2 cache support
- NOR FLASH mapping with default partitioning
- I2C HWMON device (AD7414)
Signed-off-by: Stefan Roese <sr@denx.de>
---
arch/powerpc/boot/dts/arches.dts | 50 ++++++++++++++++++++++++++++++++++++++
1 files changed, 50 insertions(+), 0 deletions(-)
diff --git a/arch/powerpc/boot/dts/arches.dts b/arch/powerpc/boot/dts/arches.dts
index d9113b1..414ef8b 100644
--- a/arch/powerpc/boot/dts/arches.dts
+++ b/arch/powerpc/boot/dts/arches.dts
@@ -124,6 +124,16 @@
dcr-reg = <0x00c 0x002>;
};
+ L2C0: l2c {
+ compatible = "ibm,l2-cache-460gt", "ibm,l2-cache";
+ dcr-reg = <0x020 0x008 /* Internal SRAM DCR's */
+ 0x030 0x008>; /* L2 cache DCR's */
+ cache-line-size = <32>; /* 32 bytes */
+ cache-size = <262144>; /* L2, 256K */
+ interrupt-parent = <&UIC1>;
+ interrupts = <11 1>;
+ };
+
plb {
compatible = "ibm,plb-460gt", "ibm,plb4";
#address-cells = <2>;
@@ -168,6 +178,38 @@
/* ranges property is supplied by U-Boot */
interrupts = <0x6 0x4>;
interrupt-parent = <&UIC1>;
+
+ nor_flash@0,0 {
+ compatible = "amd,s29gl256n", "cfi-flash";
+ bank-width = <2>;
+ reg = <0x00000000 0x00000000 0x02000000>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+ partition@0 {
+ label = "kernel";
+ reg = <0x00000000 0x001e0000>;
+ };
+ partition@1e0000 {
+ label = "dtb";
+ reg = <0x001e0000 0x00020000>;
+ };
+ partition@200000 {
+ label = "root";
+ reg = <0x00200000 0x00200000>;
+ };
+ partition@400000 {
+ label = "user";
+ reg = <0x00400000 0x01b60000>;
+ };
+ partition@1f60000 {
+ label = "env";
+ reg = <0x01f60000 0x00040000>;
+ };
+ partition@1fa0000 {
+ label = "u-boot";
+ reg = <0x01fa0000 0x00060000>;
+ };
+ };
};
UART0: serial@ef600300 {
@@ -186,6 +228,14 @@
reg = <0xef600700 0x00000014>;
interrupt-parent = <&UIC0>;
interrupts = <0x2 0x4>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ sttm@4a {
+ compatible = "ad,ad7414";
+ reg = <0x4a>;
+ interrupt-parent = <&UIC1>;
+ interrupts = <0x0 0x8>;
+ };
};
IIC1: i2c@ef600800 {
--
1.6.3.4
^ permalink raw reply related
* Adding MTD concat support to FSL ELBC NAND driver
From: Felix Radensky @ 2009-08-13 13:46 UTC (permalink / raw)
To: linuxppc-dev@ozlabs.org list, Scott Wood
Hi,
I'd like to be able to concatenate several NAND banks (each bank on
separate chip select)
into a single MTD device, and define partition table on a concatenated
device.
Currently concatenation support is implemented in physmap_of driver. The
syntax used
to define a concatenation device involves multiple reg tuples, as
described in
Documentation/powerpc/dts-bindings/mtd-physmap.txt. Will same syntax be
acceptable
for NAND chips ?
Thanks.
Felix.
^ permalink raw reply
* Re: [PATCH -v2 0/7] powerpc: use asm-generic/dma-mapping-common.h
From: Kumar Gala @ 2009-08-13 13:31 UTC (permalink / raw)
To: Benjamin Herrenschmidt
Cc: Linux-Kernel List, FUJITA Tomonori, Ingo Molnar, linuxppc-dev
In-Reply-To: <1250159900.24143.7.camel@pasglop>
On Aug 13, 2009, at 5:38 AM, Benjamin Herrenschmidt wrote:
> On Thu, 2009-08-13 at 10:55 +0200, Ingo Molnar wrote:
>
>>> Or we can have the patches in core/iommu and I pull the whole
>>> thing in powerpc-next. [...]
>>
>> Ok! We could also stage it a bit (one or two weeks) in a separate
>> branch and allow a rebase, should you find any bugs during testing?
>
> Sounds like a plan.
>
> I'll try to sort that out tomorrow, I can stick them in my -test
> branch
> (which is rebase friendly) for a while too.
Getting them all in your -test branch gives Becky and I an opportunity
to test them w/all the other PPC changes on the platforms we have that
enable SWIOTLB today.
- k
^ permalink raw reply
* Re: [PATCH] viotape: Fix memory and semaphore leak
From: Michael Buesch @ 2009-08-13 13:18 UTC (permalink / raw)
To: Benjamin Herrenschmidt
Cc: Dave Boutcher, Ryan Arnold, linuxppc-dev, Colin Devilbiss
In-Reply-To: <1250139603.3587.106.camel@pasglop>
On Thursday 13 August 2009 07:00:03 Benjamin Herrenschmidt wrote:
> On Sat, 2009-07-18 at 15:06 +0200, Michael Buesch wrote:
> > This patch fixes a memory and semaphore leak in the viotape driver's
> > char device write op. It leaks the DMA memory and the semaphore lock
> > in case the device was opened with O_NONBLOCK.
> >
> > This patch is only compile tested, because I do not have the hardware.
> >
> > Signed-off-by: Michael Buesch <mb@bu3sch.de>
>
> (going trough my backlog ...)
>
> Thanks Michael, but I don't think that's right...
>
> IE. We aren't waiting for the write to complete, which means that it can
> be happening asynchronously, thus we must not free the DMA memory until
> it has actually complete.
>
> Now, if you look at vioHandleTapeEvent(), it does appear that when the
> completion happens, the DMA memory will eventually be released and the
> mutex up'ed.
>
> Or am I missing something ?
I think you are right.
--
Greetings, Michael.
^ permalink raw reply
* Re: [PATCH -v2 0/7] powerpc: use asm-generic/dma-mapping-common.h
From: Benjamin Herrenschmidt @ 2009-08-13 10:38 UTC (permalink / raw)
To: Ingo Molnar; +Cc: FUJITA Tomonori, linuxppc-dev, linux-kernel, galak
In-Reply-To: <20090813085505.GA10671@elte.hu>
On Thu, 2009-08-13 at 10:55 +0200, Ingo Molnar wrote:
> > Or we can have the patches in core/iommu and I pull the whole
> > thing in powerpc-next. [...]
>
> Ok! We could also stage it a bit (one or two weeks) in a separate
> branch and allow a rebase, should you find any bugs during testing?
Sounds like a plan.
I'll try to sort that out tomorrow, I can stick them in my -test branch
(which is rebase friendly) for a while too.
Cheers,
Ben.
^ permalink raw reply
* test branch update
From: Benjamin Herrenschmidt @ 2009-08-13 9:43 UTC (permalink / raw)
To: linuxppc-dev list
I've pushed a few more things to my -test branch (in addition to some
-next updates that I may have forgotten to mention yesterday).
So here's the whole lot of stuff that's in there today vs. upstream.
Please give it a spin, it's really only compile tested here (and I
haven't scrubbed the warnings yet in case they show something bad), so
things will simmer there for a couple of days I think before I'm
confident enough to put them into -next.
Anton Blanchard (3):
powerpc: Move 64bit VDSO to improve context switch performance
powerpc: Rearrange SLB preload code
powerpc: Preload application text segment instead of TASK_UNMAPPED_BASE
Anton Vorontsov (3):
powerpc/83xx: Add support for MPC8377E-WLAN boards
powerpc/85xx: Add support for I2C EEPROMs on MPC8548CDS boards
powerpc/83xx: Add eSDHC support for MPC837xE-RDB/WLAN boards
Benjamin Herrenschmidt (29):
powerpc: Rename exception.h to exception-64s.h
powerpc: Use names rather than numbers for SPRGs (v2)
powerpc: Remove use of a second scratch SPRG in STAB code
powerpc/mm: Fix definitions of FORCE_MAX_ZONEORDER in Kconfig
powerpc/pmac: Fix PowerSurge SMP IPI allocation
powerpc: Change PACA from SPRG3 to SPRG1
powerpc: Add compat_sys_truncate
powerpc/mm: Fix misplaced #endif in pgtable-ppc64-64k.h
powerpc/of: Remove useless register save/restore when calling OF back
powerpc/mm: Add HW threads support to no_hash TLB management
powerpc/mm: Add opcode definitions for tlbivax and tlbsrx.
powerpc/mm: Add more bit definitions for Book3E MMU registers
powerpc/mm: Add support for early ioremap on non-hash 64-bit processors
powerpc: Modify some ppc_asm.h macros to accomodate 64-bits Book3E
powerpc/mm: Make low level TLB flush ops on BookE take additional args
powerpc/mm: Call mmu_context_init() from ppc64
powerpc: Clean ifdef usage in copy_thread()
powerpc: Move definitions of secondary CPU spinloop to header file
powerpc/mm: Rework & cleanup page table freeing code path
powerpc: Add SPR definitions for new 64-bit BookE
powerpc: Add memory management headers for new 64-bit BookE
powerpc: Add definitions used by exception handling on 64-bit Book3E
powerpc: Add PACA fields specific to 64-bit Book3E processors
powerpc/mm: Move around mmu_gathers definition on 64-bit
powerpc: Add TLB management code for 64-bit Book3E
powerpc/mm: Add support for SPARSEMEM_VMEMMAP on 64-bit Book3E
powerpc: Remaining 64-bit Book3E support
powerpc/mm: Fix encoding of page table cache numbers
powerpc/mm: Cleanup handling of execute permission
Benjamin Krill (1):
powerpc/prom_init: Evaluate mem kernel parameter for early allocation
Christoph Hellwig (2):
powerpc/sputrace: Use the generic event tracer
powerpc: Switch to asm-generic/hardirq.h
Frans Pop (1):
powerpc: Makefile simplification through use of cc-ifversion
Geert Uytterhoeven (1):
powerpc/cell: Move CBE_IOPTE_* to <asm/cell-regs.h>
Geoff Thorpe (1):
powerpc: expose the multi-bit ops that underlie single-bit ops.
Gerhard Pircher (1):
powerpc/amigaone: Convert amigaone_init() to a machine_device_initcall()
Heiko Schocher (1):
powerpc/82xx: mgcoge - updates for 2.6.32
Julia Lawall (5):
powerpc/fsl_rio: Add kmalloc NULL tests
powerpc/ipic: introduce missing kfree
powerpc/qe: introduce missing kfree
hvc_console: Drop unnecessary NULL test
powerpc: Use DIV_ROUND_CLOSEST in time init code
Kumar Gala (3):
powerpc/mm: Fix switch_mmu_context to iterate of the proper list of cpus
powerpc/85xx: Move mpc8536ds.dts to address-cells/size-cells = <2>
powerpc/85xx: Added 36-bit physical device tree for mpc8572ds board
Lucian Adrian Grijincu (1):
powerpc: Update boot wrapper script with the new location of dtc
Martyn Welch (4):
powerpc/86xx: Correct reading of information presented in cpuinfo
powerpc/86xx: Enable XMC site on GE Fanuc SBC310
powerpc/86xx: Update GE Fanuc sbc310 DTS
powerpc/nvram: Allow byte length reads from mmio NVRAM driver
Michael Ellerman (5):
powerpc/mpic: Fix MPIC_BROKEN_REGREAD on non broken MPICs
kmemleak: Allow kmemleak to be built on powerpc
powerpc: Enable GCOV
powerpc/vmlinux.lds: Move _edata down
powerpc: Add kmemleak annotations to lmb.c
Michel Dänzer (2):
agp/uninorth: Allow larger aperture sizes on pre-U3 bridges.
agp/uninorth: Simplify cache flushing.
Roel Kluin (2):
powerpc/fsl-booke: read buffer overflow
powerpc/hvsi: Avoid calculating possibly-invalid address
Sebastian Andrzej Siewior (1):
powerpc/ipic: unmask all interrupt sources
Stefan Roese (5):
powerpc: Add AMCC 460EX/460GT Rev. B support to cputable.c
powerpc/44x: Add NAND support to Canyonlands dts
powerpc/40x: Update Kilauea dts to support NAND, RTC and HWMON
powerpc/44x: Update Canyonlands defconfig to support NOR, NAND and RTC
powerpc/40x: Update kilauea defconfig to support NAND, RTC and HWMON
Stephen Rothwell (1):
powerpc: use consistent types in mktree
Stoyan Gaydarov (1):
powerpc: ARRAY_SIZE changes in pasemi and powermac code
roel kluin (3):
powerpc/cell: Replace strncpy by strlcpy
powerpc: Missing tests for NULL after ioremap()
powerpc/macio: Don't the address of an array element before boundchecking
^ permalink raw reply
* Re: The infamous ppc_spurious_interrupt
From: Anton Blanchard @ 2009-08-13 9:39 UTC (permalink / raw)
To: Leonardo Chiquitto; +Cc: linuxppc-dev
In-Reply-To: <c2d0b6ec0908121240v60446ebdjc9dc35fe1b5b544e@mail.gmail.com>
Hi,
> I'm trying to understand the rationale behind "ppc_spurious_interrupts"
> without luck so far. I'm seeing the BAD interrupt counter incrementing with
> kernels of different ages (2.6.5, 2.6.16, 2.6.27) and on different hardware
> (IBM P5 and P6 64 bit, Apple PPC 32 bit).
On IBM POWER5 and POWER6 systems there are cases where an interrupt will
be presented to the partition but the hypervisor will handle it and
return NO_IRQ.
...
> If the "bad interrupts" are harmless (I suppose they are), why are we counting
> them and displaying the counter as BAD in /proc/interrupts?
Considering these interrupts are expected (at least on IBM platforms), I
agree it is a bit dramatic to call them BAD. Unfortunately it's been that way
forever and changing /proc/interrupts will more than likely break some tools.
Anton
^ permalink raw reply
* [PATCH] Remove SMP warning from PowerMac cpufreq
From: Bastian Blank @ 2009-08-13 9:30 UTC (permalink / raw)
To: Benjamin Herrenschmidt; +Cc: linuxppc-dev, linux-kernel
In-Reply-To: <1250144098.3587.111.camel@pasglop>
On Thu, Aug 13, 2009 at 04:14:58PM +1000, Benjamin Herrenschmidt wrote:
> On Tue, 2009-08-11 at 11:39 +0200, Bastian Blank wrote:
> > This patch just disables this driver on SMP kernels, as it is obviously
> > not supported.
> Why not remove the #error instead ? :-) I don't think it's still
> meaningful, especially since we use the timebase for delays nowadays
> which doesn't depend on the CPU frequency...
Your call. Take this one:
The build of a PowerMac 32bit kernel currently fails with
error: #warning "WARNING, CPUFREQ not recommended on SMP kernels"
Thie patch removes the not longer applicable SMP warning from the
PowerMac cpufreq code.
Signed-off-by: Bastian Blank <waldi@debian.org>
diff --git a/arch/powerpc/platforms/powermac/cpufreq_32.c b/arch/powerpc/platforms/powermac/cpufreq_32.c
index 65c585b..08d94e4 100644
--- a/arch/powerpc/platforms/powermac/cpufreq_32.c
+++ b/arch/powerpc/platforms/powermac/cpufreq_32.c
@@ -44,14 +44,6 @@
*/
#undef DEBUG_FREQ
-/*
- * There is a problem with the core cpufreq code on SMP kernels,
- * it won't recalculate the Bogomips properly
- */
-#ifdef CONFIG_SMP
-#warning "WARNING, CPUFREQ not recommended on SMP kernels"
-#endif
-
extern void low_choose_7447a_dfs(int dfs);
extern void low_choose_750fx_pll(int pll);
extern void low_sleep_handler(void);
--
Those who hate and fight must stop themselves -- otherwise it is not stopped.
-- Spock, "Day of the Dove", stardate unknown
^ permalink raw reply related
* Re: Using dmatest driver with FSL DMA engine
From: Felix Radensky @ 2009-08-13 9:06 UTC (permalink / raw)
To: linuxppc-dev, leoli, zw
In-Reply-To: <4A83C6DC.8090405@embedded-sol.com>
Felix Radensky wrote:
> Hi,
>
> I'm trying to use dmatest driver on MPC8536DS running linux 2.6.31-rc5.
> The loading of driver fails, as it is unable to allocate DMA channel.
> Is this driver supposed to work with FSL DMA engine ?
>
I should have disabled "TCP receive copy offload" DMA client.
dmatest works now as expected. Sorry for the noise.
Felix.
^ permalink raw reply
* Using dmatest driver with FSL DMA engine
From: Felix Radensky @ 2009-08-13 7:55 UTC (permalink / raw)
To: linuxppc-dev, leoli, zw
Hi,
I'm trying to use dmatest driver on MPC8536DS running linux 2.6.31-rc5.
The loading of driver fails, as it is unable to allocate DMA channel.
Is this driver supposed to work with FSL DMA engine ?
Thanks.
Felix.
^ permalink raw reply
* RE: ARM clock API to PowerPC
From: Li Yang-R58472 @ 2009-08-13 8:59 UTC (permalink / raw)
To: Benjamin Herrenschmidt, Kumar Gala
Cc: John Jacques, linuxppc-dev list, devicetree-discuss, Torez Smith,
Russell King
In-Reply-To: <1250112599.3587.21.camel@pasglop>
>Now, I know there is at least one person on earth=20
>contemplating sharing some drivers between PPC and ARM. I=20
>won't tell much more at this stage, but it makes sense in the=20
>grand scheme of things to see SoC vendors put similar IO cores=20
>into either PPC or ARM and providing that clock API is a good=20
>way to also allow these drivers to work since the drivers in=20
>questions make use of it.
Freescale USB UDC driver is another example that shared between PowerPC
and ARM(i.mx). Currently, the imx part of the driver uses clk API, but
PowerPC part uses static initialization. It will be better if we can
unify the clk setting part of the driver.
- Leo
^ permalink raw reply
* Re: [PATCH -v2 0/7] powerpc: use asm-generic/dma-mapping-common.h
From: Ingo Molnar @ 2009-08-13 8:55 UTC (permalink / raw)
To: Benjamin Herrenschmidt; +Cc: FUJITA Tomonori, linuxppc-dev, linux-kernel, galak
In-Reply-To: <1250150981.3587.157.camel@pasglop>
* Benjamin Herrenschmidt <benh@kernel.crashing.org> wrote:
>
> > Ben, what's your preference? I waited for your reaction with these
> > bits, i.e. they are not in tip:core/iommu yet.
>
> Oh I though they were... discard my previous private mail about
> missing Ack's then :-)
>
> I'll review them more in depth hopefully tomorrow but they look
> good.
Sure - take your time.
> > One variant would be what Fujita suggested: you could pull
> > core/iommu as a basis (it's a well-tested, problem-free tree at
> > the moment, with no big risky items), and then pull/apply the
> > powerpc specific bits from Fujita.
>
> Or we can have the patches in core/iommu and I pull the whole
> thing in powerpc-next. [...]
Ok! We could also stage it a bit (one or two weeks) in a separate
branch and allow a rebase, should you find any bugs during testing?
Ingo
^ permalink raw reply
* Re: [PATCH -v2 0/7] powerpc: use asm-generic/dma-mapping-common.h
From: Ingo Molnar @ 2009-08-13 7:41 UTC (permalink / raw)
To: FUJITA Tomonori; +Cc: linuxppc-dev, linux-kernel, galak
In-Reply-To: <20090813160625B.fujita.tomonori@lab.ntt.co.jp>
* FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> wrote:
> On Thu, 13 Aug 2009 15:48:42 +1000
> Benjamin Herrenschmidt <benh@kernel.crashing.org> wrote:
>
> > On Wed, 2009-08-05 at 14:08 +0900, FUJITA Tomonori wrote:
> >
> > > The above swiotlb patchset was merged in -tip so I think that merging
> > > this patchset via -tip too is the easiest way to handle this patchset.
> > >
> > > The patchset also is available via a git tree:
> > >
> > > git://git.kernel.org/pub/scm/linux/kernel/git/tomo/linux-2.6-misc.git powerpc
> >
> > Hi !
> >
> > While I generally agree here with the patches, I'm not sure it should be
> > merged via -tip since it mostly touches arch/powerpc files (and I need
> > to review it a bit more carefully, hopefully you'll have Ack's hitting
> > your mailbox later today).
>
> Thanks!
>
> This patchset depends on my swiotlb cleanup patchset:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/tomo/linux-2.6-misc.git swiotlb
>
> http://marc.info/?l=linux-ia64&m=124718816520156&w=2
>
> My swiotlb cleanup patchset has been in -tip. It might be easier
> to merge both the swiotlb patchset and this patchset in powerpc
> tree?
Ben, what's your preference? I waited for your reaction with these
bits, i.e. they are not in tip:core/iommu yet.
One variant would be what Fujita suggested: you could pull
core/iommu as a basis (it's a well-tested, problem-free tree at the
moment, with no big risky items), and then pull/apply the powerpc
specific bits from Fujita.
A second variant would be that we could pull these bits into
core/iommu ... albeit you are right that the PowerPC tree is much
better at testing PowerPC patches.
A third variant would be to wait with these bits until the swiotlb
bits in core/iommu hit upstream. This would increase patch latency.
Any of these variants is good to me. What Fujita suggests seems to
be the best to me: #1 gets us the most testing and the lowest
latency - at the cost of tree dependency. We wont rebase core/iommu.
[ We've got three good tree properties: "tree independence",
"good testing", "low patch latency", but we cannot have all
three at once, we must pick two of them ;-) ]
Ingo
^ permalink raw reply
* Re: [PATCH 3/3] agp/uninorth: Unify U3 and pre-U3 insert_memory and remove_memory hooks.
From: Michel Dänzer @ 2009-08-13 8:15 UTC (permalink / raw)
To: Benjamin Herrenschmidt; +Cc: Dave Airlie, linuxppc-dev
In-Reply-To: <1250147148.3587.115.camel@pasglop>
[-- Attachment #1: Type: text/plain, Size: 1134 bytes --]
On Thu, 2009-08-13 at 17:05 +1000, Benjamin Herrenschmidt wrote:
> On Tue, 2009-08-04 at 23:51 +0200, Michel Dänzer wrote:
> > From: Michel Dänzer <daenzer@vmware.com>
> >
> > Signed-off-by: Michel Dänzer <daenzer@vmware.com>
> > ---
>
> Hi Michel !
>
> While your two previous patches apply just fine, this one doesn't,
> the uninorth_insert_memory() function seems to be slightly different
> upstream. Does this depend on some separate yet unapplied patches ?
I previously sent the attached patches to Dave in the course of the
radeon KMS issues thread. Not sure which of these he's picked up yet, if
any.
> I'm putting 1/3 and 2/3 into my -test branch and they should hit my
> -next branch in a couple of days.
>
> Or do you prefer us to merge that via Dave ?
>
> The thing is, stuff in -powerpc is much more likely to get some amount
> of testing on actual ppc hardware than stuff in random other trees :-)
I'm fine with either way.
--
Earthling Michel Dänzer | http://www.vmware.com
Libre software enthusiast | Debian, X and DRI developer
[-- Attachment #2: 0001-uninorth-Handle-user-memory-types.patch --]
[-- Type: text/x-patch, Size: 1771 bytes --]
From b73acc1a48cbea4d9ba9caa41451b38223bed516 Mon Sep 17 00:00:00 2001
From: =?utf-8?q?Michel=20D=C3=A4nzer?= <daenzer@vmware.com>
Date: Thu, 13 Aug 2009 08:42:36 +0200
Subject: [PATCH] uninorth: Handle user memory types.
Signed-off-by: Michel Dänzer <daenzer@vmware.com>
---
drivers/char/agp/uninorth-agp.c | 18 ++++++++++++++++--
1 files changed, 16 insertions(+), 2 deletions(-)
diff --git a/drivers/char/agp/uninorth-agp.c b/drivers/char/agp/uninorth-agp.c
index 03f95ec..880d3f6 100644
--- a/drivers/char/agp/uninorth-agp.c
+++ b/drivers/char/agp/uninorth-agp.c
@@ -146,13 +146,20 @@ static int uninorth_insert_memory(struct agp_memory *mem, off_t pg_start,
{
int i, j, num_entries;
void *temp;
+ int mask_type;
temp = agp_bridge->current_size;
num_entries = A_SIZE_32(temp)->num_entries;
- if (type != 0 || mem->type != 0)
+ if (type != mem->type)
+ return -EINVAL;
+
+ mask_type = agp_bridge->driver->agp_type_to_mask_type(agp_bridge, type);
+ if (mask_type != 0) {
/* We know nothing of memory types */
return -EINVAL;
+ }
+
if ((pg_start + mem->page_count) > num_entries)
return -EINVAL;
@@ -184,13 +191,20 @@ static int u3_insert_memory(struct agp_memory *mem, off_t pg_start, int type)
int i, num_entries;
void *temp;
u32 *gp;
+ int mask_type;
temp = agp_bridge->current_size;
num_entries = A_SIZE_32(temp)->num_entries;
- if (type != 0 || mem->type != 0)
+ if (type != mem->type)
+ return -EINVAL;
+
+ mask_type = agp_bridge->driver->agp_type_to_mask_type(agp_bridge, type);
+ if (mask_type != 0) {
/* We know nothing of memory types */
return -EINVAL;
+ }
+
if ((pg_start + mem->page_count) > num_entries)
return -EINVAL;
--
1.6.3.3
[-- Attachment #3: 0002-uninorth-Also-handle-user-memory-types-in-u3_remove_.patch --]
[-- Type: text/x-patch, Size: 2507 bytes --]
From 0e4f25a616fdb5136372ab0523a43af39ff7fcd6 Mon Sep 17 00:00:00 2001
From: =?utf-8?q?Michel=20D=C3=A4nzer?= <daenzer@vmware.com>
Date: Thu, 13 Aug 2009 08:42:38 +0200
Subject: [PATCH] uninorth: Also handle user memory types in u3_remove_memory().
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
Also short-circuit empty updates.
Signed-off-by: Michel Dänzer <daenzer@vmware.com>
---
drivers/char/agp/uninorth-agp.c | 29 ++++++++++++++++++++++-------
1 files changed, 22 insertions(+), 7 deletions(-)
diff --git a/drivers/char/agp/uninorth-agp.c b/drivers/char/agp/uninorth-agp.c
index 880d3f6..cd63d76 100644
--- a/drivers/char/agp/uninorth-agp.c
+++ b/drivers/char/agp/uninorth-agp.c
@@ -148,9 +148,6 @@ static int uninorth_insert_memory(struct agp_memory *mem, off_t pg_start,
void *temp;
int mask_type;
- temp = agp_bridge->current_size;
- num_entries = A_SIZE_32(temp)->num_entries;
-
if (type != mem->type)
return -EINVAL;
@@ -160,6 +157,12 @@ static int uninorth_insert_memory(struct agp_memory *mem, off_t pg_start,
return -EINVAL;
}
+ if (mem->page_count == 0)
+ return 0;
+
+ temp = agp_bridge->current_size;
+ num_entries = A_SIZE_32(temp)->num_entries;
+
if ((pg_start + mem->page_count) > num_entries)
return -EINVAL;
@@ -193,9 +196,6 @@ static int u3_insert_memory(struct agp_memory *mem, off_t pg_start, int type)
u32 *gp;
int mask_type;
- temp = agp_bridge->current_size;
- num_entries = A_SIZE_32(temp)->num_entries;
-
if (type != mem->type)
return -EINVAL;
@@ -205,6 +205,12 @@ static int u3_insert_memory(struct agp_memory *mem, off_t pg_start, int type)
return -EINVAL;
}
+ if (mem->page_count == 0)
+ return 0;
+
+ temp = agp_bridge->current_size;
+ num_entries = A_SIZE_32(temp)->num_entries;
+
if ((pg_start + mem->page_count) > num_entries)
return -EINVAL;
@@ -234,10 +240,19 @@ int u3_remove_memory(struct agp_memory *mem, off_t pg_start, int type)
{
size_t i;
u32 *gp;
+ int mask_type;
+
+ if (type != mem->type)
+ return -EINVAL;
- if (type != 0 || mem->type != 0)
+ mask_type = agp_bridge->driver->agp_type_to_mask_type(agp_bridge, type);
+ if (mask_type != 0) {
/* We know nothing of memory types */
return -EINVAL;
+ }
+
+ if (mem->page_count == 0)
+ return 0;
gp = (u32 *) &agp_bridge->gatt_table[pg_start];
for (i = 0; i < mem->page_count; ++i)
--
1.6.3.3
^ permalink raw reply related
* Re: [PATCH -v2 0/7] powerpc: use asm-generic/dma-mapping-common.h
From: Takashi Iwai @ 2009-08-13 8:11 UTC (permalink / raw)
To: Benjamin Herrenschmidt; +Cc: linux-kernel, FUJITA Tomonori, mingo, linuxppc-dev
In-Reply-To: <1250150877.3587.155.camel@pasglop>
At Thu, 13 Aug 2009 18:07:57 +1000,
Benjamin Herrenschmidt wrote:
>
> On Thu, 2009-08-13 at 09:11 +0200, Takashi Iwai wrote:
> > I'm willing to rebase my patches to the generic dma_ops, so feel free
> > to pull it first.
>
> I think I'll end up pulling Ingo's iommu branch into powerpc-next to
> get Fujita stuff, so if you rebase on top of his stuff, it will come
> along just fine.
OK, I'll work on it later.
thanks,
Takashi
^ permalink raw reply
* Re: [PATCH -v2 0/7] powerpc: use asm-generic/dma-mapping-common.h
From: Benjamin Herrenschmidt @ 2009-08-13 8:09 UTC (permalink / raw)
To: Ingo Molnar; +Cc: FUJITA Tomonori, linuxppc-dev, linux-kernel, galak
In-Reply-To: <20090813074131.GH12143@elte.hu>
> Ben, what's your preference? I waited for your reaction with these
> bits, i.e. they are not in tip:core/iommu yet.
Oh I though they were... discard my previous private mail about
missing Ack's then :-)
I'll review them more in depth hopefully tomorrow but they look good.
> One variant would be what Fujita suggested: you could pull
> core/iommu as a basis (it's a well-tested, problem-free tree at the
> moment, with no big risky items), and then pull/apply the powerpc
> specific bits from Fujita.
Or we can have the patches in core/iommu and I pull the whole thing
in powerpc-next. My main concern isn't which tree they go through but
that they are in powerpc-next for better testing.
Cheers,
Ben.
> A second variant would be that we could pull these bits into
> core/iommu ... albeit you are right that the PowerPC tree is much
> better at testing PowerPC patches.
>
> A third variant would be to wait with these bits until the swiotlb
> bits in core/iommu hit upstream. This would increase patch latency.
>
> Any of these variants is good to me. What Fujita suggests seems to
> be the best to me: #1 gets us the most testing and the lowest
> latency - at the cost of tree dependency. We wont rebase core/iommu.
>
> [ We've got three good tree properties: "tree independence",
> "good testing", "low patch latency", but we cannot have all
> three at once, we must pick two of them ;-) ]
>
> Ingo
^ permalink raw reply
* Re: [PATCH -v2 0/7] powerpc: use asm-generic/dma-mapping-common.h
From: Benjamin Herrenschmidt @ 2009-08-13 8:07 UTC (permalink / raw)
To: Takashi Iwai; +Cc: linux-kernel, FUJITA Tomonori, mingo, linuxppc-dev
In-Reply-To: <s5h4osc429m.wl%tiwai@suse.de>
On Thu, 2009-08-13 at 09:11 +0200, Takashi Iwai wrote:
> I'm willing to rebase my patches to the generic dma_ops, so feel free
> to pull it first.
I think I'll end up pulling Ingo's iommu branch into powerpc-next to
get Fujita stuff, so if you rebase on top of his stuff, it will come
along just fine.
> It might need to add mmap_coherent op to all platforms when generic
> dma ops is used. This would be more volume but less hackish than the
> previous version, OTOH :)
>
Right :-)
Cheers,
Ben.
^ permalink raw reply
* Re: [PATCH v2] Mechanism to enable use Generic NVRAM driver for different size chips
From: Benjamin Herrenschmidt @ 2009-08-13 8:05 UTC (permalink / raw)
To: Martyn Welch; +Cc: linuxppc-dev
In-Reply-To: <20090813075753.29726.28454.stgit@ES-J7S4D2J.amer.consind.ge.com>
On Thu, 2009-08-13 at 09:03 +0100, Martyn Welch wrote:
> Remove the reliance on a staticly defined NVRAM size, allowing platforms to support NVRAMs with sizes differing from the standard. A fall back value is provided for platforms not supporting this extension.
>
> Signed-off-by: Martyn Welch <martyn.welch@gefanuc.com>
> ---
>
> Ben: Is this a suitable solution?
Yup. I'll have a closer look tomorrow. Thanks.
Cheers,
Ben.
> v2: rename nvram_size() to nvram_get_size(), thus avoiding the collision with the global
> variables in arch/powerpc/platforms/pseries/nvram.c and
> arch/powerpc/platforms/chrp/nvram.c of the same name.
>
> arch/powerpc/include/asm/nvram.h | 3 +++
> arch/powerpc/kernel/setup_32.c | 8 ++++++++
> drivers/char/generic_nvram.c | 27 ++++++++++++++++++++-------
> 3 files changed, 31 insertions(+), 7 deletions(-)
>
> diff --git a/arch/powerpc/include/asm/nvram.h b/arch/powerpc/include/asm/nvram.h
> index efde5ac..6c587ed 100644
> --- a/arch/powerpc/include/asm/nvram.h
> +++ b/arch/powerpc/include/asm/nvram.h
> @@ -107,6 +107,9 @@ extern void pmac_xpram_write(int xpaddr, u8 data);
> /* Synchronize NVRAM */
> extern void nvram_sync(void);
>
> +/* Determine NVRAM size */
> +extern ssize_t nvram_get_size(void);
> +
> /* Normal access to NVRAM */
> extern unsigned char nvram_read_byte(int i);
> extern void nvram_write_byte(unsigned char c, int i);
> diff --git a/arch/powerpc/kernel/setup_32.c b/arch/powerpc/kernel/setup_32.c
> index e1e3059..53bcf3d 100644
> --- a/arch/powerpc/kernel/setup_32.c
> +++ b/arch/powerpc/kernel/setup_32.c
> @@ -210,6 +210,14 @@ void nvram_write_byte(unsigned char val, int addr)
> }
> EXPORT_SYMBOL(nvram_write_byte);
>
> +ssize_t nvram_get_size(void)
> +{
> + if (ppc_md.nvram_size)
> + return ppc_md.nvram_size();
> + return -1;
> +}
> +EXPORT_SYMBOL(nvram_get_size);
> +
> void nvram_sync(void)
> {
> if (ppc_md.nvram_sync)
> diff --git a/drivers/char/generic_nvram.c b/drivers/char/generic_nvram.c
> index a00869c..ef31738 100644
> --- a/drivers/char/generic_nvram.c
> +++ b/drivers/char/generic_nvram.c
> @@ -2,7 +2,7 @@
> * Generic /dev/nvram driver for architectures providing some
> * "generic" hooks, that is :
> *
> - * nvram_read_byte, nvram_write_byte, nvram_sync
> + * nvram_read_byte, nvram_write_byte, nvram_sync, nvram_get_size
> *
> * Note that an additional hook is supported for PowerMac only
> * for getting the nvram "partition" informations
> @@ -28,6 +28,8 @@
>
> #define NVRAM_SIZE 8192
>
> +static ssize_t nvram_len;
> +
> static loff_t nvram_llseek(struct file *file, loff_t offset, int origin)
> {
> lock_kernel();
> @@ -36,7 +38,7 @@ static loff_t nvram_llseek(struct file *file, loff_t offset, int origin)
> offset += file->f_pos;
> break;
> case 2:
> - offset += NVRAM_SIZE;
> + offset += nvram_len;
> break;
> }
> if (offset < 0) {
> @@ -56,9 +58,9 @@ static ssize_t read_nvram(struct file *file, char __user *buf,
>
> if (!access_ok(VERIFY_WRITE, buf, count))
> return -EFAULT;
> - if (*ppos >= NVRAM_SIZE)
> + if (*ppos >= nvram_len)
> return 0;
> - for (i = *ppos; count > 0 && i < NVRAM_SIZE; ++i, ++p, --count)
> + for (i = *ppos; count > 0 && i < nvram_len; ++i, ++p, --count)
> if (__put_user(nvram_read_byte(i), p))
> return -EFAULT;
> *ppos = i;
> @@ -74,9 +76,9 @@ static ssize_t write_nvram(struct file *file, const char __user *buf,
>
> if (!access_ok(VERIFY_READ, buf, count))
> return -EFAULT;
> - if (*ppos >= NVRAM_SIZE)
> + if (*ppos >= nvram_len)
> return 0;
> - for (i = *ppos; count > 0 && i < NVRAM_SIZE; ++i, ++p, --count) {
> + for (i = *ppos; count > 0 && i < nvram_len; ++i, ++p, --count) {
> if (__get_user(c, p))
> return -EFAULT;
> nvram_write_byte(c, i);
> @@ -133,9 +135,20 @@ static struct miscdevice nvram_dev = {
>
> int __init nvram_init(void)
> {
> + int ret = 0;
> +
> printk(KERN_INFO "Generic non-volatile memory driver v%s\n",
> NVRAM_VERSION);
> - return misc_register(&nvram_dev);
> + ret = misc_register(&nvram_dev);
> + if (ret != 0)
> + goto out;
> +
> + nvram_len = nvram_get_size();
> + if (nvram_len < 0)
> + nvram_len = NVRAM_SIZE;
> +
> +out:
> + return ret;
> }
>
> void __exit nvram_cleanup(void)
^ permalink raw reply
* [PATCH v2] Mechanism to enable use Generic NVRAM driver for different size chips
From: Martyn Welch @ 2009-08-13 8:03 UTC (permalink / raw)
To: benh; +Cc: linuxppc-dev
In-Reply-To: <1250147730.3587.120.camel@pasglop>
Remove the reliance on a staticly defined NVRAM size, allowing platforms to support NVRAMs with sizes differing from the standard. A fall back value is provided for platforms not supporting this extension.
Signed-off-by: Martyn Welch <martyn.welch@gefanuc.com>
---
Ben: Is this a suitable solution?
v2: rename nvram_size() to nvram_get_size(), thus avoiding the collision with the global
variables in arch/powerpc/platforms/pseries/nvram.c and
arch/powerpc/platforms/chrp/nvram.c of the same name.
arch/powerpc/include/asm/nvram.h | 3 +++
arch/powerpc/kernel/setup_32.c | 8 ++++++++
drivers/char/generic_nvram.c | 27 ++++++++++++++++++++-------
3 files changed, 31 insertions(+), 7 deletions(-)
diff --git a/arch/powerpc/include/asm/nvram.h b/arch/powerpc/include/asm/nvram.h
index efde5ac..6c587ed 100644
--- a/arch/powerpc/include/asm/nvram.h
+++ b/arch/powerpc/include/asm/nvram.h
@@ -107,6 +107,9 @@ extern void pmac_xpram_write(int xpaddr, u8 data);
/* Synchronize NVRAM */
extern void nvram_sync(void);
+/* Determine NVRAM size */
+extern ssize_t nvram_get_size(void);
+
/* Normal access to NVRAM */
extern unsigned char nvram_read_byte(int i);
extern void nvram_write_byte(unsigned char c, int i);
diff --git a/arch/powerpc/kernel/setup_32.c b/arch/powerpc/kernel/setup_32.c
index e1e3059..53bcf3d 100644
--- a/arch/powerpc/kernel/setup_32.c
+++ b/arch/powerpc/kernel/setup_32.c
@@ -210,6 +210,14 @@ void nvram_write_byte(unsigned char val, int addr)
}
EXPORT_SYMBOL(nvram_write_byte);
+ssize_t nvram_get_size(void)
+{
+ if (ppc_md.nvram_size)
+ return ppc_md.nvram_size();
+ return -1;
+}
+EXPORT_SYMBOL(nvram_get_size);
+
void nvram_sync(void)
{
if (ppc_md.nvram_sync)
diff --git a/drivers/char/generic_nvram.c b/drivers/char/generic_nvram.c
index a00869c..ef31738 100644
--- a/drivers/char/generic_nvram.c
+++ b/drivers/char/generic_nvram.c
@@ -2,7 +2,7 @@
* Generic /dev/nvram driver for architectures providing some
* "generic" hooks, that is :
*
- * nvram_read_byte, nvram_write_byte, nvram_sync
+ * nvram_read_byte, nvram_write_byte, nvram_sync, nvram_get_size
*
* Note that an additional hook is supported for PowerMac only
* for getting the nvram "partition" informations
@@ -28,6 +28,8 @@
#define NVRAM_SIZE 8192
+static ssize_t nvram_len;
+
static loff_t nvram_llseek(struct file *file, loff_t offset, int origin)
{
lock_kernel();
@@ -36,7 +38,7 @@ static loff_t nvram_llseek(struct file *file, loff_t offset, int origin)
offset += file->f_pos;
break;
case 2:
- offset += NVRAM_SIZE;
+ offset += nvram_len;
break;
}
if (offset < 0) {
@@ -56,9 +58,9 @@ static ssize_t read_nvram(struct file *file, char __user *buf,
if (!access_ok(VERIFY_WRITE, buf, count))
return -EFAULT;
- if (*ppos >= NVRAM_SIZE)
+ if (*ppos >= nvram_len)
return 0;
- for (i = *ppos; count > 0 && i < NVRAM_SIZE; ++i, ++p, --count)
+ for (i = *ppos; count > 0 && i < nvram_len; ++i, ++p, --count)
if (__put_user(nvram_read_byte(i), p))
return -EFAULT;
*ppos = i;
@@ -74,9 +76,9 @@ static ssize_t write_nvram(struct file *file, const char __user *buf,
if (!access_ok(VERIFY_READ, buf, count))
return -EFAULT;
- if (*ppos >= NVRAM_SIZE)
+ if (*ppos >= nvram_len)
return 0;
- for (i = *ppos; count > 0 && i < NVRAM_SIZE; ++i, ++p, --count) {
+ for (i = *ppos; count > 0 && i < nvram_len; ++i, ++p, --count) {
if (__get_user(c, p))
return -EFAULT;
nvram_write_byte(c, i);
@@ -133,9 +135,20 @@ static struct miscdevice nvram_dev = {
int __init nvram_init(void)
{
+ int ret = 0;
+
printk(KERN_INFO "Generic non-volatile memory driver v%s\n",
NVRAM_VERSION);
- return misc_register(&nvram_dev);
+ ret = misc_register(&nvram_dev);
+ if (ret != 0)
+ goto out;
+
+ nvram_len = nvram_get_size();
+ if (nvram_len < 0)
+ nvram_len = NVRAM_SIZE;
+
+out:
+ return ret;
}
void __exit nvram_cleanup(void)
^ permalink raw reply related
* Re: [PATCH -v2 0/7] powerpc: use asm-generic/dma-mapping-common.h
From: Takashi Iwai @ 2009-08-13 7:11 UTC (permalink / raw)
To: Benjamin Herrenschmidt; +Cc: linux-kernel, FUJITA Tomonori, mingo, linuxppc-dev
In-Reply-To: <1250146313.3587.113.camel@pasglop>
At Thu, 13 Aug 2009 16:51:53 +1000,
Benjamin Herrenschmidt wrote:
>
> On Thu, 2009-08-13 at 16:44 +1000, Benjamin Herrenschmidt wrote:
> > On Wed, 2009-08-05 at 14:08 +0900, FUJITA Tomonori wrote:
> >
> > > The above swiotlb patchset was merged in -tip so I think that merging
> > > this patchset via -tip too is the easiest way to handle this patchset.
> > >
> > > The patchset also is available via a git tree:
> > >
> > > git://git.kernel.org/pub/scm/linux/kernel/git/tomo/linux-2.6-misc.git powerpc
> >
> > Hi !
> >
> > While I generally agree here with the patches, I'm not sure it should be
> > merged via -tip since it mostly touches arch/powerpc files (and I need
> > to review it a bit more carefully, hopefully you'll have Ack's hitting
> > your mailbox later today).
>
> Maybe best is that I pull your series too. Note that your patch clashes
> with Takashi's addition of dma_mmap_coherent() :
>
> http://patchwork.ozlabs.org/patch/29595/
>
> Can you sort that out with Takashi as I'd like his patch in -next soon
> too.
I'm willing to rebase my patches to the generic dma_ops, so feel free
to pull it first.
It might need to add mmap_coherent op to all platforms when generic
dma ops is used. This would be more volume but less hackish than the
previous version, OTOH :)
thanks,
Takashi
^ permalink raw reply
* Re: [PATCH 2/5] Mechanism to enable use Generic NVRAM driver for different size chips
From: Benjamin Herrenschmidt @ 2009-08-13 7:15 UTC (permalink / raw)
To: Martyn Welch; +Cc: linuxppc-dev
In-Reply-To: <20090702161224.31202.65236.stgit@ES-J7S4D2J.amer.consind.ge.com>
On Thu, 2009-07-02 at 17:12 +0100, Martyn Welch wrote:
> Remove the reliance on a staticly defined NVRAM size, allowing platforms to support NVRAMs with sizes differing from the standard. A fall back value is provided for platforms not supporting this extension.
>
> Signed-off-by: Martyn Welch <martyn.welch@gefanuc.com>
I was about to stick 1/5 and 2/5 in -test (on the way to -next) but
I hit this when building 64-bit kernels:
/home/benh/linux-powerpc-test/arch/powerpc/platforms/pseries/nvram.c:26: error: ‘nvram_size’ redeclared as different kind of symbol
/home/benh/linux-powerpc-test/arch/powerpc/include/asm/nvram.h:111: error: previous declaration of ‘nvram_size’ was here
make[3]: *** [arch/powerpc/platforms/pseries/nvram.o] Error 1
Looks trivial enough, can you respin the patch ?
Cheers,
Ben.
> ---
>
> arch/powerpc/include/asm/nvram.h | 3 +++
> arch/powerpc/kernel/setup_32.c | 8 ++++++++
> drivers/char/generic_nvram.c | 27 ++++++++++++++++++++-------
> 3 files changed, 31 insertions(+), 7 deletions(-)
>
> diff --git a/arch/powerpc/include/asm/nvram.h b/arch/powerpc/include/asm/nvram.h
> index efde5ac..71df8b2 100644
> --- a/arch/powerpc/include/asm/nvram.h
> +++ b/arch/powerpc/include/asm/nvram.h
> @@ -107,6 +107,9 @@ extern void pmac_xpram_write(int xpaddr, u8 data);
> /* Synchronize NVRAM */
> extern void nvram_sync(void);
>
> +/* Determine NVRAM size */
> +extern ssize_t nvram_size(void);
> +
> /* Normal access to NVRAM */
> extern unsigned char nvram_read_byte(int i);
> extern void nvram_write_byte(unsigned char c, int i);
> diff --git a/arch/powerpc/kernel/setup_32.c b/arch/powerpc/kernel/setup_32.c
> index 1d15424..28f7570 100644
> --- a/arch/powerpc/kernel/setup_32.c
> +++ b/arch/powerpc/kernel/setup_32.c
> @@ -208,6 +208,14 @@ void nvram_write_byte(unsigned char val, int addr)
> }
> EXPORT_SYMBOL(nvram_write_byte);
>
> +ssize_t nvram_size(void)
> +{
> + if (ppc_md.nvram_size)
> + return ppc_md.nvram_size();
> + return -1;
> +}
> +EXPORT_SYMBOL(nvram_size);
> +
> void nvram_sync(void)
> {
> if (ppc_md.nvram_sync)
> diff --git a/drivers/char/generic_nvram.c b/drivers/char/generic_nvram.c
> index a00869c..e5f71f3 100644
> --- a/drivers/char/generic_nvram.c
> +++ b/drivers/char/generic_nvram.c
> @@ -2,7 +2,7 @@
> * Generic /dev/nvram driver for architectures providing some
> * "generic" hooks, that is :
> *
> - * nvram_read_byte, nvram_write_byte, nvram_sync
> + * nvram_read_byte, nvram_write_byte, nvram_sync, nvram_size
> *
> * Note that an additional hook is supported for PowerMac only
> * for getting the nvram "partition" informations
> @@ -28,6 +28,8 @@
>
> #define NVRAM_SIZE 8192
>
> +static ssize_t nvram_len;
> +
> static loff_t nvram_llseek(struct file *file, loff_t offset, int origin)
> {
> lock_kernel();
> @@ -36,7 +38,7 @@ static loff_t nvram_llseek(struct file *file, loff_t offset, int origin)
> offset += file->f_pos;
> break;
> case 2:
> - offset += NVRAM_SIZE;
> + offset += nvram_len;
> break;
> }
> if (offset < 0) {
> @@ -56,9 +58,9 @@ static ssize_t read_nvram(struct file *file, char __user *buf,
>
> if (!access_ok(VERIFY_WRITE, buf, count))
> return -EFAULT;
> - if (*ppos >= NVRAM_SIZE)
> + if (*ppos >= nvram_len)
> return 0;
> - for (i = *ppos; count > 0 && i < NVRAM_SIZE; ++i, ++p, --count)
> + for (i = *ppos; count > 0 && i < nvram_len; ++i, ++p, --count)
> if (__put_user(nvram_read_byte(i), p))
> return -EFAULT;
> *ppos = i;
> @@ -74,9 +76,9 @@ static ssize_t write_nvram(struct file *file, const char __user *buf,
>
> if (!access_ok(VERIFY_READ, buf, count))
> return -EFAULT;
> - if (*ppos >= NVRAM_SIZE)
> + if (*ppos >= nvram_len)
> return 0;
> - for (i = *ppos; count > 0 && i < NVRAM_SIZE; ++i, ++p, --count) {
> + for (i = *ppos; count > 0 && i < nvram_len; ++i, ++p, --count) {
> if (__get_user(c, p))
> return -EFAULT;
> nvram_write_byte(c, i);
> @@ -133,9 +135,20 @@ static struct miscdevice nvram_dev = {
>
> int __init nvram_init(void)
> {
> + int ret = 0;
> +
> printk(KERN_INFO "Generic non-volatile memory driver v%s\n",
> NVRAM_VERSION);
> - return misc_register(&nvram_dev);
> + ret = misc_register(&nvram_dev);
> + if (ret != 0)
> + goto out;
> +
> + nvram_len = nvram_size();
> + if (nvram_len < 0)
> + nvram_len = NVRAM_SIZE;
> +
> +out:
> + return ret;
> }
>
> void __exit nvram_cleanup(void)
^ 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