Skip to content

Commit d603f82

Browse files
authored
Add support for smaller 1MB flash chip (#104)
* Add support for smaller flash chip * fix the win build
1 parent bf29966 commit d603f82

File tree

3 files changed

+46
-6
lines changed

3 files changed

+46
-6
lines changed

.github/workflows/build.yml

+3-2
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ jobs:
144144

145145
build_cygwin:
146146
# The type of runner that the job will run on
147-
runs-on: windows-latest
147+
runs-on: windows-2019
148148
if: "!contains(github.event.head_commit.message, 'NO_BUILD')"
149149
steps:
150150
- uses: actions/cache@v1
@@ -193,10 +193,11 @@ jobs:
193193
- name: Configure build
194194
run: |
195195
cd MINI404
196+
git submodule update --init capstone dtc meson slirp ui/keycodemapdb tests/fp/berkeley-softfloat-3 tests/fp/berkeley-testfloat-3
196197
mkdir build
197198
cd build
198199
set PATH=C:\tools\cygwin\bin;C:\tools\cygwin\usr\bin
199-
bash.exe -c "../configure --cross-prefix=x86_64-w64-mingw32- --target-list=buddy-softmmu --enable-gtk --enable-libusb"
200+
bash.exe -c "../configure --with-git-submodules=ignore --cross-prefix=x86_64-w64-mingw32- --target-list=buddy-softmmu --enable-gtk --enable-libusb"
200201
bash.exe -c "sed -i 's/LDFLAGS_NOPIE=-no-pie/LDFLAGS_NOPIE=/g' config-host.mak"
201202
shell: cmd
202203

hw/arm/prusa/prusa-mini.c

+42-4
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,32 @@
3838

3939
#define BOOTLOADER_IMAGE "bootloader.bin"
4040

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)
4267
{
4368
DeviceState *dev;
4469

@@ -109,7 +134,7 @@ static void prusa_mini_init(MachineState *machine)
109134
DriveInfo *dinfo = NULL;
110135
{
111136
bus = qdev_get_child_bus(DEVICE(&SOC->spis[2]), "ssi");
112-
dev = qdev_new("w25q64jv");
137+
dev = qdev_new(cfg->flash_chip);
113138
dinfo = drive_get_next(IF_MTD);
114139
if (dinfo) {
115140
qdev_prop_set_drive(dev, "drive",
@@ -338,15 +363,28 @@ static void prusa_mini_init(MachineState *machine)
338363

339364
static void prusa_mini_machine_init(MachineClass *mc)
340365
{
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;
343369
mc->default_ram_size = 0; // 0 = use default RAM from chip.
344370
mc->no_parallel = 1;
345371
mc->no_serial = 1;
346372
}
347373

348374
DEFINE_MACHINE("prusa-mini", prusa_mini_machine_init)
349375

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+
350388
static void buddy_machine_init(MachineClass *mc)
351389
{
352390
mc->desc = "Prusa Mini Board";

hw/block/m25p80.c

+1
Original file line numberDiff line numberDiff line change
@@ -335,6 +335,7 @@ static const FlashPartInfo known_devices[] = {
335335
{ INFO("w25q64jv", 0xef4016, 0, 64 << 10, 128, ER_4K) },
336336
{ INFO("w25q80", 0xef5014, 0, 64 << 10, 16, ER_4K) },
337337
{ INFO("w25q80bl", 0xef4014, 0, 64 << 10, 16, ER_4K) },
338+
{ INFO("w25w80d", 0xef4014, 0, 64 << 10, 16, ER_4K) },
338339
{ INFO("w25q256", 0xef4019, 0, 64 << 10, 512, ER_4K) },
339340
{ INFO("w25q512jv", 0xef4020, 0, 64 << 10, 1024, ER_4K) },
340341
};

0 commit comments

Comments
 (0)