diff --git a/CMakeLists.txt b/CMakeLists.txt index 3f286602..73008440 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -187,7 +187,7 @@ set(REDREAM_SOURCES src/hw/pvr/ta.c src/hw/pvr/tr.c src/hw/pvr/trace.c - src/hw/rom/bios.c + src/hw/rom/boot.c src/hw/rom/flash.c src/hw/sh4/sh4.c src/hw/sh4/sh4_ccn.c diff --git a/src/dreamcast.c b/src/dreamcast.c index 8be15585..88cdb1c2 100644 --- a/src/dreamcast.c +++ b/src/dreamcast.c @@ -9,7 +9,7 @@ #include "hw/maple/maple.h" #include "hw/pvr/pvr.h" #include "hw/pvr/ta.h" -#include "hw/rom/bios.h" +#include "hw/rom/boot.h" #include "hw/rom/flash.h" #include "hw/sh4/sh4.h" #include "memory.h" @@ -146,7 +146,7 @@ int dc_init(struct dreamcast *dc) { dev->sh4 = dc->sh4; dev->arm = dc->arm; dev->aica = dc->aica; - dev->bios = dc->bios; + dev->boot = dc->boot; dev->flash = dc->flash; dev->gdrom = dc->gdrom; dev->holly = dc->holly; @@ -243,7 +243,7 @@ void dc_destroy(struct dreamcast *dc) { holly_destroy(dc->holly); gdrom_destroy(dc->gdrom); flash_destroy(dc->flash); - bios_destroy(dc->bios); + boot_destroy(dc->boot); aica_destroy(dc->aica); arm7_destroy(dc->arm); sh4_destroy(dc->sh4); @@ -267,7 +267,7 @@ struct dreamcast *dc_create() { dc->sh4 = sh4_create(dc); dc->arm = arm7_create(dc); dc->aica = aica_create(dc); - dc->bios = bios_create(dc); + dc->boot = boot_create(dc); dc->flash = flash_create(dc); dc->gdrom = gdrom_create(dc); dc->holly = holly_create(dc); diff --git a/src/dreamcast.h b/src/dreamcast.h index e047341b..98ff693f 100644 --- a/src/dreamcast.h +++ b/src/dreamcast.h @@ -9,7 +9,7 @@ struct aica; struct arm7; -struct bios; +struct boot; struct debugger; struct device; struct dreamcast; @@ -106,7 +106,7 @@ struct device { struct sh4 *sh4; struct arm7 *arm; struct aica *aica; - struct bios *bios; + struct boot *boot; struct flash *flash; struct gdrom *gdrom; struct holly *holly; @@ -137,7 +137,6 @@ struct dreamcast { struct sh4 *sh4; struct arm7 *arm; struct aica *aica; - struct bios *bios; struct boot *boot; struct flash *flash; struct gdrom *gdrom; diff --git a/src/hw/rom/bios.h b/src/hw/rom/bios.h deleted file mode 100644 index 715ca78b..00000000 --- a/src/hw/rom/bios.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef BIOS_H -#define BIOS_H - -#include "memory.h" - -struct dreamcast; -struct bios; - -AM_DECLARE(boot_rom_map); - -struct bios *bios_create(struct dreamcast *dc); -void bios_destroy(struct bios *bios); - -#endif diff --git a/src/hw/rom/bios.c b/src/hw/rom/boot.c similarity index 65% rename from src/hw/rom/bios.c rename to src/hw/rom/boot.c index cab7b5d1..fda0e28f 100644 --- a/src/hw/rom/bios.c +++ b/src/hw/rom/boot.c @@ -1,5 +1,5 @@ #include -#include "hw/rom/bios.h" +#include "hw/rom/boot.h" #include "core/md5.h" #include "core/option.h" #include "dreamcast.h" @@ -8,17 +8,17 @@ DEFINE_OPTION_STRING(bios, "dc_boot.bin", "Path to boot rom"); #define BIOS_SIZE 0x00200000 -struct bios { +struct boot { struct device; uint8_t rom[BIOS_SIZE]; }; -static uint32_t bios_rom_read(struct bios *bios, uint32_t addr, +static uint32_t boot_rom_read(struct boot *boot, uint32_t addr, uint32_t data_mask) { - return READ_DATA(&bios->rom[addr]); + return READ_DATA(&boot->rom[addr]); } -static int bios_validate(struct bios *bios) { +static int boot_validate(struct boot *boot) { static const char *valid_bios_md5[] = { "a5c6a00818f97c5e3e91569ee22416dc", /* chinese bios */ "37c921eb47532cae8fb70e5d987ce91c", /* japanese bios */ @@ -29,7 +29,7 @@ static int bios_validate(struct bios *bios) { /* compare the rom's md5 against known good bios roms */ MD5_CTX md5_ctx; MD5_Init(&md5_ctx); - MD5_Update(&md5_ctx, bios->rom, BIOS_SIZE); + MD5_Update(&md5_ctx, boot->rom, BIOS_SIZE); char result[33]; MD5_Final(result, &md5_ctx); @@ -42,7 +42,7 @@ static int bios_validate(struct bios *bios) { return 0; } -static int bios_load_rom(struct bios *bios, const char *path) { +static int boot_load_rom(struct boot *boot, const char *path) { FILE *fp = fopen(path, "rb"); if (!fp) { return 0; @@ -58,11 +58,11 @@ static int bios_load_rom(struct bios *bios, const char *path) { return 0; } - int n = (int)fread(bios->rom, sizeof(uint8_t), size, fp); + int n = (int)fread(boot->rom, sizeof(uint8_t), size, fp); CHECK_EQ(n, size); fclose(fp); - if (!bios_validate(bios)) { + if (!boot_validate(boot)) { LOG_WARNING("Invalid BIOS file"); return 0; } @@ -70,14 +70,14 @@ static int bios_load_rom(struct bios *bios, const char *path) { return 1; } -void bios_destroy(struct bios *bios) { - dc_destroy_device((struct device *)bios); +void boot_destroy(struct boot *boot) { + dc_destroy_device((struct device *)boot); } -static int bios_init(struct device *dev) { - struct bios *bios = (struct bios *)dev; +static int boot_init(struct device *dev) { + struct boot *boot = (struct boot *)dev; - if (!bios_load_rom(bios, OPTION_bios)) { + if (!boot_load_rom(boot, OPTION_bios)) { LOG_WARNING("Failed to load boot rom"); return 0; } @@ -85,17 +85,17 @@ static int bios_init(struct device *dev) { return 1; } -struct bios *bios_create(struct dreamcast *dc) { - struct bios *bios = - dc_create_device(dc, sizeof(struct bios), "bios", &bios_init); - return bios; +struct boot *boot_create(struct dreamcast *dc) { + struct boot *boot = + dc_create_device(dc, sizeof(struct boot), "boot", &boot_init); + return boot; ; } /* clang-format off */ -AM_BEGIN(struct bios, boot_rom_map); +AM_BEGIN(struct boot, boot_rom_map); AM_RANGE(0x00000000, 0x001fffff) AM_HANDLE("boot rom", - (mmio_read_cb)&bios_rom_read, + (mmio_read_cb)&boot_rom_read, NULL, NULL, NULL) AM_END(); diff --git a/src/hw/rom/boot.h b/src/hw/rom/boot.h new file mode 100644 index 00000000..ed9d777f --- /dev/null +++ b/src/hw/rom/boot.h @@ -0,0 +1,14 @@ +#ifndef BOOT_H +#define BOOT_H + +#include "memory.h" + +struct dreamcast; +struct boot; + +AM_DECLARE(boot_rom_map); + +struct boot *boot_create(struct dreamcast *dc); +void boot_destroy(struct boot *boot); + +#endif diff --git a/src/hw/sh4/sh4.c b/src/hw/sh4/sh4.c index cbef6b7c..ad79b188 100644 --- a/src/hw/sh4/sh4.c +++ b/src/hw/sh4/sh4.c @@ -7,7 +7,7 @@ #include "hw/holly/holly.h" #include "hw/pvr/pvr.h" #include "hw/pvr/ta.h" -#include "hw/rom/bios.h" +#include "hw/rom/boot.h" #include "hw/rom/flash.h" #include "jit/frontend/sh4/sh4_fallback.h" #include "jit/frontend/sh4/sh4_frontend.h" @@ -302,7 +302,7 @@ REG_R32(sh4_cb, PDTRA) { /* clang-format off */ AM_BEGIN(struct sh4, sh4_data_map) - AM_RANGE(0x00000000, 0x001fffff) AM_DEVICE("bios", boot_rom_map) + AM_RANGE(0x00000000, 0x001fffff) AM_DEVICE("boot", boot_rom_map) AM_RANGE(0x00200000, 0x0021ffff) AM_DEVICE("flash", flash_rom_map) AM_RANGE(0x0c000000, 0x0cffffff) AM_MOUNT("system ram")