powerpc: Remove support for PowerPC 601
authorChristophe Leroy <christophe.leroy@csgroup.eu>
Tue, 29 Sep 2020 06:48:36 +0000 (06:48 +0000)
committerMichael Ellerman <mpe@ellerman.id.au>
Thu, 8 Oct 2020 10:17:13 +0000 (21:17 +1100)
PowerPC 601 has been retired.

Remove all associated specific code.

CPU_FTRS_PPC601 has CPU_FTR_COHERENT_ICACHE and CPU_FTR_COMMON.

CPU_FTR_COMMON is already present via other CPU_FTRS.
None of the remaining CPU selects CPU_FTR_COHERENT_ICACHE.

So CPU_FTRS_PPC601 can be removed from the possible features,
hence can be removed completely.

Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/60b725d55e21beec3335175c20b77903ff98284f.1601362098.git.christophe.leroy@csgroup.eu
17 files changed:
arch/powerpc/boot/util.S
arch/powerpc/include/asm/cputable.h
arch/powerpc/include/asm/ppc_asm.h
arch/powerpc/include/asm/ptrace.h
arch/powerpc/include/asm/time.h
arch/powerpc/include/asm/timex.h
arch/powerpc/kernel/btext.c
arch/powerpc/kernel/entry_32.S
arch/powerpc/kernel/head_32.S
arch/powerpc/kernel/setup_32.c
arch/powerpc/kernel/traps.c
arch/powerpc/kernel/vdso32/datapage.S
arch/powerpc/kernel/vdso32/vdso32.lds.S
arch/powerpc/mm/book3s32/mmu.c
arch/powerpc/mm/ptdump/bats.c
arch/powerpc/platforms/powermac/setup.c
arch/powerpc/platforms/powermac/smp.c

index f11f0589a669f1ec8bcd5b40efb2797d17dbdbae..d03cdb7606dcfea3b12dd9bb217fedb01fdb6f05 100644 (file)
@@ -18,7 +18,7 @@
 
        .text
 
-/* udelay (on non-601 processors) needs to know the period of the
+/* udelay needs to know the period of the
  * timebase in nanoseconds.  This used to be hardcoded to be 60ns
  * (period of 66MHz/4).  Now a variable is used that is initialized to
  * 60 for backward compatibility, but it can be overridden as necessary
@@ -37,19 +37,6 @@ timebase_period_ns:
  */
        .globl  udelay
 udelay:
