50 int hpc_platid_flags = 0, hpc_platid_cpu_submodel = 0,
51 hpc_platid_cpu_model = 0, hpc_platid_cpu_series = 0,
52 hpc_platid_cpu_arch = 0,
53 hpc_platid_submodel = 0, hpc_platid_model = 0,
54 hpc_platid_series = 0, hpc_platid_vendor = 0;
55 uint64_t hpc_fb_addr = 0;
56 int hpc_fb_bits = 0, hpc_fb_encoding = 0;
59 int hpc_fb_xsize_mem = 0;
60 int hpc_fb_ysize_mem = 0;
63 memset(&hpc_bootinfo, 0,
sizeof(hpc_bootinfo));
75 hpc_fb_addr = 0x0a200000;
78 hpc_fb_xsize_mem = 256;
79 hpc_fb_ysize_mem = 320;
84 snprintf(tmpstr,
sizeof(tmpstr),
"ns16550 irq=0 addr=0x" 91 hpc_platid_cpu_arch = 1;
92 hpc_platid_cpu_series = 1;
93 hpc_platid_cpu_model = 1;
94 hpc_platid_cpu_submodel = 6;
95 hpc_platid_vendor = 3;
96 hpc_platid_series = 1;
98 hpc_platid_submodel = 3;
105 hpc_fb_addr = 0x0a200000;
108 hpc_fb_xsize_mem = 256;
109 hpc_fb_ysize_mem = 320;
114 snprintf(tmpstr,
sizeof(tmpstr),
"ns16550 irq=0 addr=0x" 121 hpc_platid_cpu_arch = 1;
122 hpc_platid_cpu_series = 1;
123 hpc_platid_cpu_model = 1;
124 hpc_platid_cpu_submodel = 3;
125 hpc_platid_vendor = 3;
126 hpc_platid_series = 1;
127 hpc_platid_model = 2;
128 hpc_platid_submodel = 2;
134 hpc_fb_addr = 0xa000000;
137 hpc_fb_xsize_mem = 800;
138 hpc_fb_ysize_mem = 240;
144 hpc_platid_cpu_arch = 1;
145 hpc_platid_cpu_series = 1;
146 hpc_platid_cpu_model = 1;
147 hpc_platid_cpu_submodel = 3;
148 hpc_platid_vendor = 1;
149 hpc_platid_series = 2;
150 hpc_platid_model = 2;
151 hpc_platid_submodel = 4;
157 hpc_fb_addr = 0xa180100;
160 hpc_fb_xsize_mem = 640;
161 hpc_fb_ysize_mem = 240;
167 hpc_platid_cpu_arch = 1;
168 hpc_platid_cpu_series = 1;
169 hpc_platid_cpu_model = 1;
170 hpc_platid_cpu_submodel = 3;
171 hpc_platid_vendor = 1;
172 hpc_platid_series = 2;
173 hpc_platid_model = 2;
174 hpc_platid_submodel = 8;
180 hpc_fb_addr = 0xa000000;
183 hpc_fb_xsize_mem = 800;
184 hpc_fb_ysize_mem = 600;
190 hpc_platid_cpu_arch = 1;
191 hpc_platid_cpu_series = 1;
192 hpc_platid_cpu_model = 1;
193 hpc_platid_cpu_submodel = 3;
194 hpc_platid_vendor = 1;
195 hpc_platid_series = 2;
196 hpc_platid_model = 3;
197 hpc_platid_submodel = 2;
203 hpc_fb_addr = 0xa0ea600;
206 hpc_fb_xsize_mem = 800;
207 hpc_fb_ysize_mem = 600;
213 hpc_platid_cpu_arch = 1;
214 hpc_platid_cpu_series = 1;
215 hpc_platid_cpu_model = 1;
216 hpc_platid_cpu_submodel = 3;
217 hpc_platid_vendor = 1;
218 hpc_platid_series = 2;
219 hpc_platid_model = 3;
220 hpc_platid_submodel = 4;
227 hpc_fb_addr = 0x1000;
230 hpc_fb_xsize_mem = 160;
231 hpc_fb_ysize_mem = 240;
241 snprintf(tmpstr,
sizeof(tmpstr),
249 hpc_platid_cpu_arch = 1;
250 hpc_platid_cpu_series = 1;
251 hpc_platid_cpu_model = 1;
252 hpc_platid_cpu_submodel = 4;
253 hpc_platid_vendor = 15;
254 hpc_platid_series = 1;
255 hpc_platid_model = 1;
256 hpc_platid_submodel = 0;
266 hpc_fb_addr = 0xa000000;
269 hpc_fb_xsize_mem = 640;
270 hpc_fb_ysize_mem = 480;
276 hpc_platid_cpu_arch = 1;
277 hpc_platid_cpu_series = 1;
278 hpc_platid_cpu_model = 1;
279 hpc_platid_cpu_submodel = 3;
280 hpc_platid_vendor = 9;
281 hpc_platid_series = 1;
282 hpc_platid_model = 1;
283 hpc_platid_submodel = 0;
286 default:printf(
"Unimplemented hpcmips machine number.\n");
291 (hpc_platid_cpu_arch << 26) + (hpc_platid_cpu_series << 20)
292 + (hpc_platid_cpu_model << 14) + (hpc_platid_cpu_submodel << 8)
295 platid_machine, (hpc_platid_vendor << 22) + (hpc_platid_series<<16)
296 + (hpc_platid_model << 8) + hpc_platid_submodel);
298 if (hpc_fb_addr != 0) {
300 hpc_fb_xsize, hpc_fb_ysize,
301 hpc_fb_xsize_mem, hpc_fb_ysize_mem,
318 + 0xffffffff80000000ULL - 512;
320 + 0xffffffff80000000ULL - 256;
333 const int tmplen = 1000;
334 char *tmp = (
char *) malloc(tmplen);
340 * 1048576 - 512 + 64);
342 * 1048576 - 512 + 8, 0);
344 snprintf(tmp, tmplen,
"root=/dev/rom video=vr4181fb:xres:160,y" 345 "res:240,bpp:4,gray,hpck:3084,inv ether=0,0x03fe0300,eth0");
346 tmp[tmplen-1] =
'\0';
350 " console=ttyS0,115200");
351 tmp[tmplen-1] =
'\0';
356 tmp[tmplen-1] =
'\0';
359 * 1048576 - 512 + 64, tmp);
367 * 1048576 - 512 + 64);
369 * 1048576 - 512 + 8, 0);
378 sizeof(hpc_bootinfo));
382 0x80000000 + hpc_fb_addr);
384 fb_line_bytes, hpc_fb_xsize_mem * (((hpc_fb_bits-1)|7)+1) / 8);
400 1048576 - 256, (
char *)&hpc_bootinfo,
sizeof(hpc_bootinfo));
425 default:printf(
"Unimplemented HPCMIPS model?\n");
452 MR_DEFAULT(hpcmips,
"Handhelp MIPS (HPCmips)",
464 "agenda",
"vr3", NULL);
481 me->set_default_ram = machine_default_ram_hpcmips;
MACHINE_DEFAULT_CPU(hpcmips)
int store_32bit_word(struct cpu *cpu, uint64_t addr, uint64_t data32)
struct vfb_data * dev_fb_init(struct machine *machine, struct memory *mem, uint64_t baseaddr, int vfb_type, int visible_xsize, int visible_ysize, int xsize, int ysize, int bit_depth, const char *name)
void store_string(struct cpu *cpu, uint64_t addr, const char *s)
#define MACHINE_HPCMIPS_IBM_WORKPAD_Z50
#define MACHINE_HPCMIPS_CASIO_BE300
void * device_add(struct machine *machine, const char *name_and_params)
#define EMUL_LITTLE_ENDIAN
char * boot_string_argument
struct vr41xx_data * dev_vr41xx_init(struct machine *machine, struct memory *mem, int cpumodel)
char * boot_kernel_filename
#define MACHINE_HPCMIPS_NEC_MOBILEPRO_800
#define MACHINE_HPCMIPS_AGENDA_VR3
void dev_ram_init(struct machine *machine, uint64_t baseaddr, uint64_t length, int mode, uint64_t otheraddress, const char *name)
MACHINE_DEFAULT_RAM(hpcmips)
void machine_entry_add_subtype(struct machine_entry *me, const char *name, int oldstyle_subtype,...)
void machine_entry_add_alias(struct machine_entry *me, const char *name)
#define HPC_BOOTINFO_MAGIC
void COMBINE() strlen(struct cpu *cpu, struct arm_instr_call *ic, int low_addr)
#define MACHINE_HPCMIPS_NEC_MOBILEPRO_780
#define DEV_RAM_MIGHT_POINT_TO_DEVICES
#define MACHINE_HPCMIPS_NEC_MOBILEPRO_880
MACHINE_REGISTER(hpcmips)
void store_16bit_word_in_host(struct cpu *cpu, unsigned char *data, uint16_t data16)
#define MACHINE_HPCMIPS_CASIO_E105
uint64_t gpr[N_MIPS_GPRS]
void store_32bit_word_in_host(struct cpu *cpu, unsigned char *data, uint64_t data32)
void store_buf(struct cpu *cpu, uint64_t addr, const char *s, size_t len)
#define MR_DEFAULT(x, name, arch, type)
const char * machine_name
#define MACHINE_HPCMIPS_NEC_MOBILEPRO_770