* Re: [PATCH] Don't panic when EEH_MAX_FAILS is exceeded
From: Stephen Rothwell @ 2008-07-21 4:09 UTC (permalink / raw)
To: Sean MacLennan; +Cc: linuxppc-dev, Nathan Lynch, Sean MacLennan
In-Reply-To: <20080720234756.03b602ca@lappy.seanm.ca>
[-- Attachment #1: Type: text/plain, Size: 357 bytes --]
Hi Sean,
On Sun, 20 Jul 2008 23:47:56 -0400 Sean MacLennan <smaclennan@pikatech.com> wrote:
>
> I guess I am too x86 centric. On the x86 an msleep does not give up the
> CPU. It does a busy wait.
I think you must be thinking of mdelay().
--
Cheers,
Stephen Rothwell sfr@canb.auug.org.au
http://www.canb.auug.org.au/~sfr/
[-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --]
^ permalink raw reply
* [5/5] include tuning options into Makefile
From: Marvin @ 2008-07-21 7:00 UTC (permalink / raw)
To: linuxppc-dev
In-Reply-To: <200807210857.08892.marvin24@gmx.de>
This patch finally adds mcpu/mtune options to the Makefile using the
previous introduced tuning mechanism.
Subject: [PATCH] include tuning options into Makefile
---
arch/powerpc/Makefile | 41 +++++++++++++++++++++++------------------
1 files changed, 23 insertions(+), 18 deletions(-)
diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile
index 9629c5e..09f81a7 100644
--- a/arch/powerpc/Makefile
+++ b/arch/powerpc/Makefile
@@ -75,30 +75,35 @@ CPP = $(CC) -E $(KBUILD_CFLAGS)
CHECKFLAGS
+= -m$(CONFIG_WORD_SIZE) -D__powerpc__ -D__powerpc$(CONFIG_WORD_SIZE)__
ifeq ($(CONFIG_PPC64),y)
-GCC_BROKEN_VEC := $(shell if [ $(call cc-version) -lt 0400 ] ; then echo "y";
fi)
-ifeq ($(CONFIG_TUNE_POWER4),y)
-ifeq ($(CONFIG_OPT_EXCLUSIVE),y)
-ifeq ($(CONFIG_ALTIVEC),y)
-ifeq ($(GCC_BROKEN_VEC),y)
- KBUILD_CFLAGS += $(call cc-option,-mcpu=970)
+ifeq ($(shell if [ $(call cc-version) -lt 0400 ] ; then echo "y"; fi),y)
+ P4CPU := power4
else
- KBUILD_CFLAGS += $(call cc-option,-mcpu=power4)
+ P4CPU := 970
endif
-else
- KBUILD_CFLAGS += $(call cc-option,-mcpu=power4)
-endif
-else
- KBUILD_CFLAGS += $(call cc-option,-mtune=power4)
-endif
- KBUILD_CFLAGS += $(call cc-option,-mtune=power4)
+
+# optimize for specific cpu
+ifeq ($(CONFIG_TUNE_RS64),y)
+ KBUILD_CFLAGS += $(call cc-option,-mcpu=rs64)
+else ifeq ($(CONFIG_TUNE_POWER3),y)
+ KBUILD_CFLAGS += $(call cc-option,-mcpu=power3)
+else ifeq ($(CONFIG_TUNE_POWER4),y)
+ KBUILD_CFLAGS += $(call cc-option,-mcpu=$(P4CPU))
+else ifeq ($(CONFIG_TUNE_CELL),y)
+ KBUILD_CFLAGS += $(call cc-option,-mcpu=cell,-mtune=cell)
+else ifeq ($(CONFIG_TUNE_POWER5),y)
+ KBUILD_CFLAGS += $(call cc-option,-mcpu=power5,-mtune=power5)
+else ifeq ($(CONFIG_TUNE_POWER6),y)
+ KBUILD_CFLAGS += $(call cc-option,-mcpu=power6,-mtune=power6)
endif
-else
-LDFLAGS_MODULE += arch/powerpc/lib/crtsavres.o
+
+ifneq ($(CONFIG_OPT_EXCLUSIVE),y)
+ KBUILD_CFLAGS := $(subst mcpu,mtune,$(KBUILD_CFLAGS))
endif
-ifeq ($(CONFIG_TUNE_CELL),y)
- KBUILD_CFLAGS += $(call cc-option,-mtune=cell)
+else
+# !PPC64
+ LDFLAGS_MODULE += arch/powerpc/lib/crtsavres.o
endif
# No AltiVec instruction when building kernel
--
1.5.6.2
^ permalink raw reply related
* [1/5] add tune options to Kconfig.cputypes
From: Marvin @ 2008-07-20 17:48 UTC (permalink / raw)
To: linuxppc-dev
In-Reply-To: <200807201927.24198.marvin24@gmx.de>
This patch adds tuning options similar to ppc32. In addition one can choose to
compile exclusive for the selected (and higher) cpus.
Subject: [PATCH] add tune options to Kconfig.cputypes
---
arch/powerpc/platforms/Kconfig.cputype | 79 ++++++++++++++++++++++++-------
1 files changed, 61 insertions(+), 18 deletions(-)
diff --git a/arch/powerpc/platforms/Kconfig.cputype
b/arch/powerpc/platforms/Kconfig.cputype
index 5bc4b61..88e6ce2 100644
--- a/arch/powerpc/platforms/Kconfig.cputype
+++ b/arch/powerpc/platforms/Kconfig.cputype
@@ -54,35 +54,78 @@ config E200
endchoice
-config POWER4_ONLY
- bool "Optimize for POWER4"
+choice
+ prompt "Processor Type"
depends on PPC64
+ default TUNE_POWER4
+ help
+ There are serveral families of 64 bit PowerPC chips supported.
+ These include the RS64, Power3 to Power6 series, 970, and
+ Cell BE based CPUs made be IBM.
+
+ If unsure, select Power4.
+
+config TUNE_RS64
+ bool "RS64"
+
+config TUNE_POWER3
+ bool "Power3"
+
+config TUNE_POWER4
+ bool "Power4"
+
+config TUNE_970
+ bool "970/G5"
+
+config TUNE_POWER5
+ bool "Power5"
+
+config TUNE_POWER6
+ bool "Power6"
+
+config TUNE_CELL
+ bool "Cell Broadband Engine"
+ help
+ Cause the compiler to optimize for the PPE of the Cell Broadband
+ Engine. This will make the code run considerably faster on Cell
+ but somewhat slower on other machines. If the resulting kernel is
+ built to run only on Cell BE machines, select also OPT_EXCLUSIVE.
+
+endchoice
+
+config OPT_EXCLUSIVE
+ bool "Optimize to run exclusive on selected CPU"
default n
- ---help---
- Cause the compiler to optimize for POWER4/POWER5/PPC970 processors.
- The resulting binary will not work on POWER3 or RS64 processors
- when compiled with binutils 2.15 or later.
+ help
+ Cause the compiler to optimize to run exclusive on the selected
+ CPU. The resulting binary will probably not work on older CPUs,
+ but should work on newer ones.
+
+ See the following chart for supported PPC64 CPU generations.
+
+ older <------------------------------> newer
+
+ RS64 -> POWER3 -> POWER4 -> POWER5 -> POWER6
+ 970/G5
+ CELL BE
+ PA6T
+
+ If the compiler/binutils combination does not support the exclusive
+ optimization, it will try to tune only or fail.
+
+ If you are unsure, select no.
config POWER3
- bool
depends on PPC64
- default y if !POWER4_ONLY
+ def_bool y if !POWER4_ONLY
config POWER4
depends on PPC64
def_bool y
-config TUNE_CELL
- bool "Optimize for Cell Broadband Engine"
+config POWER4_ONLY
depends on PPC64
- help
- Cause the compiler to optimize for the PPE of the Cell Broadband
- Engine. This will make the code run considerably faster on Cell
- but somewhat slower on other machines. This option only changes
- the scheduling of instructions, not the selection of instructions
- itself, so the resulting kernel will keep running on all other
- machines. When building a kernel that is supposed to run only
- on Cell, you should also select the POWER4_ONLY option.
+ def_bool y if TUNE_POWER4 && OPT_EXCLUSIVE
config 6xx
bool
--
1.5.6.2
^ permalink raw reply related
* [3/5] replace CONFIG_POWER4 by CONFIG_PPC64
From: Marvin @ 2008-07-21 6:45 UTC (permalink / raw)
To: linuxppc-dev
This patch replaces all occurrences of CONFIG_POWER4 by CONFIG_PPC64 since it
is redundant.
Subject: [PATCH] replace CONFIG_POWER4 by CONFIG_PPC64
---
arch/powerpc/Makefile | 2 +-
arch/powerpc/configs/cell_defconfig | 1 -
arch/powerpc/configs/celleb_defconfig | 1 -
arch/powerpc/configs/g5_defconfig | 1 -
arch/powerpc/configs/iseries_defconfig | 1 -
arch/powerpc/configs/maple_defconfig | 1 -
arch/powerpc/configs/pasemi_defconfig | 1 -
arch/powerpc/configs/ppc64_defconfig | 1 -
arch/powerpc/configs/ps3_defconfig | 1 -
arch/powerpc/configs/pseries_defconfig | 1 -
arch/powerpc/mm/ppc_mmu_32.c | 2 +-
arch/powerpc/platforms/Kconfig.cputype | 4 ---
arch/powerpc/platforms/powermac/feature.c | 42 +++++++++++++---------------
include/asm-powerpc/cputable.h | 2 +-
include/asm-powerpc/mmu_context.h | 6 +---
15 files changed, 25 insertions(+), 42 deletions(-)
diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile
index 9155c93..624a896 100644
--- a/arch/powerpc/Makefile
+++ b/arch/powerpc/Makefile
@@ -118,7 +118,7 @@ endif
cpu-as-$(CONFIG_4xx) += -Wa,-m405
cpu-as-$(CONFIG_6xx) += -Wa,-maltivec
-cpu-as-$(CONFIG_POWER4) += -Wa,-maltivec
+cpu-as-$(CONFIG_PPC64) += -Wa,-maltivec
cpu-as-$(CONFIG_E500) += -Wa,-me500
cpu-as-$(CONFIG_E200) += -Wa,-me200
diff --git a/arch/powerpc/configs/cell_defconfig
b/arch/powerpc/configs/cell_defconfig
index 579e996..42290e8 100644
--- a/arch/powerpc/configs/cell_defconfig
+++ b/arch/powerpc/configs/cell_defconfig
@@ -10,7 +10,6 @@ CONFIG_PPC64=y
#
# CONFIG_POWER4_ONLY is not set
CONFIG_BATS64=y
-CONFIG_POWER4=y
CONFIG_TUNE_CELL=y
CONFIG_PPC_FPU=y
CONFIG_ALTIVEC=y
diff --git a/arch/powerpc/configs/celleb_defconfig
b/arch/powerpc/configs/celleb_defconfig
index c2761a7..a405836 100644
--- a/arch/powerpc/configs/celleb_defconfig
+++ b/arch/powerpc/configs/celleb_defconfig
@@ -10,7 +10,6 @@ CONFIG_PPC64=y
#
# CONFIG_POWER4_ONLY is not set
CONFIG_BATS64=y
-CONFIG_POWER4=y
CONFIG_TUNE_CELL=y
CONFIG_PPC_FPU=y
CONFIG_ALTIVEC=y
diff --git a/arch/powerpc/configs/g5_defconfig
b/arch/powerpc/configs/g5_defconfig
index 0ccc6e4..747088a 100644
--- a/arch/powerpc/configs/g5_defconfig
+++ b/arch/powerpc/configs/g5_defconfig
@@ -9,7 +9,6 @@ CONFIG_PPC64=y
# Processor support
#
CONFIG_POWER4_ONLY=y
-CONFIG_POWER4=y
# CONFIG_TUNE_CELL is not set
CONFIG_PPC_FPU=y
CONFIG_ALTIVEC=y
diff --git a/arch/powerpc/configs/iseries_defconfig
b/arch/powerpc/configs/iseries_defconfig
index 5237a6b..1b46033 100644
--- a/arch/powerpc/configs/iseries_defconfig
+++ b/arch/powerpc/configs/iseries_defconfig
@@ -10,7 +10,6 @@ CONFIG_PPC64=y
#
# CONFIG_POWER4_ONLY is not set
CONFIG_BATS64=y
-CONFIG_POWER4=y
# CONFIG_TUNE_CELL is not set
CONFIG_PPC_FPU=y
# CONFIG_ALTIVEC is not set
diff --git a/arch/powerpc/configs/maple_defconfig
b/arch/powerpc/configs/maple_defconfig
index 7a166a3..4becb7b 100644
--- a/arch/powerpc/configs/maple_defconfig
+++ b/arch/powerpc/configs/maple_defconfig
@@ -9,7 +9,6 @@ CONFIG_PPC64=y
# Processor support
#
CONFIG_POWER4_ONLY=y
-CONFIG_POWER4=y
# CONFIG_TUNE_CELL is not set
CONFIG_PPC_FPU=y
# CONFIG_ALTIVEC is not set
diff --git a/arch/powerpc/configs/pasemi_defconfig
b/arch/powerpc/configs/pasemi_defconfig
index 199e5f5..d816a3a 100644
--- a/arch/powerpc/configs/pasemi_defconfig
+++ b/arch/powerpc/configs/pasemi_defconfig
@@ -9,7 +9,6 @@ CONFIG_PPC64=y
# Processor support
#
CONFIG_POWER4_ONLY=y
-CONFIG_POWER4=y
# CONFIG_TUNE_CELL is not set
CONFIG_PPC_FPU=y
CONFIG_ALTIVEC=y
diff --git a/arch/powerpc/configs/ppc64_defconfig
b/arch/powerpc/configs/ppc64_defconfig
index 953d840..22276d2 100644
--- a/arch/powerpc/configs/ppc64_defconfig
+++ b/arch/powerpc/configs/ppc64_defconfig
@@ -10,7 +10,6 @@ CONFIG_PPC64=y
#
# CONFIG_POWER4_ONLY is not set
CONFIG_BATS64=y
-CONFIG_POWER4=y
# CONFIG_TUNE_CELL is not set
CONFIG_PPC_FPU=y
CONFIG_ALTIVEC=y
diff --git a/arch/powerpc/configs/ps3_defconfig
b/arch/powerpc/configs/ps3_defconfig
index 2015c69..52a0895 100644
--- a/arch/powerpc/configs/ps3_defconfig
+++ b/arch/powerpc/configs/ps3_defconfig
@@ -10,7 +10,6 @@ CONFIG_PPC64=y
#
# CONFIG_POWER4_ONLY is not set
CONFIG_BATS64=y
-CONFIG_POWER4=y
CONFIG_TUNE_CELL=y
CONFIG_PPC_FPU=y
CONFIG_ALTIVEC=y
diff --git a/arch/powerpc/configs/pseries_defconfig
b/arch/powerpc/configs/pseries_defconfig
index e163059..e0194e7 100644
--- a/arch/powerpc/configs/pseries_defconfig
+++ b/arch/powerpc/configs/pseries_defconfig
@@ -10,7 +10,6 @@ CONFIG_PPC64=y
#
# CONFIG_POWER4_ONLY is not set
CONFIG_BATS64=y
-CONFIG_POWER4=y
# CONFIG_TUNE_CELL is not set
CONFIG_PPC_FPU=y
CONFIG_ALTIVEC=y
diff --git a/arch/powerpc/mm/ppc_mmu_32.c b/arch/powerpc/mm/ppc_mmu_32.c
index c53145f..c3509c8 100644
--- a/arch/powerpc/mm/ppc_mmu_32.c
+++ b/arch/powerpc/mm/ppc_mmu_32.c
@@ -74,7 +74,7 @@ unsigned long p_mapped_by_bats(phys_addr_t pa)
unsigned long __init mmu_mapin_ram(void)
{
-#ifdef CONFIG_POWER4
+#ifdef CONFIG_PPC64
return 0;
#else
unsigned long tot, bl, done;
diff --git a/arch/powerpc/platforms/Kconfig.cputype
b/arch/powerpc/platforms/Kconfig.cputype
index b343fdb..5af2123 100644
--- a/arch/powerpc/platforms/Kconfig.cputype
+++ b/arch/powerpc/platforms/Kconfig.cputype
@@ -119,10 +119,6 @@ config BATS64
depends on PPC64
def_bool y if !POWER4_ONLY
-config POWER4
- depends on PPC64
- def_bool y
-
config POWER4_ONLY
depends on PPC64
def_bool y if TUNE_POWER4 && OPT_EXCLUSIVE
diff --git a/arch/powerpc/platforms/powermac/feature.c
b/arch/powerpc/platforms/powermac/feature.c
index 5169ecc..608b793 100644
--- a/arch/powerpc/platforms/powermac/feature.c
+++ b/arch/powerpc/platforms/powermac/feature.c
@@ -155,7 +155,7 @@ static inline int simple_feature_tweak(struct device_node
*node, int type,
return 0;
}
-#ifndef CONFIG_POWER4
+#ifndef CONFIG_PPC64
static long ohare_htw_scc_enable(struct device_node *node, long param,
long value)
@@ -1315,7 +1315,7 @@ intrepid_aack_delay_enable(struct device_node *node,
long param, long value)
}
-#endif /* CONFIG_POWER4 */
+#endif /* CONFIG_PPC64 */
static long
core99_read_gpio(struct device_node *node, long param, long value)
@@ -1335,7 +1335,7 @@ core99_write_gpio(struct device_node *node, long param,
long value)
return 0;
}
-#ifdef CONFIG_POWER4
+#ifdef CONFIG_PPC64
static long g5_gmac_enable(struct device_node *node, long param, long value)
{
struct macio_chip *macio = &macio_chips[0];
@@ -1547,9 +1547,9 @@ void g5_phy_disable_cpu1(void)
if (uninorth_maj == 3)
UN_OUT(U3_API_PHY_CONFIG_1, 0);
}
-#endif /* CONFIG_POWER4 */
+#endif /* CONFIG_PPC64 */
-#ifndef CONFIG_POWER4
+#ifndef CONFIG_PPC64
#ifdef CONFIG_PM
@@ -1861,7 +1861,7 @@ core99_sleep_state(struct device_node *node, long param,
long value)
return 0;
}
-#endif /* CONFIG_POWER4 */
+#endif /* CONFIG_PPC64 */
static long
generic_dev_can_wake(struct device_node *node, long param, long value)
@@ -1903,7 +1903,7 @@ static struct feature_table_entry any_features[] = {
{ 0, NULL }
};
-#ifndef CONFIG_POWER4
+#ifndef CONFIG_PPC64
/* OHare based motherboards. Currently, we only use these on the
* 2400,3400 and 3500 series powerbooks. Some older desktops seem
@@ -2053,7 +2053,7 @@ static struct feature_table_entry intrepid_features[] =
{
{ 0, NULL }
};
-#else /* CONFIG_POWER4 */
+#else /* CONFIG_PPC64 */
/* G5 features
*/
@@ -2071,10 +2071,10 @@ static struct feature_table_entry g5_features[] = {
{ 0, NULL }
};
-#endif /* CONFIG_POWER4 */
+#endif /* CONFIG_PPC64 */
static struct pmac_mb_def pmac_mb_defs[] = {
-#ifndef CONFIG_POWER4
+#ifndef CONFIG_PPC64
/*
* Desktops
*/
@@ -2335,12 +2335,11 @@ static struct pmac_mb_def pmac_mb_defs[] = {
PMAC_TYPE_UNKNOWN_INTREPID, intrepid_features,
PMAC_MB_MAY_SLEEP | PMAC_MB_HAS_FW_POWER | PMAC_MB_MOBILE,
},
-#else /* CONFIG_POWER4 */
+#else /* CONFIG_PPC64 */
{ "PowerMac7,2", "PowerMac G5",
PMAC_TYPE_POWERMAC_G5, g5_features,
0,
},
-#ifdef CONFIG_PPC64
{ "PowerMac7,3", "PowerMac G5",
PMAC_TYPE_POWERMAC_G5, g5_features,
0,
@@ -2366,7 +2365,6 @@ static struct pmac_mb_def pmac_mb_defs[] = {
0,
},
#endif /* CONFIG_PPC64 */
-#endif /* CONFIG_POWER4 */
};
/*
@@ -2434,7 +2432,7 @@ static int __init probe_motherboard(void)
/* Fallback to selection depending on mac-io chip type */
switch(macio->type) {
-#ifndef CONFIG_POWER4
+#ifndef CONFIG_PPC64
case macio_grand_central:
pmac_mb.model_id = PMAC_TYPE_PSURGE;
pmac_mb.model_name = "Unknown PowerSurge";
@@ -2468,7 +2466,7 @@ static int __init probe_motherboard(void)
pmac_mb.model_name = "Unknown Intrepid-based";
pmac_mb.features = intrepid_features;
break;
-#else /* CONFIG_POWER4 */
+#else /* CONFIG_PPC64 */
case macio_keylargo2:
pmac_mb.model_id = PMAC_TYPE_UNKNOWN_K2;
pmac_mb.model_name = "Unknown K2-based";
@@ -2479,13 +2477,13 @@ static int __init probe_motherboard(void)
pmac_mb.model_name = "Unknown Shasta-based";
pmac_mb.features = g5_features;
break;
-#endif /* CONFIG_POWER4 */
+#endif /* CONFIG_PPC64 */
default:
ret = -ENODEV;
goto done;
}
found:
-#ifndef CONFIG_POWER4
+#ifndef CONFIG_PPC64
/* Fixup Hooper vs. Comet */
if (pmac_mb.model_id == PMAC_TYPE_HOOPER) {
u32 __iomem * mach_id_ptr = ioremap(0xf3000034, 4);
@@ -2539,9 +2537,9 @@ found:
*/
powersave_lowspeed = 1;
-#else /* CONFIG_POWER4 */
+#else /* CONFIG_PPC64 */
powersave_nap = 1;
-#endif /* CONFIG_POWER4 */
+#endif /* CONFIG_PPC64 */
/* Check for "mobile" machine */
if (model && (strncmp(model, "PowerBook", 9) == 0
@@ -2772,7 +2770,7 @@ set_initial_features(void)
MACIO_BIS(OHARE_FCR, OH_IOBUS_ENABLE);
}
-#ifdef CONFIG_POWER4
+#ifdef CONFIG_PPC64
if (macio_chips[0].type == macio_keylargo2 ||
macio_chips[0].type == macio_shasta) {
#ifndef CONFIG_SMP
@@ -2812,7 +2810,7 @@ set_initial_features(void)
np = of_find_node_by_name(np, "firewire");
}
}
-#else /* CONFIG_POWER4 */
+#else /* CONFIG_PPC64 */
if (macio_chips[0].type == macio_keylargo ||
macio_chips[0].type == macio_pangea ||
@@ -2882,7 +2880,7 @@ set_initial_features(void)
MACIO_BIC(HEATHROW_FCR, HRW_SOUND_POWER_N);
}
-#endif /* CONFIG_POWER4 */
+#endif /* CONFIG_PPC64 */
/* On all machines, switch modem & serial ports off */
for_each_node_by_name(np, "ch-a")
diff --git a/include/asm-powerpc/cputable.h b/include/asm-powerpc/cputable.h
index 0ef9abc..97fdbaf 100644
--- a/include/asm-powerpc/cputable.h
+++ b/include/asm-powerpc/cputable.h
@@ -257,7 +257,7 @@ extern void do_feature_fixups(unsigned long value, void
*fixup_start,
#endif
#define CLASSIC_PPC (!defined(CONFIG_8xx) && !defined(CONFIG_4xx) && \
- !defined(CONFIG_POWER4) && !defined(CONFIG_BOOKE))
+ !defined(CONFIG_PPC64) && !defined(CONFIG_BOOKE))
#define CPU_FTRS_PPC601 (CPU_FTR_COMMON | CPU_FTR_601 | CPU_FTR_HPTE_TABLE |
\
CPU_FTR_COHERENT_ICACHE | CPU_FTR_UNIFIED_ID_CACHE)
diff --git a/include/asm-powerpc/mmu_context.h
b/include/asm-powerpc/mmu_context.h
index 9102b8b..bc4386b 100644
--- a/include/asm-powerpc/mmu_context.h
+++ b/include/asm-powerpc/mmu_context.h
@@ -173,9 +173,7 @@ static inline void switch_mm(struct mm_struct *prev,
struct mm_struct *next,
#ifdef CONFIG_ALTIVEC
if (cpu_has_feature(CPU_FTR_ALTIVEC))
asm volatile ("dssall;\n"
-#ifndef CONFIG_POWER4
- "sync;\n" /* G4 needs a sync here, G5 apparently not */
-#endif
+ "sync;\n" /* G4 needs a sync here */
: : );
#endif /* CONFIG_ALTIVEC */
@@ -201,7 +199,7 @@ static inline void switch_mm(struct mm_struct *prev,
struct mm_struct *next,
extern void mmu_context_init(void);
-#else
+#else /* CONFIG_PPC64 */
#include <linux/kernel.h>
#include <linux/mm.h>
--
1.5.6.2
^ permalink raw reply related
* [2/5] replace all occurrences of CONFIG_POWER3 by CONFIG_BATS64
From: Marvin @ 2008-07-21 7:04 UTC (permalink / raw)
To: linuxppc-dev
In-Reply-To: <200807201946.04299.marvin24@gmx.de>
This patch replaces all occurrences of CONFIG_POWER3 by CONFIG_BATS64. It
should have no effect on the output kernel.
Subject: [PATCH] replace all occurrences of CONFIG_POWER3 by
CONFIG_BATS64
---
arch/powerpc/configs/cell_defconfig | 2 +-
arch/powerpc/configs/celleb_defconfig | 2 +-
arch/powerpc/configs/iseries_defconfig | 2 +-
arch/powerpc/configs/ppc64_defconfig | 2 +-
arch/powerpc/configs/ps3_defconfig | 2 +-
arch/powerpc/configs/pseries_defconfig | 2 +-
arch/powerpc/mm/pgtable_32.c | 2 +-
arch/powerpc/platforms/Kconfig.cputype | 2 +-
include/asm-powerpc/cputable.h | 3 +--
9 files changed, 9 insertions(+), 10 deletions(-)
diff --git a/arch/powerpc/configs/cell_defconfig
b/arch/powerpc/configs/cell_defconfig
index c420e47..579e996 100644
--- a/arch/powerpc/configs/cell_defconfig
+++ b/arch/powerpc/configs/cell_defconfig
@@ -9,7 +9,7 @@ CONFIG_PPC64=y
# Processor support
#
# CONFIG_POWER4_ONLY is not set
-CONFIG_POWER3=y
+CONFIG_BATS64=y
CONFIG_POWER4=y
CONFIG_TUNE_CELL=y
CONFIG_PPC_FPU=y
diff --git a/arch/powerpc/configs/celleb_defconfig
b/arch/powerpc/configs/celleb_defconfig
index 9ba3c6f..c2761a7 100644
--- a/arch/powerpc/configs/celleb_defconfig
+++ b/arch/powerpc/configs/celleb_defconfig
@@ -9,7 +9,7 @@ CONFIG_PPC64=y
# Processor support
#
# CONFIG_POWER4_ONLY is not set
-CONFIG_POWER3=y
+CONFIG_BATS64=y
CONFIG_POWER4=y
CONFIG_TUNE_CELL=y
CONFIG_PPC_FPU=y
diff --git a/arch/powerpc/configs/iseries_defconfig
b/arch/powerpc/configs/iseries_defconfig
index 63f0bdb..5237a6b 100644
--- a/arch/powerpc/configs/iseries_defconfig
+++ b/arch/powerpc/configs/iseries_defconfig
@@ -9,7 +9,7 @@ CONFIG_PPC64=y
# Processor support
#
# CONFIG_POWER4_ONLY is not set
-CONFIG_POWER3=y
+CONFIG_BATS64=y
CONFIG_POWER4=y
# CONFIG_TUNE_CELL is not set
CONFIG_PPC_FPU=y
diff --git a/arch/powerpc/configs/ppc64_defconfig
b/arch/powerpc/configs/ppc64_defconfig
index ce250bc..953d840 100644
--- a/arch/powerpc/configs/ppc64_defconfig
+++ b/arch/powerpc/configs/ppc64_defconfig
@@ -9,7 +9,7 @@ CONFIG_PPC64=y
# Processor support
#
# CONFIG_POWER4_ONLY is not set
-CONFIG_POWER3=y
+CONFIG_BATS64=y
CONFIG_POWER4=y
# CONFIG_TUNE_CELL is not set
CONFIG_PPC_FPU=y
diff --git a/arch/powerpc/configs/ps3_defconfig
b/arch/powerpc/configs/ps3_defconfig
index 71d79e4..2015c69 100644
--- a/arch/powerpc/configs/ps3_defconfig
+++ b/arch/powerpc/configs/ps3_defconfig
@@ -9,7 +9,7 @@ CONFIG_PPC64=y
# Processor support
#
# CONFIG_POWER4_ONLY is not set
-CONFIG_POWER3=y
+CONFIG_BATS64=y
CONFIG_POWER4=y
CONFIG_TUNE_CELL=y
CONFIG_PPC_FPU=y
diff --git a/arch/powerpc/configs/pseries_defconfig
b/arch/powerpc/configs/pseries_defconfig
index fe6ffa6..e163059 100644
--- a/arch/powerpc/configs/pseries_defconfig
+++ b/arch/powerpc/configs/pseries_defconfig
@@ -9,7 +9,7 @@ CONFIG_PPC64=y
# Processor support
#
# CONFIG_POWER4_ONLY is not set
-CONFIG_POWER3=y
+CONFIG_BATS64=y
CONFIG_POWER4=y
# CONFIG_TUNE_CELL is not set
CONFIG_PPC_FPU=y
diff --git a/arch/powerpc/mm/pgtable_32.c b/arch/powerpc/mm/pgtable_32.c
index c758407..c4e8d86 100644
--- a/arch/powerpc/mm/pgtable_32.c
+++ b/arch/powerpc/mm/pgtable_32.c
@@ -38,7 +38,7 @@ unsigned long ioremap_base;
unsigned long ioremap_bot;
EXPORT_SYMBOL(ioremap_bot); /* aka VMALLOC_END */
-#if defined(CONFIG_6xx) || defined(CONFIG_POWER3)
+#if defined(CONFIG_6xx) || defined(CONFIG_BATS64)
#define HAVE_BATS 1
#endif
diff --git a/arch/powerpc/platforms/Kconfig.cputype
b/arch/powerpc/platforms/Kconfig.cputype
index 88e6ce2..b343fdb 100644
--- a/arch/powerpc/platforms/Kconfig.cputype
+++ b/arch/powerpc/platforms/Kconfig.cputype
@@ -115,7 +115,7 @@ config OPT_EXCLUSIVE
If you are unsure, select no.
-config POWER3
+config BATS64
depends on PPC64
def_bool y if !POWER4_ONLY
diff --git a/include/asm-powerpc/cputable.h b/include/asm-powerpc/cputable.h
index 2a3e907..0ef9abc 100644
--- a/include/asm-powerpc/cputable.h
+++ b/include/asm-powerpc/cputable.h
@@ -257,8 +257,7 @@ extern void do_feature_fixups(unsigned long value, void
*fixup_start,
#endif
#define CLASSIC_PPC (!defined(CONFIG_8xx) && !defined(CONFIG_4xx) && \
- !defined(CONFIG_POWER3) && !defined(CONFIG_POWER4) && \
- !defined(CONFIG_BOOKE))
+ !defined(CONFIG_POWER4) && !defined(CONFIG_BOOKE))
#define CPU_FTRS_PPC601 (CPU_FTR_COMMON | CPU_FTR_601 | CPU_FTR_HPTE_TABLE |
\
CPU_FTR_COHERENT_ICACHE | CPU_FTR_UNIFIED_ID_CACHE)
--
1.5.6.2
^ permalink raw reply related
* [RFC] [0/5] tuning options for PPC64
From: Marvin @ 2008-07-21 7:02 UTC (permalink / raw)
To: linuxppc-dev
Hi,
the following five patches should lay a foundation to more fine-grained tuning
on PPC64 cpus. They must be applied in order. The motivation are the
discussions of serveral cpu specific optimizations in the past on this list,
cleanup of the wired Makefile/CONFIG_POWERx constructs and at least the
ownership of a PS3.
The patches intoduce CONFIG_TUNE_some_cpu and CONFIG_OPT_EXCLUSIVE, with the
aim to cover two common cases:
- distributions want a common kernel, bootable on all ppc64 machines and tune
for a certain cpu
- high end users don't care about older cpus and want to compile a kernel
with their favorite mcpu option
I know there is also the possibility of mcpu=x and mtune=y, y>x but this can
be tackled in the next step (hopefully).
I know this will bring up some conserns, but my initial findings grepping the
defconfigs show:
- CONFIG_POWER3 enables BATS only
it is also used the enable some configs
it is used always in combination with CONFIG_POWER4
- CONFIG_POWER4 is always combined with CONFIG_PPC64 and vice versa
all POWER3 || POWER4 || PPC64 can be replaced by PPC64
- There seems to be no support for 32-bit kernels on ppc64 machines
I hope for some feedback, so this new scheme (or some other) can be included
to mainstream kernel.
Greetings
Marvin
^ permalink raw reply
* [4/5] replace CONFIG_POWER4_ONLY by new tuning mechanism
From: Marvin @ 2008-07-21 6:57 UTC (permalink / raw)
To: linuxppc-dev
In-Reply-To: <200807210845.30434.marvin24@gmx.de>
This patch replaces CONFIG_POWER4_ONLY by (CONFIG_OPT_EXCLUSIVE &&
CONFIG_TUNE_POWER4). This gets overwritten in the next patch.
It also introduces integer values of CPU generations. This is useful to enable
features available only since a certain CPU gen (see last hunk).
Unfortunately, kbuild system can't (yet) compare int values, so MIN_POWERn is
also defined (but not used yet).
Subject: [PATCH] replace CONFIG_POWER4_ONLY by new tuning mechanism
---
arch/powerpc/Kconfig | 2 +-
arch/powerpc/Makefile | 5 ++++-
arch/powerpc/configs/cell_defconfig | 1 -
arch/powerpc/configs/celleb_defconfig | 1 -
arch/powerpc/configs/g5_defconfig | 3 ++-
arch/powerpc/configs/iseries_defconfig | 1 -
arch/powerpc/configs/maple_defconfig | 3 ++-
arch/powerpc/configs/pasemi_defconfig | 3 ++-
arch/powerpc/configs/ppc64_defconfig | 1 -
arch/powerpc/configs/ps3_defconfig | 1 -
arch/powerpc/configs/pseries_defconfig | 1 -
arch/powerpc/platforms/Kconfig.cputype | 31
++++++++++++++++++++++++-------
arch/powerpc/platforms/powermac/Kconfig | 2 +-
include/asm-powerpc/asm-compat.h | 2 +-
14 files changed, 37 insertions(+), 20 deletions(-)
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
index de88972..9b2aaf5 100644
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
@@ -528,7 +528,7 @@ config ZONE_DMA
config GENERIC_ISA_DMA
bool
- depends on PPC64 || POWER4 || 6xx && !CPM2
+ depends on PPC64 || 6xx && !CPM2
default y
config PPC_INDIRECT_PCI
diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile
index 624a896..9629c5e 100644
--- a/arch/powerpc/Makefile
+++ b/arch/powerpc/Makefile
@@ -77,7 +77,8 @@ CHECKFLAGS
+= -m$(CONFIG_WORD_SIZE) -D__powerpc__ -D__powerpc$(CONFIG_WORD_SIZE)
ifeq ($(CONFIG_PPC64),y)
GCC_BROKEN_VEC := $(shell if [ $(call cc-version) -lt 0400 ] ; then echo "y";
fi)
-ifeq ($(CONFIG_POWER4_ONLY),y)
+ifeq ($(CONFIG_TUNE_POWER4),y)
+ifeq ($(CONFIG_OPT_EXCLUSIVE),y)
ifeq ($(CONFIG_ALTIVEC),y)
ifeq ($(GCC_BROKEN_VEC),y)
KBUILD_CFLAGS += $(call cc-option,-mcpu=970)
@@ -90,6 +91,8 @@ endif
else
KBUILD_CFLAGS += $(call cc-option,-mtune=power4)
endif
+ KBUILD_CFLAGS += $(call cc-option,-mtune=power4)
+endif
else
LDFLAGS_MODULE += arch/powerpc/lib/crtsavres.o
endif
diff --git a/arch/powerpc/configs/cell_defconfig
b/arch/powerpc/configs/cell_defconfig
index 42290e8..7e8e581 100644
--- a/arch/powerpc/configs/cell_defconfig
+++ b/arch/powerpc/configs/cell_defconfig
@@ -8,7 +8,6 @@ CONFIG_PPC64=y
#
# Processor support
#
-# CONFIG_POWER4_ONLY is not set
CONFIG_BATS64=y
CONFIG_TUNE_CELL=y
CONFIG_PPC_FPU=y
diff --git a/arch/powerpc/configs/celleb_defconfig
b/arch/powerpc/configs/celleb_defconfig
index a405836..e11e991 100644
--- a/arch/powerpc/configs/celleb_defconfig
+++ b/arch/powerpc/configs/celleb_defconfig
@@ -8,7 +8,6 @@ CONFIG_PPC64=y
#
# Processor support
#
-# CONFIG_POWER4_ONLY is not set
CONFIG_BATS64=y
CONFIG_TUNE_CELL=y
CONFIG_PPC_FPU=y
diff --git a/arch/powerpc/configs/g5_defconfig
b/arch/powerpc/configs/g5_defconfig
index 747088a..e2c92ed 100644
--- a/arch/powerpc/configs/g5_defconfig
+++ b/arch/powerpc/configs/g5_defconfig
@@ -8,7 +8,8 @@ CONFIG_PPC64=y
#
# Processor support
#
-CONFIG_POWER4_ONLY=y
+CONFIG_TUNE_POWER4=y
+CONFIG_OPT_EXCLUSIVE=y
# CONFIG_TUNE_CELL is not set
CONFIG_PPC_FPU=y
CONFIG_ALTIVEC=y
diff --git a/arch/powerpc/configs/iseries_defconfig
b/arch/powerpc/configs/iseries_defconfig
index 1b46033..abe72fd 100644
--- a/arch/powerpc/configs/iseries_defconfig
+++ b/arch/powerpc/configs/iseries_defconfig
@@ -8,7 +8,6 @@ CONFIG_PPC64=y
#
# Processor support
#
-# CONFIG_POWER4_ONLY is not set
CONFIG_BATS64=y
# CONFIG_TUNE_CELL is not set
CONFIG_PPC_FPU=y
diff --git a/arch/powerpc/configs/maple_defconfig
b/arch/powerpc/configs/maple_defconfig
index 4becb7b..6dee9f2 100644
--- a/arch/powerpc/configs/maple_defconfig
+++ b/arch/powerpc/configs/maple_defconfig
@@ -8,7 +8,8 @@ CONFIG_PPC64=y
#
# Processor support
#
-CONFIG_POWER4_ONLY=y
+CONFIG_TUNE_POWER4=y
+CONFIG_OPT_EXCLUSIVE=y
# CONFIG_TUNE_CELL is not set
CONFIG_PPC_FPU=y
# CONFIG_ALTIVEC is not set
diff --git a/arch/powerpc/configs/pasemi_defconfig
b/arch/powerpc/configs/pasemi_defconfig
index d816a3a..adef0fe 100644
--- a/arch/powerpc/configs/pasemi_defconfig
+++ b/arch/powerpc/configs/pasemi_defconfig
@@ -8,7 +8,8 @@ CONFIG_PPC64=y
#
# Processor support
#
-CONFIG_POWER4_ONLY=y
+CONFIG_TUNE_POWER4=y
+CONFIG_OPT_EXCLUSIVE=y
# CONFIG_TUNE_CELL is not set
CONFIG_PPC_FPU=y
CONFIG_ALTIVEC=y
diff --git a/arch/powerpc/configs/ppc64_defconfig
b/arch/powerpc/configs/ppc64_defconfig
index 22276d2..7f14276 100644
--- a/arch/powerpc/configs/ppc64_defconfig
+++ b/arch/powerpc/configs/ppc64_defconfig
@@ -8,7 +8,6 @@ CONFIG_PPC64=y
#
# Processor support
#
-# CONFIG_POWER4_ONLY is not set
CONFIG_BATS64=y
# CONFIG_TUNE_CELL is not set
CONFIG_PPC_FPU=y
diff --git a/arch/powerpc/configs/ps3_defconfig
b/arch/powerpc/configs/ps3_defconfig
index 52a0895..da02852 100644
--- a/arch/powerpc/configs/ps3_defconfig
+++ b/arch/powerpc/configs/ps3_defconfig
@@ -8,7 +8,6 @@ CONFIG_PPC64=y
#
# Processor support
#
-# CONFIG_POWER4_ONLY is not set
CONFIG_BATS64=y
CONFIG_TUNE_CELL=y
CONFIG_PPC_FPU=y
diff --git a/arch/powerpc/configs/pseries_defconfig
b/arch/powerpc/configs/pseries_defconfig
index e0194e7..d4a7330 100644
--- a/arch/powerpc/configs/pseries_defconfig
+++ b/arch/powerpc/configs/pseries_defconfig
@@ -8,7 +8,6 @@ CONFIG_PPC64=y
#
# Processor support
#
-# CONFIG_POWER4_ONLY is not set
CONFIG_BATS64=y
# CONFIG_TUNE_CELL is not set
CONFIG_PPC_FPU=y
diff --git a/arch/powerpc/platforms/Kconfig.cputype
b/arch/powerpc/platforms/Kconfig.cputype
index 5af2123..70928c8 100644
--- a/arch/powerpc/platforms/Kconfig.cputype
+++ b/arch/powerpc/platforms/Kconfig.cputype
@@ -115,13 +115,30 @@ config OPT_EXCLUSIVE
If you are unsure, select no.
-config BATS64
+config PPC64_GEN
depends on PPC64
- def_bool y if !POWER4_ONLY
+ int
+ default "1" if !OPT_EXCLUSIVE
+ default "2" if TUNE_RS64
+ default "3" if TUNE_POWER3
+ default "4" if TUNE_POWER4 || TUNE_CELL || TUNE_970
+ default "5" if TUNE_POWER5
+ default "6" if TUNE_POWER6
+
+# needed until kbuild understands comparision of int values
+config MIN_POWER4
+ def_bool y if ( PPC64_GEN = 4 || PPC64_GEN = 5 || PPC64_GEN = 6 || PPC64_GEN
= 7 )
+
+config MIN_POWER5
+ def_bool y if ( PPC64_GEN = 5 || PPC64_GEN = 6 || PPC64_GEN = 7 )
-config POWER4_ONLY
+config MIN_POWER6
+ def_bool y if ( PPC64_GEN = 6 || PPC64_GEN = 7 )
+
+config BATS64
depends on PPC64
- def_bool y if TUNE_POWER4 && OPT_EXCLUSIVE
+ def_bool y if !OPT_EXCLUSIVE
+ def_bool y if TUNE_RS64 || TUNE_POWER3
config 6xx
bool
@@ -185,7 +202,7 @@ config PHYS_64BIT
config ALTIVEC
bool "AltiVec Support"
- depends on CLASSIC32 || POWER4
+ depends on CLASSIC32 || PPC64
---help---
This option enables kernel support for the Altivec extensions to the
PowerPC processor. The kernel currently supports saving and restoring
@@ -201,7 +218,7 @@ config ALTIVEC
config VSX
bool "VSX Support"
- depends on POWER4 && ALTIVEC && PPC_FPU
+ depends on PPC64 && ALTIVEC && PPC_FPU
---help---
This option enables kernel support for the Vector Scaler extensions
@@ -233,7 +250,7 @@ config SPE
config PPC_STD_MMU
bool
- depends on 6xx || POWER3 || POWER4 || PPC64
+ depends on 6xx || PPC64
default y
config PPC_STD_MMU_32
diff --git a/arch/powerpc/platforms/powermac/Kconfig
b/arch/powerpc/platforms/powermac/Kconfig
index 055990c..28d32c5 100644
--- a/arch/powerpc/platforms/powermac/Kconfig
+++ b/arch/powerpc/platforms/powermac/Kconfig
@@ -10,7 +10,7 @@ config PPC_PMAC
config PPC_PMAC64
bool
- depends on PPC_PMAC && POWER4
+ depends on PPC_PMAC && PPC64
select MPIC
select U3_DART
select MPIC_U3_HT_IRQS
diff --git a/include/asm-powerpc/asm-compat.h
b/include/asm-powerpc/asm-compat.h
index 8ec2e1d..d7cf3e4 100644
--- a/include/asm-powerpc/asm-compat.h
+++ b/include/asm-powerpc/asm-compat.h
@@ -30,7 +30,7 @@
/* Move to CR, single-entry optimized version. Only available
* on POWER4 and later.
*/
-#ifdef CONFIG_POWER4_ONLY
+#if CONFIG_PPC64_GEN >= 4
#define PPC_MTOCRF stringify_in_c(mtocrf)
#else
#define PPC_MTOCRF stringify_in_c(mtcrf)
--
1.5.6.2
^ permalink raw reply related
* Re: No filesystem could mount root
From: Marco Stornelli @ 2008-07-21 7:18 UTC (permalink / raw)
To: mahendra varman; +Cc: selvamuthukumar v, linuxppc-embedded
In-Reply-To: <4ac2955e0807190602g4dcf7ddauc07dd8441ef678cc@mail.gmail.com>
mahendra varman ha scritto:
>> There are no messages from the kernel that it's trying NFS. You can
>> check the boot arguments you are passing to the kernel.
>>
>
> The boot arguments are passed correctly only.
>
> setenv bootargs console=ttyS0,57600 root=/dev/nfs
> nfsroot=192.168.0.6:/root/FILESYSTEM/target/target-minimal
> ip=192.168.0.200:192.168.0.6:192.168.0.1:255.255.255.0::eth0
>
> still Iam getting the above said error
>
> Any clue??
>
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Linuxppc-embedded mailing list
> Linuxppc-embedded@ozlabs.org
> https://ozlabs.org/mailman/listinfo/linuxppc-embedded
Sometimes ago I had the same problem, I don't exactly remember the
problem, but it was related to the NFS server configuration. Check it out.
Regards,
--
Marco Stornelli
Embedded Software Engineer
CoRiTeL - Consorzio di Ricerca sulle Telecomunicazioni
http://www.coritel.it
marco.stornelli@coritel.it
+39 06 72582838
^ permalink raw reply
* Antwort: RE: Migrating from 2.6.11 to 2.6.23 breaks pci-e
From: joachim.bader @ 2008-07-21 7:14 UTC (permalink / raw)
To: vasbridge
Cc: 'Geary Sean-R60898', 'Dave Maruska',
'Mitul Patel', 'Hynes, Stephen',
linuxppc-embedded, 'Stephen Shirron'
In-Reply-To: <037e01c8dc8c$3147a450$4b01a8c0@sanblaze.com>
[-- Attachment #1.1: Type: text/plain, Size: 5858 bytes --]
Hello Vince,
we ran into the similar problem using U-boot version 1.1.4 and Linux
kernel 2.6.23 on a Freescale MPC8641D platform.
The kernel did not scan all buses and did not recognize the connected
pci-e bridges and devices.
Your mail was very helpfull and due to the information you sent we
disabled CONFIG_PCI in U-boot and now the kernel was able to detect all
connected bridges and devices. But during allocation of the pci-e
resources the kernel runs in an address access violation. We will continue
to investigate this behavior.
Do you have some more information? regarding behavior of newer kernels?
Thank you
Joachim Bader
--
Dipl.-Ing. Joachim Bader
Research & Technology
Cockpit and Display Systems
Diehl Aerospace GmbH
An der Sandelmuehle 13
D-60439 Frankfurt
Phone +49-69-5805-1270
Fax +49-69-5805-1400
e-mail: joachim.bader@diehl-aerospace.de
http://www.diehl-aerospace.de
"Vince Asbridge" <vasbridge@sanblaze.com>
Gesendet von:
linuxppc-embedded-bounces+joachim.bader=diehl-aerospace.de@ozlabs.org
02.07.2008 23:40
An
<linuxppc-embedded@ozlabs.org>, "'Stephen Shirron'"
<sshirron@sanblaze.com>, "'Mitul Patel'" <mpatel@sanblaze.com>, "'Dave
Maruska'" <dmaruska@sanblaze.com>, "'Geary Sean-R60898'"
<sean.geary@freescale.com>, "'Hynes, Stephen'" <Stephen.Hynes@lsi.com>
Kopie
Thema
RE: Migrating from 2.6.11 to 2.6.23 breaks pci-e with LSI 1068 SAS chip
(solved!)
Solved!
Problem summary.
LSI logic devices (1068e, 1064e, fc949e) do not work with uBoot version
1.3.0 and Linux kernel 2.6.23, where they work perfectly fine in kernel
2.6.11.
Symptom is that they do not show up at all to Linux once booted (lspci
shows
nothing).
We obtained a pci-e analyzer and found the following:
uBoot V1.3.0 now scans the pci configuration, and when it does it assigns
bus numbers to the pci-e devices it finds. These numbers that are
assigned
are different from those that are assigned by Linux when the system boots.
It is legal to change pci-e bus numbers "on the fly" but doing so requires
a
config write cycle to the pci-e device, because the pci-e spec states that
the device must register a new bus number if a config write cycle is
issues
with the new bus number.
When we boot the Freescale machine with uBoot 1.3.0 and kernel 2.6.23, the
bus number under uBoot gets assigned to 1, and the bus number under Linux
gets assigned to 4. Between the change of bus numbers we do not see a
config write go to the LSI device with the new bus number, and therefore
it
continues to respond on bus 1 and ignore config reads to bus 4.
We temporarily fixed the issue by defining the CONFIG_PCI_NOSCAN flag
under
uBoot, which causes the LSI device not to get assigned a bus number at
uBoot, and therefore when Linux begins doing config reads at bus 4 to the
LSI device registers the bus number and responds correctly.
We will do a bit more investigation to see if this has already been fixed
in
a newer kernel, but for now not scanning at uBoot fixes the issue.
It's a bit of a mystery why the LSI devices behave differently from any
other pci-e device we put in the system, but they seem to be adhering to
the
letter of the specification.
Vince Asbridge
------- original post -------
All,
I'm new to this mailing list, but have not had any luck finding
information
on this issue.
Please be kind if I break the forum rules on my first post.
We recently tried to upgrade our Freescale CDS 8548 look-alike module
(code
name ATCA1000) from the 2.6.11 based BSP to the 2.6.23 based BSP.
The upgrade went fairly smoothly, until we tried using SOME pci-e devices
(some work fine, some don't show up to lspci).
LSI pci-e controllers no longer show up at all!
We see the ixgbe (intel 10G), SiliconImage SATA controller but do not see
LSI devices (Specifically 1068 SAS, FC949-E fibrechannel).
We're guessing it's a resource issue behind the bridge, because the LSI
devices try to allocate 1 - 3M behind the bridge, but we can't find the
bug,
or where we would debug such an issue.
The devices seem to "train" correctly, because we have an LED on the pci-e
switch (PLX 8 port pci-e switch), and it's ON indicating pci-e link
between
the bridge and the 1068 device).
We're totally at a loss as to why this always worked on the 2.6.11 kernel
but doesn't work on 2.6.23.
Using lspci, the LSI adapters do not show up in the list at all, as though
they are not plugged into the system.
Is there something that needs to be done with respect to PCI-E devices
that
is new in the 2.6.23 based BSP that did not need to be done in the 2.6.11
based kit? For example, are pci resources allocated by a different piece
of
code, that may have some issue allocating resources for the LSI adapters?
I currently do not have access to a pci-e analyzer.
Thanks for any help,
Vince Asbridge
_______________________________________________
Linuxppc-embedded mailing list
Linuxppc-embedded@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-embedded
_______________________________________________________________________________________________________________________
Der Inhalt dieser E-Mail ist für den Absender rechtlich nicht verbindlich.
Informieren Sie uns bitte, wenn Sie diese E-Mail fälschlicherweise erhalten haben (Fax: +49-69-5805-1399). Bitte löschen Sie in diesem Fall die Nachricht. Jede Form der weiteren Benutzung ist untersagt.
The content of this e-mail is not legally binding upon the sender.
If this e-mail was transmitted to you by error, then please inform us accordingly (Fax: +49-69-5805-1399). In such case you are requested to erase the message. Any use of such e-mail message is strictly prohibited.
[-- Attachment #1.2: Type: text/html, Size: 7925 bytes --]
[-- Attachment #2: winmail.dat --]
[-- Type: application/octet-stream, Size: 3002 bytes --]
^ permalink raw reply
* Re: [RFC v3 PATCH 4/4] Relocation support
From: Mohan Kumar M @ 2008-07-21 9:11 UTC (permalink / raw)
To: Segher Boessenkool; +Cc: ppcdev, paulus, miltonm
In-Reply-To: <5bcb241a0597d5d23724c653e9c9b4eb@kernel.crashing.org>
Segher Boessenkool wrote:
>> This patch changes all LOAD_REG_ADDR macro calls to LOAD_REG_IMMEDIATE
>> to make sure that we load the correct address.
>
> Did you figure out _why_ LOAD_REG_ADDR doesn't work? Using
> LOAD_REG_IMMEDIATE is actually a step back, it makes the kernel
> binary non-PIC. And LOAD_REG_ADDR _should_ work just fine with
> your scheme.
>
Hi Segher,
I was going through the output generated by objdump -D vmlinux and
readelf -h vmlinux.
<Snip objdump of vmlinux>
Disassembly of section .got:
c000000000805010 <__toc_start>:
c000000000805010: c0 00 00 00 lfs f0,0(0)
c000000000805014: 00 80 d0 10 .long 0x80d010
c000000000805018: c0 00 00 00 lfs f0,0(0)
c00000000080501c: 00 00 83 58 .long 0x8358
c000000000805020: c0 00 00 00 lfs f0,0(0)
c000000000805024: 00 85 1f e8 .long 0x851fe8
c000000000805028: c0 00 00 00 lfs f0,0(0)
c00000000080502c: 00 00 8d 84 .long 0x8d84
c000000000805030: c0 00 00 00 lfs f0,0(0)
c000000000805034: 00 85 03 38 .long 0x850338
c000000000805038: c0 00 00 00 lfs f0,0(0)
c00000000080503c: 00 85 28 b8 .long 0x8528b8
c000000000805040: c0 00 00 00 lfs f0,0(0)
c000000000805044: 00 85 28 b0 .long 0x8528b0
c000000000805048: c0 00 00 00 lfs f0,0(0)
c00000000080504c: 00 6d ef 60 .long 0x6def60
All of the variables references through @got translated into relocation
type R_PPC64_GOT16_DS entries. All these entries correspond to one of
the above entries in the .got section. But none of the entries in .got
section are relocated.
For example the instruction with relocation type R_PPC64_GOT16_DS,
c00000000000830c: e8 62 80 10 ld r3,-32752(r2)
refers to current_set variable. r2 will be pointing to
0xc00000000280d010 (relocated __toc_start + 0x8000). So the instruction
loads r3 with the content 0xc000000000851fe8 at location
0xc000000002805020, but which is not a relocated entry (0xc000000000851fe8)
But when there is a relocation type of R_PPC64_ADDR16_HI, like
c000000000008110: 64 84 00 00 oris r4,r4,0
we could easily get more info about this relocation from readelf like:
c000000000008112 000100000005 R_PPC64_ADDR16_HI c000000000000000 .text
+ 8124
So from above output we can identify that instruction at address
c000000000008112 needs to be patched with the relocation delta.
Now I have two options left:
1. Check for R_PPC64_GOT16_DS entries and check whether the contents
addressed by r2+offset is relocated or not and apply relocation if its not.
2. Change all LOAD_REG_ADDR macros to LOAD_REG_IMMEDIATE. This I have
already done.
Regards,
Mohan.
^ permalink raw reply
* Re: [PATCH v3] elf loader support for auxvec base platform string
From: Benjamin Herrenschmidt @ 2008-07-21 9:33 UTC (permalink / raw)
To: Andrew Morton
Cc: John Reiser, linux-kernel, linuxppc-dev, Nathan Lynch, torvalds,
roland
In-Reply-To: <20080720204008.8927460c.akpm@linux-foundation.org>
> > Andrew, we have one other patch (the powerpc bits) on top of that one.
> > Do you want to carry both in -mm on top of John's patch ? We would like
> > that in .27 though, I don't know what your merge plans are for John's
> > patch.
> >
>
> How about I send John's patch Linuswards right now?
No objection.
Cheers,
Ben.
^ permalink raw reply
* Re: [3/5] replace CONFIG_POWER4 by CONFIG_PPC64
From: Arnd Bergmann @ 2008-07-21 9:40 UTC (permalink / raw)
To: linuxppc-dev
In-Reply-To: <200807210845.20778.marvin24@gmx.de>
On Monday 21 July 2008, Marvin wrote:
> diff --git a/arch/powerpc/mm/ppc_mmu_32.c b/arch/powerpc/mm/ppc_mmu_32.c
> index c53145f..c3509c8 100644
> --- a/arch/powerpc/mm/ppc_mmu_32.c
> +++ b/arch/powerpc/mm/ppc_mmu_32.c
> @@ -74,7 +74,7 @@ unsigned long p_mapped_by_bats(phys_addr_t pa)
> =A0
> =A0unsigned long __init mmu_mapin_ram(void)
> =A0{
> -#ifdef CONFIG_POWER4
> +#ifdef CONFIG_PPC64
> =A0=A0=A0=A0=A0=A0=A0=A0return 0;
> =A0#else
> =A0=A0=A0=A0=A0=A0=A0=A0unsigned long tot, bl, done;
ppc_mmu_32 is 32-bit only, so you can kill this #ifdef.
> diff --git a/include/asm-powerpc/cputable.h b/include/asm-powerpc/cputabl=
e.h
> index 0ef9abc..97fdbaf 100644
> --- a/include/asm-powerpc/cputable.h
> +++ b/include/asm-powerpc/cputable.h
> @@ -257,7 +257,7 @@ extern void do_feature_fixups(unsigned long value, vo=
id=20
> *fixup_start,
> #endif
> =20
> #define CLASSIC_PPC (!defined(CONFIG_8xx) && !defined(CONFIG_4xx) && \
> - !defined(CONFIG_POWER4) && !defined(CONFIG_BOOKE))
> + !defined(CONFIG_PPC64) && !defined(CONFIG_BOOKE))
> =20
This would be more logical in the opposite way:
#define CLASSIC_PPC (defined(CONFIG_PPC32) && !defined(CONFIG_8xx)
&& !defined(CONFIG_4xx) && !defined(CONFIG_BOOKE))
Arnd <><
^ permalink raw reply
* Re: [4/5] replace CONFIG_POWER4_ONLY by new tuning mechanism
From: Arnd Bergmann @ 2008-07-21 9:52 UTC (permalink / raw)
To: linuxppc-dev
In-Reply-To: <200807210857.03775.marvin24@gmx.de>
On Monday 21 July 2008, Marvin wrote:
> --- a/arch/powerpc/platforms/Kconfig.cputype
> +++ b/arch/powerpc/platforms/Kconfig.cputype
> @@ -115,13 +115,30 @@ config OPT_EXCLUSIVE
> =A0=A0=A0=A0=A0=A0=A0=A0 =A0
> =A0=A0=A0=A0=A0=A0=A0=A0 =A0If you are unsure, select no.
> =A0
> -config BATS64
> +config PPC64_GEN
> =A0=A0=A0=A0=A0=A0=A0=A0depends on PPC64
> -=A0=A0=A0=A0=A0=A0=A0def_bool y if !POWER4_ONLY
> +=A0=A0=A0=A0=A0=A0=A0int
> +=A0=A0=A0=A0=A0=A0=A0default "1" if !OPT_EXCLUSIVE
> +=A0=A0=A0=A0=A0=A0=A0default "2" if TUNE_RS64
> +=A0=A0=A0=A0=A0=A0=A0default "3" if TUNE_POWER3
> +=A0=A0=A0=A0=A0=A0=A0default "4" if TUNE_POWER4 || TUNE_CELL || TUNE_970
> +=A0=A0=A0=A0=A0=A0=A0default "5" if TUNE_POWER5
> +=A0=A0=A0=A0=A0=A0=A0default "6" if TUNE_POWER6
Unfortunately, the world is not this easy, e.g. POWER5 doesn't have
all the features that Cell and 970 have (or vice versa), and PA6T
doesn't fit in here either.
If you want to model this correctly, you need to have each CPU
as a separate option, and then deduce the feature set from that,
like:
menuconfig "CPU selection"
config MIN_POWER3
bool "Power 3 support"
config MIN_POWER4
bool "Power 4 support"
config MIN_CELL
bool "Cell Broadband Engine support"
and so on. All this has nothing to do with the tuning option,
except that you may want to make sure a CPU is enabled if you
want to be able to tune for it.
> @@ -185,7 +202,7 @@ config PHYS_64BIT
> =A0
> =A0config ALTIVEC
> =A0=A0=A0=A0=A0=A0=A0=A0bool "AltiVec Support"
> -=A0=A0=A0=A0=A0=A0=A0depends on CLASSIC32 || POWER4
> +=A0=A0=A0=A0=A0=A0=A0depends on CLASSIC32 || PPC64
> =A0=A0=A0=A0=A0=A0=A0=A0---help---
> =A0=A0=A0=A0=A0=A0=A0=A0 =A0This option enables kernel support for the Al=
tivec extensions to the
> =A0=A0=A0=A0=A0=A0=A0=A0 =A0PowerPC processor. The kernel currently suppo=
rts saving and restoring
If you know exactly what CPUs are supported, you can do this
automatically: Altivec works only on G4 (mpc74xx and mpc86xx),
G5 (970), Cell, Power6 and PA6T.
> @@ -201,7 +218,7 @@ config ALTIVEC
> =A0
> =A0config VSX
> =A0=A0=A0=A0=A0=A0=A0=A0bool "VSX Support"
> -=A0=A0=A0=A0=A0=A0=A0depends on POWER4 && ALTIVEC && PPC_FPU
> +=A0=A0=A0=A0=A0=A0=A0depends on PPC64 && ALTIVEC && PPC_FPU
> =A0=A0=A0=A0=A0=A0=A0=A0---help---
> =A0
> =A0=A0=A0=A0=A0=A0=A0=A0 =A0This option enables kernel support for the Ve=
ctor Scaler extensions
Similarly, VSX is available only on Power6.
Arnd <><
^ permalink raw reply
* Re: [5/5] include tuning options into Makefile
From: Arnd Bergmann @ 2008-07-21 9:55 UTC (permalink / raw)
To: linuxppc-dev
In-Reply-To: <200807210900.58839.marvin24@gmx.de>
On Monday 21 July 2008, Marvin wrote:
> +# optimize for specific cpu
> +ifeq ($(CONFIG_TUNE_RS64),y)
> + =A0 =A0KBUILD_CFLAGS +=3D $(call cc-option,-mcpu=3Drs64)
> +else ifeq ($(CONFIG_TUNE_POWER3),y)
> + =A0 =A0KBUILD_CFLAGS +=3D $(call cc-option,-mcpu=3Dpower3)
> +else ifeq ($(CONFIG_TUNE_POWER4),y)
> + =A0 =A0KBUILD_CFLAGS +=3D $(call cc-option,-mcpu=3D$(P4CPU))
> +else ifeq ($(CONFIG_TUNE_CELL),y)
> + =A0 =A0KBUILD_CFLAGS +=3D $(call cc-option,-mcpu=3Dcell,-mtune=3Dcell)
> +else ifeq ($(CONFIG_TUNE_POWER5),y)
> + =A0 =A0KBUILD_CFLAGS +=3D $(call cc-option,-mcpu=3Dpower5,-mtune=3Dpowe=
r5)
> +else ifeq ($(CONFIG_TUNE_POWER6),y)
> + =A0 =A0KBUILD_CFLAGS +=3D $(call cc-option,-mcpu=3Dpower6,-mtune=3Dpowe=
r6)
> =A0endif
> -else
> -LDFLAGS_MODULE=A0+=3D arch/powerpc/lib/crtsavres.o
I think it would be easier to express this logic in Kconfig than in
Makefile.
> +
> +ifneq ($(CONFIG_OPT_EXCLUSIVE),y)
> + =A0 =A0KBUILD_CFLAGS :=3D $(subst mcpu,mtune,$(KBUILD_CFLAGS))
> =A0endif
> =A0
This still doesn't allow the most interesting case where you want to
optimize for a modern CPU but still allow older ones, e.g.
"-mcpu=3Dpower4 -mtune=3Dpower6".
Arnd <><
^ permalink raw reply
* Re: [PATCH][RT][PPC64] Fix preempt unsafe paths accessing per_cpu variables
From: Chirag Jog @ 2008-07-21 10:23 UTC (permalink / raw)
To: Benjamin Herrenschmidt
Cc: linux-rt-users, Josh Triplett, Steven Rostedt, linuxppc-dev,
Nivedita Singhvi, Timothy R. Chavez, Thomas Gleixner, paulmck,
linux.kernel
In-Reply-To: <1216418730.7740.451.camel@pasglop>
Hi Benjamin
* Benjamin Herrenschmidt <benh@kernel.crashing.org> [2008-07-19 08:05:30]:
>
> > With the original patch, the pending batch does get flushed
> > in a non-preemptable region.
> > I am resending the original with just adding the necesary comments.
>
> Your comment isn't what I meant. What I meant is that if the process
> is context switched while walking the page tables, the low level powerpc
> context switch code should also perform a ???__flush_tlb_pending.
Sorry, I misunderstood.
The powerpc context switch code does perform a __flush_tlb_pending.
Here is the patch
http://marc.info/?l=linux-kernel&m=119752629222720&w=2
> BTW. Is the pte_lock also not a real spinlock anymore ? That may break
> other assumptions the powerpc mm code is doing.
pte_lock is a not a real spinlock anymore.
> This -rt stuff is just too scary, it changes some fundamental semantics
> of the spinlocks. yuck.
>
> Ben.
>
>
^ permalink raw reply
* [PATCH 0/2] IB/ehca: Two minor circumventions
From: Joachim Fenkes @ 2008-07-21 11:13 UTC (permalink / raw)
To: LinuxPPC-Dev, LKML, OF-General, Roland Dreier, OF-EWG
Cc: Stefan Roscher, Alexander Schmidt, Christoph Raisch
[1/2] fixes spurious PATH_MIG events with certain FW versions
[2/2] inserts a default value for Local CA ACK Delay
Please review these patches and queue them for inclusion into the kernel if
you think they're okay.
Thanks!
Joachim
^ permalink raw reply
* [PATCH 1/2] IB/ehca: Filter PATH_MIG events if QP was never armed
From: Joachim Fenkes @ 2008-07-21 11:15 UTC (permalink / raw)
To: LinuxPPC-Dev, LKML, OF-General, Roland Dreier, OF-EWG
Cc: Stefan Roscher, Alexander Schmidt, Christoph Raisch
In-Reply-To: <200807211313.23648.fenkes@de.ibm.com>
Certain firmware versions sometimes cause spurious PATH_MIG events to occur
during QP creation. Filter these events by making sure PATH_MIG events are
only handed down when they actually make sense (i.e. when the QP has been
armed at least once).
Signed-off-by: Joachim Fenkes <fenkes@de.ibm.com>
---
drivers/infiniband/hw/ehca/ehca_classes.h | 1 +
drivers/infiniband/hw/ehca/ehca_irq.c | 4 ++++
drivers/infiniband/hw/ehca/ehca_qp.c | 2 ++
3 files changed, 7 insertions(+), 0 deletions(-)
diff --git a/drivers/infiniband/hw/ehca/ehca_classes.h b/drivers/infiniband/hw/ehca/ehca_classes.h
index 1e9e99a..0b0618e 100644
--- a/drivers/infiniband/hw/ehca/ehca_classes.h
+++ b/drivers/infiniband/hw/ehca/ehca_classes.h
@@ -194,6 +194,7 @@ struct ehca_qp {
u32 packet_count;
atomic_t nr_events; /* events seen */
wait_queue_head_t wait_completion;
+ int mig_armed;
};
#define IS_SRQ(qp) (qp->ext_type == EQPT_SRQ)
diff --git a/drivers/infiniband/hw/ehca/ehca_irq.c b/drivers/infiniband/hw/ehca/ehca_irq.c
index 0792d93..99642a6 100644
--- a/drivers/infiniband/hw/ehca/ehca_irq.c
+++ b/drivers/infiniband/hw/ehca/ehca_irq.c
@@ -178,6 +178,10 @@ static void dispatch_qp_event(struct ehca_shca *shca, struct ehca_qp *qp,
{
struct ib_event event;
+ /* PATH_MIG without the QP ever having been armed is false alarm */
+ if (event_type == IB_EVENT_PATH_MIG && !qp->mig_armed)
+ return;
+
event.device = &shca->ib_device;
event.event = event_type;
diff --git a/drivers/infiniband/hw/ehca/ehca_qp.c b/drivers/infiniband/hw/ehca/ehca_qp.c
index 3f59587..ea13efd 100644
--- a/drivers/infiniband/hw/ehca/ehca_qp.c
+++ b/drivers/infiniband/hw/ehca/ehca_qp.c
@@ -1460,6 +1460,8 @@ static int internal_modify_qp(struct ib_qp *ibqp,
goto modify_qp_exit2;
}
mqpcb->path_migration_state = attr->path_mig_state + 1;
+ if (attr->path_mig_state == IB_MIG_REARM)
+ my_qp->mig_armed = 1;
update_mask |=
EHCA_BMASK_SET(MQPCB_MASK_PATH_MIGRATION_STATE, 1);
}
--
1.5.5
^ permalink raw reply related
* [PATCH 2/2] IB/ehca: Default value for Local CA ACK Delay
From: Joachim Fenkes @ 2008-07-21 11:16 UTC (permalink / raw)
To: LinuxPPC-Dev, LKML, OF-General, Roland Dreier, OF-EWG
Cc: Stefan Roscher, Alexander Schmidt, Christoph Raisch
In-Reply-To: <200807211313.23648.fenkes@de.ibm.com>
Some firmware versions report a Local CA ACK Delay of 0. In that case,
return a more sensible default value of 12 (-> 16 msec) instead.
Signed-off-by: Joachim Fenkes <fenkes@de.ibm.com>
---
drivers/infiniband/hw/ehca/ehca_hca.c | 4 +++-
1 files changed, 3 insertions(+), 1 deletions(-)
diff --git a/drivers/infiniband/hw/ehca/ehca_hca.c b/drivers/infiniband/hw/ehca/ehca_hca.c
index bc3b37d..4628822 100644
--- a/drivers/infiniband/hw/ehca/ehca_hca.c
+++ b/drivers/infiniband/hw/ehca/ehca_hca.c
@@ -114,7 +114,9 @@ int ehca_query_device(struct ib_device *ibdev, struct ib_device_attr *props)
}
props->max_pkeys = 16;
- props->local_ca_ack_delay = min_t(u8, rblock->local_ca_ack_delay, 255);
+ /* Some FW versions say 0 here; insert sensible value in that case */
+ props->local_ca_ack_delay = rblock->local_ca_ack_delay ?
+ min_t(u8, rblock->local_ca_ack_delay, 255) : 12;
props->max_raw_ipv6_qp = limit_uint(rblock->max_raw_ipv6_qp);
props->max_raw_ethy_qp = limit_uint(rblock->max_raw_ethy_qp);
props->max_mcast_grp = limit_uint(rblock->max_mcast_grp);
--
1.5.5
^ permalink raw reply related
* [PATCH] Add more register definitions for the MPC52xx PSC
From: Jon Smirl @ 2008-07-20 15:27 UTC (permalink / raw)
To: linuxppc-dev
Add more register definitions for the MPC52xx PSC
Signed-off-by: Jon Smirl <jonsmirl@gmail.com>
---
include/asm-powerpc/mpc52xx_psc.h | 8 ++++++--
1 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/include/asm-powerpc/mpc52xx_psc.h b/include/asm-powerpc/mpc52xx_psc.h
index 0985dc8..4639598 100644
--- a/include/asm-powerpc/mpc52xx_psc.h
+++ b/include/asm-powerpc/mpc52xx_psc.h
@@ -162,8 +162,12 @@ struct mpc52xx_psc {
u8 reserved5[3];
u8 ctlr; /* PSC + 0x1c */
u8 reserved6[3];
- u16 ccr; /* PSC + 0x20 */
- u8 reserved7[14];
+ /* BitClkDiv field of CCR is byte swapped in
+ * the hardware for mpc5200/b compatibility */
+ u32 ccr; /* PSC + 0x20 */
+ u32 ac97_slots; /* PSC + 0x24 */
+ u32 ac97_cmd; /* PSC + 0x28 */
+ u32 ac97_data; /* PSC + 0x2c */
u8 ivr; /* PSC + 0x30 */
u8 reserved8[3];
u8 ip; /* PSC + 0x34 */
^ permalink raw reply related
* Re: No filesystem could mount root
From: Jens Gehrlein @ 2008-07-21 12:48 UTC (permalink / raw)
To: mahendra varman; +Cc: selvamuthukumar v, linuxppc-embedded
In-Reply-To: <4ac2955e0807190602g4dcf7ddauc07dd8441ef678cc@mail.gmail.com>
Hi,
mahendra varman schrieb:
> setenv bootargs console=ttyS0,57600 root=/dev/nfs
> nfsroot=192.168.0.6:/root/FILESYSTEM/target/target-minimal
> ip=192.168.0.200:192.168.0.6:192.168.0.1:255.255.255.0::eth0
I had a similar problem. Setting the rw flag helped, e.g.
... root=/dev/nfs rw nfsroot ...
^^
Kind regards,
Jens
^ permalink raw reply
* Re: [PATCH] Don't panic when EEH_MAX_FAILS is exceeded
From: Sean MacLennan @ 2008-07-21 15:04 UTC (permalink / raw)
To: Stephen Rothwell; +Cc: linuxppc-dev, Nathan Lynch, Sean MacLennan
In-Reply-To: <20080721140946.ca314d2e.sfr@canb.auug.org.au>
On Mon, 21 Jul 2008 14:09:46 +1000
"Stephen Rothwell" <sfr@canb.auug.org.au> wrote:
> I think you must be thinking of mdelay().
Correct you are! I didn't even know there was an msleep() so I just
mapped it to mdelay() ;)
I'll have to look at msleep() though, there are places we could use it.
Cheers,
Sean
^ permalink raw reply
* Re: [1/5] add tune options to Kconfig.cputypes
From: Olof Johansson @ 2008-07-21 15:26 UTC (permalink / raw)
To: Marvin; +Cc: linuxppc-dev
In-Reply-To: <200807201948.24762.marvin24@gmx.de>
Hi,
On Sun, Jul 20, 2008 at 07:48:24PM +0200, Marvin wrote:
> + RS64 -> POWER3 -> POWER4 -> POWER5 -> POWER6
> + 970/G5
> + CELL BE
> + PA6T
> +
> + If the compiler/binutils combination does not support the exclusive
> + optimization, it will try to tune only or fail.
PA6T implements 2.04 and a few pieces of 2.05, so it sits between
POWER5+ and POWER6 feature-wise.
-Olof
^ permalink raw reply
* Re: radeonfb, dedicate memory to something else
From: Jon Smirl @ 2008-07-20 15:26 UTC (permalink / raw)
To: Matt Sealey; +Cc: ppc-dev
In-Reply-To: <48830D56.2080704@genesi-usa.com>
On 7/20/08, Matt Sealey <matt@genesi-usa.com> wrote:
> Hi guys,
>
> I know this isn't a PPC question, but since some of the RadeonFB developers
> live here I thought best (and it's about a PPC platform).
>
> Is there any way to hack up the RadeonFB driver - or anything related - to
> reserve portions of the memory for a "fake" MTD or so, and still use the
> Radeon as a graphics device? What I am talking about basically is turning
> a 64MB Radeon card into a 32MB Radeon card, or a 128MB one into a 64MB
> card..
Somebody write this long ago. Maybe around 2000. That's all I
remember. I think they made the video memory into a ram disk.
I believe there is more to it, the GART window may be smaller than the
total RAM on the card. You need to use the GART to map in the
appropriate pieces.
> I think this can be done by hacking a PCI fixup perhaps, for Efika only
> in my case, whereby the memory ranges are fiddled.
>
> Perhaps, a better solution is to use some kind of in-kernel subsystem to
> "allocate" and return a 32MB segment of PCI memory (and put it in an
> named rheap) but I assume other drivers can and will simply walk all
> over it?
>
> --
> Matt Sealey <matt@genesi-usa.com>
> Genesi, Manager, Developer Relations
> _______________________________________________
> Linuxppc-dev mailing list
> Linuxppc-dev@ozlabs.org
> https://ozlabs.org/mailman/listinfo/linuxppc-dev
>
--
Jon Smirl
jonsmirl@gmail.com
^ permalink raw reply
* Re: [PATCH] powerpc/ep8248e: Fix compile problem if !CONFIG_FS_ENET
From: Scott Wood @ 2008-07-21 16:13 UTC (permalink / raw)
To: Dave Jones, Kumar Gala, linuxppc-dev, akpm, torvalds,
linux-kernel
In-Reply-To: <20080716215745.GA17093@redhat.com>
On Wed, Jul 16, 2008 at 05:57:45PM -0400, Dave Jones wrote:
> On Wed, Jul 16, 2008 at 04:47:23PM -0500, Scott Wood wrote:
> > On Wed, Jul 16, 2008 at 08:39:12AM -0500, Kumar Gala wrote:
> > > If we don't enable FS_ENET we get build issues:
> > >
> > > arch/powerpc/platforms/built-in.o: In function `ep8248e_mdio_probe':
> > > arch/powerpc/platforms/82xx/ep8248e.c:129: undefined reference to `alloc_mdio_bitbang'
> > > arch/powerpc/platforms/82xx/ep8248e.c:143: undefined reference to `mdiobus_register'
> >
> > How is this possible? CONFIG_EP8248E selects CONFIG_MDIO_BITBANG.
>
> If CONFIG_PHYLIB=m however, that doesn't make any difference, because
> vmlinuz is trying to use a symbol which now lives in a module.
Yuck. If FOO selects BAR, and FOO is 'y', then BAR should be 'y', not 'm'.
If BAR depends on other symbols that are 'm', they should be changed to 'y'.
-Scott
^ permalink raw reply
* Re: [PATCH] powerpc/ep8248e: Fix compile problem if !CONFIG_FS_ENET
From: Scott Wood @ 2008-07-21 16:14 UTC (permalink / raw)
To: Kumar Gala; +Cc: Dave Jones, akpm, torvalds, linux-kernel, linuxppc-dev
In-Reply-To: <BB883309-0856-4371-BFC3-68E2F54B5B29@kernel.crashing.org>
On Wed, Jul 16, 2008 at 05:55:17PM -0500, Kumar Gala wrote:
> It looks like the simplest solution at this point is to unconditionally
> select the PHYLIB for this board. We should look at moving the low level
> mdio bitbang ops out so they can be built as a module.
Or exporting the MDIO/MDC pins through the GPIO API.
-Scott
^ permalink raw reply
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox