Re: [hatari-devel] Hatari freeze on XaAES quit with 030 MMU + FPU + cache emulation

[ Thread Index | Date Index | More lists.tuxfamily.org/hatari-devel Archives ]


Hi,

On 26.7.2022 13.26, Nicolas Pomarède wrote:
Le 26/07/2022 à 11:11, Nicolas Pomarède a écrit :
Le 25/07/2022 à 23:52, Eero Tamminen a écrit :
With above 2 lines changed (or just the first one), EmuTOS v1.1.1 does not even boot.
....
this is fixed ; the problem was that these debug functions are doing get_long/get_word/get_byte and in the case of Atari machines this requires to be in supervisor mode when accessing RAM 0-$7FF, which was not always the case depending on the state of the running program accessing the cache, hence the bus error / crash.

I added a special BUS_MODE_DEBUGGER to bypass this supervisor check, this way debugger/logging functions can now safely access all the memory (and must restore the correct BusMode after)

Can you try again to enable the 2 define's to see if any cache mismatch is reported ?

No, it does not report anything.

Hatari just freezes:
------------------------
VDI 0x65/0x00 (v_clsvwk)
WARNING: xconout stack args not found by skipping return addresses, trying short skipping.
WARNING: xconout args not found from stack.
<freeze>
------------------------

When I enabled cpu_symbols tracing for EmuTOS, in addition to tracing all OS calls, I saw something fairly weird in the log (attached).

It seems like EmuTOS would proceed after VDI close to panic, halt and reboot, and then continue booting, without *anything* being visible on Hatari screen, or xconout interception working.

Maybe the reason for CPU core freeze is some weird MMU setup done by EmuTOS v1.1.1 that had corrupted its state?


	- Eero
