Dear Vijay,
thank you very much for your effort to bring some order here ;-)

I am currently trying to get EPICS to work on RTEMS6 as well.

I already failed with the legacy stack because configuration variables like
RTEMS_HAS_NETWORK are not set with the waf-builder.

That's why I quite happily jumped on your legacy-net-extra
(For the beatnik CPU on which I can test directly on the hardware).

Unfortunately, it doesn't quite work yet:

git clone https://github.com/RTEMS/rtems-source-builder.git rsb

cd rsb
cd rtems
../source-builder/sb-set-builder --prefix=/home/junkes/MVME6100_testing/rtems/6 6/rtems-powerpc
cd ../..

#RTEMS development
export RTEMS_VERSION=6
export RTEMS_ARCH=powerpc-rtems${RTEMS_VERSION}
export RTEMS_ROOT=/home/junkes/MVME6100_testing/rtems/${RTEMS_VERSION}
export PATH=${RTEMS_ROOT}/bin:${PATH}

# building kernel
#git clone git://git.rtems.org/rtems.git kernel
git clone git://git.rtems.org/vijay/rtems.git kernel
cd kernel

# build and install bsp
# 1. Test with waf
#-e "s|RTEMS_NETWORKING = False|RTEMS_NETWORKING = True|" \
./waf bsp_defaults --rtems-bsps=powerpc/beatnik > config.ini
sed -i \
-e "s|RTEMS_POSIX_API = False|RTEMS_POSIX_API = True|" \
-e "s|BUILD_TESTS = False|BUILD_TESTS = True|" \
config.ini
./waf configure --prefix=/home/junkes/MVME6100_testing/rtems/6
./waf
./waf install

cd ..

# building extra legacy net
git clone git://git.rtems.org/vijay/rtems-net-legacy.git legacyNet
cd legacyNet
git submodule init
git submodule update

./waf configure --prefix=/home/junkes/MVME6100_testing/rtems/6

Setting top to : /home/junkes/MVME6100_testing/legacyNet
Setting out to : /home/junkes/MVME6100_testing/legacyNet/build
RTEMS Version : 6
Architectures : powerpc-rtems6
Board Support Package (BSP) : powerpc-rtems6-beatnik
Show commands : no
Long commands : no
Checking for program 'powerpc-rtems6-gcc' : /home/junkes/MVME6100_testing/rtems/6/bin/powerpc-rtems6-gcc Checking for program 'powerpc-rtems6-g++' : /home/junkes/MVME6100_testing/rtems/6/bin/powerpc-rtems6-g++ Checking for program 'powerpc-rtems6-gcc' : /home/junkes/MVME6100_testing/rtems/6/bin/powerpc-rtems6-gcc Checking for program 'powerpc-rtems6-ld' : /home/junkes/MVME6100_testing/rtems/6/bin/powerpc-rtems6-ld Checking for program 'powerpc-rtems6-ar' : /home/junkes/MVME6100_testing/rtems/6/bin/powerpc-rtems6-ar Checking for program 'powerpc-rtems6-nm' : /home/junkes/MVME6100_testing/rtems/6/bin/powerpc-rtems6-nm Checking for program 'powerpc-rtems6-objdump' : /home/junkes/MVME6100_testing/rtems/6/bin/powerpc-rtems6-objdump Checking for program 'powerpc-rtems6-objcopy' : /home/junkes/MVME6100_testing/rtems/6/bin/powerpc-rtems6-objcopy Checking for program 'powerpc-rtems6-readelf' : /home/junkes/MVME6100_testing/rtems/6/bin/powerpc-rtems6-readelf Checking for program 'powerpc-rtems6-strip' : /home/junkes/MVME6100_testing/rtems/6/bin/powerpc-rtems6-strip Checking for program 'powerpc-rtems6-ranlib' : /home/junkes/MVME6100_testing/rtems/6/bin/powerpc-rtems6-ranlib Checking for program 'rtems-ld' : /home/junkes/MVME6100_testing/rtems/6/bin/rtems-ld Checking for program 'rtems-tld' : /home/junkes/MVME6100_testing/rtems/6/bin/rtems-tld Checking for program 'rtems-syms' : /home/junkes/MVME6100_testing/rtems/6/bin/rtems-syms Checking for program 'rtems-bin2c' : /home/junkes/MVME6100_testing/rtems/6/bin/rtems-bin2c
Checking for program 'tar' : /usr/bin/tar
Checking for program 'gcc, cc' : /home/junkes/MVME6100_testing/rtems/6/bin/powerpc-rtems6-gcc Checking for program 'ar' : /home/junkes/MVME6100_testing/rtems/6/bin/powerpc-rtems6-ar Checking for program 'g++, c++' : /home/junkes/MVME6100_testing/rtems/6/bin/powerpc-rtems6-g++ Checking for program 'ar' : /home/junkes/MVME6100_testing/rtems/6/bin/powerpc-rtems6-ar Checking for program 'gas, gcc' : /home/junkes/MVME6100_testing/rtems/6/bin/powerpc-rtems6-gcc Checking for program 'ar' : /home/junkes/MVME6100_testing/rtems/6/bin/powerpc-rtems6-ar
Checking for c flags '-MMD' : yes
Checking for cxx flags '-MMD' : yes
Compiler version (powerpc-rtems6-gcc) : 10.2.1 20210205 (RTEMS 6, RSB 61dcadee0825867ebe51f9f367430ef75b8fe9c0, Newlib d4a756f)
Checking for a valid RTEMS BSP installation : yes
Checking for RTEMS_DEBUG : no
Checking for RTEMS_MULTIPROCESSING : no
Checking for RTEMS_NEWLIB : yes
Checking for RTEMS_POSIX_API : yes
Checking for RTEMS_SMP : no
Checking for RTEMS_NETWORKING : no
'configure' finished successfully (0.840s)

