* XIP fails on kernels 2.6.12 and higher
@ 2005-09-22 16:08 Korolev, Alexey
2005-09-22 17:20 ` Nicolas Pitre
2005-10-05 11:45 ` Konstantin Kletschke
0 siblings, 2 replies; 10+ messages in thread
From: Korolev, Alexey @ 2005-09-22 16:08 UTC (permalink / raw)
To: linux-mtd
Hi all,
I can't bootup XIP linux kernel on Mainstone platform (based on PXA270
processor). I tried several different kernel versions
2.6.9, 2.6.11 - bootup with enabled XIP kernel feature fine.
But 2.6.12 and 2.6.13 - faults at the start of booting.
I found very big changes between 2.6.12 and 2.6.11 in memory management
code. I suspect it brokes XIP.
Do you know this problem?
Has XIP been broken on all platforms or just on Mainstone platform only?
Here is kernel failure log. (It's rather short :-) )
Linux version 2.6.13.2 (root@localhost.localdomain) (gcc version 3.4.3)
#7 Thu S
ep 22 19:51:25 MSD 2005
CPU: XScale-PXA270 [69054114] revision 4 (ARMv5TE)
Machine: Intel HCDDBBVA0 Development Platform (aka Mainstone)
Memory policy: ECC disabled, Data cache writeback
Run Mode clock: 208.00MHz (*16)
Turbo Mode clock: 416.00MHz (*2.0, active)
Memory clock: 104.00MHz (/2)
System bus clock: 104.00MHz
CPU0: D VIVT undefined 5 cache
CPU0: I cache: 32768 bytes, associativity 32, 32 byte lines, 32 sets
CPU0: D cache: 32768 bytes, associativity 32, 32 byte lines, 32 sets
Built 1 zonelists
Kernel command line: console=ttyS1,115200 mem=64M
mtdparts=phys_mapped_flash:512
k(blob)ro,2m(kernel)ro,16m(root),10m(vol1) rootfstype=jffs2 root=31:02
ro
PID hash table entries: 512 (order: 9, 8192 bytes)
Console: colour dummy device 80x30
Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
Unhandled fault: imprecise external abort (0x406) at 0x00000000
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: XIP fails on kernels 2.6.12 and higher
2005-09-22 16:08 XIP fails on kernels 2.6.12 and higher Korolev, Alexey
@ 2005-09-22 17:20 ` Nicolas Pitre
2005-09-29 22:51 ` Jared Hulbert
2005-10-05 11:45 ` Konstantin Kletschke
1 sibling, 1 reply; 10+ messages in thread
From: Nicolas Pitre @ 2005-09-22 17:20 UTC (permalink / raw)
To: Korolev, Alexey; +Cc: linux-mtd
On Thu, 22 Sep 2005, Korolev, Alexey wrote:
> Hi all,
>
> I can't bootup XIP linux kernel on Mainstone platform (based on PXA270
> processor). I tried several different kernel versions
> 2.6.9, 2.6.11 - bootup with enabled XIP kernel feature fine.
> But 2.6.12 and 2.6.13 - faults at the start of booting.
> I found very big changes between 2.6.12 and 2.6.11 in memory management
> code. I suspect it brokes XIP.
If you can find the exact intermediate release between 2.6.11 and 2.6.12
that broke it that would be extrelely helpful.
> Do you know this problem?
It has been reported in the past.
> Has XIP been broken on all platforms or just on Mainstone platform only?
This is generic code so probably on all platforms.
Nicolas
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: XIP fails on kernels 2.6.12 and higher
2005-09-22 17:20 ` Nicolas Pitre
@ 2005-09-29 22:51 ` Jared Hulbert
2005-10-05 11:42 ` Konstantin Kletschke
2005-10-12 19:05 ` Jared Hulbert
0 siblings, 2 replies; 10+ messages in thread
From: Jared Hulbert @ 2005-09-29 22:51 UTC (permalink / raw)
To: Nicolas Pitre; +Cc: Korolev, Alexey, linux-mtd
> If you can find the exact intermediate release between 2.6.11 and 2.6.12
> that broke it that would be extrelely helpful.
2.6.11.12 works and 2.6.12 does not. I'll see if I can't find an
intermediate release.
> This is generic code so probably on all platforms.
In mm/bootmem.c free_all_bootmem_core() does not return. It seems
after i hits 288 if I step I get a imprecise data abort. It seems to
occur at the __ClearPageReserved() which is an inlined __clear_bit()
from include/asm/bitops.h. It does this at somewhere around
page=0xC0042400 which seems perfectly normal and is readable/writeable
with the JTAG debugger. Its really hard to replicate but it seems
like a LDR op code is always at fault. I've tried 2 different
toolchains and compiling with -O0, while the LDR command was always a
little different it was basically a read to the same address range.
It is really baffling me. Nothing seems wrong with what it is doing.
I almost suspect hardware. I'm also testing on a Mainstone2 like
Alexey. My OSK got destroyed. Can somebody confirm xipImage of
2.6.12 fails to boot where 2.6.11 runs on a different hardware
platform?
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: XIP fails on kernels 2.6.12 and higher
2005-09-29 22:51 ` Jared Hulbert
@ 2005-10-05 11:42 ` Konstantin Kletschke
2005-10-12 19:05 ` Jared Hulbert
1 sibling, 0 replies; 10+ messages in thread
From: Konstantin Kletschke @ 2005-10-05 11:42 UTC (permalink / raw)
To: linux-mtd
* Jared Hulbert <jaredeh@gmail.com> [Thu, Sep 29, 2005 at 03:51:50PM -0700]:
> Alexey. My OSK got destroyed. Can somebody confirm xipImage of
> 2.6.12 fails to boot where 2.6.11 runs on a different hardware
> platform?
http://lists.infradead.org/pipermail/linux-mtd/2005-September/013536.html
Is about the same. I can't get it running on 2.6.13.
I dont know anymore how I got 2.6.12 working or digged around the
problems but IIRC there where several regarding the XIP stuff.
Konsti
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: XIP fails on kernels 2.6.12 and higher
2005-09-22 16:08 XIP fails on kernels 2.6.12 and higher Korolev, Alexey
2005-09-22 17:20 ` Nicolas Pitre
@ 2005-10-05 11:45 ` Konstantin Kletschke
2005-10-06 13:31 ` Konstantin Kletschke
1 sibling, 1 reply; 10+ messages in thread
From: Konstantin Kletschke @ 2005-10-05 11:45 UTC (permalink / raw)
To: linux-mtd
* Korolev, Alexey <alexey.korolev@intel.com> [Thu, Sep 22, 2005 at 08:08:39PM +0400]:
> Linux version 2.6.13.2 (root@localhost.localdomain) (gcc version 3.4.3)
> #7 Thu S
> ep 22 19:51:25 MSD 2005
> CPU: XScale-PXA270 [69054114] revision 4 (ARMv5TE)
> Machine: Intel HCDDBBVA0 Development Platform (aka Mainstone)
> Memory policy: ECC disabled, Data cache writeback
> Run Mode clock: 208.00MHz (*16)
> Turbo Mode clock: 416.00MHz (*2.0, active)
> Memory clock: 104.00MHz (/2)
> System bus clock: 104.00MHz
> CPU0: D VIVT undefined 5 cache
> CPU0: I cache: 32768 bytes, associativity 32, 32 byte lines, 32 sets
> CPU0: D cache: 32768 bytes, associativity 32, 32 byte lines, 32 sets
> Built 1 zonelists
> Kernel command line: console=ttyS1,115200 mem=64M
> mtdparts=phys_mapped_flash:512
> k(blob)ro,2m(kernel)ro,16m(root),10m(vol1) rootfstype=jffs2 root=31:02
> ro
> PID hash table entries: 512 (order: 9, 8192 bytes)
> Console: colour dummy device 80x30
> Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
> Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
> Unhandled fault: imprecise external abort (0x406) at 0x00000000
My 2.6.13 breaks near the same location:
Linux version 2.6.13-imx1 (konsti@synertronixx3) (gcc version 3.3.5) #58 Wed Oct 5 11:38:26 CEST 2005
CPU: ARM920Tid(wb) [41129200] revision 0 (ARMv4T)
Machine: synertronixx scb9328
Memory policy: ECC disabled, Data cache writeback
CPU0: D VIVT write-back cache
CPU0: I cache: 16384 bytes, associativity 64, 32 byte lines, 8 sets
CPU0: D cache: 16384 bytes, associativity 64, 32 byte lines, 8 sets
Built 1 zonelists
Kernel command line: console=ttySMX0,115200n8 root=/dev/mtdblock3 rootfstype=jffs2 mtdparts=scb9328_flash:128k(U-boot)ro,128k(U-boot_env),2m(kernel),5m(root),-(fs) board=evb9328
evb9328 board found
scb9328_init_irq
PID hash table entries: 128 (order: 7, 2048 bytes)
Dentry cache hash table entries: 4096 (order: 2, 16384 bytes)
Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)
K
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: XIP fails on kernels 2.6.12 and higher
2005-10-05 11:45 ` Konstantin Kletschke
@ 2005-10-06 13:31 ` Konstantin Kletschke
0 siblings, 0 replies; 10+ messages in thread
From: Konstantin Kletschke @ 2005-10-06 13:31 UTC (permalink / raw)
To: linux-mtd
* Konstantin Kletschke <lists@ku-gbr.de> [Wed, Oct 05, 2005 at 01:45:11PM +0200]:
> My 2.6.13 breaks near the same location:
In order to try debugging this I found out, that ther Kernel boots
if I disable jffs2 support ... weird...
K
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: XIP fails on kernels 2.6.12 and higher
2005-09-29 22:51 ` Jared Hulbert
2005-10-05 11:42 ` Konstantin Kletschke
@ 2005-10-12 19:05 ` Jared Hulbert
2005-10-12 20:23 ` Nicolas Pitre
1 sibling, 1 reply; 10+ messages in thread
From: Jared Hulbert @ 2005-10-12 19:05 UTC (permalink / raw)
To: Nicolas Pitre; +Cc: Korolev, Alexey, linux-mtd
On 9/29/05, Jared Hulbert <jaredeh@gmail.com> wrote:
> > If you can find the exact intermediate release between 2.6.11 and 2.6.12
> > that broke it that would be extrelely helpful.
I found it. This is the change that was causing my problem
-----------------------------------------------------------------------------------
commit 3871b11e8c07c9e6652f81ae5afc1ae3bb120c40
Author: mpm <mpm>
Date: Tue Mar 8 18:05:40 2005 +0000
[PATCH] lib/sort: Replace insertion sort in exception tables
Replace exception table insertion sort with lib/sort
Signed-off-by: Matt Mackall <mpm@selenic.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
BKrev: 422de974WUZpIt5eM36-PMJe_h6Nfg
-----------------------------------------------------------------------------------
The following is the diff from the old git repository. Unpatching
this in the 2.6.14-rc4 kernel made the xipImage work. What is going
on???
Index: lib/extable.c
===================================================================
--- lib/extable.c (revision 29)
+++ lib/extable.c (revision 28)
@@ -13,6 +13,7 @@
#include <linux/config.h>
#include <linux/module.h>
#include <linux/init.h>
+#include <linux/sort.h>
#include <asm/uaccess.h>
extern struct exception_table_entry __start___ex_table[];
@@ -25,26 +26,17 @@
* This is used both for the kernel exception table and for
* the exception tables of modules that get loaded.
*/
+static int cmp_ex(const void *a, const void *b)
+{
+ const struct exception_table_entry *x = a, *y = b;
+ return x->insn - y->insn;
+}
+
void sort_extable(struct exception_table_entry *start,
struct exception_table_entry *finish)
{
- struct exception_table_entry el, *p, *q;
-
- /* insertion sort */
- for (p = start + 1; p < finish; ++p) {
- /* start .. p-1 is sorted */
- if (p[0].insn < p[-1].insn) {
- /* move element p down to its right place */
- el = *p;
- q = p;
- do {
- /* el comes before q[-1], move q[-1] up one */
- q[0] = q[-1];
- --q;
- } while (q > start && el.insn < q[-1].insn);
- *q = el;
- }
- }
+ sort(start, finish - start, sizeof(struct exception_table_entry),
+ cmp_ex, NULL);
}
#endif
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: XIP fails on kernels 2.6.12 and higher
2005-10-12 19:05 ` Jared Hulbert
@ 2005-10-12 20:23 ` Nicolas Pitre
2005-10-12 20:49 ` Konstantin Kletschke
2005-10-12 21:22 ` Jared Hulbert
0 siblings, 2 replies; 10+ messages in thread
From: Nicolas Pitre @ 2005-10-12 20:23 UTC (permalink / raw)
To: Jared Hulbert; +Cc: Korolev, Alexey, linux-mtd
On Wed, 12 Oct 2005, Jared Hulbert wrote:
> On 9/29/05, Jared Hulbert <jaredeh@gmail.com> wrote:
> > > If you can find the exact intermediate release between 2.6.11 and 2.6.12
> > > that broke it that would be extrelely helpful.
>
> I found it. This is the change that was causing my problem
> -----------------------------------------------------------------------------------
> commit 3871b11e8c07c9e6652f81ae5afc1ae3bb120c40
> Author: mpm <mpm>
> Date: Tue Mar 8 18:05:40 2005 +0000
>
> [PATCH] lib/sort: Replace insertion sort in exception tables
>
> Replace exception table insertion sort with lib/sort
Are you using JFFS2?
Does it still crash if you don't?
Nicolas
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: XIP fails on kernels 2.6.12 and higher
2005-10-12 20:23 ` Nicolas Pitre
@ 2005-10-12 20:49 ` Konstantin Kletschke
2005-10-12 21:22 ` Jared Hulbert
1 sibling, 0 replies; 10+ messages in thread
From: Konstantin Kletschke @ 2005-10-12 20:49 UTC (permalink / raw)
To: Nicolas Pitre; +Cc: Korolev, Alexey, linux-mtd
At Wed, 12 Oct 2005 16:23:37 -0400 (EDT),
Nicolas Pitre <nico@cam.org> wrote:
> Are you using JFFS2?
>
> Does it still crash if you don't?
I am curious if both times yes, could this be related to
http://lists.infradead.org/pipermail/linux-mtd/2005-September/013882.html
?
I will try out tomorrow...
Konsti
--
GPG KeyID EF62FCEF
Fingerprint: 13C9 B16B 9844 EC15 CC2E A080 1E69 3FDA EF62 FCEF
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: XIP fails on kernels 2.6.12 and higher
2005-10-12 20:23 ` Nicolas Pitre
2005-10-12 20:49 ` Konstantin Kletschke
@ 2005-10-12 21:22 ` Jared Hulbert
1 sibling, 0 replies; 10+ messages in thread
From: Jared Hulbert @ 2005-10-12 21:22 UTC (permalink / raw)
To: Nicolas Pitre; +Cc: Korolev, Alexey, linux-mtd
> Are you using JFFS2?
>
> Does it still crash if you don't?
No.
Opps, this is on the wrong list, I'm not even building with the MTD.
I meant to post this on arm-linux. Watch for it there, please.
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2005-10-12 21:22 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-09-22 16:08 XIP fails on kernels 2.6.12 and higher Korolev, Alexey
2005-09-22 17:20 ` Nicolas Pitre
2005-09-29 22:51 ` Jared Hulbert
2005-10-05 11:42 ` Konstantin Kletschke
2005-10-12 19:05 ` Jared Hulbert
2005-10-12 20:23 ` Nicolas Pitre
2005-10-12 20:49 ` Konstantin Kletschke
2005-10-12 21:22 ` Jared Hulbert
2005-10-05 11:45 ` Konstantin Kletschke
2005-10-06 13:31 ` Konstantin Kletschke
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox