[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: questions about undi patch
From: |
Thomas Reifferscheid |
Subject: |
Re: questions about undi patch |
Date: |
Wed, 21 Jul 2004 15:59:28 +0200 (CEST) |
As this message contains a CC: to Mr. Brown here
is again some short explanation:
http://lists.gnu.org/archive/html/bug-grub/2004-07/msg00063.html
Here is about the strange problem as I know of it:
int eb_pxenv_undi_isr ( void ) {
grub_printf("%x => ",undi.pxs->undi_isr.FuncFlag);
success = undi_call ( PXENV_UNDI_ISR );
grub_printf("%x\n",undi.pxs->undi_isr.FuncFlag);
return success;
}
get's called.
Let's have a look on undi.pxs->undi_isr.FuncFlag:
(from pxe.h)
# define PXENV_UNDI_ISR_IN_START 1
# define PXENV_UNDI_ISR_IN_PROCESS 2
# define PXENV_UNDI_ISR_IN_GET_NEXT 3
# define PXENV_UNDI_ISR_OUT_OURS 0
# define PXENV_UNDI_ISR_OUT_NOT_OURS 1
# define PXENV_UNDI_ISR_OUT_DONE 0
# define PXENV_UNDI_ISR_OUT_TRANSMIT 2
# define PXENV_UNDI_ISR_OUT_RECEIVE 3
# define PXENV_UNDI_ISR_OUT_BUSY 4
/* yes, strange. */
1 => 0
2 => 3
3 => 0
1 => 0
2 => 0
1 => 0
2 => 3
3 => 0
1 => 0
2 => 0
1 => 0
2 => 3
3 => 0
1 => 0
2 => 0
1 => 0
2 => 3
3 => 0
1 => 0
2 => 0
1 => 0
2 => 3
3 => 0
1 => 0
2 => 0
1 => 0
2 => 3
3 => 3
3 =>
/* poff, never returning */
Strange, isnt it?
If I manually set it back to 0, all seems to work fine
(although I did not yet compare a memory-dump with my
original files initrd.gz/tftpboot.img)
Let's see about some variables when this occurs:
nic->packet : 0x215a2
nic->packetlen : 0x5c6
undi.pxs->undi_isr.Frame.segment : 0x8200
undi.pxs->undi_isr.Frame.offset : 0x2ee4
undi.pxs->undi_isr.BufferLength : 0x3c
undi.pxs->undi_isr.FuncFlag : 0x3
How to interpret this?
Greetings,
Thomas