* Re: [PATCH] [POWERPC] iSeries: fix section mismatch in iseries_veth
From: Jeff Garzik @ 2008-02-05 18:32 UTC (permalink / raw)
To: Stephen Rothwell; +Cc: ppc-dev, paulus, netdev
In-Reply-To: <20080205141940.c6ddb479.sfr@canb.auug.org.au>
Stephen Rothwell wrote:
> WARNING: vmlinux.o(.text+0x25dca0): Section mismatch in reference from the function .veth_probe() to the function .init.text:.veth_probe_one()
>
> Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
> ---
> drivers/net/iseries_veth.c | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
>
> Jeff, can this go in through the powerpc tree?
>
> diff --git a/drivers/net/iseries_veth.c b/drivers/net/iseries_veth.c
> index 419861c..58d3bb6 100644
> --- a/drivers/net/iseries_veth.c
> +++ b/drivers/net/iseries_veth.c
> @@ -1020,7 +1020,7 @@ static const struct ethtool_ops ops = {
> .get_link = veth_get_link,
> };
>
> -static struct net_device * __init veth_probe_one(int vlan,
> +static struct net_device *veth_probe_one(int vlan,
> struct vio_dev *vio_dev)
> {
it's trivial enough to not matter, and faster to just... applied
(if you'll pardon the bad grammar)
^ permalink raw reply
* [RFC][PATCH] PowerPC: 4xx PCIe indirect DCR spinlock fix.
From: Valentine Barshak @ 2008-02-05 18:36 UTC (permalink / raw)
To: linuxppc-dev
In-Reply-To: <1202158239.7079.4.camel@pasglop>
Since we have mfdcri() and mtdcri() as macros, we can't use constructions, such
as "mtdcri(base, reg, mfdcri(base, reg) | val)". In this case the mfdcri() stuff
is not evaluated first. It's evaluated inside the mtdcri() macro and we have
the dcr_ind_lock spinlock acquired twice. To avoid this error, I've added
__mfdcri()/__mtdcri() inline functions that take the lock after register name
fix-up.
Signed-off-by: Valentine Barshak <vbarshak@ru.mvista.com>
---
include/asm-powerpc/dcr-native.h | 49 +++++++++++++++++++++++----------------
1 files changed, 30 insertions(+), 19 deletions(-)
diff -pruN linux-2.6.orig/include/asm-powerpc/dcr-native.h linux-2.6.bld/include/asm-powerpc/dcr-native.h
--- linux-2.6.orig/include/asm-powerpc/dcr-native.h 2008-02-05 16:44:54.000000000 +0300
+++ linux-2.6.bld/include/asm-powerpc/dcr-native.h 2008-02-05 19:11:55.000000000 +0300
@@ -59,25 +59,36 @@ do { \
/* R/W of indirect DCRs make use of standard naming conventions for DCRs */
extern spinlock_t dcr_ind_lock;
-#define mfdcri(base, reg) \
-({ \
- unsigned long flags; \
- unsigned int val; \
- spin_lock_irqsave(&dcr_ind_lock, flags); \
- mtdcr(DCRN_ ## base ## _CONFIG_ADDR, reg); \
- val = mfdcr(DCRN_ ## base ## _CONFIG_DATA); \
- spin_unlock_irqrestore(&dcr_ind_lock, flags); \
- val; \
-})
-
-#define mtdcri(base, reg, data) \
-do { \
- unsigned long flags; \
- spin_lock_irqsave(&dcr_ind_lock, flags); \
- mtdcr(DCRN_ ## base ## _CONFIG_ADDR, reg); \
- mtdcr(DCRN_ ## base ## _CONFIG_DATA, data); \
- spin_unlock_irqrestore(&dcr_ind_lock, flags); \
-} while (0)
+static inline unsigned __mfdcri(int base_addr, int base_data, int reg)
+{
+ unsigned long flags;
+ unsigned int val;
+
+ spin_lock_irqsave(&dcr_ind_lock, flags);
+ __mtdcr(base_addr, reg);
+ val = __mfdcr(base_data);
+ spin_unlock_irqrestore(&dcr_ind_lock, flags);
+ return val;
+}
+
+static inline void __mtdcri(int base_addr, int base_data, int reg,
+ unsigned val)
+{
+ unsigned long flags;
+
+ spin_lock_irqsave(&dcr_ind_lock, flags);
+ __mtdcr(base_addr, reg);
+ __mtdcr(base_data, val);
+ spin_unlock_irqrestore(&dcr_ind_lock, flags);
+}
+
+#define mfdcri(base, reg) __mfdcri(DCRN_ ## base ## _CONFIG_ADDR, \
+ DCRN_ ## base ## _CONFIG_DATA, \
+ reg)
+
+#define mtdcri(base, reg, data) __mtdcri(DCRN_ ## base ## _CONFIG_ADDR, \
+ DCRN_ ## base ## _CONFIG_DATA, \
+ reg, data)
#endif /* __ASSEMBLY__ */
#endif /* __KERNEL__ */
^ permalink raw reply
* Re: [PATCH 1/2] fb: add support for foreign endianness
From: Anton Vorontsov @ 2008-02-05 19:07 UTC (permalink / raw)
To: adaplas, linux-kernel; +Cc: linuxppc-dev
In-Reply-To: <20080205154432.GA8749@localhost.localdomain>
On Tue, Feb 05, 2008 at 06:44:32PM +0300, Anton Vorontsov wrote:
> This patch adds support for the framebuffers with non-native
> endianness. This is done via FBINFO_FOREIGN_ENDIAN flag that will
> be used by the drivers. Depending on the host endianness this flag
> will be overwritten by FBINFO_BE_MATH internal flag, or cleared.
Or better. Now introduce FB_FOREIGN_ENDIAN config option, so
fb_be_math() could be optimized away.
- - - -
From: Anton Vorontsov <avorontsov@ru.mvista.com>
Subject: [PATCH] fb: add support for foreign endianness
This patch adds support for the framebuffers with non-native
endianness. This is done via FBINFO_FOREIGN_ENDIAN flag that will
be used by the drivers. Depending on the host endianness this flag
will be overwritten by FBINFO_BE_MATH internal flag, or cleared.
Tested to work on MPC8360E-RDK (BE) + Fujitsu MINT framebuffer (LE).
Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
---
drivers/video/Kconfig | 9 +++++++
drivers/video/cfbcopyarea.c | 23 ++++++++++--------
drivers/video/cfbfillrect.c | 48 +++++++++++++++++++++------------------
drivers/video/cfbimgblt.c | 52 +++++++++++++++++++++---------------------
drivers/video/fb_draw.h | 31 ++++++++++++++-----------
drivers/video/fbmem.c | 8 ++++++
drivers/video/syscopyarea.c | 20 ++++++++--------
drivers/video/sysfillrect.c | 49 ++++++++++++++++++++-------------------
drivers/video/sysimgblt.c | 47 ++++++++++++++++++--------------------
include/linux/fb.h | 36 ++++++++++++++++++++++-------
10 files changed, 183 insertions(+), 140 deletions(-)
diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig
index 758435f..6b3940d 100644
--- a/drivers/video/Kconfig
+++ b/drivers/video/Kconfig
@@ -139,6 +139,15 @@ config FB_SYS_IMAGEBLIT
blitting. This is used by drivers that don't provide their own
(accelerated) version and the framebuffer is in system RAM.
+config FB_FOREIGN_ENDIAN
+ bool "Enable support for foreign endianness"
+ depends on FB
+ ---help---
+ This option enables support for the framebuffers with non-native
+ endianness (e.g. Little-Endian framebuffer on a Big-Endian machine).
+ You probably don't have such hardware, so in most cases it's safe to
+ say "n" here.
+
config FB_SYS_FOPS
tristate
depends on FB
diff --git a/drivers/video/cfbcopyarea.c b/drivers/video/cfbcopyarea.c
index b07e419..df03f37 100644
--- a/drivers/video/cfbcopyarea.c
+++ b/drivers/video/cfbcopyarea.c
@@ -44,15 +44,16 @@
*/
static void
-bitcpy(unsigned long __iomem *dst, int dst_idx, const unsigned long __iomem *src,
- int src_idx, int bits, unsigned n, u32 bswapmask)
+bitcpy(struct fb_info *p, unsigned long __iomem *dst, int dst_idx,
+ const unsigned long __iomem *src, int src_idx, int bits,
+ unsigned n, u32 bswapmask)
{
unsigned long first, last;
int const shift = dst_idx-src_idx;
int left, right;
- first = fb_shifted_pixels_mask_long(dst_idx, bswapmask);
- last = ~fb_shifted_pixels_mask_long((dst_idx+n) % bits, bswapmask);
+ first = fb_shifted_pixels_mask_long(p, dst_idx, bswapmask);
+ last = ~fb_shifted_pixels_mask_long(p, (dst_idx+n) % bits, bswapmask);
if (!shift) {
// Same alignment for source and dest
@@ -202,8 +203,9 @@ bitcpy(unsigned long __iomem *dst, int dst_idx, const unsigned long __iomem *src
*/
static void
-bitcpy_rev(unsigned long __iomem *dst, int dst_idx, const unsigned long __iomem *src,
- int src_idx, int bits, unsigned n, u32 bswapmask)
+bitcpy_rev(struct fb_info *p, unsigned long __iomem *dst, int dst_idx,
+ const unsigned long __iomem *src, int src_idx, int bits,
+ unsigned n, u32 bswapmask)
{
unsigned long first, last;
int shift;
@@ -221,8 +223,9 @@ bitcpy_rev(unsigned long __iomem *dst, int dst_idx, const unsigned long __iomem
shift = dst_idx-src_idx;
- first = fb_shifted_pixels_mask_long(bits - 1 - dst_idx, bswapmask);
- last = ~fb_shifted_pixels_mask_long(bits - 1 - ((dst_idx-n) % bits), bswapmask);
+ first = fb_shifted_pixels_mask_long(p, bits - 1 - dst_idx, bswapmask);
+ last = ~fb_shifted_pixels_mask_long(p, bits - 1 - ((dst_idx-n) % bits),
+ bswapmask);
if (!shift) {
// Same alignment for source and dest
@@ -404,7 +407,7 @@ void cfb_copyarea(struct fb_info *p, const struct fb_copyarea *area)
dst_idx &= (bytes - 1);
src += src_idx >> (ffs(bits) - 1);
src_idx &= (bytes - 1);
- bitcpy_rev(dst, dst_idx, src, src_idx, bits,
+ bitcpy_rev(p, dst, dst_idx, src, src_idx, bits,
width*p->var.bits_per_pixel, bswapmask);
}
} else {
@@ -413,7 +416,7 @@ void cfb_copyarea(struct fb_info *p, const struct fb_copyarea *area)
dst_idx &= (bytes - 1);
src += src_idx >> (ffs(bits) - 1);
src_idx &= (bytes - 1);
- bitcpy(dst, dst_idx, src, src_idx, bits,
+ bitcpy(p, dst, dst_idx, src, src_idx, bits,
width*p->var.bits_per_pixel, bswapmask);
dst_idx += bits_per_line;
src_idx += bits_per_line;
diff --git a/drivers/video/cfbfillrect.c b/drivers/video/cfbfillrect.c
index 23d70a1..64b3576 100644
--- a/drivers/video/cfbfillrect.c
+++ b/drivers/video/cfbfillrect.c
@@ -36,16 +36,16 @@
*/
static void
-bitfill_aligned(unsigned long __iomem *dst, int dst_idx, unsigned long pat,
- unsigned n, int bits, u32 bswapmask)
+bitfill_aligned(struct fb_info *p, unsigned long __iomem *dst, int dst_idx,
+ unsigned long pat, unsigned n, int bits, u32 bswapmask)
{
unsigned long first, last;
if (!n)
return;
- first = fb_shifted_pixels_mask_long(dst_idx, bswapmask);
- last = ~fb_shifted_pixels_mask_long((dst_idx+n) % bits, bswapmask);
+ first = fb_shifted_pixels_mask_long(p, dst_idx, bswapmask);
+ last = ~fb_shifted_pixels_mask_long(p, (dst_idx+n) % bits, bswapmask);
if (dst_idx+n <= bits) {
// Single word
@@ -93,16 +93,16 @@ bitfill_aligned(unsigned long __iomem *dst, int dst_idx, unsigned long pat,
*/
static void
-bitfill_unaligned(unsigned long __iomem *dst, int dst_idx, unsigned long pat,
- int left, int right, unsigned n, int bits)
+bitfill_unaligned(struct fb_info *p, unsigned long __iomem *dst, int dst_idx,
+ unsigned long pat, int left, int right, unsigned n, int bits)
{
unsigned long first, last;
if (!n)
return;
- first = FB_SHIFT_HIGH(~0UL, dst_idx);
- last = ~(FB_SHIFT_HIGH(~0UL, (dst_idx+n) % bits));
+ first = FB_SHIFT_HIGH(p, ~0UL, dst_idx);
+ last = ~(FB_SHIFT_HIGH(p, ~0UL, (dst_idx+n) % bits));
if (dst_idx+n <= bits) {
// Single word
@@ -147,8 +147,9 @@ bitfill_unaligned(unsigned long __iomem *dst, int dst_idx, unsigned long pat,
* Aligned pattern invert using 32/64-bit memory accesses
*/
static void
-bitfill_aligned_rev(unsigned long __iomem *dst, int dst_idx, unsigned long pat,
- unsigned n, int bits, u32 bswapmask)
+bitfill_aligned_rev(struct fb_info *p, unsigned long __iomem *dst,
+ int dst_idx, unsigned long pat, unsigned n, int bits,
+ u32 bswapmask)
{
unsigned long val = pat, dat;
unsigned long first, last;
@@ -156,8 +157,8 @@ bitfill_aligned_rev(unsigned long __iomem *dst, int dst_idx, unsigned long pat,
if (!n)
return;
- first = fb_shifted_pixels_mask_long(dst_idx, bswapmask);
- last = ~fb_shifted_pixels_mask_long((dst_idx+n) % bits, bswapmask);
+ first = fb_shifted_pixels_mask_long(p, dst_idx, bswapmask);
+ last = ~fb_shifted_pixels_mask_long(p, (dst_idx+n) % bits, bswapmask);
if (dst_idx+n <= bits) {
// Single word
@@ -217,16 +218,17 @@ bitfill_aligned_rev(unsigned long __iomem *dst, int dst_idx, unsigned long pat,
*/
static void
-bitfill_unaligned_rev(unsigned long __iomem *dst, int dst_idx, unsigned long pat,
- int left, int right, unsigned n, int bits)
+bitfill_unaligned_rev(struct fb_info *p, unsigned long __iomem *dst,
+ int dst_idx, unsigned long pat, int left, int right,
+ unsigned n, int bits)
{
unsigned long first, last, dat;
if (!n)
return;
- first = FB_SHIFT_HIGH(~0UL, dst_idx);
- last = ~(FB_SHIFT_HIGH(~0UL, (dst_idx+n) % bits));
+ first = FB_SHIFT_HIGH(p, ~0UL, dst_idx);
+ last = ~(FB_SHIFT_HIGH(p, ~0UL, (dst_idx+n) % bits));
if (dst_idx+n <= bits) {
// Single word
@@ -306,7 +308,8 @@ void cfb_fillrect(struct fb_info *p, const struct fb_fillrect *rect)
p->fbops->fb_sync(p);
if (!left) {
u32 bswapmask = fb_compute_bswapmask(p);
- void (*fill_op32)(unsigned long __iomem *dst, int dst_idx,
+ void (*fill_op32)(struct fb_info *p,
+ unsigned long __iomem *dst, int dst_idx,
unsigned long pat, unsigned n, int bits,
u32 bswapmask) = NULL;
@@ -325,16 +328,17 @@ void cfb_fillrect(struct fb_info *p, const struct fb_fillrect *rect)
while (height--) {
dst += dst_idx >> (ffs(bits) - 1);
dst_idx &= (bits - 1);
- fill_op32(dst, dst_idx, pat, width*bpp, bits, bswapmask);
+ fill_op32(p, dst, dst_idx, pat, width*bpp, bits,
+ bswapmask);
dst_idx += p->fix.line_length*8;
}
} else {
int right;
int r;
int rot = (left-dst_idx) % bpp;
- void (*fill_op)(unsigned long __iomem *dst, int dst_idx,
- unsigned long pat, int left, int right,
- unsigned n, int bits) = NULL;
+ void (*fill_op)(struct fb_info *p, unsigned long __iomem *dst,
+ int dst_idx, unsigned long pat, int left,
+ int right, unsigned n, int bits) = NULL;
/* rotate pattern to correct start position */
pat = pat << rot | pat >> (bpp-rot);
@@ -355,7 +359,7 @@ void cfb_fillrect(struct fb_info *p, const struct fb_fillrect *rect)
while (height--) {
dst += dst_idx >> (ffs(bits) - 1);
dst_idx &= (bits - 1);
- fill_op(dst, dst_idx, pat, left, right,
+ fill_op(p, dst, dst_idx, pat, left, right,
width*bpp, bits);
r = (p->fix.line_length*8) % bpp;
pat = pat << (bpp-r) | pat >> r;
diff --git a/drivers/video/cfbimgblt.c b/drivers/video/cfbimgblt.c
index f598907..ff3136b 100644
--- a/drivers/video/cfbimgblt.c
+++ b/drivers/video/cfbimgblt.c
@@ -43,30 +43,26 @@
#define DPRINTK(fmt, args...)
#endif
-static const u32 cfb_tab8[] = {
-#if defined(__BIG_ENDIAN)
+static const u32 cfb_tab8_be[] = {
0x00000000,0x000000ff,0x0000ff00,0x0000ffff,
0x00ff0000,0x00ff00ff,0x00ffff00,0x00ffffff,
0xff000000,0xff0000ff,0xff00ff00,0xff00ffff,
0xffff0000,0xffff00ff,0xffffff00,0xffffffff
-#elif defined(__LITTLE_ENDIAN)
+};
+
+static const u32 cfb_tab8_le[] = {
0x00000000,0xff000000,0x00ff0000,0xffff0000,
0x0000ff00,0xff00ff00,0x00ffff00,0xffffff00,
0x000000ff,0xff0000ff,0x00ff00ff,0xffff00ff,
0x0000ffff,0xff00ffff,0x00ffffff,0xffffffff
-#else
-#error FIXME: No endianness??
-#endif
};
-static const u32 cfb_tab16[] = {
-#if defined(__BIG_ENDIAN)
+static const u32 cfb_tab16_be[] = {
0x00000000, 0x0000ffff, 0xffff0000, 0xffffffff
-#elif defined(__LITTLE_ENDIAN)
+};
+
+static const u32 cfb_tab16_le[] = {
0x00000000, 0xffff0000, 0x0000ffff, 0xffffffff
-#else
-#error FIXME: No endianness??
-#endif
};
static const u32 cfb_tab32[] = {
@@ -98,7 +94,8 @@ static inline void color_imageblit(const struct fb_image *image,
val = 0;
if (start_index) {
- u32 start_mask = ~fb_shifted_pixels_mask_u32(start_index, bswapmask);
+ u32 start_mask = ~fb_shifted_pixels_mask_u32(p,
+ start_index, bswapmask);
val = FB_READL(dst) & start_mask;
shift = start_index;
}
@@ -108,20 +105,21 @@ static inline void color_imageblit(const struct fb_image *image,
color = palette[*src];
else
color = *src;
- color <<= FB_LEFT_POS(bpp);
- val |= FB_SHIFT_HIGH(color, shift ^ bswapmask);
+ color <<= FB_LEFT_POS(p, bpp);
+ val |= FB_SHIFT_HIGH(p, color, shift ^ bswapmask);
if (shift >= null_bits) {
FB_WRITEL(val, dst++);
val = (shift == null_bits) ? 0 :
- FB_SHIFT_LOW(color, 32 - shift);
+ FB_SHIFT_LOW(p, color, 32 - shift);
}
shift += bpp;
shift &= (32 - 1);
src++;
}
if (shift) {
- u32 end_mask = fb_shifted_pixels_mask_u32(shift, bswapmask);
+ u32 end_mask = fb_shifted_pixels_mask_u32(p, shift,
+ bswapmask);
FB_WRITEL((FB_READL(dst) & end_mask) | val, dst);
}
@@ -152,8 +150,8 @@ static inline void slow_imageblit(const struct fb_image *image, struct fb_info *
u32 bswapmask = fb_compute_bswapmask(p);
dst2 = (u32 __iomem *) dst1;
- fgcolor <<= FB_LEFT_POS(bpp);
- bgcolor <<= FB_LEFT_POS(bpp);
+ fgcolor <<= FB_LEFT_POS(p, bpp);
+ bgcolor <<= FB_LEFT_POS(p, bpp);
for (i = image->height; i--; ) {
shift = val = 0;
@@ -164,7 +162,8 @@ static inline void slow_imageblit(const struct fb_image *image, struct fb_info *
/* write leading bits */
if (start_index) {
- u32 start_mask = ~fb_shifted_pixels_mask_u32(start_index, bswapmask);
+ u32 start_mask = ~fb_shifted_pixels_mask_u32(p,
+ start_index, bswapmask);
val = FB_READL(dst) & start_mask;
shift = start_index;
}
@@ -172,13 +171,13 @@ static inline void slow_imageblit(const struct fb_image *image, struct fb_info *
while (j--) {
l--;
color = (*s & (1 << l)) ? fgcolor : bgcolor;
- val |= FB_SHIFT_HIGH(color, shift ^ bswapmask);
+ val |= FB_SHIFT_HIGH(p, color, shift ^ bswapmask);
/* Did the bitshift spill bits to the next long? */
if (shift >= null_bits) {
FB_WRITEL(val, dst++);
val = (shift == null_bits) ? 0 :
- FB_SHIFT_LOW(color,32 - shift);
+ FB_SHIFT_LOW(p, color, 32 - shift);
}
shift += bpp;
shift &= (32 - 1);
@@ -187,7 +186,8 @@ static inline void slow_imageblit(const struct fb_image *image, struct fb_info *
/* write trailing bits */
if (shift) {
- u32 end_mask = fb_shifted_pixels_mask_u32(shift, bswapmask);
+ u32 end_mask = fb_shifted_pixels_mask_u32(p, shift,
+ bswapmask);
FB_WRITEL((FB_READL(dst) & end_mask) | val, dst);
}
@@ -223,13 +223,13 @@ static inline void fast_imageblit(const struct fb_image *image, struct fb_info *
u32 __iomem *dst;
const u32 *tab = NULL;
int i, j, k;
-
+
switch (bpp) {
case 8:
- tab = cfb_tab8;
+ tab = fb_be_math(p) ? cfb_tab8_be : cfb_tab8_le;
break;
case 16:
- tab = cfb_tab16;
+ tab = fb_be_math(p) ? cfb_tab16_be : cfb_tab16_le;
break;
case 32:
default:
diff --git a/drivers/video/fb_draw.h b/drivers/video/fb_draw.h
index a2a0618..1db6221 100644
--- a/drivers/video/fb_draw.h
+++ b/drivers/video/fb_draw.h
@@ -94,41 +94,44 @@ static inline unsigned long fb_rev_pixels_in_long(unsigned long val,
return val;
}
-static inline u32 fb_shifted_pixels_mask_u32(u32 index, u32 bswapmask)
+static inline u32 fb_shifted_pixels_mask_u32(struct fb_info *p, u32 index,
+ u32 bswapmask)
{
u32 mask;
if (!bswapmask) {
- mask = FB_SHIFT_HIGH(~(u32)0, index);
+ mask = FB_SHIFT_HIGH(p, ~(u32)0, index);
} else {
- mask = 0xff << FB_LEFT_POS(8);
- mask = FB_SHIFT_LOW(mask, index & (bswapmask)) & mask;
- mask = FB_SHIFT_HIGH(mask, index & ~(bswapmask));
+ mask = 0xff << FB_LEFT_POS(p, 8);
+ mask = FB_SHIFT_LOW(p, mask, index & (bswapmask)) & mask;
+ mask = FB_SHIFT_HIGH(p, mask, index & ~(bswapmask));
#if defined(__i386__) || defined(__x86_64__)
/* Shift argument is limited to 0 - 31 on x86 based CPU's */
if(index + bswapmask < 32)
#endif
- mask |= FB_SHIFT_HIGH(~(u32)0,
+ mask |= FB_SHIFT_HIGH(p, ~(u32)0,
(index + bswapmask) & ~(bswapmask));
}
return mask;
}
-static inline unsigned long fb_shifted_pixels_mask_long(u32 index, u32 bswapmask)
+static inline unsigned long fb_shifted_pixels_mask_long(struct fb_info *p,
+ u32 index,
+ u32 bswapmask)
{
unsigned long mask;
if (!bswapmask) {
- mask = FB_SHIFT_HIGH(~0UL, index);
+ mask = FB_SHIFT_HIGH(p, ~0UL, index);
} else {
- mask = 0xff << FB_LEFT_POS(8);
- mask = FB_SHIFT_LOW(mask, index & (bswapmask)) & mask;
- mask = FB_SHIFT_HIGH(mask, index & ~(bswapmask));
+ mask = 0xff << FB_LEFT_POS(p, 8);
+ mask = FB_SHIFT_LOW(p, mask, index & (bswapmask)) & mask;
+ mask = FB_SHIFT_HIGH(p, mask, index & ~(bswapmask));
#if defined(__i386__) || defined(__x86_64__)
/* Shift argument is limited to 0 - 31 on x86 based CPU's */
if(index + bswapmask < BITS_PER_LONG)
#endif
- mask |= FB_SHIFT_HIGH(~0UL,
+ mask |= FB_SHIFT_HIGH(p, ~0UL,
(index + bswapmask) & ~(bswapmask));
}
return mask;
@@ -158,8 +161,8 @@ static inline unsigned long fb_rev_pixels_in_long(unsigned long val,
return val;
}
-#define fb_shifted_pixels_mask_u32(i, b) FB_SHIFT_HIGH(~(u32)0, (i))
-#define fb_shifted_pixels_mask_long(i, b) FB_SHIFT_HIGH(~0UL, (i))
+#define fb_shifted_pixels_mask_u32(p, i, b) FB_SHIFT_HIGH((p), ~(u32)0, (i))
+#define fb_shifted_pixels_mask_long(p, i, b) FB_SHIFT_HIGH((p), ~0UL, (i))
#define fb_compute_bswapmask(...) 0
#endif /* CONFIG_FB_CFB_REV_PIXELS_IN_BYTE */
diff --git a/drivers/video/fbmem.c b/drivers/video/fbmem.c
index 1194f5e..c086004 100644
--- a/drivers/video/fbmem.c
+++ b/drivers/video/fbmem.c
@@ -1368,6 +1368,7 @@ register_framebuffer(struct fb_info *fb_info)
int i;
struct fb_event event;
struct fb_videomode mode;
+ const bool foreign_endian = fb_info->flags & FBINFO_FOREIGN_ENDIAN;
if (num_registered_fb == FB_MAX)
return -ENXIO;
@@ -1404,6 +1405,13 @@ register_framebuffer(struct fb_info *fb_info)
if (!fb_info->pixmap.blit_y)
fb_info->pixmap.blit_y = ~(u32)0;
+ fb_info->flags &= ~FBINFO_FOREIGN_ENDIAN;
+#ifdef __BIG_ENDIAN
+ fb_info->flags |= foreign_endian ? 0 : FBINFO_BE_MATH;
+#else
+ fb_info->flags |= foreign_endian ? FBINFO_BE_MATH : 0;
+#endif
+
if (!fb_info->modelist.prev || !fb_info->modelist.next)
INIT_LIST_HEAD(&fb_info->modelist);
diff --git a/drivers/video/syscopyarea.c b/drivers/video/syscopyarea.c
index 37af10a..a352d5f 100644
--- a/drivers/video/syscopyarea.c
+++ b/drivers/video/syscopyarea.c
@@ -26,15 +26,15 @@
*/
static void
-bitcpy(unsigned long *dst, int dst_idx, const unsigned long *src,
- int src_idx, int bits, unsigned n)
+bitcpy(struct fb_info *p, unsigned long *dst, int dst_idx,
+ const unsigned long *src, int src_idx, int bits, unsigned n)
{
unsigned long first, last;
int const shift = dst_idx-src_idx;
int left, right;
- first = FB_SHIFT_HIGH(~0UL, dst_idx);
- last = ~(FB_SHIFT_HIGH(~0UL, (dst_idx+n) % bits));
+ first = FB_SHIFT_HIGH(p, ~0UL, dst_idx);
+ last = ~(FB_SHIFT_HIGH(p, ~0UL, (dst_idx+n) % bits));
if (!shift) {
/* Same alignment for source and dest */
@@ -167,8 +167,8 @@ bitcpy(unsigned long *dst, int dst_idx, const unsigned long *src,
*/
static void
-bitcpy_rev(unsigned long *dst, int dst_idx, const unsigned long *src,
- int src_idx, int bits, unsigned n)
+bitcpy_rev(struct fb_info *p, unsigned long *dst, int dst_idx,
+ const unsigned long *src, int src_idx, int bits, unsigned n)
{
unsigned long first, last;
int shift;
@@ -186,8 +186,8 @@ bitcpy_rev(unsigned long *dst, int dst_idx, const unsigned long *src,
shift = dst_idx-src_idx;
- first = FB_SHIFT_LOW(~0UL, bits - 1 - dst_idx);
- last = ~(FB_SHIFT_LOW(~0UL, bits - 1 - ((dst_idx-n) % bits)));
+ first = FB_SHIFT_LOW(p, ~0UL, bits - 1 - dst_idx);
+ last = ~(FB_SHIFT_LOW(p, ~0UL, bits - 1 - ((dst_idx-n) % bits)));
if (!shift) {
/* Same alignment for source and dest */
@@ -353,7 +353,7 @@ void sys_copyarea(struct fb_info *p, const struct fb_copyarea *area)
dst_idx &= (bytes - 1);
src += src_idx >> (ffs(bits) - 1);
src_idx &= (bytes - 1);
- bitcpy_rev(dst, dst_idx, src, src_idx, bits,
+ bitcpy_rev(p, dst, dst_idx, src, src_idx, bits,
width*p->var.bits_per_pixel);
}
} else {
@@ -362,7 +362,7 @@ void sys_copyarea(struct fb_info *p, const struct fb_copyarea *area)
dst_idx &= (bytes - 1);
src += src_idx >> (ffs(bits) - 1);
src_idx &= (bytes - 1);
- bitcpy(dst, dst_idx, src, src_idx, bits,
+ bitcpy(p, dst, dst_idx, src, src_idx, bits,
width*p->var.bits_per_pixel);
dst_idx += bits_per_line;
src_idx += bits_per_line;
diff --git a/drivers/video/sysfillrect.c b/drivers/video/sysfillrect.c
index a261e9e..f94d6b6 100644
--- a/drivers/video/sysfillrect.c
+++ b/drivers/video/sysfillrect.c
@@ -22,16 +22,16 @@
*/
static void
-bitfill_aligned(unsigned long *dst, int dst_idx, unsigned long pat,
- unsigned n, int bits)
+bitfill_aligned(struct fb_info *p, unsigned long *dst, int dst_idx,
+ unsigned long pat, unsigned n, int bits)
{
unsigned long first, last;
if (!n)
return;
- first = FB_SHIFT_HIGH(~0UL, dst_idx);
- last = ~(FB_SHIFT_HIGH(~0UL, (dst_idx+n) % bits));
+ first = FB_SHIFT_HIGH(p, ~0UL, dst_idx);
+ last = ~(FB_SHIFT_HIGH(p, ~0UL, (dst_idx+n) % bits));
if (dst_idx+n <= bits) {
/* Single word */
@@ -78,16 +78,16 @@ bitfill_aligned(unsigned long *dst, int dst_idx, unsigned long pat,
*/
static void
-bitfill_unaligned(unsigned long *dst, int dst_idx, unsigned long pat,
- int left, int right, unsigned n, int bits)
+bitfill_unaligned(struct fb_info *p, unsigned long *dst, int dst_idx,
+ unsigned long pat, int left, int right, unsigned n, int bits)
{
unsigned long first, last;
if (!n)
return;
- first = FB_SHIFT_HIGH(~0UL, dst_idx);
- last = ~(FB_SHIFT_HIGH(~0UL, (dst_idx+n) % bits));
+ first = FB_SHIFT_HIGH(p, ~0UL, dst_idx);
+ last = ~(FB_SHIFT_HIGH(p, ~0UL, (dst_idx+n) % bits));
if (dst_idx+n <= bits) {
/* Single word */
@@ -132,8 +132,8 @@ bitfill_unaligned(unsigned long *dst, int dst_idx, unsigned long pat,
* Aligned pattern invert using 32/64-bit memory accesses
*/
static void
-bitfill_aligned_rev(unsigned long *dst, int dst_idx, unsigned long pat,
- unsigned n, int bits)
+bitfill_aligned_rev(struct fb_info *p, unsigned long *dst, int dst_idx,
+ unsigned long pat, unsigned n, int bits)
{
unsigned long val = pat;
unsigned long first, last;
@@ -141,8 +141,8 @@ bitfill_aligned_rev(unsigned long *dst, int dst_idx, unsigned long pat,
if (!n)
return;
- first = FB_SHIFT_HIGH(~0UL, dst_idx);
- last = ~(FB_SHIFT_HIGH(~0UL, (dst_idx+n) % bits));
+ first = FB_SHIFT_HIGH(p, ~0UL, dst_idx);
+ last = ~(FB_SHIFT_HIGH(p, ~0UL, (dst_idx+n) % bits));
if (dst_idx+n <= bits) {
/* Single word */
@@ -188,16 +188,17 @@ bitfill_aligned_rev(unsigned long *dst, int dst_idx, unsigned long pat,
*/
static void
-bitfill_unaligned_rev(unsigned long *dst, int dst_idx, unsigned long pat,
- int left, int right, unsigned n, int bits)
+bitfill_unaligned_rev(struct fb_info *p, unsigned long *dst, int dst_idx,
+ unsigned long pat, int left, int right, unsigned n,
+ int bits)
{
unsigned long first, last;
if (!n)
return;
- first = FB_SHIFT_HIGH(~0UL, dst_idx);
- last = ~(FB_SHIFT_HIGH(~0UL, (dst_idx+n) % bits));
+ first = FB_SHIFT_HIGH(p, ~0UL, dst_idx);
+ last = ~(FB_SHIFT_HIGH(p, ~0UL, (dst_idx+n) % bits));
if (dst_idx+n <= bits) {
/* Single word */
@@ -267,9 +268,9 @@ void sys_fillrect(struct fb_info *p, const struct fb_fillrect *rect)
if (p->fbops->fb_sync)
p->fbops->fb_sync(p);
if (!left) {
- void (*fill_op32)(unsigned long *dst, int dst_idx,
- unsigned long pat, unsigned n, int bits) =
- NULL;
+ void (*fill_op32)(struct fb_info *p, unsigned long *dst,
+ int dst_idx, unsigned long pat, unsigned n,
+ int bits) = NULL;
switch (rect->rop) {
case ROP_XOR:
@@ -287,16 +288,16 @@ void sys_fillrect(struct fb_info *p, const struct fb_fillrect *rect)
while (height--) {
dst += dst_idx >> (ffs(bits) - 1);
dst_idx &= (bits - 1);
- fill_op32(dst, dst_idx, pat, width*bpp, bits);
+ fill_op32(p, dst, dst_idx, pat, width*bpp, bits);
dst_idx += p->fix.line_length*8;
}
} else {
int right;
int r;
int rot = (left-dst_idx) % bpp;
- void (*fill_op)(unsigned long *dst, int dst_idx,
- unsigned long pat, int left, int right,
- unsigned n, int bits) = NULL;
+ void (*fill_op)(struct fb_info *p, unsigned long *dst,
+ int dst_idx, unsigned long pat, int left,
+ int right, unsigned n, int bits) = NULL;
/* rotate pattern to correct start position */
pat = pat << rot | pat >> (bpp-rot);
@@ -318,7 +319,7 @@ void sys_fillrect(struct fb_info *p, const struct fb_fillrect *rect)
while (height--) {
dst += dst_idx >> (ffs(bits) - 1);
dst_idx &= (bits - 1);
- fill_op(dst, dst_idx, pat, left, right,
+ fill_op(p, dst, dst_idx, pat, left, right,
width*bpp, bits);
r = (p->fix.line_length*8) % bpp;
pat = pat << (bpp-r) | pat >> r;
diff --git a/drivers/video/sysimgblt.c b/drivers/video/sysimgblt.c
index bd7e7e9..88daa9b 100644
--- a/drivers/video/sysimgblt.c
+++ b/drivers/video/sysimgblt.c
@@ -23,30 +23,26 @@
#define DPRINTK(fmt, args...)
#endif
-static const u32 cfb_tab8[] = {
-#if defined(__BIG_ENDIAN)
+static const u32 cfb_tab8_be[] = {
0x00000000,0x000000ff,0x0000ff00,0x0000ffff,
0x00ff0000,0x00ff00ff,0x00ffff00,0x00ffffff,
0xff000000,0xff0000ff,0xff00ff00,0xff00ffff,
0xffff0000,0xffff00ff,0xffffff00,0xffffffff
-#elif defined(__LITTLE_ENDIAN)
+};
+
+static const u32 cfb_tab8_le[] = {
0x00000000,0xff000000,0x00ff0000,0xffff0000,
0x0000ff00,0xff00ff00,0x00ffff00,0xffffff00,
0x000000ff,0xff0000ff,0x00ff00ff,0xffff00ff,
0x0000ffff,0xff00ffff,0x00ffffff,0xffffffff
-#else
-#error FIXME: No endianness??
-#endif
};
-static const u32 cfb_tab16[] = {
-#if defined(__BIG_ENDIAN)
+static const u32 cfb_tab16_be[] = {
0x00000000, 0x0000ffff, 0xffff0000, 0xffffffff
-#elif defined(__LITTLE_ENDIAN)
+};
+
+static const u32 cfb_tab16_le[] = {
0x00000000, 0xffff0000, 0x0000ffff, 0xffffffff
-#else
-#error FIXME: No endianness??
-#endif
};
static const u32 cfb_tab32[] = {
@@ -72,7 +68,7 @@ static void color_imageblit(const struct fb_image *image, struct fb_info *p,
val = 0;
if (start_index) {
- u32 start_mask = ~(FB_SHIFT_HIGH(~(u32)0,
+ u32 start_mask = ~(FB_SHIFT_HIGH(p, ~(u32)0,
start_index));
val = *dst & start_mask;
shift = start_index;
@@ -83,20 +79,20 @@ static void color_imageblit(const struct fb_image *image, struct fb_info *p,
color = palette[*src];
else
color = *src;
- color <<= FB_LEFT_POS(bpp);
- val |= FB_SHIFT_HIGH(color, shift);
+ color <<= FB_LEFT_POS(p, bpp);
+ val |= FB_SHIFT_HIGH(p, color, shift);
if (shift >= null_bits) {
*dst++ = val;
val = (shift == null_bits) ? 0 :
- FB_SHIFT_LOW(color, 32 - shift);
+ FB_SHIFT_LOW(p, color, 32 - shift);
}
shift += bpp;
shift &= (32 - 1);
src++;
}
if (shift) {
- u32 end_mask = FB_SHIFT_HIGH(~(u32)0, shift);
+ u32 end_mask = FB_SHIFT_HIGH(p, ~(u32)0, shift);
*dst &= end_mask;
*dst |= val;
@@ -125,8 +121,8 @@ static void slow_imageblit(const struct fb_image *image, struct fb_info *p,
u32 i, j, l;
dst2 = dst1;
- fgcolor <<= FB_LEFT_POS(bpp);
- bgcolor <<= FB_LEFT_POS(bpp);
+ fgcolor <<= FB_LEFT_POS(p, bpp);
+ bgcolor <<= FB_LEFT_POS(p, bpp);
for (i = image->height; i--; ) {
shift = val = 0;
@@ -137,7 +133,8 @@ static void slow_imageblit(const struct fb_image *image, struct fb_info *p,
/* write leading bits */
if (start_index) {
- u32 start_mask = ~(FB_SHIFT_HIGH(~(u32)0,start_index));
+ u32 start_mask = ~(FB_SHIFT_HIGH(p, ~(u32)0,
+ start_index));
val = *dst & start_mask;
shift = start_index;
}
@@ -145,13 +142,13 @@ static void slow_imageblit(const struct fb_image *image, struct fb_info *p,
while (j--) {
l--;
color = (*s & (1 << l)) ? fgcolor : bgcolor;
- val |= FB_SHIFT_HIGH(color, shift);
+ val |= FB_SHIFT_HIGH(p, color, shift);
/* Did the bitshift spill bits to the next long? */
if (shift >= null_bits) {
*dst++ = val;
val = (shift == null_bits) ? 0 :
- FB_SHIFT_LOW(color,32 - shift);
+ FB_SHIFT_LOW(p, color, 32 - shift);
}
shift += bpp;
shift &= (32 - 1);
@@ -160,7 +157,7 @@ static void slow_imageblit(const struct fb_image *image, struct fb_info *p,
/* write trailing bits */
if (shift) {
- u32 end_mask = FB_SHIFT_HIGH(~(u32)0, shift);
+ u32 end_mask = FB_SHIFT_HIGH(p, ~(u32)0, shift);
*dst &= end_mask;
*dst |= val;
@@ -199,10 +196,10 @@ static void fast_imageblit(const struct fb_image *image, struct fb_info *p,
switch (bpp) {
case 8:
- tab = cfb_tab8;
+ tab = fb_be_math(p) ? cfb_tab8_be : cfb_tab8_le;
break;
case 16:
- tab = cfb_tab16;
+ tab = fb_be_math(p) ? cfb_tab16_be : cfb_tab16_le;
break;
case 32:
default:
diff --git a/include/linux/fb.h b/include/linux/fb.h
index 58c57a3..a067ed3 100644
--- a/include/linux/fb.h
+++ b/include/linux/fb.h
@@ -791,6 +791,17 @@ struct fb_tile_ops {
*/
#define FBINFO_MISC_ALWAYS_SETPAR 0x40000
+/*
+ * Host and GPU endianness differ.
+ */
+#define FBINFO_FOREIGN_ENDIAN 0x100000
+/*
+ * Big endian math. This is the same flags as above, but with different
+ * meaning, it is set by the fb subsystem depending FOREIGN_ENDIAN flag
+ * and host endianness. Drivers should not use this flag.
+ */
+#define FBINFO_BE_MATH 0x100000
+
struct fb_info {
int node;
int flags;
@@ -899,15 +910,11 @@ struct fb_info {
#endif
-#if defined (__BIG_ENDIAN)
-#define FB_LEFT_POS(bpp) (32 - bpp)
-#define FB_SHIFT_HIGH(val, bits) ((val) >> (bits))
-#define FB_SHIFT_LOW(val, bits) ((val) << (bits))
-#else
-#define FB_LEFT_POS(bpp) (0)
-#define FB_SHIFT_HIGH(val, bits) ((val) << (bits))
-#define FB_SHIFT_LOW(val, bits) ((val) >> (bits))
-#endif
+#define FB_LEFT_POS(p, bpp) (fb_be_math(p) ? (32 - (bpp)) : 0)
+#define FB_SHIFT_HIGH(p, val, bits) (fb_be_math(p) ? (val) >> (bits) : \
+ (val) << (bits))
+#define FB_SHIFT_LOW(p, val, bits) (fb_be_math(p) ? (val) << (bits) : \
+ (val) >> (bits))
/*
* `Generic' versions of the frame buffer device operations
@@ -970,6 +977,17 @@ extern void fb_deferred_io_cleanup(struct fb_info *info);
extern int fb_deferred_io_fsync(struct file *file, struct dentry *dentry,
int datasync);
+static inline bool fb_be_math(struct fb_info *info)
+{
+#if defined(CONFIG_FB_FOREIGN_ENDIAN)
+ return info->flags & FBINFO_BE_MATH;
+#elif defined(__BIG_ENDIAN)
+ return true;
+#else
+ return false;
+#endif
+}
+
/* drivers/video/fbsysfs.c */
extern struct fb_info *framebuffer_alloc(size_t size, struct device *dev);
extern void framebuffer_release(struct fb_info *info);
--
1.5.2.2
^ permalink raw reply related
* RE: x86/non-x86: percpu, node ids, apic ids x86.git fixup
From: Luck, Tony @ 2008-02-05 19:05 UTC (permalink / raw)
To: Ingo Molnar
Cc: sparclinux, linux-ia64, Linux Kernel Development, Mike Travis,
Linux/PPC Development, Geert Uytterhoeven, Thomas Gleixner,
Linus Torvalds
In-Reply-To: <1FE6DD409037234FAB833C420AA843EC78C75A@orsmsx424.amr.corp.intel.com>
> Applied that patch and UP kernel built ok, and then crashed in the
> same place with the memset() to a user-looking address from =
kmem_cache_alloc()
>
> So the percpu changes are innocent ... something else since 2.6.24 is
> to blame. Only 5749 commits :-) I'll start bisecting.
The bisection narrowed in on an innocent patch in ipv4 space. Meanwhile
the rush of patches continues. When I retested yesterday when Linus
HEAD was 8af03e782... the CONFIG_SMP=3Dn kernel worked perfectly. So
maybe it was fixed? Or maybe the bug depends on the relative
location of various bits of code/data and as the kernel grows and
shrinks with incoming changes the problem comes and goes :-(
-Tony
^ permalink raw reply
* [PATCH] update_mmu_cache: Don't dcbst non-readable pages.
From: Scott Wood @ 2008-02-05 19:43 UTC (permalink / raw)
To: paulus; +Cc: linuxppc-dev
Currently, update_mmu_cache will crash if given a no-access PTE. There's no
need to synchronize dcache/icache unless it's an exec mapping -- however,
due to the existence of older glibc versions that execute out of a
read-but-no-exec page, readability is tested instead.
This assumes no exec-only mappings; if such mappings become supported, they
will need to go through the kmap_atomic() version of dcache/icache
synchronization.
Signed-off-by: Scott Wood <scottwood@freescale.com>
---
This fixes the following bug:
http://ozlabs.org/pipermail/linuxppc-dev/2008-February/051080.html
arch/powerpc/mm/mem.c | 7 ++++++-
1 files changed, 6 insertions(+), 1 deletions(-)
diff --git a/arch/powerpc/mm/mem.c b/arch/powerpc/mm/mem.c
index e812244..c7d7bd4 100644
--- a/arch/powerpc/mm/mem.c
+++ b/arch/powerpc/mm/mem.c
@@ -483,7 +483,12 @@ void update_mmu_cache(struct vm_area_struct *vma, unsigned long address,
*/
_tlbie(address, 0 /* 8xx doesn't care about PID */);
#endif
- if (!PageReserved(page)
+ /* The _PAGE_USER test should really be _PAGE_EXEC, but
+ * older glibc versions execute some code from no-exec
+ * pages, which for now we are supporting. If exec-only
+ * pages are ever implemented, this will have to change.
+ */
+ if (!PageReserved(page) && (pte_val(pte) & _PAGE_USER)
&& !test_bit(PG_arch_1, &page->flags)) {
if (vma->vm_mm == current->active_mm) {
__flush_dcache_icache((void *) address);
--
1.5.3.8
^ permalink raw reply related
* Re: [RFC][PATCH] PowerPC: 4xx PCIe indirect DCR spinlock fix.
From: Benjamin Herrenschmidt @ 2008-02-05 20:47 UTC (permalink / raw)
To: Valentine Barshak; +Cc: linuxppc-dev
In-Reply-To: <20080205183649.GA5136@ru.mvista.com>
On Tue, 2008-02-05 at 21:36 +0300, Valentine Barshak wrote:
> Since we have mfdcri() and mtdcri() as macros, we can't use constructions, such
> as "mtdcri(base, reg, mfdcri(base, reg) | val)". In this case the mfdcri() stuff
> is not evaluated first. It's evaluated inside the mtdcri() macro and we have
> the dcr_ind_lock spinlock acquired twice. To avoid this error, I've added
> __mfdcri()/__mtdcri() inline functions that take the lock after register name
> fix-up.
>
> Signed-off-by: Valentine Barshak <vbarshak@ru.mvista.com>
Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
> ---
> include/asm-powerpc/dcr-native.h | 49 +++++++++++++++++++++++----------------
> 1 files changed, 30 insertions(+), 19 deletions(-)
>
> diff -pruN linux-2.6.orig/include/asm-powerpc/dcr-native.h linux-2.6.bld/include/asm-powerpc/dcr-native.h
> --- linux-2.6.orig/include/asm-powerpc/dcr-native.h 2008-02-05 16:44:54.000000000 +0300
> +++ linux-2.6.bld/include/asm-powerpc/dcr-native.h 2008-02-05 19:11:55.000000000 +0300
> @@ -59,25 +59,36 @@ do { \
> /* R/W of indirect DCRs make use of standard naming conventions for DCRs */
> extern spinlock_t dcr_ind_lock;
>
> -#define mfdcri(base, reg) \
> -({ \
> - unsigned long flags; \
> - unsigned int val; \
> - spin_lock_irqsave(&dcr_ind_lock, flags); \
> - mtdcr(DCRN_ ## base ## _CONFIG_ADDR, reg); \
> - val = mfdcr(DCRN_ ## base ## _CONFIG_DATA); \
> - spin_unlock_irqrestore(&dcr_ind_lock, flags); \
> - val; \
> -})
> -
> -#define mtdcri(base, reg, data) \
> -do { \
> - unsigned long flags; \
> - spin_lock_irqsave(&dcr_ind_lock, flags); \
> - mtdcr(DCRN_ ## base ## _CONFIG_ADDR, reg); \
> - mtdcr(DCRN_ ## base ## _CONFIG_DATA, data); \
> - spin_unlock_irqrestore(&dcr_ind_lock, flags); \
> -} while (0)
> +static inline unsigned __mfdcri(int base_addr, int base_data, int reg)
> +{
> + unsigned long flags;
> + unsigned int val;
> +
> + spin_lock_irqsave(&dcr_ind_lock, flags);
> + __mtdcr(base_addr, reg);
> + val = __mfdcr(base_data);
> + spin_unlock_irqrestore(&dcr_ind_lock, flags);
> + return val;
> +}
> +
> +static inline void __mtdcri(int base_addr, int base_data, int reg,
> + unsigned val)
> +{
> + unsigned long flags;
> +
> + spin_lock_irqsave(&dcr_ind_lock, flags);
> + __mtdcr(base_addr, reg);
> + __mtdcr(base_data, val);
> + spin_unlock_irqrestore(&dcr_ind_lock, flags);
> +}
> +
> +#define mfdcri(base, reg) __mfdcri(DCRN_ ## base ## _CONFIG_ADDR, \
> + DCRN_ ## base ## _CONFIG_DATA, \
> + reg)
> +
> +#define mtdcri(base, reg, data) __mtdcri(DCRN_ ## base ## _CONFIG_ADDR, \
> + DCRN_ ## base ## _CONFIG_DATA, \
> + reg, data)
>
> #endif /* __ASSEMBLY__ */
> #endif /* __KERNEL__ */
^ permalink raw reply
* Re: Commit for mm/page_alloc.c breaks boot process on my machine
From: Benjamin Herrenschmidt @ 2008-02-05 20:50 UTC (permalink / raw)
To: Mel Gorman; +Cc: linux-kernel, linuxppc-dev
In-Reply-To: <20080205102347.GA11949@csn.ul.ie>
On Tue, 2008-02-05 at 10:23 +0000, Mel Gorman wrote:
> On (05/02/08 11:01), Benjamin Herrenschmidt didst pronounce:
> >
> > >
> > > It's a virtual address so it depends on the value of CONFIG_KERNEL_START
> > > as to whether this is a user program address or not.
> >
> > Shouldn't it be PAGE_OFFSET ? I mean, CONFIG_KERNEL_START should work
> > on powerpc, but still...
> >
>
> mel@arnold:~/git/linux-2.6$ grep PAGE_OFFSET include/asm-ppc/page.h
> #define PAGE_OFFSET CONFIG_KERNEL_START
On powerpc sure.... but it's still dodgy I think.
Ben.
^ permalink raw reply
* Re: [PATCH] update_mmu_cache: Don't dcbst non-readable pages.
From: Benjamin Herrenschmidt @ 2008-02-05 20:52 UTC (permalink / raw)
To: Scott Wood; +Cc: linuxppc-dev, paulus
In-Reply-To: <20080205194326.GA13047@loki.buserror.net>
On Tue, 2008-02-05 at 13:43 -0600, Scott Wood wrote:
> Currently, update_mmu_cache will crash if given a no-access PTE. There's no
> need to synchronize dcache/icache unless it's an exec mapping -- however,
> due to the existence of older glibc versions that execute out of a
> read-but-no-exec page, readability is tested instead.
>
> This assumes no exec-only mappings; if such mappings become supported, they
> will need to go through the kmap_atomic() version of dcache/icache
> synchronization.
>
> Signed-off-by: Scott Wood <scottwood@freescale.com>
Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
> ---
> This fixes the following bug:
> http://ozlabs.org/pipermail/linuxppc-dev/2008-February/051080.html
>
> arch/powerpc/mm/mem.c | 7 ++++++-
> 1 files changed, 6 insertions(+), 1 deletions(-)
>
> diff --git a/arch/powerpc/mm/mem.c b/arch/powerpc/mm/mem.c
> index e812244..c7d7bd4 100644
> --- a/arch/powerpc/mm/mem.c
> +++ b/arch/powerpc/mm/mem.c
> @@ -483,7 +483,12 @@ void update_mmu_cache(struct vm_area_struct *vma, unsigned long address,
> */
> _tlbie(address, 0 /* 8xx doesn't care about PID */);
> #endif
> - if (!PageReserved(page)
> + /* The _PAGE_USER test should really be _PAGE_EXEC, but
> + * older glibc versions execute some code from no-exec
> + * pages, which for now we are supporting. If exec-only
> + * pages are ever implemented, this will have to change.
> + */
> + if (!PageReserved(page) && (pte_val(pte) & _PAGE_USER)
> && !test_bit(PG_arch_1, &page->flags)) {
> if (vma->vm_mm == current->active_mm) {
> __flush_dcache_icache((void *) address);
^ permalink raw reply
* Re: [PATCH] net: NEWEMAC: Remove "rgmii-interface" from rgmii matching table
From: Josh Boyer @ 2008-02-05 21:12 UTC (permalink / raw)
To: jgarzik; +Cc: Stefan Roese, netdev, linuxppc-dev
In-Reply-To: <1201734898.8146.0.camel@pasglop>
On Thu, 31 Jan 2008 10:14:58 +1100
Benjamin Herrenschmidt <benh@kernel.crashing.org> wrote:
>
> On Wed, 2008-01-30 at 07:16 +0100, Stefan Roese wrote:
> > On Wednesday 16 January 2008, Josh Boyer wrote:
> > > On Wed, 16 Jan 2008 20:53:59 +1100
> > >
> > > Benjamin Herrenschmidt <benh@kernel.crashing.org> wrote:
> > > > On Wed, 2008-01-16 at 10:37 +0100, Stefan Roese wrote:
> > > > > With the removal the the "rgmii-interface" device_type property from
> > > > > the dts files, the newemac driver needs an update to only rely on
> > > > > compatible property.
> > > > >
> > > > > Signed-off-by: Stefan Roese <sr@denx.de>
> > > >
> > > > I need to test if it works on CAB, can't change the DT on those. I'll
> > > > let you know tomorrow.
> > >
> > > This should be fine on CAB. The rgmii node has:
> > >
> > > compatible = "ibm,rgmii-axon", "ibm,rgmii"
> > >
> > > so the match should still catch on the latter.
> >
> > How about this patch? Ben, if you think this is ok then we should make sure
> > that it goes in in this merge-window, since the other dts patch relies on it.
>
> It's fine.
Jeff, any chance this can get into .25 soon? I have another patch
queued up behind this one that requires it, and I don't see it in any
of your trees or branches.
Or, if you aren't opposed, I can take it through Paul's tree with your
Ack.
josh
^ permalink raw reply
* Re: [PATCH] net: NEWEMAC: Remove "rgmii-interface" from rgmii matching table
From: Benjamin Herrenschmidt @ 2008-02-05 21:18 UTC (permalink / raw)
To: Josh Boyer; +Cc: linuxppc-dev, Stefan Roese, jgarzik, netdev
In-Reply-To: <20080205151216.4ff3c32a@weaponx>
> Jeff, any chance this can get into .25 soon? I have another patch
> queued up behind this one that requires it, and I don't see it in any
> of your trees or branches.
>
> Or, if you aren't opposed, I can take it through Paul's tree with your
> Ack.
In case my "it's fine" wasn't enough, here's an:
Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
^ permalink raw reply
* Re: Commit for mm/page_alloc.c breaks boot process on my machine
From: Gerhard Pircher @ 2008-02-05 23:17 UTC (permalink / raw)
To: benh; +Cc: mel, linuxppc-dev, linux-kernel
In-Reply-To: <1202169996.7079.20.camel@pasglop>
[-- Attachment #1: Type: text/plain, Size: 3887 bytes --]
-------- Original-Nachricht --------
> Datum: Tue, 05 Feb 2008 11:06:36 +1100
> Von: Benjamin Herrenschmidt <benh@kernel.crashing.org>
> An: Gerhard Pircher <gerhard_pircher@gmx.net>
> CC: Mel Gorman <mel@csn.ul.ie>, linux-kernel@vger.kernel.org
> Betreff: Re: Commit for mm/page_alloc.c breaks boot process on my machine
>
> On Fri, 2008-02-01 at 21:05 +0100, Gerhard Pircher wrote:
> > -------- Original-Nachricht --------
> > > Datum: Fri, 1 Feb 2008 19:11:19 +0000
> > > Von: Mel Gorman <mel@csn.ul.ie>
> > > An: Gerhard Pircher <gerhard_pircher@gmx.net>
> > > CC: linux-kernel@vger.kernel.org
> > > Betreff: Re: Commit for mm/page_alloc.c breaks boot process on my
> machine
> >
> > > With this patch, early boot would use pages from lower PFNs. Without
> > > the patch, it would use memory from higher PFNs. That is the only
> > > real difference.
> > >
> > > 1. Is there any chance that all of your memory is not being properly
> > > initialised?
> > Do you mean uninitialized hardware? That shouldn't be a problem, since
> > older kernels (e.g. 2.6.19 with platform patches for arch/ppc) are
> > running fine.
>
> No, it looks more to me like you aren't properly defining the available
> memory somewhere, or along those lines. Are you using CONFIG_HIGHMEM ? I
> think there have been some issues until recent patches from Kumar, if
> you try to reserve memory in the highmem region (though that may not be
> your problem).
As far as I can see, the U-boot bootwrapper enters the correct size for
the available system memory. Also the memory zone initialization looks
reasonable to me (768 MB in DMA zone and 768 MB in HIGHMEM zone - it's a
G4 machine with 1.5GB RAM).
I compiled kernels (v2.6.24) with and without highmem. The attached
logfiles (kernel-[no]highmem.log) indicate that this doesn't seem to be
the problem.
The kernel boots fine until loading INIT, if it is compiled with this
patch (IIRC commited for 2.6.24-rc2, reverted for 2.6.24):
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=5adc5be7cd1bcef6bb64f5255d2a33f20a3cf5be
(see logfile kernel-pages_at_lower_pfns.log)
> Or maybe you are colliding with some of the non-coherent hacks ?
Yes, the AmigaOne platform code makes use of the non coherent DMA
implementation, but that seems to be working just fine. I compiled a
kernel without non coherent DMA support and it died during the boot
process, too.
> > > Could you try booting with 16MB less memory using mem=?
> > > I started the kernel with 512MB RAM (mem=496) and 1.5GB (mem=1520).
> > > The kernel oopes in both cases with a "Unable to handle kernel
> > > paging request for data address 0xbffff000", followed by a "Oops:
> > > kernel access of bad area, sig 11" message. The end of the stack
> > > trace shows the start_here() function.
> Have you tried DEBUG_PAGEALLOC ? It might fault earlier which might give
> us better informations. Also, a stactrace from the oops might be useful,
> along with a copy of your device-tree.
Yes, I attached the log file for a kernel compiled with DEBUG_PAGEALLOC.
But I'm afraid it doesn't contain useful information, because the log is
even more distorted.
The oops only happend when using the "mem" boot option. The
kernel-oopsmemoption.log attachment should show the stack trace.
I really wonder why the kernel log buffer gets distorted. I only
experienced this with newer kernels (>2.6.23). Note that I haven't tested
older versions (2.6.20-2.6.22).
I included the AmigaOne platform patch (device tree, setup code). The
platform setup code clears the CPU_FTR_NEED_COHERENT flag for G4 cpus and
disables the L2 cache prefetch to workaround a cpu and northbridge bug.
This workaround worked with all 2.6.x kernels so far.
Thanks!
Gerhard
--
Der GMX SmartSurfer hilft bis zu 70% Ihrer Onlinekosten zu sparen!
Ideal für Modem und ISDN: http://www.gmx.net/de/go/smartsurfer
[-- Attachment #2: kernel-highmem.log --]
[-- Type: application/octet-stream, Size: 14093 bytes --]
<6>Using AmigaOne machine description
<4>Total memory = 1536MB; using 4096kB for hash table (at cfc00000)
<5>Linux version 2.6.24 (geri@earth) (gcc version 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)) #8 Sun Feb 3 22:14:51 CET 2008
<7>Found legacy serial port 0 for /pci@80000000/isa@7/serial@2f8
<7> port=2f8, taddr=fe0002f8, irq=0, clk=1843200, speed=0
<7>Found legacy serial port 1 for /pci@80000000/isa@7/serial@3f8
<7> port=3f8, taddr=fe0003f8, irq=0, clk=1843200, speed=0
<6>console [udbg0] enabled
<7>Entering add_active_range(0, 0, 393216) 0 entries of 256 used
<4>AmigaOne l2cr : L2 cache was not active, activating.
<7>Top of RAM: 0x60000000, Total RAM: 0x60000000
<7>Memory hole size: 0MB
<4>Zone PFN ranges:
<4> DMA 0 -> 196608
<4> Normal 196608 -> 196608
<4> HighMem 196608 -> 393216
<4>Movable zone start PFN for each node
<4>early_node_map[1] active PFN ranges
<4> 0: 0 -> 393216
<7>On node 0 totalpages: 393216
<7> DMA zone: 1536 pages used for memmap
<7> DMA zone: 0 pages reserved
<7> DMA zone: 195072 pages, LIFO batch:31
<7> Normal zone: 0 pages used for memmap
<7> HighMem zone: 1536 pages used for memmap
<7> HighMem zone: 195072 pages, LIFO batch:31
<7> Movable zone: 0 pages used for memmap
<4>Built 1 zonelists in Zone order, mobility grouping on. Total pages: 390144
<5>Kernel command line: initcall_debug driver_debug debug root=/dev/hda11 console=ttyS0,115200n8r console=tty0 ide0=ata66 ide1=ata66
<6>ide_setup: ide0=ata66 -- OBSOLETE OPTION, WILL BE REMOVED SOON!
<6>ide_setup: ide1=ata66 -- OBSOLETE OPTION, WILL BE REMOVED SOON!
<6>i8259 legacy interrupt controller initialized
<4>PID hash table entries: 4096 (order: 12, 16384 bytes)
<7>time_init: decrementer frequency = 33.333333 MHz
<7>time_init: processor frequency = 800.000000 MHz
<6>clocksource: timebase mult[7800001] shift[22] registered
<7>clockevent: decrementer mult[888] shift[16] cpu[0]
<4>Console: colour dummy device 80x25
<6>console handover: boot [udbg0] -> real [tty0]
<6>Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
<6>Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
<7>High memory: 786432k
<6>Memory: 1550588k/1572864k available (3264k kernel code, 807648k reserved, 152k data, 278k bss, 172k init)
<6>SLUB: Genslabs=9, HWalign=32, Order=0-1, MinObjects=4, CPUs=1, Nodes=1
<7>Calibrating delay loop... 66.56 BogoMIPS (lpj=133120)
<4>Mount-cache hash table entries: 512
<4>Calling numa_default_policy()
<4>Calling unlock_kernel()
<4>Calling init_idle_bootup_task()
<4>Calling preempt_enable_no_resched()
<4>Calling schedule()
<4>Calling initcall 0xc0321784: init_cpufreq_transition_notifier_list+0x0/0x2c()
<4>initcall 0xc0321784: init_cpufreq_transition_notifier_list+0x0/0x2c() returned 0.
<4>initcall 0xc0321784 ran for 0 msecs: init_cpufreq_transition_notifier_list+0x0/0x2c()
<4>Calling initcall 0xc0321a30: net_ns_init+0x0/0x188()
<6>net_namespace: 64 bytes
<4>initcall 0xc0321a30: net_ns_init+0x0/0x188() returned 0.
<4>initcall 0xc0321a30 ran for 0 msecs: net_ns_init+0x0/0x188()
<4>Ca................................................................ 0xc0312f1c: dma_alloc_init+0x0/0xac() returned 0.
<4>initcall 0xc0312f1c ran for 0 msecs: dma_alloc_init+0x0/0xac()
<4>Calling initcall 0xc03141d4: sysctl_init+0x0/0x44()
<4>initcall 0xc03141d4: sysctl_init+0x0/0x44() returned 0.
<4>initcall 0xc03141d4 ran for 0 msecs: sysctl_init+0x0/0x44()
<4>Calling initcall 0xc03151b0: init_jiffies_clocksource+0x0/0x28()
<4>initcall 0xc03151b0................................................................c03151b0 ran for 0 msecs: init_jiffies_clocksource+0x0/0x28()
<4>Calling initcall 0xc0315704: ksysfs_init+0x0/0x90()
<4>initcall 0xc0315704: ksysfs_init+0x0/0x90() returned 0.
<4>initcall 0xc0315704 ran for 0 msecs: ksysfs_init+0x0/0x90()
<4>Calling initcall 0xc03183e8: filelock_init+0x0/0x48()
<4>initcall 0xc03183e8: filelock_init+0x0/0x48() returned 0.
<4>initcall 0xc03183e8 ran for 0 msecs: filelock_init+0x0/0x48()
<4>Calling initcall 0xc031................................................................_script_binfmt+0x0/0x28() returned 0.
<4>initcall 0xc0318fbc ran for 0 msecs: init_script_binfmt+0x0/0x28()
<4>Calling initcall ................................................................nit_elf_binfmt+0x0/0x28() returned 0.
<4>initcall 0xc0318fe4 ran for 0 msecs: init_elf_binfmt+0x0/0x28()
<4>Calling initcall 0xc0319c68: debugfs_init+0x0/0x68()
<4>initcall 0xc0319c68: debugfs_init+0x0/0x68() returned 0.
<4>initcall 0xc0319c68 ran for 0 msecs: debugfs_init+0x0/0x68()
<4>Calling initcall 0xc031a884: ran................................................................................................................................................................................................_init+0x0/0x30()
<4>initcall 0xc0321754: cpufreq_core_init+0x0/0x30() returned 0.
<4>initcall 0xc0321754 ran for 0 msecs: cpufreq_core_init+0x0/0x30()
<4>Calling initcall 0xc0321890: sock_init+0x0/0x84()
<4>initcall 0xc0321890: sock_init+0x0/0x84() returned 0.
<4>initcall 0xc0321890 ran for 0 msecs: sock_init+0x0/0x84()
<4>Calling initcall 0xc0322350: netpoll_init+0x0/0x20()
<4>initcall 0xc0322350: netpoll_init+0x0/0x20() returned 0.
<4>initcall 0xc0322350 ran for 0 msecs: netpoll_init+0x0/0x20()
<4>Calling initcall 0xc0322628: netlink_proto_init+0x0/0x158()
<6>NET: Registered protocol family 16
<4>initcall 0xc0322628: netlink_proto_init+0x0/0x158() returned 0.
<4>initcall 0xc0322628 ran for 0 msecs: netlink_proto_init+0x0/0x158()
<4>Calling initcall 0xc030be54: of_bus_driver_init+0x0/0x30()
<4>initcall 0xc030be54: of_bus_driver_init+0x0/0x30() returned 0.
<4>initcall 0xc030be54 ran ................................................................................................................................: kobject_uevent_init+0x0/0x68() returned 0.
<4>initcall 0xc031a720 ran for 0 msecs: kobject_uevent_init+0x0/0x68()
<4>Calling initcall 0xc031a8f4: pcibus_class_init+0x0/0x28()
<4>initcall 0xc031a8f4: pcibus_class_init+0x0/0x28() returned 0.
<4>initcall 0xc031a8f4 ran for 0 msecs: pcibus_class_init+0x0/0x28()
<4>Calling initcall 0xc031af54: pci_driver_init+0x0/0x28()
<4>initcall 0xc031af54: pci_driver_init+0x0/0x28() returned 0.
<4>initcall 0xc031af54 ran for 0 msecs: pci_driver_init+0x0/0x28()
<4>Calling i................................................................0xc031b7c4: backlight_class_init+0x0/0x74() returned 0.
<4>initc...............................................................
<4>Calling initcall 0xc031bd2c: video_output_class_init+0x0/0x28................................................................turned 0.
<4>initcall 0xc031bd2c ran for 0 msecs: video_output_class_init+0x0/0x28()
<4>Calling initcall 0xc031c0e4: tty_class_i................................................................ returned 0.
<4>initcall 0xc031c0e4 ran for 0 msecs: tty_class_init+0x0/0x44()
<4>Calling initcall 0xc031cb0c: vtconsole_class_init+0x0/0xf0()
<4>initcall 0xc031cb0c: vtconsole_class_init+0x0/0xf0() returned 0.
<4>initcall 0xc031cb0c ran for 0 msecs: vtconsole_class_init+0x0/0xf0()
<4>Calling initcall 0xc00069a8: irq_late_init+0x0/0x88()
<4>initcall 0xc00069a8: irq_late_init+0x0/0x................................................................e_init+0x0/0x88()
<4>Calling initcall 0xc030b9d8: vdso_init+0x0/0x43c()
<4>initcall 0xc030b9d8: vdso_init+0x0/0x43c() returned 0.
<4>initcall 0xc030b9d8 ran for 0 msecs: vdso_init+0x0/0x43c()
<4>Calling initcall 0xc000f71c: powerpc_debugfs_init+0x0/0x40()................................................................. 0.
<4>initcall 0xc000f71c ran for 0 msecs: powerpc_debugfs_init................................................................................................................................all 0xc030dbc0 ran for 0 msecs: ppc_init+0x0/0x84()
<4>Calling i................................................................ hardware
<7>PCI: Scanning bus 0000:00
<7>PCI: Found 0000:00:00................................................................................................................................. Calling quirk c0012e34 for 0000:00:01.0
<7>PCI: Found 0000:00:06.0 [10b7/9200] 000200 00
<7>PCI: Calling quirk c0012e34 for 0000:00:06.0
<7>PCI: Found 0000:00:07.0 [1106/0686] 000601 00
<7>PCI: Calling quirk c0012e34 for 0000:00:07.0
<7>PCI: Calling quirk c011cdb8 for 0000:00:07.0
<7>PCI: Found 0000:00:07.1 [1106/0571] 000101 00
<7>PCI: Calling quirk c0012e34 for 0000:00:07.1
<7>PCI: Found 0000:00:07.2 [1106/3038] 000c03 00
<7>PCI: Calling quirk c0012e34 for 0000:00:07.2
<7>PCI: Found 0000:00:07.3 [1106/3038] 000c03 00
<7>PCI: Calling quirk c0012e34 for 0000:00:07.3
<7>PCI: Found 0000:00:07.4 [1106/3057] 000000 00
<7>PCI: Calling quirk c0012e34 for 0000:00:07.4
<7>PCI: Calling quirk c011e4a4 for 0000:00:07.4
<7>PCI: Calling quirk c011d720 for 0000:00:07.4
<7>PCI: Found 0000:00:07.5 [1106/3058] 000401 00
<7>PCI: Calling quirk c0012e34 for 0000:00:07.5
<7>PCI: Found 0000:00:07.6 [1106................................................................
<7>PCI: Found 0000:00:08.0 [109e/036e] 000400 00
<7>PCI: Calling quirk c0012e34 for 0000:00:08.0
<7>PCI: Found 0000:00:08.1 [109e/0878] 000480 00
<7>PCI: Calling quirk c0012e34 for 0000:00:08.1
<7>PCI: Found 0000:00:09.0 [1102/0002] 000401 00
<7>PCI: Call................................................................1102/7002] 000980 00
<7>PCI: Calling quirk c0012e34 for 0000:00:09.1
<7>PCI: Found 0000:00:0a.0 [10b9/5237] 000c03 00
<7>PCI: Ca................................................................ [10b9/5237] 000c03 00
<7>PCI: Calling quirk c0012e34 for 0000:0................................................................Calling quirk c0012e34 for 0000:00:0a.2
<7>PCI: Found 0000:00:0a.3 [10b9/5239] 000c03 00
<7>PCI: Calling quirk c0012e34 for 0000:00:0a.3
<7>PCI: Found 0000:00:0a.4 [10b9/5253] 000c00 00
<7>PCI: Calling quirk c0012e34 for 0000:00:0a.4
<7>PCI: Fixups for bus 0000:00
<7>PCI: Scanning behind PCI bridge 0000:00:01.0, config 010100, pass 0
<7>PCI: Scanning bus 0000:01
<7>PCI: Found 0000:01:00.0 [1002/5961] 000300 00
<7>PCI: Calling quirk c0012e34 for................................................................7>PCI: Calling quirk c0012e34 for 0000:01:00.1
<7>PCI: Fixups for bus 0000:01
<7>PCI: Bus scan for 0000:01 returning with max=01
<7>PCI: Scanning behind PCI bridge 0000:00:01.0, config 010100, pass 1
<7>PCI: Bus scan for 0000:00 returning with max=01
<3>PCI: Cannot allocate resource region 0 of device 0000:00:00.0
<3>P................................................................PCI: Cannot allocate resource region 1 of device 0000:01:00.1
<3>PCI: Failed to allocate mem resource #0:8000000@88000000 for 0000:01:00.1
<7> got res [88010000:8801ffff] bus [88010000:8801ffff] flags 200 for BAR 1 of 0000:01:00.1
<7>PCI: moved device 0000:01:00.1 resource 1 (200) to 88010000
<4>initcall 0xc0311a04: pcibios_init+0x0/0x1e8() returned 0.
<4>initcall 0xc0311a04 ran for 3 msecs: pcibios_init+0x0/0x1e8()
<4>Calling initcall 0xc03149b8: param_sysfs_init+0x0/0x1a8()
<4>initcall 0xc03149b8: param_................................................................................................................................................................................................................................................................ msecs: readahead_init+0x0/0x28()
<4>Calling initcall 0xc0318b64: init_bio+0x0/0xf0()
<4>initcall 0xc0318b64: init_bio+0x0/0xf0(................................................................x0/0xf0()
<4>Calling initcall 0xc031a3cc: genhd_device_init+0x0/................................................................rned 0.
<4>initcall 0xc031a3cc ran for 0 msecs: genhd_device_ini................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
[-- Attachment #3: kernel-nohighmem.log --]
[-- Type: text/x-log, Size: 5709 bytes --]
<6>Using AmigaOne machine description
<4>Total memory = 768MB; using 2048kB for hash table (at cfe00000)
<5>Linux version 2.6.24 (geri@earth) (gcc version 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)) #9 Tue Feb 5 21:42:30 CET 2008
<7>Found legacy serial port 0 for /pci@80000000/isa@7/serial@2f8
<7> port=2f8, taddr=fe0002f8, irq=0, clk=1843200, speed=0
<7>Found legacy serial port 1 for /pci@80000000/isa@7/serial@3f8
<7> port=3f8, taddr=fe0003f8, irq=0, clk=1843200, speed=0
<6>console [udbg0] enabled
<7>Entering add_active_range(0, 0, 196608) 0 entries of 256 used
<4>AmigaOne l2cr : L2 cache was not active, activating.
<7>Top of RAM: 0x30000000, Total RAM: 0x30000000
<7>Memory hole size: 0MB
<4>Zone PFN ranges:
<4> DMA 0 -> 196608
<4> Normal 196608 -> 196608
<4>Movable zone start PFN for each node
<4>early_node_map[1] active PFN ranges
<4> 0: 0 -> 196608
<7>On node 0 totalpages: 196608
<7> DMA zone: 1536 pages used for memmap
<7> DMA zone: 0 pages reserved
<7> DMA zone: 195072 pages, LIFO batch:31
<7> Normal zone: 0 pages used for memmap
<7> Movable zone: 0 pages used for memmap
<4>Built 1 zonelists in Zone order, mobility grouping on. Total pages: 195072
<5>Kernel command line: initcall_debug driver_debug debug root=/dev/hda11 console=ttyS0,115200n8r console=tty0 ide0=ata66 ide1=ata66
<6>ide_setup: ide0=ata66 -- OBSOLETE OPTION, WILL BE REMOVED SOON!
<6>ide_setup: ide1=ata66 -- OBSOLETE OPTION, WILL BE REMOVED SOON!
<6>i8259 legacy interrupt controller initialized
<4>PID hash table entries: 4096 (order: 12, 16384 bytes)
<7>time_init: decrementer frequency = 33.333333 MHz
<7>time_init: processor frequency = 800.000000 MHz
<6>clocksource: timebase mult[7800001] shift[22] registered
<7>clockevent: decrementer mult[888] shift[16] cpu[0]
<4>Console: colour dummy device 80x25
<6>console handover: boot [udbg0] -> real [tty0]
<6>Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
<6>Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
<6>Memory: 772864k/786432k available (3396k kernel code, 13116k reserved, 148k data, 256k bss, ................................................................s=4, CPUs=1, Nodes=1
<7>Calibrating delay loop... 66.56 BogoMIPS (lpj=133120)
<4>Mount-cache hash table entries: 512
<4>Calling ................................................................_idle_bootup_task()
<4>Calling preempt_enable_no_resched()
<4>Calling schedule()................................................................................................................................................................................................................................................................................................................................................................................................................................................_init+0x0/0x44()
<4>initcall 0xc03352b0: sysctl_init+0x0/0x44() ................................................................0x0/0x44()
<4>Calling initcall 0xc0336338: init_jiffies_clocksource+0x0/0x28()
<4>initcall 0xc0336338: init_jiffies_clocksource+0x0/0x28() returned 0.
<4>initcall 0xc0336338 ran for 0 msecs: i................................................................................................................................................................................................................................................................................................................................................................................................0x0/0x48()
<4>Calling initcall 0xc033a34c: init_script_binfmt+0x................................................................................................................................................................................................................................................................eturned 0.
<4>initcall 0xc033a374 ran for 0 msecs: init_elf_binf................................................................x80()
<4>initcall 0xc033b078: de................................................................................................................................................................................................................................all 0xc033bd34 ran for 0 msecs: random32_init+0x0/0x34()
<4>Call................................................................................................................................................................................................5c: netpoll_init+0x0/0x20()
<4>initcall 0xc0343e5c: netpoll_init+0x0/0x20() returned 0.
<4>initcall 0xc0343e5c ran for 0 msecs: netpoll_init+0x0/0x20()
<4>Calling initcall 0xc0344134: netlink_................................................................................................................................................................................................x1a8()
<4>Calling initcall 0xc032c528: of_bus_driver_init+0x0/0x................................................................................................................................t+0x0/0x30()
<4>Calling initcall 0xc033bbc0: kobject_uevent_init................................................................................................................................................................................................ss_init+0x0/0x28()
<4>initcall 0xc033bda4: pcibus_class_init+0x0................................................................................................................................................................0xc033c48c: pci_driver_init+0x0/................................................................
[-- Attachment #4: kernel-debugpagealloc.log --]
[-- Type: text/x-log, Size: 1101 bytes --]
<6>Using AmigaOne machine description
<4>Total memory = 768MB; using 2048kB for hash table (at cfe00000)
<7>RAM mapped without BATs
<5>Linux version 2.6.24 (geri@earth) (gcc version 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)) #10 Tue Feb 5 22:08:04 CET 2008
<7>Found legacy serial port 0 for /pci@80000000/isa@7/serial@2f8
<7> port=2f8, taddr=fe0002f8, irq=0, clk=1843200, speed=0
<7>Found legacy serial port 1 for /pci@80000000/isa@7/serial@3f8
<7> port=3f8, taddr=fe0003f8, irq=0, clk=1843200, speed=0
<6>console [udbg0] enabled
<7>Entering add_active_range(0, 0, 196608) 0 entries of 256 used
<4>AmigaOne l2cr : L2 cache was not active, activating.
<7>Top of RAM: 0x30000000, ................................hole size: 0MB
<4>Zone PFN ranges:
<4> DMA 0 -> 196608
<4> Normal 196608 -> 196608
<4>Movable zone start PFN for each node
<4>early_node_map[1] active PFN ranges
<4> 0: 0 -> 196608
<7>On node 0 totalpages: 196608..........................................................................................................................................
[-- Attachment #5: kernel-pages_at_lower_pfns.log --]
[-- Type: text/x-log, Size: 43294 bytes --]
<4>Crash kernel location must be 0x2000000
<6>Reserving 0MB of memory at 32MB for crashkernel (System RAM: 1536MB)
<6>Using AmigaOne machine description
<4>Total memory = 1536MB; using 4096kB for hash table (at cfc00000)
<5>Linux version 2.6.24 (geri@earth) (gcc version 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)) #42 Tue Feb 5 22:43:29 CET 2008
<7>Found legacy serial port 0 for /pci@80000000/isa@7/serial@2f8
<7> port=2f8, taddr=fe0002f8, irq=0, clk=1843200, speed=0
<7>Found legacy serial port 1 for /pci@80000000/isa@7/serial@3f8
<7> port=3f8, taddr=fe0003f8, irq=0, clk=1843200, speed=0
<6>console [udbg0] enabled
<7>Entering add_active_range(0, 0, 393216) 0 entries of 256 used
<4>AmigaOne l2cr : L2 cache was not active, activating.
<7>Top of RAM: 0x60000000, Total RAM: 0x60000000
<7>Memory hole size: 0MB
<4>Zone PFN ranges:
<4> DMA 0 -> 196608
<4> Normal 196608 -> 196608
<4> HighMem 196608 -> 393216
<4>Movable zone start PFN for each node
<4>early_node_map[1] active PFN ranges
<4> 0: 0 -> 393216
<7>On node 0 totalpages: 393216
<7> DMA zone: 1536 pages used for memmap
<7> DMA zone: 0 pages reserved
<7> DMA zone: 195072 pages, LIFO batch:31
<7> Normal zone: 0 pages used for memmap
<7> HighMem zone: 1536 pages used for memmap
<7> HighMem zone: 195072 pages, LIFO batch:31
<7> Movable zone: 0 pages used for memmap
<4>Built 1 zonelists in Zone order, mobility grouping on. Total pages: 390144
<5>Kernel command line: initcall_debug driver_debug debug root=/dev/hda11 console=ttyS0,115200n8r console=tty0 ide0=ata66 ide1=ata66
<6>ide_setup: ide0=ata66 -- OBSOLETE OPTION, WILL BE REMOVED SOON!
<6>ide_setup: ide1=ata66 -- OBSOLETE OPTION, WILL BE REMOVED SOON!
<6>i8259 legacy interrupt controller initialized
<4>PID hash table entries: 4096 (order: 12, 16384 bytes)
<7>time_init: decrementer frequency = 33.333333 MHz
<7>time_init: processor frequency = 800.000000 MHz
<6>clocksource: timebase mult[7800001] shift[22] registered
<7>clockevent: decrementer mult[888] shift[16] cpu[0]
<4>Console: colour dummy device 80x25
<6>console handover: boot [udbg0] -> real [tty0]
<6>Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
<6>Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
<7>High memory: 786432k
<6>Memory: 1550204k/1572864k available (3552k kernel code, 807952k reserved, 152k data, 291k bss, 176k init)
<6>SLUB: Genslabs=9, HWalign=32, Order=0-1, MinObjects=4, CPUs=1, Nodes=1
<7>Calibrating delay loop... 66.56 BogoMIPS (lpj=133120)
<6>Security Framework initialized
<6>SELinux: Disabled at boot.
<6>Capability LSM initialized
<4>Mount-cache hash table entries: 512
<4>Calling numa_default_policy()
<4>Calling unlock_kernel()
<4>Calling init_idle_bootup_task()
<4>Calling preempt_enable_no_resched()
<4>Calling schedule()
<4>Calling initcall 0xc0369608: init_cpufreq_transition_notifier_list+0x0/0x2c()
<4>initcall 0xc0369608: init_cpufreq_transition_notifier_list+0x0/0x2c() returned 0.
<4>initcall 0xc0369608 ran for 0 msecs: init_cpufreq_transition_notifier_list+0x0/0x2c()
<4>Calling initcall 0xc0369924: net_ns_init+0x0/0x188()
<6>net_namespace: 64 bytes
<4>initcall 0xc0369924: net_ns_init+0x0/0x188() returned 0.
<4>initcall 0xc0369924 ran for 0 msecs: net_ns_init+0x0/0x188()
<4>Calling initcall 0xc0359e68: dma_alloc_init+0x0/0xac()
<4>initcall 0xc0359e68: dma_alloc_init+0x0/0xac() returned 0.
<4>initcall 0xc0359e68 ran for 0 msecs: dma_alloc_init+0x0/0xac()
<4>Calling initcall 0xc035b120: sysctl_init+0x0/0x44()
<4>initcall 0xc035b120: sysctl_init+0x0/0x44() returned 0.
<4>initcall 0xc035b120 ran for 0 msecs: sysctl_init+0x0/0x44()
<4>Calling initcall 0xc035c0fc: init_jiffies_clocksource+0x0/0x28()
<4>initcall 0xc035c0fc: init_jiffies_clocksource+0x0/0x28() returned 0.
<4>initcall 0xc035c0fc ran for 0 msecs: init_jiffies_clocksource+0x0/0x28()
<4>Calling initcall 0xc035ccfc: ksysfs_init+0x0/0x90()
<4>initcall 0xc035ccfc: ksysfs_init+0x0/0x90() returned 0.
<4>initcall 0xc035ccfc ran for 0 msecs: ksysfs_init+0x0/0x90()
<4>Calling initcall 0xc035f8a4: filelock_init+0x0/0x48()
<4>initcall 0xc035f8a4: filelock_init+0x0/0x48() returned 0.
<4>initcall 0xc035f8a4 ran for 0 msecs: filelock_init+0x0/0x48()
<4>Calling initcall 0xc0360478: init_script_binfmt+0x0/0x28()
<4>initcall 0xc0360478: init_script_binfmt+0x0/0x28() returned 0.
<4>initcall 0xc0360478 ran for 0 msecs: init_script_binfmt+0x0/0x28()
<4>Calling initcall 0xc03604a0: init_elf_binfmt+0x0/0x28()
<4>initcall 0xc03604a0: init_elf_binfmt+0x0/0x28() returned 0.
<4>initcall 0xc03604a0 ran for 0 msecs: init_elf_binfmt+0x0/0x28()
<4>Calling initcall 0xc0361124: debugfs_init+0x0/0x68()
<4>initcall 0xc0361124: debugfs_init+0x0/0x68() returned 0.
<4>initcall 0xc0361124 ran for 0 msecs: debugfs_init+0x0/0x68()
<4>Calling initcall 0xc03616a8: securityfs_init+0x0/0x68()
<4>initcall 0xc03616a8: securityfs_init+0x0/0x68() returned 0.
<4>initcall 0xc03616a8 ran for 0 msecs: securityfs_init+0x0/0x68()
<4>Calling initcall 0xc03623ec: random32_init+0x0/0x34()
<4>initcall 0xc03623ec: random32_init+0x0/0x34() returned 0.
<4>initcall 0xc03623ec ran for 0 msecs: random32_init+0x0/0x34()
<4>Calling initcall 0xc03695d8: cpufreq_core_init+0x0/0x30()
<4>initcall 0xc03695d8: cpufreq_core_init+0x0/0x30() returned 0.
<4>initcall 0xc03695d8 ran for 0 msecs: cpufreq_core_init+0x0/0x30()
<4>Calling initcall 0xc0369784: sock_init+0x0/0x84()
<4>initcall 0xc0369784: sock_init+0x0/0x84() returned 0.
<4>initcall 0xc0369784 ran for 0 msecs: sock_init+0x0/0x84()
<4>Calling initcall 0xc036a244: netpoll_init+0x0/0x20()
<4>initcall 0xc036a244: netpoll_init+0x0/0x20() returned 0.
<4>initcall 0xc036a244 ran for 0 msecs: netpoll_init+0x0/0x20()
<4>Calling initcall 0xc036a51c: netlink_proto_init+0x0/0x158()
<6>NET: Registered protocol family 16
<4>initcall 0xc036a51c: netlink_proto_init+0x0/0x158() returned 0.
<4>initcall 0xc036a51c ran for 3 msecs: netlink_proto_init+0x0/0x158()
<4>Calling initcall 0xc0352eb8: of_bus_driver_init+0x0/0x30()
<4>initcall 0xc0352eb8: of_bus_driver_init+0x0/0x30() returned 0.
<4>initcall 0xc0352eb8 ran for 0 msecs: of_bus_driver_init+0x0/0x30()
<4>Calling initcall 0xc0362288: kobject_uevent_init+0x0/0x68()
<4>initcall 0xc0362288: kobject_uevent_init+0x0/0x68() returned 0.
<4>initcall 0xc0362288 ran for 0 msecs: kobject_uevent_init+0x0/0x68()
<4>Calling initcall 0xc036245c: pcibus_class_init+0x0/0x28()
<4>initcall 0xc036245c: pcibus_class_init+0x0/0x28() returned 0.
<4>initcall 0xc036245c ran for 0 msecs: pcibus_class_init+0x0/0x28()
<4>Calling initcall 0xc0362abc: pci_driver_init+0x0/0x28()
<4>initcall 0xc0362abc: pci_driver_init+0x0/0x28() returned 0.
<4>initcall 0xc0362abc ran for 0 msecs: pci_driver_init+0x0/0x28()
<4>Calling initcall 0xc03633c4: backlight_class_init+0x0/0x74()
<4>initcall 0xc03633c4: backlight_class_init+0x0/0x74() returned 0.
<4>initcall 0xc03633c4 ran for 0 msecs: backlight_class_init+0x0/0x74()
<4>Calling initcall 0xc036392c: video_output_class_init+0x0/0x28()
<4>initcall 0xc036392c: video_output_class_init+0x0/0x28() returned 0.
<4>initcall 0xc036392c ran for 0 msecs: video_output_class_init+0x0/0x28()
<4>Calling initcall 0xc0363ce4: tty_class_init+0x0/0x44()
<4>initcall 0xc0363ce4: tty_class_init+0x0/0x44() returned 0.
<4>initcall 0xc0363ce4 ran for 0 msecs: tty_class_init+0x0/0x44()
<4>Calling initcall 0xc036470c: vtconsole_class_init+0x0/0xf0()
<4>initcall 0xc036470c: vtconsole_class_init+0x0/0xf0() returned 0.
<4>initcall 0xc036470c ran for 0 msecs: vtconsole_class_init+0x0/0xf0()
<4>Calling initcall 0xc0006948: irq_late_init+0x0/0x88()
<4>initcall 0xc0006948: irq_late_init+0x0/0x88() returned 0.
<4>initcall 0xc0006948 ran for 0 msecs: irq_late_init+0x0/0x88()
<4>Calling initcall 0xc0352a3c: vdso_init+0x0/0x43c()
<4>initcall 0xc0352a3c: vdso_init+0x0/0x43c() returned 0.
<4>initcall 0xc0352a3c ran for 0 msecs: vdso_init+0x0/0x43c()
<4>Calling initcall 0xc000f70c: powerpc_debugfs_init+0x0/0x40()
<4>initcall 0xc000f70c: powerpc_debugfs_init+0x0/0x40() returned 0.
<4>initcall 0xc000f70c ran for 0 msecs: powerpc_debugfs_init+0x0/0x40()
<4>Calling initcall 0xc0354c80: ppc_init+0x0/0x84()
<4>initcall 0xc0354c80: ppc_init+0x0/0x84() returned 0.
<4>initcall 0xc0354c80 ran for 0 msecs: ppc_init+0x0/0x84()
<4>Calling initcall 0xc03587d0: pcibios_init+0x0/0x1e8()
<6>PCI: Probing PCI hardware
<3>PCI: Cannot allocate resource region 0 of device 0000:00:00.0
<3>PCI: Cannot allocate resource region 0 of device 0000:01:00.1
<3>PCI: Cannot allocate resource region 1 of device 0000:01:00.1
<3>PCI: Failed to allocate mem resource #0:8000000@88000000 for 0000:01:00.1
<4>initcall 0xc03587d0: pcibios_init+0x0/0x1e8() returned 0.
<4>initcall 0xc03587d0 ran for 3 msecs: pcibios_init+0x0/0x1e8()
<4>Calling initcall 0xc035b904: param_sysfs_init+0x0/0x1a8()
<4>initcall 0xc035b904: param_sysfs_init+0x0/0x1a8() returned 0.
<4>initcall 0xc035b904 ran for 3 msecs: param_sysfs_init+0x0/0x1a8()
<4>Calling initcall 0xc035efb8: readahead_init+0x0/0x28()
<4>initcall 0xc035efb8: readahead_init+0x0/0x28() returned 0.
<4>initcall 0xc035efb8 ran for 0 msecs: readahead_init+0x0/0x28()
<4>Calling initcall 0xc0360020: init_bio+0x0/0xf0()
<4>initcall 0xc0360020: init_bio+0x0/0xf0() returned 0.
<4>initcall 0xc0360020 ran for 0 msecs: init_bio+0x0/0xf0()
<4>Calling initcall 0xc0361f34: genhd_device_init+0x0/0x74()
<4>initcall 0xc0361f34: genhd_device_init+0x0/0x74() returned 0.
<4>initcall 0xc0361f34 ran for 0 msecs: genhd_device_init+0x0/0x74()
<4>Calling initcall 0xc0362ec4: fbmem_init+0x0/0xc8()
<4>initcall 0xc0362ec4: fbmem_init+0x0/0xc8() returned 0.
<4>initcall 0xc0362ec4 ran for 0 msecs: fbmem_init+0x0/0xc8()
<4>Calling initcall 0xc03640e4: misc_init+0x0/0xb8()
<4>initcall 0xc03640e4: misc_init+0x0/0xb8() returned 0.
<4>initcall 0xc03640e4 ran for 0 msecs: misc_init+0x0/0xb8()
<4>Calling initcall 0xc036813c: init_scsi+0x0/0xa8()
<5>SCSI subsystem initialized
<4>initcall 0xc036813c: init_scsi+0x0/0xa8() returned 0.
<4>initcall 0xc036813c ran for 0 msecs: init_scsi+0x0/0xa8()
<4>Calling initcall 0xc036848c: ata_init+0x0/0xbc()
<7>libata version 3.00 loaded.
<4>initcall 0xc036848c: ata_init+0x0/0xbc() returned 0.
<4>initcall 0xc036848c ran for 0 msecs: ata_init+0x0/0xbc()
<4>Calling initcall 0xc0368820: serio_init+0x0/0xa4()
<4>initcall 0xc0368820: serio_init+0x0/0xa4() returned 0.
<4>initcall 0xc0368820 ran for 0 msecs: serio_init+0x0/0xa4()
<4>Calling initcall 0xc03689ec: input_init+0x0/0x13c()
<4>initcall 0xc03689ec: input_init+0x0/0x13c() returned 0.
<4>initcall 0xc03689ec ran for 0 msecs: input_init+0x0/0x13c()
<4>Calling initcall 0xc0368de4: rtc_init+0x0/0x88()
<4>initcall 0xc0368de4: rtc_init+0x0/0x88() returned 0.
<4>initcall 0xc0368de4 ran for 0 msecs: rtc_init+0x0/0x88()
<4>Calling initcall 0xc03693b0: i2c_init+0x0/0x44()
<4>initcall 0xc03693b0: i2c_init+0x0/0x44() returned 0.
<4>initcall 0xc03693b0 ran for 0 msecs: i2c_init+0x0/0x44()
<4>Calling initcall 0xc03694b0: hwmon_init+0x0/0x64()
<4>initcall 0xc03694b0: hwmon_init+0x0/0x64() returned 0.
<4>initcall 0xc03694b0 ran for 0 msecs: hwmon_init+0x0/0x64()
<4>Calling initcall 0xc0369864: proto_init+0x0/0x54()
<4>initcall 0xc0369864: proto_init+0x0/0x54() returned 0.
<4>initcall 0xc0369864 ran for 0 msecs: proto_init+0x0/0x54()
<4>Calling initcall 0xc0369d1c: net_dev_init+0x0/0x12c()
<4>initcall 0xc0369d1c: net_dev_init+0x0/0x12c() returned 0.
<4>initcall 0xc0369d1c ran for 0 msecs: net_dev_init+0x0/0x12c()
<4>Calling initcall 0xc0369ee4: neigh_init+0x0/0x98()
<4>initcall 0xc0369ee4: neigh_init+0x0/0x98() returned 0.
<4>initcall 0xc0369ee4 ran for 0 msecs: neigh_init+0x0/0x98()
<4>Calling initcall 0xc036a264: fib_rules_init+0x0/0x70()
<4>initcall 0xc036a264: fib_rules_init+0x0/0x70() returned 0.
<4>initcall 0xc036a264 ran for 0 msecs: fib_rules_init+0x0/0x70()
<4>Calling initcall 0xc036a2d4: pktsched_init+0x0/0xf4()
<4>initcall 0xc036a2d4: pktsched_init+0x0/0xf4() returned 0.
<4>initcall 0xc036a2d4 ran for 0 msecs: pktsched_init+0x0/0xf4()
<4>Calling initcall 0xc036a3f0: tc_filter_init+0x0/0x70()
<4>initcall 0xc036a3f0: tc_filter_init+0x0/0x70() returned 0.
<4>initcall 0xc036a3f0 ran for 0 msecs: tc_filter_init+0x0/0x70()
<4>Calling initcall 0xc036a460: tc_action_init+0x0/0x70()
<4>initcall 0xc036a460: tc_action_init+0x0/0x70() returned 0.
<4>initcall 0xc036a460 ran for 0 msecs: tc_action_init+0x0/0x70()
<4>Calling initcall 0xc036a674: genl_init+0x0/0xf8()
<4>Calling preempt_disable()
<4>Calling cpu_idle()
<4>Calling cpu_idle()
<4>initcall 0xc036a674: genl_init+0x0/0xf8() returned 0.
<4>initcall 0xc036a674 ran for 7 msecs: genl_init+0x0/0xf8()
<4>Calling initcall 0xc036bf74: atm_init+0x0/0xd4()
<6>NET: Registered protocol family 8
<6>NET: Registered protocol family 20
<4>initcall 0xc036bf74: atm_init+0x0/0xd4() returned 0.
<4>initcall 0xc036bf74 ran for 0 msecs: atm_init+0x0/0xd4()
<4>Calling initcall 0xc036c1e4: wireless_nlevent_init+0x0/0x20()
<4>initcall 0xc036c1e4: wireless_nlevent_init+0x0/0x20() returned 0.
<4>initcall 0xc036c1e4 ran for 0 msecs: wireless_nlevent_init+0x0/0x20()
<4>Calling initcall 0xc0359f14: add_rtc+0x0/0xcc()
<4>initcall 0xc0359f14: add_rtc+0x0/0xcc() returned 0.
<4>initcall 0xc0359f14 ran for 0 msecs: add_rtc+0x0/0xcc()
<4>Calling initcall 0xc035bfb0: clocksource_done_booting+0x0/0x14()
<4>initcall 0xc035bfb0: clocksource_done_booting+0x0/0x14() returned 0.
<4>initcall 0xc035bfb0 ran for 0 msecs: clocksource_done_booting+0x0/0x14()
<4>Calling initcall 0xc035f7f0: init_pipe_fs+0x0/0x70()
<4>initcall 0xc035f7f0: init_pipe_fs+0x0/0x70() returned 0.
<4>initcall 0xc035f7f0 ran for 0 msecs: init_pipe_fs+0x0/0x70()
<4>Calling initcall 0xc03602b8: eventpoll_init+0x0/0x98()
<4>initcall 0xc03602b8: eventpoll_init+0x0/0x98() returned 0.
<4>initcall 0xc03602b8 ran for 0 msecs: eventpoll_init+0x0/0x98()
<4>Calling initcall 0xc0360350: anon_inode_init+0x0/0x128()
<4>initcall 0xc0360350: anon_inode_init+0x0/0x128() returned 0.
<4>initcall 0xc0360350 ran for 0 msecs: anon_inode_init+0x0/0x128()
<4>Calling initcall 0xc0363954: chr_dev_init+0x0/0xbc()
<4>initcall 0xc0363954: chr_dev_init+0x0/0xbc() returned 0.
<4>initcall 0xc0363954 ran for 0 msecs: chr_dev_init+0x0/0xbc()
<4>Calling initcall 0xc0367434: loopback_init+0x0/0x28()
<4>initcall 0xc0367434: loopback_init+0x0/0x28() returned 0.
<4>initcall 0xc0367434 ran for 0 msecs: loopback_init+0x0/0x28()
<4>Calling initcall 0xc03696a4: cpufreq_gov_performance_init+0x0/0x28()
<4>initcall 0xc03696a4: cpufreq_gov_performance_init+0x0/0x28() returned 0.
<4>initcall 0xc03696a4 ran for 0 msecs: cpufreq_gov_performance_init+0x0/0x28()
<4>Calling initcall 0xc036b414: inet_init+0x0/0x36c()
<6>NET: Registered protocol family 2
<6>Time: timebase clocksource has been installed.
<7>Switched to high resolution mode on CPU 0
<6>IP route cache hash table entries: 32768 (order: 5, 131072 bytes)
<6>TCP established hash table entries: 131072 (order: 8, 1048576 bytes)
<6>TCP bind hash table entries: 65536 (order: 6, 262144 bytes)
<6>TCP: Hash tables configured (established 131072 bind 65536)
<6>TCP reno registered
<4>initcall 0xc036b414: inet_init+0x0/0x36c() returned 0.
<4>initcall 0xc036b414 ran for 49 msecs: inet_init+0x0/0x36c()
<4>Calling initcall 0xc0352568: populate_rootfs+0x0/0xf8()
<4>initcall 0xc0352568: populate_rootfs+0x0/0xf8() returned 0.
<4>initcall 0xc0352568 ran for 0 msecs: populate_rootfs+0x0/0xf8()
<4>Calling initcall 0xc0352e8c: register_powersave_nap_sysctl+0x0/0x2c()
<4>initcall 0xc0352e8c: register_powersave_nap_sysctl+0x0/0x2c() returned 0.
<4>initcall 0xc0352e8c ran for 0 msecs: register_powersave_nap_sysctl+0x0/0x2c()
<4>Calling initcall 0xc0352f08: TAU_init+0x0/0xf4()
<4>Thermal assist unit not available
<4>initcall 0xc0352f08: TAU_init+0x0/0xf4() returned 1.
<4>initcall 0xc0352f08 ran for 0 msecs: TAU_init+0x0/0xf4()
<4>initcall at 0xc0352f08: TAU_init+0x0/0xf4(): returned with error code 1
<4>Calling initcall 0xc03549a0: add_pcspkr+0x0/0x80()
<4>initcall 0xc03549a0: add_pcspkr+0x0/0x80() returned 0.
<4>initcall 0xc03549a0 ran for 0 msecs: add_pcspkr+0x0/0x80()
<4>Calling initcall 0xc03571f8: serial_dev_init+0x0/0x134()
<4>initcall 0xc03571f8: serial_dev_init+0x0/0x134() returned 0.
<4>initcall 0xc03571f8 ran for 0 msecs: serial_dev_init+0x0/0x134()
<4>Calling initcall 0xc0358b3c: audit_classes_init+0x0/0x70()
<4>initcall 0xc0358b3c: audit_classes_init+0x0/0x70() returned 0.
<4>initcall 0xc0358b3c ran for 0 msecs: audit_classes_init+0x0/0x70()
<4>Calling initcall 0xc03595dc: setup_kcore+0x0/0xe0()
<7>setup_kcore: restrict size=3fffffff
<4>initcall 0xc03595dc: setup_kcore+0x0/0xe0() returned 0.
<4>initcall 0xc03595dc ran for 0 msecs: setup_kcore+0x0/0xe0()
<4>Calling initcall 0xc035abec: create_proc_profile+0x0/0x74()
<4>initcall 0xc035abec: create_proc_profile+0x0/0x74() returned 0.
<4>initcall 0xc035abec ran for 0 msecs: create_proc_profile+0x0/0x74()
<4>Calling initcall 0xc035b0b0: ioresources_init+0x0/0x70()
<4>initcall 0xc035b0b0: ioresources_init+0x0/0x70() returned 0.
<4>initcall 0xc035b0b0 ran for 0 msecs: ioresources_init+0x0/0x70()
<4>Calling initcall 0xc035b318: uid_cache_init+0x0/0x94()
<4>initcall 0xc035b318: uid_cache_init+0x0/0x94() returned 0.
<4>initcall 0xc035b318 ran for 0 msecs: uid_cache_init+0x0/0x94()
<4>Calling initcall 0xc035baac: init_posix_timers+0x0/0xc0()
<4>initcall 0xc035baac: init_posix_timers+0x0/0xc0() returned 0.
<4>initcall 0xc035baac ran for 0 msecs: init_posix_timers+0x0/0xc0()
<4>Calling initcall 0xc035bb6c: init_posix_cpu_timers+0x0/0xf0()
<4>initcall 0xc035bb6c: init_posix_cpu_timers+0x0/0xf0() returned 0.
<4>initcall 0xc035bb6c ran for 0 msecs: init_posix_cpu_timers+0x0/0xf0()
<4>Calling initcall 0xc035bd68: latency_init+0x0/0x40()
<4>initcall 0xc035bd68: latency_init+0x0/0x40() returned 0.
<4>initcall 0xc035bd68 ran for 0 msecs: latency_init+0x0/0x40()
<4>Calling initcall 0xc035bda8: nsproxy_cache_init+0x0/0x44()
<4>initcall 0xc035bda8: nsproxy_cache_init+0x0/0x44() returned 0.
<4>initcall 0xc035bda8 ran for 0 msecs: nsproxy_cache_init+0x0/0x44()
<4>Calling initcall 0xc035bdec: timekeeping_init_device+0x0/0x44()
<4>initcall 0xc035bdec: timekeeping_init_device+0x0/0x44() returned 0.
<4>initcall 0xc035bdec ran for 0 msecs: timekeeping_init_device+0x0/0x44()
<4>Calling initcall 0xc035c07c: init_clocksource_sysfs+0x0/0x80()
<4>initcall 0xc035c07c: init_clocksource_sysfs+0x0/0x80() returned 0.
<4>initcall 0xc035c07c ran for 0 msecs: init_clocksource_sysfs+0x0/0x80()
<4>Calling initcall 0xc035c124: init_timer_list_procfs+0x0/0x4c()
<4>initcall 0xc035c124: init_timer_list_procfs+0x0/0x4c() returned 0.
<4>initcall 0xc035c124 ran for 0 msecs: init_timer_list_procfs+0x0/0x4c()
<4>Calling initcall 0xc035c210: init+0x0/0xa8()
<4>initcall 0xc035c210: init+0x0/0xa8() returned 0.
<4>initcall 0xc035c210 ran for 0 msecs: init+0x0/0xa8()
<4>Calling initcall 0xc035c2b8: proc_dma_init+0x0/0x48()
<4>initcall 0xc035c2b8: proc_dma_init+0x0/0x48() returned 0.
<4>initcall 0xc035c2b8 ran for 0 msecs: proc_dma_init+0x0/0x48()
<4>Calling initcall 0xc035c300: kallsyms_init+0x0/0x48()
<4>initcall 0xc035c300: kallsyms_init+0x0/0x48() returned 0.
<4>initcall 0xc035c300 ran for 0 msecs: kallsyms_init+0x0/0x48()
<4>Calling initcall 0xc035c348: crash_notes_memory_init+0x0/0x5c()
<4>initcall 0xc035c348: crash_notes_memory_init+0x0/0x5c() returned 0.
<4>initcall 0xc035c348 ran for 0 msecs: crash_notes_memory_init+0x0/0x5c()
<4>Calling initcall 0xc035c3a4: crash_save_vmcoreinfo_init+0x0/0x348()
<4>initcall 0xc035c3a4: crash_save_vmcoreinfo_init+0x0/0x348() returned 0.
<4>initcall 0xc035c3a4 ran for 0 msecs: crash_save_vmcoreinfo_init+0x0/0x348()
<4>Calling initcall 0xc035ca88: audit_init+0x0/0x144()
<6>audit: initializing netlink socket (disabled)
<5>audit(0.384:1): initialized
<4>initcall 0xc035ca88: audit_init+0x0/0x144() returned 0.
<4>initcall 0xc035ca88 ran for 0 msecs: audit_init+0x0/0x144()
<4>Calling initcall 0xc035cc90: audit_tree_init+0x0/0x6c()
<4>initcall 0xc035cc90: audit_tree_init+0x0/0x6c() returned 0.
<4>initcall 0xc035cc90 ran for 0 msecs: audit_tree_init+0x0/0x6c()
<4>Calling initcall 0xc035ce14: relay_init+0x0/0x8()
<4>initcall 0xc035ce14: relay_init+0x0/0x8() returned 0.
<4>initcall 0xc035ce14 ran for 0 msecs: relay_init+0x0/0x8()
<4>Calling initcall 0xc035ce1c: utsname_sysctl_init+0x0/0x2c()
<4>initcall 0xc035ce1c: utsname_sysctl_init+0x0/0x2c() returned 0.
<4>initcall 0xc035ce1c ran for 0 msecs: utsname_sysctl_init+0x0/0x2c()
<4>Calling initcall 0xc035e1b0: init_per_zone_pages_min+0x0/0x5c()
<4>initcall 0xc035e1b0: init_per_zone_pages_min+0x0/0x5c() returned 0.
<4>initcall 0xc035e1b0 ran for 0 msecs: init_per_zone_pages_min+0x0/0x5c()
<4>Calling initcall 0xc035ef7c: pdflush_init+0x0/0x3c()
<4>initcall 0xc035ef7c: pdflush_init+0x0/0x3c() returned 0.
<4>initcall 0xc035ef7c ran for 0 msecs: pdflush_init+0x0/0x3c()
<4>Calling initcall 0xc035f038: kswapd_init+0x0/0x2c()
<4>initcall 0xc035f038: kswapd_init+0x0/0x2c() returned 0.
<4>initcall 0xc035f038 ran for 0 msecs: kswapd_init+0x0/0x2c()
<4>Calling initcall 0xc035f134: init_emergency_pool+0x0/0x88()
<4>highmem bounce pool size: 64 pages
<4>initcall 0xc035f134: init_emergency_pool+0x0/0x88() returned 0.
<4>initcall 0xc035f134 ran for 0 msecs: init_emergency_pool+0x0/0x88()
<4>Calling initcall 0xc035f1bc: procswaps_init+0x0/0x48()
<4>initcall 0xc035f1bc: procswaps_init+0x0/0x48() returned 0.
<4>initcall 0xc035f1bc ran for 0 msecs: procswaps_init+0x0/0x48()
<4>Calling initcall 0xc035f204: init_tmpfs+0x0/0xf0()
<4>initcall 0xc035f204: init_tmpfs+0x0/0xf0() returned 0.
<4>initcall 0xc035f204 ran for 0 msecs: init_tmpfs+0x0/0xf0()
<4>Calling initcall 0xc035f4ec: slab_sysfs_init+0x0/0x100()
<4>initcall 0xc035f4ec: slab_sysfs_init+0x0/0x100() returned 0.
<4>initcall 0xc035f4ec ran for 4 msecs: slab_sysfs_init+0x0/0x100()
<4>Calling initcall 0xc035f860: fasync_init+0x0/0x44()
<4>initcall 0xc035f860: fasync_init+0x0/0x44() returned 0.
<4>initcall 0xc035f860 ran for 0 msecs: fasync_init+0x0/0x44()
<4>Calling initcall 0xc035ff30: aio_setup+0x0/0x94()
<4>initcall 0xc035ff30: aio_setup+0x0/0x94() returned 0.
<4>initcall 0xc035ff30 ran for 0 msecs: aio_setup+0x0/0x94()
<4>Calling initcall 0xc03601bc: inotify_setup+0x0/0x14()
<4>initcall 0xc03601bc: inotify_setup+0x0/0x14() returned 0.
<4>initcall 0xc03601bc ran for 0 msecs: inotify_setup+0x0/0x14()
<4>Calling initcall 0xc03601d0: inotify_user_setup+0x0/0xe8()
<4>initcall 0xc03601d0: inotify_user_setup+0x0/0xe8() returned 0.
<4>initcall 0xc03601d0 ran for 0 msecs: inotify_user_setup+0x0/0xe8()
<4>Calling initcall 0xc03604c8: init_mbcache+0x0/0x2c()
<4>initcall 0xc03604c8: init_mbcache+0x0/0x2c() returned 0.
<4>initcall 0xc03604c8 ran for 0 msecs: init_mbcache+0x0/0x2c()
<4>Calling initcall 0xc03604f4: dquot_init+0x0/0x114()
<5>VFS: Disk quotas dquot_6.5.1
<4>Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
<4>initcall 0xc03604f4: dquot_init+0x0/0x114() returned 0.
<4>initcall 0xc03604f4 ran for 0 msecs: dquot_init+0x0/0x114()
<4>Calling initcall 0xc0360608: dnotify_init+0x0/0x44()
<4>initcall 0xc0360608: dnotify_init+0x0/0x44() returned 0.
<4>initcall 0xc0360608 ran for 0 msecs: dnotify_init+0x0/0x44()
<4>Calling initcall 0xc0360cb4: init_devpts_fs+0x0/0x64()
<4>initcall 0xc0360cb4: init_devpts_fs+0x0/0x64() returned 0.
<4>initcall 0xc0360cb4 ran for 0 msecs: init_devpts_fs+0x0/0x64()
<4>Calling initcall 0xc0360d18: init_ext3_fs+0x0/0x8c()
<4>initcall 0xc0360d18: init_ext3_fs+0x0/0x8c() returned 0.
<4>initcall 0xc0360d18 ran for 0 msecs: init_ext3_fs+0x0/0x8c()
<4>Calling initcall 0xc0360ea4: journal_init+0x0/0xc8()
<4>initcall 0xc0360ea4: journal_init+0x0/0xc8() returned 0.
<4>initcall 0xc0360ea4 ran for 0 msecs: journal_init+0x0/0xc8()
<4>Calling initcall 0xc0360f6c: init_ext2_fs+0x0/0x8c()
<4>initcall 0xc0360f6c: init_ext2_fs+0x0/0x8c() returned 0.
<4>initcall 0xc0360f6c ran for 0 msecs: init_ext2_fs+0x0/0x8c()
<4>Calling initcall 0xc0361054: init_cramfs_fs+0x0/0x4c()
<4>initcall 0xc0361054: init_cramfs_fs+0x0/0x4c() returned 0.
<4>initcall 0xc0361054 ran for 0 msecs: init_cramfs_fs+0x0/0x4c()
<4>Calling initcall 0xc03610a0: init_ramfs_fs+0x0/0x28()
<4>initcall 0xc03610a0: init_ramfs_fs+0x0/0x28() returned 0.
<4>initcall 0xc03610a0 ran for 0 msecs: init_ramfs_fs+0x0/0x28()
<4>Calling initcall 0xc036118c: ipc_init+0x0/0x2c()
<4>initcall 0xc036118c: ipc_init+0x0/0x2c() returned 0.
<4>initcall 0xc036118c ran for 0 msecs: ipc_init+0x0/0x2c()
<4>Calling initcall 0xc0361338: ipc_sysctl_init+0x0/0x2c()
<4>initcall 0xc0361338: ipc_sysctl_init+0x0/0x2c() returned 0.
<4>initcall 0xc0361338 ran for 0 msecs: ipc_sysctl_init+0x0/0x2c()
<4>Calling initcall 0xc0361364: init_mqueue_fs+0x0/0xe8()
<4>initcall 0xc0361364: init_mqueue_fs+0x0/0xe8() returned 0.
<4>initcall 0xc0361364 ran for 0 msecs: init_mqueue_fs+0x0/0xe8()
<4>Calling initcall 0xc03615dc: key_proc_init+0x0/0x54()
<4>initcall 0xc03615dc: key_proc_init+0x0/0x54() returned 0.
<4>initcall 0xc03615dc ran for 0 msecs: key_proc_init+0x0/0x54()
<4>Calling initcall 0xc0361798: selinux_nf_ip_init+0x0/0x80()
<4>initcall 0xc0361798: selinux_nf_ip_init+0x0/0x80() returned 0.
<4>initcall 0xc0361798 ran for 0 msecs: selinux_nf_ip_init+0x0/0x80()
<4>Calling initcall 0xc03619bc: init_sel_fs+0x0/0x90()
<4>initcall 0xc03619bc: init_sel_fs+0x0/0x90() returned 0.
<4>initcall 0xc03619bc ran for 0 msecs: init_sel_fs+0x0/0x90()
<4>Calling initcall 0xc0361ac4: selnl_init+0x0/0x68()
<4>initcall 0xc0361ac4: selnl_init+0x0/0x68() returned 0.
<4>initcall 0xc0361ac4 ran for 0 msecs: selnl_init+0x0/0x68()
<4>Calling initcall 0xc0361b2c: sel_netif_init+0x0/0x94()
<4>initcall 0xc0361b2c: sel_netif_init+0x0/0x94() returned 0.
<4>initcall 0xc0361b2c ran for 0 msecs: sel_netif_init+0x0/0x94()
<4>Calling initcall 0xc0361bc0: aurule_init+0x0/0x50()
<4>initcall 0xc0361bc0: aurule_init+0x0/0x50() returned 0.
<4>initcall 0xc0361bc0 ran for 0 msecs: aurule_init+0x0/0x50()
<4>Calling initcall 0xc0361cdc: crypto_algapi_init+0x0/0x24()
<4>initcall 0xc0361cdc: crypto_algapi_init+0x0/0x24() returned 0.
<4>initcall 0xc0361cdc ran for 0 msecs: crypto_algapi_init+0x0/0x24()
<4>Calling initcall 0xc0361d44: cryptomgr_init+0x0/0x28()
<4>initcall 0xc0361d44: cryptomgr_init+0x0/0x28() returned 0.
<4>initcall 0xc0361d44 ran for 0 msecs: cryptomgr_init+0x0/0x28()
<4>Calling initcall 0xc0361d6c: hmac_module_init+0x0/0x28()
<4>initcall 0xc0361d6c: hmac_module_init+0x0/0x28() returned 0.
<4>initcall 0xc0361d6c ran for 0 msecs: hmac_module_init+0x0/0x28()
<4>Calling initcall 0xc0361d94: init+0x0/0x28()
<4>initcall 0xc0361d94: init+0x0/0x28() returned 0.
<4>initcall 0xc0361d94 ran for 0 msecs: init+0x0/0x28()
<4>Calling initcall 0xc036213c: noop_init+0x0/0x2c()
<6>io scheduler noop registered
<4>initcall 0xc036213c: noop_init+0x0/0x2c() returned 0.
<4>initcall 0xc036213c ran for 0 msecs: noop_init+0x0/0x2c()
<4>Calling initcall 0xc0362168: as_init+0x0/0x2c()
<6>io scheduler anticipatory registered
<4>initcall 0xc0362168: as_init+0x0/0x2c() returned 0.
<4>initcall 0xc0362168 ran for 0 msecs: as_init+0x0/0x2c()
<4>Calling initcall 0xc0362194: deadline_init+0x0/0x2c()
<6>io scheduler deadline registered
<4>initcall 0xc0362194: deadline_init+0x0/0x2c() returned 0.
<4>initcall 0xc0362194 ran for 0 msecs: deadline_init+0x0/0x2c()
<4>Calling initcall 0xc03621c0: cfq_init+0x0/0xc8()
<6>io scheduler cfq registered (default)
<4>initcall 0xc03621c0: cfq_init+0x0/0xc8() returned 0.
<4>initcall 0xc03621c0 ran for 0 msecs: cfq_init+0x0/0xc8()
<4>Calling initcall 0xc0136270: pci_init+0x0/0x50()
<4>initcall 0xc0136270: pci_init+0x0/0x50() returned 0.
<4>initcall 0xc0136270 ran for 0 msecs: pci_init+0x0/0x50()
<4>Calling initcall 0xc0362b54: pci_proc_init+0x0/0x9c()
<4>initcall 0xc0362b54: pci_proc_init+0x0/0x9c() returned 0.
<4>initcall 0xc0362b54 ran for 0 msecs: pci_proc_init+0x0/0x9c()
<4>Calling initcall 0xc0362bf0: pcie_portdrv_init+0x0/0x6c()
<4>initcall 0xc0362bf0: pcie_portdrv_init+0x0/0x6c() returned 0.
<4>initcall 0xc0362bf0 ran for 0 msecs: pcie_portdrv_init+0x0/0x6c()
<4>Calling initcall 0xc0362c5c: aer_service_init+0x0/0x44()
<4>initcall 0xc0362c5c: aer_service_init+0x0/0x44() returned 0.
<4>initcall 0xc0362c5c ran for 0 msecs: aer_service_init+0x0/0x44()
<4>Calling initcall 0xc0362fa8: fb_console_init+0x0/0x184()
<4>initcall 0xc0362fa8: fb_console_init+0x0/0x184() returned 0.
<4>initcall 0xc0362fa8 ran for 0 msecs: fb_console_init+0x0/0x184()
<4>Calling initcall 0xc0363438: radeonfb_init+0x0/0x220()
<4>radeonfb (0000:01:00.0): Cannot match card to OF node !
<6>radeonfb: Found Intel x86 BIOS ROM Image
<6>radeonfb: Retrieved PLL infos from BIOS
<4>radeonfb: Reference=27.00 MHz (RefDiv=12) Memory=250.00 Mhz, System=200.00 MHz
<4>radeonfb: PLL min 20000 max 40000
<4>i2c-adapter i2c-2: unable to read EDID block.
<4>i2c-adapter i2c-2: unable to read EDID block.
<4>i2c-adapter i2c-2: unable to read EDID block.
<4>i2c-adapter i2c-3: unable to read EDID block.
<4>i2c-adapter i2c-3: unable to read EDID block.
<4>i2c-adapter i2c-3: unable to read EDID block.
<6>radeonfb: Monitor 1 type DFP found
<6>radeonfb: EDID probed
<6>radeonfb: Monitor 2 type no found
<4>Console: switching to colour frame buffer device 200x75
<4>radeonfb (0000:01:00.0): ATI Radeon Ya
<4>initcall 0xc0363438: radeonfb_init+0x0/0x220() returned 0.
<4>initcall 0xc0363438 ran for 4492 msecs: radeonfb_init+0x0/0x220()
<4>Calling initcall 0xc0363850: vga16fb_init+0x0/0xdc()
<7>vga16fb: initializing
<6>vga16fb: mapped to 0x000a0000
<6>fb1: VGA16 VGA frame buffer device
<4>initcall 0xc0363850: vga16fb_init+0x0/0xdc() returned 0.
<4>initcall 0xc0363850 ran for 0 msecs: vga16fb_init+0x0/0xdc()
<4>Calling initcall 0xc0363a38: rand_initialize+0x0/0x44()
<4>initcall 0xc0363a38: rand_initialize+0x0/0x44() returned 0.
<4>initcall 0xc0363a38 ran for 0 msecs: rand_initialize+0x0/0x44()
<4>Calling initcall 0xc0363adc: tty_init+0x0/0x208()
<4>initcall 0xc0363adc: tty_init+0x0/0x208() returned 0.
<4>initcall 0xc0363adc ran for 5 msecs: tty_init+0x0/0x208()
<4>Calling initcall 0xc0363d28: pty_init+0x0/0x3bc()
<4>initcall 0xc0363d28: pty_init+0x0/0x3bc() returned 0.
<4>initcall 0xc0363d28 ran for 2 msecs: pty_init+0x0/0x3bc()
<4>Calling initcall 0xc0364834: rtc_generic_init+0x0/0x98()
<6>Generic RTC Driver v1.07
<4>initcall 0xc0364834: rtc_generic_init+0x0/0x98() returned 0.
<4>initcall 0xc0364834 ran for 0 msecs: rtc_generic_init+0x0/0x98()
<4>Calling initcall 0xc0364d18: serial8250_init+0x0/0x138()
<6>Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing enabled
<6>serial8250.0: ttyS0 at I/O 0x2f8 (irq = 3) is a 16550A
<6>console [ttyS0] enabled
<6>serial8250.0: ttyS1 at I/O 0x3f8 (irq = 4) is a 16550A
<4>initcall 0xc0364d18: serial8250_init+0x0/0x138() returned 0.
<4>initcall 0xc0364d18 ran for 24626 msecs: serial8250_init+0x0/0x138()
<4>Calling initcall 0xc0364e80: serial8250_pci_init+0x0/0x34()
<4>initcall 0xc0364e80: serial8250_pci_init+0x0/0x34() returned 0.
<4>initcall 0xc0364e80 ran for 0 msecs: serial8250_pci_init+0x0/0x34()
<4>Calling initcall 0xc03653a4: parport_default_proc_register+0x0/0x3c()
<4>initcall 0xc03653a4: parport_default_proc_register+0x0/0x3c() returned 0.
<4>initcall 0xc03653a4 ran for 0 msecs: parport_default_proc_register+0x0/0x3c()
<4>Calling initcall 0xc036577c: parport_pc_init+0x0/0x214()
<7>parport_pc: VIA 686A/8231 detected
<7>parport_pc: probing current configuration
<7>parport_pc: Current parallel port base: 0x378
<6>parport0: PC-style at 0x378 (0x778) [PCSPP,TRISTATE]
<6>parport_pc: VIA parallel port: io=0x378
<4>initcall 0xc036577c: parport_pc_init+0x0/0x214() returned 0.
<4>initcall 0xc036577c ran for 140 msecs: parport_pc_init+0x0/0x214()
<4>Calling initcall 0xc0365990: parport_serial_init+0x0/0x34()
<4>initcall 0xc0365990: parport_serial_init+0x0/0x34() returned 0.
<4>initcall 0xc0365990 ran for 0 msecs: parport_serial_init+0x0/0x34()
<4>Calling initcall 0xc0365eec: floppy_init+0x0/0x1050()
<6>Floppy drive(s): fd0 is 2.88M
<6>FDC 0 is a post-1991 82077
<4>initcall 0xc0365eec: floppy_init+0x0/0x1050() returned 0.
<4>initcall 0xc0365eec ran for 35 msecs: floppy_init+0x0/0x1050()
<4>Calling initcall 0xc0366fa4: rd_init+0x0/0x23c()
<4>RAMDISK driver initialized: 16 RAM disks of 8192K size 1024 blocksize
<4>initcall 0xc0366fa4: rd_init+0x0/0x23c() returned 0.
<4>initcall 0xc0366fa4 ran for 13 msecs: rd_init+0x0/0x23c()
<4>Calling initcall 0xc03671e0: vortex_init+0x0/0xe0()
<4>3c59x: Donald Becker and others.
<6>0000:00:06.0: 3Com PCI 3c905C Tornado at f100c000.
<4>initcall 0xc03671e0: vortex_init+0x0/0xe0() returned 0.
<4>initcall 0xc03671e0 ran for 40 msecs: vortex_init+0x0/0xe0()
<4>Calling initcall 0xc0367354: net_olddevs_init+0x0/0xe0()
<4>initcall 0xc0367354: net_olddevs_init+0x0/0xe0() returned 0.
<4>initcall 0xc0367354 ran for 0 msecs: net_olddevs_init+0x0/0xe0()
<4>Calling initcall 0xc03674f0: cp_init+0x0/0x34()
<4>initcall 0xc03674f0: cp_init+0x0/0x34() returned 0.
<4>initcall 0xc03674f0 ran for 0 msecs: cp_init+0x0/0x34()
<4>Calling initcall 0xc0367524: it8213_ide_init+0x0/0x34()
<4>initcall 0xc0367524: it8213_ide_init+0x0/0x34() returned 0.
<4>initcall 0xc0367524 ran for 0 msecs: it8213_ide_init+0x0/0x34()
<4>Calling initcall 0xc0367558: it821x_ide_init+0x0/0x34()
<4>initcall 0xc0367558: it821x_ide_init+0x0/0x34() returned 0.
<4>initcall 0xc0367558 ran for 0 msecs: it821x_ide_init+0x0/0x34()
<4>Calling initcall 0xc036758c: pdc202xx_ide_init+0x0/0x34()
<4>initcall 0xc036758c: pdc202xx_ide_init+0x0/0x34() returned 0.
<4>initcall 0xc036758c ran for 0 msecs: pdc202xx_ide_init+0x0/0x34()
<4>Calling initcall 0xc03675c0: pdc202new_ide_init+0x0/0x34()
<4>initcall 0xc03675c0: pdc202new_ide_init+0x0/0x34() returned 0.
<4>initcall 0xc03675c0 ran for 0 msecs: pdc202new_ide_init+0x0/0x34()
<4>Calling initcall 0xc03675f4: siimage_ide_init+0x0/0x34()
<4>initcall 0xc03675f4: siimage_ide_init+0x0/0x34() returned 0.
<4>initcall 0xc03675f4 ran for 0 msecs: siimage_ide_init+0x0/0x34()
<4>Calling initcall 0xc0367628: via_ide_init+0x0/0x34()
<4>initcall 0xc0367628: via_ide_init+0x0/0x34() returned 0.
<4>initcall 0xc0367628 ran for 0 msecs: via_ide_init+0x0/0x34()
<4>Calling initcall 0xc036765c: generic_ide_init+0x0/0x34()
<4>initcall 0xc036765c: generic_ide_init+0x0/0x34() returned 0.
<4>initcall 0xc036765c ran for 0 msecs: generic_ide_init+0x0/0x34()
<4>Calling initcall 0xc0367740: ide_init+0x0/0x80()
<6>Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
<6>ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
<6>VP_IDE: IDE controller (0x1106:0x0571 rev 0x06) at PCI slot 0000:00:07.1
<6>VP_IDE: not 100% native mode: will probe irqs later
<6>VP_IDE: VIA vt82c686b (rev 40) IDE UDMA100 controller on pci0000:00:07.1
<6> ide0: BM-DMA at 0xcc00-0xcc07, BIOS settings: hda:pio, hdb:pio
<6> ide1: BM-DMA at 0xcc08-0xcc0f, BIOS settings: hdc:pio, hdd:pio
<7>Probing IDE interface ide0...
<4>hda: ST380011A, ATA DISK drive
<7>hda: host max PIO5 wanted PIO255(auto-tune) selected PIO4
<6>hda: UDMA/100 mode selected
<4>ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
<7>Probing IDE interface ide1...
<4>hdd: LITE-ON LTR-52327S, ATAPI CD/DVD-ROM drive
<4>hdc: TOSHIBA ODD-DVD SD-M1802, ATAPI CD/DVD-ROM drive
<7>hdc: host max PIO5 wanted PIO255(auto-tune) selected PIO4
<6>hdc: UDMA/33 mode selected
<7>hdd: host max PIO5 wanted PIO255(auto-tune) selected PIO4
<6>hdd: UDMA/33 mode selected
<4>ide1 at 0x170-0x177,0x376 on irq 15
<4>initcall 0xc0367740: ide_init+0x0/0x80() returned 0.
<4>initcall 0xc0367740 ran for 8919 msecs: ide_init+0x0/0x80()
<4>Calling initcall 0xc03680ec: idedisk_init+0x0/0x28()
<6>hda: max request size: 512KiB
<6>hda: 156301488 sectors (80026 MB) w/2048KiB Cache, CHS=16383/255/63
<6>hda: cache flushes supported
<6> hda: RDSK (512) hda1 (SFS^@)(res 2 spb 1) hda2 (LNX^@)(res 2 spb 2) hda3 (LNX^@)(res 2 spb 2) hda4 (LNX^@)(res 2 spb 2) hda5 (LNX^@)(res 2 spb 2) hda6 (SWP^@)(res 2 spb 2) hda7 (LNX^@)(res 2 spb 2) hda8 (DOS^C)(res 2 spb 2) hda9 (SFS^@)(res 2 spb 1) hda10 (SFS^@)(res 2 spb 1) hda11 (LNX^@)(res 2 spb 2) hda12 (LNX^@)(res 2 spb 2)
<4>initcall 0xc03680ec: idedisk_init+0x0/0x28() returned 0.
<4>initcall 0xc03680ec ran for 82 msecs: idedisk_init+0x0/0x28()
<4>Calling initcall 0xc0368114: ide_cdrom_init+0x0/0x28()
<6>hdc: ATAPI 48X DVD-ROM drive, 256kB Cache
<6>Uniform CD-ROM driver Revision: 3.20
<6>hdd: ATAPI 52X CD-ROM CD-R/RW drive, 2048kB Cache
<4>initcall 0xc0368114: ide_cdrom_init+0x0/0x28() returned 0.
<4>initcall 0xc0368114 ran for 40 msecs: ide_cdrom_init+0x0/0x28()
<4>Calling initcall 0xc0368548: via_init+0x0/0x34()
<4>initcall 0xc0368548: via_init+0x0/0x34() returned 0.
<4>initcall 0xc0368548 ran for 0 msecs: via_init+0x0/0x34()
<4>Calling initcall 0xc036857c: ieee1394_init+0x0/0x280()
<4>initcall 0xc036857c: ieee1394_init+0x0/0x280() returned 0.
<4>initcall 0xc036857c ran for 0 msecs: ieee1394_init+0x0/0x280()
<4>Calling initcall 0xc03687fc: cdrom_init+0x0/0x24()
<4>initcall 0xc03687fc: cdrom_init+0x0/0x24() returned 0.
<4>initcall 0xc03687fc ran for 0 msecs: cdrom_init+0x0/0x24()
<4>Calling initcall 0xc03688c4: i8042_init+0x0/0x128()
<6>serio: i8042 KBD port at 0x60,0x64 irq 1
<6>serio: i8042 AUX port at 0x60,0x64 irq 12
<4>initcall 0xc03688c4: i8042_init+0x0/0x128() returned 0.
<4>initcall 0xc03688c4 ran for 21 msecs: i8042_init+0x0/0x128()
<4>Calling initcall 0xc0368b28: mousedev_init+0x0/0xb4()
<6>mice: PS/2 mouse device common for all mice
<4>initcall 0xc0368b28: mousedev_init+0x0/0xb4() returned 0.
<4>initcall 0xc0368b28 ran for 11 msecs: mousedev_init+0x0/0xb4()
<4>Calling initcall 0xc0368bdc: atkbd_init+0x0/0x34()
<4>initcall 0xc0368bdc: atkbd_init+0x0/0x34() returned 0.
<4>initcall 0xc0368bdc ran for 0 msecs: atkbd_init+0x0/0x34()
<4>Calling initcall 0xc0368c10: psmouse_init+0x0/0x94()
<6>input: AT Translated Set 2 keyboard as /class/input/input0
<4>initcall 0xc0368c10: psmouse_init+0x0/0x94() returned 0.
<4>initcall 0xc0368c10 ran for 926 msecs: psmouse_init+0x0/0x94()
<4>Calling initcall 0xc0368ed0: cmos_init+0x0/0x30()
<7>rtc_cmos: dev (254:0)
<6>rtc_cmos rtc_cmos: rtc core: registered rtc_cmos as rtc0
<6>rtc0: alarms up to one day
<6>input: ImPS/2 Generic Wheel Mouse as /class/input/input1
<4>initcall 0xc0368ed0: cmos_init+0x0/0x30() returned 0.
<4>initcall 0xc0368ed0 ran for 651 msecs: cmos_init+0x0/0x30()
<4>Calling initcall 0xc03693f4: i2c_dev_init+0x0/0xbc()
<6>i2c /dev entries driver
<4>initcall 0xc03693f4: i2c_dev_init+0x0/0xbc() returned 0.
<4>initcall 0xc03693f4 ran for 9 msecs: i2c_dev_init+0x0/0xbc()
<4>Calling initcall 0xc0369514: edac_init+0x0/0xc4()
<6>EDAC MC: Ver: 2.1.0 Jan 27 2008
<4>initcall 0xc0369514: edac_init+0x0/0xc4() returned 0.
<4>initcall 0xc0369514 ran for 9 msecs: edac_init+0x0/0xc4()
<4>Calling initcall 0xc0369634: cpufreq_stats_init+0x0/0x70()
<4>initcall 0xc0369634: cpufreq_stats_init+0x0/0x70() returned 0.
<4>initcall 0xc0369634 ran for 0 msecs: cpufreq_stats_init+0x0/0x70()
<4>Calling initcall 0xc03696cc: ledtrig_ide_init+0x0/0x34()
<4>initcall 0xc03696cc: ledtrig_ide_init+0x0/0x34() returned 0.
<4>initcall 0xc03696cc ran for 0 msecs: ledtrig_ide_init+0x0/0x34()
<4>Calling initcall 0xc0369700: hid_init+0x0/0x8()
<4>initcall 0xc0369700: hid_init+0x0/0x8() returned 0.
<4>initcall 0xc0369700 ran for 0 msecs: hid_init+0x0/0x8()
<4>Calling initcall 0xc0369708: init_soundcore+0x0/0x7c()
<4>initcall 0xc0369708: init_soundcore+0x0/0x7c() returned 0.
<4>initcall 0xc0369708 ran for 0 msecs: init_soundcore+0x0/0x7c()
<4>Calling initcall 0xc036a0f4: flow_cache_init+0x0/0x150()
<4>initcall 0xc036a0f4: flow_cache_init+0x0/0x150() returned 0.
<4>initcall 0xc036a0f4 ran for 0 msecs: flow_cache_init+0x0/0x150()
<4>Calling initcall 0xc036a3c8: blackhole_module_init+0x0/0x28()
<4>initcall 0xc036a3c8: blackhole_module_init+0x0/0x28() returned 0.
<4>initcall 0xc036a3c8 ran for 0 msecs: blackhole_module_init+0x0/0x28()
<4>Calling initcall 0xc036bb48: init_syncookies+0x0/0x30()
<4>initcall 0xc036bb48: init_syncookies+0x0/0x30() returned 0.
<4>initcall 0xc036bb48 ran for 0 msecs: init_syncookies+0x0/0x30()
<4>Calling initcall 0xc036bb78: xfrm4_beet_init+0x0/0x2c()
<4>initcall 0xc036bb78: xfrm4_beet_init+0x0/0x2c() returned 0.
<4>initcall 0xc036bb78 ran for 0 msecs: xfrm4_beet_init+0x0/0x2c()
<4>Calling initcall 0xc02879d4: ipv4_netfilter_init+0x0/0x28()
<4>initcall 0xc02879d4: ipv4_netfilter_init+0x0/0x28() returned 0.
<4>initcall 0xc02879d4 ran for 0 msecs: ipv4_netfilter_init+0x0/0x28()
<4>Calling initcall 0xc036bba4: bictcp_register+0x0/0x28()
<6>TCP bic registered
<4>initcall 0xc036bba4: bictcp_register+0x0/0x28() returned 0.
<4>initcall 0xc036bba4 ran for 7 msecs: bictcp_register+0x0/0x28()
<4>Calling initcall 0xc036be24: af_unix_init+0x0/0x88()
<6>NET: Registered protocol family 1
<4>initcall 0xc036be24: af_unix_init+0x0/0x88() returned 0.
<4>initcall 0xc036be24 ran for 9 msecs: af_unix_init+0x0/0x88()
<4>Calling initcall 0xc036beac: packet_init+0x0/0x78()
<6>NET: Registered protocol family 17
<4>initcall 0xc036beac: packet_init+0x0/0x78() returned 0.
<4>initcall 0xc036beac ran for 9 msecs: packet_init+0x0/0x78()
<4>Calling initcall 0xc036c130: atm_clip_init+0x0/0xb4()
<4>initcall 0xc036c130: atm_clip_init+0x0/0xb4() returned 0.
<4>initcall 0xc036c130 ran for 0 msecs: atm_clip_init+0x0/0xb4()
<4>Calling initcall 0xc03548a4: check_cache_coherency+0x0/0x80()
<4>initcall 0xc03548a4: check_cache_coherency+0x0/0x80() returned 0.
<4>initcall 0xc03548a4 ran for 0 msecs: check_cache_coherency+0x0/0x80()
<4>Calling initcall 0xc001bac0: init_oops_id+0x0/0x40()
<4>initcall 0xc001bac0: init_oops_id+0x0/0x40() returned 0.
<4>initcall 0xc001bac0 ran for 0 msecs: init_oops_id+0x0/0x40()
<4>Calling initcall 0xc035a9b4: disable_boot_consoles+0x0/0x6c()
<4>initcall 0xc035a9b4: disable_boot_consoles+0x0/0x6c() returned 0.
<4>initcall 0xc035a9b4 ran for 0 msecs: disable_boot_consoles+0x0/0x6c()
<4>Calling initcall 0xc0362420: random32_reseed+0x0/0x3c()
<4>initcall 0xc0362420: random32_reseed+0x0/0x3c() returned 0.
<4>initcall 0xc0362420 ran for 0 msecs: random32_reseed+0x0/0x3c()
<4>Calling initcall 0xc0362ae4: pci_sysfs_init+0x0/0x70()
<4>initcall 0xc0362ae4: pci_sysfs_init+0x0/0x70() returned 0.
<4>initcall 0xc0362ae4 ran for 0 msecs: pci_sysfs_init+0x0/0x70()
<4>Calling initcall 0xc0363a10: seqgen_init+0x0/0x28()
<4>initcall 0xc0363a10: seqgen_init+0x0/0x28() returned 0.
<4>initcall 0xc0363a10 ran for 0 msecs: seqgen_init+0x0/0x28()
<4>Calling initcall 0xc01d04d8: scsi_complete_async_scans+0x0/0xf0()
<4>initcall 0xc01d04d8: scsi_complete_async_scans+0x0/0xf0() returned 0.
<4>initcall 0xc01d04d8 ran for 0 msecs: scsi_complete_async_scans+0x0/0xf0()
<4>Calling initcall 0xc0368ca4: rtc_hctosys+0x0/0x140()
<6>rtc_cmos rtc_cmos: setting system clock to 2008-02-05 21:44:36 UTC (1202247876)
<4>initcall 0xc0368ca4: rtc_hctosys+0x0/0x140() returned 0.
<4>initcall 0xc0368ca4 ran for 13 msecs: rtc_hctosys+0x0/0x140()
<4>Calling initcall 0xc036b0f8: tcp_congestion_default+0x0/0xc()
<4>initcall 0xc036b0f8: tcp_congestion_default+0x0/0xc() returned 0.
<4>initcall 0xc036b0f8 ran for 0 msecs: tcp_congestion_default+0x0/0xc()
<6>kjournald starting. Commit interval 5 seconds
<6>EXT3-fs: mounted filesystem with ordered data mode.
<4>VFS: Mounted root (ext3 filesystem) readonly.
<4>Freeing unused kernel memory: 176k init
<4>Calling INIT
[-- Attachment #6: kernel-oopsmemoption.log --]
[-- Type: text/x-log, Size: 7438 bytes --]
<1>Unable to handle kernel paging request for data at address 0xbffff000
<1>Faulting instruction address: 0xc0015d88
<4>Oops: Kernel access of bad area, sig: 11 [#1]
<4>
<4>Modules linked in:
<4>NIP: c0015d88 LR: c030d124 CTR: 000001d0
<4>REGS: c0357f00 TRAP: 0300 Not tainted (2.6.24)
<4>MSR: 00002030
<FP,IR,DR> CR: 24024048 XER: 20000000
<4>DAR: bffff000, DSISR: 42000000
<4>TASK = c0332570[0] 'swapper' THREAD: c0356000
<6>GPR00: 00000000 c0357fb0 c0332570 bffff000 c0b8f3a4 00000e80 bfffeffc d00dfeed
<6>GPR08: 00000e80 00000002 c035fff4 ffffffff 44024044 00000000 0ffd5900 00800450
<6>GPR16: 00000001 ffffffff 00000000 007ffc00 0ffd3158 0f0689b0 0ffff220 007ffbc0
<6>GPR24: 00000000 00000000 40000000 00000000 00000e80 bffff000 c0360000 00000e80
<4>NIP [c0015d88] memcpy+0x24/0x9c
<4>LR [c030d124] early_init_devtree+0x18c/0x1b0
<4>Call Trace:
<4>[c0357fb0] [c030d110] early_init_devtree+0x178/0x1b0 (unreliable)
<4>[c0357fd0] [c030dcf4] machine_init+0x20/0x8c
<4>[c0357ff0] [c0003838] start_here+0x38/0x78
<4>Instruction dump:
<4>4e800020 7c032040 418100a0 54a7e8ff 38c3fffc 3884fffc 41820028 70c00003
<4>7ce903a6 40820054 80e40004 85040008
<90e60004> 95060008 4200fff0 70a50007
<4>---[ end trace 8640abe69a316dee ]---
<0>Kernel panic - not syncing: Attempted to kill the idle task!
<1>Unable to handle kernel paging request for instruction fetch
<1>Faulting instruction address: 0x00000000
<4>Oops: Kernel access of bad area, sig: 11 [#2]
<4>
<4>Modules linked in:
<4>NIP: 00000000 LR: c00067e8 CTR: 00000000
<4>REGS: c0357cc0 TRAP: 0400 Tainted: G D (2.6.24)
<4>MSR: 40001032
<ME,IR,DR> CR: 48024082 XER: 00000000
<4>TASK = c0332570[0] 'swapper' THREAD: c0356000
<6>GPR00: c00067d8 c0357d70 c0332570 00000001 00000000 c0362174 ffffffff 00000000
<6>GPR08: c03629f4 00000000 00001032 00010001 00000000 00000000 0ffd5900 00800450
<6>GPR16: 00000001 ffffffff 00000000 007ffc00 0ffd3158 0f0689b0 0ffff220 007ffbc0
<6>GPR24: 00000000 00000000 40000000 00000000 c02adae0 c0362174 c0332570 00000000
<4>NIP [00000000] _start+0x40000000/0xc
<4>LR [c00067e8] do_IRQ+0x30/0xa8
<4>Call Trace:
<4>[c0357d70] [c00067d8] do_IRQ+0x20/0xa8 (unreliable)
<4>[c0357d80] [c0010e94] ret_from_except+0x0/0x14
<4>--- Exception: 501 at panic+0x130/0x164
<4> LR = panic+0xa0/0x164
<4>[c0357e90] [c001fbb4] do_exit+0x64/0x710
<4>[c0357ec0] [c000e854] kernel_bad_stack+0x0/0x4c
<4>[c0357ee0] [c0013d54] bad_page_fault+0xb8/0xcc
<4>[c0357ef0] [c0010c88] handle_page_fault+0x7c/0x80
<4>--- Exception: 300 at memcpy+0x24/0x9c
<4> LR = early_init_devtree+0x18c/0x1b0
<4>[c0357fb0] [c030d110] early_init_devtree+0x178/0x1b0 (unreliable)
<4>[c0357fd0] [c030dcf4] machine_init+0x20/0x8c
<4>[c0357ff0] [c0003838] start_here+0x38/0x78
<4>Instruction dump:
<4>XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
<4>XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
<0>Kernel panic - not syncing: Fatal exception in interrupt
<1>Unable to handle kernel paging request for instruction fetch
<1>Faulting instruction address: 0x00000000
<4>Oops: Kernel access of bad area, sig: 11 [#3]
<4>
<4>Modules linked in:
<4>NIP: 00000000 LR: c00067e8 CTR: 00000000
<4>REGS: c0357ab0 TRAP: 0400 Tainted: G D (2.6.24)
<4>MSR: 40001032
<ME,IR,DR> CR: 48024082 XER: 00000000
<4>TASK = c0332570[0] 'swapper' THREAD: c0356000
<6>GPR00: c00067d8 c0357b60 c0332570 00000001 00000000 c0362174 ffffffff 00000000
<6>GPR08: c03629f4 00000000 00001032 00020001 00000000 00000000 0ffd5900 00800450
<6>GPR16: 00000001 ffffffff 00000000 007ffc00 0ffd3158 0f0689b0 0ffff220 007ffbc0
<6>GPR24: 00000000 00000000 40000000 00000000 c02ab8fc c0362174 c02acdc4 c0357d90
<4>NIP [00000000] _start+0x40000000/0xc
<4>LR [c00067e8] do_IRQ+0x30/0xa8
<4>Call Trace:
<4>[c0357b60] [c00067d8] do_IRQ+0x20/0xa8 (unreliable)
<4>[c0357b70] [c0010e94] ret_from_except+0x0/0x14
<4>--- Exception: 501 at panic+0x130/0x164
<4> LR = panic+0xa0/0x164
<4>[c0357c80] [c000e848] die+0x154/0x160
<4>[c0357ca0] [c0013d54] bad_page_fault+0xb8/0xcc
<4>[c0357cb0] [c0010c88] handle_page_fault+0x7c/0x80
<4>--- Exception: 400 at _start+0x40000000/0xc
<4> LR = do_IRQ+0x30/0xa8
<4>[c0357d70] [c00067d8] do_IRQ+0x20/0xa8 (unreliable)
<4>[c0357d80] [c0010e94] ret_from_except+0x0/0x14
<4>--- Exception: 501 at panic+0x130/0x164
<4> LR = panic+0xa0/0x164
<4>[c0357e90] [c001fbb4] do_exit+0x64/0x710
<4>[c0357ec0] [c000e854] kernel_bad_stack+0x0/0x4c
<4>[c0357ee0] [c0013d54] bad_page_fault+0xb8/0xcc
<4>[c0357ef0] [c0010c88] handle_page_fault+0x7c/0x80
<4>--- Exception: 300 at memcpy+0x24/0x9c
<4> LR = early_init_devtree+0x18c/0x1b0
<4>[c0357fb0] [c030d110] early_init_devtree+0x178/0x1b0 (unreliable)
<4>[c0357fd0] [c030dcf4] machine_init+0x20/0x8c
<4>[c0357ff0] [c0003838] start_here+0x38/0x78
<4>Instruction dump:
<4>XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
<4>XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
<0>Kernel panic - not syncing: Fatal exception in interrupt
<1>Unable to handle kernel paging request for instruction fetch
<1>Faulting instruction address: 0x00000000
<4>Oops: Kernel access of bad area, sig: 11 [#4]
<4>
<4>Modules linked in:
<4>NIP: 00000000 LR: c00067e8 CTR: 00000000
<4>REGS: c03578a0 TRAP: 0400 Tainted: G D (2.6.24)
<4>MSR: 40001032
<ME,IR,DR> CR: 48024082 XER: 00000000
<4>TASK = c0332570[0] 'swapper' THREAD: c0356000
<6>GPR00: c00067d8 c0357950 c0332570 00000001 00000000 c0362174 ffffffff 00000000
<6>GPR08: c03629f4 00000000 00001032 00030001 00000000 00000000 0ffd5900 00800450
<6>GPR16: 00000001 ffffffff 00000000 007ffc00 0ffd3158 0f0689b0 0ffff220 007ffbc0
<6>GPR24: 00000000 00000000 40000000 00000000 c02ab8fc c0362174 c02acdc4 c0357b80
<4>NIP [00000000] _start+0x40000000/0xc
<4>LR [c00067e8] do_IRQ+0x30/0xa8
<4>Call Trace:
<4>[c0357950] [c00067d8] do_IRQ+0x20/0xa8 (unreliable)
<4>[c0357960] [c0010e94] ret_from_except+0x0/0x14
<4>--- Exception: 501 at panic+0x130/0x164
<4> LR = panic+0xa0/0x164
<4>[c0357a70] [c000e848] die+0x154/0x160
<4>[c0357a90] [c0013d54] bad_page_fault+0xb8/0xcc
<4>[c0357aa0] [c0010c88] handle_page_fault+0x7c/0x80
<4>--- Exception: 400 at _start+0x40000000/0xc
<4> LR = do_IRQ+0x30/0xa8
<4>[c0357b60] [c00067d8] do_IRQ+0x20/0xa8 (unreliable)
<4>[c0357b70] [c0010e94] ret_from_except+0x0/0x14
<4>--- Exception: 501 at panic+0x130/0x164
<4> LR = panic+0xa0/0x164
<4>[c0357c80] [c000e848] die+0x154/0x160
<4>[c0357ca0] [c0013d54] bad_page_fault+0xb8/0xcc
<4>[c0357cb0] [c0010c88] handle_page_fault+0x7c/0x80
<4>--- Exception: 400 at _start+0x40000000/0xc
<4> LR = do_IRQ+0x30/0xa8
<4>[c0357d70] [c00067d8] do_IRQ+0x20/0xa8 (unreliable)
<4>[c0357d80] [c0010e94] ret_from_except+0x0/0x14
<4>--- Exception: 501 at panic+0x130/0x164
<4> LR = panic+0xa0/0x164
<4>[c0357e90] [c001fbb4] do_exit+0x64/0x710
<4>[c0357ec0] [c000e854] kernel_bad_stack+0x0/0x4c
<4>[c0357ee0] [c0013d54] bad_page_fault+0xb8/0xcc
<4>[c0357ef0] [c0010c88] handle_page_fault+0x7c/0x80
<4>--- Exception: 300 at memcpy+0x24/0x9c
<4> LR = early_init_devtree+0x18c/0x1b0
<4>[c0357fb0] [c030d110] early_init_devtree+0x178/0x1b0 (unreliable)
<4>[c0357fd0] [c030dcf4] machine_init+0x20/0x8c
<4>[c0357ff0] [c0003838] start_here+0x38/0x78
<4>Instruction dump:
<4>XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
<4>XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
[-- Attachment #7: patch_amigaone_platform --]
[-- Type: application/octet-stream, Size: 21311 bytes --]
commit 0df02de5b4e582c22962361ca7104c75c795dc15
Author: Gerhard Pircher <gerhard_pircher@gmx.net>
Date: Wed Jan 30 20:59:27 2008 +0100
Add suppot for AmigaOne platform.
diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile
index 18e3271..b849808 100644
--- a/arch/powerpc/boot/Makefile
+++ b/arch/powerpc/boot/Makefile
@@ -56,7 +56,7 @@ src-plat := of.c cuboot-52xx.c cuboot-83xx.c cuboot-85xx.c holly.c \
cuboot-ebony.c treeboot-ebony.c prpmc2800.c \
ps3-head.S ps3-hvcall.S ps3.c treeboot-bamboo.c cuboot-8xx.c \
cuboot-pq2.c cuboot-sequoia.c treeboot-walnut.c cuboot-bamboo.c \
- fixed-head.S ep88xc.c cuboot-hpc2.c
+ fixed-head.S ep88xc.c cuboot-hpc2.c cuboot-amigaone.c
src-boot := $(src-wlib) $(src-plat) empty.c
src-boot := $(addprefix $(obj)/, $(src-boot))
@@ -159,6 +159,7 @@ image-$(CONFIG_EBONY) += treeImage.ebony cuImage.ebony
image-$(CONFIG_BAMBOO) += treeImage.bamboo cuImage.bamboo
image-$(CONFIG_SEQUOIA) += cuImage.sequoia
image-$(CONFIG_WALNUT) += treeImage.walnut
+image-$(CONFIG_AMIGAONE) += cuImage.amigaone
endif
# For 32-bit powermacs, build the COFF and miboot images
diff --git a/arch/powerpc/boot/cuboot-amigaone.c b/arch/powerpc/boot/cuboot-amigaone.c
new file mode 100644
index 0000000..d95d4d1
--- /dev/null
+++ b/arch/powerpc/boot/cuboot-amigaone.c
@@ -0,0 +1,36 @@
+/*
+ * Old U-boot compatibility for AmigaOne
+ *
+ * Author: Gerhard Pircher (gerhard_pircher@gmx.net)
+ *
+ * Based on cuboot-83xx.c
+ * Copyright (c) 2007 Freescale Semiconductor, Inc.
+ *
+ * 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.
+ */
+
+#include "ops.h"
+#include "stdio.h"
+#include "cuboot.h"
+
+#include "ppcboot.h"
+
+static bd_t bd;
+extern char _dtb_start[], _dtb_end[];
+
+static void platform_fixups(void)
+{
+ dt_fixup_memory(bd.bi_memstart, bd.bi_memsize);
+ dt_fixup_cpu_clocks(bd.bi_intfreq, bd.bi_busfreq / 4, bd.bi_busfreq);
+}
+
+void platform_init(unsigned long r3, unsigned long r4, unsigned long r5,
+ unsigned long r6, unsigned long r7)
+{
+ CUBOOT_INIT();
+ ft_init(_dtb_start, _dtb_end - _dtb_start, 32);
+ serial_console_init();
+ platform_ops.fixups = platform_fixups;
+}
diff --git a/arch/powerpc/boot/dts/amigaone.dts b/arch/powerpc/boot/dts/amigaone.dts
new file mode 100644
index 0000000..f91d1de
--- /dev/null
+++ b/arch/powerpc/boot/dts/amigaone.dts
@@ -0,0 +1,224 @@
+/*
+ * AmigaOne Device Tree Source
+ *
+ * Copyright 2007 Gerhard Pircher (gerhard_pircher@gmx.net)
+ *
+ * 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.
+ */
+
+/ {
+ model = "AmigaOne";
+ compatible = "eyetech,amigaone","mai-logic,teron";
+ coherency-off;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ cpus {
+ #cpus = <1>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ cpu@0 {
+ device_type = "cpu";
+ reg = <0>;
+ d-cache-line-size = <20>; // 32 bytes
+ i-cache-line-size = <20>; // 32 bytes
+ d-cache-size = <8000>; // L1, 32K
+ i-cache-size = <8000>; // L1, 32K
+ timebase-frequency = <0>; // 33.3 MHz, from U-boot
+ clock-frequency = <0>; // From U-boot
+ bus-frequency = <0>; // From U-boot
+ 32-bit;
+ };
+ };
+
+ memory {
+ device_type = "memory";
+ reg = <0 0>; // From U-boot
+ };
+
+ pci@80000000 {
+ device_type = "pci";
+ compatible = "mai-logic,articia-s";
+ bus-frequency = <01fca055>; // 33.3MHz
+ bus-range = <0 ff>;
+ ranges = <01000000 0 00000000 fe000000 0 00c00000 // PCI I/O
+ 02000000 0 80000000 80000000 0 7d000000 // PCI memory
+ 02000000 0 fd000000 fd000000 0 01000000>; // PCI alias memory
+ 8259-interrupt-acknowledge = <fef00000>;
+ /* Do not define a interrupt-parent here, if there is no interrupt-map property. */
+ #address-cells = <3>;
+ #size-cells = <2>;
+
+ host@0 {
+ compatible = "pciclass,0600";
+ vendor-id = <000010cc>;
+ device-id = <00000660>;
+ revision-id = <00000001>;
+ class-code = <00060000>;
+ subsystem-id = <0>;
+ subsystem-vendor-id = <0>;
+ devsel-speed = <00000001>;
+ 66mhz-capable;
+ min-grant = <0>;
+ max-latency = <0>;
+ // AGP aperture is unset.
+// reg = <42000010 0 00000000 0 00400000>;
+// assigned-addresses = <42000010 0 00000000 0 00400000>;
+ };
+
+ isa@7 {
+ device_type = "isa";
+ compatible = "pciclass,0601";
+ vendor-id = <00001106>;
+ device-id = <00000686>;
+ revision-id = <00000010>;
+ class-code = <00060100>;
+ subsystem-id = <0>;
+ subsystem-vendor-id = <0>;
+ devsel-speed = <00000001>;
+ min-grant = <0>;
+ max-latency = <0>;
+ /* First 64k for I/O at 0x0 on PCI mapped to 0x0 on ISA. */
+ ranges = <00000001 0 01000000 0 00000000 00010000>;
+ interrupt-parent = <&i8259>;
+ #interrupt-cells = <2>;
+ #address-cells = <2>;
+ #size-cells = <1>;
+
+ dma-controller@0 {
+ device_type = "dma-controller";
+ compatible = "pnpPNP,200";
+ reg = <00000001 00000000 00000020
+ 00000001 00000080 00000010
+ 00000001 000000c0 00000020>;
+ /* Channel 4 reserverd, cascade mode, 2x32k transfer/counter
+ * widths and bus master capability. Is this really necessary?
+ */
+/* dma = <4 4 20 20 1>; */
+ };
+
+ i8259: interrupt-controller@20 {
+ device_type = "interrupt-controller";
+ compatible = "pnpPNP,000";
+ interrupt-controller;
+ reg = <00000001 00000020 00000002
+ 00000001 000000a0 00000002
+ 00000001 000004d0 00000002>;
+ reserved-interrupts = <2>;
+ #interrupt-cells = <2>;
+ };
+
+ timer@40 {
+/* device_type = "timer"; */ // No device type binding for now.
+ compatible = "pnpPNP,100"; // Also add pcspkr to platform devices.
+ reg = <00000001 00000040 00000020>;
+ };
+
+ 8042@60 {
+ device_type = "8042";
+ reg = <00000001 00000060 00000001
+ 00000001 00000064 00000001>;
+ interrupts = <1 3 c 3>; // IRQ1, IRQ12 (rising edge)
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ keyboard@0 {
+ device_type = "keyboard";
+ compatible = "pnpPNP,303";
+ reg = <0>;
+ };
+
+ mouse@1 {
+ device_type = "mouse";
+ compatible = "pnpPNP,f03";
+ reg = <1>;
+ };
+ };
+
+ rtc@70 {
+ device_type = "rtc";
+ compatible = "pnpPNP,b00";
+ reg = <00000001 00000070 00000002>;
+ interrupts = <8 3>;
+ };
+
+ serial@2f8 {
+ device_type = "serial";
+ compatible = "pnpPNP,501","pnpPNP,500"; // "ns16550"; add property check to OF serial code.
+ reg = <00000001 000002f8 00000008>;
+ interrupts = <3 3>; // IRQ3 (rising edge)
+ clock-frequency = <001C2000>; // Not necessary?
+ };
+
+ serial@3f8 {
+ device_type = "serial";
+ compatible = "pnpPNP,501","pnpPNP,500"; // "ns16550"; add property check to OF serial code.
+ reg = <00000001 000003f8 00000008>;
+ interrupts = <4 3>; // IRQ4 (rising edge)
+ clock-frequency = <001C2000>; // Not necessary?
+ };
+
+ parallel@378 {
+ device_type = "parallel";
+ compatible = "pnpPNP,400"; // "pnpPNP,401" // No ECP support for now.
+ reg = <00000001 00000378 00000003
+ 00000001 00000778 00000003>;
+/* interrupts = <7 3>; */
+/* dma = <3 0 0 0>; */ // Parallel port DMA mode?
+ };
+
+ fdc@3f0 {
+ device_type = "fdc";
+ compatible = "pnpPNP,700";
+ reg = <00000001 000003f0 00000008>;
+ interrupts = <6 3>; // IRQ6 (rising edge)
+/* dma = < >; */ // Floppy DMA mode?
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ disk@0 {
+ device_type = "block";
+ reg = <0>;
+ };
+ };
+ };
+
+ ide@7,1 {
+ compatible = "pciclass,01018b";
+ vendor-id = <00001106>;
+ device-id = <00000571>;
+ revision-id = <00000006>;
+ // Class code with PCI IDE programming interface indicator.
+ class-code = <0001018b>;
+ subsystem-id = <0>;
+ subsystem-vendor-id = <0>;
+ devsel-speed = <00000001>;
+ min-grant = <0>;
+ max-latency = <0>;
+ fast-back-to-back;
+ // Assume base addresses are relocateable, even if
+ // controller operates in compatibility mode.
+ reg = <21003910 0 00000000 0 00000000
+ 21003914 0 00000000 0 00000000
+ 21003918 0 00000000 0 00000000
+ 2100391c 0 00000000 0 00000000
+ 21003920 0 00000000 0 00000000>;
+ assigned-addresses = <01003910 0 000001f0 0 00000008
+ 01003914 0 000003f4 0 00000004
+ 01003918 0 00000170 0 00000008
+ 0100391c 0 00000374 0 00000004
+ 01003920 0 0000cc00 0 00000010>;
+/* interrupt-parent = <&i8259>;
+ interrupts = <e 3 f 3>;
+ #interrupt-cells = <2>; */
+ };
+ };
+
+ chosen {
+ linux,stdout-path = "/pci@80000000/isa@7/serial@2f8";
+ };
+};
diff --git a/arch/powerpc/boot/zImage.lds.S b/arch/powerpc/boot/zImage.lds.S
index f6e380f..dd0fde8 100644
--- a/arch/powerpc/boot/zImage.lds.S
+++ b/arch/powerpc/boot/zImage.lds.S
@@ -3,7 +3,7 @@ ENTRY(_zimage_start)
EXTERN(_zimage_start)
SECTIONS
{
- . = (4*1024*1024);
+ . = (8*1024*1024);
_start = .;
.text :
{
diff --git a/arch/powerpc/kernel/pci_32.c b/arch/powerpc/kernel/pci_32.c
index 0e2bee4..5b5ed76 100644
--- a/arch/powerpc/kernel/pci_32.c
+++ b/arch/powerpc/kernel/pci_32.c
@@ -585,7 +585,9 @@ pcibios_assign_resources(void)
r->flags &= ~IORESOURCE_UNSET;
rc = pci_assign_resource(dev, idx);
+#ifndef CONFIG_AMIGAONE
BUG_ON(rc);
+#endif
}
}
diff --git a/arch/powerpc/platforms/Kconfig b/arch/powerpc/platforms/Kconfig
index ea22cad..18026ad 100644
--- a/arch/powerpc/platforms/Kconfig
+++ b/arch/powerpc/platforms/Kconfig
@@ -56,6 +56,7 @@ source "arch/powerpc/platforms/86xx/Kconfig"
source "arch/powerpc/platforms/embedded6xx/Kconfig"
source "arch/powerpc/platforms/44x/Kconfig"
source "arch/powerpc/platforms/40x/Kconfig"
+source "arch/powerpc/platforms/amigaone/Kconfig"
config PPC_NATIVE
bool
diff --git a/arch/powerpc/platforms/Makefile b/arch/powerpc/platforms/Makefile
index 6d9079d..6460efa 100644
--- a/arch/powerpc/platforms/Makefile
+++ b/arch/powerpc/platforms/Makefile
@@ -25,3 +25,4 @@ obj-$(CONFIG_PPC_CELL) += cell/
obj-$(CONFIG_PPC_PS3) += ps3/
obj-$(CONFIG_PPC_CELLEB) += celleb/
obj-$(CONFIG_EMBEDDED6xx) += embedded6xx/
+obj-$(CONFIG_AMIGAONE) += amigaone/
diff --git a/arch/powerpc/platforms/amigaone/Kconfig b/arch/powerpc/platforms/amigaone/Kconfig
new file mode 100644
index 0000000..8e62d12
--- /dev/null
+++ b/arch/powerpc/platforms/amigaone/Kconfig
@@ -0,0 +1,17 @@
+config AMIGAONE
+ bool "Eyetech AmigaOne/MAI Teron"
+ depends on PPC_MULTIPLATFORM && PPC32
+ select PPC_I8259
+ select PPC_INDIRECT_PCI
+ select PPC_UDBG_16550
+ select NOT_COHERENT_CACHE
+ select CHECK_CACHE_COHERENCY
+ select DEFAULT_UIMAGE
+ select WANT_DEVICE_TREE
+ help
+ Select AmigaOne for the following machines:
+ - AmigaOne SE/Teron CX (G3 only)
+ - AmigaOne XE/Teron PX
+ - uA1/Teron mini
+ More information is available at:
+ <http://amigaone-linux.sourceforge.net/>.
diff --git a/arch/powerpc/platforms/amigaone/Makefile b/arch/powerpc/platforms/amigaone/Makefile
new file mode 100644
index 0000000..5d66f66
--- /dev/null
+++ b/arch/powerpc/platforms/amigaone/Makefile
@@ -0,0 +1,3 @@
+obj-y += setup.o
+obj-$(CONFIG_PCI) += pci.o
+#obj-$(CONFIG_NVRAM) += nvram.o
diff --git a/arch/powerpc/platforms/amigaone/pci.c b/arch/powerpc/platforms/amigaone/pci.c
new file mode 100644
index 0000000..21a5638
--- /dev/null
+++ b/arch/powerpc/platforms/amigaone/pci.c
@@ -0,0 +1,71 @@
+/*
+ * AmigaOne platform PCI setup
+ *
+ * Copyright 2007 Gerhard Pircher (gerhard_pircher@gmx.net)
+ *
+ * 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.
+ */
+
+#include <linux/kernel.h>
+#include <linux/pci.h>
+#include <linux/delay.h>
+#include <linux/string.h>
+#include <linux/init.h>
+
+#include <asm/io.h>
+#include <asm/pgtable.h>
+#include <asm/irq.h>
+#include <asm/machdep.h>
+#include <asm/sections.h>
+#include <asm/pci-bridge.h>
+
+void __init
+amigaone_find_bridges(void)
+{
+ struct device_node *dev;
+ const int *bus_range;
+ int len, index = -1;
+ struct pci_controller *hose;
+ struct device_node *root = of_find_node_by_path("/");
+
+ for (dev = root->child; dev != NULL; dev = dev->sibling) {
+ if (dev->type == NULL || strcmp(dev->type, "pci") != 0)
+ continue;
+ ++index;
+
+ bus_range = of_get_property(dev, "bus-range", &len);
+ if (bus_range == NULL || len < 2 * sizeof(int)) {
+ printk(KERN_WARNING "Can't get bus-range for %s\n",
+ dev->full_name);
+ continue;
+ }
+
+/* if (bus_range[1] == bus_range[0])
+ printk(KERN_INFO "PCI bus %d", bus_range[0]);
+ else
+ printk(KERN_INFO "PCI buses %d..%d",
+ bus_range[0], bus_range[1]);
+ printk(" controlled by %s", dev->full_name); */
+
+ hose = pcibios_alloc_controller(dev);
+ if (!hose) {
+ printk("Can't allocate PCI controller structure for %s\n",
+ dev->full_name);
+ continue;
+ }
+ hose->arch_data = dev;
+ hose->first_busno = bus_range[0];
+ hose->last_busno = bus_range[1];
+
+ setup_indirect_pci(hose, 0xfec00cf8, 0xfee00cfc, 0);
+
+ /* Interpret the "ranges" property */
+ /* This also maps the I/O region and sets isa_io/mem_base. */
+ pci_process_bridge_OF_ranges(hose, dev, index == 0);
+ }
+
+ of_node_put(root);
+}
diff --git a/arch/powerpc/platforms/amigaone/setup.c b/arch/powerpc/platforms/amigaone/setup.c
new file mode 100644
index 0000000..8eeef69
--- /dev/null
+++ b/arch/powerpc/platforms/amigaone/setup.c
@@ -0,0 +1,242 @@
+/*
+ * AmigaOne platform setup
+ *
+ * Copyright 2007 Gerhard Pircher (gerhard_pircher@gmx.net)
+ *
+ * Based on original amigaone_setup.c source code
+ * Copyright 2003 by Hans-Jörg and Thomas Frieden
+ * and chrp/setup.c
+ * Copyright 1995 by Linus Torvalds
+ *
+ * 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.
+ */
+
+#include <linux/errno.h>
+#include <linux/sched.h>
+#include <linux/kernel.h>
+#include <linux/mm.h>
+#include <linux/stddef.h>
+#include <linux/unistd.h>
+#include <linux/ptrace.h>
+#include <linux/slab.h>
+#include <linux/user.h>
+#include <linux/tty.h>
+#include <linux/major.h>
+#include <linux/interrupt.h>
+#include <linux/reboot.h>
+#include <linux/init.h>
+#include <linux/ide.h>
+#include <linux/pci.h>
+#include <linux/utsrelease.h>
+#include <linux/module.h>
+#include <linux/delay.h>
+#include <linux/console.h>
+#include <linux/seq_file.h>
+#include <linux/root_dev.h>
+#include <linux/initrd.h>
+#include <linux/module.h>
+#include <linux/timer.h>
+
+#include <asm/cputable.h>
+#include <asm/io.h>
+#include <asm/pgtable.h>
+#include <asm/pci-bridge.h>
+#include <asm/dma.h>
+#include <asm/machdep.h>
+#include <asm/irq.h>
+#include <asm/sections.h>
+#include <asm/time.h>
+#include <asm/i8259.h>
+#include <asm/system.h>
+#include <asm/udbg.h>
+#include <asm/vga.h>
+
+extern void amigaone_find_bridges(void);
+
+void amigaone_set_l2cr(void)
+{
+ /* This disables the L2 hardware prefetch. It is normally disabled and
+ * enabled again within _set_L2CR(), but the L2 prefetch enable is not
+ * compiled in for the AmigaOne.
+ */
+ _set_L2CR(_get_L2CR());
+
+ if(((_get_L2CR() & L2CR_L2E) == 0) && (strstr(cmd_line, "l2cr=") == NULL))
+ {
+ printk("AmigaOne l2cr : L2 cache was not active, activating.\n");
+ _set_L2CR(0);
+ _set_L2CR(L2CR_L2E | L2CR_L2PE);
+ }
+}
+
+void amigaone_show_cpuinfo(struct seq_file *m)
+{
+ struct device_node *root;
+ const char *model = "";
+
+ root = of_find_node_by_path("/");
+ if (root)
+ model = of_get_property(root, "model", NULL);
+ seq_printf(m, "machine\t\t: %s\n", model);
+
+ of_node_put(root);
+
+ seq_printf(m, "l2cr\t\t: 0x%08lX\n", _get_L2CR());
+ seq_printf(m, "msscr0\t\t: 0x%08lX\n", mfspr(SPRN_MSSCR0));
+
+ return;
+}
+
+void __init amigaone_setup_arch(void)
+{
+ /* init to some ~sane value until calibrate_delay() runs */
+ loops_per_jiffy = 50000000/HZ;
+
+ /* Enable the L2 cache. */
+ amigaone_set_l2cr();
+
+ /* Lookup PCI host bridges */
+ /* setup PCI host bridge */
+
+#ifdef CONFIG_PCI_HOST_DRIVER
+ for (np = NULL; (np = of_find_node_by_type(np, "pci")) != NULL;)
+ articias_setup_pci(np);
+#else
+ amigaone_find_bridges();
+#endif
+
+ /* Uncomment, when U-boot was updated. */
+// pci_create_OF_bus_map();
+
+ /* vgacon.c needs to know where VGA memory is mapped. */
+// vgacon_remap_base = (unsigned long) ioremap(0xfd000000, 0x00100000);
+// conswitchp = &vga_con;
+
+ if (ppc_md.progress)
+ ppc_md.progress("Linux/PPC "UTS_RELEASE"\n", 0x0);
+}
+
+void __init amigaone_init_IRQ(void)
+{
+ struct device_node *np, *pic = NULL;
+ unsigned long amigaone_int_ack = 0;
+
+ /* Search for ISA interrupt controller. */
+ for_each_node_by_type(np, "interrupt-controller")
+ if (of_device_is_compatible(np, "pnpPNP,000")) {
+ pic = np;
+ break;
+ }
+
+ BUG_ON(pic == NULL);
+
+ /* Look for interrupt acknowledge address in the PCI root node. */
+ for_each_node_by_name(np, "pci") {
+ const unsigned int *addrp = of_get_property(np,
+ "8259-interrupt-acknowledge", NULL);
+
+ if (addrp == NULL)
+ continue;
+ amigaone_int_ack = addrp[of_n_addr_cells(np)-1];
+ break;
+ }
+ of_node_put(np);
+
+ if (np == NULL)
+ printk(KERN_WARNING "Cannot find PCI interrupt acknowledge"
+ " address, polling\n");
+
+ i8259_init(pic, amigaone_int_ack);
+ ppc_md.get_irq = i8259_irq;
+ irq_set_default_host(i8259_get_host());
+}
+
+void __init amigaone_init(void)
+{
+#ifdef CONFIG_NVRAM
+// amigaone_nvram_init();
+#endif
+
+ request_region(0x20,0x20,"pic1");
+ request_region(0xa0,0x20,"pic2");
+ request_region(0x00,0x20,"dma1");
+ request_region(0x40,0x20,"timer");
+ request_region(0x80,0x10,"dma page reg");
+ request_region(0xc0,0x20,"dma2");
+}
+
+/* Copied from U-Boot. */
+static inline void soft_restart(unsigned long addr)
+{
+ /* SRR0 has system reset vector, SRR1 has default MSR value.
+ * rfi restores MSR from SRR1 and sets the PC to the SRR0 value.
+ */
+ __asm__ __volatile__ ("mtspr 26, %0" :: "r" (addr));
+ __asm__ __volatile__ ("li 4, (1 << 6)" ::: "r4");
+ __asm__ __volatile__ ("mtspr 27, 4");
+ __asm__ __volatile__ ("rfi");
+
+ /* Not reached. */
+ while(1);
+}
+
+void amigaone_restart(char *cmd)
+{
+ unsigned long addr;
+
+ local_irq_disable();
+
+ /* Flush and disable I/D cache. */
+ __asm__ __volatile__ ("mfspr 3, 1008" ::: "r3");
+ __asm__ __volatile__ ("ori 5, 5, 0xcc00" ::: "r5");
+ __asm__ __volatile__ ("ori 4, 3, 0xc00" ::: "r4");
+ __asm__ __volatile__ ("andc 5, 3, 5" ::: "r5");
+ __asm__ __volatile__ ("sync");
+ __asm__ __volatile__ ("mtspr 1008, 4");
+ __asm__ __volatile__ ("isync");
+ __asm__ __volatile__ ("sync");
+ __asm__ __volatile__ ("mtspr 1008, 5");
+ __asm__ __volatile__ ("isync");
+ __asm__ __volatile__ ("sync");
+
+ addr = 0xfff00100;
+ soft_restart(addr);
+ while(1);
+}
+
+static int __init amigaone_probe(void)
+{
+ unsigned long root = of_get_flat_dt_root();
+
+ if (of_flat_dt_is_compatible(root, "eyetech,amigaone")) {
+ /* Coherent memory access cause complete system lockup! Thus
+ * remove it in any case, even if the CPU needs it. We'll
+ * disable the L2 cache prefetch later on.
+ */
+ cur_cpu_spec->cpu_features &= ~CPU_FTR_NEED_COHERENT;
+
+ ISA_DMA_THRESHOLD = 0x00FFFFFF;
+ DMA_MODE_READ = 0x44;
+ DMA_MODE_WRITE = 0x48;
+
+ return 1;
+ }
+
+ return 0;
+}
+
+define_machine(amigaone) {
+ .name = "AmigaOne",
+ .probe = amigaone_probe,
+ .setup_arch = amigaone_setup_arch,
+ .init = amigaone_init,
+ .show_cpuinfo = amigaone_show_cpuinfo,
+ .init_IRQ = amigaone_init_IRQ,
+ .restart = amigaone_restart,
+ .calibrate_decr = generic_calibrate_decr,
+ .progress = udbg_progress,
+ .phys_mem_access_prot = pci_phys_mem_access_prot,
+};
diff --git a/drivers/ide/pci/via82cxxx.c b/drivers/ide/pci/via82cxxx.c
index a0d3c16..8ebc87e 100644
--- a/drivers/ide/pci/via82cxxx.c
+++ b/drivers/ide/pci/via82cxxx.c
@@ -478,6 +478,10 @@ static int __devinit via_init_one(struct pci_dev *dev, const struct pci_device_i
if (machine_is(chrp) && _chrp_type == _CHRP_Pegasos)
d.host_flags |= IDE_HFLAG_FORCE_LEGACY_IRQS;
#endif
+#ifdef CONFIG_AMIGAONE
+ if (machine_is(amigaone))
+ d.host_flags |= IDE_HFLAG_FORCE_LEGACY_IRQS;
+#endif
d.udma_mask = via_config->udma_mask;
diff --git a/drivers/input/misc/Kconfig b/drivers/input/misc/Kconfig
index 8f5c7b9..9716d76 100644
--- a/drivers/input/misc/Kconfig
+++ b/drivers/input/misc/Kconfig
@@ -14,7 +14,7 @@ if INPUT_MISC
config INPUT_PCSPKR
tristate "PC Speaker support"
- depends on ALPHA || X86 || MIPS || PPC_PREP || PPC_CHRP || PPC_PSERIES
+ depends on ALPHA || X86 || MIPS || PPC_PREP || PPC_CHRP || PPC_PSERIES || AMIGAONE
help
Say Y here if you want the standard PC Speaker to be used for
bells and whistles.
^ permalink raw reply related
* Re: [PATCH] Fix legacy serial search for opb bus ports
From: Michael Ellerman @ 2008-02-05 23:50 UTC (permalink / raw)
To: Paul Gortmaker; +Cc: linuxppc-dev
In-Reply-To: <20080205145008.GA5306@windriver.com>
[-- Attachment #1: Type: text/plain, Size: 1218 bytes --]
On Tue, 2008-02-05 at 09:50 -0500, Paul Gortmaker wrote:
> In message: [PATCH] Fix legacy serial search for opb bus ports
> on 05/02/2008 Michael Ellerman wrote:
>
> > The patch to legacy_serial.c (1a7507c7da2df6856e085e0fbb0c9ea8c12ac4e,
> > Reduce code duplication in legacy_serial, add UART parent types) changed
> > the semantics for opb ports from type = "opb" || compatible = "ibm,opb"
> > to type = "opb" && compatible = "ibm,opb".
>
> Ah. I'd originally coded it as an || -- but then Arnd suggested I
> condense it further by using of_match_node() -- which was a good idea,
> but that is where it accidentally changed to && without me catching it.
> Thanks for finding this, and sorry for the debug adventure (I know
> vanishing uarts isn't fun).
Yeah it's easy to confuse, I had to look at of_match_node() fairly
closely before I was convinced it was equivalent to &&. The bisect was
fairly painless actually, so no dramas.
cheers
--
Michael Ellerman
OzLabs, IBM Australia Development Lab
wwweb: http://michael.ellerman.id.au
phone: +61 2 6212 1183 (tie line 70 21183)
We do not inherit the earth from our ancestors,
we borrow it from our children. - S.M.A.R.T Person
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply
* Re: [PATCH] Fix legacy serial search for opb bus ports
From: Benjamin Herrenschmidt @ 2008-02-06 0:08 UTC (permalink / raw)
To: Michael Ellerman; +Cc: linuxppc-dev, paul.gortmaker
In-Reply-To: <9efb8c0e313840ccb1bdf918406cdc812ec5de94.1202212897.git.michael@ellerman.id.au>
On Tue, 2008-02-05 at 23:01 +1100, Michael Ellerman wrote:
> The patch to legacy_serial.c (1a7507c7da2df6856e085e0fbb0c9ea8c12ac4e,
> Reduce code duplication in legacy_serial, add UART parent types) changed
> the semantics for opb ports from type = "opb" || compatible = "ibm,opb"
> to type = "opb" && compatible = "ibm,opb".
>
> The result is serial ports on our QS21s (Cell blades) don't get found,
> and for some reason the machine doesn't boot at all - possibly it's
> panicking due to lack of a console?
>
> The fix is to add two entries to the of_device_id table, one that looks
> for type = "opb" and the other compatible = "ibm,opb".
>
> Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
> ---
> arch/powerpc/kernel/legacy_serial.c | 3 ++-
> 1 files changed, 2 insertions(+), 1 deletions(-)
>
> diff --git a/arch/powerpc/kernel/legacy_serial.c b/arch/powerpc/kernel/legacy_serial.c
> index 76b862b..61dd174 100644
> --- a/arch/powerpc/kernel/legacy_serial.c
> +++ b/arch/powerpc/kernel/legacy_serial.c
> @@ -36,7 +36,8 @@ static struct legacy_serial_info {
> static struct __initdata of_device_id parents[] = {
> {.type = "soc",},
> {.type = "tsi-bridge",},
> - {.type = "opb", .compatible = "ibm,opb",},
> + {.type = "opb", },
> + {.compatible = "ibm,opb",},
> {.compatible = "simple-bus",},
> {.compatible = "wrs,epld-localbus",},
> };
^ permalink raw reply
* Re: [PATCH 2/10] sbc8560: Add v1 device tree source for Wind River SBC8560 board
From: David Gibson @ 2008-02-06 1:06 UTC (permalink / raw)
To: Kumar Gala; +Cc: Paul Gortmaker, linuxppc-dev
In-Reply-To: <B819C3FE-9DD3-4B49-A8C4-48D507FBF0C4@kernel.crashing.org>
On Tue, Feb 05, 2008 at 09:44:23AM -0600, Kumar Gala wrote:
>
> On Feb 4, 2008, at 8:40 PM, David Gibson wrote:
>
> > On Fri, Feb 01, 2008 at 08:46:32AM -0600, Kumar Gala wrote:
> >>
> >> On Feb 1, 2008, at 1:54 AM, David Gibson wrote:
> >>
> >>> On Thu, Jan 24, 2008 at 06:41:24PM -0500, Paul Gortmaker wrote:
> > [snip]
> >>>> + epld@5,0 {
> >>>
> >>> I'm not entirely convinced on this two-level representation. I
> >>> think
> >>> the FSL people need to get together and define a binding (or set of
> >>> bindings) for their various chipselect style external bus bridges.
> >>
> >> It seems reasonable if you had a FPGA off of the localbus to have a
> >> two level representation. One for the localbus controller on the FSL
> >> part and the child to describe the FPGA.
> >>
> >> What are you expecting beyond what we have today? I guess I'm asking
> >> what's missing from the localbus nodes we have?
> >
> > Sorry, I was probably misleading. All I really meant is that I don't
> > know enough about these FSL bus bridge arrangements to assess if this
> > representation is the most sensible one. I'm presuming that this
> > chipselect bridge unit is a more-or-less standard ASIC appearing on
> > lots of the FSL chips, so it would be nice to have a standard binding
> > for them, as we do for the roughly-equivalent EBC bridge on 4xx.
>
> Is there a writeup for EBC? I'll take a look at it and see if it
> makes senses for the freescale 'localbus'.
Uh... not as such. I'll try to write it up and add a binding to
b-w-o.txt next week when I'm back at work for real. I wouldn't expect
it to be usable as is for the Freescale localbus, but it should be
pretty similar in spirit.
--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson
^ permalink raw reply
* Re: [PATCH] powerpc: correct 2nd pci controller interrupt value in mpc834x_mds dts
From: Kumar Gala @ 2008-02-06 5:37 UTC (permalink / raw)
To: Kim Phillips; +Cc: linuxppc-dev, peter.vanackeren
In-Reply-To: <20080131125658.c40b830f.kim.phillips@freescale.com>
On Jan 31, 2008, at 12:56 PM, Kim Phillips wrote:
> according to the 8349EA ref man, pci2 IRQ is 67. Thanks to Peter
> Van Ackeren for finding this.
>
> Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
> ---
> arch/powerpc/boot/dts/mpc834x_mds.dts | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
applied.
- k
^ permalink raw reply
* Re: [PATCH] adder875, ep88xc: fix to match recent 8xx cleanups.
From: Kumar Gala @ 2008-02-06 5:37 UTC (permalink / raw)
To: Scott Wood; +Cc: linuxppc-dev
In-Reply-To: <20080131173656.GA10385@loki.buserror.net>
On Jan 31, 2008, at 11:36 AM, Scott Wood wrote:
> asm/commproc.h was renamed to asm/cpm1.h
> sysdev/commproc.h was renamed to platforms/8xx/mpc8xx.h
> m8xx_pic_init was renamed to mpc8xx_pics_init
>
> Signed-off-by: Scott Wood <scottwood@freescale.com>
> ---
> arch/powerpc/platforms/8xx/adder875.c | 6 +++---
> arch/powerpc/platforms/8xx/ep88xc.c | 1 -
> 2 files changed, 3 insertions(+), 4 deletions(-)
applied.
- k
^ permalink raw reply
* Re: [PATCH] powerpc: add rtc node to mpc8313erdb dts
From: Kumar Gala @ 2008-02-06 5:37 UTC (permalink / raw)
To: Kim Phillips; +Cc: linuxppc-dev
In-Reply-To: <20080131194005.55ee9fc3.kim.phillips@freescale.com>
On Jan 31, 2008, at 7:40 PM, Kim Phillips wrote:
> the 8313 rdb has a ds1339 at address 0x68.
>
> Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
> ---
> arch/powerpc/boot/dts/mpc8313erdb.dts | 4 ++++
> 1 files changed, 4 insertions(+), 0 deletions(-)
applied.
- k
^ permalink raw reply
* Re: PATCH[1/1] 8xx: resubmit Add clock-frequency parameter to adder875 and mpc885ads dts configurations
From: Kumar Gala @ 2008-02-06 5:38 UTC (permalink / raw)
To: Bryan O'Donoghue; +Cc: scottwood, linuxppc-dev
In-Reply-To: <20080203232129.36186b0a@neuromancer.mindspace>
On Feb 3, 2008, at 5:21 PM, Bryan O'Donoghue wrote:
> Previous patch submission contained tabs munged into whitespace.
>
> This patch adds the clock-frequency parameter in decimal instead of
> hex.
>
> Signed-off-by: Bryan O'Donoghue <bodonoghue@codehermit.ie>
> ---
applied.
- k
^ permalink raw reply
* Re: [PATCH] [POWERPC] Fix storcenter DTS typos, feedback, IRQs.
From: Kumar Gala @ 2008-02-06 5:38 UTC (permalink / raw)
To: Jon Loeliger; +Cc: linuxppc-dev, andy
In-Reply-To: <E1JLNdb-0002G5-Cd@jdl.com>
On Feb 2, 2008, at 1:02 PM, Jon Loeliger wrote:
>
> Cleaned up IRQ layout and removed unsused ISU allocations.
> Fixed RTC address typo from /dts-v1/ conversion.
> Incorporated list suggestions to use an "iomega," vendor prefix,
> and to use a node reference rather than a hard path.
>
> Signed-off-by: Jon Loeliger <jdl@@jdl.com>
> ---
>
> Kumar,
>
> I tried to use one large, linear IRQ block and shift the
> IRQs up to, like, around 129 or so, but it did not work.
> This patch definitely works, so I suspect some issue trying
> to setup (non-)IRQs between 0x50000 and 0x51000 or so. Ick.
We can figure this out later.
> In any even, this is defintely a valid bug fix. If you
> would, please pick up for 2.6.25.
>
> Thanks,
> jdl
applied.
- k
^ permalink raw reply
* Re: [PATCH v2] Made FSL Book-E PMC support more generic
From: Kumar Gala @ 2008-02-06 5:38 UTC (permalink / raw)
To: Andy Fleming; +Cc: linuxppc-dev
In-Reply-To: <12021712751503-git-send-email-afleming@freescale.com>
On Feb 4, 2008, at 6:27 PM, Andy Fleming wrote:
> Some of the more recent e300 cores have the same performance monitor
> implementation as the e500. e300 isn't book-e, so the name isn't
> really appropriate. In preparation for e300 support, rename a bunch
> of fsl_booke things to say fsl_emb (Freescale Embedded Performance
> Monitors).
>
> Signed-off-by: Andy Fleming <afleming@freescale.com>
> ---
> arch/powerpc/kernel/cputable.c | 4 +-
> arch/powerpc/kernel/pmc.c | 2 +-
> arch/powerpc/oprofile/Makefile | 2 +-
> arch/powerpc/oprofile/common.c | 6 +-
> .../{op_model_fsl_booke.c => op_model_fsl_emb.c} | 28 ++++----
> arch/powerpc/platforms/Kconfig.cputype | 4 +
> include/asm-powerpc/cputable.h | 2 +-
> include/asm-powerpc/oprofile_impl.h | 2 +-
> include/asm-powerpc/reg.h | 4 +
> include/asm-powerpc/reg_booke.h | 62
> -----------------
> include/asm-powerpc/reg_fsl_emb.h | 72 +++++++++++
> +++++++++
> 11 files changed, 102 insertions(+), 86 deletions(-)
> rename arch/powerpc/oprofile/{op_model_fsl_booke.c =>
> op_model_fsl_emb.c} (91%)
> create mode 100644 include/asm-powerpc/reg_fsl_emb.h
applied.
- k
^ permalink raw reply
* Re: [PATCH v2] Add oprofile support for e300
From: Kumar Gala @ 2008-02-06 5:43 UTC (permalink / raw)
To: Andy Fleming; +Cc: linuxppc-dev
In-Reply-To: <12021712873501-git-send-email-afleming@freescale.com>
On Feb 4, 2008, at 6:28 PM, Andy Fleming wrote:
> The e300 c3 and c4 variants support hardware performance monitor
> counters which
> are identical to those found in the e500.
>
> Signed-off-by: Andy Fleming <afleming@freescale.com>
> ---
> arch/powerpc/kernel/cputable.c | 6 ++++++
> arch/powerpc/platforms/Kconfig | 1 +
> 2 files changed, 7 insertions(+), 0 deletions(-)
applied.
- k
^ permalink raw reply
* Re: [PATCH 1/3] powerpc: mpc832x_rdb: fix compiler warning
From: Kumar Gala @ 2008-02-06 5:43 UTC (permalink / raw)
To: Kim Phillips; +Cc: linuxppc-dev
In-Reply-To: <20080201180954.b0671447.kim.phillips@freescale.com>
On Feb 1, 2008, at 6:09 PM, Kim Phillips wrote:
> arch/powerpc/platforms/83xx/mpc832x_rdb.c: In function =20
> =91mpc832x_rdb_setup_arch=92:
> arch/powerpc/platforms/83xx/mpc832x_rdb.c:104: warning: =91np=92 is =
used =20
> uninitialized in this function
>
> Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
> ---
> arch/powerpc/platforms/83xx/mpc832x_rdb.c | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
applied.
- k=
^ permalink raw reply
* Re: [PATCH 2/3] powerpc: fsl_soc: fix mpc83xx_spi device registration
From: Kumar Gala @ 2008-02-06 5:44 UTC (permalink / raw)
To: Kim Phillips; +Cc: linuxppc-dev
In-Reply-To: <20080201180958.7c66bff3.kim.phillips@freescale.com>
On Feb 1, 2008, at 6:09 PM, Kim Phillips wrote:
> calling platform_device_register after platform_device_alloc causes
> this:
>
> kobject (c3841a70): tried to init an initialized object, something
> is seriously wrong.
> Call Trace:
> [c381fe20] [c0007bb8] show_stack+0x3c/0x194 (unreliable)
> [c381fe50] [c01322a8] kobject_init+0xb8/0xbc
> [c381fe60] [c01591cc] device_initialize+0x30/0x9c
> [c381fe80] [c015ee34] platform_device_register+0x1c/0x34
> [c381fea0] [c02f1fe0] of_fsl_spi_probe+0x21c/0x22c
> [c381ff30] [c02f2044] fsl_spi_init+0x54/0x160
> [c381ff60] [c02f3924] __machine_initcall_mpc832x_rdb_mpc832x_spi_init
> +0x120/0x138
> [c381ff70] [c02e61b4] kernel_init+0x98/0x284
> [c381fff0] [c000f740] kernel_thread+0x44/0x60
>
> fixed by calling platform_device_add (second half of
> platform_device_register) instead.
>
> Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
applied.
- k
^ permalink raw reply
* Please pull from 'for-2.6.25' branchc
From: Kumar Gala @ 2008-02-06 5:45 UTC (permalink / raw)
To: Paul Mackerras; +Cc: linuxppc-dev
Please pull from 'for-2.6.25' branch of
master.kernel.org:/pub/scm/linux/kernel/git/galak/powerpc.git for-2.6.25
to receive the following updates:
(based on a recent pull of linus's tree)
arch/powerpc/boot/dts/adder875-redboot.dts | 1
arch/powerpc/boot/dts/adder875-uboot.dts | 1
arch/powerpc/boot/dts/mpc8313erdb.dts | 4
arch/powerpc/boot/dts/mpc8315erdb.dts | 2
arch/powerpc/boot/dts/mpc834x_mds.dts | 2
arch/powerpc/boot/dts/mpc885ads.dts | 1
arch/powerpc/boot/dts/storcenter.dts | 12
arch/powerpc/kernel/cputable.c | 10
arch/powerpc/kernel/pmc.c | 2
arch/powerpc/oprofile/Makefile | 2
arch/powerpc/oprofile/common.c | 6
arch/powerpc/oprofile/op_model_fsl_booke.c | 371 ------------------------
arch/powerpc/oprofile/op_model_fsl_emb.c | 369 +++++++++++++++++++++++
arch/powerpc/platforms/83xx/mpc832x_rdb.c | 2
arch/powerpc/platforms/83xx/mpc83xx.h | 2
arch/powerpc/platforms/83xx/usb.c | 17 -
arch/powerpc/platforms/8xx/adder875.c | 6
arch/powerpc/platforms/8xx/ep88xc.c | 1
arch/powerpc/platforms/Kconfig | 1
arch/powerpc/platforms/Kconfig.cputype | 4
arch/powerpc/platforms/embedded6xx/storcenter.c | 25 -
arch/powerpc/sysdev/fsl_soc.c | 2
drivers/net/Kconfig | 4
drivers/net/cpmac.c | 55 +--
include/asm-powerpc/cputable.h | 2
include/asm-powerpc/oprofile_impl.h | 2
include/asm-powerpc/reg.h | 4
include/asm-powerpc/reg_booke.h | 62 ----
include/asm-powerpc/reg_fsl_emb.h | 72 ++++
29 files changed, 524 insertions(+), 520 deletions(-)
Andy Fleming (2):
[POWERPC] Made FSL Book-E PMC support more generic
[POWERPC} Add oprofile support for e300
Anton Vorontsov (1):
cpmac: convert to new Fixed PHY infrastructure
Bryan O'Donoghue (1):
[POWERPC] 8xx: Add clock-frequency to adder875 and mpc885ads dts
Jon Loeliger (1):
[POWERPC] Fix storcenter DTS typos, feedback, IRQs.
Kim Phillips (5):
[POWERPC] 83xx: configure USB clock for MPC8315E
[POWERPC] 83xx: Correct 2nd PCI controller interrupt value in mpc834x_mds dts
[POWERPC] 83xx: Add rtc node to mpc8313erdb dts
[POWERPC] 83xx: mpc832x_rdb: fix compiler warning
[POWERPC] FSL: fix mpc83xx_spi device registration
Scott Wood (1):
[POWERPC] 8xx: adder875, ep88xc: fix to match recent 8xx cleanups.
^ permalink raw reply
* Please pull from 'for-2.6.25' (updated)
From: Kumar Gala @ 2008-02-06 6:01 UTC (permalink / raw)
To: linuxppc-dev
Please pull from 'for-2.6.25' branch of
master.kernel.org:/pub/scm/linux/kernel/git/galak/powerpc.git for-2.6.25
to receive the following updates:
(Found a few patches I missed.)
arch/powerpc/boot/dts/adder875-redboot.dts | 1
arch/powerpc/boot/dts/adder875-uboot.dts | 1
arch/powerpc/boot/dts/mpc8313erdb.dts | 4
arch/powerpc/boot/dts/mpc8315erdb.dts | 2
arch/powerpc/boot/dts/mpc834x_mds.dts | 2
arch/powerpc/boot/dts/mpc8572ds.dts | 12
arch/powerpc/boot/dts/mpc885ads.dts | 1
arch/powerpc/boot/dts/storcenter.dts | 12
arch/powerpc/configs/mpc83xx_defconfig | 10
arch/powerpc/kernel/cputable.c | 10
arch/powerpc/kernel/pmc.c | 2
arch/powerpc/oprofile/Makefile | 2
arch/powerpc/oprofile/common.c | 6
arch/powerpc/oprofile/op_model_fsl_booke.c | 371 ------------------------
arch/powerpc/oprofile/op_model_fsl_emb.c | 369 +++++++++++++++++++++++
arch/powerpc/platforms/83xx/mpc832x_rdb.c | 2
arch/powerpc/platforms/83xx/mpc83xx.h | 2
arch/powerpc/platforms/83xx/usb.c | 17 -
arch/powerpc/platforms/8xx/adder875.c | 6
arch/powerpc/platforms/8xx/ep88xc.c | 1
arch/powerpc/platforms/Kconfig | 1
arch/powerpc/platforms/Kconfig.cputype | 4
arch/powerpc/platforms/embedded6xx/storcenter.c | 25 -
arch/powerpc/sysdev/fsl_soc.c | 2
arch/powerpc/sysdev/qe_lib/qe.c | 10
drivers/net/Kconfig | 4
drivers/net/cpmac.c | 55 +--
include/asm-powerpc/cputable.h | 2
include/asm-powerpc/oprofile_impl.h | 2
include/asm-powerpc/reg.h | 4
include/asm-powerpc/reg_booke.h | 62 ----
include/asm-powerpc/reg_fsl_emb.h | 72 ++++
32 files changed, 546 insertions(+), 530 deletions(-)
Andy Fleming (2):
[POWERPC] Made FSL Book-E PMC support more generic
[POWERPC} Add oprofile support for e300
Anton Vorontsov (2):
cpmac: convert to new Fixed PHY infrastructure
[POWERPC] qe_lib: fix few fluffy negligences
Bryan O'Donoghue (1):
[POWERPC] 8xx: Add clock-frequency to adder875 and mpc885ads dts
Jon Loeliger (1):
[POWERPC] Fix storcenter DTS typos, feedback, IRQs.
Kim Phillips (6):
[POWERPC] 83xx: configure USB clock for MPC8315E
[POWERPC] 83xx: Correct 2nd PCI controller interrupt value in mpc834x_mds dts
[POWERPC] 83xx: Add rtc node to mpc8313erdb dts
[POWERPC] 83xx: mpc832x_rdb: fix compiler warning
[POWERPC] FSL: fix mpc83xx_spi device registration
[POWERPC] 83xx: Update mpc83xx_defconfig
Kumar Gala (1):
[POWERPC] 85xx: Add second cpu to 8572 dts
Scott Wood (1):
[POWERPC] 8xx: adder875, ep88xc: fix to match recent 8xx cleanups.
^ 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