Re: [PATCH rtems-lwip] lwip: Split sources into origin directories

2022-04-16 Thread Pavel Pisa
Hello Joel,

On Saturday 16 of April 2022 17:26:02 Joel Sherrill wrote:
> On Sat, Apr 16, 2022, 9:54 AM Pavel Pisa  wrote:
> > On Thursday 14 of April 2022 22:08:00 Vijay Kumar Banerjee wrote:
> > >  rename {lwip => uLan}/ports/os/lwipopts.h (100%)
> > >
> > > >  rename {lwip => uLan}/ports/os/rtems/arch/cc.h (100%)
> > > >  rename {lwip => uLan}/ports/os/rtems/arch/perf.h (100%)
> > > >  rename {lwip => uLan}/ports/os/rtems/arch/sys_arch.c (100%)
> > > >  rename {lwip => uLan}/ports/os/rtems/arch/sys_arch.h (100%)
>
> Ok. Any suggestions for a directory name? :)

I am not in the full sync and I have lost the tracks where
are all RTEMS LwIP repo copies.

Do we speak about https://git.rtems.org/vijay/rtems-lwip.git ?

If it is that way then LwIP uses practice to put integration
stuff into "ports" directory so I would leave the structure
under LwIP as it is

  ports/os/rtems/arch/sys_arch.c

Or if you want to somehow separate sources into more repos
then possible but would complicate keep the drivers and targets
in a sync in future.  I am losing tracks of the build tools etc...
I hope that when it settles the simple instructions
would be added on the integration page

  https://devel.rtems.org/wiki/Packages/LWIP

If you need to move ports/os/rtems/arch/sys_arch.c under some directory,
then it should be something like

  rtems-support/ports/os/rtems/arch/sys_arch.c

if the code can be used over all RTEMS targets. Which should be
a goal anyway and I have initiated it such way years ago.
But I am not sure why to not let code in the actual
lwip/ports/drivers together as well. I see that
in devel branch is the most of our TMS570 code wiped
out... hmm.. why. There is

 lwip/ports/drivers/bbb

this location seems to me as OK.
In the suggested changes is

{lwip/ports/drivers => uLan/ports/driver/tms570_emac}/phy_dp83848h.c

I agree with move of all TMS570 specific code under

  /ports/driver/tms570_emac

Again if all these shuffles are done only for some license changes
I would prefer to be noticed and I think that I would not be blocked
by any of my former studnets nor the faculty to relicense code.
I would inform the faculty (where I am only left from former group,
where I have lead part of this development, part was at my company)
as well as students.

I would prefer if real developer names who invested time into work
are included at least as Authors in the files but the copyright can
be moved to RTEMS foundation or whatever.

But as I have said I have lost track and hope that stuff will survive
in some form till the time when I have some free time or studnet
to work on the project as his/her theses, GSoC etc...
I have used the code with external OMK make, I agree that this
is not right way forward but I wait for outcome of these who
have more experience with RSB and related tools and propose
integration. 

Best wishes,

Pavel

___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


Re: [PATCH rtems-lwip] lwip: Split sources into origin directories

2022-04-16 Thread Joel Sherrill
On Sat, Apr 16, 2022, 9:54 AM Pavel Pisa  wrote:

> Hi Vijay and Kinsey,
>
> I monitor from distance LwIP for RTEMS progress and I am happy
> for that and when the code settles and I find a time,
> I try to test it with TMS570. But I have notices next moves
>
> On Thursday 14 of April 2022 22:08:00 Vijay Kumar Banerjee wrote:
> >  rename {lwip => uLan}/ports/os/lwipopts.h (100%)
> >
> > >  rename {lwip => uLan}/ports/os/rtems/arch/cc.h (100%)
> > >  rename {lwip => uLan}/ports/os/rtems/arch/perf.h (100%)
> > >  rename {lwip => uLan}/ports/os/rtems/arch/sys_arch.c (100%)
> > >  rename {lwip => uLan}/ports/os/rtems/arch/sys_arch.h (100%)
>
> please do not use uLAN for directory name inside LwIP.
> uLAN is our RS-485 communication protocol project
> and it includes sysless (bare hardware integration layer)
> as well as others for RTEMS, NuttX, GNU/Linux.
> And LwIP is used as subproject inside our larger projects.
> Yes, project is used as base for more our project even
> unrelated to RS-485 but that is historical relict
> and should not propagate into RTEMS.
>
> But there is no reason to keep uLAN in the name.
> These parts which I have written myself or has been
> writtent by Roman Bartosinski under my company
> (PiKRON) and colleague Alvat.cz funding acan be
> relicensed under any RTEMS compatible preferred license.
> Only me and Roman needs to agree on that and I do not
> see that as a problem. So do not put there uLAN name.
> This RTEMS specific integration should stay in some
> RTEMS specific LwIP subdirectory or can be even included
> into RTEMS mainline. But please, do not add there uLAN
> name nor OMK (our makesystem abbreviation).
>

