root / hw / arm / collie.c @ bd2be150
History | View | Annotate | Download (2.1 kB)
1 |
/*
|
---|---|
2 |
* SA-1110-based Sharp Zaurus SL-5500 platform.
|
3 |
*
|
4 |
* Copyright (C) 2011 Dmitry Eremin-Solenikov
|
5 |
*
|
6 |
* This code is licensed under GNU GPL v2.
|
7 |
*
|
8 |
* Contributions after 2012-01-13 are licensed under the terms of the
|
9 |
* GNU GPL, version 2 or (at your option) any later version.
|
10 |
*/
|
11 |
#include "hw/hw.h" |
12 |
#include "hw/sysbus.h" |
13 |
#include "hw/boards.h" |
14 |
#include "hw/devices.h" |
15 |
#include "strongarm.h" |
16 |
#include "hw/arm/arm.h" |
17 |
#include "hw/block/flash.h" |
18 |
#include "sysemu/blockdev.h" |
19 |
#include "exec/address-spaces.h" |
20 |
|
21 |
static struct arm_boot_info collie_binfo = { |
22 |
.loader_start = SA_SDCS0, |
23 |
.ram_size = 0x20000000,
|
24 |
}; |
25 |
|
26 |
static void collie_init(QEMUMachineInitArgs *args) |
27 |
{ |
28 |
const char *cpu_model = args->cpu_model; |
29 |
const char *kernel_filename = args->kernel_filename; |
30 |
const char *kernel_cmdline = args->kernel_cmdline; |
31 |
const char *initrd_filename = args->initrd_filename; |
32 |
StrongARMState *s; |
33 |
DriveInfo *dinfo; |
34 |
MemoryRegion *sysmem = get_system_memory(); |
35 |
|
36 |
if (!cpu_model) {
|
37 |
cpu_model = "sa1110";
|
38 |
} |
39 |
|
40 |
s = sa1110_init(sysmem, collie_binfo.ram_size, cpu_model); |
41 |
|
42 |
dinfo = drive_get(IF_PFLASH, 0, 0); |
43 |
pflash_cfi01_register(SA_CS0, NULL, "collie.fl1", 0x02000000, |
44 |
dinfo ? dinfo->bdrv : NULL, (64 * 1024), |
45 |
512, 4, 0x00, 0x00, 0x00, 0x00, 0); |
46 |
|
47 |
dinfo = drive_get(IF_PFLASH, 0, 1); |
48 |
pflash_cfi01_register(SA_CS1, NULL, "collie.fl2", 0x02000000, |
49 |
dinfo ? dinfo->bdrv : NULL, (64 * 1024), |
50 |
512, 4, 0x00, 0x00, 0x00, 0x00, 0); |
51 |
|
52 |
sysbus_create_simple("scoop", 0x40800000, NULL); |
53 |
|
54 |
collie_binfo.kernel_filename = kernel_filename; |
55 |
collie_binfo.kernel_cmdline = kernel_cmdline; |
56 |
collie_binfo.initrd_filename = initrd_filename; |
57 |
collie_binfo.board_id = 0x208;
|
58 |
arm_load_kernel(s->cpu, &collie_binfo); |
59 |
} |
60 |
|
61 |
static QEMUMachine collie_machine = {
|
62 |
.name = "collie",
|
63 |
.desc = "Collie PDA (SA-1110)",
|
64 |
.init = collie_init, |
65 |
DEFAULT_MACHINE_OPTIONS, |
66 |
}; |
67 |
|
68 |
static void collie_machine_init(void) |
69 |
{ |
70 |
qemu_register_machine(&collie_machine); |
71 |
} |
72 |
|
73 |
machine_init(collie_machine_init) |