bug-grub
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Etherboot/GRUB driver for eepro100 - problem in understanding !


From: Christoph Plattner
Subject: Etherboot/GRUB driver for eepro100 - problem in understanding !
Date: Mon, 12 Feb 2001 11:34:19 +0100

Hi Etherboot hackers.

I have the problem downloading the OS kernel image to 1MB
(0x00100000), via GRUB / tftpboot (*** not etherboot here ! ***)
Booting the same kernel from the disk works !

So I tried to analyse the etherboot eepro100 stuff to
analyse, if the kernel is overwritten per packets per
accident, as a transfer buffer or similar is on that address.

While code reading of eepro100.c I got a problem in understanding
one detail:

In the probe section of the driver, the RxFD structure is
initialized. Here the field
          ACCESS(rxfd)rx_buf_addr = (int) &nic->packet;
is setup with the address of the packet frame POINTER inside
the nic structure.

What does the field rx_buf_addr expect ?
The address to a buffer, or the address to a pointer, indicating
the the buffer ?

The point I cannot understand here is the following.
The setup in the probe functions sets the `rx_buf_addr' to the
packet buffer, defined in `config.c'. This means, that an received
packet is transfered there by the i8255[789] chip. On the
other hand, in the `poll' routine, I found following code:

    nic->packetlen =  ACCESS(rxfd)count & 0x3fff;
    memcpy (nic->packet, ACCESS(rxfd)packet, nic->packetlen);

Here the contents from the packet field of the `rxfd' is copied into
the nic->packet frame. But how does the frame come in `rxfd'-packet
field ?? The hardware has to send the data directly to nic->packet.

Why does this code work on booting Linux, etc.... ?

Please help me to understand that point !

With friendly regards
        Christoph Plattner

Ask if my explanations as questions are unclear ...


-----------------------------------------------------------------
private:        address@hidden
company:        address@hidden



reply via email to

[Prev in Thread] Current Thread [Next in Thread]