Changeset 965dc18 in mainline for kernel/arch/sparc64/include/cpu.h


Ignore:
Timestamp:
2008-12-05T19:59:03Z (17 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
49093a4
Parents:
0258e67
Message:

Merge sparc branch to trunk.

File:
1 edited

Legend:

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

    r0258e67 r965dc18  
    3636#define KERN_sparc64_CPU_H_
    3737
    38 #include <arch/types.h>
    39 #include <typedefs.h>
    40 #include <arch/register.h>
    41 #include <arch/asm.h>
    42 
    43 #ifdef CONFIG_SMP
    44 #include <arch/mm/cache.h>
    45 #endif
    46 
    4738#define MANUF_FUJITSU           0x04
    4839#define MANUF_ULTRASPARC        0x17    /**< UltraSPARC I, UltraSPARC II */
     
    5344#define IMPL_ULTRASPARCII_I     0x12
    5445#define IMPL_ULTRASPARCII_E     0x13
    55 #define IMPL_ULTRASPARCIII      0x15
     46#define IMPL_ULTRASPARCIII      0x14
     47#define IMPL_ULTRASPARCIII_PLUS 0x15
     48#define IMPL_ULTRASPARCIII_I    0x16
     49#define IMPL_ULTRASPARCIV       0x18
    5650#define IMPL_ULTRASPARCIV_PLUS  0x19
    5751
    5852#define IMPL_SPARC64V           0x5
    5953
     54#ifndef __ASM__
     55
     56#include <arch/types.h>
     57#include <typedefs.h>
     58#include <arch/register.h>
     59#include <arch/regdef.h>
     60#include <arch/asm.h>
     61
     62#ifdef CONFIG_SMP
     63#include <arch/mm/cache.h>
     64#endif
     65
    6066typedef struct {
    6167        uint32_t mid;                   /**< Processor ID as read from
    62                                              UPA_CONFIG. */
     68                                             UPA_CONFIG/FIREPLANE_CONFIG. */
    6369        ver_reg_t ver;
    6470        uint32_t clock_frequency;       /**< Processor frequency in Hz. */
     
    6773                                             matches this value. */
    6874} cpu_arch_t;
    69        
     75
     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;
     91#endif
     92}
     93
     94#endif 
     95
    7096#endif
    7197
Note: See TracChangeset for help on using the changeset viewer.