]>
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. | |
7 | */ | |
8 | #include "hw.h" | |
9 | #include "sysbus.h" | |
10 | #include "boards.h" | |
11 | #include "devices.h" | |
12 | #include "strongarm.h" | |
13 | #include "arm-misc.h" | |
14 | #include "flash.h" | |
15 | #include "blockdev.h" | |
16 | ||
17 | static struct arm_boot_info collie_binfo = { | |
18 | .loader_start = SA_SDCS0, | |
19 | .ram_size = 0x20000000, | |
20 | }; | |
21 | ||
22 | static void collie_init(ram_addr_t ram_size, | |
23 | const char *boot_device, | |
24 | const char *kernel_filename, const char *kernel_cmdline, | |
25 | const char *initrd_filename, const char *cpu_model) | |
26 | { | |
27 | StrongARMState *s; | |
28 | DriveInfo *dinfo; | |
c8a50e59 | 29 | MemoryRegion *phys_flash = g_new(MemoryRegion, 2); |
c64b21d5 DES |
30 | |
31 | if (!cpu_model) { | |
32 | cpu_model = "sa1110"; | |
33 | } | |
34 | ||
35 | s = sa1110_init(collie_binfo.ram_size, cpu_model); | |
36 | ||
c8a50e59 AK |
37 | memory_region_init_rom_device(&phys_flash[0], &pflash_cfi01_ops_le, |
38 | NULL, "collie.fl1", 0x02000000); | |
c64b21d5 | 39 | dinfo = drive_get(IF_PFLASH, 0, 0); |
c8a50e59 | 40 | pflash_cfi01_register(SA_CS0, &phys_flash[0], |
c64b21d5 | 41 | dinfo ? dinfo->bdrv : NULL, (64 * 1024), |
c8a50e59 | 42 | 512, 4, 0x00, 0x00, 0x00, 0x00); |
c64b21d5 | 43 | |
c8a50e59 AK |
44 | memory_region_init_rom_device(&phys_flash[1], &pflash_cfi01_ops_le, |
45 | NULL, "collie.fl2", 0x02000000); | |
c64b21d5 | 46 | dinfo = drive_get(IF_PFLASH, 0, 1); |
c8a50e59 | 47 | pflash_cfi01_register(SA_CS1, &phys_flash[1], |
c64b21d5 | 48 | dinfo ? dinfo->bdrv : NULL, (64 * 1024), |
c8a50e59 | 49 | 512, 4, 0x00, 0x00, 0x00, 0x00); |
c64b21d5 DES |
50 | |
51 | sysbus_create_simple("scoop", 0x40800000, NULL); | |
52 | ||
53 | collie_binfo.kernel_filename = kernel_filename; | |
54 | collie_binfo.kernel_cmdline = kernel_cmdline; | |
55 | collie_binfo.initrd_filename = initrd_filename; | |
56 | collie_binfo.board_id = 0x208; | |
57 | arm_load_kernel(s->env, &collie_binfo); | |
58 | } | |
59 | ||
60 | static QEMUMachine collie_machine = { | |
61 | .name = "collie", | |
62 | .desc = "Collie PDA (SA-1110)", | |
63 | .init = collie_init, | |
64 | }; | |
65 | ||
66 | static void collie_machine_init(void) | |
67 | { | |
68 | qemu_register_machine(&collie_machine); | |
69 | } | |
70 | ||
71 | machine_init(collie_machine_init) |