Reading the DocBook files in Linux kernel’s documentation

This is my short saga about my not necessarily intelligent actions for reading a DocBook paper. So I wanted to read some documentation from my Linux kernel sources. It happened to be in DocBook format. In the kernel source’s root, I tried $ make htmldocs or I could have gone $ make pdfdocs Or mandocs. [...]

Cache coherency on i.MX25 running Linux

What this blob is all about Running some home-cooked SDMA scripts on Freescale’s Linux 2.6.28 kernel on an i.MX25 processor, I’m puzzled by the fact, that cache flushing with dma_map_single(…, DMA_TO_DEVICE) doesn’t hurt, but nothing happens if the calls are removed. On the other hand, attempting to remove cache invalidation calls, as in dma_map_single(…, DMA_FROM_DEVICE) [...]

stmmaceth: NetworkManager fails to bring up a wired Ethernet NIC

The problem In short: Running linux 3.8.0 on Altera’s Cyclone V SoC, NetworkManager doesn’t bring up the Ethernet port. It also makes false accusations such as Jan 1 00:00:17 localhost NetworkManager[1206]: <info> (eth0): driver ‘stmmaceth’ does not support carrier detection. and later on also says Jan 1 00:00:17 localhost NetworkManager[1206]: <warn> (eth0): couldn’t get carrier [...]

Linux kernel version magic: Adding the missing plus suffix

Trying to insmod a kernel module, which was just compiled against the true headers of the running kernel, I got: # insmod mymodule.ko insmod: error inserting ‘mymodule.ko’: -1 Invalid module format And this in /var/log/syslog: mymodule: version magic ’3.3.0-xxx SMP preempt mod_unload ARMv7 ‘ should be ’3.3.0-xxx+ SMP preempt mod_unload ARMv7 ‘ Really? Are you [...]

Interrupt definitions in DTS (device tree) files for Xilinx Zynq-7000 / ARM

Having some trouble to figure out what I should write in my own hand-written DTS entry for my logic, I ended up reading the sources of the Linux kernel (version 3.3, which is the currently used for Zynq). The purpose is to hook up a device defined in the PL of a Zynq-7000 (FPGA-style logic [...]

Radeon: reserve failed for wait in /var/log/messages

Looking at my system log (kernel 2.6.35.4), this is a common thing: Apr 24 12:04:49 kernel: radeon 0000:01:00.0: ffff8802d0aa1a00 reserve failed for wait Apr 24 12:04:49 kernel: radeon 0000:01:00.0: ffff8802d0aa1a00 reserve failed for wait Apr 24 12:04:51 kernel: radeon 0000:01:00.0: ffff8802d0aa1a00 reserve failed for wait Apr 24 12:04:51 kernel: radeon 0000:01:00.0: ffff8802d0aa1a00 reserve failed for [...]

When request_irq() fails with -EINVAL

It may help investigating the interrupt descriptors. For a 2.6.38 kernel, putting this in a kernel module load supplies some information (includes, declarations and code mixed below. Organize properly in your own module) #include <linux/irq.h> #include <linux/interrupt.h> #include <asm/irq.h> int i; struct irq_desc *desc; for_each_irq_desc(i, desc) { if (!desc) continue; printk(KERN_INFO “%d: status=%08x, chip=%08x, handle_irq=%08x\n”, [...]

Armadeus APF51 / Freescale i.MX51: A kit for reverse engineering the EIM bus

What we have here As one can guess from my notes about the i.MX51′s external bus and the oscilloscope shots I’ve published, I made myself a small dissection kit for watching the bus’ lines activity with a digital oscilloscope. This is a good time to mention, that the kit was done quickly and dirty, so [...]

i.MX51 EIM bus clarified

These are my notes as I made my way in grasping how the EIM bus works. Unfortunately, the information in the reference manual was far from complete, so except for the list of acronyms, this page consists of things I found out by reverse engineering the bus. The actual bus cycle outlines and timings are [...]

The FPGA+ARM Armadeus APF51 board: Buildroot notes

Scope This post was spun off the main post regarding setting up the Armadeus board for Embedded Linux on ARM and Xilinx Spartan-6 FPGA. It covers my own little war story as I set up the Buildroot SDK, so I could have my own cross compiler and Linux kernel to work with. As kernel.org happened [...]