./waf build --rtems-archs=powerpc --rtems-bsps=beatnik

Waf: Entering directory `/home/junkes/MVME6100_testing/legacyNet/build/powerpc-rtems6-beatnik'
[ 1/229] Compiling bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c
[ 2/229] Compiling bsps/powerpc/beatnik/net/porting/if_xxx.modini.c
[ 3/229] Compiling librpc/src/rpc/pmap_getport.c
[ 4/229] Compiling netinet/ip_icmp.c
[ 5/229] Compiling libc/getservbyname.c
[ 6/229] Compiling libc/base64.c
[ 7/229] Compiling libc/ns_ttl.c
[ 8/229] Compiling libc/inet_makeaddr.c
[ 9/229] Compiling librpc/src/rpc/auth_none.c
[ 10/229] Compiling librpc/src/rpc/get_myaddress.c
[ 11/229] Compiling netinet/tcp_debug.c
[ 12/229] Compiling librpc/src/rpc/netnamer.c
[ 13/229] Compiling librpc/src/rpc/svc_auth.c
[ 14/229] Compiling librpc/src/rpc/rtems_portmapper.c
[ 15/229] Compiling netinet/tcp_subr.c
[ 16/229] Compiling librpc/src/rpc/svc_simple.c
../../libc/getservbyname.c: In function 'getservbyname_r':
../../libc/getservbyname.c:54:4: warning: #warning "implement a proper getservbyport_r" [-Wcpp]
54 | #warning "implement a proper getservbyport_r"
| ^~~~~~~

[ 17/229] Compiling rtems/rtems_bootp.c
[ 18/229] Compiling net/if.c
../../bsps/powerpc/beatnik/net/porting/if_xxx.modini.c:2:10: fatal error: porting/rtemscompat.h: No such file or directory
2 | #include <porting/rtemscompat.h>
| ^~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.

In file included from ../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:1: ../../bsps/powerpc/beatnik/net/porting/rtemscompat.h:164:2: error: #error rtemscompat_defs.h must define either NET_CHIP_LE or NET_CHIP_BE 164 | #error rtemscompat_defs.h must define either NET_CHIP_LE or NET_CHIP_BE
| ^~~~~
../../bsps/powerpc/beatnik/net/porting/rtemscompat.h: In function 'bus_space_do_read_2': ../../bsps/powerpc/beatnik/net/porting/rtemscompat.h:267:9: warning: implicit declaration of function '_inp_word' [-Wimplicit-function-declaration]
267 | return _inp_word((volatile unsigned short*)((handle)+(reg)));
| ^~~~~~~~~
../../bsps/powerpc/beatnik/net/porting/rtemscompat.h: In function 'bus_space_do_read_4': ../../bsps/powerpc/beatnik/net/porting/rtemscompat.h:272:9: warning: implicit declaration of function '_inp_long' [-Wimplicit-function-declaration]
272 | return _inp_long((volatile unsigned *)((handle)+(reg)));
| ^~~~~~~~~
../../bsps/powerpc/beatnik/net/porting/rtemscompat.h: In function 'bus_space_do_write_multi_2': ../../bsps/powerpc/beatnik/net/porting/rtemscompat.h:286:31: warning: implicit declaration of function '_out_word' [-Wimplicit-function-declaration] 286 | int i; for (i=0; i<cnt; i++) _out_word( (handle) + (reg), (addr)[i]);
| ^~~~~~~~~
../../bsps/powerpc/beatnik/net/porting/rtemscompat.h: In function 'bus_space_do_write_multi_4': ../../bsps/powerpc/beatnik/net/porting/rtemscompat.h:291:31: warning: implicit declaration of function '_out_long' [-Wimplicit-function-declaration] 291 | int i; for (i=0; i<cnt; i++) _out_long( (handle) + (reg), (addr)[i]);
| ^~~~~~~~~
In file included from ../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:40:
../../bsps/powerpc/beatnik/net/porting/rtemscompat1.h: At top level:
../../bsps/powerpc/beatnik/net/porting/rtemscompat1.h:16:19: error: field 'd_softc' has incomplete type
16 | struct NET_SOFTC d_softc; /* MUST BE FIRST FIELD */
| ^~~~~~~
../../bsps/powerpc/beatnik/net/porting/rtemscompat1.h:28:38: error: 'NETDRIVER_SLOTS' undeclared here (not in a function)
28 | #define NETDEV_DECL netdev_t THEDEVS[NETDRIVER_SLOTS]
| ^~~~~~~~~~~~~~~
../../bsps/powerpc/beatnik/net/porting/rtemscompat1.h:30:8: note: in expansion of macro 'NETDEV_DECL'
30 | extern NETDEV_DECL;
| ^~~~~~~~~~~
In file included from ../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:1: ../../bsps/powerpc/beatnik/net/porting/rtemscompat1.h: In function 'net_dev_get': ../../bsps/powerpc/beatnik/net/porting/rtemscompat1.h:50:28: error: expected ')' before 'NETDRIVER'
50 | device_printf(dev, "Bad "NETDRIVER" unit number.\n");
| ^~~~~~~~~
../../bsps/powerpc/beatnik/net/porting/rtemscompat.h:258:53: note: in definition of macro 'device_printf' 258 | #define device_printf(device,format,args...) printk(format,## args)
| ^~~~~~
../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c: In function 'rtems_NETDRIVER_PREFIX_attach': ../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:131:21: error: 'NETDRIVER' undeclared (first use in this function) 131 | device_printf(dev,NETDRIVER" unit not configured; use 'rtems_"NETDRIVER"_setup()'\n");
| ^~~~~~~~~
../../bsps/powerpc/beatnik/net/porting/rtemscompat.h:258:53: note: in definition of macro 'device_printf' 258 | #define device_printf(device,format,args...) printk(format,## args)
| ^~~~~~
../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:131:21: note: each undeclared identifier is reported only once for each function it appears in 131 | device_printf(dev,NETDRIVER" unit not configured; use 'rtems_"NETDRIVER"_setup()'\n");
| ^~~~~~~~~
../../bsps/powerpc/beatnik/net/porting/rtemscompat.h:258:53: note: in definition of macro 'device_printf' 258 | #define device_printf(device,format,args...) printk(format,## args)
| ^~~~~~
../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:131:30: error: expected ')' before string constant 131 | device_printf(dev,NETDRIVER" unit not configured; use 'rtems_"NETDRIVER"_setup()'\n");
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../bsps/powerpc/beatnik/net/porting/rtemscompat.h:258:53: note: in definition of macro 'device_printf' 258 | #define device_printf(device,format,args...) printk(format,## args)
| ^~~~~~
../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:140:11: error: invalid use of undefined type 'struct NETDRIVER_PREFIX_softc'
140 | ifp = &sc->arpcom.ac_if;
| ^~
In file included from ../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:1: ../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:151:31: error: expected ')' before string constant
151 | device_printf(dev,NETDRIVER" Driver already attached.\n");
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../bsps/powerpc/beatnik/net/porting/rtemscompat.h:258:53: note: in definition of macro 'device_printf' 258 | #define device_printf(device,format,args...) printk(format,## args)
| ^~~~~~
../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:156:13: error: invalid use of undefined type 'struct NETDRIVER_PREFIX_softc' 156 | memcpy(sc->arpcom.ac_enaddr, config->hardware_address, ETHER_ADDR_LEN);
| ^~
In file included from ../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:1: ../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:163:31: error: expected ')' before string constant
163 | device_printf(dev,NETDRIVER"_attach() failed\n");
| ^~~~~~~~~~~~~~~~~~~~
../../bsps/powerpc/beatnik/net/porting/rtemscompat.h:258:53: note: in definition of macro 'device_printf' 258 | #define device_printf(device,format,args...) printk(format,## args)
| ^~~~~~
../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:168:31: error: expected ')' before string constant
168 | device_printf(dev,NETDRIVER" Driver not attached.\n");
| ^~~~~~~~~~~~~~~~~~~~~~~~~
../../bsps/powerpc/beatnik/net/porting/rtemscompat.h:258:53: note: in definition of macro 'device_printf' 258 | #define device_printf(device,format,args...) printk(format,## args)
| ^~~~~~
../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:173:32: error: expected ')' before string constant
173 | device_printf(dev,NETDRIVER"_detach() failed\n");
| ^~~~~~~~~~~~~~~~~~~~
../../bsps/powerpc/beatnik/net/porting/rtemscompat.h:258:53: note: in definition of macro 'device_printf' 258 | #define device_printf(device,format,args...) printk(format,## args)
| ^~~~~~
../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:177:31: error: expected ')' before string constant
177 | device_printf(dev,NETDRIVER"_detach() not implemented\n");
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../bsps/powerpc/beatnik/net/porting/rtemscompat.h:258:53: note: in definition of macro 'device_printf' 258 | #define device_printf(device,format,args...) printk(format,## args)
| ^~~~~~
../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:183:10: error: invalid use of undefined type 'struct NETDRIVER_PREFIX_softc'
183 | if ( !sc->tid )
| ^~
../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:184:5: error: invalid use of undefined type 'struct NETDRIVER_PREFIX_softc' 184 | sc->tid = rtems_bsdnet_newproc(NETDRIVER"d", 4096, net_daemon, sc);
| ^~
../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:184:43: error: expected ')' before string constant 184 | sc->tid = rtems_bsdnet_newproc(NETDRIVER"d", 4096, net_daemon, sc);
| ^~~
| )
../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:184:13: error: too few arguments to function 'rtems_bsdnet_newproc' 184 | sc->tid = rtems_bsdnet_newproc(NETDRIVER"d", 4096, net_daemon, sc);
| ^~~~~~~~~~~~~~~~~~~~
In file included from ../../bsps/powerpc/beatnik/net/porting/rtemscompat.h:42,
from ../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:1:
../../rtems/rtems_bsdnet_internal.h:169:10: note: declared here
169 | rtems_id rtems_bsdnet_newproc (
| ^~~~~~~~~~~~~~~~~~~~
../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:194:23: error: invalid use of undefined type 'struct NETDRIVER_PREFIX_softc'
194 | irq_data.name = sc->irq_no;
| ^~
../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:203:28: error: expected ')' before string constant
203 | fprintf(stderr,NETDRIVER": unable to install ISR\n");
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
| )
../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:207:10: error: invalid use of undefined type 'struct NETDRIVER_PREFIX_softc'
207 | if ( sc->irq_no ) {
| ^~
../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:215:23: error: invalid use of undefined type 'struct NETDRIVER_PREFIX_softc'
215 | irq_data.name = sc->irq_no;
| ^~
../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:222:28: error: expected ')' before string constant
222 | fprintf(stderr,NETDRIVER": unable to uninstall ISR\n");
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| )
../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c: In function 'the_net_isr': ../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:242:2: warning: implicit declaration of function 'NET_DISABLE_IRQS' [-Wimplicit-function-declaration]
242 | NET_DISABLE_IRQS(sc);
| ^~~~~~~~~~~~~~~~
../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:244:29: error: invalid use of undefined type 'struct NETDRIVER_PREFIX_softc'
244 | rtems_bsdnet_event_send( sc->tid, EX_EVENT );
| ^~
../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c: In function 'net_daemon': ../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:262:3: warning: implicit declaration of function 'NET_ENABLE_IRQS' [-Wimplicit-function-declaration]
262 | NET_ENABLE_IRQS(sc);
| ^~~~~~~~~~~~~~~
../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c: At top level:
../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:286:2: error: 'NETDRIVER' undeclared here (not in a function)
286 | NETDRIVER"1",
| ^~~~~~~~~
../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:286:11: error: expected '}' before string constant
286 | NETDRIVER"1",
| ^~~
../../bsps/powerpc/beatnik/net/porting/if_xxx_rtems.c:285:74: note: to match this '{' 285 | struct rtems_bsdnet_ifconfig NET_EMBEMB(NETDRIVER_PREFIX,_dbg,_config) = {
| ^

Waf: Leaving directory `/home/junkes/MVME6100_testing/legacyNet/build/powerpc-rtems6-beatnik'
Build failed
-> task in 'bsp_objs' failed with exit status 1 (run with -v to display more information) -> task in 'bsp_objs' failed with exit status 1 (run with -v to display more information)
Viele Grüße und Danke,
Heinz