-       mfspr   r4,SPRN_PVR
-       srwi    r4,r4,16
-       cmpwi   0,r4,1          /* 601 ? */
-       bne     .Ludelay_not_601
-00:    li      r0,86   /* Instructions / microsecond? */
-       mtctr   r0
-10:    addi    r0,r0,0 /* NOP */
-       bdnz    10b
-       subic.  r3,r3,1
-       bne     00b
-       blr
-
-.Ludelay_not_601:
        mulli   r4,r3,1000      /* nanoseconds */
        /*  Change r4 to be the number of ticks using:
         *      (nanoseconds + (timebase_period_ns - 1 )) / timebase_period_ns
index a1a300c1a20e2fd0fd480b39154c4179dff4dee4..93bc70d4c9a1880d7c7a8f6f172ec7ddafe05e97 100644 (file)
@@ -295,8 +295,6 @@ static inline void cpu_feature_keys_init(void) { }
 #define CPU_FTR_MAYBE_CAN_NAP  0
 #endif
 
-#define CPU_FTRS_PPC601        (CPU_FTR_COMMON | \
-       CPU_FTR_COHERENT_ICACHE)
 #define CPU_FTRS_603   (CPU_FTR_COMMON | CPU_FTR_MAYBE_CAN_DOZE | \
            CPU_FTR_MAYBE_CAN_NAP | CPU_FTR_PPC_LE | CPU_FTR_NOEXECUTE)
 #define CPU_FTRS_604   (CPU_FTR_COMMON | CPU_FTR_PPC_LE)
@@ -512,10 +510,8 @@ static inline void cpu_feature_keys_init(void) { }
 #else
 enum {
        CPU_FTRS_POSSIBLE =
-#ifdef CONFIG_PPC_BOOK3S_601
-           CPU_FTRS_PPC601 |
-#elif defined(CONFIG_PPC_BOOK3S_32)
-           CPU_FTRS_PPC601 | CPU_FTRS_603 | CPU_FTRS_604 | CPU_FTRS_740_NOTAU |
+#ifdef CONFIG_PPC_BOOK3S_32
+           CPU_FTRS_603 | CPU_FTRS_604 | CPU_FTRS_740_NOTAU |
            CPU_FTRS_740 | CPU_FTRS_750 | CPU_FTRS_750FX1 |
            CPU_FTRS_750FX2 | CPU_FTRS_750FX | CPU_FTRS_750GX |
            CPU_FTRS_7400_NOTAU | CPU_FTRS_7400 | CPU_FTRS_7450_20 |
@@ -590,9 +586,7 @@ enum {
 #else
 enum {
        CPU_FTRS_ALWAYS =
-#ifdef CONFIG_PPC_BOOK3S_601
-           CPU_FTRS_PPC601 &
-#elif defined(CONFIG_PPC_BOOK3S_32)
+#ifdef CONFIG_PPC_BOOK3S_32
            CPU_FTRS_603 & CPU_FTRS_604 & CPU_FTRS_740_NOTAU &
            CPU_FTRS_740 & CPU_FTRS_750 & CPU_FTRS_750FX1 &
            CPU_FTRS_750FX2 & CPU_FTRS_750FX & CPU_FTRS_750GX &
index 67a421b81a50b264d50db1e69f227d3ba1e0f526..511786f0e40d5860af2df4df76a59c22a3a7d9ae 100644 (file)
@@ -401,8 +401,7 @@ END_FTR_SECTION_NESTED(CPU_FTR_CELL_TB_BUG, CPU_FTR_CELL_TB_BUG, 96)
 #define MFTBU(dest)                    mfspr dest, SPRN_TBRU
 #endif
 
-/* tlbsync is not implemented on 601 */
-#if !defined(CONFIG_SMP) || defined(CONFIG_PPC_BOOK3S_601)
+#ifndef CONFIG_SMP
 #define TLBSYNC
 #else
 #define TLBSYNC                tlbsync; sync
index 155a197c0aa1011af31b5c231a2835afc243f3fc..e2c778c176a3a6a49577e2854437945d6c8b0f3b 100644 (file)
@@ -243,11 +243,7 @@ static inline void set_trap_norestart(struct pt_regs *regs)
 }
 
 #define arch_has_single_step() (1)
-#ifndef CONFIG_PPC_BOOK3S_601
 #define arch_has_block_step()  (true)
-#else
-#define arch_has_block_step()  (false)
-#endif
 #define ARCH_HAS_USER_SINGLE_STEP_REPORT
 
 /*
index cb326720a8a15a51f7a025d7772c7fa4dd6d1561..ce065589192a9cd734c53ca6c7aaf688736d590d 100644 (file)
@@ -39,7 +39,7 @@ struct div_result {
 };
 
 /* Accessor functions for the timebase (RTC on 601) registers. */
-#define __USE_RTC()    (IS_ENABLED(CONFIG_PPC_BOOK3S_601))
+#define __USE_RTC()    (0)
 
 #ifdef CONFIG_PPC64
 
index 6047402b0a4dbbf0e2f4710eca5eeca4915a9ad2..95988870a57bc07347cb5c1bb78128fbb59c4140 100644 (file)
@@ -17,9 +17,6 @@ typedef unsigned long cycles_t;
 
 static inline cycles_t get_cycles(void)
 {
-       if (IS_ENABLED(CONFIG_PPC_BOOK3S_601))
-               return 0;
-
        return mftb();
 }
 
index 02300edc69893da3716a4352732093406c497935..b609fb39dba8b457d45d230f14531a56f9a793ea 100644 (file)
@@ -95,18 +95,12 @@ void __init btext_prepare_BAT(void)
                boot_text_mapped = 0;
                return;
        }