VDI 0x65/0x00 (v_clsvwk)
rwa.o:
_vditrap:
_GSX_ENTRY:
vdi_main.o:
_get_vwk_by_handle:
_vdi_v_clsvwk:
_os_header:
_main:
_osxhbootdelay:
_run_cartridge_applications:
meminit:
processor.o:
_processor_init:
_instruction_cache_kludge:
_invalidate_data_cache:
_cache_exists:
_set_cache:
vectors.o:
_init_user_vec:
_int_vbl:
_int_timerc:
_mfp_rs232_rx_interrupt:
_mfp_rs232_tx_interrupt:
_mfp_tt_rx_interrupt:
_mfp_tt_tx_interrupt:
_call_etv_critic:
_int_priv:
_xbiostrap:
_xbios_unimpl:
_supexec:
_protect_v:
_protect_w:
_protect_ww:
_protect_wlwwwl:
aciavecs.o:
_int_acia:
_call_mousevec:
bios.o:
_tickcal:
_drvmap:
_bcostat:
_bconin:
_bconstat:
_bconout:
_can_shutdown:
_bios_ent:
xbios.o:
_xbios_do_unimpl:
_xbios_ent:
acsi.o:
_acsi_init:
_bmem_init:
blkdev.o:
_compute_cksum:
_get_shift:
_char_dummy:
_charout_dummy:
_bcostat2:
_bconout5:
_bconout2:
_chardev_init:
clock.o:
_detect_icdrtc:
_detect_monster_rtc:
_detect_megartc:
_clock_init:
_gettime:
conout.o:
_move_cursor:
_blank_out:
_scroll_up:
_scroll_down:
country.o:
_detect_idt:
_get_keytbl:
disk.o:
_disk_inquire:
_disk_rescan:
_disk_mediach:
_disk_init_all:
_DMAread:
dma.o:
_detect_dmasound:
_unlocksnd:
_soundcmd:
_setsndmode:
_settracks:
_setmontracks:
_setinterrupt:
_buffoper:
_devconnect:
_buffptr:
floppy.o:
_flop_hdv_init:
_flop_boot_read:
_flop_checksum:
_flop_mediach:
_flopwr:
_flopver:
_font_init:
_font_set_default:
ide.o:
_detect_ide:
_ide_init:
_ide_rw:
_ide_ioctl:
ikbd.o:
_kbshift:
_bconin2:
_kbrate:
_ikbdws:
_ikbd_writeb:
_ikbd_writew:
initinfo.o:
kprint.o:
_cprintf:
_kcprintf:
_int_linea:
_set_screen_shift:
_machine_detect:
_machine_init:
_tt_mfp_init:
_mfp_init:
_setup_timer:
_timeout_gpip:
_bconstat3:
_bcostat3:
_bconout3:
_midiws:
_midi_init:
_Initmous:
_detect_native_features:
natfeats.o:
_natfeat_init:
_is_nfStdErr:
_get_xhdi_nfid:
_nf_shutdown:
_has_nf_shutdown:
_nf_bootstrap:
_nf_getbootdrive:
_mmu_is_emulated:
_nf_setlinea:
_detect_nvram:
_get_nvram_rtc:
_set_nvram_rtc:
_nvram_init:
_panic:
_halt:
_warm_reset:
_cold_reset:
parport.o:
_parport_init:
screen.o:
_esetbank:
_get_monitor_type:
_screen_get_current_mode_info:
_get_palette:
_logbase:
_setcolor:
_setscreen:
_screen_init_mode:
_esetshift:
_bconstat1:
_bcostat1:
_bconout1:
_push_serial_iorec:
_mfp_rs232_rx_interrupt_handler:
_mfp_tt_rx_interrupt_handler:
_scc_init:
_init_serport:
sound.o:
_snd_init:
_ongibit:
_offgibit:
_dosound:
_sndirq:
_bell:
videl.o:
_vmontype:
_vsetsync:
_vsetrgb:
_videl_get_current_mode_info:
_get_videl_mode:
_videl_check_moderez:
vt52.o:
_cputc:
_blink:
xhdi.o:
_setup_68030_pmmu:
_init_delay:
_calibrate_delay:
_run_calibration:
_ttram_detect:
_altram_init:
scsi.o:
_detect_scsi:
nova.o:
_detect_nova:
_init_nova:
_get_novamembase:
dsp.o:
_dsp_blkhandshake:
_dsp_blkunpacked:
_dsp_removeinterrupts:
_dsp_lock:
_dsp_unlock:
_dsp_available:
_dsp_execboot:
_dsp_lodtobinary:
_dsp_loadprog:
_dsp_triggerhc:
_dsp_init:
_dsp_loadsubroutine:
_dsp_setvectors:
_dsp_multblocks:
_dsp_inout_asm:
_dsp_io_asm:
_dsp_sv_asm:
bdosmain.o:
_osinit_before_xmaddalt:
_osinit_after_xmaddalt:
_osif:
console.o:
_xconstat:
_xprtostat:
_xauxostat:
_xauxout:
_xprtout:
_xrawcin:
_conin:
_xnecin:
_xrawio:
_xconws:
fsbuf.o:
_flush:
_getbcb:
_getrec:
fsdir.o:
_xgsdtof:
_incr_curdir_usage:
_scan:
_findit:
_ixsfirst:
_xsfirst:
_xchmod:
_log_media:
_ckdrv:
_cl2rec:
_getclnum:
_nextcl:
_xgetfree:
fshand.o:
_xforce:
fsio.o:
_eof:
_ixlseek:
_xread:
_ixwrite:
_xgetdta:
_xsetdta:
_xgetdrv:
fsopnclo.o:
_xopen:
_ixclose:
_xclose:
_ixdel:
_contains_illegal_characters:
_ffit:
_freeit:
_shrinkit:
_kpgmhdrld:
_kpgm_relocate:
osmem.o:
_xmgetmd:
_osmem_init:
proc.o:
_xterm:
_xtermres:
rwa.o:
_enter:
_termuser:
time.o:
_xgetdate:
_xsettime:
_time_init:
_xmfree:
_xsetblk:
_xmxalloc:
_total_alt_ram:
_umem_init:
_cookie_init:
_cookie_add:
_cookie_get:
_get_frb_cookie:
_get_floppy_type:
doprintf.o:
intmath.o:
_langs:
_memcpy:
_bzero_nobuiltin:
_trap1:
_trap1_pexec:
_stop_until_interrupt:
_just_rts:
nls.o:
_nls_set_lang:
nlsasm.o:
_setjmp:
string.o:
_toupper:
gemdos.o:
_dos_rawcin:
_dos_conis:
_dos_sdta:
_dos_sfirst:
_dos_open:
_dos_read:
_dos_write:
_dos_lseek:
_dos_chdir:
_dos_sdrv:
_dos_mkdir:
_dos_label:
_dos_space:
_dos_rmdir:
_dos_alloc_anyram:
_dos_free:
_dos_load_file:
optimize.o:
_inf_gindex:
_scan_2:
_filename_start:
_wildcmp:
optimopt.o:
_inside:
_rc_intersect:
_rc_union:
_strlencpy:
_strchr:
_off_6x6_table:
_off_8x8_table:
_fnt_st_6x6:
_fnt_st_8x8:
fnt_st_8x16.o:
fnt_l2_6x6.o:
_fnt_l2_8x8:
_fnt_l2_8x16:
_fnt_gr_6x6:
fnt_gr_8x8.o:
fnt_gr_8x16.o:
_fnt_ru_6x6:
_fnt_ru_8x8:
_fnt_ru_8x16:
fnt_tr_6x6.o:
fnt_tr_8x8.o:
_fnt_tr_8x16:
_version:
___mulsi3:
_udivsi3.o:
___divsi3:
_vditrap:
_GSX_ENTRY:
_mouse_int:
_call_user_but:
_call_user_wheel:
vdi_col.o:
_vdi_vq_color:
vdi_control.o:
_get_vwk_by_handle:
_update_rez_dependent:
_vdi_v_opnvwk:
_vdi_v_clsvwk:
_vdi_v_clrwk:
vdi_esc.o:
_esc_init:
_esc_exit:
vdi_fill.o:
_vdi_vsf_udpat:
_vdi_vsf_color:
_vdi_vr_recfl:
_vdi_vqf_attributes:
_st_fl_ptr:
_vdi_vsf_interior:
_contourfill:
_vdi_v_contourfill:
_vdi_v_get_pixel:
_get_pix:
_put_pix:
_SOLID:
_ROM_UD_PATRN:
vdi_gdp.o:
_vdi_v_gdp:
vdi_input.o:
_vdi_v_choice:
_vdi_v_string:
_vdi_vq_key_s:
vdi_line.o:
_vdi_vsl_udsty:
_vdi_vsl_type:
_vdi_vsl_ends:
_vdi_vql_attributes:
_linea_rect:
_clip_line:
_arrow:
vdi_main.o:
_vdi_vsm_height:
_vdi_vsm_type:
_vdi_v_pmarker:
vdi_misc.o:
_arb_line:
_timer_init:
_timer_exit:
_get_start_addr:
vdi_mouse.o:
_vdi_vq_mouse:
_cur_display:
_cur_replace:
_vdi_v_locator:
_vdi_v_hide_c:
_linea_show_mouse:
_linea_hide_mouse:
_linea_transform_mouse:
vdi_raster.o:
_vdi_vr_trnfm:
_vdi_vro_cpyfm:
_linea_blit:
vdi_text.o:
_vdi_v_gtext:
_text_init2:
_text_init:
_vdi_vst_point:
_vdi_vst_effects:
_vdi_vst_alignment:
_vdi_vst_font:
_vdi_vqt_attributes:
_vdi_vqt_width:
_vdi_vqt_name:
_vdi_vst_load_fonts:
_vdi_vst_unload_fonts:
vdi_textblit.o:
_rotate:
_text_blt:
vdi_blit.o:
_fast_bit_blt:
_normal_blit:
_psetup:
_gotopgm:
_dsptch:
_ui_start:
gemdosif.o:
_enable_interrupts:
_retake:
_unset_aestrap:
_far_bcha:
_aes_wheel:
_ap_init:
_ap_tplay:
_ap_trecd:
_ap_exit:
_azombie:
_acancel:
gemctrl.o:
_ct_mouse:
gemdisp.o:
_chkkbd:
_disp:
gemevlib.o:
_ev_mesag:
_ev_mouse:
_ev_multi:
_ev_dclick:
gemflag.o:
_tak_flag:
_amutex:
gemfmalt.o:
gemfmlib.o:
_fm_own:
_fm_keybd:
_fm_show:
gemfslib.o:
_fs_input:
gemgraf.o:
_gsx_sclip:
_gsx_gclip:
_gsx_chkclip:
_gsx_pline:
_gsx_cline:
_gsx_attr:
_bb_fill:
_gr_just:
_gr_crack:
_gr_box:
gemgrlib.o:
_gr_rubwind:
_gr_rubbox:
_gr_dragbox:
_gr_2box:
_gr_growbox:
_gr_shrinkbox:
_gr_slidebox:
gemgsxif.o:
_gsx_malloc:
_gsx_0code:
_gsx_wsclose:
_gsx_wsclear:
_ratinit:
_gsx_graphic:
_gsx_tick:
_gsx_mxmy:
_gsx_moff:
_ratexit:
_gsx_mfset:
_gsx_nplanes:
_gsx_fix:
_vs_clip:
_vst_height:
_vr_recfl:
_bb_save:
_vrt_cpyfm:
_vrn_trnfm:
_gsx_init:
geminit.o:
_default_mform:
_set_mouse_to_arrow:
_set_mouse_to_hourglass:
_all_run:
_wait_for_accs:
geminput.o:
_b_delay:
_set_ctrl:
_get_ctrl:
_get_mown:
_dq:
_evremove:
_bchange:
_set_mown:
_post_keybd:
_kchange:
_mchange:
_wheel_change:
_abutton:
_amouse:
gemmnlib.o:
_do_chg:
_mn_bar:
_mn_clsda:
_mn_register:
gemobed.o:
_ob_center:
_ins_char:
_ob_edit:
gemobjop.o:
_everyobj:
_ob_offset:
_ob_relxywh:
_ob_actxywh:
_ob_draw:
_ob_find:
_ob_add:
_ob_delete:
_ob_change:
_ob_fs:
gempd.o:
_fpdnm:
_p_nameit:
_pstart:
_insert_process:
gemqueue.o:
_aqueue:
gemrslib.o:
_rs_obfix:
_rs_free:
_rs_gaddr:
_rs_load:
_sc_read:
_sc_write:
_sc_clear:
gemshlib.o:
_sh_read:
_sh_get:
_sh_put:
_sh_tographic:
_sh_name:
_sh_rdef:
_sh_main:
_super:
gemwmlib.o:
_w_bldactive:
_ap_sendmsg:
_w_update:
_wm_init:
_wm_start:
_wm_create:
_wm_delete:
_wm_get:
_wm_calc:
_wm_set:
_wm_close:
_wm_open:
_wm_new:
gemwrect.o:
_newrect:
_gsx2:
_gem_rsc_init:
_rs_fstr:
_rs_trees:
_rs_bitblk:
_mform_rs_data:
_deskstart:
deskmain.o:
_centre_title:
_install_shortcuts:
_deskmain:
gembind.o:
_evnt_timer:
_menu_bar:
_menu_ienable:
_objc_add:
_objc_find:
_objc_order:
_form_dial:
_form_error:
_graf_rubbox:
_graf_shrinkbox_grect:
_graf_mouse:
_wind_delete:
_wind_get_grect:
_wind_set:
_wind_set_grect:
_wind_find:
_wind_calc_grect:
_rsrc_free:
_rsrc_obfix:
_shel_get:
_shel_wdef:
deskact.o:
_act_allchg:
_act_bsclick:
_act_bdown:
deskapp.o:
_nomem_alert:
_scan_str:
_app_start:
... lots of things still happening but not flushed to disk as Hatari froze ...


Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/