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 "qemu/osdep.h" |
12 | #include "qemu/units.h" |
13 | #include "hw/sysbus.h" |
14 | #include "hw/boards.h" |
15 | #include "strongarm.h" |
16 | #include "hw/arm/boot.h" |
17 | #include "hw/block/flash.h" |
18 | #include "exec/address-spaces.h" |
19 | #include "cpu.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(MachineState *machine) |
27 | { |
28 | StrongARMState *s; |
29 | DriveInfo *dinfo; |
30 | MemoryRegion *sysmem = get_system_memory(); |
31 | |
32 | s = sa1110_init(sysmem, collie_binfo.ram_size, machine->cpu_type); |
33 | |
34 | dinfo = drive_get(IF_PFLASH, 0, 0); |
35 | pflash_cfi01_register(SA_CS0, "collie.fl1" , 0x02000000, |
36 | dinfo ? blk_by_legacy_dinfo(dinfo) : NULL, |
37 | 64 * KiB, 4, 0x00, 0x00, 0x00, 0x00, 0); |
38 | |
39 | dinfo = drive_get(IF_PFLASH, 0, 1); |
40 | pflash_cfi01_register(SA_CS1, "collie.fl2" , 0x02000000, |
41 | dinfo ? blk_by_legacy_dinfo(dinfo) : NULL, |
42 | 64 * KiB, 4, 0x00, 0x00, 0x00, 0x00, 0); |
43 | |
44 | sysbus_create_simple("scoop" , 0x40800000, NULL); |
45 | |
46 | collie_binfo.board_id = 0x208; |
47 | arm_load_kernel(s->cpu, machine, &collie_binfo); |
48 | } |
49 | |
50 | static void collie_machine_init(MachineClass *mc) |
51 | { |
52 | mc->desc = "Sharp SL-5500 (Collie) PDA (SA-1110)" ; |
53 | mc->init = collie_init; |
54 | mc->ignore_memory_transaction_failures = true; |
55 | mc->default_cpu_type = ARM_CPU_TYPE_NAME("sa1110" ); |
56 | } |
57 | |
58 | DEFINE_MACHINE("collie" , collie_machine_init) |
59 | |