-       if (PVR_VER(mfspr(SPRN_PVR)) != 1) {
+       {
                /* 603, 604, G3, G4, ... */
                lowbits = addr & ~0xFF000000UL;
                addr &= 0xFF000000UL;
                disp_BAT[0] = vaddr | (BL_16M<<2) | 2;
                disp_BAT[1] = addr | (_PAGE_NO_CACHE | _PAGE_GUARDED | BPP_RW); 
-       } else {
-               /* 601 */
-               lowbits = addr & ~0xFF800000UL;
-               addr &= 0xFF800000UL;
-               disp_BAT[0] = vaddr | (_PAGE_NO_CACHE | PP_RWXX) | 4;
-               disp_BAT[1] = addr | BL_8M | 0x40;
        }
        logicalDisplayBase = (void *) (vaddr + lowbits);
 }
index f25ea188ecd30b97a808382121956d5cb0f21856..8cdc8bcde70389c30806d640f89eb75ab1c67f0f 100644 (file)
@@ -811,19 +811,11 @@ _ASM_NOKPROBE_SYMBOL(fast_exception_return)
 1:     lis     r3,exc_exit_restart_end@ha
        addi    r3,r3,exc_exit_restart_end@l
        cmplw   r12,r3
-#ifdef CONFIG_PPC_BOOK3S_601
-       bge     2b
-#else
        bge     3f
-#endif
        lis     r4,exc_exit_restart@ha
        addi    r4,r4,exc_exit_restart@l
        cmplw   r12,r4
-#ifdef CONFIG_PPC_BOOK3S_601
-       blt     2b
-#else
        blt     3f
-#endif
        lis     r3,fee_restarts@ha
        tophys(r3,r3)
        lwz     r5,fee_restarts@l(r3)
@@ -840,7 +832,6 @@ fee_restarts:
 
 /* aargh, a nonrecoverable interrupt, panic */
 /* aargh, we don't know which trap this is */
-/* but the 601 doesn't implement the RI bit, so assume it's OK */
 3:
        li      r10,-1
        stw     r10,_TRAP(r11)
@@ -1302,19 +1293,11 @@ nonrecoverable:
        lis     r10,exc_exit_restart_end@ha
        addi    r10,r10,exc_exit_restart_end@l
        cmplw   r12,r10
-#ifdef CONFIG_PPC_BOOK3S_601
-       bgelr
-#else
        bge     3f
-#endif
        lis     r11,exc_exit_restart@ha
        addi    r11,r11,exc_exit_restart@l
        cmplw   r12,r11
-#ifdef CONFIG_PPC_BOOK3S_601
-       bltlr
-#else
        blt     3f
-#endif
        lis     r10,ee_restarts@ha
        lwz     r12,ee_restarts@l(r10)
        addi    r12,r12,1
@@ -1322,7 +1305,6 @@ nonrecoverable:
        mr      r12,r11         /* restart at exc_exit_restart */
        blr
 3:     /* OK, we can't recover, kill this process */
-       /* but the 601 doesn't implement the RI bit, so assume it's OK */
        lwz     r3,_TRAP(r1)
        andi.   r0,r3,1
        beq     5f
index 48cde60334a27e919ffceb14f77aedf99ade9b58..b14524d4534cdae7e06006e777cc7d8e9cb6607a 100644 (file)
 
 #include "head_32.h"
 
-/* 601 only have IBAT */
-#ifdef CONFIG_PPC_BOOK3S_601
-#define LOAD_BAT(n, reg, RA, RB)       \
-       li      RA,0;                   \
-       mtspr   SPRN_IBAT##n##U,RA;     \
-       lwz     RA,(n*16)+0(reg);       \
-       lwz     RB,(n*16)+4(reg);       \
-       mtspr   SPRN_IBAT##n##U,RA;     \
-       mtspr   SPRN_IBAT##n##L,RB
-#else
 #define LOAD_BAT(n, reg, RA, RB)       \
        /* see the comment for clear_bats() -- Cort */ \
        li      RA,0;                   \
@@ -57,7 +47,6 @@
        lwz     RB,(n*16)+12(reg);      \
        mtspr   SPRN_DBAT##n##U,RA;     \
        mtspr   SPRN_DBAT##n##L,RB
-#endif
 
        __HEAD
        .stabs  "arch/powerpc/kernel/",N_SO,0,0,0f
