]>
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 | */ |
12b16722 | 11 | #include "qemu/osdep.h" |
83c9f4ca PB |
12 | #include "hw/hw.h" |
13 | #include "hw/sysbus.h" | |
14 | #include "hw/boards.h" | |
bd2be150 | 15 | #include "hw/devices.h" |
47b43a1f | 16 | #include "strongarm.h" |
bd2be150 | 17 | #include "hw/arm/arm.h" |
0d09e41a | 18 | #include "hw/block/flash.h" |
fa1d36df | 19 | #include "sysemu/block-backend.h" |
022c62cb | 20 | #include "exec/address-spaces.h" |
7d0c99a9 | 21 | #include "qom/cpu.h" |
c64b21d5 DES |
22 | |
23 | static struct arm_boot_info collie_binfo = { | |
24 | .loader_start = SA_SDCS0, | |
25 | .ram_size = 0x20000000, | |
26 | }; | |
27 | ||
3ef96221 | 28 | static void collie_init(MachineState *machine) |
c64b21d5 | 29 | { |
3ef96221 MA |
30 | const char *cpu_model = machine->cpu_model; |
31 | const char *kernel_filename = machine->kernel_filename; | |
32 | const char *kernel_cmdline = machine->kernel_cmdline; | |
33 | const char *initrd_filename = machine->initrd_filename; | |
c64b21d5 DES |
34 | StrongARMState *s; |
35 | DriveInfo *dinfo; | |
eb2fefbc | 36 | MemoryRegion *sysmem = get_system_memory(); |
c64b21d5 DES |
37 | |
38 | if (!cpu_model) { | |
39 | cpu_model = "sa1110"; | |
40 | } | |
41 | ||
eb2fefbc | 42 | s = sa1110_init(sysmem, collie_binfo.ram_size, cpu_model); |
c64b21d5 | 43 | |
c64b21d5 | 44 | dinfo = drive_get(IF_PFLASH, 0, 0); |
cfe5f011 | 45 | pflash_cfi01_register(SA_CS0, NULL, "collie.fl1", 0x02000000, |
4be74634 | 46 | dinfo ? blk_by_legacy_dinfo(dinfo) : NULL, |
fa1d36df | 47 | (64 * 1024), 512, 4, 0x00, 0x00, 0x00, 0x00, 0); |
c64b21d5 | 48 | |
c64b21d5 | 49 | dinfo = drive_get(IF_PFLASH, 0, 1); |
cfe5f011 | 50 | pflash_cfi01_register(SA_CS1, NULL, "collie.fl2", 0x02000000, |
4be74634 | 51 | dinfo ? blk_by_legacy_dinfo(dinfo) : NULL, |
fa1d36df | 52 | (64 * 1024), 512, 4, 0x00, 0x00, 0x00, 0x00, 0); |
c64b21d5 DES |
53 | |
54 | sysbus_create_simple("scoop", 0x40800000, NULL); | |
55 | ||
56 | collie_binfo.kernel_filename = kernel_filename; | |
57 | collie_binfo.kernel_cmdline = kernel_cmdline; | |
58 | collie_binfo.initrd_filename = initrd_filename; | |
59 | collie_binfo.board_id = 0x208; | |
3aaa8dfa | 60 | arm_load_kernel(s->cpu, &collie_binfo); |
c64b21d5 DES |
61 | } |
62 | ||
e264d29d | 63 | static void collie_machine_init(MachineClass *mc) |
c64b21d5 | 64 | { |
ad1e8db8 | 65 | mc->desc = "Sharp SL-5500 (Collie) PDA (SA-1110)"; |
e264d29d | 66 | mc->init = collie_init; |
c64b21d5 DES |
67 | } |
68 | ||
e264d29d | 69 | DEFINE_MACHINE("collie", collie_machine_init) |