.balign L1_CACHE_BYTES,0
        .text
  
 -/* Called in normal context to backup CPU 0 state. This
 - * does not include cache settings. This function is also
 - * called for machine sleep. This does not include the MMU
 - * setup, BATs, etc... but rather the "special" registers
 - * like HID0, HID1, HID4, etc...
 - */
 -_GLOBAL(__save_cpu_setup)
 -      /* Some CR fields are volatile, we back it up all */
 -      mfcr    r7
 -
 -      /* Get storage ptr */
 -      LOAD_REG_IMMEDIATE(r5,cpu_state_storage)
  
 -      /* We only deal with 970 for now */
 -      mfspr   r0,SPRN_PVR
 -      srwi    r0,r0,16
 -      cmpwi   r0,0x39
 -      beq     1f
 -      cmpwi   r0,0x3c
 -      beq     1f
 -      cmpwi   r0,0x44
 -      bne     2f
 -
 -1:    /* skip if not running in HV mode */
 +_GLOBAL(__setup_cpu_ppc970)
 +      /* Do nothing if not running in HV mode */
        mfmsr   r0
        rldicl. r0,r0,4,63
 -      beq     2f
 +      beqlr
 +
 +      mfspr   r0,SPRN_HID0
 +      li      r11,5                   /* clear DOZE and SLEEP */
 +      rldimi  r0,r11,52,8             /* set NAP and DPM */
++      li      r11,0
++      rldimi  r0,r11,32,31            /* clear EN_ATTN */
 +      mtspr   SPRN_HID0,r0
 +      mfspr   r0,SPRN_HID0
 +      mfspr   r0,SPRN_HID0
 +      mfspr   r0,SPRN_HID0
 +      mfspr   r0,SPRN_HID0
 +      mfspr   r0,SPRN_HID0
 +      mfspr   r0,SPRN_HID0
 +      sync
 +      isync
 +
 +      /* Save away cpu state */
 +      LOAD_REG_IMMEDIATE(r5,cpu_state_storage)
  
        /* Save HID0,1,4 and 5 */
        mfspr   r3,SPRN_HID0
 
                                      struct device_node *soc_dev)
  {
        u64 addr;
 -      u32 *addrp;
 +      const u32 *addrp;
        upf_t flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST | UPF_SHARE_IRQ;
+       struct device_node *tsi = of_get_parent(np);
  
        /* We only support ports that have a clock frequency properly
         * encoded in the device-tree.