Skip to content

Commit

Permalink
Add support for smaller 1MB flash chip (#104)
Browse files Browse the repository at this point in the history
* Add support for smaller flash chip

* fix the win build
  • Loading branch information
vintagepc authored Apr 22, 2022
1 parent bf29966 commit d603f82
Show file tree
Hide file tree
Showing 3 changed files with 46 additions and 6 deletions.
5 changes: 3 additions & 2 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -144,7 +144,7 @@ jobs:

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

Expand Down
46 changes: 42 additions & 4 deletions hw/arm/prusa/prusa-mini.c
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,32 @@

#define BOOTLOADER_IMAGE "bootloader.bin"

static void prusa_mini_init(MachineState *machine)
typedef struct mini_config_t {
const char* flash_chip;
} mini_config_t;

static const mini_config_t mini_100_cfg = {
.flash_chip = "w25q64jv"
};

static const mini_config_t mini_014_cfg = {
.flash_chip = "w25w80d"
};

static void prusa_mini_init(MachineState *machine, const mini_config_t* cfg);

static void prusa_mini_014_init(MachineState *machine)
{
prusa_mini_init(machine, &mini_014_cfg);
}

static void prusa_mini_100_init(MachineState *machine)
{
prusa_mini_init(machine, &mini_100_cfg);
}


static void prusa_mini_init(MachineState *machine, const mini_config_t* cfg)
{
DeviceState *dev;

Expand Down Expand Up @@ -109,7 +134,7 @@ static void prusa_mini_init(MachineState *machine)
DriveInfo *dinfo = NULL;
{
bus = qdev_get_child_bus(DEVICE(&SOC->spis[2]), "ssi");
dev = qdev_new("w25q64jv");
dev = qdev_new(cfg->flash_chip);
dinfo = drive_get_next(IF_MTD);
if (dinfo) {
qdev_prop_set_drive(dev, "drive",
Expand Down Expand Up @@ -338,15 +363,28 @@ static void prusa_mini_init(MachineState *machine)

static void prusa_mini_machine_init(MachineClass *mc)
{
mc->desc = "Prusa Mini";
mc->init = prusa_mini_init;
mc->desc = "Prusa Mini 1.0+";
mc->family = "Prusa Mini";
mc->init = prusa_mini_100_init;
mc->default_ram_size = 0; // 0 = use default RAM from chip.
mc->no_parallel = 1;
mc->no_serial = 1;
}

DEFINE_MACHINE("prusa-mini", prusa_mini_machine_init)

static void prusa_mini_014_machine_init(MachineClass *mc)
{
mc->desc = "Prusa Mini 0.1.4";
mc->family = "Prusa Mini";
mc->init = prusa_mini_014_init;
mc->default_ram_size = 0; // 0 = use default RAM from chip.
mc->no_parallel = 1;
mc->no_serial = 1;
}

DEFINE_MACHINE("prusa-mini-014", prusa_mini_014_machine_init)

static void buddy_machine_init(MachineClass *mc)
{
mc->desc = "Prusa Mini Board";
Expand Down
1 change: 1 addition & 0 deletions hw/block/m25p80.c
Original file line number Diff line number Diff line change
Expand Up @@ -335,6 +335,7 @@ static const FlashPartInfo known_devices[] = {
{ INFO("w25q64jv", 0xef4016, 0, 64 << 10, 128, ER_4K) },
{ INFO("w25q80", 0xef5014, 0, 64 << 10, 16, ER_4K) },
{ INFO("w25q80bl", 0xef4014, 0, 64 << 10, 16, ER_4K) },
{ INFO("w25w80d", 0xef4014, 0, 64 << 10, 16, ER_4K) },
{ INFO("w25q256", 0xef4019, 0, 64 << 10, 512, ER_4K) },
{ INFO("w25q512jv", 0xef4020, 0, 64 << 10, 1024, ER_4K) },
};
Expand Down

0 comments on commit d603f82

Please sign in to comment.