Ignore:
File:
1 edited

Legend:

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

    rd99c1d2 r965dc18  
    5454#ifndef __ASM__
    5555
     56#include <arch/types.h>
    5657#include <typedefs.h>
    5758#include <arch/register.h>
     
    6364#endif
    6465
     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;
    6575
    66 #if defined (SUN4U)
    67 #include <arch/sun4u/cpu.h>
    68 #elif defined (SUN4V)
    69 #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;
    7091#endif
    71 
     92}
    7293
    7394#endif 
Note: See TracChangeset for help on using the changeset viewer.