Re: [PATCH 0/3] New firewire stack



Stefan Richter wrote:
...
Another question is whether the stack-internal APIs are really fit for
non-OHCI chips. There is an unfinished low-level driver for GP2Lynx
which worked to some degree at some point, but other than that I don't
remember positive or negative reports in this department. Maybe proper
documentation of the stack-internal APIs would already help embedded
developers a lot. Furthermore, there may be question marks WRT
interaction of the FireWire stack with architecture specific kernel code.

I think some of the problems with the current stack come from the fact that it was originally written (by Andreas Bombe) for the PCILynx chipset, in other words, *not* for the OHCI chipset. The PCILynx chipset is a much lower level chipset, it offloads much more to software. For example, each self ID is received as an individual packet, where the OHCI chipset receives these into a special buffer and notifies software when it has received a consistent set of packets. The current stack has a callback for the host controller driver to call once the bus reset phase starts, a callback for each received self ID and a callback to indicate the end of the bus reset phase.

In the new stack, the controller/core interface is more suited for the OHCI controller. The stack doens't go into a bus reset state, and all self IDs are reported as an atomic event. This makes the upper layers much simpler, suits the OHCI controller better, and should only require a few lines extra code in a PCILynx driver to buffer up the self IDs. And it's arguably better to have the PCILynx driver do this than have the OHCI controller split up and otherwise atomic event.

But back to the subject matter: Clearly, Kristian concentrates on
PCI/OHCI-1394 hardware at the moment. If embedded developers have
specific requirements on the FireWire stack's design, they should IMO
contribute with a list of requirements or maybe even with patches.

It's true that I'm developing for PCI+OHCI, but I've kept the controller/core stack split that the old stack has, nothing outside the OHCI driver depends on PCI (I'm using the generic DMA API). I've shifted the abstraction level up a bit for the controller interface, which makes sense in general, but also since this is what every desktop or laptop out there has. That said, I don't think anything in the stack design will break for embedded/non-OHCI chipsets.

cheers,
Kristian
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



Relevant Pages

  • Re: Broadcom 43xx first results
    ... Atheros driver in the Linux kernel? ... >> stack, my first question is how do you plan to migrate the drivers ... > chipset has in order to be able to accommodate them in the 802.11 design ... > Devicescape code is not actually derived from Host AP code. ...
    (Linux-Kernel)
  • Re: Broadcom 43xx first results
    ... More than half the currently Linux-compatible wireless cards ... I do not want to enter in this flamewar, but the current driver i'm working ... on (marvell libertas chipset) need management frames in software. ... day i can do it in hardware but for now i need to choose a ieee802.11 stack. ...
    (Linux-Kernel)
  • Re: Broadcom 43xx first results
    ... > stack, my first question is how do you plan to migrate the drivers ... chipset has in order to be able to accommodate them in the 802.11 design ... As both the IPW and the DeviceScape stacks are derived ... > anounced any plan to port his HostAP driver to his DeviceScape ...
    (Linux-Kernel)
  • Re: Asus K8S-MX / SiS 965L workarounds
    ... And you'll get the normal MAC address. ... >SiS 965L chipset). ... >To help all those who have a board with this same chipset, ... Driver for onboard LAN adapter completely missing. ...
    (comp.os.linux.hardware)
  • Re: [PATCH] PCI legacy I/O port free driver - Making Intel e1000 driver legacy I/O port free
    ... Maybe my understanding on the e1000 driver was wrong. ... IDs whose chipset are 82546 rev3 do not use I/O port. ... Since there are about 12 different physical e1000 NIC chips, it would be best to correlate the capability of each NIC chip number to be able to work without legacy IO mode instead of providing this mapping based on the PCI device ID. ...
    (Linux-Kernel)