Ok. Any suggestions for a directory name? :)

--joel


> Best wishes,
>
> Pavel
> --
> Pavel Pisa
> phone:  +420 603531357
> e-mail: p...@cmp.felk.cvut.cz
> Department of Control Engineering FEE CVUT
> Karlovo namesti 13, 121 35, Prague 2
> university: http://control.fel.cvut.cz/
> company:https://www.pikron.com/
> personal:   http://cmp.felk.cvut.cz/~pisa
> projects:   https://www.openhub.net/accounts/ppisa
> CAN related:http://canbus.pages.fel.cvut.cz/
> Open Technologies Research Education and Exchange Services
> https://gitlab.fel.cvut.cz/otrees/org/-/wikis/home
>
>
___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


Re: [PATCH rtems-lwip] lwip: Split sources into origin directories

2022-04-16 Thread Pavel Pisa
Hi Vijay and Kinsey,

I monitor from distance LwIP for RTEMS progress and I am happy
for that and when the code settles and I find a time,
I try to test it with TMS570. But I have notices next moves

On Thursday 14 of April 2022 22:08:00 Vijay Kumar Banerjee wrote:
>  rename {lwip => uLan}/ports/os/lwipopts.h (100%)
>
> >  rename {lwip => uLan}/ports/os/rtems/arch/cc.h (100%)
> >  rename {lwip => uLan}/ports/os/rtems/arch/perf.h (100%)
> >  rename {lwip => uLan}/ports/os/rtems/arch/sys_arch.c (100%)
> >  rename {lwip => uLan}/ports/os/rtems/arch/sys_arch.h (100%)

please do not use uLAN for directory name inside LwIP.
uLAN is our RS-485 communication protocol project
and it includes sysless (bare hardware integration layer)
as well as others for RTEMS, NuttX, GNU/Linux.
And LwIP is used as subproject inside our larger projects.
Yes, project is used as base for more our project even
unrelated to RS-485 but that is historical relict
and should not propagate into RTEMS.

But there is no reason to keep uLAN in the name.
These parts which I have written myself or has been
writtent by Roman Bartosinski under my company
(PiKRON) and colleague Alvat.cz funding acan be
relicensed under any RTEMS compatible preferred license.
Only me and Roman needs to agree on that and I do not
see that as a problem. So do not put there uLAN name.
This RTEMS specific integration should stay in some
RTEMS specific LwIP subdirectory or can be even included
into RTEMS mainline. But please, do not add there uLAN
name nor OMK (our makesystem abbreviation).

Best wishes,

Pavel
--
Pavel Pisa
phone:  +420 603531357
e-mail: p...@cmp.felk.cvut.cz
Department of Control Engineering FEE CVUT
Karlovo namesti 13, 121 35, Prague 2
university: http://control.fel.cvut.cz/
company:https://www.pikron.com/
personal:   http://cmp.felk.cvut.cz/~pisa
projects:   https://www.openhub.net/accounts/ppisa
CAN related:http://canbus.pages.fel.cvut.cz/
Open Technologies Research Education and Exchange Services
https://gitlab.fel.cvut.cz/otrees/org/-/wikis/home

___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


Re: GSoC - CAN driver for BBB Was: CAN Options and Licensing, Testing, etc

2022-04-16 Thread Pavel Pisa
Hello Prashanth,

On Thursday 14 of April 2022 20:20:45 Prashanth S wrote:
> This is to summarize the things suggested from the discussions and clarify
> on CAN generic APIs.
>
> Things on the plate:
>
>- CAN driver for BBB.
OK
>- CAN driver for any one of the QEMU supported SoC (SJA1000 on PCI/e on
>x86, Zynq UltraScale+ MPSo on QEMU).
usesfull for testing
>- Generic CAN APIs
yes
>- ADC driver (not using libbsd) for BBB.

it is my opinion, may it be somebody else should express his/her
from other perspective.

> Please correct me if I missed out anything.

> Query on CAN generic APIs:
> With my understanding on the discussions, Should I use the mentioned stacks
> (LinCAN, CANOpen) as reference
CANopen is higher layer, not relevant for the low level code and should
be possible to build above any of the drivers.
LinCAN not strict, may be only some inspiration
> and define the data structures (CAN message header and CAN message
> structures) or port one of the stacks (In case port one of the stacks is
> the right option:
I would suggest to go through CAN message structures of the existing
projects and use one of them or define one which is easy to use
and port. I would help. I do not suggest unsigned long for ID as it is
in LiNCAN for example. I suggest uint32_t. 
> From the suggestions given in the discussions, I could not conclude which
> stack to choose, Considering the future Scalability (both software stack
> and CAN protocol features) and portability) to RTEMS.
The minimal driver can be directly based on MPC5200 direct use
of rtems_message_queue(s), one for Rx and one for Tx

  https://git.rtems.org/rtems/tree/bsps/powerpc/gen5200/mscan

Its message format there

  https://git.rtems.org/rtems/tree/bsps/powerpc/gen5200/include/bsp/mscan.h

