|
38 | 38 |
|
39 | 39 | #define BOOTLOADER_IMAGE "bootloader.bin"
|
40 | 40 |
|
41 |
| -static void prusa_mini_init(MachineState *machine) |
| 41 | +typedef struct mini_config_t { |
| 42 | + const char* flash_chip; |
| 43 | +} mini_config_t; |
| 44 | + |
| 45 | +static const mini_config_t mini_100_cfg = { |
| 46 | + .flash_chip = "w25q64jv" |
| 47 | +}; |
| 48 | + |
| 49 | +static const mini_config_t mini_014_cfg = { |
| 50 | + .flash_chip = "w25w80d" |
| 51 | +}; |
| 52 | + |
| 53 | +static void prusa_mini_init(MachineState *machine, const mini_config_t* cfg); |
| 54 | + |
| 55 | +static void prusa_mini_014_init(MachineState *machine) |
| 56 | +{ |
| 57 | + prusa_mini_init(machine, &mini_014_cfg); |
| 58 | +} |
| 59 | + |
| 60 | +static void prusa_mini_100_init(MachineState *machine) |
| 61 | +{ |
| 62 | + prusa_mini_init(machine, &mini_100_cfg); |
| 63 | +} |
| 64 | + |
| 65 | + |
| 66 | +static void prusa_mini_init(MachineState *machine, const mini_config_t* cfg) |
42 | 67 | {
|
43 | 68 | DeviceState *dev;
|
44 | 69 |
|
@@ -109,7 +134,7 @@ static void prusa_mini_init(MachineState *machine)
|
109 | 134 | DriveInfo *dinfo = NULL;
|
110 | 135 | {
|
111 | 136 | bus = qdev_get_child_bus(DEVICE(&SOC->spis[2]), "ssi");
|
112 |
| - dev = qdev_new("w25q64jv"); |
| 137 | + dev = qdev_new(cfg->flash_chip); |
113 | 138 | dinfo = drive_get_next(IF_MTD);
|
114 | 139 | if (dinfo) {
|
115 | 140 | qdev_prop_set_drive(dev, "drive",
|
@@ -338,15 +363,28 @@ static void prusa_mini_init(MachineState *machine)
|
338 | 363 |
|
339 | 364 | static void prusa_mini_machine_init(MachineClass *mc)
|
340 | 365 | {
|
341 |
| - mc->desc = "Prusa Mini"; |
342 |
| - mc->init = prusa_mini_init; |
| 366 | + mc->desc = "Prusa Mini 1.0+"; |
| 367 | + mc->family = "Prusa Mini"; |
| 368 | + mc->init = prusa_mini_100_init; |
343 | 369 | mc->default_ram_size = 0; // 0 = use default RAM from chip.
|
344 | 370 | mc->no_parallel = 1;
|
345 | 371 | mc->no_serial = 1;
|
346 | 372 | }
|
347 | 373 |
|
348 | 374 | DEFINE_MACHINE("prusa-mini", prusa_mini_machine_init)
|
349 | 375 |
|
| 376 | +static void prusa_mini_014_machine_init(MachineClass *mc) |
| 377 | +{ |
| 378 | + mc->desc = "Prusa Mini 0.1.4"; |
| 379 | + mc->family = "Prusa Mini"; |
| 380 | + mc->init = prusa_mini_014_init; |
| 381 | + mc->default_ram_size = 0; // 0 = use default RAM from chip. |
| 382 | + mc->no_parallel = 1; |
| 383 | + mc->no_serial = 1; |
| 384 | +} |
| 385 | + |
| 386 | +DEFINE_MACHINE("prusa-mini-014", prusa_mini_014_machine_init) |
| 387 | + |
350 | 388 | static void buddy_machine_init(MachineClass *mc)
|
351 | 389 | {
|
352 | 390 | mc->desc = "Prusa Mini Board";
|
|
0 commit comments