PPC   | KVM_REG_PPC_VPA_DTL   | 128
   PPC   | KVM_REG_PPC_EPCR     | 32
   PPC   | KVM_REG_PPC_EPR      | 32
+  PPC   | KVM_REG_PPC_TCR      | 32
+  PPC   | KVM_REG_PPC_TSR      | 32
+  PPC   | KVM_REG_PPC_OR_TSR   | 32
+  PPC   | KVM_REG_PPC_CLEAR_TSR        | 32
 
 ARM registers are mapped using the lower 32 bits.  The upper 16 of that
 is the register group type, or coprocessor number:
 
 #define KVM_REG_PPC_EPCR       (KVM_REG_PPC | KVM_REG_SIZE_U32 | 0x85)
 #define KVM_REG_PPC_EPR                (KVM_REG_PPC | KVM_REG_SIZE_U32 | 0x86)
 
+/* Timer Status Register OR/CLEAR interface */
+#define KVM_REG_PPC_OR_TSR     (KVM_REG_PPC | KVM_REG_SIZE_U32 | 0x87)
+#define KVM_REG_PPC_CLEAR_TSR  (KVM_REG_PPC | KVM_REG_SIZE_U32 | 0x88)
+#define KVM_REG_PPC_TCR                (KVM_REG_PPC | KVM_REG_SIZE_U32 | 0x89)
+#define KVM_REG_PPC_TSR                (KVM_REG_PPC | KVM_REG_SIZE_U32 | 0x8a)
 #endif /* __LINUX_KVM_POWERPC_H */
 
                r = put_user(vcpu->arch.epcr, (u32 __user *)(long)reg->addr);
                break;
 #endif
+       case KVM_REG_PPC_TCR:
+               r = put_user(vcpu->arch.tcr, (u32 __user *)(long)reg->addr);
+               break;
+       case KVM_REG_PPC_TSR:
+               r = put_user(vcpu->arch.tsr, (u32 __user *)(long)reg->addr);
+               break;
        default:
                break;
        }
                break;
        }
 #endif
+       case KVM_REG_PPC_OR_TSR: {
+               u32 tsr_bits;
+               r = get_user(tsr_bits, (u32 __user *)(long)reg->addr);
+               kvmppc_set_tsr_bits(vcpu, tsr_bits);
+               break;
+       }
+       case KVM_REG_PPC_CLEAR_TSR: {
+               u32 tsr_bits;
+               r = get_user(tsr_bits, (u32 __user *)(long)reg->addr);
+               kvmppc_clr_tsr_bits(vcpu, tsr_bits);
+               break;
+       }
+       case KVM_REG_PPC_TSR: {
+               u32 tsr;
+               r = get_user(tsr, (u32 __user *)(long)reg->addr);
+               kvmppc_set_tsr(vcpu, tsr);
+               break;
+       }
+       case KVM_REG_PPC_TCR: {
+               u32 tcr;
+               r = get_user(tcr, (u32 __user *)(long)reg->addr);
+               kvmppc_set_tcr(vcpu, tcr);
+               break;
+       }
        default:
                break;
        }