Recently I needed to build U-Boot for the Picozed. Mainly because we needed to get our control platform running on another Picozed variant but also to de-risk part of our process. For those of you that don’t know the control platform (called the Fyfe) is made from our IP blocks is in the Zynq fabric with Linux running on the Zynq A9 cores as the software host. This gives us dedicated FPGA speed real time control in the fabric and all the good things that Linux provides such as networking, scripting , python and the like. We use a PicoZed as the System on Module (SoM) for our control platform. So this is the first post in the article series Building U-Boot Picozed.
U-Boot is the ubiquitous boot loader for booting Linux. It can be used to boot other systems as well but I just needed to create a U-Boot that would get me up and running on the Picozed. Building U-Boot had never been my thing but it was decided that I should build and learn it for myself.
U-Boot or more correctly Das U-Boot is supported and maintained by the people at https://www.denx.de/wiki/U-Boot.
As an aside I think that the name Das U-Boot is a reference to the 1981 movie Das Boot about a U boat submarine. This is a great movie with superb German dialog version. Check it out. Information on the movie is here https://en.wikipedia.org/wiki/Das_Boot. The German language version is the better version.
So as I have been doing this whole software development thing for a while and as always the first thing I did was ask an expert. It is always good to ask an expert. It actually doesn’t matter which expert as the experts generally all know each other.
I asked Adam Taylor from Aduivo Engineering and of Microzed chronicle fame. He helps with tricky FPGA issues and also helps with our IP blocks and test-benches. Adam, it turns out, is not a U-Boot guy but recommended a number of people. He also put a LinkedIn post out for me. And I got recommended through Adam T. to Matteo Vit. Matteo is extremely helpful.
So I need to fill in some of the story as to how I was constrained. We have this one client who likes Vivado 2016.2 and so we have residual development and support requirements that are in Vivado 2016.2. Vivado moves on regularly and it generally gets better. At the moment on my Linux laptop I have Vivado 2016.2, 2016.4, 2017.1 and 2017.2 all installed and all with projects. I also have SDK for all these Vivado varients also. I run straight Ubuntu 16.04 and all the Vivado versions go.
The risks of updating to new versions or providing support with historic Vivado versions are really beyond what I want to get into here. I hope to write another blog series about that later.
Before we built U-Boot we needed the FSBL. Before I did this I asked about whether this was the best way to go forward.
I also consulted with Charles M. who is a very good Linux and U-Boot guy, a really good consultant on flash memory usage and also he is great company. He proposed that I take the SPL route to U-Boot. The SPL approach is where the processor configuration is done by including the hardware specific initialization code (ps7_init_gpl) into the U-Boot build. This SPL is not officially supported by Xilinx for the Zynq U-Boot release. The Xilinx description of the process is here http://www.wiki.xilinx.com/U-Boot+Secondary+Program+Loader. I did not pursue this SPL but I plan to go through this process in the future for completeness.
It’s clear when you look at it that the U-Boot version and the Linux version need not be the same. This was a really big realization for me. And an important realization for those building Linux systems.
U-Boot is a boot-loader and it moves the binaries of the kernel, ramdisk and device tree from storage media to memory. That is all it does. U-Boot isn’t actually a Linux specific program.
So some of you will be wondering why I am writing this as the PicoZed must have an off the shelf from the git repo U-Boot version that just goes? I found that the answer to this is no. The U-Boot build when I selected PicoZed for the make option from the repo I pulled from the xilinx git did not work on a PicoZed. I also found that the defconfig used for the picozed (don’t worry if you don’t know what that is I’ll get to that in a follow up blog) was not correctly setup to support the flash memory on the PicoZed.
Well this was a surprise.
So as a relative new U-Boot software user I decided that I would build U-Boot for the PicoZed myself and share the process with you. I take the FSBL approach so what I do is compatible with the Xilinx supported U-Boot. And I got it working. Over the next couple of months I will show you what I have learned in building U-Boot.
ELMG Digital Power are offering you the opportunity to attend our regular webinar on Digital Control in Power Electronics. This month’s webinar is titled “Frequency Responses for Control”.
This is an hour webinar covers
Thursday 12th October at 12 noon California time (3pm Eastern).
Join ELMG Digital Power’s regular monthly Digital Power Webinar and expand your Digital Power knowledge and expertise.
The webinar will be hosted and presented by Dr. Hamish Laird. Hamish is ELMG Digital Power’s CTO and presenter and teacher of the Digital Control of Power Electronics Workshop. He has 25 years experience the design and implementation of varied digital control systems and IP for power electronics.
This exciting opportunity is free and includes a 15 minute Q&A session with Dr. Hamish.
The webinar is scheduled for Thursday 12th October at 12 noon California time (3pm Eastern).
Click the link below to register. Spaces are limited.
Recently I got asked for advice on what we have for Digital Power Electronics Control Reference Books.
Digital power books at the top and hardcore control texts at the bottom.
We have all of these books on our shelves.
All are good.
We recently ran our digital control course in-house for a power electronics company.
Great group of guys and this is what they said.
“Everybody enjoyed the course, and it’s given us a lot of food for thought!”
Send us an e-mail and we’ll work a time out.
Yes – we use
It’s run by the same team
We also do the same workshop practical experiments to reinforce the learning.
No. It is covered by an NDA so we won’t disclose which company it was.
ELMG July Webinar feedback
Thank you for your time, Hamish. It was an hour with quite some information in.
I also was on such a seminar you mentioned, which showed an analog to digital compensator “transformation” (TI).
I also think that most of the papers I saw did it this way. I am more used to handle analog poles… Seems to be interesting to get a better feeling for the z-Plane poles/zeroes. Is there also some paper/book you can recommend to get some better feeling about s vs z plane?
A question from my side is: You mentioned a tool you can download and try some code for free, if I remember right. Can you post, which one that was?
… I am looking forward to the next.
The free software tool is SciLab www.scilab.org
It is a good tool. We use it for demonstrations.
Next webinar will be end of August. Dates will be available soon.
One of the highlights of being a world traveling digital power electronics guy is visiting cool companies. And these guys are super cool. The view from the cafe is exceptional. Big dreams and implementing relentlessly.