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

Reply via email to