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 | } |