Home  >  Edison  >  Introduction

Bugs, features and testing

Compared to the original Edison Images there are features I removed, because they didn’t build. And if I have no interest in the feature, fixing it has low priority.

There are also features that do build but don’t work fully. MRAA is an example of this. Certain functions are pinmux’ed, the function is on a pin that has an alternate function. In the original Edison kernel the mux was controlled through debugfs, more or less a temprary solution. However, MRAA relied on debugfs providing the pinmux control. And vanilla linux kernels do not provide this, so MRAA will cause an error on startup.

The pinmux’es are envisioned to be set outside of the kernel (without requiring specific platform code). That means that code needs to go to u-boot. To prevent platform code to be moved from the kernel to u-boot, kernel developer Andy Shevchenko has worked to implement minimal ACPI tables describing Edison. With this u-boot will work as a BIOS light, serving the ACPI tables to the kernel and allowing it to boot.

This is a work in progress. I am sure Andy would appreciate help in fixing up the kernel, u-boot or ACPI tables. There is code in the kernel for which this minimal ACPI tables is the first time use. In the meanwhile, expect a branch pyro-acpi or rocko-acpi to appear here. This branch should compile a suitable u-boot version, compile the ACPI tables and build the u-boot image from that. Further it should build an appropriately patched kernel that will make use of that.

I have already upstreamed a patch to MRAA that disables debugfs for kernels > 4.0, so at least MRAA will start. This allows at least the serial port (hsu) and gpio to work.

Other stuff needs kernel or U-Boot support (we have patches in place to get i2c-6 working, through the kernel or through U-Boot).

And there are features that don’t work but I haven’t tested yet.

This is the main reason for not completely replacing the original Edison image. You might want to check if functions you rely on are present and working properly. And you might want to work on those if not.

So, if you find a bug, please create an issue on Github. Fixing the issue will of course be quicker if you provide the solution as well. And if you want or need features added, go ahead, fork me, add what you want and send me a pull request.