Language Selection

English French German Italian Portuguese Spanish

SFP modules on a board running Linux

Filed under
Linux
Hardware

We had to overcome a few challenges to get this setup working, using a mainline Linux kernel.

As we discussed earlier, having SFP modules meant the whole MAC-PHY-SFP link has to be reconfigured at runtime, as the PHY in the SFP module is hot-pluggable. To solve this issue a framework called Phylink, was introduced in mid-2017 to represent networking links and allowing their component to share states and to be reconfigured at runtime. For us, this meant we had to first convert the CPSW MAC driver to use this phylink framework. For a detailed explanation of what composes Ethernet links and why Phylink is needed, we gave a talk at the Embedded Linux Conference Europe in 2018. While we were working on this and after we first moved the CPSW MAC driver to use Phylink, this driver was rewritten and a new CPSW MAC driver was sent upstream (CONFIG_TI_CPSW vs CONFIG_TI_CPSW_SWITCHDEV). We are still using the old driver for now, and this is why we did not send our patches upstream as we think it does not make sense to convert a driver which is now deprecated.

A second challenge was to integrate the 2-wire capability of the VSC8572 PHY into the networking PHY and SFP common code, as our SFP modules I2C bus is connected to the PHY and not an I2C controller from the system-on-chip. We decided to expose this PHY 2-wire capability as an SMBus controller, as the functionality offered by the PHY does not make it a fully I2C compliant controller.

Read more

More in Tux Machines

Ardour 6.0 Information

Our friends at Ardour have released Version 6.0, and we would like to offer them a huge congratulations! While the source code and their own builds were available on release day, many of you have been waiting for Ardour 6.0 to come to Ubuntu’s repositories. Today, that day came. Ardour 6.0 has landed in Ubuntu Groovy Gorilla (future 20.10) and will be on Ubuntu Studio’s daily spins of Groovy Gorilla within 24 hours of this writing. Unfortunately, it is not possible to backport Ardour 6.0 into Ubuntu 20.04 LTS, nor would we want to. This is because if we do, we might disrupt the workflow of people who are currently working with projects in 5.12 that are relying on its functionality and sound. Ardour 6.0 has an all-new Digital Sound Processor (DSP), and as such it may sound somewhat different. Read more

Android Leftovers

Raspberry Pi 4: Chronicling the Desktop Experience – Dear Diary – Week 32

This is a weekly blog about the Raspberry Pi 4 (“RPI4”), the latest product in the popular Raspberry Pi range of computers. Before kicking off this week’s blog, there’s a few recent interesting developments that caught my eye. The first one is merely a cosmetic change. The Raspberry Pi Foundation has decided to rename Raspbian to Raspberry Pi OS. Forgive me if I accidentally forget the name change. The real news is that a new model of the RPI4 has been launched. The major improvement offered by the new model. 8GB of RAM, wow! That’s an impressive chunk of memory on a tiny computer. This development doesn’t render the 32-bit operating system obsolete. After all, the 32-bit system allows multiple processes to share all 8GB of memory, subject to the restriction that no single process can use more than 3GB. But advanced users who need to map all 8GB into the address space of a single process need a 64-bit userland. Step forward the second exciting development — a new 64-bit Raspberry Pi OS. Unsurprisingly, it’s currently in beta. Read more

Code your hardware using this open source RTOS

In general computing, an operating system is software that provides a computer's basic functions. It ensures that a computer detects and responds to peripherals (like keyboards, screens, mobile devices, printers, and so on), and it manages memory and drive space. Even though modern operating systems make it seem that multiple programs are running at the same time, a CPU core can run only a single thread at a time. Each task is executed so quickly and in such rapid succession that the result appears to be massive multi-tasking. This is managed by a subroutine called a scheduler. Read more