<html><head><meta charset="utf-8"><style>body { line-height: 1.5; }blockquote { margin-top: 0px; margin-bottom: 0px; margin-left: 0.5em; }body { font-size: 10.5pt; font-family: 微软雅黑; color: rgb(0, 0, 0); line-height: 1.5; }</style></head><body>
<div><span></span>Hi, all</div><div>I'm graduate student from china. I participated the GSoC project last year with the almost same title. However, what I have done last year is to build a simulation environment, so the CAN <span style="font-size: 10.5pt; line-height: 1.5; background-color: window;">(Controller Area Network) driver ported could be tested by everyone. Details you can get through </span><span style="font-size: 10.5pt; line-height: 1.5; background-color: window;"></span><a href="http://www.rtems.org/wiki/index.php/Qemu_simulations" style="font-size: 10.5pt; line-height: 1.5; background-color: window;">http://www.rtems.org/wiki/index.php/Qemu_simulations</a>, you can also get something usefull information through my personal blog http://jin-yang.github.io/ some days later. <span style="font-size: 10.5pt; line-height: 1.5; background-color: window;"> </span><span style="font-size: 10.5pt; line-height: 1.5; background-color: window;">I just adjust the blog's layout, and most of the blogs were deleted. </span><span style="font-size: 10.5pt; line-height: 1.5; background-color: window;">Actually the reason is I didn't figure out how to insert pictures to RTEMS-WiKi :-(</span></div><div><span style="font-size: 10.5pt; line-height: 1.5; background-color: window;"><br></span></div><div><span style="font-size: 10.5pt; line-height: 1.5; background-color: window;">Another IMPORTANT thing I want to say is about the last year's Project. I really feel sorry for what I have done after the gsoc last year. After the GSoC, actually there are still somethings to do as </span><span style="font-size: 10.5pt; line-height: 1.5; background-color: window;">Pavel Pisa suggested, this will posted at the end of mail. I had to find a job and also prepared for my graduation(I will graduate this year, but it's valid for GSoC2014) so a lot of time was spent on these things. The other reason maybe because I think our final goal is to port LinCAN to RTEMS so what I have done last year was just a middle step. Then I just start to learn how RTEMS works and somethings like that. Little attention was paid to the QEMU. It's my fault. I will try to fix the problems occured last year as soon as possible.</span></div><div><span style="font-size: 10.5pt; line-height: 1.5; background-color: window;"><br></span></div><div><span style="font-size: 10.5pt; line-height: 1.5; background-color: window;">Since I have built the CAN simulation environment last year, so maybe i could be a better choice to port the LinCAN to RTEMS. That's why I want to participate this year's GSoC.</span></div><div><span style="font-size: 10.5pt; line-height: 1.5; background-color: window;"><br></span></div><div><span style="font-size: 10.5pt; line-height: 1.5; background-color: window;">I have write a proposal for this year's GSoC  at </span><span style="font-size: 10.5pt; line-height: 1.5; background-color: window;"></span><a href="https://docs.google.com/document/d/12T2Sd9vDBGfMhlansaW0Ti2OmtrpRPgAXxdPuOHbM78." style="font-size: 10.5pt; line-height: 1.5; background-color: window;">https://docs.google.com/document/d/12T2Sd9vDBGfMhlansaW0Ti2OmtrpRPgAXxdPuOHbM78.</a> Some of the contents is same with the last year's proposal, some of the quesions we have discussed last year, details you may reference https://docs.google.com/document/d/1PCJ4MAR03fH2tm22AA_OD-h5Xlh68yYL08y9bBOIkCM.</div>
<div><br></div><div>However, I still want to get some advices from anyone.</div><div><br></div><div>Best Regards,</div><div>    Jin Yang.</div><div><br></div><div><br></div><div><br></div><div>===================================================</div><div>Letter form <span style="font-family: 微软雅黑, Tahoma; line-height: normal; font-size: 10.5pt; background-color: window;">Pavel Pisa</span></div><div><span style="font-size: 10.5pt; line-height: 1.5; background-color: window;">===================================================</span></div><div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;">Hello Jin Yang and all others,</div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;"> </div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;">congratulation to achieving the main goal.</div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;"> </div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;">I have read your instructions and build sucesfull</div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;">the QEMU on AMD64 Debian Wheezy.</div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;">I have run the compiled QEMU with 64-bit 3.2.x kernel</div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;">used on a host and guest side of the QEMU.</div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;"> </div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;">I have included board integration into LinCAN driver</div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;"> </div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;"><a href="http://sourceforge.net/p/ortcan/lincan/ci/master/tree/lincan/src/pcisja1000mm.c" style="text-decoration: none !important;">http://sourceforge.net/p/ortcan/lincan/ci/master/tree/lincan/src/pcisja1000mm.c</a></div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;"> </div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;">and run successfully LinCAN test tools on the guest side</div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;">against your SJA1000 HW emulation. I have connected host</div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;">side to the virtual SocketCAN bus and used OrtCAN qCANalyzer</div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;">on the host side</div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;"> </div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;"><a href="http://ortcan.sourceforge.net/qcanalyzer/" style="text-decoration: none !important;">http://ortcan.sourceforge.net/qcanalyzer/</a></div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;"> </div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;">I have not found any problems during this test.</div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;">But tat is quit simple test and it would worth to</div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;">try some more demanding testing. But as you know</div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;">we are not fast (unfortuantelly) in many cases so</div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;">it would take some time. Anyway it worth to run</div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;">our CAN Benchmarks to torture code and clean possible</div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;">bugs</div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;"> </div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;"><a href="http://rtime.felk.cvut.cz/can/" style="text-decoration: none !important;">http://rtime.felk.cvut.cz/can/</a></div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;"> </div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;">By the way, we have included actual MPC5200 RTEMS CAN</div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;">driver into our benchmarks this summer and results are</div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;">quite in favor for RTEMS but that is partially caused</div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;">by dummy implementation of CAN gateway user on RTEMS</div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;">for testing. But that worths separate e-mail as we</div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;">finish the work.</div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;"> </div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;">As for actual Jin Yang's QEMU CAN code, I think that</div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;">it is valuable achievement for GSoC project and if</div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;">stability is confirmed by testing, it is good base</div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;">for RTEMS CAN infrastructure development.</div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;"> </div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;">On the other hand, for long term sustainability</div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;">it is required to invest into inclusion of code</div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;">to the QEMU mainline. This requires to port code</div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;">to the actual QEMU git version. I do not know</div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;">how big amount it means because QEMU is fast</div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;">mowing target. It may be above GSoC project contract</div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;">size. But it really worth to be done.</div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;"> </div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;">As for the code review, I think that there is too</div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;">much CAN specific code push into generic qemu-char.c</div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;">file</div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;"> </div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;">  qemu-jin-yang/qemu-char.c</div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;"> </div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;">The registration in actual QEMU git version seems to be more</div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;">modular</div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;"> </div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;">    register_char_driver_qapi("parallel", CHARDEV_BACKEND_KIND_PARALLEL,</div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;">                              qemu_chr_parse_parallel);</div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;"> </div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;">The all SocketCAN specific code has to be moved to other</div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;">file and there must be mechanism to disable build of that</div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;">code</div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;"> </div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;">qemu-jin-yang/qemu-char.c</div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;">+#include <linux/can.h></div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;">+#include <linux/can/raw.h></div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;"> </div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;">The reason is that SocketCAN is Linux specific and that part</div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;">of the code included in the common QEMU infrastructure</div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;">would made it non-portable.</div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;"> </div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;">As for the actual can controller emulation, it is/or can be</div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;">made fully portable to all host systems and for all target</div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;">configurations which support PCI</div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;"> </div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;">  qemu-jin-yang/hw/can-pci.c</div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;"> </div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;">It would worth to separate SJA1000 part of the code from</div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;">PCI mapping to allows use SJA1000 emulator even on non-PCI</div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;">platforms. It would worth even to allows to use SJA1000</div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;">emulator with different PCI cards mapping. The most of real</div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;">CAN interface cards have more PCI regions/BARs and actual CAN</div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;">chips are mapped to region 1 or 2. Region 0 is usually used</div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;">to control PCI bridge part of the card. Use of generic PCI</div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;">bridge chips usually means that some interrupt configuration</div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;">is required in this bridge control area.</div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;">But these two are not high priority for now.</div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;"> </div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;">As for actual SJA1000 chip emulation, I would prefer personally</div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;">if the register bit masks are not hardcoded by numbers but</div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;">if some better readable constants are used. I.e.</div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;"> </div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;"><a href="http://sourceforge.net/p/ortcan/lincan/ci/master/tree/lincan/include/sja1000p.h" style="text-decoration: none !important;">http://sourceforge.net/p/ortcan/lincan/ci/master/tree/lincan/include/sja1000p.h</a></div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;"> </div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;">But again that can be done later.</div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;"> </div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;">Best wishes,</div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;"> </div><div style="font-family: 微软雅黑, Tahoma; line-height: normal;">             Pavel Pisa</div></div><div><br></div><hr style="width: 210px; height: 1px;" color="#b5c4df" size="1" align="left">
<div><span><div style="MARGIN: 10px; FONT-FAMILY: verdana; FONT-SIZE: 10pt"><div>jinyang.sia@gmail.com</div></div></span></div><blockquote style="margin-top: 0px; margin-bottom: 0px; margin-left: 0.5em;"><div>
</div></blockquote>
</body></html>