Changeset a9ac978 in mainline for kernel/arch/sparc64/include


Ignore:
Timestamp:
2006-09-27T20:11:34Z (19 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
00b38a3
Parents:
86b31ba9
Message:

SMP stuff for sparc64.
Almost complete except for IPIs.
The absence of IPI support deadlocks
the kernel when more CPUs are configured.

Location:
kernel/arch/sparc64/include
Files:
4 edited

Legend:

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

    r86b31ba9 ra9ac978  
    9797{
    9898        uint64_t v = 1;
     99        volatile uintptr_t x = (uint64_t) &val->count;
    99100
    100         __asm__ volatile ("casx %0, %2, %1\n" : "+m" (*val), "+r" (v) : "r" (0));
     101        __asm__ volatile ("casx %0, %2, %1\n" : "+m" (*((uint64_t *) x)), "+r" (v) : "r" (0));
    101102
    102103        return v;
     
    107108        uint64_t tmp1 = 1;
    108109        uint64_t tmp2;
     110
     111        volatile uintptr_t x = (uint64_t) &val->count;
    109112
    110113        __asm__ volatile (
     
    120123                "nop\n"
    121124        "2:\n"
    122                 : "+m" (*val), "+r" (tmp1), "+r" (tmp2) : "r" (0)
     125                : "+m" (*((uint64_t *) x)), "+r" (tmp1), "+r" (tmp2) : "r" (0)
    123126        );
    124127       
  • kernel/arch/sparc64/include/cpu.h

    r86b31ba9 ra9ac978  
    3636#define KERN_sparc64_CPU_H_
    3737
     38#include <arch/types.h>
    3839#include <arch/register.h>
    3940
     
    5253
    5354struct cpu_arch {
     55        uint32_t mid;                   /**< Processor ID as read from UPA_CONFIG. */
    5456        ver_reg_t ver;
    55         uint32_t clock_frequency;
     57        uint32_t clock_frequency;       /**< Processor frequency in MHz. */
    5658};
    5759       
  • kernel/arch/sparc64/include/interrupt.h

    r86b31ba9 ra9ac978  
    4141#include <arch/regdef.h>
    4242
    43 #define IRQ_COUNT       1       /* TODO */
     43#define IRQ_COUNT       1                       /* TODO */
    4444
    4545#define IVT_ITEMS       15
    4646#define IVT_FIRST       1
     47
     48#define VECTOR_TLB_SHOOTDOWN_IPI        0       /* TODO */
    4749
    4850struct istate {
  • kernel/arch/sparc64/include/regdef.h

    r86b31ba9 ra9ac978  
    5656#define WSTATE_OTHER(n)         ((n)<<3)
    5757
     58#define UPA_CONFIG_MID_SHIFT    17
     59#define UPA_CONFIG_MID_MASK     0x1f
     60
    5861#endif
    5962
Note: See TracChangeset for help on using the changeset viewer.