Thanks again, Eric, for the previous info. I've done a bit more digging but haven't found the root cause of the issue yet. I have tried forcing LBA (using sys & sys config). I have also added a bit more debugging info on boot. I added more details to the following webpage, including a video walkthrough trying to better describe the issue, in case anyone is bored or just looking for a challenge. In execrh(), there are a pair of calls (likely to a disk driver); the first of these calls ("call far the strategy") is where I run into the issue. I'm not sure what "strategy" means in this context. Possibly, the right information isn't being passed into the execrh() routine, due to a failure at an earlier point. I plan to start stripping down the kernel next -- to simplify testing and see what I can learn. https://www.rehsdonline.com/post/troubleshooting-freedos-boot-on-my-286-syst em-hangs-on-execrh-call-in-kernel
Thanks! Rich -----Original Message----- From: Eric Auer <e.a...@jpberlin.de> Sent: Friday, May 5, 2023 9:20 AM To: Technical discussion and questions for FreeDOS developers. <freedos-devel@lists.sourceforge.net> Subject: Re: [Freedos-devel] trying to understand execrh.asm -- calls to EXECRH cause my 286 system to lock up Hi Rich, > -My BIOS supports both CHS and LBA. FreeDOS is using CHS due to the > size of the CF card (~500MB). I will try forcing LBA. Actually that should depend on partition type, not on disk size ;-) > -I log interrupt calls out to my serial debugger on my 286. In > execrh(), I am not seeing any INT13H calls get called. Interesting! > -I will need to learn more about disk I/O drivers. I assume for the > IDE CF Card, that driver is part of the FreeDOS kernel code. Yes, sort of. Everything which is supported by INT13 will be accessed by INT13 calls which are done by built-in kernel disk drivers. As you apparently got far enough to enumerate the partitions, your problem does not seem to be with our initdisk.c and not in our boot.asm but you may want to look in dsk.c, floppy.asm or (less likely) blockio.c (which just calls the driver) etc. Things happen for example in LBA_Transfer() which calls fl_lba_ReadWrite() which is what actually calls int 13h. > -My system does not support DMA at this stage. I am using PIO mode only. Okay. Regards, Eric _______________________________________________ Freedos-devel mailing list Freedos-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/freedos-devel _______________________________________________ Freedos-devel mailing list Freedos-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/freedos-devel