Date: Fri, 07 Feb 2014 10:45:42 +0200 From: Viktor <vpenkoff@gmail.com> To: freebsd-drivers@freebsd.org Subject: Receiving jumbo frames Message-ID: <52F49D36.8000103@gmail.com>
index | next in thread | raw e-mail
Hi, folks! I'm writing an extension functionality to not-yet published
network driver.
I'm receiving the typical ethernet frames without problems. Considering
the datasheet of the device,
I'm capable of receiving jumbo frames. When I try to do that, e.g. to
send jumbo frame of 8000 bytes, I'm receiving only a limited count of
them - 105, then the kernel crashes with the following message:
"panic: vm_fault: fault on nofault entry, addr: cfcec000".
I have inspected a kernel dump with kgdb and the problem occurs at the
function bus_dmamap_sync.
Some background information:
To enable the jumbo frame, one must set the appropriate register.
At the software level, a ring buffer with the descriptors is implemented.
The device, under which the driver runs, is arm-based.
The freebsd version is 8.0. The device uses SerialDMA queues for
transmitting and receiving.
To receive packets, the CPU must perform the following:
1. Prepare a linked list of descriptors
2. Configure a given queue with the address of the first descriptor
in the list,
3. enable SerialDMA;
With the transmission - I don't have any problems. The logic is the same
as by the reception of packets - ring buffer with descriptors.
Any ideas what can cause this type of crashes?
help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?52F49D36.8000103>
