~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

Linux Cross Reference
Linux/include/asm-ppc/uninorth.h

Version: ~ [ 2.4.0 ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 /*
  2  * uninorth.h: definitions for using the "UniNorth" host bridge chip
  3  *             from Apple. This chip is used on "Core99" machines
  4  *
  5  */
  6 #ifdef __KERNEL__
  7 
  8 
  9 /*
 10  * Uni-N config space reg. definitions
 11  * 
 12  * (Little endian)
 13  */
 14 
 15 /* Address ranges selection. This one should work with Bandit too */
 16 #define UNI_N_ADDR_SELECT               0x48
 17 #define UNI_N_ADDR_COARSE_MASK          0xffff0000      /* 256Mb regions at *0000000 */
 18 #define UNI_N_ADDR_FINE_MASK            0x0000ffff      /*  16Mb regions at f*000000 */
 19 
 20 /* AGP registers */
 21 #define UNI_N_CFG_GART_BASE             0x8c
 22 #define UNI_N_CFG_AGP_BASE              0x90
 23 #define UNI_N_CFG_GART_CTRL             0x94
 24 #define UNI_N_CFG_INTERNAL_STATUS       0x98
 25 
 26 /* UNI_N_CFG_GART_CTRL bits definitions */
 27 #define UNI_N_CFG_GART_INVAL            0x00000001
 28 #define UNI_N_CFG_GART_ENABLE           0x00000100
 29 #define UNI_N_CFG_GART_2xRESET          0x00010000
 30 
 31 
 32 /* 
 33  * Uni-N memory mapped reg. definitions
 34  * 
 35  * Those registers are Big-Endian !!
 36  *
 37  * Their meaning come from either Darwin and/or from experiments I made with
 38  * the bootrom, I'm not sure about their exact meaning yet
 39  *
 40  */
 41 
 42 /* Version of the UniNorth chip */
 43 #define UNI_N_VERSION                   0x0000          /* Known versions: 3,7 and 8 */
 44  
 45 /* This register is used to enable/disable various parts */
 46 #define UNI_N_CLOCK_CNTL                0x0020
 47 #define UNI_N_CLOCK_CNTL_PCI            0x00000001      /* guess ? */
 48 #define UNI_N_CLOCK_CNTL_GMAC           0x00000002
 49 #define UNI_N_CLOCK_CNTL_FW             0x00000004      /* guess ? */
 50 
 51 /* Power Management control ? (from Darwin) */
 52 #define UNI_N_POWER_MGT                 0x0030
 53 #define UNI_N_POWER_MGT_NORMAL          0x00
 54 #define UNI_N_POWER_MGT_IDLE2           0x01
 55 #define UNI_N_POWER_MGT_SLEEP           0x02
 56 
 57 /* This register is configured by Darwin depending on the UniN
 58  * revision
 59  */
 60 #define UNI_N_ARB_CTRL                  0x0040
 61 #define UNI_N_ARB_CTRL_QACK_DELAY_SHIFT 15
 62 #define UNI_N_ARB_CTRL_QACK_DELAY_MASK  0x0e1f8000
 63 #define UNI_N_ARB_CTRL_QACK_DELAY       0x30
 64 #define UNI_N_ARB_CTRL_QACK_DELAY105    0x00
 65 
 66 /* This one _might_ return the CPU number of the CPU reading it;
 67  * the bootROM decides wether to boot or to sleep/spinloop depending
 68  * on this register beeing 0 or not
 69  */
 70 #define UNI_N_CPU_NUMBER                0x0050
 71 
 72 /* This register appear to be read by the bootROM to decide what
 73  *  to do on a non-recoverable reset (powerup or wakeup)
 74  */
 75 #define UNI_N_HWINIT_STATE              0x0070
 76 #define UNI_N_HWINIT_STATE_SLEEPING     0x01
 77 #define UNI_N_HWINIT_STATE_RUNNING      0x02
 78 /* This last bit appear to be used by the bootROM to know the second
 79  * CPU has started and will enter it's sleep loop with IP=0
 80  */
 81 #define UNI_N_HWINIT_STATE_CPU1_FLAG    0x10000000
 82 
 83 #endif /* __KERNEL__ */
 84 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

This page was automatically generated by the LXR engine.
Visit the LXR main site for more information.