@@ -432,7 +421,6 @@ END_FTR_SECTION_IFSET(CPU_FTR_FPU_UNAVAILABLE)
 SystemCall:
        SYSCALL_ENTRY   0xc00
 
-/* Single step - not used on 601 */
        EXCEPTION(0xd00, SingleStep, single_step_exception, EXC_XFER_STD)
        EXCEPTION(0xe00, Trap_0e, unknown_exception, EXC_XFER_STD)
 
@@ -974,8 +962,7 @@ load_up_mmu:
        lwz     r6,_SDR1@l(r6)
        mtspr   SPRN_SDR1,r6
 
-/* Load the BAT registers with the values set up by MMU_init.
-   MMU_init takes care of whether we're on a 601 or not. */
+/* Load the BAT registers with the values set up by MMU_init. */
        lis     r3,BATS@ha
        addi    r3,r3,BATS@l
        tophys(r3,r3)
@@ -1152,7 +1139,6 @@ EXPORT_SYMBOL(switch_mmu_context)
 clear_bats:
        li      r10,0
 
-#ifndef CONFIG_PPC_BOOK3S_601
        mtspr   SPRN_DBAT0U,r10
        mtspr   SPRN_DBAT0L,r10
        mtspr   SPRN_DBAT1U,r10
@@ -1161,7 +1147,6 @@ clear_bats:
        mtspr   SPRN_DBAT2L,r10
        mtspr   SPRN_DBAT3U,r10
        mtspr   SPRN_DBAT3L,r10
-#endif
        mtspr   SPRN_IBAT0U,r10
        mtspr   SPRN_IBAT0L,r10
        mtspr   SPRN_IBAT1U,r10
@@ -1252,26 +1237,9 @@ mmu_off:
        sync
        RFI
 
-/*
- * On 601, we use 3 BATs to map up to 24M of RAM at _PAGE_OFFSET
- * (we keep one for debugging) and on others, we use one 256M BAT.
- */
+/* We use one BAT to map up to 256M of RAM at _PAGE_OFFSET */
 initial_bats:
        lis     r11,PAGE_OFFSET@h
-#ifdef CONFIG_PPC_BOOK3S_601
-       ori     r11,r11,4               /* set up BAT registers for 601 */
-       li      r8,0x7f                 /* valid, block length = 8MB */
-       mtspr   SPRN_IBAT0U,r11         /* N.B. 601 has valid bit in */
-       mtspr   SPRN_IBAT0L,r8          /* lower BAT register */
-       addis   r11,r11,0x800000@h
-       addis   r8,r8,0x800000@h
-       mtspr   SPRN_IBAT1U,r11
-       mtspr   SPRN_IBAT1L,r8
-       addis   r11,r11,0x800000@h
-       addis   r8,r8,0x800000@h
-       mtspr   SPRN_IBAT2U,r11
-       mtspr   SPRN_IBAT2L,r8
-#else
        tophys(r8,r11)
 #ifdef CONFIG_SMP
        ori     r8,r8,0x12              /* R/W access, M=1 */
@@ -1280,11 +1248,10 @@ initial_bats:
 #endif /* CONFIG_SMP */
        ori     r11,r11,BL_256M<<2|0x2  /* set up BAT registers for 604 */
 
-       mtspr   SPRN_DBAT0L,r8          /* N.B. 6xx (not 601) have valid */
+       mtspr   SPRN_DBAT0L,r8          /* N.B. 6xx have valid */
        mtspr   SPRN_DBAT0U,r11         /* bit in upper BAT register */
        mtspr   SPRN_IBAT0L,r8
        mtspr   SPRN_IBAT0U,r11
-#endif
        isync
        blr
 
@@ -1302,13 +1269,8 @@ setup_disp_bat:
        beqlr
        lwz     r11,0(r8)
        lwz     r8,4(r8)
-#ifndef CONFIG_PPC_BOOK3S_601
        mtspr   SPRN_DBAT3L,r8
        mtspr   SPRN_DBAT3U,r11
