public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* calling bios interrupt
@ 2006-02-02  7:48 Jozef Kutej
  2006-02-02 14:43 ` Alan Cox
  2006-02-03 10:35 ` Vishal Soni
  0 siblings, 2 replies; 4+ messages in thread
From: Jozef Kutej @ 2006-02-02  7:48 UTC (permalink / raw)
  To: linux-kernel

Hello.

Can someone help me solve my problem with on board watch dog timer that 
need to call bios interrupt? Here's how to update watch dog timer.

mov ax,6f02h
mov bl, 30	;number of seconds
int 15h

How can i do this in kernel so that i can write wdt driver?

Thank you.

Jozef Kutej.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: calling bios interrupt
  2006-02-02  7:48 calling bios interrupt Jozef Kutej
@ 2006-02-02 14:43 ` Alan Cox
  2006-02-02 15:24   ` linux-os (Dick Johnson)
  2006-02-03 10:35 ` Vishal Soni
  1 sibling, 1 reply; 4+ messages in thread
From: Alan Cox @ 2006-02-02 14:43 UTC (permalink / raw)
  To: Jozef Kutej; +Cc: linux-kernel

On Iau, 2006-02-02 at 08:48 +0100, Jozef Kutej wrote:
> Hello.
> 
> Can someone help me solve my problem with on board watch dog timer that 
> need to call bios interrupt? Here's how to update watch dog timer.
> 
> mov ax,6f02h
> mov bl, 30	;number of seconds
> int 15h
> 
> How can i do this in kernel so that i can write wdt driver?

You need to drive the hardware directly. Ask the vendor for the hardware
info, or alternatively you might want to try using a library like lrmi
in user space to call it and log the I/O instructions it tries to
execute.



^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: calling bios interrupt
  2006-02-02 14:43 ` Alan Cox
@ 2006-02-02 15:24   ` linux-os (Dick Johnson)
  0 siblings, 0 replies; 4+ messages in thread
From: linux-os (Dick Johnson) @ 2006-02-02 15:24 UTC (permalink / raw)
  To: Alan Cox; +Cc: Jozef Kutej, linux-kernel


On Thu, 2 Feb 2006, Alan Cox wrote:

> On Iau, 2006-02-02 at 08:48 +0100, Jozef Kutej wrote:
>> Hello.
>>
>> Can someone help me solve my problem with on board watch dog timer that
>> need to call bios interrupt? Here's how to update watch dog timer.
>>
>> mov ax,6f02h
>> mov bl, 30	;number of seconds
>> int 15h
>>
>> How can i do this in kernel so that i can write wdt driver?
>
> You need to drive the hardware directly. Ask the vendor for the hardware
> info, or alternatively you might want to try using a library like lrmi
> in user space to call it and log the I/O instructions it tries to
> execute.
>

Also, if the machine has a floppy, boot DOS. Write the above snippit
of code using DOS debug. Step through it. Watch what register(s) get
written...

A>debug
- a100
- mov ax,6f02
- mov bl, ff
- int 15
- int 3

rip 100
- t ; trace the steps.

Once the timer gets written, the machine will reboot when it
times-out. Therefore use a large timeout value as above 0xff.


Cheers,
Dick Johnson
Penguin : Linux version 2.6.13.4 on an i686 machine (5589.66 BogoMips).
Warning : 98.36% of all statistics are fiction.
_
To unsubscribe


****************************************************************
The information transmitted in this message is confidential and may be privileged.  Any review, retransmission, dissemination, or other use of this information by persons or entities other than the intended recipient is prohibited.  If you are not the intended recipient, please notify Analogic Corporation immediately - by replying to this message or by sending an email to DeliveryErrors@analogic.com - and destroy all copies of this information, including any attachments, without reading or disclosing them.

Thank you.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: calling bios interrupt
  2006-02-02  7:48 calling bios interrupt Jozef Kutej
  2006-02-02 14:43 ` Alan Cox
@ 2006-02-03 10:35 ` Vishal Soni
  1 sibling, 0 replies; 4+ messages in thread
From: Vishal Soni @ 2006-02-03 10:35 UTC (permalink / raw)
  To: linux-kernel

On 2/2/06, Jozef Kutej <jozef.kutej@slovanet.net> wrote:
> Hello.
>
> Can someone help me solve my problem with on board watch dog timer that
> need to call bios interrupt? Here's how to update watch dog timer.
>
> mov ax,6f02h
> mov bl, 30      ;number of seconds
> int 15h
>
> How can i do this in kernel so that i can write wdt driver?
>
> Thank you.
CMIIW, is it not that for using BIOS interrupt one has to do the same
by entering in real mode or else real mode interrupt handler, would be
replaced with an appropriate exception handler by Linux.
check this : http://www.mega-tokyo.com/forum/index.php?board=1;action=display;threadid=8997;start=0#msg77808

like when i try to use int 10h in one of my kernel modules and try to
insert it with insmod i get Floating Point Exception.

And one has to use vm86() system call and save the register context as
given in below url to achieve the results.
http://x86.ddj.com/articles/pmbasics/tspec_a1_doc.htm
>
> Jozef Kutej.
> -

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2006-02-03 10:35 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-02-02  7:48 calling bios interrupt Jozef Kutej
2006-02-02 14:43 ` Alan Cox
2006-02-02 15:24   ` linux-os (Dick Johnson)
2006-02-03 10:35 ` Vishal Soni

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox