* [PATCH 2 0/4] powerpc: don't mess with SMT at boot time
From: Greg Kurz @ 2014-12-05 15:13 UTC (permalink / raw)
To: linuxppc-dev
As requested by mpe, this series now covers both the smt-enabled
kernel parameter and the ibm,smt-enabled property. The cleanup was
split into 3 separate patches to ease review, but I guess they
could be folded into a single patch as well.
---
Greg Kurz (4):
powerpc: drop the ability to tweak SMT mode at boot time
powerpc: drop smt_enabled_at_boot
powerpc: drop smp_generic_cpu_bootable()
powerpc: drop the cpu_bootable hook
arch/powerpc/include/asm/smp.h | 3 --
arch/powerpc/kernel/setup_64.c | 61 +---------------------------------
arch/powerpc/kernel/smp.c | 16 +--------
arch/powerpc/platforms/85xx/smp.c | 1 -
arch/powerpc/platforms/cell/smp.c | 1 -
arch/powerpc/platforms/powernv/smp.c | 1 -
arch/powerpc/platforms/pseries/smp.c | 1 -
7 files changed, 2 insertions(+), 82 deletions(-)
--
Greg
^ permalink raw reply
* Re: [PATCH] tick-broadcast: Register for hrtimer based broadcast as the default broadcast mode
From: Mark Rutland @ 2014-12-05 13:39 UTC (permalink / raw)
To: Preeti U Murthy
Cc: Lorenzo Pieralisi, peterz@infradead.org,
rafael.j.wysocki@intel.com, Will Deacon,
linux-kernel@vger.kernel.org, jingchang.lu@freescale.com,
linux-arm-kernel@lists.infradead.org, fweisbec@gmail.com,
tglx@linutronix.de, shawn.guo@linaro.org,
linuxppc-dev@lists.ozlabs.org
In-Reply-To: <20141205124756.25803.4988.stgit@preeti.in.ibm.com>
Hi Preeti,
Moving this out of the architecture code looks good to me!
I have a couple of minor comments below.
On Fri, Dec 05, 2014 at 12:47:57PM +0000, Preeti U Murthy wrote:
> Commit 5d1638acb9f62fa7 added a hrtimer based broadcast mode for those
> platforms in which local timers stop when CPUs enter deep idle states. The
> commit expected the platforms to register for this mode explicitly when they
> lacked a better external device to wake up CPUs in deep idle. Given that
> more platforms are beginning to use this mode, we can avoid the call to
> set it up on every platform that requires it, by registering for the hrtimer
> based broadcast mode in the core code before clock devices begin to get
> initialized.
>
> So if there exists a better broadcast device, it will overide the hrtimer
> based one; else there is a backup mechanism when a wakeup device is required.
> This commit also helps detect cases where the platform fails to register for
> a broadcast device but invokes the help of one when entering deep idle states.
> Currently we do not handle this situation at all and invoke the help of the
> broadcast clock device without checking for its existence. Registering a default
> broadcast mode will handle such buggy cases properly.
>
> Signed-off-by: Preeti U Murthy <preeti@linux.vnet.ibm.com>
> ---
>
> arch/arm64/kernel/time.c | 2 --
> arch/powerpc/kernel/time.c | 1 -
> kernel/time/timekeeping.c | 4 ++++
> 3 files changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/arch/arm64/kernel/time.c b/arch/arm64/kernel/time.c
> index 1a7125c..47baaa8 100644
> --- a/arch/arm64/kernel/time.c
> +++ b/arch/arm64/kernel/time.c
> @@ -70,8 +70,6 @@ void __init time_init(void)
> of_clk_init(NULL);
> clocksource_of_init();
>
> - tick_setup_hrtimer_broadcast();
> -
> arch_timer_rate = arch_timer_get_rate();
> if (!arch_timer_rate)
> panic("Unable to initialise architected timer.\n");
> diff --git a/arch/powerpc/kernel/time.c b/arch/powerpc/kernel/time.c
> index 7505599..51433a8 100644
> --- a/arch/powerpc/kernel/time.c
> +++ b/arch/powerpc/kernel/time.c
> @@ -942,7 +942,6 @@ void __init time_init(void)
> clocksource_init();
>
> init_decrementer_clockevent();
> - tick_setup_hrtimer_broadcast();
> }
>
>
> diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c
> index ec1791f..6044a51 100644
> --- a/kernel/time/timekeeping.c
> +++ b/kernel/time/timekeeping.c
> @@ -1016,6 +1016,10 @@ void __init timekeeping_init(void)
> boot.tv_sec = 0;
> boot.tv_nsec = 0;
> }
> + /* Register for hrtimer based broadcast as the default timekeeping
> + * mode in deep idle states.
> + */
Nit: for code style this should have a newline after the '/*' (and we
should probably have a newline before that anyway.
> + tick_setup_hrtimer_broadcast();
We register the generic dummy timer via an early_initcall, which keeps
all the logic in the dummy timer driver. Are we able to do the same of
the broadcast hrtimer? Or is there some ordering constraint we need to
meet?
Thanks,
Mark.
>
> raw_spin_lock_irqsave(&timekeeper_lock, flags);
> write_seqcount_begin(&tk_core.seq);
>
>
^ permalink raw reply
* [PATCH] tick-broadcast: Register for hrtimer based broadcast as the default broadcast mode
From: Preeti U Murthy @ 2014-12-05 12:47 UTC (permalink / raw)
To: tglx
Cc: mark.rutland, lorenzo.pieralisi, peterz, rafael.j.wysocki,
will.deacon, linux-kernel, jingchang.lu, linux-arm-kernel,
fweisbec, shawn.guo, linuxppc-dev
Commit 5d1638acb9f62fa7 added a hrtimer based broadcast mode for those
platforms in which local timers stop when CPUs enter deep idle states. The
commit expected the platforms to register for this mode explicitly when they
lacked a better external device to wake up CPUs in deep idle. Given that
more platforms are beginning to use this mode, we can avoid the call to
set it up on every platform that requires it, by registering for the hrtimer
based broadcast mode in the core code before clock devices begin to get
initialized.
So if there exists a better broadcast device, it will overide the hrtimer
based one; else there is a backup mechanism when a wakeup device is required.
This commit also helps detect cases where the platform fails to register for
a broadcast device but invokes the help of one when entering deep idle states.
Currently we do not handle this situation at all and invoke the help of the
broadcast clock device without checking for its existence. Registering a default
broadcast mode will handle such buggy cases properly.
Signed-off-by: Preeti U Murthy <preeti@linux.vnet.ibm.com>
---
arch/arm64/kernel/time.c | 2 --
arch/powerpc/kernel/time.c | 1 -
kernel/time/timekeeping.c | 4 ++++
3 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/arch/arm64/kernel/time.c b/arch/arm64/kernel/time.c
index 1a7125c..47baaa8 100644
--- a/arch/arm64/kernel/time.c
+++ b/arch/arm64/kernel/time.c
@@ -70,8 +70,6 @@ void __init time_init(void)
of_clk_init(NULL);
clocksource_of_init();
- tick_setup_hrtimer_broadcast();
-
arch_timer_rate = arch_timer_get_rate();
if (!arch_timer_rate)
panic("Unable to initialise architected timer.\n");
diff --git a/arch/powerpc/kernel/time.c b/arch/powerpc/kernel/time.c
index 7505599..51433a8 100644
--- a/arch/powerpc/kernel/time.c
+++ b/arch/powerpc/kernel/time.c
@@ -942,7 +942,6 @@ void __init time_init(void)
clocksource_init();
init_decrementer_clockevent();
- tick_setup_hrtimer_broadcast();
}
diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c
index ec1791f..6044a51 100644
--- a/kernel/time/timekeeping.c
+++ b/kernel/time/timekeeping.c
@@ -1016,6 +1016,10 @@ void __init timekeeping_init(void)
boot.tv_sec = 0;
boot.tv_nsec = 0;
}
+ /* Register for hrtimer based broadcast as the default timekeeping
+ * mode in deep idle states.
+ */
+ tick_setup_hrtimer_broadcast();
raw_spin_lock_irqsave(&timekeeper_lock, flags);
write_seqcount_begin(&tk_core.seq);
^ permalink raw reply related
* [PATCH] powerpc32: fix warning from include/asm-generic/termios-base.h
From: Christophe Leroy @ 2014-12-05 11:20 UTC (permalink / raw)
To: Benjamin Herrenschmidt, Paul Mackerras, Michael Ellerman,
scottwood
Cc: linuxppc-dev, linux-kernel
When size is equal to 1, the test is always true so lets eliminate both 0 and 1
at first.
include/asm-generic/termios-base.h: In function 'user_termio_to_kernel_termios':
include/asm-generic/termios-base.h:35:2: warning: comparison of unsigned expression >= 0 is always true [-Wtype-limits]
if (get_user(termios->c_line, &termio->c_line) < 0)
^
include/asm-generic/termios-base.h: In function 'kernel_termios_to_user_termio':
include/asm-generic/termios-base.h:57:6: warning: comparison of unsigned expression >= 0 is always true [-Wtype-limits]
put_user(termios->c_line, &termio->c_line) < 0 ||
^
Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
---
arch/powerpc/include/asm/uaccess.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/powerpc/include/asm/uaccess.h b/arch/powerpc/include/asm/uaccess.h
index 9485b43..f3028d2 100644
--- a/arch/powerpc/include/asm/uaccess.h
+++ b/arch/powerpc/include/asm/uaccess.h
@@ -54,7 +54,7 @@
#define __access_ok(addr, size, segment) \
(((addr) <= (segment).seg) && \
- (((size) == 0) || (((size) - 1) <= ((segment).seg - (addr)))))
+ (((size) <= 1) || (((size) - 1) <= ((segment).seg - (addr)))))
#endif
--
2.1.0
^ permalink raw reply related
* [PATCH] powerpc32: fix warning from include/linux/mm.h
From: Christophe Leroy @ 2014-12-05 11:20 UTC (permalink / raw)
To: Benjamin Herrenschmidt, Paul Mackerras, Michael Ellerman,
scottwood
Cc: linuxppc-dev, linux-kernel
include/linux/mm.h: In function 'is_vmalloc_addr':
include/linux/mm.h:367:14: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
return addr >= VMALLOC_START && addr < VMALLOC_END;
^
Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
---
arch/powerpc/include/asm/pgtable-ppc32.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/powerpc/include/asm/pgtable-ppc32.h b/arch/powerpc/include/asm/pgtable-ppc32.h
index 234e07c..543bb8e 100644
--- a/arch/powerpc/include/asm/pgtable-ppc32.h
+++ b/arch/powerpc/include/asm/pgtable-ppc32.h
@@ -92,7 +92,7 @@ extern int icache_44x_need_flush;
* system. This really does become a problem for machines with good amounts
* of RAM. -- Cort
*/
-#define VMALLOC_OFFSET (0x1000000) /* 16M */
+#define VMALLOC_OFFSET (0x1000000U) /* 16M */
#ifdef PPC_PIN_SIZE
#define VMALLOC_START (((_ALIGN((long)high_memory, PPC_PIN_SIZE) + VMALLOC_OFFSET) & ~(VMALLOC_OFFSET-1)))
#else
--
2.1.0
^ permalink raw reply related
* RE: [PATCH] powerpc/kernel: Make syscall_exit a local label
From: David Laight @ 2014-12-05 10:27 UTC (permalink / raw)
To: 'Michael Ellerman', linuxppc-dev@ozlabs.org
In-Reply-To: <1417774619-30858-1-git-send-email-mpe@ellerman.id.au>
RnJvbTogTWljaGFlbCBFbGxlcm1hbg0KPiBDdXJyZW50bHkgd2hlbiB3ZSBiYWNrIHRyYWNlIHNv
bWV0aGluZyB0aGF0IGlzIGluIGEgc3lzY2FsbCB3ZSBzZWUNCj4gc29tZXRoaW5nIGxpa2UgdGhp
czoNCj4gDQo+IFtjMDAwMDAwMDAwMDAwMDAwXSBbYzAwMDAwMDAwMDAwMDAwMF0gU3lTX3JlYWQr
MHg2Yy8weDExMA0KPiBbYzAwMDAwMDAwMDAwMDAwMF0gW2MwMDAwMDAwMDAwMDAwMDBdIHN5c2Nh
bGxfZXhpdCsweDAvMHg5OA0KPiANCj4gQWx0aG91Z2ggaXQncyBlbnRpcmVseSBjb3JyZWN0LCBz
ZWVpbmcgc3lzY2FsbF9leGl0IGF0IHRoZSBib3R0b20gY2FuIGJlDQo+IGNvbmZ1c2luZyAtIHdl
IHdlcmUgZXhpdGluZyBmcm9tIGEgc3lzY2FsbCBhbmQgdGhlbiBjYWxsZWQgU3lTX3JlYWQoKSA/
DQo+IA0KPiBJZiB3ZSBpbnN0ZWFkIGNoYW5nZSBzeXNjYWxsX2V4aXQgdG8gYmUgYSBsb2NhbCBs
YWJlbCB3ZSBnZXQgc29tZXRoaW5nDQo+IG1vcmUgaW50dWl0aXZlOg0KPiANCj4gW2MwMDAwMDAx
ZmE0NmZkZTBdIFtjMDAwMDAwMDAwMjY3MTljXSBTeVNfcmVhZCsweDZjLzB4MTEwDQo+IFtjMDAw
MDAwMWZhNDZmZTMwXSBbYzAwMDAwMDAwMDAwOTI2NF0gc3lzdGVtX2NhbGwrMHgzOC8weGQwDQo+
IA0KPiBpZS4gd2Ugd2VyZSBoYW5kbGluZyBhIHN5c3RlbSBjYWxsLCBhbmQgaXQgd2FzIFN5U19y
ZWFkKCkuDQo+IA0KPiBTaWduZWQtb2ZmLWJ5OiBNaWNoYWVsIEVsbGVybWFuIDxtcGVAZWxsZXJt
YW4uaWQuYXU+DQo+IC0tLQ0KPiAgYXJjaC9wb3dlcnBjL2tlcm5lbC9lbnRyeV82NC5TIHwgMTgg
KysrKysrKysrLS0tLS0tLS0tDQo+ICAxIGZpbGUgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspLCA5
IGRlbGV0aW9ucygtKQ0KPiANCj4gZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9rZXJuZWwvZW50
cnlfNjQuUyBiL2FyY2gvcG93ZXJwYy9rZXJuZWwvZW50cnlfNjQuUw0KPiBpbmRleCAwOTA1Yzhk
YTkwZjEuLmQ4ODI4ZTUwZGJlZiAxMDA2NDQNCj4gLS0tIGEvYXJjaC9wb3dlcnBjL2tlcm5lbC9l
bnRyeV82NC5TDQo+ICsrKyBiL2FyY2gvcG93ZXJwYy9rZXJuZWwvZW50cnlfNjQuUw0KPiBAQCAt
MTc4LDcgKzE3OCw3IEBAIHN5c3RlbV9jYWxsOgkJCS8qIGxhYmVsIHRoaXMgc28gc3RhY2sgdHJh
Y2VzIGxvb2sgc2FuZSAqLw0KPiAgCW10Y3RyICAgcjEyDQo+ICAJYmN0cmwJCQkvKiBDYWxsIGhh
bmRsZXIgKi8NCg0KV2h5IG5vdCBhZGQgYSAnbm9wJyBoZXJlIGluc3RlYWQ/DQoNCj4gLXN5c2Nh
bGxfZXhpdDoNCj4gKy5Mc3lzY2FsbF9leGl0Og0KPiAgCXN0ZAlyMyxSRVNVTFQocjEpDQo+ICAj
aWZkZWYgU0hPV19TWVNDQUxMUw0KPiAgCWJsCWRvX3Nob3dfc3lzY2FsbF9leGl0DQo+IEBAIC0y
NzAsNyArMjcwLDcgQEAgc3lzY2FsbF9kb3RyYWNlOg0KLi4uDQoNCglEYXZpZA0KDQo=
^ permalink raw reply
* [PATCH] powerpc/kernel: Make syscall_exit a local label
From: Michael Ellerman @ 2014-12-05 10:16 UTC (permalink / raw)
To: linuxppc-dev
Currently when we back trace something that is in a syscall we see
something like this:
[c000000000000000] [c000000000000000] SyS_read+0x6c/0x110
[c000000000000000] [c000000000000000] syscall_exit+0x0/0x98
Although it's entirely correct, seeing syscall_exit at the bottom can be
confusing - we were exiting from a syscall and then called SyS_read() ?
If we instead change syscall_exit to be a local label we get something
more intuitive:
[c0000001fa46fde0] [c00000000026719c] SyS_read+0x6c/0x110
[c0000001fa46fe30] [c000000000009264] system_call+0x38/0xd0
ie. we were handling a system call, and it was SyS_read().
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
---
arch/powerpc/kernel/entry_64.S | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/arch/powerpc/kernel/entry_64.S b/arch/powerpc/kernel/entry_64.S
index 0905c8da90f1..d8828e50dbef 100644
--- a/arch/powerpc/kernel/entry_64.S
+++ b/arch/powerpc/kernel/entry_64.S
@@ -178,7 +178,7 @@ system_call: /* label this so stack traces look sane */
mtctr r12
bctrl /* Call handler */
-syscall_exit:
+.Lsyscall_exit:
std r3,RESULT(r1)
#ifdef SHOW_SYSCALLS
bl do_show_syscall_exit
@@ -270,7 +270,7 @@ syscall_dotrace:
syscall_enosys:
li r3,-ENOSYS
- b syscall_exit
+ b .Lsyscall_exit
syscall_exit_work:
#ifdef CONFIG_PPC_BOOK3S
@@ -347,33 +347,33 @@ _GLOBAL(save_nvgprs)
_GLOBAL(ppc_fork)
bl save_nvgprs
bl sys_fork
- b syscall_exit
+ b .Lsyscall_exit
_GLOBAL(ppc_vfork)
bl save_nvgprs
bl sys_vfork
- b syscall_exit
+ b .Lsyscall_exit
_GLOBAL(ppc_clone)
bl save_nvgprs
bl sys_clone
- b syscall_exit
+ b .Lsyscall_exit
_GLOBAL(ppc32_swapcontext)
bl save_nvgprs
bl compat_sys_swapcontext
- b syscall_exit
+ b .Lsyscall_exit
_GLOBAL(ppc64_swapcontext)
bl save_nvgprs
bl sys_swapcontext
- b syscall_exit
+ b .Lsyscall_exit
_GLOBAL(ret_from_fork)
bl schedule_tail
REST_NVGPRS(r1)
li r3,0
- b syscall_exit
+ b .Lsyscall_exit
_GLOBAL(ret_from_kernel_thread)
bl schedule_tail
@@ -385,7 +385,7 @@ _GLOBAL(ret_from_kernel_thread)
#endif
blrl
li r3,0
- b syscall_exit
+ b .Lsyscall_exit
/*
* This routine switches between two different tasks. The process
--
1.9.1
^ permalink raw reply related
* Re: powerpc: refresh mpc85xx_defconfig using "make savedefconfig"
From: Michael Ellerman @ 2014-12-05 9:42 UTC (permalink / raw)
To: Alessio Igor Bogani, Scott Wood, Kumar Gala
Cc: Alessio Igor Bogani, linuxppc-dev
In-Reply-To: <1417767462-11584-1-git-send-email-alessio.bogani@elettra.eu>
On Fri, 2014-05-12 at 08:17:42 UTC, Alessio Igor Bogani wrote:
> Signed-off-by: Alessio Igor Bogani <alessio.bogani@elettra.eu>
> ---
> arch/powerpc/configs/mpc85xx_defconfig | 57 +++++++---------------------------
> 1 file changed, 12 insertions(+), 45 deletions(-)
Actually I was planning on doing this in bulk for all the powerpc defconfigs.
Someone remind me to do it late next week once most of next has gone into
Linus' tree.
cheers
^ permalink raw reply
* Re: [v2] powerpc/powernv: Expose OPAL firmware symbol map
From: Michael Ellerman @ 2014-12-05 9:40 UTC (permalink / raw)
To: Benjamin Herrenschmidt, linuxppc-dev@ozlabs.org list; +Cc: Anton Blanchard
In-Reply-To: <1417753577.4741.52.camel@kernel.crashing.org>
On Fri, 2014-05-12 at 04:26:17 UTC, Benjamin Herrenschmidt wrote:
> Newer versions of OPAL will provide this, so let's expose it to user
> space so tools like perf can use it to properly decode samples in
> firmware space.
>
> diff --git a/arch/powerpc/platforms/powernv/opal.c b/arch/powerpc/platforms/powernv/opal.c
> index 06d9076..98f50e8 100644
> --- a/arch/powerpc/platforms/powernv/opal.c
> +++ b/arch/powerpc/platforms/powernv/opal.c
> @@ -61,6 +61,8 @@ static DEFINE_SPINLOCK(opal_notifier_lock);
> static uint64_t last_notified_mask = 0x0ul;
> static atomic_t opal_notifier_hold = ATOMIC_INIT(0);
> static uint32_t opal_heartbeat;
> +static void *opal_symmap;
> +static uint64_t opal_symmap_size;
We shouldn't need these.
The bin_attribute has a size (you set it), you just need to use it in
symbol_map_read().
And the attribute also has a private pointer, which you can use for
opal_symmap.
> @@ -608,6 +610,40 @@ static int opal_sysfs_init(void)
> return 0;
> }
>
> +static ssize_t symbol_map_read(struct file *fp, struct kobject *kobj,
> + struct bin_attribute *bin_attr,
> + char *buf, loff_t off, size_t count)
> +{
> + return memory_read_from_buffer(buf, count, &off,
> + opal_symmap, opal_symmap_size);
So this would be:
return memory_read_from_buffer(buf, count, &off,
bin_attr->private, bin_attr->size);
> +}
> +
> +static BIN_ATTR_RO(symbol_map, 0);
> +
> +static void opal_export_symmap(void)
> +{
> + const __be64 *syms;
> + unsigned int size;
> + struct device_node *fw;
> + int rc;
> +
> + fw = of_find_node_by_path("/ibm,opal/firmware");
> + if (!fw)
> + return;
> + syms = of_get_property(fw, "symbol-map", &size);
> + if (!syms || size != 2 * sizeof(__be64))
> + return;
> +
> + opal_symmap = __va(be64_to_cpu(syms[0]));
> + opal_symmap_size = be64_to_cpu(syms[1]);
I was going to tell you to use of_property_read_u64_index(), but it doesn't
exist - we can add it one day and clean this up then.
> + /* Setup attributes */
> + bin_attr_symbol_map.size = opal_symmap_size;
> + rc = sysfs_create_bin_file(opal_kobj, &bin_attr_symbol_map);
> + if (rc)
> + pr_warn("Error %d creating OPAL symbols file\n", rc);
Can you prefix it please, so:
pr_warn("opal: Error .."
Or add to the very top of the file:
#define pr_fmt(fmt) "opal: " fmt
cheers
^ permalink raw reply
* [RFC PATCH v3 1/1] powerpc/85xx: Add support for Emerson/Artesyn MVME2500.
From: Alessio Igor Bogani @ 2014-12-05 8:18 UTC (permalink / raw)
To: Scott Wood, Kumar Gala; +Cc: Alessio Igor Bogani, linuxppc-dev
Add support for the Artesyn MVME2500 Single Board Computer.
The MVME2500 is a 6U form factor VME64 computer with:
- A single Freescale QorIQ P2010 CPU
- 1 GB of DDR3 onboard memory
- Three Gigabit Ethernets
- Five 16550 compatible UARTS
- One USB 2.0 port, one SHDC socket and one SATA connector
- One PCI/PCI eXpress Mezzanine Card (PMC/XMC) Slot
- MultiProcessor Interrupt Controller (MPIC)
- A DS1375T Real Time Clock (RTC) and 512 KB of Non-Volatile Memory
- Two 64 KB EEPROMs
- U-Boot in 16 SPI Flash
This patch is based on linux-3.18-rc7 and has been boot tested.
Signed-off-by: Alessio Igor Bogani <alessio.bogani@elettra.eu>
---
v2 -> v3
Remove an include in the device tree
Rebased on an already sent patch:
'powerpc: refresh mpc85xx_defconfig using "make savedefconfig"'
v1 -> v2
Increase an LBC window from only 0x1000 to 0x8000 bytes
Rename:
eeprom-vpd and spd to eeprom
Artesyn to artesyn
Remove:
board_soc label
partition scheme
A whitespace
#cell-index usages
The mvm2500.dtsi file (moving its definitions at the bottom
of the mvme2500.dts)
mvme2500_defconfig and use mpc85xx_defconfig instead
Useless headers in mvme2500.c
SWIOTLB usages
Replace:
printk() with pr_info()
NVRAM with MTD-RAM: Unfortunately the former doesn't cope with
16-bit addressing of the chip used in MVME2500 board but the
latter can due of the bank-witdth device tree definition.
arch/powerpc/boot/dts/mvme2500.dts | 280 +++++++++++++++++++++++++++++++++
arch/powerpc/configs/mpc85xx_defconfig | 16 +-
arch/powerpc/platforms/85xx/Kconfig | 6 +
arch/powerpc/platforms/85xx/Makefile | 1 +
arch/powerpc/platforms/85xx/mvme2500.c | 74 +++++++++
5 files changed, 374 insertions(+), 3 deletions(-)
create mode 100644 arch/powerpc/boot/dts/mvme2500.dts
create mode 100644 arch/powerpc/platforms/85xx/mvme2500.c
diff --git a/arch/powerpc/boot/dts/mvme2500.dts b/arch/powerpc/boot/dts/mvme2500.dts
new file mode 100644
index 0000000..67714cf
--- /dev/null
+++ b/arch/powerpc/boot/dts/mvme2500.dts
@@ -0,0 +1,280 @@
+/*
+ * Device tree source for the Emerson/Artesyn MVME2500
+ *
+ * Copyright 2014 Elettra-Sincrotrone Trieste S.C.p.A.
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * Based on: P2020 DS Device Tree Source
+ * Copyright 2009 Freescale Semiconductor Inc.
+ */
+
+/include/ "fsl/p2020si-pre.dtsi"
+
+/ {
+ model = "MVME2500";
+ compatible = "artesyn,MVME2500";
+
+ aliases {
+ serial2 = &serial2;
+ serial3 = &serial3;
+ serial4 = &serial4;
+ serial5 = &serial5;
+ };
+
+ memory {
+ device_type = "memory";
+ };
+
+ soc: soc@ffe00000 {
+ ranges = <0x0 0 0xffe00000 0x100000>;
+
+ i2c@3000 {
+ hwmon@4c {
+ compatible = "adi,adt7461";
+ reg = <0x4c>;
+ };
+
+ rtc@68 {
+ compatible = "dallas,ds1337";
+ reg = <0x68>;
+ interrupts = <8 1 0 0>;
+ };
+
+ eeprom@54 {
+ compatible = "atmel,24c64";
+ reg = <0x54>;
+ };
+
+ eeprom@52 {
+ compatible = "atmel,24c512";
+ reg = <0x52>;
+ };
+
+ eeprom@53 {
+ compatible = "atmel,24c512";
+ reg = <0x53>;
+ };
+
+ eeprom@50 {
+ compatible = "atmel,24c02";
+ reg = <0x50>;
+ };
+
+ };
+
+ spi0: spi@7000 {
+ fsl,espi-num-chipselects = <2>;
+
+ flash@0 {
+ compatible = "atmel,at25df641";
+ reg = <0>;
+ spi-max-frequency = <10000000>;
+ };
+ flash@1 {
+ compatible = "atmel,at25df641";
+ reg = <1>;
+ spi-max-frequency = <10000000>;
+ };
+ };
+
+ usb@22000 {
+ dr_mode = "host";
+ phy_type = "ulpi";
+ };
+
+ enet0: ethernet@24000 {
+ tbi-handle = <&tbi0>;
+ phy-handle = <&phy1>;
+ phy-connection-type = "rgmii-id";
+ };
+
+ mdio@24520 {
+ phy1: ethernet-phy@1 {
+ compatible = "brcm,bcm54616S";
+ interrupts = <6 1 0 0>;
+ reg = <0x1>;
+ };
+
+ phy2: ethernet-phy@2 {
+ compatible = "brcm,bcm54616S";
+ interrupts = <6 1 0 0>;
+ reg = <0x2>;
+ };
+
+ phy3: ethernet-phy@3 {
+ compatible = "brcm,bcm54616S";
+ interrupts = <5 1 0 0>;
+ reg = <0x3>;
+ };
+
+ phy7: ethernet-phy@7 {
+ compatible = "brcm,bcm54616S";
+ interrupts = <7 1 0 0>;
+ reg = <0x7>;
+ };
+
+ tbi0: tbi-phy@11 {
+ reg = <0x11>;
+ device_type = "tbi-phy";
+ };
+ };
+
+ enet1: ethernet@25000 {
+ tbi-handle = <&tbi1>;
+ phy-handle = <&phy7>;
+ phy-connection-type = "rgmii-id";
+ };
+
+ mdio@25520 {
+ tbi1: tbi-phy@11 {
+ reg = <0x11>;
+ device_type = "tbi-phy";
+ };
+ };
+
+ enet2: ethernet@26000 {
+ tbi-handle = <&tbi2>;
+ phy-handle = <&phy3>;
+ phy-connection-type = "rgmii-id";
+ };
+
+ mdio@26520 {
+ tbi2: tbi-phy@11 {
+ reg = <0x11>;
+ device_type = "tbi-phy";
+ };
+ };
+ };
+
+ lbc: localbus@ffe05000 {
+ reg = <0 0xffe05000 0 0x1000>;
+
+ ranges = <0x0 0x0 0x0 0xfff00000 0x00080000
+ 0x1 0x0 0x0 0xffc40000 0x00010000
+ 0x2 0x0 0x0 0xffc50000 0x00010000
+ 0x3 0x0 0x0 0xffc60000 0x00010000
+ 0x4 0x0 0x0 0xffc70000 0x00010000
+ 0x6 0x0 0x0 0xffc80000 0x00010000
+ 0x5 0x0 0x0 0xffdf0000 0x00008000>;
+
+ serial2: serial@1,0 {
+ device_type = "serial";
+ compatible = "ns16550";
+ reg = <0x1 0x0 0x100>;
+ clock-frequency = <1843200>;
+ interrupts = <11 2 0 0>;
+ };
+
+ serial3: serial@2,0 {
+ device_type = "serial";
+ compatible = "ns16550";
+ reg = <0x2 0x0 0x100>;
+ clock-frequency = <1843200>;
+ interrupts = <1 2 0 0>;
+ };
+
+ serial4: serial@3,0 {
+ device_type = "serial";
+ compatible = "ns16550";
+ reg = <0x3 0x0 0x100>;
+ clock-frequency = <1843200>;
+ interrupts = <2 2 0 0>;
+ };
+
+ serial5: serial@4,0 {
+ device_type = "serial";
+ compatible = "ns16550";
+ reg = <0x4 0x0 0x100>;
+ clock-frequency = <1843200>;
+ interrupts = <3 2 0 0>;
+ };
+
+ mram@0,0 {
+ compatible = "everspin,mram", "mtd-ram";
+ reg = <0x0 0x0 0x80000>;
+ bank-width = <2>;
+ };
+
+ board-control@5,0 {
+ compatible = "artesyn,mvme2500-fpga";
+ reg = <0x5 0x0 0x01000>;
+ };
+
+ cpld@6,0 {
+ compatible = "artesyn,mvme2500-cpld";
+ reg = <0x6 0x0 0x10000>;
+ interrupts = <9 1 0 0>;
+ };
+ };
+
+ pci0: pcie@ffe08000 {
+ reg = <0 0xffe08000 0 0x1000>;
+ ranges = <0x2000000 0x0 0x80000000 0 0x80000000 0x0 0x20000000
+ 0x1000000 0x0 0x00000000 0 0xffc00000 0x0 0x10000>;
+ pcie@0 {
+ ranges = <0x2000000 0x0 0x80000000
+ 0x2000000 0x0 0x80000000
+ 0x0 0x20000000
+
+ 0x1000000 0x0 0x0
+ 0x1000000 0x0 0x0
+ 0x0 0x10000>;
+ };
+ };
+
+ pci1: pcie@ffe09000 {
+ reg = <0 0xffe09000 0 0x1000>;
+ ranges = <0x2000000 0x0 0xa0000000 0 0xa0000000 0x0 0x20000000
+ 0x1000000 0x0 0x00000000 0 0xffc10000 0x0 0x10000>;
+ pcie@0 {
+ ranges = <0x2000000 0x0 0xa0000000
+ 0x2000000 0x0 0xa0000000
+ 0x0 0x20000000
+
+ 0x1000000 0x0 0x0
+ 0x1000000 0x0 0x0
+ 0x0 0x10000>;
+ };
+
+ };
+
+ pci2: pcie@ffe0a000 {
+ reg = <0 0xffe0a000 0 0x1000>;
+ ranges = <0x2000000 0x0 0xc0000000 0 0xc0000000 0x0 0x20000000
+ 0x1000000 0x0 0x00000000 0 0xffc20000 0x0 0x10000>;
+ pcie@0 {
+ ranges = <0x2000000 0x0 0xc0000000
+ 0x2000000 0x0 0xc0000000
+ 0x0 0x20000000
+
+ 0x1000000 0x0 0x0
+ 0x1000000 0x0 0x0
+ 0x0 0x10000>;
+ };
+ };
+};
+
+/include/ "fsl/p2020si-post.dtsi"
+
+/ {
+ soc@ffe00000 {
+ serial@4600 {
+ status = "disabled";
+ };
+
+ i2c@3100 {
+ status = "disabled";
+ };
+
+ sdhc@2e000 {
+ compatible = "fsl,p2020-esdhc", "fsl,esdhc";
+ non-removable;
+ };
+
+ };
+
+};
diff --git a/arch/powerpc/configs/mpc85xx_defconfig b/arch/powerpc/configs/mpc85xx_defconfig
index cfae862..8535c34 100644
--- a/arch/powerpc/configs/mpc85xx_defconfig
+++ b/arch/powerpc/configs/mpc85xx_defconfig
@@ -42,6 +42,7 @@ CONFIG_TQM8548=y
CONFIG_TQM8555=y
CONFIG_TQM8560=y
CONFIG_SBC8548=y
+CONFIG_MVME2500=y
CONFIG_QUICC_ENGINE=y
CONFIG_QE_GPIO=y
CONFIG_HIGHMEM=y
@@ -49,6 +50,8 @@ CONFIG_BINFMT_MISC=m
CONFIG_MATH_EMULATION=y
CONFIG_FORCE_MAX_ZONEORDER=12
CONFIG_PCI=y
+CONFIG_PCIEPORTBUS=y
+# CONFIG_PCIEASPM is not set
CONFIG_PCI_MSI=y
CONFIG_RAPIDIO=y
CONFIG_NET=y
@@ -85,10 +88,14 @@ CONFIG_FTL=y
CONFIG_MTD_CFI=y
CONFIG_MTD_CFI_INTELEXT=y
CONFIG_MTD_CFI_AMDSTD=y
+CONFIG_MTD_PHYSMAP=y
CONFIG_MTD_PHYSMAP_OF=y
+CONFIG_MTD_PLATRAM=y
+CONFIG_MTD_M25P80=y
CONFIG_MTD_NAND=y
CONFIG_MTD_NAND_FSL_ELBC=y
CONFIG_MTD_NAND_FSL_IFC=y
+CONFIG_MTD_SPI_NOR=y
CONFIG_MTD_UBI=y
CONFIG_BLK_DEV_LOOP=y
CONFIG_BLK_DEV_NBD=y
@@ -120,6 +127,7 @@ CONFIG_MARVELL_PHY=y
CONFIG_DAVICOM_PHY=y
CONFIG_CICADA_PHY=y
CONFIG_VITESSE_PHY=y
+CONFIG_BROADCOM_PHY=y
CONFIG_FIXED_PHY=y
CONFIG_INPUT_FF_MEMLESS=m
# CONFIG_INPUT_MOUSEDEV is not set
@@ -128,8 +136,8 @@ CONFIG_INPUT_FF_MEMLESS=m
CONFIG_SERIO_LIBPS2=y
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y
-CONFIG_SERIAL_8250_NR_UARTS=2
-CONFIG_SERIAL_8250_RUNTIME_UARTS=2
+CONFIG_SERIAL_8250_NR_UARTS=6
+CONFIG_SERIAL_8250_RUNTIME_UARTS=6
CONFIG_SERIAL_8250_MANY_PORTS=y
CONFIG_SERIAL_8250_DETECT_IRQ=y
CONFIG_SERIAL_8250_RSA=y
@@ -142,7 +150,8 @@ CONFIG_SPI=y
CONFIG_SPI_FSL_SPI=y
CONFIG_SPI_FSL_ESPI=y
CONFIG_GPIO_MPC8XXX=y
-# CONFIG_HWMON is not set
+CONFIG_HWMON=m
+CONFIG_SENSORS_LM90=m
CONFIG_FB=y
CONFIG_FB_FSL_DIU=y
# CONFIG_VGA_CONSOLE is not set
@@ -185,6 +194,7 @@ CONFIG_MMC_SDHCI_PLTFM=y
CONFIG_MMC_SDHCI_OF_ESDHC=y
CONFIG_EDAC=y
CONFIG_EDAC_MM_EDAC=y
+CONFIG_EDAC_MPC85XX=y
CONFIG_RTC_CLASS=y
CONFIG_RTC_DRV_DS1307=y
CONFIG_RTC_DRV_DS1374=y
diff --git a/arch/powerpc/platforms/85xx/Kconfig b/arch/powerpc/platforms/85xx/Kconfig
index f22635a..2fb4b24 100644
--- a/arch/powerpc/platforms/85xx/Kconfig
+++ b/arch/powerpc/platforms/85xx/Kconfig
@@ -241,6 +241,12 @@ config SGY_CTS1000
help
Enable this to support functionality in Servergy's CTS-1000 systems.
+config MVME2500
+ bool "Artesyn MVME2500"
+ select DEFAULT_UIMAGE
+ help
+ This option enables support for the Emerson/Artesyn MVME2500 board.
+
endif # PPC32
config PPC_QEMU_E500
diff --git a/arch/powerpc/platforms/85xx/Makefile b/arch/powerpc/platforms/85xx/Makefile
index 7303260..1fe7fb9 100644
--- a/arch/powerpc/platforms/85xx/Makefile
+++ b/arch/powerpc/platforms/85xx/Makefile
@@ -31,3 +31,4 @@ obj-$(CONFIG_XES_MPC85xx) += xes_mpc85xx.o
obj-$(CONFIG_GE_IMP3A) += ge_imp3a.o
obj-$(CONFIG_PPC_QEMU_E500) += qemu_e500.o
obj-$(CONFIG_SGY_CTS1000) += sgy_cts1000.o
+obj-$(CONFIG_MVME2500) += mvme2500.o
diff --git a/arch/powerpc/platforms/85xx/mvme2500.c b/arch/powerpc/platforms/85xx/mvme2500.c
new file mode 100644
index 0000000..1233050
--- /dev/null
+++ b/arch/powerpc/platforms/85xx/mvme2500.c
@@ -0,0 +1,74 @@
+/*
+ * Board setup routines for the Emerson/Artesyn MVME2500
+ *
+ * Copyright 2014 Elettra-Sincrotrone Trieste S.C.p.A.
+ *
+ * Based on earlier code by:
+ *
+ * Xianghua Xiao (x.xiao@freescale.com)
+ * Tom Armistead (tom.armistead@emerson.com)
+ * Copyright 2012 Emerson
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * Author Alessio Igor Bogani <alessio.bogani@elettra.eu>
+ *
+ */
+
+#include <linux/pci.h>
+#include <asm/udbg.h>
+#include <asm/mpic.h>
+#include <sysdev/fsl_soc.h>
+#include <sysdev/fsl_pci.h>
+
+#include "mpc85xx.h"
+
+void __init mvme2500_pic_init(void)
+{
+ struct mpic *mpic = mpic_alloc(NULL, 0,
+ MPIC_BIG_ENDIAN | MPIC_SINGLE_DEST_CPU,
+ 0, 256, " OpenPIC ");
+ BUG_ON(mpic == NULL);
+ mpic_init(mpic);
+}
+
+/*
+ * Setup the architecture
+ */
+static void __init mvme2500_setup_arch(void)
+{
+ if (ppc_md.progress)
+ ppc_md.progress("mvme2500_setup_arch()", 0);
+ fsl_pci_assign_primary();
+ pr_info("MVME2500 board from Artesyn\n");
+}
+
+machine_arch_initcall(mvme2500, mpc85xx_common_publish_devices);
+
+/*
+ * Called very early, device-tree isn't unflattened
+ */
+static int __init mvme2500_probe(void)
+{
+ unsigned long root = of_get_flat_dt_root();
+
+ return of_flat_dt_is_compatible(root, "artesyn,MVME2500");
+}
+
+define_machine(mvme2500) {
+ .name = "MVME2500",
+ .probe = mvme2500_probe,
+ .setup_arch = mvme2500_setup_arch,
+ .init_IRQ = mvme2500_pic_init,
+#ifdef CONFIG_PCI
+ .pcibios_fixup_bus = fsl_pcibios_fixup_bus,
+ .pcibios_fixup_phb = fsl_pcibios_fixup_phb,
+#endif
+ .get_irq = mpic_get_irq,
+ .restart = fsl_rstcr_restart,
+ .calibrate_decr = generic_calibrate_decr,
+ .progress = udbg_progress,
+};
--
2.1.3
^ permalink raw reply related
* [PATCH] powerpc: refresh mpc85xx_defconfig using "make savedefconfig"
From: Alessio Igor Bogani @ 2014-12-05 8:17 UTC (permalink / raw)
To: Scott Wood, Kumar Gala; +Cc: Alessio Igor Bogani, linuxppc-dev
Signed-off-by: Alessio Igor Bogani <alessio.bogani@elettra.eu>
---
arch/powerpc/configs/mpc85xx_defconfig | 57 +++++++---------------------------
1 file changed, 12 insertions(+), 45 deletions(-)
diff --git a/arch/powerpc/configs/mpc85xx_defconfig b/arch/powerpc/configs/mpc85xx_defconfig
index d2c4154..cfae862 100644
--- a/arch/powerpc/configs/mpc85xx_defconfig
+++ b/arch/powerpc/configs/mpc85xx_defconfig
@@ -20,6 +20,7 @@ CONFIG_MODVERSIONS=y
# CONFIG_BLK_DEV_BSG is not set
CONFIG_PARTITION_ADVANCED=y
CONFIG_MAC_PARTITION=y
+CONFIG_C293_PCIE=y
CONFIG_MPC8540_ADS=y
CONFIG_MPC8560_ADS=y
CONFIG_MPC85xx_CDS=y
@@ -27,7 +28,6 @@ CONFIG_MPC85xx_MDS=y
CONFIG_MPC8536_DS=y
CONFIG_MPC85xx_DS=y
CONFIG_MPC85xx_RDB=y
-CONFIG_C293_PCIE=y
CONFIG_P1010_RDB=y
CONFIG_P1022_DS=y
CONFIG_P1022_RDK=y
@@ -70,7 +70,6 @@ CONFIG_NET_IPIP=y
CONFIG_IP_MROUTE=y
CONFIG_IP_PIMSM_V1=y
CONFIG_IP_PIMSM_V2=y
-CONFIG_ARPD=y
CONFIG_INET_ESP=y
# CONFIG_INET_XFRM_MODE_BEET is not set
# CONFIG_INET_LRO is not set
@@ -80,33 +79,17 @@ CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y
CONFIG_MTD=y
-CONFIG_MTD_OF_PARTS=y
CONFIG_MTD_CMDLINE_PARTS=y
-CONFIG_MTD_CHAR=y
-CONFIG_MTD_BLKDEVS=y
CONFIG_MTD_BLOCK=y
CONFIG_FTL=y
CONFIG_MTD_CFI=y
-CONFIG_MTD_GEN_PROBE=y
-CONFIG_MTD_MAP_BANK_WIDTH_1=y
-CONFIG_MTD_MAP_BANK_WIDTH_2=y
-CONFIG_MTD_MAP_BANK_WIDTH_4=y
-CONFIG_MTD_CFI_I1=y
-CONFIG_MTD_CFI_I2=y
CONFIG_MTD_CFI_INTELEXT=y
CONFIG_MTD_CFI_AMDSTD=y
CONFIG_MTD_PHYSMAP_OF=y
-CONFIG_MTD_M25P80=y
-CONFIG_MTD_CFI_UTIL=y
-CONFIG_MTD_NAND_ECC=y
CONFIG_MTD_NAND=y
-CONFIG_MTD_NAND_IDS=y
CONFIG_MTD_NAND_FSL_ELBC=y
CONFIG_MTD_NAND_FSL_IFC=y
CONFIG_MTD_UBI=y
-CONFIG_MTD_UBI_WL_THRESHOLD=4096
-CONFIG_MTD_UBI_BEB_RESERVE=1
-CONFIG_PROC_DEVICETREE=y
CONFIG_BLK_DEV_LOOP=y
CONFIG_BLK_DEV_NBD=y
CONFIG_BLK_DEV_RAM=y
@@ -117,7 +100,6 @@ CONFIG_BLK_DEV_SD=y
CONFIG_CHR_DEV_ST=y
CONFIG_BLK_DEV_SR=y
CONFIG_CHR_DEV_SG=y
-CONFIG_SCSI_MULTI_LUN=y
CONFIG_SCSI_LOGGING=y
CONFIG_ATA=y
CONFIG_SATA_AHCI=y
@@ -133,11 +115,11 @@ CONFIG_GIANFAR=y
CONFIG_E1000=y
CONFIG_E1000E=y
CONFIG_IGB=y
+CONFIG_AT803X_PHY=y
CONFIG_MARVELL_PHY=y
CONFIG_DAVICOM_PHY=y
CONFIG_CICADA_PHY=y
CONFIG_VITESSE_PHY=y
-CONFIG_AT803X_PHY=y
CONFIG_FIXED_PHY=y
CONFIG_INPUT_FF_MEMLESS=m
# CONFIG_INPUT_MOUSEDEV is not set
@@ -161,14 +143,10 @@ CONFIG_SPI_FSL_SPI=y
CONFIG_SPI_FSL_ESPI=y
CONFIG_GPIO_MPC8XXX=y
# CONFIG_HWMON is not set
-CONFIG_VIDEO_OUTPUT_CONTROL=y
CONFIG_FB=y
CONFIG_FB_FSL_DIU=y
# CONFIG_VGA_CONSOLE is not set
CONFIG_FRAMEBUFFER_CONSOLE=y
-CONFIG_FONTS=y
-CONFIG_FONT_8x8=y
-CONFIG_FONT_8x16=y
CONFIG_SOUND=y
CONFIG_SND=y
# CONFIG_SND_SUPPORT_OLD_API is not set
@@ -192,7 +170,6 @@ CONFIG_HID_MONTEREY=y
CONFIG_HID_PANTHERLORD=y
CONFIG_HID_PETALYNX=y
CONFIG_HID_SAMSUNG=y
-CONFIG_HID_SONY=y
CONFIG_HID_SUNPLUS=y
CONFIG_USB=y
CONFIG_USB_MON=y
@@ -215,7 +192,6 @@ CONFIG_RTC_DRV_DS3232=y
CONFIG_RTC_DRV_CMOS=y
CONFIG_DMADEVICES=y
CONFIG_FSL_DMA=y
-# CONFIG_NET_DMA is not set
CONFIG_EXT2_FS=y
CONFIG_EXT3_FS=y
# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
@@ -226,21 +202,9 @@ CONFIG_UDF_FS=m
CONFIG_MSDOS_FS=m
CONFIG_VFAT_FS=y
CONFIG_NTFS_FS=y
-CONFIG_NLS_CODEPAGE_437=y
-CONFIG_NLS_CODEPAGE_850=y
-CONFIG_NLS_ISO8859_1=y
CONFIG_PROC_KCORE=y
CONFIG_TMPFS=y
CONFIG_HUGETLBFS=y
-CONFIG_JFFS2_FS=y
-CONFIG_JFFS2_FS_DEBUG=1
-CONFIG_JFFS2_FS_WRITEBUFFER=y
-CONFIG_JFFS2_ZLIB=y
-CONFIG_JFFS2_RTIME=y
-CONFIG_UBIFS_FS=y
-CONFIG_UBIFS_FS_XATTR=y
-CONFIG_UBIFS_FS_LZO=y
-CONFIG_UBIFS_FS_ZLIB=y
CONFIG_ADFS_FS=m
CONFIG_AFFS_FS=m
CONFIG_HFS_FS=m
@@ -248,6 +212,9 @@ CONFIG_HFSPLUS_FS=m
CONFIG_BEFS_FS=m
CONFIG_BFS_FS=m
CONFIG_EFS_FS=m
+CONFIG_JFFS2_FS=y
+CONFIG_JFFS2_FS_DEBUG=1
+CONFIG_UBIFS_FS=y
CONFIG_CRAMFS=y
CONFIG_VXFS_FS=m
CONFIG_HPFS_FS=m
@@ -258,16 +225,16 @@ CONFIG_NFS_FS=y
CONFIG_NFS_V4=y
CONFIG_ROOT_NFS=y
CONFIG_NFSD=y
+CONFIG_NLS_CODEPAGE_437=y
+CONFIG_NLS_CODEPAGE_850=y
+CONFIG_NLS_ISO8859_1=y
CONFIG_CRC_T10DIF=y
-CONFIG_CRC16=y
-CONFIG_ZLIB_DEFLATE=y
-CONFIG_LZO_COMPRESS=y
-CONFIG_LZO_DECOMPRESS=y
-CONFIG_CRYPTO_DEFLATE=y
-CONFIG_CRYPTO_LZO=y
+CONFIG_FONTS=y
+CONFIG_FONT_8x8=y
+CONFIG_FONT_8x16=y
+CONFIG_DEBUG_INFO=y
CONFIG_DEBUG_FS=y
CONFIG_DETECT_HUNG_TASK=y
-CONFIG_DEBUG_INFO=y
CONFIG_CRYPTO_PCBC=m
CONFIG_CRYPTO_SHA256=y
CONFIG_CRYPTO_SHA512=y
--
2.1.3
^ permalink raw reply related
* Re: [RFC PATCH v2 1/1] powerpc/85xx: Add support for Emerson/Artesyn MVME2500.
From: Alessio Igor Bogani @ 2014-12-05 8:10 UTC (permalink / raw)
To: Scott Wood; +Cc: linuxppc-dev
In-Reply-To: <1417724162.334.5.camel@freescale.com>
Hi Scott,
On 4 December 2014 at 21:16, Scott Wood <scottwood@freescale.com> wrote:
> On Thu, 2014-12-04 at 10:23 +0100, Alessio Igor Bogani wrote:
>> +/include/ "fsl/pq3-mpic-message-B.dtsi"
>
> The MPIC message include should be done in the SoC file -- it's not
> board-specific.
>
> For some reason I don't see this dtsi being included by anything
> currently.
For the moment I'll remove it.
>> @@ -80,33 +82,21 @@ CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
>> CONFIG_DEVTMPFS=y
>> CONFIG_DEVTMPFS_MOUNT=y
>> CONFIG_MTD=y
>> -CONFIG_MTD_OF_PARTS=y
>> CONFIG_MTD_CMDLINE_PARTS=y
>> -CONFIG_MTD_CHAR=y
>> -CONFIG_MTD_BLKDEVS=y
>> CONFIG_MTD_BLOCK=y
>> CONFIG_FTL=y
>> CONFIG_MTD_CFI=y
>> -CONFIG_MTD_GEN_PROBE=y
>> -CONFIG_MTD_MAP_BANK_WIDTH_1=y
>> -CONFIG_MTD_MAP_BANK_WIDTH_2=y
>> -CONFIG_MTD_MAP_BANK_WIDTH_4=y
>> -CONFIG_MTD_CFI_I1=y
>> -CONFIG_MTD_CFI_I2=y
>
> Are these removals due to make savedefconfig?
Yes
> Please have a separate
> patch that just runs make savedefconfig first, so that we can see what
> actual changes are being made.
Sure!
> Otherwise, looks good.
Thanks!
Ciao,
Alessio
^ permalink raw reply
* Re: [2/2] pstore: add pstore support on powernv
From: Hari Bathini @ 2014-12-05 5:15 UTC (permalink / raw)
To: Michael Ellerman, linuxppc-dev
In-Reply-To: <20141204053708.E24341400EA@ozlabs.org>
On 12/04/2014 11:07 AM, Michael Ellerman wrote:
> On Wed, 2014-03-12 at 11:03:15 UTC, Hari Bathini wrote:
>> This patch extends pstore, a generic interface to platform dependent
>> persistent storage, support for powernv platform to capture certain
>> useful information, during dying moments. Such support is already in
>> place for pseries platform. This patch while adding pstore support
>> for powernv platform, moves common code for pseries and powernv to
>> arch/powerpc/kernel/nvram_64.c file.
> Please move the common code first in a separate patch. Unless there's some
> reason you absolutely can't do that.
Sure, Michael. Let me make the changes as suggested and
post the updated patch series.
Thanks
Hari
> cheers
> _______________________________________________
> Linuxppc-dev mailing list
> Linuxppc-dev@lists.ozlabs.org
> https://lists.ozlabs.org/listinfo/linuxppc-dev
^ permalink raw reply
* Re: [PATCH] powerpc/book3s: Fix partial invalidation of TLBs in MCE code.
From: Benjamin Herrenschmidt @ 2014-12-05 4:52 UTC (permalink / raw)
To: Mahesh J Salgaonkar; +Cc: linuxppc-dev
In-Reply-To: <20141205042616.17216.16015.stgit@mars>
On Fri, 2014-12-05 at 10:01 +0530, Mahesh J Salgaonkar wrote:
> From: Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com>
>
> The existing MCE code calls flush_tlb hook with IS=0 (single page) resulting
> partial invalidation of TLBs which is not right. This patch fixes that
> by passing IS=0xc00 to invalidate whole TLB for successful recovery from
> TLB and ERAT errors.
What does "TLBIEL_INVAL_SET" means in that context ? Invalidating a set
isn't the same thing as invalidating the TLB ... and that makes no sense
without passing the page address or set # as an argument anyway
I still don't understand your flush_tlb() interface... it's arguments
don't make sense
Ben.
> Signed-off-by: Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com>
> ---
> Hi Michael,
> This MCE fix patch is for stable.
>
> arch/powerpc/kernel/mce_power.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/arch/powerpc/kernel/mce_power.c b/arch/powerpc/kernel/mce_power.c
> index aa9aff3..b6f123a 100644
> --- a/arch/powerpc/kernel/mce_power.c
> +++ b/arch/powerpc/kernel/mce_power.c
> @@ -79,7 +79,7 @@ static long mce_handle_derror(uint64_t dsisr, uint64_t slb_error_bits)
> }
> if (dsisr & P7_DSISR_MC_TLB_MULTIHIT_MFTLB) {
> if (cur_cpu_spec && cur_cpu_spec->flush_tlb)
> - cur_cpu_spec->flush_tlb(TLBIEL_INVAL_PAGE);
> + cur_cpu_spec->flush_tlb(TLBIEL_INVAL_SET);
> /* reset error bits */
> dsisr &= ~P7_DSISR_MC_TLB_MULTIHIT_MFTLB;
> }
> @@ -110,7 +110,7 @@ static long mce_handle_common_ierror(uint64_t srr1)
> break;
> case P7_SRR1_MC_IFETCH_TLB_MULTIHIT:
> if (cur_cpu_spec && cur_cpu_spec->flush_tlb) {
> - cur_cpu_spec->flush_tlb(TLBIEL_INVAL_PAGE);
> + cur_cpu_spec->flush_tlb(TLBIEL_INVAL_SET);
> handled = 1;
> }
> break;
^ permalink raw reply
* Re: powerpc/book3s: Fix flush_tlb cpu_spec hook to take a generic argument.
From: Mahesh Jagannath Salgaonkar @ 2014-12-05 4:33 UTC (permalink / raw)
To: Michael Ellerman; +Cc: linuxppc-dev, Paul Mackerras
In-Reply-To: <1417685753.31400.1.camel@concordia>
On 12/04/2014 03:05 PM, Michael Ellerman wrote:
> On Tue, 2014-12-02 at 14:31 +0530, Mahesh Jagannath Salgaonkar wrote:
>> On 11/29/2014 04:08 AM, Michael Ellerman wrote:
>>> On Tue, 2014-23-09 at 03:53:54 UTC, Mahesh Salgaonkar wrote:
>>>> From: Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com>
>>>>
>>>> The flush_tlb hook in cpu_spec was introduced as a generic function hook
>>>> to invalidate TLBs. But the current implementation of flush_tlb hook
>>>> takes IS (invalidation selector) as an argument which is architecture
>>>> dependent. Hence, It is not right to have a generic routine where caller
>>>> has to pass non-generic argument.
>>>>
>>>> This patch fixes this and makes flush_tlb hook as high level API.
>>>>
>>>> The old code used to call flush_tlb hook with IS=0 (single page) resulting
>>>> partial invalidation of TLBs which is not right. This fix now makes
>>>> sure that whole TLB is invalidated to be able to successfully recover from
>>>> TLB and ERAT errors.
>>>
>>> Which old code? You mean the MCE code I think. That's a bug fix, so it should
>>> be a separate patch.
>>
>> Yes. MCE code. Since this patch re-factors the code that takes IS as
>> direct argument, having a separate fix patch does not make any sense and
>> would get overwritten by this patch anyway.
>
> That's irrelevant.
>
> The fix will go to stable, the refactor will not.
>
> Please do the MCE fix as a separate, preceeding patch.
Done. Sent out a separate fix patch for stable
https://lists.ozlabs.org/pipermail/linuxppc-dev/2014-December/123310.html
Thanks,
-Mahesh.
^ permalink raw reply
* [PATCH] powerpc/book3s: Fix partial invalidation of TLBs in MCE code.
From: Mahesh J Salgaonkar @ 2014-12-05 4:31 UTC (permalink / raw)
To: linuxppc-dev, Benjamin Herrenschmidt, Michael Ellerman
From: Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com>
The existing MCE code calls flush_tlb hook with IS=0 (single page) resulting
partial invalidation of TLBs which is not right. This patch fixes that
by passing IS=0xc00 to invalidate whole TLB for successful recovery from
TLB and ERAT errors.
Signed-off-by: Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com>
---
Hi Michael,
This MCE fix patch is for stable.
arch/powerpc/kernel/mce_power.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/arch/powerpc/kernel/mce_power.c b/arch/powerpc/kernel/mce_power.c
index aa9aff3..b6f123a 100644
--- a/arch/powerpc/kernel/mce_power.c
+++ b/arch/powerpc/kernel/mce_power.c
@@ -79,7 +79,7 @@ static long mce_handle_derror(uint64_t dsisr, uint64_t slb_error_bits)
}
if (dsisr & P7_DSISR_MC_TLB_MULTIHIT_MFTLB) {
if (cur_cpu_spec && cur_cpu_spec->flush_tlb)
- cur_cpu_spec->flush_tlb(TLBIEL_INVAL_PAGE);
+ cur_cpu_spec->flush_tlb(TLBIEL_INVAL_SET);
/* reset error bits */
dsisr &= ~P7_DSISR_MC_TLB_MULTIHIT_MFTLB;
}
@@ -110,7 +110,7 @@ static long mce_handle_common_ierror(uint64_t srr1)
break;
case P7_SRR1_MC_IFETCH_TLB_MULTIHIT:
if (cur_cpu_spec && cur_cpu_spec->flush_tlb) {
- cur_cpu_spec->flush_tlb(TLBIEL_INVAL_PAGE);
+ cur_cpu_spec->flush_tlb(TLBIEL_INVAL_SET);
handled = 1;
}
break;
^ permalink raw reply related
* [PATCH v2] powerpc/powernv: Expose OPAL firmware symbol map
From: Benjamin Herrenschmidt @ 2014-12-05 4:26 UTC (permalink / raw)
To: linuxppc-dev@ozlabs.org list; +Cc: Michael Ellerman, Anton Blanchard
Newer versions of OPAL will provide this, so let's expose it to user
space so tools like perf can use it to properly decode samples in
firmware space.
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
---
v2. Use memory_read_from_buffer()
diff --git a/arch/powerpc/platforms/powernv/opal.c b/arch/powerpc/platforms/powernv/opal.c
index 06d9076..98f50e8 100644
--- a/arch/powerpc/platforms/powernv/opal.c
+++ b/arch/powerpc/platforms/powernv/opal.c
@@ -61,6 +61,8 @@ static DEFINE_SPINLOCK(opal_notifier_lock);
static uint64_t last_notified_mask = 0x0ul;
static atomic_t opal_notifier_hold = ATOMIC_INIT(0);
static uint32_t opal_heartbeat;
+static void *opal_symmap;
+static uint64_t opal_symmap_size;
static void opal_reinit_cores(void)
{
@@ -608,6 +610,40 @@ static int opal_sysfs_init(void)
return 0;
}
+static ssize_t symbol_map_read(struct file *fp, struct kobject *kobj,
+ struct bin_attribute *bin_attr,
+ char *buf, loff_t off, size_t count)
+{
+ return memory_read_from_buffer(buf, count, &off,
+ opal_symmap, opal_symmap_size);
+}
+
+static BIN_ATTR_RO(symbol_map, 0);
+
+static void opal_export_symmap(void)
+{
+ const __be64 *syms;
+ unsigned int size;
+ struct device_node *fw;
+ int rc;
+
+ fw = of_find_node_by_path("/ibm,opal/firmware");
+ if (!fw)
+ return;
+ syms = of_get_property(fw, "symbol-map", &size);
+ if (!syms || size != 2 * sizeof(__be64))
+ return;
+
+ opal_symmap = __va(be64_to_cpu(syms[0]));
+ opal_symmap_size = be64_to_cpu(syms[1]);
+
+ /* Setup attributes */
+ bin_attr_symbol_map.size = opal_symmap_size;
+ rc = sysfs_create_bin_file(opal_kobj, &bin_attr_symbol_map);
+ if (rc)
+ pr_warn("Error %d creating OPAL symbols file\n", rc);
+}
+
static void __init opal_dump_region_init(void)
{
void *addr;
@@ -738,6 +774,8 @@ static int __init opal_init(void)
/* Create "opal" kobject under /sys/firmware */
rc = opal_sysfs_init();
if (rc == 0) {
+ /* Export symbol map to userspace */
+ opal_export_symmap();
/* Setup dump region interface */
opal_dump_region_init();
/* Setup error log interface */
^ permalink raw reply related
* Re: [PATCH v3 1/3] Revert "clk: ppc-corenet: Fix Section mismatch warning"
From: Scott Wood @ 2014-12-05 3:51 UTC (permalink / raw)
To: Kevin Hao
Cc: Mike Turquette, Gerhard Sittig, Yuantian Tang, Jingchang Lu,
linuxppc-dev
In-Reply-To: <1417596833-31456-2-git-send-email-haokexin@gmail.com>
On Wed, 2014-12-03 at 16:53 +0800, Kevin Hao wrote:
> This reverts commit da788acb28386aa896224e784954bb73c99ff26c.
>
> That commit tried to fix the section mismatch warning by moving the
> ppc_corenet_clk_driver struct to init section. This is definitely wrong
> because the kernel would free the memories occupied by this struct
> after boot while this driver is still registered in the driver core.
> The kernel would panic when accessing this driver struct.
>
> Cc: stable@vger.kernel.org # 3.17
> Signed-off-by: Kevin Hao <haokexin@gmail.com>
> Acked-by: Scott Wood <scottwood@freescale.com>
> Acked-by: Michael Turquette <mturquette@linaro.org>
> ---
> v3: Cc stable and add ack.
>
> v2: A new patch in v2.
>
> drivers/clk/clk-ppc-corenet.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/clk/clk-ppc-corenet.c b/drivers/clk/clk-ppc-corenet.c
> index b6e6c85507a5..0a47d6f49cd6 100644
> --- a/drivers/clk/clk-ppc-corenet.c
> +++ b/drivers/clk/clk-ppc-corenet.c
> @@ -291,7 +291,7 @@ static const struct of_device_id ppc_clk_ids[] __initconst = {
> {}
> };
>
> -static struct platform_driver ppc_corenet_clk_driver __initdata = {
> +static struct platform_driver ppc_corenet_clk_driver = {
> .driver = {
> .name = "ppc_corenet_clock",
> .of_match_table = ppc_clk_ids,
This patch is going to conflict with commit a4ae8f3b0f7ac6ab3 "clk: drop
owner assignment from platform_drivers" in linux-next -- or rather,
you've based this on that patch, but it's not in mpe's next branch, so I
get a merge conflict and there'd be another merge conflict later on to
get back to the newer base.
I really think this should go via the clock tree. That's where the
breakage was introduced in the first place...
-Scott
^ permalink raw reply
* Re: [PATCH linux-next] Documentation: Build mic/mpssd only for x86_64
From: Dan Streetman @ 2014-12-05 3:27 UTC (permalink / raw)
To: Ashutosh Dixit
Cc: Jonathan Corbet, Peter Foley, Siva Yerramreddy, Jiri Kosina,
Randy Dunlap, linux-doc, Sudeep Dutt, Caz Yokoyama,
Daniel Borkmann, Greg Kroah-Hartman, Nikhil Rao, linuxppc-dev,
Jennings, linux-kernel, Dasaratharaman Chandramouli
In-Reply-To: <25c04eb72c621fc9bdf0aae25782ff5bad5a4b97.1417728278.git.ashutosh.dixit@intel.com>
On Thu, Dec 4, 2014 at 4:27 PM, Ashutosh Dixit <ashutosh.dixit@intel.com> wrote:
> mic/mpssd along with MIC drivers are currently only usable on
> x86_64. So build mic/mpssd only for x86_64 to avoid build breaks on
> big-endian systems.
Only building for x86_64 is fine, but in that case what's the point of
leaving the htole16() et. al. functions in mpssd.c? Shouldn't they be
removed?
>
> Reported-by: Daniel Borkmann <dborkman@redhat.com>
> Reported-by: Dan Streetman <ddstreet@gmail.com>
> Suggested-by: Peter Foley <pefoley2@pefoley.com>
> Signed-off-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
> ---
> Documentation/mic/mpssd/Makefile | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/Documentation/mic/mpssd/Makefile b/Documentation/mic/mpssd/Makefile
> index 0f31568..f47fe6b 100644
> --- a/Documentation/mic/mpssd/Makefile
> +++ b/Documentation/mic/mpssd/Makefile
> @@ -1,5 +1,5 @@
> # List of programs to build
> -hostprogs-y := mpssd
> +hostprogs-$(CONFIG_X86_64) := mpssd
>
> mpssd-objs := mpssd.o sysfs.o
>
> --
> 2.0.0.rc3.2.g998f840
>
^ permalink raw reply
* [PATCH] powerpc/powernv: Expose OPAL firmware symbol map
From: Benjamin Herrenschmidt @ 2014-12-05 2:36 UTC (permalink / raw)
To: linuxppc-dev@ozlabs.org list; +Cc: Michael Ellerman, Anton Blanchard
Newer versions of OPAL will provide this, so let's expose it to user
space so tools like perf can use it to properly decode samples in
firmware space.
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
---
diff --git a/arch/powerpc/platforms/powernv/opal.c b/arch/powerpc/platforms/powernv/opal.c
index 06d9076..6427959 100644
--- a/arch/powerpc/platforms/powernv/opal.c
+++ b/arch/powerpc/platforms/powernv/opal.c
@@ -61,6 +61,8 @@ static DEFINE_SPINLOCK(opal_notifier_lock);
static uint64_t last_notified_mask = 0x0ul;
static atomic_t opal_notifier_hold = ATOMIC_INIT(0);
static uint32_t opal_heartbeat;
+static void *opal_symmap;
+static uint64_t opal_symmap_size;
static void opal_reinit_cores(void)
{
@@ -604,10 +606,49 @@ static int opal_sysfs_init(void)
pr_warn("kobject_create_and_add opal failed\n");
return -ENOMEM;
}
-
return 0;
}
+static ssize_t symbol_map_read(struct file *fp, struct kobject *kobj,
+ struct bin_attribute *bin_attr,
+ char *buf, loff_t off, size_t count)
+{
+ ssize_t chunk;
+
+ if (off >= opal_symmap_size)
+ return 0;
+ chunk = min_t(ssize_t, opal_symmap_size - off, count);
+ memcpy(buf, opal_symmap + off, chunk);
+
+ return chunk;
+}
+
+static BIN_ATTR_RO(symbol_map, 0);
+
+static void opal_export_symmap(void)
+{
+ const __be64 *syms;
+ unsigned int size;
+ struct device_node *fw;
+ int rc;
+
+ fw = of_find_node_by_path("/ibm,opal/firmware");
+ if (!fw)
+ return;
+ syms = of_get_property(fw, "symbol-map", &size);
+ if (!syms || size != 2 * sizeof(__be64))
+ return;
+
+ opal_symmap = __va(be64_to_cpu(syms[0]));
+ opal_symmap_size = be64_to_cpu(syms[1]);
+
+ /* Setup attributes */
+ bin_attr_symbol_map.size = opal_symmap_size;
+ rc = sysfs_create_bin_file(opal_kobj, &bin_attr_symbol_map);
+ if (rc)
+ pr_warn("Error %d creating OPAL symbols file\n", rc);
+}
+
static void __init opal_dump_region_init(void)
{
void *addr;
@@ -738,6 +779,8 @@ static int __init opal_init(void)
/* Create "opal" kobject under /sys/firmware */
rc = opal_sysfs_init();
if (rc == 0) {
+ /* Export symbol map to userspace */
+ opal_export_symmap();
/* Setup dump region interface */
opal_dump_region_init();
/* Setup error log interface */
^ permalink raw reply related
* Re: powerpc/pci: remove pci device on a bus in reverse order
From: Wei Yang @ 2014-12-05 1:40 UTC (permalink / raw)
To: Gavin Shan; +Cc: Wei Yang, linuxppc-dev
In-Reply-To: <20141204224813.GA8008@shangw>
On Fri, Dec 05, 2014 at 09:48:13AM +1100, Gavin Shan wrote:
>On Thu, Dec 04, 2014 at 03:21:18PM +0800, Wei Yang wrote:
>>On Thu, Dec 04, 2014 at 04:40:35PM +1100, Michael Ellerman wrote:
>>>On Thu, 2014-04-12 at 03:24:37 UTC, Wei Yang wrote:
>>>> As in commit ac205b7b (PCI: make sriov work with hotplug remove) indicates,
>>>> when removing pci devices on a bus which has VFs, we need to remove them in
>>>> the reverse order.
>>>>
>>>> This patch applies this pattern on the hotplug remove path on powerpc arch.
>>>
>>>So is this is a bug fix?
>>
>>It hasn't trigger a bug yet. I found this issue during the code reading. When
>>VFs are enabled and try to remove a bus with VFs, it will face a problem. So I
>>port the change in commit ac205b7b here.
>>
>>>
>>>Where/how have you tested this?
>>
>>I have tested after change on Power8, the EEH hotplug path works fine for PFs
>>now. Will test this when EEH for VFs are ready.
>>
>>Suggest me to keep it untill EEH for VFs are ready?
>>
>
>Please keep it and resend it (with typo fixed as I pointed) after SRIOV patchset
>gets merged. If SRIOV isn't enabled, we don't need the code change.
>
>By the way, it's something related to EEH for PFs. When PF and its VFs seat on
>same PCI bus, we should remove VFs before putting PF offline in the reversed
>order as you did in your code change. Otherwise, PF is put into offline and
>its driver disables VFs. We try redoing the removal for VFs in hotplug path,
>which would cause race condition. If VFs aren't existing, until your SRIOV
>patchset is merged, we don't have this problem. Please correct me if I
>understood things wrongly.
>
Current code is fine until VF is introduced. Yes, your understanding is
correct.
>Thanks,
>Gavin
--
Richard Yang
Help you, Help me
^ permalink raw reply
* Re: [PATCH v3 1/3] Revert "clk: ppc-corenet: Fix Section mismatch warning"
From: Scott Wood @ 2014-12-05 1:10 UTC (permalink / raw)
To: Kevin Hao
Cc: Mike Turquette, Gerhard Sittig, Yuantian Tang, Jingchang Lu,
linuxppc-dev
In-Reply-To: <20141204060652.GC14597@pek-khao-d1.corp.ad.wrs.com>
On Thu, 2014-12-04 at 14:06 +0800, Kevin Hao wrote:
> On Wed, Dec 03, 2014 at 10:46:24PM -0600, Scott Wood wrote:
> > Since only this first patch is a critical bugfix, and there's no
> > arch/powerpc content in that patch, I think it should go via Mike's tree
> > if it's to go in for 3.18 (if it's not already too late). Or, to keep
> > things simple given the dependency of the following patches, we could
> > batch them all together for -next and add a # 3.18 stable request.
>
> We don't need to explicitly add a #3.18 stable request in this case. As I know,
> we only need to indicate the first version which is affected by the bug fixed by
> this commit in the cc tag. This would imply that the applicable stable kernel
> version rang should be from 3.17 to the previous version of the kernel which
> finally merge this commit.
OK.
-Scott
^ permalink raw reply
* Re: [PATCH v2 2/2] ASoC: fsl_ssi: use platform_get_irq instead of irq_of_parse_and_map
From: Mark Brown @ 2014-12-04 22:48 UTC (permalink / raw)
To: Jiada Wang
Cc: alsa-devel, lars, arnd, lgirdwood, tiwai, linuxppc-dev, timur,
linux-kernel, nicoleotsuka, Li.Xiubo, mpa, festevam
In-Reply-To: <1417499707-3125-3-git-send-email-jiada_wang@mentor.com>
[-- Attachment #1: Type: text/plain, Size: 298 bytes --]
On Tue, Dec 02, 2014 at 02:55:07PM +0900, Jiada Wang wrote:
> Use platform_get_irq as no mapping needs to be done.
> By using platform_get_irq, driver can avoid to free IRQ manually
> when SSI driver exits.
Fabio sent a version of this before yours so I applied his, I think the
code is the same.
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 473 bytes --]
^ permalink raw reply
* Re: [PATCH v2 1/2] ASoC: fsl_ssi: fix error path in probe
From: Mark Brown @ 2014-12-04 22:48 UTC (permalink / raw)
To: Jiada Wang
Cc: alsa-devel, lars, arnd, lgirdwood, tiwai, linuxppc-dev, timur,
linux-kernel, nicoleotsuka, Li.Xiubo, mpa, festevam
In-Reply-To: <1417499707-3125-2-git-send-email-jiada_wang@mentor.com>
[-- Attachment #1: Type: text/plain, Size: 165 bytes --]
On Tue, Dec 02, 2014 at 02:55:06PM +0900, Jiada Wang wrote:
> SSI component isn't unregistered if fsl_ssi_debugfs_create() fails
> in probe phase.
applied, thanks.
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 473 bytes --]
^ permalink raw reply
* Re: powerpc/pci: remove pci device on a bus in reverse order
From: Gavin Shan @ 2014-12-04 22:48 UTC (permalink / raw)
To: Wei Yang; +Cc: linuxppc-dev, gwshan
In-Reply-To: <20141204072117.GA9978@richard>
On Thu, Dec 04, 2014 at 03:21:18PM +0800, Wei Yang wrote:
>On Thu, Dec 04, 2014 at 04:40:35PM +1100, Michael Ellerman wrote:
>>On Thu, 2014-04-12 at 03:24:37 UTC, Wei Yang wrote:
>>> As in commit ac205b7b (PCI: make sriov work with hotplug remove) indicates,
>>> when removing pci devices on a bus which has VFs, we need to remove them in
>>> the reverse order.
>>>
>>> This patch applies this pattern on the hotplug remove path on powerpc arch.
>>
>>So is this is a bug fix?
>
>It hasn't trigger a bug yet. I found this issue during the code reading. When
>VFs are enabled and try to remove a bus with VFs, it will face a problem. So I
>port the change in commit ac205b7b here.
>
>>
>>Where/how have you tested this?
>
>I have tested after change on Power8, the EEH hotplug path works fine for PFs
>now. Will test this when EEH for VFs are ready.
>
>Suggest me to keep it untill EEH for VFs are ready?
>
Please keep it and resend it (with typo fixed as I pointed) after SRIOV patchset
gets merged. If SRIOV isn't enabled, we don't need the code change.
By the way, it's something related to EEH for PFs. When PF and its VFs seat on
same PCI bus, we should remove VFs before putting PF offline in the reversed
order as you did in your code change. Otherwise, PF is put into offline and
its driver disables VFs. We try redoing the removal for VFs in hotplug path,
which would cause race condition. If VFs aren't existing, until your SRIOV
patchset is merged, we don't have this problem. Please correct me if I
understood things wrongly.
Thanks,
Gavin
^ 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