Subversion Repositories HelenOS-historic

Rev

Rev 324 | Rev 341 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 324 Rev 329
Line 75... Line 75...
75
    { "Invalid", "Invalid" },   /* 0x1e */
75
    { "Invalid", "Invalid" },   /* 0x1e */
76
    { "Invalid", "Invalid" },   /* 0x1f */
76
    { "Invalid", "Invalid" },   /* 0x1f */
77
    { "QED", "R4600" },     /* 0x20 */
77
    { "QED", "R4600" },     /* 0x20 */
78
    { "Sony", "R3000" },        /* 0x21 */
78
    { "Sony", "R3000" },        /* 0x21 */
79
    { "Toshiba", "R3000" },     /* 0x22 */
79
    { "Toshiba", "R3000" },     /* 0x22 */
80
    { "NKK", "R3000" }      /* 0x23 */
80
    { "NKK", "R3000" },     /* 0x23 */
-
 
81
    { NULL, NULL }
81
};
82
};
82
 
83
 
83
static struct data_t imp_data80[] = {
84
static struct data_t imp_data80[] = {
84
    { "MIPS", "4Kc" },  /* 0x80 */
85
    { "MIPS", "4Kc" },  /* 0x80 */
85
    {"Invalid","Invalid"}, /* 0x81 */
86
    {"Invalid","Invalid"}, /* 0x81 */
86
    {"Invalid","Invalid"}, /* 0x82 */
87
    {"Invalid","Invalid"}, /* 0x82 */
87
    {"MIPS","4Km & 4Kp"} /* 0x83 */
88
    {"MIPS","4Km & 4Kp"}, /* 0x83 */
-
 
89
    { NULL, NULL}
88
};
90
};
89
 
91
 
90
void cpu_arch_init(void)
92
void cpu_arch_init(void)
91
{
93
{
92
}
94
}
Line 98... Line 100...
98
}
100
}
99
 
101
 
100
void cpu_print_report(cpu_t *m)
102
void cpu_print_report(cpu_t *m)
101
{
103
{
102
    struct data_t *data;
104
    struct data_t *data;
-
 
105
    int i;
103
 
106
 
104
    if (m->arch.imp_num & 0x80) {
107
    if (m->arch.imp_num & 0x80) {
-
 
108
        /* Count records */
-
 
109
        for (i=0;imp_data80[i].vendor;i++)
-
 
110
            ;
-
 
111
        if (m->arch.imp_num & 0x7f >= i) {
-
 
112
            printf("imp=%d\n",m->arch.imp_num);
-
 
113
            return;
-
 
114
        }
105
        data = &imp_data80[m->arch.imp_num & 0x7f];
115
        data = &imp_data80[m->arch.imp_num & 0x7f];
106
    } else
116
    } else {
-
 
117
        for (i=0;imp_data[i].vendor;i++)
-
 
118
            ;
-
 
119
        if (m->arch.imp_num >= i) {
-
 
120
            printf("imp=%d\n",m->arch.imp_num);
-
 
121
            return;
-
 
122
        }
107
        data = &imp_data[m->arch.imp_num];
123
        data = &imp_data[m->arch.imp_num];
-
 
124
    }
108
 
125
 
109
    printf("cpu%d: %s %s (rev=%d.%d, imp=%d)\n",
126
    printf("cpu%d: %s %s (rev=%d.%d, imp=%d)\n",
110
        m->id, data->vendor, data->model, m->arch.rev_num >> 4,
127
        m->id, data->vendor, data->model, m->arch.rev_num >> 4,
111
           m->arch.rev_num & 0xf, m->arch.imp_num);
128
           m->arch.rev_num & 0xf, m->arch.imp_num);
112
}
129
}