-#else
-       mtspr   SPRN_IBAT3L,r8
-       mtspr   SPRN_IBAT3U,r11
-#endif
        blr
 #endif /* CONFIG_BOOTX_TEXT */
 
index 1823706ae0768bf8b060de6a3ddd2bee6d075a53..057d6b8e9bb0eae697aca54f1a8ce24ef41270e4 100644 (file)
@@ -223,6 +223,6 @@ __init void initialize_cache_info(void)
        dcache_bsize = cur_cpu_spec->dcache_bsize;
        icache_bsize = cur_cpu_spec->icache_bsize;
        ucache_bsize = 0;
-       if (IS_ENABLED(CONFIG_PPC_BOOK3S_601) || IS_ENABLED(CONFIG_E200))
+       if (IS_ENABLED(CONFIG_E200))
                ucache_bsize = icache_bsize = dcache_bsize;
 }
index d1ebe152f210778bf2e0d7bc5b150e07baf631a0..c5f39f13e96e0cdcd669cd2f4cd280b803ef8671 100644 (file)
@@ -529,9 +529,6 @@ out:
  * Check if the NIP corresponds to the address of a sync
  * instruction for which there is an entry in the exception
  * table.
- * Note that the 601 only takes a machine check on TEA
- * (transfer error ack) signal assertion, and does not
- * set any of the top 16 bits of SRR1.
  *  -- paulus.
  */
 static inline int check_io_access(struct pt_regs *regs)
@@ -796,7 +793,6 @@ int machine_check_generic(struct pt_regs *regs)
        case 0x80000:
                pr_cont("Machine check signal\n");
                break;
-       case 0:         /* for 601 */
        case 0x40000:
        case 0x140000:  /* 7450 MSS error and TEA */
                pr_cont("Transfer error ack signal\n");
index 217bb630f8f99865990a123a1aa36b915bccefb7..1d23e2771dba2b6df3b01ceab9d4b84434230b3f 100644 (file)
@@ -47,7 +47,6 @@ V_FUNCTION_END(__kernel_get_syscall_map)
  *
  * returns the timebase frequency in HZ
  */
-#ifndef CONFIG_PPC_BOOK3S_601
 V_FUNCTION_BEGIN(__kernel_get_tbfreq)
   .cfi_startproc
        mflr    r12
@@ -60,4 +59,3 @@ V_FUNCTION_BEGIN(__kernel_get_tbfreq)
        blr
   .cfi_endproc
 V_FUNCTION_END(__kernel_get_tbfreq)
-#endif
index 5206c2eb2a1de8eb2831b511b8266b8edd34f62a..7eadac74c7f9f8044e568d02621d8d985f365f50 100644 (file)
@@ -144,13 +144,11 @@ VERSION
                __kernel_datapage_offset;
 
                __kernel_get_syscall_map;
-#ifndef CONFIG_PPC_BOOK3S_601
                __kernel_gettimeofday;
                __kernel_clock_gettime;
                __kernel_clock_getres;
                __kernel_time;
                __kernel_get_tbfreq;
-#endif
                __kernel_sync_dicache;
                __kernel_sync_dicache_p5;
                __kernel_sigtramp32;
