On Wed, Nov 23, 2022 at 02:18:02PM -0800, Colin Foster wrote: > > The thing confused me is that one chip is named Felix and the other > > one is Seville, but the shared code is named felix as well. So at > > first I thought maybe Felix is a family of chips and Seville is a > > chip from that family, dunno :D > > Not important, but in case anyone is curious: > > Ocelot is a family of switches. Linux support exists for the internal > MIPS on some of those devices. My understanding is the switching > hardware is licensed out to other chips that can be controlled > externally (e.g. PCIe). Felix was the first chip to do so with full > Linux support. When Seville came along, it utilized a lot of common > code from Felix. Thus, Felix is a "chip" as well as a "library" - > specifically the DSA implementation of Ocelot. At least in my mind. > > (Note: I haven't verified this timeline back to the early days of > Felix... I'm mostly speculating) I'm not sure marketing would agree that Ocelot, Felix, Seville are part of the same "family". They're all Vitesse switch designs which share the same core architecture, even if some are sold by other companies. The Ocelot switchdev driver came first to Linux. The Felix switch was very similar, except it was DSA and not switchdev. So when it got added, Ocelot became the name of a library for sharing code between a switchdev front-end and a DSA front-end, as well as the name of a driver proper. The Seville hardware is actually much older than both Ocelot and Felix. It comes from the same family as Serval. It's integrated into old Freescale PowerPC SoCs. It only got Linux support late in its life, when it became super easy to do it, basically after Felix paved the way. When that happened, Felix also got split up into a library (for the DSA aspects of interfacing with the ocelot library) and a driver proper. Colin is now working on a switch which marketing really would say that it's part of the Ocelot family. Except it's DSA, so it has to use the Felix library. Anyway, TL;DR: name of common code is given by the first supported hardware, it's quite a common pattern really. What's more interesting to me is the strange humour of somebody at Vitesse (now Microchip) who gave the feline code names for these switches (Ocelot, Serval, Jaguar). Felix is none other than Felix the Cat.