]>
Commit | Line | Data |
---|---|---|
c64b21d5 DES |
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. | |
6b620ca3 PB |
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. | |
c64b21d5 | 10 | */ |
83c9f4ca PB |
11 | #include "hw/hw.h" |
12 | #include "hw/sysbus.h" | |
13 | #include "hw/boards.h" | |
bd2be150 | 14 | #include "hw/devices.h" |
47b43a1f | 15 | #include "strongarm.h" |
bd2be150 | 16 | #include "hw/arm/arm.h" |
0d09e41a | 17 | #include "hw/block/flash.h" |
9c17d615 | 18 | #include "sysemu/blockdev.h" |
022c62cb | 19 | #include "exec/address-spaces.h" |
c64b21d5 DES |
20 | |
21 | static struct arm_boot_info collie_binfo = { | |
22 | .loader_start = SA_SDCS0, | |
23 | .ram_size = 0x20000000, | |
24 | }; | |
25 | ||
3ef96221 | 26 | static void collie_init(MachineState *machine) |
c64b21d5 | 27 | { |
3ef96221 MA |
28 | const char *cpu_model = machine->cpu_model; |
29 | const char *kernel_filename = machine->kernel_filename; | |
30 | const char *kernel_cmdline = machine->kernel_cmdline; | |
31 | const char *initrd_filename = machine->initrd_filename; | |
c64b21d5 DES |
32 | StrongARMState *s; |
33 | DriveInfo *dinfo; | |
eb2fefbc | 34 | MemoryRegion *sysmem = get_system_memory(); |
c64b21d5 DES |
35 | |
36 | if (!cpu_model) { | |
37 | cpu_model = "sa1110"; | |
38 | } | |
39 | ||
eb2fefbc | 40 | s = sa1110_init(sysmem, collie_binfo.ram_size, cpu_model); |
c64b21d5 | 41 | |
c64b21d5 | 42 | dinfo = drive_get(IF_PFLASH, 0, 0); |
cfe5f011 | 43 | pflash_cfi01_register(SA_CS0, NULL, "collie.fl1", 0x02000000, |
c64b21d5 | 44 | dinfo ? dinfo->bdrv : NULL, (64 * 1024), |
01e0451a | 45 | 512, 4, 0x00, 0x00, 0x00, 0x00, 0); |
c64b21d5 | 46 | |
c64b21d5 | 47 | dinfo = drive_get(IF_PFLASH, 0, 1); |
cfe5f011 | 48 | pflash_cfi01_register(SA_CS1, NULL, "collie.fl2", 0x02000000, |
c64b21d5 | 49 | dinfo ? dinfo->bdrv : NULL, (64 * 1024), |
01e0451a | 50 | 512, 4, 0x00, 0x00, 0x00, 0x00, 0); |
c64b21d5 DES |
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; | |
3aaa8dfa | 58 | arm_load_kernel(s->cpu, &collie_binfo); |
c64b21d5 DES |
59 | } |
60 | ||
61 | static QEMUMachine collie_machine = { | |
62 | .name = "collie", | |
63 | .desc = "Collie PDA (SA-1110)", | |
64 | .init = collie_init, | |
65 | }; | |
66 | ||
67 | static void collie_machine_init(void) | |
68 | { | |
69 | qemu_register_machine(&collie_machine); | |
70 | } | |
71 | ||
72 | machine_init(collie_machine_init) |