diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2008-05-09 11:06:31 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-05-09 11:06:31 -0400 |
| commit | d9a9a23ff2b00463f25e880d13364938b321ab8a (patch) | |
| tree | e5ddb542d535ea741227265545a885636f8967aa | |
| parent | 9b013c2820c409ff84871e55e407ec2181782773 (diff) | |
| parent | 53962ecf6ebbdb5b15a8b35fbefe34430eb25609 (diff) | |
Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc
* 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc: (23 commits)
[POWERPC] Remove leftover printk in isa-bridge.c
[POWERPC] Remove duplicate #include
[POWERPC] Initialize lockdep earlier
[POWERPC] Document when printk is useable
[POWERPC] Fix bogus paca->_current initialization
[POWERPC] Fix of_i2c include for module compilation
[POWERPC] Make default cputable entries reflect selected CPU family
[POWERPC] spufs: lockdep annotations for spufs_dir_close
[POWERPC] spufs: don't requeue victim contex in find_victim if it's not in spu_run
[POWERPC] 4xx: Fix PCI mem in sequoia DTS
[POWERPC] 4xx: Add endpoint support to 4xx PCIe driver
[POWERPC] 4xx: Fix problem with new TLB storage attibute fields on 440x6 core
[POWERPC] spufs: spu_create should send inotify IM_CREATE event
[POWERPC] spufs: handle faults while the context switch pending flag is set
[POWERPC] spufs: fix concurrent delivery of class 0 & 1 exceptions
[POWERPC] spufs: try to route SPU interrupts to local node
[POWERPC] spufs: set SPU_CONTEXT_SWITCH_PENDING before synchronising SPU irqs
[POWERPC] spufs: don't acquire state_mutex interruptible while performing callback
[POWERPC] spufs: update master runcntl with context lock held
[POWERPC] spufs: fix post-stopped update of MFC_CNTL register
...
22 files changed, 399 insertions, 145 deletions
diff --git a/arch/powerpc/boot/dts/sequoia.dts b/arch/powerpc/boot/dts/sequoia.dts index a1ae4d6ec990..72d67564bdfc 100644 --- a/arch/powerpc/boot/dts/sequoia.dts +++ b/arch/powerpc/boot/dts/sequoia.dts | |||
| @@ -342,9 +342,14 @@ | |||
| 342 | /* Outbound ranges, one memory and one IO, | 342 | /* Outbound ranges, one memory and one IO, |
| 343 | * later cannot be changed. Chip supports a second | 343 | * later cannot be changed. Chip supports a second |
| 344 | * IO range but we don't use it for now | 344 | * IO range but we don't use it for now |
| 345 | * From the 440EPx user manual: | ||
| 346 | * PCI 1 Memory 1 8000 0000 1 BFFF FFFF 1GB | ||
| 347 | * I/O 1 E800 0000 1 E800 FFFF 64KB | ||
| 348 | * I/O 1 E880 0000 1 EBFF FFFF 56MB | ||
| 345 | */ | 349 | */ |
| 346 | ranges = <02000000 0 80000000 1 80000000 0 10000000 | 350 | ranges = <02000000 0 80000000 1 80000000 0 40000000 |
| 347 | 01000000 0 00000000 1 e8000000 0 00100000>; | 351 | 01000000 0 00000000 1 e8000000 0 00010000 |
| 352 | 01000000 0 00000000 1 e8800000 0 03800000>; | ||
| 348 | 353 | ||
| 349 | /* Inbound 2GB range starting at 0 */ | 354 | /* Inbound 2GB range starting at 0 */ |
| 350 | dma-ranges = <42000000 0 0 0 0 0 80000000>; | 355 | dma-ranges = <42000000 0 0 0 0 0 80000000>; |
diff --git a/arch/powerpc/kernel/btext.c b/arch/powerpc/kernel/btext.c index 9f9377745490..d8f0329b1344 100644 --- a/arch/powerpc/kernel/btext.c +++ b/arch/powerpc/kernel/btext.c | |||
| @@ -16,7 +16,6 @@ | |||
| 16 | #include <asm/mmu.h> | 16 | #include <asm/mmu.h> |
| 17 | #include <asm/pgtable.h> | 17 | #include <asm/pgtable.h> |
| 18 | #include <asm/io.h> | 18 | #include <asm/io.h> |
| 19 | #include <asm/prom.h> | ||
| 20 | #include <asm/processor.h> | 19 | #include <asm/processor.h> |
| 21 | #include <asm/udbg.h> | 20 | #include <asm/udbg.h> |
| 22 | 21 | ||
diff --git a/arch/powerpc/kernel/cputable.c b/arch/powerpc/kernel/cputable.c index 36080d4d1922..81738a4b3c3a 100644 --- a/arch/powerpc/kernel/cputable.c +++ b/arch/powerpc/kernel/cputable.c | |||
| @@ -1208,6 +1208,18 @@ static struct cpu_spec __initdata cpu_specs[] = { | |||
| 1208 | .machine_check = machine_check_4xx, | 1208 | .machine_check = machine_check_4xx, |
| 1209 | .platform = "ppc405", | 1209 | .platform = "ppc405", |
| 1210 | }, | 1210 | }, |
| 1211 | { /* default match */ | ||
| 1212 | .pvr_mask = 0x00000000, | ||
| 1213 | .pvr_value = 0x00000000, | ||
| 1214 | .cpu_name = "(generic 40x PPC)", | ||
| 1215 | .cpu_features = CPU_FTRS_40X, | ||
| 1216 | .cpu_user_features = PPC_FEATURE_32 | | ||
| 1217 | PPC_FEATURE_HAS_MMU | PPC_FEATURE_HAS_4xxMAC, | ||
| 1218 | .icache_bsize = 32, | ||
| 1219 | .dcache_bsize = 32, | ||
| 1220 | .machine_check = machine_check_4xx, | ||
| 1221 | .platform = "ppc405", | ||
| 1222 | } | ||
| 1211 | 1223 | ||
| 1212 | #endif /* CONFIG_40x */ | 1224 | #endif /* CONFIG_40x */ |
| 1213 | #ifdef CONFIG_44x | 1225 | #ifdef CONFIG_44x |
| @@ -1421,8 +1433,18 @@ static struct cpu_spec __initdata cpu_specs[] = { | |||
| 1421 | .machine_check = machine_check_440A, | 1433 | .machine_check = machine_check_440A, |
| 1422 | .platform = "ppc440", | 1434 | .platform = "ppc440", |
| 1423 | }, | 1435 | }, |
| 1436 | { /* default match */ | ||
| 1437 | .pvr_mask = 0x00000000, | ||
| 1438 | .pvr_value = 0x00000000, | ||
| 1439 | .cpu_name = "(generic 44x PPC)", | ||
| 1440 | .cpu_features = CPU_FTRS_44X, | ||
| 1441 | .cpu_user_features = COMMON_USER_BOOKE, | ||
| 1442 | .icache_bsize = 32, | ||
| 1443 | .dcache_bsize = 32, | ||
| 1444 | .machine_check = machine_check_4xx, | ||
| 1445 | .platform = "ppc440", | ||
| 1446 | } | ||
| 1424 | #endif /* CONFIG_44x */ | 1447 | #endif /* CONFIG_44x */ |
| 1425 | #ifdef CONFIG_FSL_BOOKE | ||
| 1426 | #ifdef CONFIG_E200 | 1448 | #ifdef CONFIG_E200 |
| 1427 | { /* e200z5 */ | 1449 | { /* e200z5 */ |
| 1428 | .pvr_mask = 0xfff00000, | 1450 | .pvr_mask = 0xfff00000, |
| @@ -1451,7 +1473,19 @@ static struct cpu_spec __initdata cpu_specs[] = { | |||
| 1451 | .machine_check = machine_check_e200, | 1473 | .machine_check = machine_check_e200, |
| 1452 | .platform = "ppc5554", | 1474 | .platform = "ppc5554", |
| 1453 | }, | 1475 | }, |
| 1454 | #elif defined(CONFIG_E500) | 1476 | { /* default match */ |
| 1477 | .pvr_mask = 0x00000000, | ||
| 1478 | .pvr_value = 0x00000000, | ||
| 1479 | .cpu_name = "(generic E200 PPC)", | ||
| 1480 | .cpu_features = CPU_FTRS_E200, | ||
| 1481 | .cpu_user_features = COMMON_USER_BOOKE | | ||
| 1482 | PPC_FEATURE_HAS_EFP_SINGLE | | ||
| 1483 | PPC_FEATURE_UNIFIED_CACHE, | ||
| 1484 | .dcache_bsize = 32, | ||
| 1485 | .machine_check = machine_check_e200, | ||
| 1486 | .platform = "ppc5554", | ||
| 1487 | #endif /* CONFIG_E200 */ | ||
| 1488 | #ifdef CONFIG_E500 | ||
| 1455 | { /* e500 */ | 1489 | { /* e500 */ |
| 1456 | .pvr_mask = 0xffff0000, | 1490 | .pvr_mask = 0xffff0000, |
| 1457 | .pvr_value = 0x80200000, | 1491 | .pvr_value = 0x80200000, |
| @@ -1487,20 +1521,19 @@ static struct cpu_spec __initdata cpu_specs[] = { | |||
| 1487 | .machine_check = machine_check_e500, | 1521 | .machine_check = machine_check_e500, |
| 1488 | .platform = "ppc8548", | 1522 | .platform = "ppc8548", |
| 1489 | }, | 1523 | }, |
| 1490 | #endif | ||
| 1491 | #endif | ||
| 1492 | #if !CLASSIC_PPC | ||
| 1493 | { /* default match */ | 1524 | { /* default match */ |
| 1494 | .pvr_mask = 0x00000000, | 1525 | .pvr_mask = 0x00000000, |
| 1495 | .pvr_value = 0x00000000, | 1526 | .pvr_value = 0x00000000, |
| 1496 | .cpu_name = "(generic PPC)", | 1527 | .cpu_name = "(generic E500 PPC)", |
| 1497 | .cpu_features = CPU_FTRS_GENERIC_32, | 1528 | .cpu_features = CPU_FTRS_E500, |
| 1498 | .cpu_user_features = PPC_FEATURE_32, | 1529 | .cpu_user_features = COMMON_USER_BOOKE | |
| 1530 | PPC_FEATURE_HAS_SPE_COMP | | ||
| 1531 | PPC_FEATURE_HAS_EFP_SINGLE_COMP, | ||
| 1499 | .icache_bsize = 32, | 1532 | .icache_bsize = 32, |
| 1500 | .dcache_bsize = 32, | 1533 | .dcache_bsize = 32, |
| 1534 | .machine_check = machine_check_e500, | ||
| 1501 | .platform = "powerpc", | 1535 | .platform = "powerpc", |
| 1502 | } | 1536 | #endif /* CONFIG_E500 */ |
| 1503 | #endif /* !CLASSIC_PPC */ | ||
| 1504 | #endif /* CONFIG_PPC32 */ | 1537 | #endif /* CONFIG_PPC32 */ |
| 1505 | }; | 1538 | }; |
| 1506 | 1539 | ||
diff --git a/arch/powerpc/kernel/head_44x.S b/arch/powerpc/kernel/head_44x.S index b84ec6a2fc94..c2b9dc4fce5d 100644 --- a/arch/powerpc/kernel/head_44x.S +++ b/arch/powerpc/kernel/head_44x.S | |||
| @@ -653,7 +653,14 @@ finish_tlb_load: | |||
| 653 | rlwimi r10, r11, 0, 26, 26 /* UX = HWEXEC & USER */ | 653 | rlwimi r10, r11, 0, 26, 26 /* UX = HWEXEC & USER */ |
| 654 | 654 | ||
| 655 | rlwimi r12, r10, 0, 26, 31 /* Insert static perms */ | 655 | rlwimi r12, r10, 0, 26, 31 /* Insert static perms */ |
| 656 | rlwinm r12, r12, 0, 20, 15 /* Clear U0-U3 */ | 656 | |
| 657 | /* | ||
