* [PATCH/RFC] gianfar: Add support for byte queue limits.
From: Paul Gortmaker @ 2012-01-06 20:24 UTC (permalink / raw)
To: eric.dumazet, therbert; +Cc: netdev, linuxppc-dev, Paul Gortmaker
Add support for byte queue limits (BQL), based on the similar
modifications made to intel/igb/igb_main.c from Eric Dumazet
in commit bdbc063129e811264cd6c311d8c2d9b95de01231.
A local variable for tx_queue->qindex was introduced in
gfar_clean_tx_ring, since it is now used often enough to warrant it,
and it cleans up the readability somewhat as well.
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
---
[Too late for 3.3, but I figured I might as well get feedback from people
in the interim. Passes basic boot test with NFS root on sbc8548 board.]
diff --git a/drivers/net/ethernet/freescale/gianfar.c b/drivers/net/ethernet/freescale/gianfar.c
index e01cdaa..7d86d38 100644
--- a/drivers/net/ethernet/freescale/gianfar.c
+++ b/drivers/net/ethernet/freescale/gianfar.c
@@ -1755,9 +1755,12 @@ static void free_skb_resources(struct gfar_private *priv)
/* Go through all the buffer descriptors and free their data buffers */
for (i = 0; i < priv->num_tx_queues; i++) {
+ struct netdev_queue *txq;
tx_queue = priv->tx_queue[i];
+ txq = netdev_get_tx_queue(tx_queue->dev, tx_queue->qindex);
if(tx_queue->tx_skbuff)
free_skb_tx_queue(tx_queue);
+ netdev_tx_reset_queue(txq);
}
for (i = 0; i < priv->num_rx_queues; i++) {
@@ -2204,6 +2207,8 @@ static int gfar_start_xmit(struct sk_buff *skb, struct net_device *dev)
lstatus |= BD_LFLAG(TXBD_CRC | TXBD_READY) | skb_headlen(skb);
}
+ netdev_tx_sent_queue(txq, skb->len);
+
/*
* We can work in parallel with gfar_clean_tx_ring(), except
* when modifying num_txbdfree. Note that we didn't grab the lock
@@ -2447,6 +2452,7 @@ static void gfar_align_skb(struct sk_buff *skb)
static int gfar_clean_tx_ring(struct gfar_priv_tx_q *tx_queue)
{
struct net_device *dev = tx_queue->dev;
+ struct netdev_queue *txq;
struct gfar_private *priv = netdev_priv(dev);
struct gfar_priv_rx_q *rx_queue = NULL;
struct txbd8 *bdp, *next = NULL;
@@ -2458,10 +2464,13 @@ static int gfar_clean_tx_ring(struct gfar_priv_tx_q *tx_queue)
int frags = 0, nr_txbds = 0;
int i;
int howmany = 0;
+ int tqi = tx_queue->qindex;
+ unsigned int bytes_sent = 0;
u32 lstatus;
size_t buflen;
- rx_queue = priv->rx_queue[tx_queue->qindex];
+ rx_queue = priv->rx_queue[tqi];
+ txq = netdev_get_tx_queue(dev, tqi);
bdp = tx_queue->dirty_tx;
skb_dirtytx = tx_queue->skb_dirtytx;
@@ -2519,6 +2528,8 @@ static int gfar_clean_tx_ring(struct gfar_priv_tx_q *tx_queue)
bdp = next_txbd(bdp, base, tx_ring_size);
}
+ bytes_sent += skb->len;
+
/*
* If there's room in the queue (limit it to rx_buffer_size)
* we add this skb back into the pool, if it's the right size
@@ -2543,13 +2554,15 @@ static int gfar_clean_tx_ring(struct gfar_priv_tx_q *tx_queue)
}
/* If we freed a buffer, we can restart transmission, if necessary */
- if (__netif_subqueue_stopped(dev, tx_queue->qindex) && tx_queue->num_txbdfree)
- netif_wake_subqueue(dev, tx_queue->qindex);
+ if (__netif_subqueue_stopped(dev, tqi) && tx_queue->num_txbdfree)
+ netif_wake_subqueue(dev, tqi);
/* Update dirty indicators */
tx_queue->skb_dirtytx = skb_dirtytx;
tx_queue->dirty_tx = bdp;
+ netdev_tx_completed_queue(txq, howmany, bytes_sent);
+
return howmany;
}
--
1.7.4.4
^ permalink raw reply related
* Re: Problem with full speed devices on PowerPC MPC5121 host port
From: Alan Stern @ 2012-01-06 18:03 UTC (permalink / raw)
To: Matthias Fuchs; +Cc: Greg KH, linux-usb, linuxppc-dev
In-Reply-To: <4F06E132.5070905@esd.eu>
On Fri, 6 Jan 2012, Matthias Fuchs wrote:
> For my eyes it does not really look like a general USB issue.
> It looks like a problem with the Freescale EHCI implementation that is
> influenced by high interrupt or internal bus load caused by the flood ping.
Indeed, it might be a problem with the built-in Transaction Translator.
That would explain why it affect full-speed devices.
However, I would expect the resetting the controller hardware (which
happens when you reload the ehci-fsl driver) would fix any such issues.
It's hard to imagine how a problem could survive a reset like that.
Alan Stern
^ permalink raw reply
* Re: Cannot wake-up from standby with MPC8313
From: Norbert van Bolhuis @ 2012-01-06 13:53 UTC (permalink / raw)
To: Scott Wood; +Cc: linuxppc-dev@ozlabs.org
In-Reply-To: <4F05EA6B.9040902@freescale.com>
On 01/05/12 19:22, Scott Wood wrote:
> On 01/05/2012 09:58 AM, Norbert van Bolhuis wrote:
>> thanks for your response.
>>
>> not setting MSR_POW gives same result.
>
> OK, so you're not getting an interrupt regardless of low-power state.
>
> Check whether the interrupt is getting masked during standby preparation.
>
> Does the interrupt handler run when you're not trying to enter standby?
>
The GPIO/UART interrupt nor the PMC interrupt are being masked during standby
preperation.
The GPIO/UART interrupt works fine in "operational" mode.
The PMC interrupt I do not know, is it possible to to get PMC interrupt
without going to standby or deep-sleep ?
In anyway there is no PMC interrupt for NAP mode (if kernel.powersave-nap=1).
>> if I set kernel.powersave-nap=1 it works fine,
>
> What is "it"? Do you mean that powersave-nap doesn't break things, or
> that standby works when you specify that?
>
I mean powersave-nap itself seems to work and does not break things.
>> so apparently NAP/DOZE mode does work (if CPU is idle). This saves almost no
>> power though. Standby mode saves about 300-500 mW.
>>
>> The problem could well be our board though, today I learned it does
>> work by connecting an (inactive) JTAG debugger.
>> Also, on another board it always works.
>
> You mean connecting a JTAG but not doing anything with it made
> wake-from-standby work?
>
> There was a bug like that on early revisions of the mpc8313erdb board --
> though in that case if you had a bad board the system would hang
> whenever you access any PMC register. I'm not sure what the mechanism
> of failure was; IIRC the fix was adding a resistor.
>
yes, connecting a JTAG but not doing anything with it makes
wake-from-standby work.
I don't know what's wrong with (some of) our boards... it looks
like external interrupts are blocked and/or core stays in reset..
I doubt there's a SW PMC race/deadlock that causes this.
---
NvBolhuis
^ permalink raw reply
* Re: [RFC PATCH 0/9] Remove useless on_each_cpu return value
From: Peter Zijlstra @ 2012-01-06 13:03 UTC (permalink / raw)
To: Gilad Ben-Yossef
Cc: linux-ia64, David Airlie, Will Deacon, dri-devel, Paul Mackerras,
H. Peter Anvin, Russell King, x86, Ingo Molnar,
Arnaldo Carvalho de Melo, Matt Turner, Fenghua Yu,
devicetree-discuss, Michal Nazarewicz, Ivan Kokshaysky,
Rob Herring, Thomas Gleixner, linux-arm-kernel, Richard Henderson,
Tony Luck, linux-kernel, linux-alpha, linuxppc-dev
In-Reply-To: <1325600353-10895-1-git-send-email-gilad@benyossef.com>
On Tue, 2012-01-03 at 16:19 +0200, Gilad Ben-Yossef wrote:
> on_each_cpu() returns as its own return value the return value of=20
> smp_call_function(). smp_call_function() in turn returns a hard=20
> coded value of zero.
>=20
> Some callers to on_each_cpu() waste cycles and bloat code space
> by checking the return value to on_each_cpu(), probably for=20
> historical reasons.
hysterical raisins,, yumm! :-)
> This patch set refactors callers to not test on_each_cpu()
> (fixed) return value and then refactors on_each_cpu to
> return void to avoid confusing future users.
>=20
Seems sane enough, fwiw:
Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
^ permalink raw reply
* Re: Problem with full speed devices on PowerPC MPC5121 host port
From: Matthias Fuchs @ 2012-01-06 11:55 UTC (permalink / raw)
To: Greg KH; +Cc: linuxppc-dev, linux-usb
In-Reply-To: <20111222173900.GD28856@kroah.com>
On 22.12.2011 18:39, Greg KH wrote:
> On Thu, Dec 22, 2011 at 12:48:45PM +0100, Matthias Fuchs wrote:
>> Hi,
>>
>> I ran into trouble when using the MPC5121 with full speed
>> USB devices. I've seen the issue with USB serial converters
>> based on FTDI and Prolific chips.
>>
>> After connecting the device they first work fine. But when
>> I stress the converter communications stalls. I can even force
>> this behavior when doing a flood ping against the device.
>> Then it only takes a few seconds until USB gets weird.
>>
>> After some time and several CTRL-C to stop the application
>> that uses the ttyUSBx port I get a kernel message:
>>
>> ftdi_sio ttyUSB0: error from flowcontrol urb
>>
>> The only thing that reanimates the USB port is doing a reboot.
>
> Not removing and inserting the device again? unloading the ftdi_sio
> driver and reloading it?
Right. First I used a monolithic kernel with ftdi_sio and ehci_hcd build
in. Now I did the test again with fsl_mph_dr_of, ehci_hcd, usbserial and
ftdi_sio loaded as modules. After the error occured, I
removed the device and unloaded the modules. After reloading them
USB is still weird.
usb 1-1: new full-speed USB device number 2 using fsl-ehci
usb 1-1: device descriptor read/64, error -110
usb 1-1: device descriptor read/64, error -110
usb 1-1: new full-speed USB device number 3 using fsl-ehci
usb 1-1: device descriptor read/64, error -110
> If you look at the data using usbmon, does anything look odd?
As long as everything works fine usbmon outputs data like this. It stops
a short time after I started the flood ping to the board.
df9c16c0 697164417 C Bi:1:002:1 0 2 = 0160
df9c16c0 697164436 S Bi:1:002:1 -115 512 <
df9c16c0 697165417 C Bi:1:002:1 0 2 = 0160
df9c16c0 697165441 S Bi:1:002:1 -115 512 <
df9c16c0 697166417 C Bi:1:002:1 0 2 = 0160
df9c16c0 697166435 S Bi:1:002:1 -115 512 <
df9c16c0 697167417 C Bi:1:002:1 0 9 = 01605f54 48452051 55
df9c16c0 697167450 S Bi:1:002:1 -115 512 <
df9c16c0 697168417 C Bi:1:002:1 0 14 = 01604943 4b204252 4f574e20 464f
df9c16c0 697168450 S Bi:1:002:1 -115 512 <
df9c16c0 697169420 C Bi:1:002:1 0 13 = 01605820 4a554d50 53204f56 45
df9c16c0 697169453 S Bi:1:002:1 -115 512 <
df9c16c0 697170418 C Bi:1:002:1 0 14 = 01605220 54484520 4c415a59 2044
df9c16c0 697170451 S Bi:1:002:1 -115 512 <
df9c16c0 697171417 C Bi:1:002:1 0 14 = 01604f47 20313233 34353637 3839
df9c16c0 697171450 S Bi:1:002:1 -115 512 <
Then I try to abort my application. This result in
df9c1340 712766944 S Co:1:002:0 s 40 02 0000 0000 0000 0
df9c1340 717776208 C Co:1:002:0 -2 0
df9c1340 717776503 S Co:1:002:0 s 40 01 0300 0000 0000 0
df9c1340 722786213 C Co:1:002:0 -2 8 >
df9c16c0 722796202 C Bi:1:002:1 -2 0
And finally I try to restart my application:
df9c12c0 791192447 S Co:1:002:0 s 40 00 0000 0000 0000 0
df9c12c0 796202240 C Co:1:002:0 -2 0
df9c12c0 796203289 S Co:1:002:0 s 40 02 0000 0000 0000 0
df9c12c0 801213213 C Co:1:002:0 -2 0
df9c16c0 801213518 S Bi:1:002:1 -115 512 <
df9c12c0 801213560 S Co:1:002:0 s 40 01 0303 0000 0000 0
df9c12c0 806223208 C Co:1:002:0 -2 0
df9c12c0 806223411 S Co:1:002:0 s 40 02 0000 0000 0000 0
df9c12c0 811233210 C Co:1:002:0 -2 0
df9c1440 821344904 S Co:1:002:0 s 40 02 0000 0000 0000 0
df9c1440 826354209 C Co:1:002:0 -2 8 >
df9c1440 826354515 S Co:1:002:0 s 40 01 0300 0000 0000 0
df9c1440 831364204 C Co:1:002:0 -2 0
df9c16c0 831374203 C Bi:1:002:1 -2 0
> And what kernel version are you using here?
Now I switched to 3.2.0 with only minimal changes for our hardware.
But (as expected) I get the same problems.
For my eyes it does not really look like a general USB issue.
It looks like a problem with the Freescale EHCI implementation that is
influenced by high interrupt or internal bus load caused by the flood ping.
I put linuxppc-dev on CC. Perhaps soneone in that community can double
check it on a Freescale evaluation board.
Matthias
^ permalink raw reply
* RE: [PATCH][v2] mmc:sdhci: restore the enabled dma when do reset all
From: Xie Shaohui-B21989 @ 2012-01-06 7:57 UTC (permalink / raw)
To: cjb@laptop.org, linux-mmc@vger.kernel.org
Cc: linuxppc-dev@lists.ozlabs.org, Xie Shaohui-B21989
In-Reply-To: <1325147580-31281-1-git-send-email-Shaohui.Xie@freescale.com>
Hello, Chris,
Do you have any concern for this patch?
Best Regards,=20
Shaohui Xie=20
>-----Original Message-----
>From: Xie Shaohui-B21989
>Sent: Thursday, December 29, 2011 4:33 PM
>To: linux-mmc@vger.kernel.org
>Cc: linuxppc-dev@lists.ozlabs.org; Xie Shaohui-B21989
>Subject: [PATCH][v2] mmc:sdhci: restore the enabled dma when do reset all
>
>If dma is enabled, it'll be cleared when reset all is performed, this can
>be observed on some platforms, such as P2041 which has a version 2.3
>controller, but platform like P4080 which has a version 2.2 controller,
>does not suffer this, so we will check if the dma is enabled, we should
>restore it after reset all.
>
>Signed-off-by: Shaohui Xie <Shaohui.Xie@freescale.com>
>---
>based on http://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc.git,
>branch 'for-linus'.
>
>changes for v2:
>call the wrapper API instead of access the register directly.
>
> drivers/mmc/host/sdhci.c | 5 +++++
> 1 files changed, 5 insertions(+), 0 deletions(-)
>
>diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c index
>19ed580..cf6a048 100644
>--- a/drivers/mmc/host/sdhci.c
>+++ b/drivers/mmc/host/sdhci.c
>@@ -214,6 +214,11 @@ static void sdhci_reset(struct sdhci_host *host, u8
>mask)
>
> if (host->quirks & SDHCI_QUIRK_RESTORE_IRQS_AFTER_RESET)
> sdhci_clear_set_irqs(host, SDHCI_INT_ALL_MASK, ier);
>+
>+ if (host->flags & (SDHCI_USE_SDMA | SDHCI_USE_ADMA)) {
>+ if ((host->ops->enable_dma) && (mask & SDHCI_RESET_ALL))
>+ host->ops->enable_dma(host);
>+ }
> }
>
> static void sdhci_set_ios(struct mmc_host *mmc, struct mmc_ios *ios);
>--
>1.6.4
^ permalink raw reply
* [git pull] Please pull powerpc.git next branch
From: Benjamin Herrenschmidt @ 2012-01-06 3:42 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linuxppc-dev list, Andrew Morton, Linux Kernel list
Hi Linus !
Here's my powerpc batch for this merge window. In addition to the usual
mixed bag of small fixes & improvements, the bigger highlights are:
- Reworked the freescale .dts (device-tree) files to use the new
".dtsi" include mechanism so board files just include the SoC definition
rather than duplicating it
- cpuidle framework support on pseries
- Various time management fixes & cleanups
- hugetlb support for FSL BookE embedded chips
- p7ioc IO chip support for powernv platform
- Cleanup of MPIC init code
And I'm probably forgetting some...
Cheers,
Ben.
The following changes since commit caca6a03d365883564885f2c1da3e88dcf65d139:
Linux 3.2-rc3 (2011-11-23 20:20:28 -0800)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc.git next
Alexandre Rusev (1):
powerpc/fsl-lbc: Fix for fsl_upm
Ananth N Mavinakayanahalli (1):
powerpc: Export PIR data through sysfs
Andreas Schwab (1):
powerpc: Fix wrong divisor in usecs_to_cputime
Andy Fleming (1):
powerpc: Add TBI PHY node to first MDIO bus
Anton Blanchard (22):
powerpc/time: Handle wrapping of decrementer
powerpc/time: Use clockevents_calc_mult_shift
powerpc/time: Use clocksource_register_hz
powerpc/time: Remove unnecessary sanity check of decrementer expiration
powerpc/time: Fix some style issues
powerpc/time: Optimise decrementer_check_overflow
powerpc: Decode correct MSR bits in oops output
powerpc/xics: Harden xics hypervisor backend
powerpc: Give us time to get all oopses out before panicking
powerpc: Remove broken and complicated kdump system reset code
powerpc/kdump: Use setjmp/longjmp to handle kdump and system reset recursion
powerpc: Cleanup crash/kexec code
powerpc: Rework die()
powerpc: Reduce pseries panic timeout from 180s to 10s
powerpc/xics: Reset the CPPR if H_EOI fails
powerpc/kdump: Delay before sending IPI on a system reset
powerpc/kdump: Only save CPU state first time through the secondary CPU capture code
powerpc/pseries: Increase minimum RMO size from 64MB to 256MB
powerpc/nvram: Add spinlock to oops_to_nvram to prevent oops in compression code.
powerpc: Enable squashfs as a module
powerpc: POWER7 optimised copy_to_user/copy_from_user using VMX
powerpc: Fix comment explaining our VSID layout
Becky Bruce (13):
powerpc: Only define HAVE_ARCH_HUGETLB_UNMAPPED_AREA if PPC_MM_SLICES
powerpc: hugetlb: fix huge_ptep_set_access_flags return value
powerpc: Fix booke hugetlb preload code for PPC_MM_SLICES and 64-bit
powerpc: Update hugetlb huge_pte_alloc and tablewalk code for FSL BOOKE
powerpc: hugetlb: modify include usage for FSL BookE code
powerpc: Whitespace/comment changes to tlb_low_64e.S
powerpc: Add hugepage support to 64-bit tablewalk code for FSL_BOOK3E
powerpc: Add gpages reservation code for 64-bit FSL BOOKE
powerpc: Kconfig updates for FSL BookE HUGETLB 64-bit
powerpc: Enable Hugetlb by default for 32-bit 85xx/corenet
powerpc: Enable hugetlb by default for corenet64 platforms
powerpc/book3e: Change hugetlb preload to take vma argument
powerpc: Define/use HUGETLB_NEED_PRELOAD insead of complicated #if
Benjamin Herrenschmidt (24):
powerpc/pci: Add a platform hook after probe and before resource survey
powerpc/pci: Change how re-assigning resouces work
powerpc/powernv: Add TCE SW invalidation support
powerpc/powernv: Fixup p7ioc PCIe root complex class code
powerpc/powernv: PCI support for p7IOC under OPAL v2
Merge remote-tracking branch 'kumar/next' into next
powerpc/powernv: Update OPAL interfaces
powerpc/powernv: Display diag data on p7ioc EEH errors
powerpc/powernv: Workaround OFW issues in prom_init.c
powerpc/pci: Make pci_read_irq_line() static
Merge branch 'mpic' into next
Merge branch 'booke-hugetlb' into next
powerpc: Add support for OpenBlockS 600
Merge branch 'cpuidle' into next
Merge branch 'ps3' into next
Merge branch 'kexec' into next
tty/serial/pmac_zilog: Fix suspend & resume
powerpc/pmac: Simplify old pmac PIC interrupt handling
powerpc/pmac: Fix SMP kernels on pre-core99 UP machines
Merge remote-tracking branch 'jwb/next' into next
powerpc: Fix old bug in prom_init setting of the color
offb: Fix bug in calculating requested vram size
offb: Add palette hack for qemu "standard vga" framebuffer
offb: Fix setting of the pseudo-palette for >8bpp
po
Christoph Egger (1):
powerpc/44x: Removing dead CONFIG_PPC47x
Chuck Meade (1):
drivers/serial/ucc_uart.c: Add missing call to init UCC UART port timeout
Dan McGee (1):
powerpc+sparc64/mm: Remove hack in mmap randomize layout
David Rientjes (2):
powerpc/mm: Fix section mismatch for mark_reserved_regions_for_nid
powerpc/mm: Fix section mismatch for read_n_cells
Deepthi Dharwar (4):
powerpc/cpuidle: Add cpu_idle_wait() to allow switching of idle routines
powerpc/cpuidle: cpuidle driver for pSeries
powerpc/cpuidle: Enable cpuidle and directly call cpuidle_idle_call() for pSeries
powerpc/cpuidle: Handle power_save=off
Dmitry Eremin-Solenikov (7):
powerpc/83xx: consolidate init_IRQ functions
powerpc/83xx: consolidate of_platform_bus_probe calls
powerpc/83xx: merge PCI bridge additions
powerpc/83xx: make mpc830x_rdb use mpc83xx_setup_pci
powerpc/85xx: separate cpm2 pic init
powerpc/85xx: consolidate of_platform_bus_probe calls
powerpc/maple: Enable access to HT Host-Bridge on Maple
Finn Thain (1):
pmac_zilog: Fix unexpected irq
Florian Fainelli (1):
perf/powerpc: Fix build for PowerPC with uclibc toolchains
Geoff Levand (8):
powerpc/ps3: Interrupt code cleanup
powerpc/ps3: Fix hcall lv1_net_stop_rx_dma
powerpc/ps3: Fix hcall lv1_get_virtual_address_space_id_of_ppe
powerpc/ps3: Fix hcall lv1_get_version_info
powerpc/ps3: Fix hcall lv1_read_repository_node
powerpc/ps3: Fix PS3 repository build warnings
powerpc/ps3: Add __init to ps3_smp_probe
powerpc/ps3: Update ps3_defconfig
Geoff Thorpe (1):
powerpc: Add pgprot_cached_noncoherent()
Jason Jin (1):
powerpc/fsl-pci: Don't hide resource for pci/e when configured as Agent/EP
Jia Hongtao (1):
powerpc/85xx: Add lbc suspend support for PM
Jimi Xenidis (6):
powerpc: Split ICSWX ACOP and PID processing
powerpc/book3e: Add ICSWX/ACOP support to Book3e cores like A2
powerpc/icswx: Simple ACOP fault handler
powerpc/xmon: Fix the 'u' command description
powerpc/xmon: Fix #if typo for systems without MSR[RI]
powerpc/book3e: Add Chroma as a new WSP/PowerEN platform.
Joakim Tjernlund (1):
powerpc/qe: Fixup QE_General4 errata
Josh Boyer (2):
MAINTAINERS: Update PowerPC 4xx git tree
powerpc/44x: Fix build error on currituck platform
Julia Lawall (4):
arch/powerpc/sysdev/ehv_pic.c: add missing kfree
powerpc/cell/iommu: Add missing of_node_put
powerpc/powermac: Add missing of_node_put
arch/powerpc/sysdev/fsl_rmu.c: introduce missing kfree
Justin P. Mattock (1):
powerpc/mpic: Remove extra semicolon.
Kai Jiang (1):
powerpc/8xxx: Update device tree bus probe for new RapidIO node binding
Kumar Gala (36):
powerpc/85xx: Fix compile error on p3060_qds.c
powerpc/85xx: Simplify P1020RDB CAMP dts using includes
powerpc/85xx: Rework PCI nodes on P1020RDB
powerpc/85xx: Update SPI binding to match binding spec for P1020RDB
powerpc/85xx: Update P1020 SEC3.3 node to match actual SoC HW
powerpc/85xx: Add ethernet magic packet property to P1020 device tree
powerpc/85xx: p1020si.dtsi update interrupt handling
powerpc/85xx: create dts components to build up an SoC
powerpc/85xx: Rework MPC8536DS device trees
powerpc/85xx: Rework MPC8544DS device tree
powerpc/85xx: Rework MPC8548CDS device trees
powerpc/85xx: Rework MPC8568MDS device tree
powerpc/85xx: Rework MPC8569MDS device tree
powerpc/85xx: Rework MPC8572DS device tree
powerpc/85xx: Rework P1010RDB and P1010 device tree
powerpc/85xx: Add RTC to P1010RDB device tree
powerpc/85xx: Add crypto engine to P1010 SoC device tree
powerpc/85xx: Add a P1010RDB 36-bit address map device tree
powerpc/85xx: Rework P1020RDB device tree
powerpc/85xx: Add P1020RDB 36-bit address map device tree
powerpc/85xx: Rework P1021MDS device tree
powerpc/85xx: Rework P1022DS device tree
powerpc/85xx: Rework P1023RDS device tree
powerpc/85xx: Rework P2020DS device tree
powerpc/85xx: Rework P2020RDB device tree
powerpc/85xx: Rework P2041RDB device tree
powerpc/85xx: Rework P3041DS device tree
powerpc/85xx: Rework P3060QDS device tree
powerpc/85xx: Rework P4080DS device trees
powerpc/85xx: Rework P5020DS device tree
powerpc/85xx: Update SRIO device tree nodes
powerpc/85xx: Additional consolidate of_platform_bus_probe calls
powerpc/85xx: Renamed mpc85xx_common.c to common.c
powerpc/fsl-pci: Allow 64-bit PCIe devices to DMA to any memory address
powerpc/fsl: Update defconfigs to enable some standard FSL HW features
powerpc/fsl: update compatiable on fsl 16550 uart nodes
Kyle Moffett (10):
powerpc/85xx: Move mpc85xx_smp_init() decl to a new "smp.h"
powerpc: Consolidate mpic_alloc() OF address translation
powerpc/mpic: Assume a device-node was passed in mpic_alloc()
powerpc/mpic: Save computed phys_addr for board-specific code
powerpc/mpic: Search for open-pic device-tree node if NULL
powerpc/mpic: Invert the meaning of MPIC_PRIMARY
powerpc/mpic: Don't open-code dcr_resource_start
powerpc/mpic: Put "pic-no-reset" test back into the MPIC code
powerpc/mpic: Cache the device-tree node in "struct mpic"
powerpc/mpic: Add in-core support for cascaded MPICs
Li Zhong (1):
powerpc: Fix unpaired probe_hcall_entry and probe_hcall_exit
Liu Gang (3):
powerpc/fsl: Document rapidio node binding-information
fsl-rio: Split rio driver into two parts, RapidIO endpoint and message unit
fsl-rio: Add two ports and rapidio message units support
Matt Evans (1):
powerpc: Add __SANE_USERSPACE_TYPES__ to asm/types.h for LL64
Matthew McClintock (1):
arch/powerpc: Remove duplicate/redundant Altivec entries
Michael Neuling (1):
powerpc: fix compile error with 85xx/p1023_rds.c
Milton Miller (1):
powerpc/pseries: Software invalidatation of TCEs
Paul Bolle (1):
powerpc/p3060qds: Fix select of 'MPC8xxx_GPIO'
Paul Gortmaker (1):
sbc834x: put full compat string in board match check
Paul Mackerras (3):
powerpc/powernv: Fix problems in onlining CPUs
powerpc: Provide a way for KVM to indicate that NV GPR values are lost
powerpc: Only use initrd_end as the limit for alloc_bottom if it's inside the RMO.
Prabhakar Kushwaha (1):
powerpc/fsl: Add support for Integrated Flash Controller
Ravi K. Nittala (1):
powerpc/pseries: Cancel RTAS event scan before firmware flash
Richard Kuo (1):
powerpc: Use rwsem.h from generic location
Roy Zang (1):
powerpc/p1023: set IRQ[4:6,11] to active-high level sensitive for PCIe
Shaohui Xie (1):
drivers/edac/mpc85xx_edac.c: fix memory controller compatible for edac
Suzuki Poulose (8):
powerpc: Rename mapping based RELOCATABLE to DYNAMIC_MEMSTART for BookE
powerpc/44x: Enable DYNAMIC_MEMSTART for 440x
powerpc: Process dynamic relocations for kernel
powerpc: Define virtual-physical translations for RELOCATABLE
powerpc/44x: Enable CONFIG_RELOCATABLE for PPC44x
powerpc/44x: Enable CRASH_DUMP for 440x
powerpc/boot: Change the load address for the wrapper to fit the kernel
powerpc/boot: Change the WARN to INFO for boot wrapper overlap message
Tanmay Inamdar (1):
powerpc/40x: Add APM8018X SOC support
Thomas Gleixner (4):
powerpc/85xx: Mark cascade irq IRQF_NO_THREAD
powerpc/wsp: Mark opb cascade handler IRQF_NO_THREAD
powerpc: Mark IPI interrupts IRQF_NO_THREAD
powerpc: Allow irq threading
Timur Tabi (5):
powerpc/85xx: add pixis indirect mode device tree node
powerpc/fsl_msi: add support for the fsl, msi property in PCI nodes
powerpc/85xx: re-enable ePAPR byte channel driver in corenet32_smp_defconfig
powerpc/85xx: fix PCI and localbus properties in p1022ds.dts
powerpc/fsl: add MSI support for the Freescale hypervisor
Tony Breeds (8):
powerpc/44x: pci: Use PCI_BASE_ADDRESS_MEM_PREFETCH rather than magic value.
powerpc/44x: pci: Add a want_sdr flag into ppc4xx_pciex_hwops
powerpc/44x: pci: Setup the dma_window properties for each pci_controller
powerpc/boot: Add extended precision shifts to the boot wrapper.
powerpc/boot: Add mfdcrx
powerpc/476fpe: Add 476fpe SoC code
powerpc/47x: Add support for the new IBM currituck platform
powerpc: fix compile error with 85xx/p1010rdb.c
sukadev@linux.vnet.ibm.com (2):
powerpc: Implement CONFIG_STRICT_DEVMEM
powerpc: Punch a hole in /dev/mem for librtas
.../devicetree/bindings/powerpc/fsl/srio-rmu.txt | 163 +++
.../devicetree/bindings/powerpc/fsl/srio.txt | 103 ++
MAINTAINERS | 2 +-
arch/powerpc/Kconfig | 54 +-
arch/powerpc/Kconfig.debug | 12 +
arch/powerpc/Makefile | 11 +-
arch/powerpc/boot/Makefile | 12 +-
arch/powerpc/boot/dcr.h | 6 +
arch/powerpc/boot/div64.S | 52 +
arch/powerpc/boot/dts/asp834x-redboot.dts | 4 +-
arch/powerpc/boot/dts/currituck.dts | 237 +++
arch/powerpc/boot/dts/fsl/mpc8536si-post.dtsi | 248 ++++
arch/powerpc/boot/dts/fsl/mpc8536si-pre.dtsi | 63 +
arch/powerpc/boot/dts/fsl/mpc8544si-post.dtsi | 191 +++
arch/powerpc/boot/dts/fsl/mpc8544si-pre.dtsi | 63 +
arch/powerpc/boot/dts/fsl/mpc8548si-post.dtsi | 143 ++
arch/powerpc/boot/dts/fsl/mpc8548si-pre.dtsi | 62 +
arch/powerpc/boot/dts/fsl/mpc8568si-post.dtsi | 270 ++++
arch/powerpc/boot/dts/fsl/mpc8568si-pre.dtsi | 65 +
arch/powerpc/boot/dts/fsl/mpc8569si-post.dtsi | 304 ++++
arch/powerpc/boot/dts/fsl/mpc8569si-pre.dtsi | 64 +
arch/powerpc/boot/dts/fsl/mpc8572si-post.dtsi | 196 +++
arch/powerpc/boot/dts/fsl/mpc8572si-pre.dtsi | 70 +
arch/powerpc/boot/dts/fsl/p1010si-post.dtsi | 198 +++
arch/powerpc/boot/dts/fsl/p1010si-pre.dtsi | 64 +
arch/powerpc/boot/dts/fsl/p1020si-post.dtsi | 174 +++
arch/powerpc/boot/dts/fsl/p1020si-pre.dtsi | 68 +
arch/powerpc/boot/dts/fsl/p1021si-post.dtsi | 225 +++
arch/powerpc/boot/dts/fsl/p1021si-pre.dtsi | 68 +
arch/powerpc/boot/dts/fsl/p1022si-post.dtsi | 235 +++
arch/powerpc/boot/dts/fsl/p1022si-pre.dtsi | 68 +
arch/powerpc/boot/dts/fsl/p1023si-post.dtsi | 224 +++
arch/powerpc/boot/dts/fsl/p1023si-pre.dtsi | 76 +
arch/powerpc/boot/dts/fsl/p2020si-post.dtsi | 194 +++
arch/powerpc/boot/dts/fsl/p2020si-pre.dtsi | 69 +
arch/powerpc/boot/dts/fsl/p2041si-post.dtsi | 325 +++++
arch/powerpc/boot/dts/fsl/p2041si-pre.dtsi | 111 ++
arch/powerpc/boot/dts/fsl/p3041si-post.dtsi | 352 +++++
arch/powerpc/boot/dts/fsl/p3041si-pre.dtsi | 112 ++
arch/powerpc/boot/dts/fsl/p3060si-post.dtsi | 296 ++++
arch/powerpc/boot/dts/fsl/p3060si-pre.dtsi | 125 ++
arch/powerpc/boot/dts/fsl/p4080si-post.dtsi | 350 +++++
arch/powerpc/boot/dts/fsl/p4080si-pre.dtsi | 143 ++
arch/powerpc/boot/dts/fsl/p5020si-post.dtsi | 355 +++++
arch/powerpc/boot/dts/fsl/p5020si-pre.dtsi | 96 ++
arch/powerpc/boot/dts/fsl/pq3-dma-0.dtsi | 66 +
arch/powerpc/boot/dts/fsl/pq3-dma-1.dtsi | 66 +
arch/powerpc/boot/dts/fsl/pq3-duart-0.dtsi | 51 +
arch/powerpc/boot/dts/fsl/pq3-esdhc-0.dtsi | 41 +
arch/powerpc/boot/dts/fsl/pq3-espi-0.dtsi | 41 +
arch/powerpc/boot/dts/fsl/pq3-etsec1-0.dtsi | 53 +
arch/powerpc/boot/dts/fsl/pq3-etsec1-1.dtsi | 53 +
arch/powerpc/boot/dts/fsl/pq3-etsec1-2.dtsi | 53 +
arch/powerpc/boot/dts/fsl/pq3-etsec1-3.dtsi | 53 +
arch/powerpc/boot/dts/fsl/pq3-etsec1-timer-0.dtsi | 39 +
arch/powerpc/boot/dts/fsl/pq3-etsec2-0.dtsi | 60 +
arch/powerpc/boot/dts/fsl/pq3-etsec2-1.dtsi | 60 +
arch/powerpc/boot/dts/fsl/pq3-etsec2-2.dtsi | 59 +
arch/powerpc/boot/dts/fsl/pq3-etsec2-grp2-0.dtsi | 42 +
arch/powerpc/boot/dts/fsl/pq3-etsec2-grp2-1.dtsi | 42 +
arch/powerpc/boot/dts/fsl/pq3-etsec2-grp2-2.dtsi | 42 +
arch/powerpc/boot/dts/fsl/pq3-gpio-0.dtsi | 41 +
arch/powerpc/boot/dts/fsl/pq3-i2c-0.dtsi | 43 +
arch/powerpc/boot/dts/fsl/pq3-i2c-1.dtsi | 43 +
arch/powerpc/boot/dts/fsl/pq3-mpic-timer-B.dtsi | 42 +
arch/powerpc/boot/dts/fsl/pq3-mpic.dtsi | 66 +
arch/powerpc/boot/dts/fsl/pq3-rmu-0.dtsi | 68 +
arch/powerpc/boot/dts/fsl/pq3-sata2-0.dtsi | 40 +
arch/powerpc/boot/dts/fsl/pq3-sata2-1.dtsi | 40 +
arch/powerpc/boot/dts/fsl/pq3-sec2.1-0.dtsi | 43 +
arch/powerpc/boot/dts/fsl/pq3-sec3.0-0.dtsi | 45 +
arch/powerpc/boot/dts/fsl/pq3-sec3.1-0.dtsi | 45 +
arch/powerpc/boot/dts/fsl/pq3-sec3.3-0.dtsi | 45 +
arch/powerpc/boot/dts/fsl/pq3-sec4.4-0.dtsi | 65 +
arch/powerpc/boot/dts/fsl/pq3-usb2-dr-0.dtsi | 41 +
arch/powerpc/boot/dts/fsl/pq3-usb2-dr-1.dtsi | 41 +
arch/powerpc/boot/dts/fsl/qoriq-dma-0.dtsi | 66 +
arch/powerpc/boot/dts/fsl/qoriq-dma-1.dtsi | 66 +
arch/powerpc/boot/dts/fsl/qoriq-duart-0.dtsi | 51 +
arch/powerpc/boot/dts/fsl/qoriq-duart-1.dtsi | 51 +
arch/powerpc/boot/dts/fsl/qoriq-esdhc-0.dtsi | 40 +
arch/powerpc/boot/dts/fsl/qoriq-espi-0.dtsi | 41 +
arch/powerpc/boot/dts/fsl/qoriq-gpio-0.dtsi | 41 +
arch/powerpc/boot/dts/fsl/qoriq-i2c-0.dtsi | 53 +
arch/powerpc/boot/dts/fsl/qoriq-i2c-1.dtsi | 53 +
arch/powerpc/boot/dts/fsl/qoriq-mpic.dtsi | 106 ++
arch/powerpc/boot/dts/fsl/qoriq-rmu-0.dtsi | 68 +
arch/powerpc/boot/dts/fsl/qoriq-sata2-0.dtsi | 39 +
arch/powerpc/boot/dts/fsl/qoriq-sata2-1.dtsi | 39 +
arch/powerpc/boot/dts/fsl/qoriq-sec4.0-0.dtsi | 100 ++
arch/powerpc/boot/dts/fsl/qoriq-sec4.1-0.dtsi | 109 ++
arch/powerpc/boot/dts/fsl/qoriq-sec4.2-0.dtsi | 109 ++
arch/powerpc/boot/dts/fsl/qoriq-usb2-dr-0.dtsi | 41 +
arch/powerpc/boot/dts/fsl/qoriq-usb2-mph-0.dtsi | 41 +
arch/powerpc/boot/dts/gef_ppc9a.dts | 4 +-
arch/powerpc/boot/dts/gef_sbc310.dts | 4 +-
arch/powerpc/boot/dts/gef_sbc610.dts | 4 +-
arch/powerpc/boot/dts/klondike.dts | 227 +++
arch/powerpc/boot/dts/kmeter1.dts | 2 +-
arch/powerpc/boot/dts/kuroboxHD.dts | 4 +-
arch/powerpc/boot/dts/kuroboxHG.dts | 4 +-
arch/powerpc/boot/dts/mpc8308_p1m.dts | 4 +-
arch/powerpc/boot/dts/mpc8308rdb.dts | 4 +-
arch/powerpc/boot/dts/mpc8313erdb.dts | 4 +-
arch/powerpc/boot/dts/mpc8315erdb.dts | 4 +-
arch/powerpc/boot/dts/mpc832x_mds.dts | 4 +-
arch/powerpc/boot/dts/mpc832x_rdb.dts | 4 +-
arch/powerpc/boot/dts/mpc8349emitx.dts | 4 +-
arch/powerpc/boot/dts/mpc8349emitxgp.dts | 4 +-
arch/powerpc/boot/dts/mpc834x_mds.dts | 4 +-
arch/powerpc/boot/dts/mpc836x_mds.dts | 4 +-
arch/powerpc/boot/dts/mpc836x_rdk.dts | 4 +-
arch/powerpc/boot/dts/mpc8377_mds.dts | 4 +-
arch/powerpc/boot/dts/mpc8377_rdb.dts | 4 +-
arch/powerpc/boot/dts/mpc8377_wlan.dts | 4 +-
arch/powerpc/boot/dts/mpc8378_mds.dts | 4 +-
arch/powerpc/boot/dts/mpc8378_rdb.dts | 4 +-
arch/powerpc/boot/dts/mpc8379_mds.dts | 4 +-
arch/powerpc/boot/dts/mpc8379_rdb.dts | 4 +-
arch/powerpc/boot/dts/mpc8536ds.dts | 456 +------
arch/powerpc/boot/dts/mpc8536ds.dtsi | 141 ++
arch/powerpc/boot/dts/mpc8536ds_36b.dts | 410 +-----
arch/powerpc/boot/dts/mpc8540ads.dts | 4 +-
arch/powerpc/boot/dts/mpc8541cds.dts | 4 +-
arch/powerpc/boot/dts/mpc8544ds.dts | 473 +------
arch/powerpc/boot/dts/mpc8544ds.dtsi | 161 +++
arch/powerpc/boot/dts/mpc8548cds.dts | 505 ++-----
arch/powerpc/boot/dts/mpc8555cds.dts | 4 +-
arch/powerpc/boot/dts/mpc8568mds.dts | 482 +------
arch/powerpc/boot/dts/mpc8569mds.dts | 414 +-----
arch/powerpc/boot/dts/mpc8572ds.dts | 757 +----------
arch/powerpc/boot/dts/mpc8572ds.dtsi | 397 +++++
arch/powerpc/boot/dts/mpc8572ds_36b.dts | 746 +----------
arch/powerpc/boot/dts/mpc8572ds_camp_core0.dts | 487 +------
arch/powerpc/boot/dts/mpc8572ds_camp_core1.dts | 245 +---
arch/powerpc/boot/dts/mpc8610_hpcd.dts | 4 +-
arch/powerpc/boot/dts/mpc8641_hpcn.dts | 73 +-
arch/powerpc/boot/dts/mpc8641_hpcn_36b.dts | 4 +-
arch/powerpc/boot/dts/obs600.dts | 314 ++++
arch/powerpc/boot/dts/p1010rdb.dts | 228 +---
arch/powerpc/boot/dts/p1010rdb.dtsi | 234 +++
arch/powerpc/boot/dts/p1010rdb_36b.dts | 89 ++
arch/powerpc/boot/dts/p1010si.dtsi | 374 -----
arch/powerpc/boot/dts/p1020rdb.dts | 262 +----
arch/powerpc/boot/dts/p1020rdb.dtsi | 247 ++++
arch/powerpc/boot/dts/p1020rdb_36b.dts | 66 +
arch/powerpc/boot/dts/p1020rdb_camp_core0.dts | 154 +--
arch/powerpc/boot/dts/p1020rdb_camp_core1.dts | 11 +-
arch/powerpc/boot/dts/p1020si.dtsi | 377 -----
arch/powerpc/boot/dts/p1021mds.dts | 425 +-----
arch/powerpc/boot/dts/p1022ds.dts | 459 +------
arch/powerpc/boot/dts/p1023rds.dts | 383 +-----
arch/powerpc/boot/dts/p2020ds.dts | 353 +-----
arch/powerpc/boot/dts/p2020ds.dtsi | 316 ++++
arch/powerpc/boot/dts/p2020rdb.dts | 71 +-
arch/powerpc/boot/dts/p2020rdb_camp_core0.dts | 141 +--
arch/powerpc/boot/dts/p2020rdb_camp_core1.dts | 107 +--
arch/powerpc/boot/dts/p2020si.dtsi | 382 -----
arch/powerpc/boot/dts/p2041rdb.dts | 22 +-
arch/powerpc/boot/dts/p2041si.dtsi | 692 ---------
arch/powerpc/boot/dts/p3041ds.dts | 23 +-
arch/powerpc/boot/dts/p3041si.dtsi | 729 ----------
arch/powerpc/boot/dts/p3060qds.dts | 12 +-
arch/powerpc/boot/dts/p3060si.dtsi | 719 ---------
arch/powerpc/boot/dts/p4080ds.dts | 24 +-
arch/powerpc/boot/dts/p4080si.dtsi | 755 ----------
arch/powerpc/boot/dts/p5020ds.dts | 24 +-
arch/powerpc/boot/dts/p5020si.dtsi | 716 ---------
arch/powerpc/boot/dts/sbc8349.dts | 4 +-
arch/powerpc/boot/dts/sbc8548.dts | 4 +-
arch/powerpc/boot/dts/sbc8641d.dts | 4 +-
arch/powerpc/boot/dts/socrates.dts | 4 +-
arch/powerpc/boot/dts/storcenter.dts | 4 +-
arch/powerpc/boot/dts/stxssa8555.dts | 4 +-
arch/powerpc/boot/dts/tqm8540.dts | 4 +-
arch/powerpc/boot/dts/tqm8541.dts | 4 +-
arch/powerpc/boot/dts/tqm8548-bigflash.dts | 4 +-
arch/powerpc/boot/dts/tqm8548.dts | 4 +-
arch/powerpc/boot/dts/tqm8555.dts | 4 +-
arch/powerpc/boot/dts/xcalibur1501.dts | 4 +-
arch/powerpc/boot/dts/xpedite5200.dts | 4 +-
arch/powerpc/boot/dts/xpedite5200_xmon.dts | 4 +-
arch/powerpc/boot/dts/xpedite5301.dts | 4 +-
arch/powerpc/boot/dts/xpedite5330.dts | 4 +-
arch/powerpc/boot/dts/xpedite5370.dts | 4 +-
arch/powerpc/boot/treeboot-currituck.c | 119 ++
arch/powerpc/boot/wrapper | 45 +-
arch/powerpc/configs/40x/klondike_defconfig | 55 +
arch/powerpc/configs/40x/obs600_defconfig | 83 ++
arch/powerpc/configs/44x/currituck_defconfig | 110 ++
arch/powerpc/configs/44x/iss476-smp_defconfig | 3 +-
arch/powerpc/configs/chroma_defconfig | 307 ++++
arch/powerpc/configs/corenet32_smp_defconfig | 11 +-
arch/powerpc/configs/corenet64_smp_defconfig | 4 +-
arch/powerpc/configs/mpc85xx_defconfig | 17 +-
arch/powerpc/configs/mpc85xx_smp_defconfig | 18 +-
arch/powerpc/configs/ppc64_defconfig | 5 +
arch/powerpc/configs/ps3_defconfig | 39 +-
arch/powerpc/configs/pseries_defconfig | 5 +
arch/powerpc/include/asm/Kbuild | 2 +
arch/powerpc/include/asm/cputable.h | 5 +-
arch/powerpc/include/asm/cputime.h | 6 +-
arch/powerpc/include/asm/fsl_ifc.h | 834 +++++++++++
arch/powerpc/include/asm/fsl_lbc.h | 7 +-
arch/powerpc/include/asm/hugetlb.h | 38 +-
arch/powerpc/include/asm/kdump.h | 4 +-
arch/powerpc/include/asm/kexec.h | 7 -
arch/powerpc/include/asm/lv1call.h | 10 +-
arch/powerpc/include/asm/machdep.h | 3 +
arch/powerpc/include/asm/mmu-book3e.h | 11 +
arch/powerpc/include/asm/mmu-hash64.h | 7 +-
arch/powerpc/include/asm/mpic.h | 14 +-
arch/powerpc/include/asm/opal.h | 131 ++-
arch/powerpc/include/asm/paca.h | 1 +
arch/powerpc/include/asm/page.h | 90 ++-
arch/powerpc/include/asm/page_64.h | 2 +
arch/powerpc/include/asm/pci-bridge.h | 6 +-
arch/powerpc/include/asm/pci.h | 2 -
arch/powerpc/include/asm/pgtable.h | 3 +
arch/powerpc/include/asm/processor.h | 3 +
arch/powerpc/include/asm/reg.h | 1 +
arch/powerpc/include/asm/reg_booke.h | 4 +
arch/powerpc/include/asm/rtas.h | 18 +
arch/powerpc/include/asm/rwsem.h | 132 --
arch/powerpc/include/asm/system.h | 11 +-
arch/powerpc/include/asm/tce.h | 10 +-
arch/powerpc/include/asm/time.h | 2 +
arch/powerpc/include/asm/types.h | 5 +-
arch/powerpc/kernel/Makefile | 2 +
arch/powerpc/kernel/asm-offsets.c | 1 +
arch/powerpc/kernel/cpu_setup_a2.S | 10 +-
arch/powerpc/kernel/cputable.c | 27 +
arch/powerpc/kernel/crash.c | 220 ++--
arch/powerpc/kernel/crash_dump.c | 4 +-
arch/powerpc/kernel/exceptions-64s.S | 2 +-
arch/powerpc/kernel/head_44x.S | 107 ++
arch/powerpc/kernel/head_fsl_booke.S | 2 +-
arch/powerpc/kernel/idle.c | 27 +
arch/powerpc/kernel/idle_power7.S | 4 +
arch/powerpc/kernel/irq.c | 28 +-
arch/powerpc/kernel/machine_kexec.c | 2 +-
arch/powerpc/kernel/pci-common.c | 78 +-
arch/powerpc/kernel/pci_dn.c | 3 +
arch/powerpc/kernel/process.c | 22 +-
arch/powerpc/kernel/prom_init.c | 37 +-
arch/powerpc/kernel/reloc_32.S | 208 +++
arch/powerpc/kernel/rtas_flash.c | 6 +
arch/powerpc/kernel/rtasd.c | 7 +
arch/powerpc/kernel/setup_64.c | 10 +
arch/powerpc/kernel/smp.c | 3 +-
arch/powerpc/kernel/sysfs.c | 10 +
arch/powerpc/kernel/time.c | 105 +-
arch/powerpc/kernel/traps.c | 173 ++-
arch/powerpc/kernel/vmlinux.lds.S | 8 +-
arch/powerpc/kvm/book3s_hv_rmhandlers.S | 3 +
arch/powerpc/lib/Makefile | 4 +-
arch/powerpc/lib/copyuser_64.S | 6 +
arch/powerpc/lib/copyuser_power7.S | 683 +++++++++
arch/powerpc/lib/copyuser_power7_vmx.c | 50 +
arch/powerpc/mm/44x_mmu.c | 6 +-
arch/powerpc/mm/Makefile | 2 +
arch/powerpc/mm/fault.c | 17 +
arch/powerpc/mm/hugetlbpage-book3e.c | 21 +-
arch/powerpc/mm/hugetlbpage.c | 116 +-
arch/powerpc/mm/icswx.c | 273 ++++
arch/powerpc/mm/icswx.h | 62 +
arch/powerpc/mm/icswx_pid.c | 87 ++
arch/powerpc/mm/init_32.c | 7 +
arch/powerpc/mm/mem.c | 23 +-
arch/powerpc/mm/mmap_64.c | 14 +-
arch/powerpc/mm/mmu_context_hash64.c | 195 +---
arch/powerpc/mm/numa.c | 4 +-
arch/powerpc/mm/tlb_low_64e.S | 36 +-
arch/powerpc/mm/tlb_nohash.c | 2 +-
arch/powerpc/platforms/40x/Kconfig | 21 +
arch/powerpc/platforms/40x/ppc40x_simple.c | 4 +-
arch/powerpc/platforms/44x/Kconfig | 14 +
arch/powerpc/platforms/44x/Makefile | 1 +
arch/powerpc/platforms/44x/currituck.c | 204 +++
arch/powerpc/platforms/44x/iss4xx.c | 2 +-
arch/powerpc/platforms/83xx/asp834x.c | 35 +-
arch/powerpc/platforms/83xx/km83xx.c | 58 +-
arch/powerpc/platforms/83xx/misc.c | 77 +
arch/powerpc/platforms/83xx/mpc830x_rdb.c | 40 +-
arch/powerpc/platforms/83xx/mpc831x_rdb.c | 43 +-
arch/powerpc/platforms/83xx/mpc832x_mds.c | 53 +-
arch/powerpc/platforms/83xx/mpc832x_rdb.c | 56 +-
arch/powerpc/platforms/83xx/mpc834x_itx.c | 30 +-
arch/powerpc/platforms/83xx/mpc834x_mds.c | 42 +-
arch/powerpc/platforms/83xx/mpc836x_mds.c | 53 +-
arch/powerpc/platforms/83xx/mpc836x_rdk.c | 48 +-
arch/powerpc/platforms/83xx/mpc837x_mds.c | 46 +-
arch/powerpc/platforms/83xx/mpc837x_rdb.c | 47 +-
arch/powerpc/platforms/83xx/mpc83xx.h | 16 +
arch/powerpc/platforms/83xx/sbc834x.c | 49 +-
arch/powerpc/platforms/85xx/Kconfig | 2 +-
arch/powerpc/platforms/85xx/Makefile | 2 +
arch/powerpc/platforms/85xx/common.c | 66 +
arch/powerpc/platforms/85xx/corenet_ds.c | 28 +-
arch/powerpc/platforms/85xx/ksi8560.c | 69 +-
arch/powerpc/platforms/85xx/mpc8536_ds.c | 38 +-
arch/powerpc/platforms/85xx/mpc85xx.h | 11 +
arch/powerpc/platforms/85xx/mpc85xx_ads.c | 74 +-
arch/powerpc/platforms/85xx/mpc85xx_cds.c | 42 +-
arch/powerpc/platforms/85xx/mpc85xx_ds.c | 50 +-
arch/powerpc/platforms/85xx/mpc85xx_mds.c | 73 +-
arch/powerpc/platforms/85xx/mpc85xx_rdb.c | 49 +-
arch/powerpc/platforms/85xx/p1010rdb.c | 38 +-
arch/powerpc/platforms/85xx/p1022_ds.c | 37 +-
arch/powerpc/platforms/85xx/p1023_rds.c | 47 +-
arch/powerpc/platforms/85xx/p3060_qds.c | 2 +-
arch/powerpc/platforms/85xx/sbc8548.c | 43 +-
arch/powerpc/platforms/85xx/sbc8560.c | 74 +-
arch/powerpc/platforms/85xx/smp.c | 1 +
arch/powerpc/platforms/85xx/smp.h | 15 +
arch/powerpc/platforms/85xx/socrates.c | 33 +-
arch/powerpc/platforms/85xx/stx_gp3.c | 73 +-
arch/powerpc/platforms/85xx/tqm85xx.c | 73 +-
arch/powerpc/platforms/85xx/xes_mpc85xx.c | 48 +-
arch/powerpc/platforms/86xx/mpc86xx_hpcn.c | 2 +-
arch/powerpc/platforms/86xx/pic.c | 18 +-
arch/powerpc/platforms/Kconfig | 6 +
arch/powerpc/platforms/Kconfig.cputype | 25 +-
arch/powerpc/platforms/cell/iommu.c | 2 +
arch/powerpc/platforms/cell/setup.c | 25 +-
arch/powerpc/platforms/chrp/setup.c | 3 +-
arch/powerpc/platforms/embedded6xx/holly.c | 23 +-
arch/powerpc/platforms/embedded6xx/linkstation.c | 20 +-
arch/powerpc/platforms/embedded6xx/mpc7448_hpc2.c | 24 +-
arch/powerpc/platforms/embedded6xx/storcenter.c | 26 +-
arch/powerpc/platforms/maple/pci.c | 55 +
arch/powerpc/platforms/maple/setup.c | 2 +-
arch/powerpc/platforms/pasemi/setup.c | 4 +-
arch/powerpc/platforms/powermac/pic.c | 80 +-
arch/powerpc/platforms/powermac/setup.c | 8 +-
arch/powerpc/platforms/powermac/smp.c | 6 +-
arch/powerpc/platforms/powernv/Makefile | 2 +-
arch/powerpc/platforms/powernv/opal-wrappers.S | 8 +
arch/powerpc/platforms/powernv/pci-ioda.c | 1330 +++++++++++++++++
arch/powerpc/platforms/powernv/pci-p5ioc2.c | 1 +
arch/powerpc/platforms/powernv/pci.c | 228 +++-
arch/powerpc/platforms/powernv/pci.h | 100 ++
arch/powerpc/platforms/powernv/smp.c | 2 +-
arch/powerpc/platforms/ps3/interrupt.c | 103 +-
arch/powerpc/platforms/ps3/repository.c | 137 +-
arch/powerpc/platforms/ps3/setup.c | 4 +-
arch/powerpc/platforms/ps3/smp.c | 2 +-
arch/powerpc/platforms/ps3/spu.c | 2 +-
arch/powerpc/platforms/pseries/Kconfig | 9 +
arch/powerpc/platforms/pseries/Makefile | 1 +
arch/powerpc/platforms/pseries/hvCall_inst.c | 4 +-
arch/powerpc/platforms/pseries/iommu.c | 61 +-
arch/powerpc/platforms/pseries/lpar.c | 2 +
arch/powerpc/platforms/pseries/nvram.c | 7 +
arch/powerpc/platforms/pseries/processor_idle.c | 329 +++++
arch/powerpc/platforms/pseries/pseries.h | 3 +
arch/powerpc/platforms/pseries/setup.c | 109 +--
arch/powerpc/platforms/pseries/smp.c | 1 +
arch/powerpc/platforms/wsp/Kconfig | 12 +-
arch/powerpc/platforms/wsp/Makefile | 8 +-
arch/powerpc/platforms/wsp/chroma.c | 56 +
arch/powerpc/platforms/wsp/h8.c | 134 ++
arch/powerpc/platforms/wsp/opb_pic.c | 3 +-
arch/powerpc/platforms/wsp/psr2.c | 56 +-
arch/powerpc/platforms/wsp/wsp.c | 115 ++
arch/powerpc/platforms/wsp/wsp.h | 16 +-
arch/powerpc/relocs_check.pl | 14 +-
arch/powerpc/sysdev/Makefile | 3 +-
arch/powerpc/sysdev/ehv_pic.c | 1 +
arch/powerpc/sysdev/fsl_ifc.c | 310 ++++
arch/powerpc/sysdev/fsl_lbc.c | 37 +
arch/powerpc/sysdev/fsl_msi.c | 99 ++-
arch/powerpc/sysdev/fsl_msi.h | 10 +-
arch/powerpc/sysdev/fsl_pci.c | 84 ++
arch/powerpc/sysdev/fsl_rio.c | 1519 ++++----------------
arch/powerpc/sysdev/fsl_rio.h | 135 ++
arch/powerpc/sysdev/fsl_rmu.c | 1104 ++++++++++++++
arch/powerpc/sysdev/mpic.c | 201 ++-
arch/powerpc/sysdev/ppc4xx_pci.c | 85 +-
arch/powerpc/sysdev/ppc4xx_pci.h | 7 +
arch/powerpc/sysdev/qe_lib/qe.c | 2 +-
arch/powerpc/sysdev/xics/icp-hv.c | 47 +-
arch/powerpc/sysdev/xics/xics-common.c | 2 +-
arch/powerpc/xmon/xmon.c | 16 +-
arch/sparc/kernel/sys_sparc_64.c | 6 +-
drivers/edac/mpc85xx_edac.c | 2 +-
drivers/net/ethernet/toshiba/ps3_gelic_net.c | 4 +-
drivers/tty/serial/pmac_zilog.c | 423 ++----
drivers/tty/serial/pmac_zilog.h | 19 +-
drivers/tty/serial/ucc_uart.c | 3 +
drivers/video/offb.c | 71 +-
include/linux/cpuidle.h | 2 -
tools/perf/arch/powerpc/util/dwarf-regs.c | 3 +
393 files changed, 21769 insertions(+), 16279 deletions(-)
create mode 100644 Documentation/devicetree/bindings/powerpc/fsl/srio-rmu.txt
create mode 100644 Documentation/devicetree/bindings/powerpc/fsl/srio.txt
create mode 100644 arch/powerpc/boot/dts/currituck.dts
create mode 100644 arch/powerpc/boot/dts/fsl/mpc8536si-post.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/mpc8536si-pre.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/mpc8544si-post.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/mpc8544si-pre.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/mpc8548si-post.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/mpc8548si-pre.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/mpc8568si-post.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/mpc8568si-pre.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/mpc8569si-post.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/mpc8569si-pre.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/mpc8572si-post.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/mpc8572si-pre.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/p1010si-post.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/p1010si-pre.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/p1020si-post.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/p1020si-pre.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/p1021si-post.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/p1021si-pre.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/p1022si-post.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/p1022si-pre.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/p1023si-post.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/p1023si-pre.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/p2020si-post.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/p2020si-pre.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/p2041si-post.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/p2041si-pre.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/p3041si-post.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/p3041si-pre.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/p3060si-post.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/p3060si-pre.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/p4080si-post.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/p4080si-pre.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/p5020si-post.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/p5020si-pre.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/pq3-dma-0.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/pq3-dma-1.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/pq3-duart-0.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/pq3-esdhc-0.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/pq3-espi-0.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/pq3-etsec1-0.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/pq3-etsec1-1.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/pq3-etsec1-2.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/pq3-etsec1-3.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/pq3-etsec1-timer-0.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/pq3-etsec2-0.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/pq3-etsec2-1.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/pq3-etsec2-2.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/pq3-etsec2-grp2-0.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/pq3-etsec2-grp2-1.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/pq3-etsec2-grp2-2.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/pq3-gpio-0.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/pq3-i2c-0.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/pq3-i2c-1.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/pq3-mpic-timer-B.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/pq3-mpic.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/pq3-rmu-0.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/pq3-sata2-0.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/pq3-sata2-1.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/pq3-sec2.1-0.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/pq3-sec3.0-0.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/pq3-sec3.1-0.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/pq3-sec3.3-0.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/pq3-sec4.4-0.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/pq3-usb2-dr-0.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/pq3-usb2-dr-1.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/qoriq-dma-0.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/qoriq-dma-1.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/qoriq-duart-0.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/qoriq-duart-1.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/qoriq-esdhc-0.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/qoriq-espi-0.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/qoriq-gpio-0.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/qoriq-i2c-0.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/qoriq-i2c-1.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/qoriq-mpic.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/qoriq-rmu-0.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/qoriq-sata2-0.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/qoriq-sata2-1.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/qoriq-sec4.0-0.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/qoriq-sec4.1-0.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/qoriq-sec4.2-0.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/qoriq-usb2-dr-0.dtsi
create mode 100644 arch/powerpc/boot/dts/fsl/qoriq-usb2-mph-0.dtsi
create mode 100644 arch/powerpc/boot/dts/klondike.dts
create mode 100644 arch/powerpc/boot/dts/mpc8536ds.dtsi
create mode 100644 arch/powerpc/boot/dts/mpc8544ds.dtsi
create mode 100644 arch/powerpc/boot/dts/mpc8572ds.dtsi
create mode 100644 arch/powerpc/boot/dts/obs600.dts
create mode 100644 arch/powerpc/boot/dts/p1010rdb.dtsi
create mode 100644 arch/powerpc/boot/dts/p1010rdb_36b.dts
delete mode 100644 arch/powerpc/boot/dts/p1010si.dtsi
create mode 100644 arch/powerpc/boot/dts/p1020rdb.dtsi
create mode 100644 arch/powerpc/boot/dts/p1020rdb_36b.dts
delete mode 100644 arch/powerpc/boot/dts/p1020si.dtsi
create mode 100644 arch/powerpc/boot/dts/p2020ds.dtsi
delete mode 100644 arch/powerpc/boot/dts/p2020si.dtsi
delete mode 100644 arch/powerpc/boot/dts/p2041si.dtsi
delete mode 100644 arch/powerpc/boot/dts/p3041si.dtsi
delete mode 100644 arch/powerpc/boot/dts/p3060si.dtsi
delete mode 100644 arch/powerpc/boot/dts/p4080si.dtsi
delete mode 100644 arch/powerpc/boot/dts/p5020si.dtsi
create mode 100644 arch/powerpc/boot/treeboot-currituck.c
create mode 100644 arch/powerpc/configs/40x/klondike_defconfig
create mode 100644 arch/powerpc/configs/40x/obs600_defconfig
create mode 100644 arch/powerpc/configs/44x/currituck_defconfig
create mode 100644 arch/powerpc/configs/chroma_defconfig
create mode 100644 arch/powerpc/include/asm/fsl_ifc.h
delete mode 100644 arch/powerpc/include/asm/rwsem.h
create mode 100644 arch/powerpc/kernel/reloc_32.S
create mode 100644 arch/powerpc/lib/copyuser_power7.S
create mode 100644 arch/powerpc/lib/copyuser_power7_vmx.c
create mode 100644 arch/powerpc/mm/icswx.c
create mode 100644 arch/powerpc/mm/icswx.h
create mode 100644 arch/powerpc/mm/icswx_pid.c
create mode 100644 arch/powerpc/platforms/44x/currituck.c
create mode 100644 arch/powerpc/platforms/85xx/common.c
create mode 100644 arch/powerpc/platforms/85xx/mpc85xx.h
create mode 100644 arch/powerpc/platforms/85xx/smp.h
create mode 100644 arch/powerpc/platforms/powernv/pci-ioda.c
create mode 100644 arch/powerpc/platforms/pseries/processor_idle.c
create mode 100644 arch/powerpc/platforms/wsp/chroma.c
create mode 100644 arch/powerpc/platforms/wsp/h8.c
create mode 100644 arch/powerpc/platforms/wsp/wsp.c
create mode 100644 arch/powerpc/sysdev/fsl_ifc.c
create mode 100644 arch/powerpc/sysdev/fsl_rio.h
create mode 100644 arch/powerpc/sysdev/fsl_rmu.c
^ permalink raw reply
* Re: [PATCH] fsl/mpic: Document and use the "big-endian" device-tree flag
From: Kumar Gala @ 2012-01-05 18:35 UTC (permalink / raw)
To: Kyle Moffett
Cc: linux-doc, Lucas De Marchi, devicetree-discuss, Stuart Yoder,
Rob Herring, linux-kernel, Randy Dunlap, Paul Mackerras,
Josh Boyer, linuxppc-dev
In-Reply-To: <1324571123-11577-1-git-send-email-Kyle.D.Moffett@boeing.com>
On Dec 22, 2011, at 10:25 AM, Kyle Moffett wrote:
> The MPIC code checks for a "big-endian" property and sets the flag
> MPIC_BIG_ENDIAN if one is present. Unfortunately, the PowerQUICC-III
> compatible device-tree does not specify it, so all of the board ports
> need to manually set that flag when calling mpic_alloc().
>
> Document the flag and add it to the pq3 device tree. Existing code
> will still need to pass the MPIC_BIG_ENDIAN flag because their dtb may
> not have this property, but new platforms shouldn't need to do so.
>
> Signed-off-by: Kyle Moffett <Kyle.D.Moffett@boeing.com>
> ---
> .../devicetree/bindings/powerpc/fsl/mpic.txt | 9 ++++++++-
> arch/powerpc/boot/dts/fsl/pq3-mpic.dtsi | 1 +
> 2 files changed, 9 insertions(+), 1 deletions(-)
need to update arch/powerpc/boot/dts/fsl/qoriq-mpic.dtsi
- k
^ permalink raw reply
* Re: Cannot wake-up from standby with MPC8313
From: Scott Wood @ 2012-01-05 18:22 UTC (permalink / raw)
To: Norbert van Bolhuis; +Cc: linuxppc-dev@ozlabs.org
In-Reply-To: <4F05C8C2.9070401@aimvalley.nl>
On 01/05/2012 09:58 AM, Norbert van Bolhuis wrote:
> thanks for your response.
>
> not setting MSR_POW gives same result.
OK, so you're not getting an interrupt regardless of low-power state.
Check whether the interrupt is getting masked during standby preparation.
Does the interrupt handler run when you're not trying to enter standby?
> if I set kernel.powersave-nap=1 it works fine,
What is "it"? Do you mean that powersave-nap doesn't break things, or
that standby works when you specify that?
> so apparently NAP/DOZE mode does work (if CPU is idle). This saves almost no
> power though. Standby mode saves about 300-500 mW.
>
> The problem could well be our board though, today I learned it does
> work by connecting an (inactive) JTAG debugger.
> Also, on another board it always works.
You mean connecting a JTAG but not doing anything with it made
wake-from-standby work?
There was a bug like that on early revisions of the mpc8313erdb board --
though in that case if you had a bad board the system would hang
whenever you access any PMC register. I'm not sure what the mechanism
of failure was; IIRC the fix was adding a resistor.
-Scott
^ permalink raw reply
* Re: Cannot wake-up from standby with MPC8313
From: Norbert van Bolhuis @ 2012-01-05 15:58 UTC (permalink / raw)
To: Scott Wood; +Cc: linuxppc-dev@ozlabs.org
In-Reply-To: <4F04BFEA.1050009@freescale.com>
On 01/04/12 22:08, Scott Wood wrote:
...
> It's been a while since I've touched this, but IIRC the PMC events are
> mainly important for deep sleep, and for normal sleep (standby) you can
> wake from any interrupt other than core interrupts like timebase. I'm
> not sure to what extent setting PMCCR[SLPEN] affects this -- I don't see
> where the documentation says what "system low power state" means. I
> would be surprised if GPIO were affected, though, since it's supported
> as a wakeup source even in deep sleep. I think I was able to wake from
> standby on a UART interrupt even with SLPEN set.
>
> Are you sure the GPIO block is asserting an interrupt, and that it
> hasn't been masked during the preparation for standby?
>
> What happens if you modify mpc6xx_enter_standby() to not actually set
> MSR_POW?
>
thanks for your response.
not setting MSR_POW gives same result.
if I set kernel.powersave-nap=1 it works fine, so apparently
NAP/DOZE mode does work (if CPU is idle). This saves almost no
power though. Standby mode saves about 300-500 mW.
The problem could well be our board though, today I learned it does
work by connecting an (inactive) JTAG debugger.
Also, on another board it always works.
And indeed wake-up occurs through GPIO interrupt or UART interrupt
(key press on console).
---
NvBolhuis
^ permalink raw reply
* [PATCH v2 3/3] KVM: PPC: epapr: install ev_idle hcall for e500 guest
From: Liu Yu @ 2012-01-05 9:06 UTC (permalink / raw)
To: agraf, kvm-ppc, kvm; +Cc: scottwood, linuxppc-dev, Liu Yu, timur
In-Reply-To: <1325754412-29963-1-git-send-email-yu.liu@freescale.com>
If the guest hypervisor node contains "has-idle" property.
Signed-off-by: Liu Yu <yu.liu@freescale.com>
---
v2:
1. move the idle code into assembly.
2. move the part that check "has-idle" into epapr code.
arch/powerpc/include/asm/epapr_hcalls.h | 1 +
arch/powerpc/include/asm/machdep.h | 5 +++++
arch/powerpc/kernel/epapr_para.c | 4 ++++
arch/powerpc/kernel/idle_e500.S | 17 +++++++++++++++++
arch/powerpc/kernel/kvm.c | 24 ++++++++++++++++++++++++
5 files changed, 51 insertions(+), 0 deletions(-)
diff --git a/arch/powerpc/include/asm/epapr_hcalls.h b/arch/powerpc/include/asm/epapr_hcalls.h
index c4b86e4..566805e 100644
--- a/arch/powerpc/include/asm/epapr_hcalls.h
+++ b/arch/powerpc/include/asm/epapr_hcalls.h
@@ -150,6 +150,7 @@
extern u32 *epapr_hcall_insts;
extern int epapr_hcall_insts_len;
+extern bool epapr_hcall_has_idle;
static inline void epapr_get_hcall_insts(u32 **instp, int *lenp)
{
diff --git a/arch/powerpc/include/asm/machdep.h b/arch/powerpc/include/asm/machdep.h
index 47cacdd..7e56abf 100644
--- a/arch/powerpc/include/asm/machdep.h
+++ b/arch/powerpc/include/asm/machdep.h
@@ -255,6 +255,11 @@ extern void power4_idle(void);
extern void power7_idle(void);
extern void ppc6xx_idle(void);
extern void book3e_idle(void);
+#ifdef CONFIG_KVM_GUEST
+extern void e500_ev_idle(unsigned long *, unsigned long *, unsigned long,
+ unsigned long (*)(unsigned long *, unsigned long *,
+ unsigned long));
+#endif
/*
* ppc_md contains a copy of the machine description structure for the
diff --git a/arch/powerpc/kernel/epapr_para.c b/arch/powerpc/kernel/epapr_para.c
index 714dcb3..1f37ddf 100644
--- a/arch/powerpc/kernel/epapr_para.c
+++ b/arch/powerpc/kernel/epapr_para.c
@@ -22,6 +22,7 @@
u32 *epapr_hcall_insts;
int epapr_hcall_insts_len;
+bool epapr_hcall_has_idle;
static int __init epapr_para_init(void)
{
@@ -39,6 +40,9 @@ static int __init epapr_para_init(void)
epapr_hcall_insts_len = len;
}
+ if (of_get_property(hyper_node, "has-idle", NULL))
+ epapr_hcall_has_idle = true;
+
return 0;
}
diff --git a/arch/powerpc/kernel/idle_e500.S b/arch/powerpc/kernel/idle_e500.S
index 3e2b95c..6ea95f0 100644
--- a/arch/powerpc/kernel/idle_e500.S
+++ b/arch/powerpc/kernel/idle_e500.S
@@ -85,6 +85,23 @@ END_FTR_SECTION_IFSET(CPU_FTR_L2CSR|CPU_FTR_CAN_NAP)
2: b 2b
#endif /* !E500MC */
+#ifdef CONFIG_KVM_GUEST
+/*
+ * r3 contains the pointer to in[8]
+ * r4 contains the pointer to out[8]
+ * r5 contains the hcall vendor and nr
+ * r6 contains the handler which send hcall
+ */
+_GLOBAL(e500_ev_idle)
+ rlwinm r7,r1,0,0,31-THREAD_SHIFT /* current thread_info */
+ lwz r8,TI_LOCAL_FLAGS(r7) /* set napping bit */
+ ori r8,r8,_TLF_NAPPING /* so when we take an exception */
+ stw r8,TI_LOCAL_FLAGS(r7) /* it will return to our caller */
+ wrteei 1
+ mtctr r6
+ bctr
+#endif /* KVM_GUEST */
+
/*
* Return from NAP/DOZE mode, restore some CPU specific registers,
* r2 containing physical address of current.
diff --git a/arch/powerpc/kernel/kvm.c b/arch/powerpc/kernel/kvm.c
index 82a9137..8952e12 100644
--- a/arch/powerpc/kernel/kvm.c
+++ b/arch/powerpc/kernel/kvm.c
@@ -29,6 +29,7 @@
#include <asm/cacheflush.h>
#include <asm/disassemble.h>
#include <asm/epapr_hcalls.h>
+#include <asm/machdep.h>
#define KVM_MAGIC_PAGE (-4096L)
#define magic_var(x) KVM_MAGIC_PAGE + offsetof(struct kvm_vcpu_arch_shared, x)
@@ -578,6 +579,25 @@ static __init void kvm_free_tmp(void)
}
}
+static void kvm_hcall_idle(void)
+{
+#ifdef CONFIG_KVM_E500
+ ulong in[8];
+ ulong out[8];
+
+ e500_ev_idle(in, out, HC_VENDOR_EPAPR | HC_EV_IDLE, kvm_hypercall);
+#endif
+}
+
+static bool kvm_para_has_idle(void)
+{
+#ifdef CONFIG_BOOKE
+ return epapr_hcall_has_idle;
+#else
+ return false;
+#endif
+}
+
static int __init kvm_guest_init(void)
{
if (!kvm_para_available())
@@ -594,6 +614,10 @@ static int __init kvm_guest_init(void)
powersave_nap = 1;
#endif
+ /* Install hcall based power_save for guest kernel */
+ if (kvm_para_has_idle())
+ ppc_md.power_save = kvm_hcall_idle;
+
free_tmp:
kvm_free_tmp();
--
1.6.4
^ permalink raw reply related
* [PATCH 1/3] KVM: PPC: epapr: Factor out the epapr init
From: Liu Yu @ 2012-01-05 9:06 UTC (permalink / raw)
To: agraf, kvm-ppc, kvm; +Cc: scottwood, linuxppc-dev, Liu Yu, timur
from the kvm guest paravirt init code.
Signed-off-by: Liu Yu <yu.liu@freescale.com>
---
arch/powerpc/include/asm/epapr_hcalls.h | 8 +++++
arch/powerpc/kernel/Makefile | 1 +
arch/powerpc/kernel/epapr_para.c | 45 +++++++++++++++++++++++++++++++
arch/powerpc/kernel/kvm.c | 9 +++++-
4 files changed, 62 insertions(+), 1 deletions(-)
create mode 100644 arch/powerpc/kernel/epapr_para.c
diff --git a/arch/powerpc/include/asm/epapr_hcalls.h b/arch/powerpc/include/asm/epapr_hcalls.h
index f3b0c2c..c4b86e4 100644
--- a/arch/powerpc/include/asm/epapr_hcalls.h
+++ b/arch/powerpc/include/asm/epapr_hcalls.h
@@ -148,6 +148,14 @@
#define EV_HCALL_CLOBBERS2 EV_HCALL_CLOBBERS3, "r5"
#define EV_HCALL_CLOBBERS1 EV_HCALL_CLOBBERS2, "r4"
+extern u32 *epapr_hcall_insts;
+extern int epapr_hcall_insts_len;
+
+static inline void epapr_get_hcall_insts(u32 **instp, int *lenp)
+{
+ *instp = epapr_hcall_insts;
+ *lenp = epapr_hcall_insts_len;
+}
/*
* We use "uintptr_t" to define a register because it's guaranteed to be a
diff --git a/arch/powerpc/kernel/Makefile b/arch/powerpc/kernel/Makefile
index ce4f7f1..1052bbc 100644
--- a/arch/powerpc/kernel/Makefile
+++ b/arch/powerpc/kernel/Makefile
@@ -134,6 +134,7 @@ ifneq ($(CONFIG_XMON)$(CONFIG_KEXEC),)
obj-y += ppc_save_regs.o
endif
+obj-$(CONFIG_BOOKE) += epapr_para.o
obj-$(CONFIG_KVM_GUEST) += kvm.o kvm_emul.o
# Disable GCOV in odd or sensitive code
diff --git a/arch/powerpc/kernel/epapr_para.c b/arch/powerpc/kernel/epapr_para.c
new file mode 100644
index 0000000..714dcb3
--- /dev/null
+++ b/arch/powerpc/kernel/epapr_para.c
@@ -0,0 +1,45 @@
+/*
+ * ePAPR para-virtualization support.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License, version 2, as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Copyright (C) 2012 Freescale Semiconductor, Inc.
+ */
+
+#include <linux/of.h>
+#include <asm/epapr_hcalls.h>
+
+u32 *epapr_hcall_insts;
+int epapr_hcall_insts_len;
+
+static int __init epapr_para_init(void)
+{
+ struct device_node *hyper_node;
+ u32 *insts;
+ int len;
+
+ hyper_node = of_find_node_by_path("/hypervisor");
+ if (!hyper_node)
+ return -ENODEV;
+
+ insts = (u32*)of_get_property(hyper_node, "hcall-instructions", &len);
+ if (!(len % 4) && (len >= (4 * 4))) {
+ epapr_hcall_insts = insts;
+ epapr_hcall_insts_len = len;
+ }
+
+ return 0;
+}
+
+early_initcall(epapr_para_init);
diff --git a/arch/powerpc/kernel/kvm.c b/arch/powerpc/kernel/kvm.c
index b06bdae..82a9137 100644
--- a/arch/powerpc/kernel/kvm.c
+++ b/arch/powerpc/kernel/kvm.c
@@ -28,6 +28,7 @@
#include <asm/sections.h>
#include <asm/cacheflush.h>
#include <asm/disassemble.h>
+#include <asm/epapr_hcalls.h>
#define KVM_MAGIC_PAGE (-4096L)
#define magic_var(x) KVM_MAGIC_PAGE + offsetof(struct kvm_vcpu_arch_shared, x)
@@ -535,9 +536,10 @@ EXPORT_SYMBOL_GPL(kvm_hypercall);
static int kvm_para_setup(void)
{
extern u32 kvm_hypercall_start;
- struct device_node *hyper_node;
u32 *insts;
int len, i;
+#ifndef CONFIG_BOOKE
+ struct device_node *hyper_node;
hyper_node = of_find_node_by_path("/hypervisor");
if (!hyper_node)
@@ -548,6 +550,11 @@ static int kvm_para_setup(void)
return -1;
if (len > (4 * 4))
return -1;
+#else
+ epapr_get_hcall_insts(&insts, &len);
+ if (insts == NULL)
+ return -1;
+#endif /* !BOOKE */
for (i = 0; i < (len / 4); i++)
kvm_patch_ins(&(&kvm_hypercall_start)[i], insts[i]);
--
1.6.4
^ permalink raw reply related
* RE: Problem in getting shared memory access on P1022RDK
From: Arshad, Farrukh @ 2012-01-05 5:46 UTC (permalink / raw)
To: tiejun.chen; +Cc: Scott Wood, linuxppc-dev@lists.ozlabs.org
In-Reply-To: <4F050653.6010601@windriver.com>
Pj4gV2FzIHRoZSBrZXJuZWwgb3B0aW9uLCBDT05GSUdfU01QLCBlbmFibGVkIGZvciBib3RoIHR3
byBrZXJuZWxzPw0KWWVzIENPTkZJR19TTVAgaXMgZW5hYmxlZCBmb3IgYm90aCBrZXJuZWxzLiAN
Cg0KPj4gTWF5YmUgeW91IHNob3VsZCBtYWtlIHN1cmUgaWYga2VybmVsIGhhdmUgYSBhcHByb3By
aWF0ZSBtZW1vcnkgYXR0cmlidXRlIGJ5IGR1bXBpbmcgVExCIGVudHJ5Lg0KVGhhbmtzIGZvciB0
aGUgcG9pbnRlci4gSSB3aWxsIHRyeSB0aGlzIG9uZS4NCg0KUmVnYXJkcywNCkZhcnJ1a2ggQXJz
aGFkDQo=
^ permalink raw reply
* [PATCH v2] DTS: fix cmd12 bug and add the chip compatible for eSDHC
From: r66093 @ 2012-01-05 1:40 UTC (permalink / raw)
To: linuxppc-dev; +Cc: Jerry Huang
From: Jerry Huang <Chang-Ming.Huang@freescale.com>
Accordint to latest kernel, the auto-cmd12 property should be
"sdhci,auto-cmd12", and according to the SDHC binding and the workaround for
the special chip, add the chip compatible for eSDHC: "fsl,p1022-esdhc",
"fsl,mpc8536-esdhc", "fsl,p2020-esdhc" and "fsl,p1010-esdhc".
Signed-off-by: Jerry Huang <Chang-Ming.Huang@freescale.com>
---
changes for v2:
- reverse the special compatible entries
arch/powerpc/boot/dts/fsl/mpc8536si-post.dtsi | 4 ++++
arch/powerpc/boot/dts/fsl/p1010si-post.dtsi | 3 ++-
arch/powerpc/boot/dts/fsl/p1022si-post.dtsi | 3 ++-
arch/powerpc/boot/dts/fsl/p2020si-post.dtsi | 4 ++++
4 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/arch/powerpc/boot/dts/fsl/mpc8536si-post.dtsi b/arch/powerpc/boot/dts/fsl/mpc8536si-post.dtsi
index 89af626..44e0ed9 100644
--- a/arch/powerpc/boot/dts/fsl/mpc8536si-post.dtsi
+++ b/arch/powerpc/boot/dts/fsl/mpc8536si-post.dtsi
@@ -236,6 +236,10 @@
};
/include/ "pq3-esdhc-0.dtsi"
+ sdhc@2e000 {
+ compatible = "fsl,mpc8536-esdhc", "fsl,esdhc";
+ };
+
/include/ "pq3-sec3.0-0.dtsi"
/include/ "pq3-mpic.dtsi"
/include/ "pq3-mpic-timer-B.dtsi"
diff --git a/arch/powerpc/boot/dts/fsl/p1010si-post.dtsi b/arch/powerpc/boot/dts/fsl/p1010si-post.dtsi
index bd9e163..8ebe79c 100644
--- a/arch/powerpc/boot/dts/fsl/p1010si-post.dtsi
+++ b/arch/powerpc/boot/dts/fsl/p1010si-post.dtsi
@@ -158,7 +158,8 @@
/include/ "pq3-usb2-dr-0.dtsi"
/include/ "pq3-esdhc-0.dtsi"
sdhc@2e000 {
- fsl,sdhci-auto-cmd12;
+ compatible = "fsl,p1010-esdhc", "fsl,esdhc";
+ sdhci,auto-cmd12;
};
/include/ "pq3-sec4.4-0.dtsi"
diff --git a/arch/powerpc/boot/dts/fsl/p1022si-post.dtsi b/arch/powerpc/boot/dts/fsl/p1022si-post.dtsi
index 16239b1..9999e56 100644
--- a/arch/powerpc/boot/dts/fsl/p1022si-post.dtsi
+++ b/arch/powerpc/boot/dts/fsl/p1022si-post.dtsi
@@ -203,7 +203,8 @@
/include/ "pq3-esdhc-0.dtsi"
sdhc@2e000 {
- fsl,sdhci-auto-cmd12;
+ compatible = "fsl,p1022-esdhc", "fsl,esdhc";
+ sdhci,auto-cmd12;
};
/include/ "pq3-sec3.3-0.dtsi"
diff --git a/arch/powerpc/boot/dts/fsl/p2020si-post.dtsi b/arch/powerpc/boot/dts/fsl/p2020si-post.dtsi
index c041050..8ec1b13 100644
--- a/arch/powerpc/boot/dts/fsl/p2020si-post.dtsi
+++ b/arch/powerpc/boot/dts/fsl/p2020si-post.dtsi
@@ -182,6 +182,10 @@
/include/ "pq3-etsec1-1.dtsi"
/include/ "pq3-etsec1-2.dtsi"
/include/ "pq3-esdhc-0.dtsi"
+ sdhc@2e000 {
+ compatible = "fsl,p2020-esdhc", "fsl,esdhc";
+ };
+
/include/ "pq3-sec3.1-0.dtsi"
/include/ "pq3-mpic.dtsi"
/include/ "pq3-mpic-timer-B.dtsi"
--
1.7.5.4
^ permalink raw reply related
* Re: Problem in getting shared memory access on P1022RDK
From: tiejun.chen @ 2012-01-05 2:09 UTC (permalink / raw)
To: Arshad, Farrukh; +Cc: Scott Wood, linuxppc-dev@lists.ozlabs.org
In-Reply-To: <93CD5F41FDBC6042A6B449764F3B35CC050CCB2E@EU-MBX-03.mgc.mentorg.com>
Arshad, Farrukh wrote:
> How can I verify if the memory mapped is coherent on both cores. My memory partitioning is given below
>
> Core Base Address Size
> Core 0 0x0000,0000 0x1000,0000 --> CONFIG_PHYSICAL_START = bootm_low = Base Address
> Core 1 0x1000,0000 0x0C00,0000 --> CONFIG_PHYSICAL_START = bootm_low = Base Address
> Shared Mem 0x1C00,0000 0x0400,0000
Was the kernel option, CONFIG_SMP, enabled for both two kernels?
CONFIG_SMP would affect the memory attribute for cache coherency. Maybe you
should make sure if kernel have a appropriate memory attribute by dumping TLB entry.
Tiejun
>
> Regards,
> Farrukh Arshad
>
> -----Original Message-----
> From: Scott Wood [mailto:scottwood@freescale.com]
> Sent: Tuesday, January 03, 2012 10:10 PM
> To: Arshad, Farrukh
> Cc: linuxppc-dev@lists.ozlabs.org
> Subject: Re: Problem in getting shared memory access on P1022RDK
>
> On 01/03/2012 03:42 AM, Arshad, Farrukh wrote:
>> Adding more to it,
>>
>>
>>
>> When I write from Core 1 on the shared memory region it is visible at
>> Core 0 and it can read what I have written from Core 1 but when I
>> write from Core 0 on this shared memory it is not visible on Core 1.
>
> Is the memory mapped coherent on both cores?
>
> -Scott
^ permalink raw reply
* Re: linux-next: manual merge of the driver-core tree with the powerpc tree
From: Greg KH @ 2012-01-04 23:08 UTC (permalink / raw)
To: Stephen Rothwell
Cc: Deepthi Dharwar, Trinabh Gupta, Kay Sievers, linux-kernel,
linux-next, Paul Mackerras, linuxppc-dev, Arun R Bharadwaj
In-Reply-To: <20111228165102.fbb6433fd94d11240134327e@canb.auug.org.au>
On Wed, Dec 28, 2011 at 04:51:02PM +1100, Stephen Rothwell wrote:
> Hi Greg,
>
> Today's linux-next merge of the driver-core tree got a conflict in
> arch/powerpc/kernel/sysfs.c between commit 595fe91447b0 ("powerpc: Export
> PIR data through sysfs") from the powerpc tree and commits 8a25a2fd126c
> ("cpu: convert 'cpu' and 'machinecheck' sysdev_class to a regular
> subsystem") and 707827f3387d ("powerpc/cpuidle: cpuidle driver for
> pSeries") from the driver-core tree.
>
> I fixed it up (see below) and can carry the fix as necessary.
Looks good, thanks.
greg k-h
^ permalink raw reply
* Re: [PATCH] fsl/mpic: Document and use the "big-endian" device-tree flag
From: Benjamin Herrenschmidt @ 2012-01-04 23:08 UTC (permalink / raw)
To: Randy Dunlap
Cc: linux-doc, Lucas De Marchi, linux-kernel, devicetree-discuss,
Rob Herring, Stuart Yoder, Paul Mackerras, Kyle Moffett,
Josh Boyer, linuxppc-dev
In-Reply-To: <4F04DF50.4070201@xenotime.net>
On Wed, 2012-01-04 at 15:22 -0800, Randy Dunlap wrote:
> On 12/22/2011 08:25 AM, Kyle Moffett wrote:
> > The MPIC code checks for a "big-endian" property and sets the flag
> > MPIC_BIG_ENDIAN if one is present. Unfortunately, the PowerQUICC-III
> > compatible device-tree does not specify it, so all of the board ports
> > need to manually set that flag when calling mpic_alloc().
> >
> > Document the flag and add it to the pq3 device tree. Existing code
> > will still need to pass the MPIC_BIG_ENDIAN flag because their dtb may
> > not have this property, but new platforms shouldn't need to do so.
> >
> > Signed-off-by: Kyle Moffett <Kyle.D.Moffett@boeing.com>
>
> Grant, are you merging this patch?
> I don't think I should merge the patch to arch/powerpc/boot/dts/fsl/pq3-mpic.dtsi.
Best is to leave the whole lot to me. It's not like mpic is used
anywhere else ...
Cheers,
Ben.
> > --
> > .../devicetree/bindings/powerpc/fsl/mpic.txt | 9 ++++++++-
> > arch/powerpc/boot/dts/fsl/pq3-mpic.dtsi | 1 +
> > 2 files changed, 9 insertions(+), 1 deletions(-)
> >
> > diff --git a/Documentation/devicetree/bindings/powerpc/fsl/mpic.txt b/Documentation/devicetree/bindings/powerpc/fsl/mpic.txt
> > index 2cf38bd..ebafba2 100644
> > --- a/Documentation/devicetree/bindings/powerpc/fsl/mpic.txt
> > +++ b/Documentation/devicetree/bindings/powerpc/fsl/mpic.txt
> > @@ -56,7 +56,14 @@ PROPERTIES
> > to the client. The presence of this property also mandates
> > that any initialization related to interrupt sources shall
> > be limited to sources explicitly referenced in the device tree.
> > -
> > +
> > + - big-endian
> > + Usage: optional
> > + Value type: <empty>
> > + If present the MPIC will be assumed to be big-endian. Some
> > + device-trees omit this property on MPIC nodes even when the MPIC is
> > + in fact big-endian, so certain boards override this property.
> > +
> > INTERRUPT SPECIFIER DEFINITION
> >
> > Interrupt specifiers consists of 4 cells encoded as
> > diff --git a/arch/powerpc/boot/dts/fsl/pq3-mpic.dtsi b/arch/powerpc/boot/dts/fsl/pq3-mpic.dtsi
> > index 5c80460..47f2b67 100644
> > --- a/arch/powerpc/boot/dts/fsl/pq3-mpic.dtsi
> > +++ b/arch/powerpc/boot/dts/fsl/pq3-mpic.dtsi
> > @@ -39,6 +39,7 @@ mpic: pic@40000 {
> > reg = <0x40000 0x40000>;
> > compatible = "fsl,mpic";
> > device_type = "open-pic";
> > + big-endian;
> > };
> >
> > timer@41100 {
>
>
^ permalink raw reply
* Re: [PATCH] fsl/mpic: Document and use the "big-endian" device-tree flag
From: Randy Dunlap @ 2012-01-04 23:22 UTC (permalink / raw)
To: Kyle Moffett
Cc: linux-doc, Lucas De Marchi, devicetree-discuss, Rob Herring,
Stuart Yoder, Paul Mackerras, Josh Boyer, linuxppc-dev,
linux-kernel
In-Reply-To: <1324571123-11577-1-git-send-email-Kyle.D.Moffett@boeing.com>
On 12/22/2011 08:25 AM, Kyle Moffett wrote:
> The MPIC code checks for a "big-endian" property and sets the flag
> MPIC_BIG_ENDIAN if one is present. Unfortunately, the PowerQUICC-III
> compatible device-tree does not specify it, so all of the board ports
> need to manually set that flag when calling mpic_alloc().
>
> Document the flag and add it to the pq3 device tree. Existing code
> will still need to pass the MPIC_BIG_ENDIAN flag because their dtb may
> not have this property, but new platforms shouldn't need to do so.
>
> Signed-off-by: Kyle Moffett <Kyle.D.Moffett@boeing.com>
Grant, are you merging this patch?
I don't think I should merge the patch to arch/powerpc/boot/dts/fsl/pq3-mpic.dtsi.
> ---
> .../devicetree/bindings/powerpc/fsl/mpic.txt | 9 ++++++++-
> arch/powerpc/boot/dts/fsl/pq3-mpic.dtsi | 1 +
> 2 files changed, 9 insertions(+), 1 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/powerpc/fsl/mpic.txt b/Documentation/devicetree/bindings/powerpc/fsl/mpic.txt
> index 2cf38bd..ebafba2 100644
> --- a/Documentation/devicetree/bindings/powerpc/fsl/mpic.txt
> +++ b/Documentation/devicetree/bindings/powerpc/fsl/mpic.txt
> @@ -56,7 +56,14 @@ PROPERTIES
> to the client. The presence of this property also mandates
> that any initialization related to interrupt sources shall
> be limited to sources explicitly referenced in the device tree.
> -
> +
> + - big-endian
> + Usage: optional
> + Value type: <empty>
> + If present the MPIC will be assumed to be big-endian. Some
> + device-trees omit this property on MPIC nodes even when the MPIC is
> + in fact big-endian, so certain boards override this property.
> +
> INTERRUPT SPECIFIER DEFINITION
>
> Interrupt specifiers consists of 4 cells encoded as
> diff --git a/arch/powerpc/boot/dts/fsl/pq3-mpic.dtsi b/arch/powerpc/boot/dts/fsl/pq3-mpic.dtsi
> index 5c80460..47f2b67 100644
> --- a/arch/powerpc/boot/dts/fsl/pq3-mpic.dtsi
> +++ b/arch/powerpc/boot/dts/fsl/pq3-mpic.dtsi
> @@ -39,6 +39,7 @@ mpic: pic@40000 {
> reg = <0x40000 0x40000>;
> compatible = "fsl,mpic";
> device_type = "open-pic";
> + big-endian;
> };
>
> timer@41100 {
--
~Randy
*** Remember to use Documentation/SubmitChecklist when testing your code ***
^ permalink raw reply
* [git pull] Please pull powerpc.git next branch
From: Kumar Gala @ 2012-01-04 22:06 UTC (permalink / raw)
To: Benjamin Herrenschmidt; +Cc: linuxppc-dev
The following changes since commit e4f387d8db3ba3c2dae4d8bdfe7bb5f4fe1bcb0d:
powerpc: Fix unpaired probe_hcall_entry and probe_hcall_exit (2012-01-03 12:09:27 +1100)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/galak/powerpc.git next
Andy Fleming (1):
powerpc: Add TBI PHY node to first MDIO bus
Julia Lawall (1):
arch/powerpc/sysdev/fsl_rmu.c: introduce missing kfree
Kumar Gala (3):
powerpc/fsl-pci: Allow 64-bit PCIe devices to DMA to any memory address
powerpc/fsl: Update defconfigs to enable some standard FSL HW features
powerpc/fsl: update compatiable on fsl 16550 uart nodes
Michael Neuling (1):
powerpc: fix compile error with 85xx/p1023_rds.c
Paul Gortmaker (1):
sbc834x: put full compat string in board match check
Prabhakar Kushwaha (1):
powerpc/fsl: Add support for Integrated Flash Controller
Timur Tabi (3):
powerpc/85xx: re-enable ePAPR byte channel driver in corenet32_smp_defconfig
powerpc/85xx: fix PCI and localbus properties in p1022ds.dts
powerpc/fsl: add MSI support for the Freescale hypervisor
Tony Breeds (1):
powerpc: fix compile error with 85xx/p1010rdb.c
arch/powerpc/Kconfig | 4 +
arch/powerpc/boot/dts/asp834x-redboot.dts | 4 +-
arch/powerpc/boot/dts/fsl/pq3-duart-0.dtsi | 4 +-
arch/powerpc/boot/dts/fsl/qoriq-duart-0.dtsi | 4 +-
arch/powerpc/boot/dts/fsl/qoriq-duart-1.dtsi | 4 +-
arch/powerpc/boot/dts/gef_ppc9a.dts | 4 +-
arch/powerpc/boot/dts/gef_sbc310.dts | 4 +-
arch/powerpc/boot/dts/gef_sbc610.dts | 4 +-
arch/powerpc/boot/dts/kmeter1.dts | 2 +-
arch/powerpc/boot/dts/kuroboxHD.dts | 4 +-
arch/powerpc/boot/dts/kuroboxHG.dts | 4 +-
arch/powerpc/boot/dts/mpc8308_p1m.dts | 4 +-
arch/powerpc/boot/dts/mpc8308rdb.dts | 4 +-
arch/powerpc/boot/dts/mpc8313erdb.dts | 4 +-
arch/powerpc/boot/dts/mpc8315erdb.dts | 4 +-
arch/powerpc/boot/dts/mpc832x_mds.dts | 4 +-
arch/powerpc/boot/dts/mpc832x_rdb.dts | 4 +-
arch/powerpc/boot/dts/mpc8349emitx.dts | 4 +-
arch/powerpc/boot/dts/mpc8349emitxgp.dts | 4 +-
arch/powerpc/boot/dts/mpc834x_mds.dts | 4 +-
arch/powerpc/boot/dts/mpc836x_mds.dts | 4 +-
arch/powerpc/boot/dts/mpc836x_rdk.dts | 4 +-
arch/powerpc/boot/dts/mpc8377_mds.dts | 4 +-
arch/powerpc/boot/dts/mpc8377_rdb.dts | 4 +-
arch/powerpc/boot/dts/mpc8377_wlan.dts | 4 +-
arch/powerpc/boot/dts/mpc8378_mds.dts | 4 +-
arch/powerpc/boot/dts/mpc8378_rdb.dts | 4 +-
arch/powerpc/boot/dts/mpc8379_mds.dts | 4 +-
arch/powerpc/boot/dts/mpc8379_rdb.dts | 4 +-
arch/powerpc/boot/dts/mpc8540ads.dts | 4 +-
arch/powerpc/boot/dts/mpc8541cds.dts | 4 +-
arch/powerpc/boot/dts/mpc8555cds.dts | 4 +-
arch/powerpc/boot/dts/mpc8610_hpcd.dts | 4 +-
arch/powerpc/boot/dts/mpc8641_hpcn.dts | 4 +-
arch/powerpc/boot/dts/mpc8641_hpcn_36b.dts | 4 +-
arch/powerpc/boot/dts/p1010rdb.dtsi | 5 +
arch/powerpc/boot/dts/p1020rdb.dtsi | 5 +
arch/powerpc/boot/dts/p1021mds.dts | 4 +
arch/powerpc/boot/dts/p1022ds.dts | 12 +-
arch/powerpc/boot/dts/p2020rdb.dts | 8 +-
arch/powerpc/boot/dts/sbc8349.dts | 4 +-
arch/powerpc/boot/dts/sbc8548.dts | 4 +-
arch/powerpc/boot/dts/sbc8641d.dts | 4 +-
arch/powerpc/boot/dts/socrates.dts | 4 +-
arch/powerpc/boot/dts/storcenter.dts | 4 +-
arch/powerpc/boot/dts/stxssa8555.dts | 4 +-
arch/powerpc/boot/dts/tqm8540.dts | 4 +-
arch/powerpc/boot/dts/tqm8541.dts | 4 +-
arch/powerpc/boot/dts/tqm8548-bigflash.dts | 4 +-
arch/powerpc/boot/dts/tqm8548.dts | 4 +-
arch/powerpc/boot/dts/tqm8555.dts | 4 +-
arch/powerpc/boot/dts/xcalibur1501.dts | 4 +-
arch/powerpc/boot/dts/xpedite5200.dts | 4 +-
arch/powerpc/boot/dts/xpedite5200_xmon.dts | 4 +-
arch/powerpc/boot/dts/xpedite5301.dts | 4 +-
arch/powerpc/boot/dts/xpedite5330.dts | 4 +-
arch/powerpc/boot/dts/xpedite5370.dts | 4 +-
arch/powerpc/configs/corenet32_smp_defconfig | 10 +-
arch/powerpc/configs/corenet64_smp_defconfig | 3 +-
arch/powerpc/configs/mpc85xx_defconfig | 16 +-
arch/powerpc/configs/mpc85xx_smp_defconfig | 17 +-
arch/powerpc/include/asm/fsl_ifc.h | 834 ++++++++++++++++++++++++++
arch/powerpc/platforms/83xx/sbc834x.c | 4 +-
arch/powerpc/platforms/85xx/p1010rdb.c | 2 -
arch/powerpc/platforms/85xx/p1023_rds.c | 1 -
arch/powerpc/sysdev/Makefile | 1 +
arch/powerpc/sysdev/fsl_ifc.c | 310 ++++++++++
arch/powerpc/sysdev/fsl_msi.c | 68 ++-
arch/powerpc/sysdev/fsl_msi.h | 7 +-
arch/powerpc/sysdev/fsl_pci.c | 84 +++
arch/powerpc/sysdev/fsl_rmu.c | 1 +
71 files changed, 1448 insertions(+), 150 deletions(-)
create mode 100644 arch/powerpc/include/asm/fsl_ifc.h
create mode 100644 arch/powerpc/sysdev/fsl_ifc.c
^ permalink raw reply
* Re: Cannot wake-up from standby with MPC8313
From: Scott Wood @ 2012-01-04 21:08 UTC (permalink / raw)
To: Norbert van Bolhuis; +Cc: linuxppc-dev@ozlabs.org
In-Reply-To: <4F047BF8.7090400@aimvalley.nl>
On 01/04/2012 10:19 AM, Norbert van Bolhuis wrote:
>
> after entering:
>
> echo standby > /sys/power/state
>
> I'm unable to wake up the MPC8313 (on our custom designed
> MPC8313 board).
>
> I need it to wake up through GPIO IRQ.
> I cause multiple GPIO interrupts (all properly handled by an isr),
> but the MPC8313 does not wake up.
>
> How should one wake up via GPGIO IRQ ?
>
> I'm using v2.6.29 and I wonder whether this is related to
> our custom 8313 board and/or v2.6.29 and/or missing kernel
> patches or maybe this never worked ?
>
> Also, I do not understand line 220 of arch/powerpc/platforms/83xx/suspend.c
>
> 219 } else {
> 220 out_be32(&pmc_regs->mask, PMCER_PMCI);
> 221
> 222 mpc6xx_enter_standby();
>
> How can wake up ever work if TSEC/GPIO/TIMER/etc.. wake up events
> are disabled ?
>
> changing this into "out_be32(&pmc_regs->mask, PMCER_PMCI|PMCER_GPIO);"
> gives same result.
It's been a while since I've touched this, but IIRC the PMC events are
mainly important for deep sleep, and for normal sleep (standby) you can
wake from any interrupt other than core interrupts like timebase. I'm
not sure to what extent setting PMCCR[SLPEN] affects this -- I don't see
where the documentation says what "system low power state" means. I
would be surprised if GPIO were affected, though, since it's supported
as a wakeup source even in deep sleep. I think I was able to wake from
standby on a UART interrupt even with SLPEN set.
Are you sure the GPIO block is asserting an interrupt, and that it
hasn't been masked during the preparation for standby?
What happens if you modify mpc6xx_enter_standby() to not actually set
MSR_POW?
-Scott
^ permalink raw reply
* Re: [PATCH v3] powerpc/85xx: add support to JOG feature using cpufreq interface
From: Scott Wood @ 2012-01-04 20:41 UTC (permalink / raw)
To: Zhao Chenhui-B35336
Cc: Wood Scott-B07421, Huang Changming-R66093, Liu Dave-R63238,
linuxppc-dev@lists.ozlabs.org, Li Yang-R58472
In-Reply-To: <BD213C8CF658C24091429A9C376C468D0C6268@039-SN1MPN1-005.039d.mgd.msft.net>
On 01/04/2012 03:34 AM, Zhao Chenhui-B35336 wrote:
>> On 12/27/2011 05:25 AM, Zhao Chenhui wrote:
>>> * The driver doesn't support MPC8536 Rev 1.0 due to a JOG erratum.
>>> Subsequent revisions of MPC8536 have corrected the erratum.
>>
>> Where do you check for this?
>=20
> Nowhere. I just notify this patch don't support MPC8536 Rev 1.0.
Is mpc8536 rev 1.0 supported by the kernel in general? If so, and this
code doesn't work with it, it needs to check for that revision and not
register the cpufreq handler if found.
>>> +#define POWMGTCSR_LOSSLESS_MASK 0x00400000
>>> +#define POWMGTCSR_JOG_MASK 0x00200000
>>
>> Are these really masks, or just values to use?
>=20
> They are masks.
They're bits. Sometimes you use it additively, to set this bit along
with others. Sometimes you use it subtractively, to test whether the
bit has cleared -- you could argue that it's used as a mask in that
context, but I don't think adding _MASK to the name really adds anything
here (likewise for things like PMJCR_CORE0_SPD_MASK).
>>> +static int p1022_set_pll(unsigned int cpu, unsigned int pll)
>>> +{
>>> + int index, hw_cpu =3D get_hard_smp_processor_id(cpu);
>>> + int shift;
>>> + u32 corefreq, val, mask =3D 0;
>>> + unsigned int cur_pll =3D get_pll(hw_cpu);
>>> + unsigned long flags;
>>> + int ret =3D 0;
>>> +
>>> + if (pll =3D=3D cur_pll)
>>> + return 0;
>>> +
>>> + shift =3D hw_cpu * CORE_RATIO_BITS + CORE0_RATIO_SHIFT;
>>> + val =3D (pll & CORE_RATIO_MASK) << shift;
>>> +
>>> + corefreq =3D sysfreq * pll / 2;
>>> + /*
>>> + * Set the COREx_SPD bit if the requested core frequency
>>> + * is larger than the threshold frequency.
>>> + */
>>> + if (corefreq > FREQ_533MHz)
>>> + val |=3D PMJCR_CORE0_SPD_MASK << hw_cpu;
>>
>> P1022 manual says the threshold is 500 MHz (but doesn't say how to set
>> the bit if the frequency is exactly 500 MHz). Where did 533340000 com=
e
>> from?
>=20
> Please refer to Chapter 25 "25.4.1.11 Power Management Jog Control Regi=
ster (PMJCR)".
You seem to have a different version of the p1022 manual than I (and the
FSL docs website) do. In my copy 25.4.1 is "Performance Monitor
Interrupt" and it has no subsections.
PMJCR is described in 26.4.1.11 and for CORE0_SPD says:
> 0 Core0 frequency at 400=E2=80=93500 MHz
> 1 Core0 frequency at 500=E2=80=931067 MHz
>>> + local_irq_save(flags);
>>> + mb();
>>> + /* Wait for the other core to wake. */
>>> + while (in_jog_process !=3D 1)
>>> + mb();
>>
>> Timeout? And more unnecessary mb()s.
>>
>> Might be nice to support more than two cores, even if this code isn't
>> currently expected to be used on such hardware (it's just a generic
>> "hold other cpus" loop; might as well make it reusable). You could do
>> this by using an atomic count for other cores to check in and out of t=
he
>> spin loop.
>=20
> This is just for P1022, a dual-core chip. A separate patch will
> support multi-core chips, such as P4080, etc.
My point was that this specific function isn't really doing anything
p1022-specific, it's just a way to get other CPUs in the system to halt
until signalled to continue. I thought it would be nice to just write
it generically from the start, but it's up to you.
>>> + out_be32(guts + POWMGTCSR, POWMGTCSR_JOG_MASK |
>> P1022_POWMGTCSR_MSK);
>>> +
>>> + if (!spin_event_timeout(((in_be32(guts + POWMGTCSR) &
>>> + POWMGTCSR_JOG_MASK) =3D=3D 0), 10000, 10)) {
>>> + pr_err("%s: Fail to switch the core frequency.\n", __func__);
>>> + ret =3D -EFAULT;
>>> + }
>>> +
>>> + clrbits32(guts + POWMGTCSR, P1022_POWMGTCSR_MSK);
>>> + in_jog_process =3D 0;
>>> + mb();
>>
>> This mb() (or better, a readback of POWMGTCSR) should be before you
>> clear in_jog_process. For clarity of its purpose, the clearing of
>> POWMGTCSR should go in the failure branch of spin_event_timeout().
>=20
> According to the manual, P1022_POWMGTCSR_MSK should be reset
> by software regardless of failure or success.
OK, I missed that you're clearing more bits than you checked in
spin_event_timeout(). Could you rename P1022_POWMGTCSR_MSK to something
more meaningful (especially since you use _MASK all over the place to
mean something else)?
-Scott
^ permalink raw reply
* Re: [PATCH] DTS: fix the bug and add the chip compatible for eSDHC
From: Scott Wood @ 2012-01-04 19:19 UTC (permalink / raw)
To: Huang Changming-R66093; +Cc: linuxppc-dev@lists.ozlabs.org, Tabi Timur-B04825
In-Reply-To: <8A2FC72B45BB5A4C9F801431E06AE48F1165E585@039-SN1MPN1-005.039d.mgd.msft.net>
On 01/03/2012 09:14 PM, Huang Changming-R66093 wrote:
>
>
>> -----Original Message-----
>> From: Tabi Timur-B04825
>> Sent: Tuesday, January 03, 2012 4:30 AM
>> To: Huang Changming-R66093
>> Cc: linuxppc-dev@lists.ozlabs.org; Huang Changming-R66093
>> Subject: Re: [PATCH] DTS: fix the bug and add the chip compatible for
>> eSDHC
>>
>> On Fri, Dec 23, 2011 at 12:10 AM, <r66093@freescale.com> wrote:
>>>
>>> Accordint to latest kernel, the auto-cmd12 property should be
>>> "sdhci,auto-cmd12", and according to the SDHC binding and the
>>> workaround for the special chip, add the chip compatible for eSDHC:
>>> "fsl,p1022-esdhc", "fsl,mpc8536-esdhc", "fsl,p2020-esdhc" and
>> "fsl,p1010-esdhc".
>>
>> Please do not use the phrase "fix the bug" in patch summaries.
>>
> Then, could you tell me how to describe it?
The subject line should be something like:
powerpc/fsl: esdhc node fixes
Phrases like "Fix the bug" or "fix the issue" could apply to lots of
patches and don't really add anything, especially in the subject line
where there isn't much space and you want to clearly and concisely
identify what this patch is about.
-Scott
^ permalink raw reply
* Re: [PATCH] DTS: fix the bug and add the chip compatible for eSDHC
From: Scott Wood @ 2012-01-04 17:37 UTC (permalink / raw)
To: Huang Changming-R66093; +Cc: Wood Scott-B07421, linuxppc-dev@lists.ozlabs.org
In-Reply-To: <8A2FC72B45BB5A4C9F801431E06AE48F1165E56C@039-SN1MPN1-005.039d.mgd.msft.net>
On 01/03/2012 09:11 PM, Huang Changming-R66093 wrote:
>
>
>> -----Original Message-----
>> From: Wood Scott-B07421
>> Sent: Tuesday, January 03, 2012 2:28 AM
>> To: Huang Changming-R66093
>> Cc: linuxppc-dev@lists.ozlabs.org; Huang Changming-R66093
>> Subject: Re: [PATCH] DTS: fix the bug and add the chip compatible for
>> eSDHC
>>
>> On 12/23/2011 12:10 AM, r66093@freescale.com wrote:
>>> From: Jerry Huang <Chang-Ming.Huang@freescale.com>
>>>
>>> Accordint to latest kernel, the auto-cmd12 property should be
>>> "sdhci,auto-cmd12", and according to the SDHC binding and the
>>> workaround for the special chip, add the chip compatible for eSDHC:
>>> "fsl,p1022-esdhc", "fsl,mpc8536-esdhc", "fsl,p2020-esdhc" and
>> "fsl,p1010-esdhc".
>>>
>>> Signed-off-by: Jerry Huang <Chang-Ming.Huang@freescale.com>
>>> ---
>>> arch/powerpc/boot/dts/fsl/mpc8536si-post.dtsi | 4 ++++
>>> arch/powerpc/boot/dts/fsl/p1010si-post.dtsi | 3 ++-
>>> arch/powerpc/boot/dts/fsl/p1022si-post.dtsi | 3 ++-
>>> arch/powerpc/boot/dts/fsl/p2020si-post.dtsi | 4 ++++
>>> 4 files changed, 12 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/arch/powerpc/boot/dts/fsl/mpc8536si-post.dtsi
>>> b/arch/powerpc/boot/dts/fsl/mpc8536si-post.dtsi
>>> index 89af626..44e0ed9 100644
>>> --- a/arch/powerpc/boot/dts/fsl/mpc8536si-post.dtsi
>>> +++ b/arch/powerpc/boot/dts/fsl/mpc8536si-post.dtsi
>>> @@ -236,6 +236,10 @@
>>> };
>>>
>>> /include/ "pq3-esdhc-0.dtsi"
>>> + sdhc@2e000 {
>>> + compatible = "fsl,esdhc", "fsl,mpc8536-esdhc";
>>> + };
>>
>> More-specific compatible entries should come first.
>
> I don't understand you, why more-specific compatible entries should come?
Because the binding says so, as do ePAPR and the IEEE1275 generic names
recommendation. It is relied on by some OS driver binding mechanisms to
resolve ambiguity in the event that drivers are present for both strings.
> The Documentation/devicetree/bindings/mmc/fsl-esdhc.txt has introduced it:
> - compatible : should be
> "fsl,<chip>-esdhc", "fsl,esdhc"
> I don't think I should introduce new entries.
>
I'm not asking you to introduce a new entry. I'm asking you to reverse
them as the above text specifies:
compatible = "fsl,mpc8536-esdhc", "fsl,esdhc";
not:
compatible = "fsl,esdhc", "fsl,mpc8536-esdhc";
-Scott
^ permalink raw reply
* Cannot wake-up from standby with MPC8313
From: Norbert van Bolhuis @ 2012-01-04 16:19 UTC (permalink / raw)
To: linuxppc-dev@ozlabs.org
after entering:
echo standby > /sys/power/state
I'm unable to wake up the MPC8313 (on our custom designed
MPC8313 board).
I need it to wake up through GPIO IRQ.
I cause multiple GPIO interrupts (all properly handled by an isr),
but the MPC8313 does not wake up.
How should one wake up via GPGIO IRQ ?
I'm using v2.6.29 and I wonder whether this is related to
our custom 8313 board and/or v2.6.29 and/or missing kernel
patches or maybe this never worked ?
Also, I do not understand line 220 of arch/powerpc/platforms/83xx/suspend.c
219 } else {
220 out_be32(&pmc_regs->mask, PMCER_PMCI);
221
222 mpc6xx_enter_standby();
How can wake up ever work if TSEC/GPIO/TIMER/etc.. wake up events
are disabled ?
changing this into "out_be32(&pmc_regs->mask, PMCER_PMCI|PMCER_GPIO);"
gives same result.
MPC8313 is in PCI HOST mode and here's a relevant part
of the DTS:
pmc: power@b00 {
compatible = "fsl,mpc8313-pmc", "fsl,mpc8349-pmc";
reg = <0xb00 0x100 0xa00 0x100>;
interrupts = <80 8>;
interrupt-parent = <&ipic>;
fsl,mpc8313-wakeup-timer = <>m1>;
/* Remove this (or change to "okay") if you have
* a REVA3 or later board, if you apply one of the
* workarounds listed in section 8.5 of the board
* manual, o if you are adapting this device treeSE=
* to a different board.
*/
status = "okay";
};
gtm1: timer@500 {
compatible = "fsl,mpc8313-gtm", "fsl,gtm";
reg = <0x500 0x100>;
interrupts = <90 8 78 8 84 8 72 8>;
interrupt-parent = <&ipic>;
};
Any help/advice/answer is more than welcome.
---
NvBolhuis
^ permalink raw reply
* RE: Problem in getting shared memory access on P1022RDK
From: Arshad, Farrukh @ 2012-01-04 9:56 UTC (permalink / raw)
To: Scott Wood; +Cc: linuxppc-dev@lists.ozlabs.org
In-Reply-To: <4F033685.6000509@freescale.com>
Some of the other things which I am experiencing which may help to trace th=
is issue.=20
1: For Core 0 printk is not working in setup_arch "just before call to pagi=
ng_init", where as on Core 1 printk is working in the same function. I see =
the source uses ppc_md.progress to display debug messages so it seems print=
k will not work then why it is working on Core 1.=20
2: During kernel boot of both cores boot messages of Core 0 are mixed in Co=
re 1 messages.=20
3: If I change memory partitioning to following, then on Core 1 when I mmap=
shared memory area (starting 0x0C00,0000) I receive error that can not mma=
p RAM. If my both systems memory partitions are defined clearly then this a=
rea does not belong to system RAM then I shouldn't receive this error in th=
is memory partitioning.
Core Base Address Size
Core 0 0x0000,0000 0x0C00,0000 --> CONFIG_PHYSICAL_START =3D bootm_low =
=3D Base Address
Shared Mem 0x0C00,0000 0x0400,0000
Core 1 0x1000,0000 0x1000,0000 --> CONFIG_PHYSICAL_START =3D bootm_low =
=3D Base Address
I believe there is some bug / or patch which I am missing in both kernels m=
emory initialization which is causing all these issues. Kernel sources / co=
nfiguration of both cores are 100% same except (CONFIG_PHYSICAL_START) para=
m and kernel version is 2.6.32.13.=20
Any thoughts.
Regards,
Farrukh Arshad
-----Original Message-----
From: Arshad, Farrukh=20
Sent: Wednesday, January 04, 2012 11:50 AM
To: 'Scott Wood'
Cc: linuxppc-dev@lists.ozlabs.org
Subject: RE: Problem in getting shared memory access on P1022RDK
How can I verify if the memory mapped is coherent on both cores. My memory =
partitioning is given below
Core Base Address Size
Core 0 0x0000,0000 0x1000,0000 --> CONFIG_PHYSICAL_START =3D bootm_low =
=3D Base Address
Core 1 0x1000,0000 0x0C00,0000 --> CONFIG_PHYSICAL_START =3D bootm_low =
=3D Base Address
Shared Mem 0x1C00,0000 0x0400,0000
Regards,
Farrukh Arshad
-----Original Message-----
From: Scott Wood [mailto:scottwood@freescale.com]
Sent: Tuesday, January 03, 2012 10:10 PM
To: Arshad, Farrukh
Cc: linuxppc-dev@lists.ozlabs.org
Subject: Re: Problem in getting shared memory access on P1022RDK
On 01/03/2012 03:42 AM, Arshad, Farrukh wrote:
> Adding more to it,
>=20
> =20
>=20
> When I write from Core 1 on the shared memory region it is visible at=20
> Core 0 and it can read what I have written from Core 1 but when I=20
> write from Core 0 on this shared memory it is not visible on Core 1.
Is the memory mapped coherent on both cores?
-Scott
^ 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