On 1. Mar 2021, at 22:48, Vijay Kumar Banerjee <vi...@rtems.org> wrote:

Hello all,

In RTEMS 6, there will be no cpukit/libnetworking in the RTEMS repository and it will be moved to its own separate repository. There are ongoing efforts in this direction and it is very close to completion. What's remaining, is to collect feedback from the users of the libnetworking stack.

I request you to test the new standalone legacy networking repository with your regular targets and let me know if I have broken something in RTEMS or in the new repository. The legacy repo, in its current state, has been tested with pc-qemu and it can successfully run the legacy networking tests.

The following are the links to the repositories with the latest version of changes:
RTEMS: https://git.rtems.org/vijay/rtems.git/log/?h=devel-no-libnet
Legacy Network: https://git.rtems.org/vijay/rtems-net-legacy.git/log/?h=main

The following BSP family in RTEMS has been used with the old legacy networking stack: Zynq, PC, Motorola Shared, Beatnik, mvme3100, mvme5500, gen68360, uc5282, mvme 162/167

If anyone is maintaining/working with one (or more) of these BSPs, please let me know if you're able to test the separate legacy-net repository and if you have any feedback. If you're planning to test it, please add your comments here so that we know someone is going to do it and wait for your feedback. The changes will not be pushed right away and we'll wait for some feedback.

What's next?

The legacy networking repository will stay at git.rtems.org for any projects that are still using it. It is recommended that the new projects use the libbsd networking stack which is more full-featured.

Thank you for your patient reading. Any suggestion is welcome and I'm more than happy to work with you to get it more thoroughly tested before getting it merged.

Best regards,
Vijay
_______________________________________________
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel
_______________________________________________
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Reply via email to