Support for Freescale SoloLite


#1

Hi all,

I’m thinking I might have a look at adding board support for Freescale’s SoloLite (imx6slevk) as we may be using a variant of this for an upcoming project.

Has anybody already looked at this? Don’t want to re-invent the wheel.

Thanks,

Alex


#2

Hey Alex,

I haven’t heard of anyone working on that board. But I do know @andrei has some updated instructions for how to add a device to resin, so if you can ping him, he can show you the way :slight_smile:


#3

Hi Alex,

The first source of documentation I want to mention is http://docs.resin.io/#/pages/hardware/meta-resin.md . After you have your resin layer ready:

  1. clone all the dependencies for your resin bsp layer (poky and all the other deps)
  2. source poky/oe-init-build-env
  3. use the sample files in meta-resin/meta-resin-fido/conf/samples/ or meta-resin/meta-resin-daisy/conf/samples/
  4. modify the bblayers with all the dependencies of your resin bsp layer (and checkout on the known to work revision)
  5. start by using RESIN_STAGING_BUILD=yes in local.conf as this gives you ssh access, serial console etc.
  6. make sure you have docker on your host that can be accessed without sudo. As well you will need network connectivity.
  7. “MACHINE=yourmachine bitbake resin-image” or “MACHINE=yourmachine bitbake resin-image-flasher” depending on your case

Right now your image is almost complete. The only thing it lacks is a resin configuration file. So you have two ways of doing this:

  1. create an app of a device with the same cpu arch (if you device is armv7 use rpi2, if it is x86, use edison and so on) - see 2 below for dashboard links
  2. download an image - if you created the yocto build with RESIN_STAGING_BUILD=yes downloaded it from dashboard.resinstaging.io , otherwise from dashboard.resin.io. Hint: if you create build with RESIN_STAGING_BUILD=yes you will have ssh access, serial console etc. and additional debugging tools on host os.
    3A. Use https://github.com/agherzan/resin-f2t - tested only on archlinux - you will have to adapt it on other distros.
    3B. Mount the image or burn it and get the config.json from the resin-conf partition. Copy that to your image - same partition.

This should be a temporary trick until you get all the support submitted to resin and we will create you an entry in UI along with an icon.

Hope this is clear.

Here are some additional links:

  1. http://docs.docker.com/engine/installation/ubuntulinux/#create-a-docker-group
  2. https://github.com/resin-io/meta-resin/blob/master/README.md

#4

Thanks @alexandros, @andrei. That looks like just what I need.

I have the Freescale SoloLite EVK on the way to take a look at next week, but in the meantime I thought I’d have a look at building for the Boundary Devices Nitrogen6 Lite (somewhat counter-intuitively based on the Solo part) as I have one to hand.

Unfortunately I seem to be failing at the first hurdle as both my own builds and the downloadable image from BD seem to block on u-boot startup with a spinner (pic attached). I may need to go back to Boundary Devices about this but wondered if you’d seen anything similar?

Cheers, Alex


#5

Hi @ajlennon,

Does uboot have any timeout so you can get into prompt? I suspect they are trying to boot from tftp or similar by default.

Andrei


#6

Yes I started having a look at that. I can break into the boot sequence and started having a look at the scripting. It seems as though it should be trying to boot from the uSD but for some reason isn’t. I was going to have a look at hand-rolling the load of the DTB and the kernel next… The documentation states it should just load from uSD though so I think there’s something strange going on.


#7

Can you share a pastebin of uboot’s printenv?


#8

http://pastebin.com/xDCVkSKQ


#9

And this is the 6x_bootscript it is trying to load and run from the FAT partition

http://pastebin.com/LfRG6dkW

[Edit: It looks as though it is dropping through to run “ums” which seems to be something that exposes the drive over the USB OTG port. Nice idea. So I guess something somewhere earlier on in the script is failing for some reason]

[Edit #2: It looks as though if I break into u-boot and explicitly set the dtbname environment variable to im6dl-nit6xlite.dtb then it all boots up]


#10

I had to make some changes to get meta-resin to build against the latest Fido commit #fa55b8e5.

I’ve put the changes in a fork here: https://github.com/DynamicDevices/meta-resin/commits/master

If you think these looks sensible I can submit a pullreq.

That gets me a resin-image built which boots on the Nitrogen6-lite. It seemed to need a few boots to sort itself out, and was displaying time-outs and such, but seems OK now.

I built for staging so now I’m trying to create an application on the Resin staging server to try to grab the configuration but it’s giving me ETIMEDOUT errors.