index d426eaf76bb048e70c99a3487e65339ae33bf473..771d607f1a3dde3eccaaacc1ff247636fd2ba271 100644 (file)
@@ -74,14 +74,7 @@ static int find_free_bat(void)
 {
        int b;
 
-       if (IS_ENABLED(CONFIG_PPC_BOOK3S_601)) {
-               for (b = 0; b < 4; b++) {
-                       struct ppc_bat *bat = BATS[b];
-
-                       if (!(bat[0].batl & 0x40))
-                               return b;
-               }
-       } else {
+       {
                int n = mmu_has_feature(MMU_FTR_USE_HIGH_BATS) ? 8 : 4;
 
                for (b = 0; b < n; b++) {
@@ -97,7 +90,7 @@ static int find_free_bat(void)
 /*
  * This function calculates the size of the larger block usable to map the
  * beginning of an area based on the start address and size of that area:
- * - max block size is 8M on 601 and 256 on other 6xx.
+ * - max block size is 256 on 6xx.
  * - base address must be aligned to the block size. So the maximum block size
  *   is identified by the lowest bit set to 1 in the base address (for instance
  *   if base is 0x16000000, max size is 0x02000000).
@@ -106,7 +99,7 @@ static int find_free_bat(void)
  */
 static unsigned int block_size(unsigned long base, unsigned long top)
 {
-       unsigned int max_size = IS_ENABLED(CONFIG_PPC_BOOK3S_601) ? SZ_8M : SZ_256M;
+       unsigned int max_size = SZ_256M;
        unsigned int base_shift = (ffs(base) - 1) & 31;
        unsigned int block_shift = (fls(top - base) - 1) & 31;
 
@@ -117,7 +110,6 @@ static unsigned int block_size(unsigned long base, unsigned long top)
  * Set up one of the IBAT (block address translation) register pairs.
  * The parameters are not checked; in particular size must be a power
  * of 2 between 128k and 256M.
- * Only for 603+ ...
  */
 static void setibat(int index, unsigned long virt, phys_addr_t phys,
                    unsigned int size, pgprot_t prot)
@@ -214,9 +206,6 @@ void mmu_mark_initmem_nx(void)
        unsigned long border = (unsigned long)__init_begin - PAGE_OFFSET;
        unsigned long size;
 
-       if (IS_ENABLED(CONFIG_PPC_BOOK3S_601))
-               return;
-
        for (i = 0; i < nb - 1 && base < top && top - base > (128 << 10);) {
                size = block_size(base, top);
                setibat(i++, PAGE_OFFSET + base, base, size, PAGE_KERNEL_TEXT);
@@ -253,9 +242,6 @@ void mmu_mark_rodata_ro(void)
        int nb = mmu_has_feature(MMU_FTR_USE_HIGH_BATS) ? 8 : 4;
        int i;
 
-       if (IS_ENABLED(CONFIG_PPC_BOOK3S_601))
-               return;
-
        for (i = 0; i < nb; i++) {
                struct ppc_bat *bat = BATS[i];
 
@@ -294,8 +280,7 @@ void __init setbat(int index, unsigned long virt, phys_addr_t phys,
                flags &= ~_PAGE_COHERENT;
 
        bl = (size >> 17) - 1;
-       if (!IS_ENABLED(CONFIG_PPC_BOOK3S_601)) {
-               /* 603, 604, etc. */
+       {
                /* Do DBAT first */
                wimgxpp = flags & (_PAGE_WRITETHRU | _PAGE_NO_CACHE
                                   | _PAGE_COHERENT | _PAGE_GUARDED);
@@ -312,16 +297,6 @@ void __init setbat(int index, unsigned long virt, phys_addr_t phys,
                        bat[0] = bat[1];
                else
                        bat[0].batu = bat[0].batl = 0;
-       } else {
-               /* 601 cpu */
-               if (bl > BL_8M)
-                       bl = BL_8M;
-               wimgxpp = flags & (_PAGE_WRITETHRU | _PAGE_NO_CACHE
-                                  | _PAGE_COHERENT);
-               wimgxpp |= (flags & _PAGE_RW)?
-                       ((flags & _PAGE_USER)? PP_RWRW: PP_RWXX): PP_RXRX;
-               bat->batu = virt | wimgxpp | 4; /* Ks=0, Ku=1 */
-               bat->batl = phys | bl | 0x40;   /* V=1 */
        }
 
        bat_addrs[index].start = virt;
@@ -474,11 +449,7 @@ void setup_initial_memory_limit(phys_addr_t first_memblock_base,
         */
        BUG_ON(first_memblock_base != 0);
 
-       /* 601 can only access 16MB at the moment */
-       if (IS_ENABLED(CONFIG_PPC_BOOK3S_601))
-               memblock_set_current_limit(min_t(u64, first_memblock_size, 0x01000000));
-       else /* Anything else has 256M mapped */
-               memblock_set_current_limit(min_t(u64, first_memblock_size, 0x10000000));
+       memblock_set_current_limit(min_t(u64, first_memblock_size, SZ_256M));
 }
 
 void __init print_system_hash_info(void)
index e29b338d499f4dc6a71386c4528b716c4dab57aa..c4c628b03cf8715789b2b1ca08956ff8ff8cf2e7 100644 (file)
 
 #include "ptdump.h"
 
-static char *pp_601(int k, int pp)
-{
-       if (pp == 0)
-               return k ? "   " : "rwx";
-       if (pp == 1)
-               return k ? "r x" : "rwx";
-       if (pp == 2)
-               return "rwx";
-       return "r x";
-}
-
-static void bat_show_601(struct seq_file *m, int idx, u32 lower, u32 upper)
-{
-       u32 blpi = upper & 0xfffe0000;
-       u32 k = (upper >> 2) & 3;
-       u32 pp = upper & 3;
-       phys_addr_t pbn = PHYS_BAT_ADDR(lower);
-       u32 bsm = lower & 0x3ff;
-       u32 size = (bsm + 1) << 17;
-
-       seq_printf(m, "%d: ", idx);
-       if (!(lower & 0x40)) {
-               seq_puts(m, "        -\n");
-               return;
-       }
-
-       seq_printf(m, "0x%08x-0x%08x ", blpi, blpi + size - 1);
-#ifdef CONFIG_PHYS_64BIT
-       seq_printf(m, "0x%016llx ", pbn);
-#else
-       seq_printf(m, "0x%08x ", pbn);
-#endif
-       pt_dump_size(m, size);
-
-       seq_printf(m, "Kernel %s User %s", pp_601(k & 2, pp), pp_601(k & 1, pp));
-
-       seq_puts(m, lower & _PAGE_WRITETHRU ? "w " : "  ");
-       seq_puts(m, lower & _PAGE_NO_CACHE ? "i " : "  ");
-       seq_puts(m, lower & _PAGE_COHERENT ? "m " : "  ");
-       seq_puts(m, "\n");
-}
-
-#define BAT_SHOW_601(_m, _n, _l, _u) bat_show_601(_m, _n, mfspr(_l), mfspr(_u))
-
-static int bats_show_601(struct seq_file *m, void *v)
-{
-       seq_puts(m, "---[ Block Address Translation ]---\n");
-
-       BAT_SHOW_601(m, 0, SPRN_IBAT0L, SPRN_IBAT0U);
-       BAT_SHOW_601(m, 1, SPRN_IBAT1L, SPRN_IBAT1U);
-       BAT_SHOW_601(m, 2, SPRN_IBAT2L, SPRN_IBAT2U);
-       BAT_SHOW_601(m, 3, SPRN_IBAT3L, SPRN_IBAT3U);
-
-       return 0;
-}
-
 static void bat_show_603(struct seq_file *m, int idx, u32 lower, u32 upper, bool is_d)
 {
        u32 bepi = upper & 0xfffe0000;
@@ -146,9 +90,6 @@ static int bats_show_603(struct seq_file *m, void *v)
 
 static int bats_open(struct inode *inode, struct file *file)
 {
-       if (IS_ENABLED(CONFIG_PPC_BOOK3S_601))
-               return single_open(file, bats_show_601, NULL);
-
        return single_open(file, bats_show_603, NULL);
 }
 
index f002b0fa69b8bddb3598858c48522d86e3ad2433..2e2cc0c75d87f05404376a8ad6223c702edc47e3 100644 (file)
@@ -284,7 +284,7 @@ static void __init pmac_setup_arch(void)
                                /* 604, G3, G4 etc. */
                                loops_per_jiffy = *fp / HZ;
                        else
-                               /* 601, 603, etc. */
+                               /* 603, etc. */
                                loops_per_jiffy = *fp / (2 * HZ);
                        of_node_put(cpu);
                        break;
index a6fedcfb714f2cc3431de601acde68e76fc767eb..74ebe664b01688851cea4cf0bfb132c635586072 100644 (file)
@@ -270,10 +270,6 @@ static void __init smp_psurge_probe(void)
        int i, ncpus;
        struct device_node *dn;
 
-       /* We don't do SMP on the PPC601 -- paulus */
-       if (PVR_VER(mfspr(SPRN_PVR)) == 1)
-               return;
-
        /*
         * The powersurge cpu board can be used in the generation
         * of powermacs that have a socket for an upgradeable cpu card,