> Am 29.08.2016 um 09:19 schrieb lf <[email protected]>: > > Hello Michael: > Recently,I am doing some summary and plan on how to start our project. > > There are some question,i want to ask you to figure out. > > 1.Three words:hostmot2 driver, FPGA manager, mksocfpga.As far as i > know,mksocfpga is a project about machinekit running on FPGA boards.This > project's main module is hostmot2 driver which based on FPGA manager code > makes machinekit running on different FPGA boards. It is means that we should > choose kernels which support FPGA manager first.That is my understanging and > that's correct?
The https://github.com/machinekit/mksocfpga/ repository contains the Mesanet hostmot2 VHDL code, and the supplementary IP and configurations to build firmware bitfiles for the CycloneV and Zynq platforms - nothing else. The machinekit hm2_soc_ol HAL driver is the glue layer talking to the FPGA manager to load a bitfile, and to map a portion of the FPGA region (http://freeby.mesanet.com/regmap) into memory so the hostmot2 driver can talk to it. Since the hm2_soc_ol driver expects and FPGA manager API, the latter is a prerequisite, yes. > > 2.As you said "well the KPA website says it runs with RT-PREEMPT kernels as > well, and since Xenomai3 supports multiple flavors you might just as well > check if your kernel isnt RT-PREEMPT under the hood anyway".Actually,I can't > fully understand "since Xenomai3 supports multiple flavors you might just as > well check if your kernel isn't PT-PREEMPT under the hood anyway".Could it be > that Xenomai3 can be patch to RT-PREEMPT kernels? The Xenomai3 website explains the options pretty well: https://xenomai.org/introducing-xenomai-3/ Xenomai3 is mostly about a common API over two options - either RT-PREEMPT or an ipipe-patched kernel in the style of Xenomai2. Since Machinekit has a Xenomai2 as well as an RT-PREEMPT support layer there is no value a Xenomai3 glue layer would add as there would be no added functionality. If you are not sure what your kernel is, consider looking at the boot log: Xenomai2 example: mah@cancan:~$ dmesg |grep Xenomai [ 0.701245] I-pipe: head domain Xenomai registered. [ 0.701280] Xenomai: hal/arm started. [ 0.702721] Xenomai: scheduling class idle registered. [ 0.702745] Xenomai: scheduling class rt registered. [ 0.707480] Xenomai: real-time nucleus v2.6.3 (Lies and Truths) loaded. [ 0.707491] Xenomai: debug mode enabled. [ 0.707944] Xenomai: starting native API services. [ 0.707957] Xenomai: starting POSIX services. [ 0.708160] Xenomai: starting RTDM services. This is typical for a Xenomai-2 type kernel (I-pipe: line). For determining if a kernel is RT-PREEMPT, look at the config: root@mksocfpga:/boot# grep PREEMPT config-4.1.22-ltsi-rt23-ge3c1da3 CONFIG_PREEMPT_RCU=y CONFIG_PREEMPT=y CONFIG_PREEMPT_RT_BASE=y CONFIG_HAVE_PREEMPT_LAZY=y CONFIG_PREEMPT_LAZY=y # CONFIG_PREEMPT_NONE is not set # CONFIG_PREEMPT_VOLUNTARY is not set # CONFIG_PREEMPT__LL is not set # CONFIG_PREEMPT_RTB is not set CONFIG_PREEMPT_RT_FULL=y <-------- this must be present CONFIG_PREEMPT_COUNT=y CONFIG_DEBUG_PREEMPT=y # CONFIG_PREEMPT_TRACER is not set For a quick check, you can look at the contents of /sys/kernel/realtime - if it exists and its content is '1', it is an RT-PREEMPT kernel. The way machinekit detects a kernel at runtime is implemented in https://github.com/machinekit/machinekit/blob/master/src/rtapi/rtapi_kdetect.c . - Michael > > -Fei. > > > > 在 2016年8月25日星期四 UTC+8下午9:57:02,Michael Haberler写道: > > > Am 25.08.2016 um 13:36 schrieb lf <[email protected]>: > > > > Hello Michael: > > Actually,the FPGA is Xillin FPGA. > > well yes, but the relevant code in the kernel is from Altera, is called > 'Altera FPGA Manager' and supports _both_ Xilinx and Altera platforms > transparently which is why we standardize on it. > > before FPGA Manager, there were significant variations as to how things are > done. > > > > > Currently,our zedboard should be based on Xenomai kernels because of > > needing to support third-party application,and it was. > > > > It seems that your image can't be used for our zedboard.So i think may be > > i should build Xenomai kernels for zedboard running machinekit. > > well the KPA website says it runs with RT-PREEMPT kernels as well, and since > Xenomai3 supports multiple flavors you might just as well check if your > kernel isnt RT-PREEMPT under the hood anyway. > > > > As for the KPA EtherCat Master,i think you may have heard.I can explain > > to you carefully later what we are trying to do. > > > describing your highlevel goals helps - easy to get lost in alphabet soup. > > So: why hostmot2 AND EtherCAT? does not add up for me yet > > -m > > > > Currently,our zedboard should be based on Xenomai kernels because of > > needing to support third-party application,and it was. > > > > It seems that your image can't be used for our zedboard.So i think may be > > i should build Xenomai kernels for zedboard running machinekit. > > > > As for the KPA EtherCat Master,i think you may have heard.I can explain > > to you carefully later what we are trying to do. > > > > Thanks,Michael. > > > > --Fei. > > > > 在 2016年8月25日星期四 UTC+8下午5:07:43,Michael Haberler写道: > > > > > Am 25.08.2016 um 10:21 schrieb lf <[email protected]>: > > > > > > Hello Michael: > > > Now,I think i have figured out something.In fact,our zedboard should be > > > based on kernel-4.1.18 patched with Xenomai-3.0.2.Because our zedboard > > > should run third-party application----KPA EtherCat Master,that > > > third-party application is based on Xenomai Kernels.That is it. > > > > If that kernel version supports the Altera FPGA manager you might be lucky, > > else not so much > > > > I do not think you will find much support from here for that setup > > > > but maybe you can explain a bit what you are actually trying to do: if you > > use an EtherCAT master to talk to _remote_ EtherCAT devices, what is the > > purpose of talking to _local_ devices connected to the FPGA? > > > > > > -m > > > > ps: below it should say "The BB uses Xenomai2 on a 3.8 kernel base ..." > > > > > > > > > > > > > > 在 2016年8月24日星期三 UTC+8下午8:22:11,Michael Haberler写道: > > > > > > > Am 24.08.2016 um 14:05 schrieb lf <[email protected]>: > > > > > > > > Hello Michael: > > > > This is my mistake.Your image is ok,I have tried again.It can be > > > > written to SD card. > > > > There is a question I want to ask you.The kernels for all platforms > > > > are based on RT-PREEMPT kernels and that is to say Xenomai kernels are > > > > no longer supported? > > > > > > That is factually wrong. The BB uses Xenomai 3.8 and there are i386 and > > > amd64 Xenomai kernels available in the debian repo. We did cede support > > > for RTAI a while ago. > > > > > > Machinekit supports either flavor transparently, and builds happen for > > > all of non-realtime ('posix'), RT-PREEMPT or Xenomai. On startup, > > > Machinekit detects the kernel type and does the right thing. That opens > > > the option to use whatever kernel is available for a given platform, as > > > you cannot assume a certain RT kernel is available on all potential > > > platforms. > > > > > > > I think may be I should build Xenomai kernels for zedboard running > > > > machinekit,because in my side I have to choose Xenomai kernels. > > > > > > You are heading for a complete waste of time. Xenomai2 stopped at linux > > > 3.8, and all the FPGA manager support required for mksocfpga is from > > > 4.1/4.4 onwards in the respective manufacturer trees. > > > > > > can you explain a bit what "in my side I have to choose Xenomai kernels" > > > means? Being faced with the option of a super-intrusive kernel patch > > > which is de-facto extinct except for the installed base, and the > > > alternative heading for linux mainline, it looks like an easy choice to > > > me. > > > > > > In terms of performance and maintainability there are not many good > > > reasons left to pursue Xenomai2. You might want to read up on > > > http://blog.machinekit.io/2015/11/and-winner-is-rt-preempt.html . > > > > > > - Michael > > > > > > > > > > > > > > 在 2016年8月23日星期二 UTC+8下午8:48:31,lf写道: > > > > Hello Michael Haberler: > > > > I have tried to write other image to the SD card's boot partition > > > > with bmaptools.If I write other image,the SD card would be ok and it > > > > can be found by system.So I think may be the image damaged while I > > > > download,because the download speed was very slow that time.I download > > > > the image through the url you given again,but it doesn't work again.I > > > > think may be the image is wrong. > > > > > > > > 在 2016年8月23日星期二 UTC+8下午2:30:49,lf写道: > > > > Hello Michael Haberler: > > > > There is a problem that I can't figure out.When I write the image to > > > > the SD card's boot partition with bmaptools successfully,then I can't > > > > find the SD card's boot partition in my debian system.I have posted the > > > > problem to machinekit groups in detail. > > > > > > > > 在 2016年8月22日星期一 UTC+8上午8:11:25,Michael Haberler写道: > > > > Hello Liu Fei, > > > > > > > > > > > > > Am 21.08.2016 um 14:59 schrieb lf <[email protected]>: > > > > > > > > > > Dear all: > > > > > I'm from China.Recently,I was compiling machinekit running on i386 > > > > > computer and zedboard.When I followed machinekit official > > > > > Documentation in the official website—http://www.machinekit.io/,I > > > > > compile machinekit successfully running on the Debain.But when I > > > > > tried to cross compile machinekit to run on zedboard,I found there > > > > > are not official documentation to follow.So I turned to > > > > > https://github.com/machinekit/machinekit/issues and I saw several > > > > > issues about zedboard.I found there are someone has cross compiled > > > > > machinekit running on zedboard,and there are a video > > > > > show—https://youtu.be/_AcWxu475aY.I was encouraged. > > > > > I found out there are a directory about cross compiling machinekit > > > > > running on zedboard,it is mksocfpga directory.But the README file > > > > > tell about QuartusProjects more and clearer,and I follow the README > > > > > file in the VivadoProjects directory when I executed > > > > > ./make_bitfile.sh microzed/microzed_jd2cb/config then I failed.I have > > > > > looked back to the make_bitfile.sh,I can't understand it > > > > > embarrassedly.So I turn to there for help.We also can discuss there. > > > > > Thanks,guys. > > > > > > > > We do want machinekit and the hostmot2 FPGA running on both the Altera > > > > CycloneV and Xilinx Zynq platforms as they have the greatest potential > > > > in price/performance for machine control of any embedded platform on > > > > the market. They blow away everything based on host-side-only signal > > > > generation by at least two orders of magnitude short only of the > > > > Beaglebone/Sitara platform - I have scoped stepgen at 3.6Mhz output and > > > > reliable A/B decoding at 700kHz, which is plainly impossible with > > > > non-hardware accelerated platforms. > > > > > > > > We are very close to reaching that goal, after over a year's work - see > > > > the machinekit/machinekit and machinekit/mksocfpga issue tracker, where > > > > all the related work is discussed. If you are interested I recommend to > > > > 'watch' both repositories on github to stay up to date. In a sense, the > > > > tracker issues are machinekit's developer exchange. > > > > > > > > to summarize where we are - > > > > > > > > - we currently focus on the Terasic DE0 Nano (cv) and MYIR Z-Turn and > > > > Zedboard (zynq) as initial targets > > > > - most of the software is generic - a new board might need an adapted > > > > u-boot bootloader and matching devicetree but not much else in > > > > specifics > > > > > > > > - machinekit - software: > > > > - a machinekit hostmot2 driver which covers both platforms exists and > > > > so far works reliably; except for that driver's command line all the > > > > hostmot2 documentation applies > > > > - example configs exist but again are essentially hostmot2-style > > > > without much surprises > > > > - FPGA firmware config: > > > > - cv: firmware for 4xMesanet 7i76, 1x7i76+1x7i85s+2xGPIO exists and > > > > works - known to move metal reproducibly > > > > - zynq: firmware for Zedboard, Z-turn exists, GPIO (no Mesanet > > > > support AFAICT yet), Devin has a machine running with that > > > > - continuous integration (meaning debian packages exist and are being > > > > produced automatically if a github PR is merged): > > > > - machinekit: done - you do NOT have to build for 'zedboard' or some > > > > other board as the hostmot2 driver support is completely generic and > > > > even binary compatible, and covers both platforms > > > > - u-boot boot loaders for all platforms: done > > > > - RT-PREEMPT kernels for all platforms: done > > > > - FPGA firmware for CycloneV: done > > > > - FPGA firmware for Zynq platforms: in very late stages, Devin is > > > > busy touching this up > > > > - SD image assembly: > > > > - we have had a preliminary SD image for the Terasic DE0 nano board > > > > for a while: > > > > https://gist.github.com/mhaberler/89a813dc70688e35d8848e8e467a1337, > > > > this image has been used by a few people and so far no major damage > > > > reports have come in - it is a 'developer preview' with machinekit as a > > > > 'run in place' build compiled for easy updating and debugging (i.e does > > > > currently not use the machinekit debian packages) > > > > - I am currently working on an same-style SD image for the Zynq > > > > platforms - the first booting CI build happened yesterday and does not > > > > yet have all the latest fixes in but I do not expect showstoppers; this > > > > image should support all Zynq platforms provided the device tree is > > > > adapted for in the boot phase - everything else is generic, as is the > > > > linux kernel. > > > > - these images are console images at this time - no display support > > > > as of yet. You will have to work through remote X11. > > > > > > > > 'we' are Michael Brown, Charles Steinkuehler, Devin Hughes, Bas de > > > > Brujin, and myself. > > > > > > > > > > > > All this is currently not yet in shape as turn-key image for beginners > > > > which is why we have not made a lot of noise about it, but the dust is > > > > settling. > > > > > > > > > > > > Since it seems you are an advanced user it'd be great to add you to > > > > 'we', provided some patience as we will face some more iterations on > > > > the Zynq side. > > > > > > > > My recommendation would be to read up in particular on: > > > > > > > > https://github.com/machinekit/machinekit/issues/915 > > > > https://github.com/machinekit/machinekit/issues/687 > > > > https://github.com/machinekit/mksocfpga/issues/20 > > > > https://github.com/machinekit/machinekit/issues/903 and all other > > > > issues in https://github.com/machinekit/mksocfpga/issues to get the > > > > idea how things came about > > > > > > > > and then tune in on https://github.com/machinekit/mksocfpga/issues/20 > > > > as the Zynq SD image matures. > > > > > > > > if you are ready for some immediate pain ;) : > > > > - download the image in > > > > http://deb.mah.priv.at/uploads/zynq/debian-8.5-console-armhf-2016-08-21 > > > > - write it to an SD card with bmaptools > > > > - mount the linux partition of that card on some linux machine, and > > > > inspect /boot/dtbs - I guess you will have to change /boot/uEnv.txt > > > > dtb=zynq-zturn.dtb to dtb=zynq-zed.dtb > > > > - hope it boots > > > > - login as machinekit, sudo apt update/upgrade > > > > - see the firmware files in /lib/firmware/zynq and the dtbo's in > > > > /lib/firmware/zynq/dtbo and read up on github.com/machinekit/mksocfpga > > > > what they provide > > > > - study the configs in > > > > /home/machinekit/machinekit/configs/hm2-soc-stepper > > > > - the 5i25-zynq.ini is a starting point - no guarantees it works out of > > > > the box > > > > - the irqtest.hal test script contains the latest syntax and options > > > > for the hostmot2 and hm2_soc_ol components, take clues and adapt from > > > > there > > > > > > > > As soon as you get something working we'd be looking for your pull > > > > requests! > > > > > > > > best regards, > > > > - Michael > > > > > > > > > > > > > > > > > > > > > > -- > > > > > website: http://www.machinekit.io blog: http://blog.machinekit.io > > > > > github: https://github.com/machinekit > > > > > --- > > > > > You received this message because you are subscribed to the Google > > > > > Groups "Machinekit" group. > > > > > To unsubscribe from this group and stop receiving emails from it, > > > > > send an email to [email protected]. > > > > > Visit this group at https://groups.google.com/group/machinekit. > > > > > For more options, visit https://groups.google.com/d/optout. > > > > > > > > > > > > -- > > > > website: http://www.machinekit.io blog: http://blog.machinekit.io > > > > github: https://github.com/machinekit > > > > --- > > > > You received this message because you are subscribed to the Google > > > > Groups "Machinekit" group. > > > > To unsubscribe from this group and stop receiving emails from it, send > > > > an email to [email protected]. > > > > Visit this group at https://groups.google.com/group/machinekit. > > > > For more options, visit https://groups.google.com/d/optout. > > > > > > > > > -- > > > website: http://www.machinekit.io blog: http://blog.machinekit.io github: > > > https://github.com/machinekit > > > --- > > > You received this message because you are subscribed to the Google Groups > > > "Machinekit" group. > > > To unsubscribe from this group and stop receiving emails from it, send an > > > email to [email protected]. > > > Visit this group at https://groups.google.com/group/machinekit. > > > For more options, visit https://groups.google.com/d/optout. > > > > > > -- > > website: http://www.machinekit.io blog: http://blog.machinekit.io github: > > https://github.com/machinekit > > --- > > You received this message because you are subscribed to the Google Groups > > "Machinekit" group. > > To unsubscribe from this group and stop receiving emails from it, send an > > email to [email protected]. > > Visit this group at https://groups.google.com/group/machinekit. > > For more options, visit https://groups.google.com/d/optout. > > > -- > website: http://www.machinekit.io blog: http://blog.machinekit.io github: > https://github.com/machinekit > --- > You received this message because you are subscribed to the Google Groups > "Machinekit" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > Visit this group at https://groups.google.com/group/machinekit. > For more options, visit https://groups.google.com/d/optout. -- website: http://www.machinekit.io blog: http://blog.machinekit.io github: https://github.com/machinekit --- You received this message because you are subscribed to the Google Groups "Machinekit" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. Visit this group at https://groups.google.com/group/machinekit. For more options, visit https://groups.google.com/d/optout.
