diff --git a/src/cdrom/cdrom_image_backend.c b/src/cdrom/cdrom_image_backend.c index 802069978..621d5ec20 100644 --- a/src/cdrom/cdrom_image_backend.c +++ b/src/cdrom/cdrom_image_backend.c @@ -262,6 +262,7 @@ cdi_get_audio_tracks(cd_img_t *cdi, int *st_track, int *end, TMSF *lead_out) } +/* TODO: This never returns anything other than 1, should it even be an int? */ int cdi_get_audio_tracks_lba(cd_img_t *cdi, int *st_track, int *end, uint32_t *lead_out) { diff --git a/src/cpu/386_common.c b/src/cpu/386_common.c index 63ed7631a..e09d9b76e 100644 --- a/src/cpu/386_common.c +++ b/src/cpu/386_common.c @@ -74,9 +74,10 @@ smram_t temp_smram[2]; /* SMM feature masks */ #define SMM_IO_INSTRUCTION_RESTART (0x00010000) #define SMM_SMBASE_RELOCATION (0x00020000) +#define SMM_REVISION (0x20000000) /* TODO: Which CPU added SMBASE relocation? */ -#define SMM_REVISION_ID SMM_SMBASE_RELOCATION +#define SMM_REVISION_ID (SMM_SMBASE_RELOCATION | SMM_IO_INSTRUCTION_RESTART | SMM_REVISION) #define SMM_SAVE_STATE_MAP_SIZE 128 @@ -989,7 +990,7 @@ enter_smm(int in_hlt) uint32_t smram_state = smbase + 0x10000; /* If it's a CPU on which SMM is not supporter, do nothing. */ - if (!is_pentium && !is_k5 && !is_k6 && !is_p6) + if (!is_am486 && !is_pentium && !is_k5 && !is_k6 && !is_p6) return; x386_common_log("enter_smm(): smbase = %08X\n", smbase); @@ -1146,7 +1147,7 @@ leave_smm(void) uint32_t smram_state = smbase + 0x10000; /* If it's a CPU on which SMM is not supported (or not implemented in 86Box), do nothing. */ - if (!is_pentium && !is_k5 && !is_k6 && !is_p6) + if (!is_am486 && !is_pentium && !is_k5 && !is_k6 && !is_p6) return; memset(saved_state, 0x00, SMM_SAVE_STATE_MAP_SIZE * sizeof(uint32_t)); diff --git a/src/cpu/808x.c b/src/cpu/808x.c index 2cde6d9c5..f64f6ce8c 100644 --- a/src/cpu/808x.c +++ b/src/cpu/808x.c @@ -980,7 +980,7 @@ reset_common(int hard) smi_block = 0; if (hard) { - smbase = 0x00030000; + smbase = is_am486 ? 0x00060000 : 0x00030000; ppi_reset(); } in_sys = 0;