Changeset 6f8a426 in mainline


Ignore:
Timestamp:
2006-02-21T00:04:20Z (19 years ago)
Author:
Martin Decky <martin@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
0fad93a
Parents:
cd92528
Message:

indentation changes
ppc32 fpu context save/restore
ppc32 CPU version
ppc32 memcpy

Files:
1 added
12 edited
1 moved

Legend:

Unmodified
Added
Removed
  • arch/amd64/include/cpuid.h

    rcd92528 r6f8a426  
    2727 */
    2828
    29 #ifndef __CPUID_H__
    30 #define __CPUID_H__
     29#ifndef __amd64_CPUID_H__
     30#define __amd64_CPUID_H__
    3131
    3232#define AMD_CPUID_EXTENDED   0x80000001
  • arch/ia32/include/cpuid.h

    rcd92528 r6f8a426  
    2727 */
    2828
    29 #ifndef __CPUID_H__
    30 #define __CPUID_H__
     29#ifndef __ia32_CPUID_H__
     30#define __ia32_CPUID_H__
    3131
    3232#include <arch/types.h>
  • arch/mips32/include/context_offset.h

    rcd92528 r6f8a426  
    11/* This file is automatically generated by gencontext.c. */
    22/* struct context */
    3 #define OFFSET_SP  0x0
    4 #define OFFSET_PC  0x4
    5 #define OFFSET_S0  0x8
    6 #define OFFSET_S1  0xc
    7 #define OFFSET_S2  0x10
    8 #define OFFSET_S3  0x14
    9 #define OFFSET_S4  0x18
    10 #define OFFSET_S5  0x1c
    11 #define OFFSET_S6  0x20
    12 #define OFFSET_S7  0x24
    13 #define OFFSET_S8  0x28
    14 #define OFFSET_GP  0x2c
     3#define OFFSET_SP      0x0
     4#define OFFSET_PC      0x4
     5#define OFFSET_S0      0x8
     6#define OFFSET_S1      0xc
     7#define OFFSET_S2      0x10
     8#define OFFSET_S3      0x14
     9#define OFFSET_S4      0x18
     10#define OFFSET_S5      0x1c
     11#define OFFSET_S6      0x20
     12#define OFFSET_S7      0x24
     13#define OFFSET_S8      0x28
     14#define OFFSET_GP      0x2c
    1515
    1616
    1717/* struct register_dump */
    18 #define EOFFSET_AT  0x0
    19 #define EOFFSET_V0  0x4
    20 #define EOFFSET_V1  0x8
    21 #define EOFFSET_A0  0xc
    22 #define EOFFSET_A1  0x10
    23 #define EOFFSET_A2  0x14
    24 #define EOFFSET_A3  0x18
    25 #define EOFFSET_T0  0x1c
    26 #define EOFFSET_T1  0x20
    27 #define EOFFSET_T2  0x24
    28 #define EOFFSET_T3  0x28
    29 #define EOFFSET_T4  0x2c
    30 #define EOFFSET_T5  0x30
    31 #define EOFFSET_T6  0x34
    32 #define EOFFSET_T7  0x38
    33 #define EOFFSET_S0  0x3c
    34 #define EOFFSET_S1  0x40
    35 #define EOFFSET_S2  0x44
    36 #define EOFFSET_S3  0x48
    37 #define EOFFSET_S4  0x4c
    38 #define EOFFSET_S5  0x50
    39 #define EOFFSET_S6  0x54
    40 #define EOFFSET_S7  0x58
    41 #define EOFFSET_T8  0x5c
    42 #define EOFFSET_T9  0x60
    43 #define EOFFSET_GP  0x64
    44 #define EOFFSET_SP  0x68
    45 #define EOFFSET_S8  0x6c
    46 #define EOFFSET_RA  0x70
    47 #define EOFFSET_LO  0x74
    48 #define EOFFSET_HI  0x78
    49 #define EOFFSET_STATUS  0x7c
    50 #define EOFFSET_EPC  0x80
    51 #define REGISTER_SPACE  132
     18#define EOFFSET_AT     0x0
     19#define EOFFSET_V0     0x4
     20#define EOFFSET_V1     0x8
     21#define EOFFSET_A0     0xc
     22#define EOFFSET_A1     0x10
     23#define EOFFSET_A2     0x14
     24#define EOFFSET_A3     0x18
     25#define EOFFSET_T0     0x1c
     26#define EOFFSET_T1     0x20
     27#define EOFFSET_T2     0x24
     28#define EOFFSET_T3     0x28
     29#define EOFFSET_T4     0x2c
     30#define EOFFSET_T5     0x30
     31#define EOFFSET_T6     0x34
     32#define EOFFSET_T7     0x38
     33#define EOFFSET_S0     0x3c
     34#define EOFFSET_S1     0x40
     35#define EOFFSET_S2     0x44
     36#define EOFFSET_S3     0x48
     37#define EOFFSET_S4     0x4c
     38#define EOFFSET_S5     0x50
     39#define EOFFSET_S6     0x54
     40#define EOFFSET_S7     0x58
     41#define EOFFSET_T8     0x5c
     42#define EOFFSET_T9     0x60
     43#define EOFFSET_GP     0x64
     44#define EOFFSET_SP     0x68
     45#define EOFFSET_S8     0x6c
     46#define EOFFSET_RA     0x70
     47#define EOFFSET_LO     0x74
     48#define EOFFSET_HI     0x78
     49#define EOFFSET_STATUS 0x7c
     50#define EOFFSET_EPC    0x80
     51#define REGISTER_SPACE 132
  • arch/ppc32/Makefile.inc

    rcd92528 r6f8a426  
    5656        arch/$(ARCH)/src/context.S \
    5757        arch/$(ARCH)/src/debug/panic.s \
    58         arch/$(ARCH)/src/fpu_context.c \
     58        arch/$(ARCH)/src/fpu_context.S \
    5959        arch/$(ARCH)/src/ppc32.c \
    6060        arch/$(ARCH)/src/dummy.s \
  • arch/ppc32/include/context_offset.h

    rcd92528 r6f8a426  
    11/* This file is automatically generated by gencontext.c. */
    22/* struct context */
    3 #define OFFSET_SP   0x0
    4 #define OFFSET_PC   0x4
    5 #define OFFSET_R2   0x8
    6 #define OFFSET_R13  0xc
    7 #define OFFSET_R14  0x10
    8 #define OFFSET_R15  0x14
    9 #define OFFSET_R16  0x18
    10 #define OFFSET_R17  0x1c
    11 #define OFFSET_R18  0x20
    12 #define OFFSET_R19  0x24
    13 #define OFFSET_R20  0x28
    14 #define OFFSET_R21  0x2c
    15 #define OFFSET_R22  0x30
    16 #define OFFSET_R23  0x34
    17 #define OFFSET_R24  0x38
    18 #define OFFSET_R25  0x3c
    19 #define OFFSET_R26  0x40
    20 #define OFFSET_R27  0x44
    21 #define OFFSET_R28  0x48
    22 #define OFFSET_R29  0x4c
    23 #define OFFSET_R30  0x50
    24 #define OFFSET_R31  0x54
    25 #define OFFSET_CR   0x58
     3#define OFFSET_SP    0x0
     4#define OFFSET_PC    0x4
     5#define OFFSET_R2    0x8
     6#define OFFSET_R13   0xc
     7#define OFFSET_R14   0x10
     8#define OFFSET_R15   0x14
     9#define OFFSET_R16   0x18
     10#define OFFSET_R17   0x1c
     11#define OFFSET_R18   0x20
     12#define OFFSET_R19   0x24
     13#define OFFSET_R20   0x28
     14#define OFFSET_R21   0x2c
     15#define OFFSET_R22   0x30
     16#define OFFSET_R23   0x34
     17#define OFFSET_R24   0x38
     18#define OFFSET_R25   0x3c
     19#define OFFSET_R26   0x40
     20#define OFFSET_R27   0x44
     21#define OFFSET_R28   0x48
     22#define OFFSET_R29   0x4c
     23#define OFFSET_R30   0x50
     24#define OFFSET_R31   0x54
     25#define OFFSET_CR    0x58
     26
     27#define OFFSET_FR14  0x0
     28#define OFFSET_FR15  0x8
     29#define OFFSET_FR16  0x10
     30#define OFFSET_FR17  0x18
     31#define OFFSET_FR18  0x20
     32#define OFFSET_FR19  0x28
     33#define OFFSET_FR20  0x30
     34#define OFFSET_FR21  0x38
     35#define OFFSET_FR22  0x40
     36#define OFFSET_FR23  0x48
     37#define OFFSET_FR24  0x50
     38#define OFFSET_FR25  0x58
     39#define OFFSET_FR26  0x60
     40#define OFFSET_FR27  0x68
     41#define OFFSET_FR28  0x70
     42#define OFFSET_FR29  0x78
     43#define OFFSET_FR30  0x80
     44#define OFFSET_FR31  0x88
     45#define OFFSET_FPSCR 0x90
  • arch/ppc32/include/cpu.h

    rcd92528 r6f8a426  
    3333
    3434struct cpu_arch {
     35        int version;
     36        int revision;
    3537};
    3638       
  • arch/ppc32/include/cpuid.h

    rcd92528 r6f8a426  
    11/*
    2  * Copyright (C) 2005 Jakub Vana
     2 * Copyright (C) 2006 Martin Decky
    33 * All rights reserved.
    44 *
     
    2525 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
    2626 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    27  *
    2827 */
    2928
    30 #include <fpu_context.h>
     29#ifndef __ppc32_CPUID_H__
     30#define __ppc32_CPUID_H__
    3131
    32 void fpu_context_save(fpu_context_t *fctx)
     32#include <arch/types.h>
     33
     34struct cpu_info {
     35        __u16 version;
     36        __u16 revision;
     37} __attribute__ ((packed));
     38
     39static inline void cpu_version(struct cpu_info *info)
    3340{
     41        __asm__ volatile (
     42                "mfspr %0, 287\n"
     43                : "=r" (*info)
     44        );
    3445}
    3546
    36 
    37 void fpu_context_restore(fpu_context_t *fctx)
    38 {
    39 }
     47#endif
  • arch/ppc32/include/fpu_context.h

    rcd92528 r6f8a426  
    3030#define __ppc32_FPU_CONTEXT_H__
    3131
    32 #include <arch/types.h>
     32#ifndef __ppc32_TYPES_H__
     33# include <arch/types.h>
     34#endif
    3335
    3436struct fpu_context {
    35 };
     37        __u64 fr14;
     38        __u64 fr15;
     39        __u64 fr16;
     40        __u64 fr17;
     41        __u64 fr18;
     42        __u64 fr19;
     43        __u64 fr20;
     44        __u64 fr21;
     45        __u64 fr22;
     46        __u64 fr23;
     47        __u64 fr24;
     48        __u64 fr25;
     49        __u64 fr26;
     50        __u64 fr27;
     51        __u64 fr28;
     52        __u64 fr29;
     53        __u64 fr30;
     54        __u64 fr31;
     55        __u32 fpscr;
     56} __attribute__ ((packed));
    3657
    3758#endif
  • arch/ppc32/src/asm.S

    rcd92528 r6f8a426  
    8686
    8787memcpy:
    88         # TODO
     88        srwi. r7, r5, 3
     89        addi r6, r3, -4
     90        addi r4, r4, -4
     91        beq     2f
     92       
     93        andi. r0, r6, 3
     94        mtctr r7
     95        bne 5f
     96       
     97        1:
     98       
     99        lwz r7, 4(r4)
     100        lwzu r8, 8(r4)
     101        stw r7, 4(r6)
     102        stwu r8, 8(r6)
     103        bdnz 1b
     104       
     105        andi. r5, r5, 7
     106       
     107        2:
     108       
     109        cmplwi 0, r5, 4
     110        blt 3f
     111       
     112        lwzu r0, 4(r4)
     113        addi r5, r5, -4
     114        stwu r0, 4(r6)
     115       
     116        3:
     117       
     118        cmpwi 0, r5, 0
     119        beqlr
     120        mtctr r5
     121        addi r4, r4, 3
     122        addi r6, r6, 3
     123       
     124        4:
     125       
     126        lbzu r0, 1(r4)
     127        stbu r0, 1(r6)
     128        bdnz 4b
    89129        blr
     130       
     131        5:
     132       
     133        subfic r0, r0, 4
     134        mtctr r0
     135       
     136        6:
     137       
     138        lbz r7, 4(r4)
     139        addi r4, r4, 1
     140        stb r7, 4(r6)
     141        addi r6, r6, 1
     142        bdnz 6b
     143        subf r5, r0, r5
     144        rlwinm. r7, r5, 32-3, 3, 31
     145        beq 2b
     146        mtctr r7
     147        b 1b
  • arch/ppc32/src/cpu/cpu.c

    rcd92528 r6f8a426  
    2828
    2929#include <arch/cpu.h>
     30#include <arch/cpuid.h>
    3031#include <cpu.h>
    3132
     
    4142void cpu_identify(void)
    4243{
     44        cpu_info_t info;
     45       
     46        cpu_version(&info);
     47        CPU->arch.version = info.version;
     48        CPU->arch.revision = info.revision;
    4349}
    4450
    4551void cpu_print_report(cpu_t *m)
    4652{
    47         printf("cpu%d:\n", m->id);
     53        printf("cpu%d: version=%d, revision=%d\n", m->id, m->arch.version, m->arch.revision);
    4854}
  • arch/sparc64/include/context_offset.h

    rcd92528 r6f8a426  
    11/* This file is automatically generated by gencontext.c. */
    22/* struct context */
    3 #define OFFSET_SP  0x0
    4 #define OFFSET_PC  0x8
    5 #define OFFSET_I0  0x10
    6 #define OFFSET_I1  0x18
    7 #define OFFSET_I2  0x20
    8 #define OFFSET_I3  0x28
    9 #define OFFSET_I4  0x30
    10 #define OFFSET_I5  0x38
    11 #define OFFSET_FP  0x40
    12 #define OFFSET_I7  0x48
    13 #define OFFSET_L0  0x50
    14 #define OFFSET_L1  0x58
    15 #define OFFSET_L2  0x60
    16 #define OFFSET_L3  0x68
    17 #define OFFSET_L4  0x70
    18 #define OFFSET_L5  0x78
    19 #define OFFSET_L6  0x80
    20 #define OFFSET_L7  0x88
    21 #define OFFSET_CLEANWIN  0x98
     3#define OFFSET_SP       0x0
     4#define OFFSET_PC       0x8
     5#define OFFSET_I0       0x10
     6#define OFFSET_I1       0x18
     7#define OFFSET_I2       0x20
     8#define OFFSET_I3       0x28
     9#define OFFSET_I4       0x30
     10#define OFFSET_I5       0x38
     11#define OFFSET_FP       0x40
     12#define OFFSET_I7       0x48
     13#define OFFSET_L0       0x50
     14#define OFFSET_L1       0x58
     15#define OFFSET_L2       0x60
     16#define OFFSET_L3       0x68
     17#define OFFSET_L4       0x70
     18#define OFFSET_L5       0x78
     19#define OFFSET_L6       0x80
     20#define OFFSET_L7       0x88
     21#define OFFSET_CLEANWIN 0x98
  • generic/src/main/main.c

    rcd92528 r6f8a426  
    182182        printf("config.cpu_count=%d\n", config.cpu_count);
    183183        cpu_init();
    184 
     184       
    185185        calibrate_delay_loop();
    186186        timeout_init();
     
    198198        if (!k)
    199199                panic("can't create kernel task\n");
    200                
     200       
    201201        /*
    202202         * Create the first thread.
     
    206206                panic("can't create kinit thread\n");
    207207        thread_ready(t);
    208 
     208       
    209209        /*
    210210         * This call to scheduler() will return to kinit,
  • generic/src/proc/thread.c

    rcd92528 r6f8a426  
    270270        t->task = task;
    271271       
    272         t->fpu_context_exists=0;
    273         t->fpu_context_engaged=0;
     272        t->fpu_context_exists = 0;
     273        t->fpu_context_engaged = 0;
    274274       
    275275        /*
     
    289289       
    290290        interrupts_restore(ipl);
    291 
     291       
    292292        return t;
    293293}
Note: See TracChangeset for help on using the changeset viewer.