Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/sparc64/include/cpu.h

    reb79d60 r965dc18  
    6464#endif
    6565
     66typedef struct {
     67        uint32_t mid;                   /**< Processor ID as read from
     68                                             UPA_CONFIG/FIREPLANE_CONFIG. */
     69        ver_reg_t ver;
     70        uint32_t clock_frequency;       /**< Processor frequency in Hz. */
     71        uint64_t next_tick_cmpr;        /**< Next clock interrupt should be
     72                                             generated when the TICK register
     73                                             matches this value. */
     74} cpu_arch_t;
    6675
    67 #if defined (SUN4U)
    68 #include <arch/sun4u/cpu.h>
    69 #elif defined (SUN4V)
    70 #include <arch/sun4v/cpu.h>
     76
     77/**
     78 * Reads the module ID (agent ID/CPUID) of the current CPU.
     79 */
     80static inline uint32_t read_mid(void)
     81{
     82        uint64_t icbus_config = asi_u64_read(ASI_ICBUS_CONFIG, 0);
     83        icbus_config = icbus_config >> ICBUS_CONFIG_MID_SHIFT;
     84#if defined (US)
     85        return icbus_config & 0x1f;
     86#elif defined (US3)
     87        if (((ver_reg_t) ver_read()).impl == IMPL_ULTRASPARCIII_I)
     88                return icbus_config & 0x1f;
     89        else
     90                return icbus_config & 0x3ff;
    7191#endif
    72 
     92}
    7393
    7494#endif 
Note: See TracChangeset for help on using the changeset viewer.