Again problematic uint16_t mess_id; which prevents compatability
with extended message format.

I suggest some single bigger unsigned type used with masks for RTR,
EXT and futire BRS and CAN FD flags, flags.

uint8_t  mess_rtr; is not extensible.

It would be great to find if somebody is actually using MPC5200 RTEMS BSP
still and in such case negotiate changes with them. May it be GrLib
unification could be usesfull as well.

I look at

https://git.rtems.org/rtems/tree/bsps/include/grlib/grcan.h#n133

/* CAN-FD MESSAGE */
typedef struct {
uint8_t extended; /* 1= Extended Frame (29-bit id), 0= STD Frame 
(11-bit id) */
uint8_t rtr;  /* RTR - Remote Transmission Request */
uint8_t fdopts;   /* Bit1: 1=Switch bit rate. bit2: 1=FD frame. */
uint8_t len;  /* 0-8, 12, 16, 20, 24, 32, 48 or 64 bytes */
uint32_t id;
union {
uint64_t dwords[8]; /* up to 64 bytes if FD=1 and len>8 */
uint8_t  bytes[64]; /* up to 64 bytes if FD=1 and len>8 */
} data;
} CANFDMsg;

This messageformat look acceptable. The first uint8_t forms in the fact
aligned unit32_t. I would personally put extended, rtr and fdopts
into single masked integer, but this is acceptable. Missing is space
for 16-bit or better at least 32-bit timestamp.

As for the infrastructure/stack, I would prefer to prepare code
for multiple prioritized queues and LinCAN and SocketCAN
provides. But as I have mentioned simple RTEMS queues can be used
for initial proof and change later to something with more
functions would not be problem if API is designed such way,
that it does not need to be changed. 

I offer co-mentor role or possibly even mentor but I would not have
time over whole summer and I have quite lot to do till semester end,
so I can have week or two delay... not ideal for main mentor.

Best wishes,
Pavel
--
Pavel Pisa
phone:  +420 603531357
e-mail: p...@cmp.felk.cvut.cz
Department of Control Engineering FEE CVUT
Karlovo namesti 13, 121 35, Prague 2
university: http://control.fel.cvut.cz/
company:https://www.pikron.com/
personal:   http://cmp.felk.cvut.cz/~pisa
projects:   https://www.openhub.net/accounts/ppisa
CAN related:http://canbus.pages.fel.cvut.cz/
Open Technologies Research Education and Exchange Services
https://gitlab.fel.cvut.cz/otrees/org/-/wikis/home
___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


Re: Project Ideas - Basic RTEMS BSP for Cortex-R5 on Qemu

2022-04-16 Thread Pavel Pisa
Dear Kamlesh,

On Friday 15 of April 2022 06:50:44 Kamlesh Bharodiya wrote:
> I am looking for mentors for my project. How can I connect to interested
> mentors? I have uploaded the draft proposal on GSoC tracking page.

I have long time interrest in RTEMS running on TMS570LC4357
which is Arm Cortex-R5F based. I have TMDX570LC43HDK at home
and some smaller boards are at Elktroline.cz.

As I know, the Cortex-R5 core is already supported
by RTEMS and our TMS570LS3137 BSP has been used
with TMS570LC4357 chips by Frankfurt University

  https://www.rz.uni-frankfurt.de/65100666/dcs

Relevant repository

  https://github.com/jalmito/rtems

It would worth to get mainline TMS570 BSP compatible with
both chips.

But back to your project, possibility to run RTEMS on Cortex-R5
architecture in QEMU would be usesfull for testing. My search through
actual QEMU sources confirms Cortex-R support and only in  Cortex-R5
and Cortex-R52 variants and only integration on ZCU102.
But support of Cortex-R5 comprocessor on "big" Xilinx platforms
can be usesfull. I have helped with bought of these boards
years ago but for the team which moved away. But I probably
can find even somebody with HW who could test the code.

The minimal set of the peripherals supported to make port
usable and living needs to include GIC (generic interrupt controller),
TTC (system timer) and UART (serial port).
Other option is some mailbox based exchange with main Cortex-A CPU.

Have you some experience with ZCU102?
I have no much idea how difficult the project is...

I can help as co-mentor, I cannot offer main mentor role
because I have too many running projects. 

I CC to Sebastian Huber, because if I remember well they
have provided support for some Cortex-R5 platform already.

Best wishes,

Pavel Pisa
phone:  +420 603531357
e-mail: p...@cmp.felk.cvut.cz
Department of Control Engineering FEE CVUT
Karlovo namesti 13, 121 35, Prague 2
university: http://control.fel.cvut.cz/
company:https://www.pikron.com/
personal:   http://cmp.felk.cvut.cz/~pisa
projects:   https://www.openhub.net/accounts/ppisa
CAN related:http://canbus.pages.fel.cvut.cz/
Open Technologies Research Education and Exchange Services
https://gitlab.fel.cvut.cz/otrees/org/-/wikis/home
___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel