LibBSD PowerPC motorola_shared BSP PCI Support

Heinz Junkes junkes at fhi-berlin.mpg.de
Thu Oct 29 12:44:07 UTC 2020


I have now changed to a more modern board: MVME2500
And built rtems6 and libbsd for qoriq_e500.


Unfortunately the board hangs when loading the image:

MVME2500=> setenv tfile dhcpcd02_6
MVME2500=> run rtems_myTests
reading mvme2500.dtb
12363 bytes read in 32 ms (377 KiB/s)
Speed: 1000, full duplex
Using eTSEC1 device
TFTP from server 141.14.128.9; our IP address is 141.14.128.89
Filename 'dhcpcd02_6.img'.
Load address: 0x10000000
Loading: #################################################################
         ####################################################
         10.3 MiB/s
done
Bytes transferred = 1709285 (1a14e5 hex)
WARNING: adjusting available memory to 30000000
## Booting kernel from Legacy Image at 10000000 ...
   Image Name:   dhcpcd02
   Created:      2020-10-29  12:38:52 UTC
   Image Type:   PowerPC Linux Kernel Image (gzip compressed)
   Data Size:    1709221 Bytes = 1.6 MiB
   Load Address: 00004000
   Entry Point:  00004000
   Verifying Checksum ... OK
## Flattened Device Tree blob at 20000000
   Booting using the fdt blob at 0x20000000
   Uncompressing Kernel Image ... OK
   Loading Device Tree to 03ff9000, end 03fff04a ... OK

Hangs ...



With RTEMS5 in spring it looked like this:


MVME2500=> setenv tfile dhcpcd02
MVME2500=> run rtems_myTests
reading mvme2500.dtb
12363 bytes read in 32 ms (377 KiB/s)
Speed: 1000, full duplex
Using eTSEC1 device
TFTP from server 141.14.128.9; our IP address is 141.14.128.89
Filename 'dhcpcd02.img'.
Load address: 0x10000000
Loading: #################################################################
         ###################################
         10 MiB/s
done
Bytes transferred = 1455058 (1633d2 hex)
WARNING: adjusting available memory to 30000000
## Booting kernel from Legacy Image at 10000000 ...
   Image Name:   dhcpcd02
   Created:      2020-02-17  13:51:47 UTC
   Image Type:   PowerPC Linux Kernel Image (gzip compressed)
   Data Size:    1454994 Bytes = 1.4 MiB
   Load Address: 00004000
   Entry Point:  00004000
   Verifying Checksum ... OK
## Flattened Device Tree blob at 20000000
   Booting using the fdt blob at 0x20000000
   Uncompressing Kernel Image ... OK
   Loading Device Tree to 03ff9000, end 03fff04a ... OK
*** LIBBSD DHCPCD 2 TEST ***
nexus0: <RTEMS Nexus device>

RTEMS Shell on /dev/console. Useo 'help' to list commands.
SHLL [/] # bus0: <Open Firmware Device Tree> on nexus0
simplebus0: <Flattened device tree simple bus> on ofwbus0
simplebus1: <Flattened device tree simple bus> mem 0xffe05000-0xffe05fff irq 3 on ofwbus0
tsec0: <Enhanced Three-Speed Ethernet Controller> mem 0x24000-0x24fff irq 13,14,18 on simplebus0
miibus0: <MII bus> on tsec0
ukphy0: <Generic IEEE 802.3u media interface> PHY 1 on miibus0
ukphy0:  none, 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT, 1000baseT-master, 1000baseT-FDX, 1000baseT-FDX-master, auto
info: tsec0: Ethernet address: ec:9e:cd:19:3c:61
tsec1: <Enhanced Three-Speed Ethernet Controller> mem 0x25000-0x25fff irq 19,20,24 on simplebus0
miibus1: <MII bus> on tsec1
ukphy1: <Generic IEEE 802.3u media interface> PHY 7 on miibus1
ukphy1:  none, 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT, 1000baseT-master, 1000baseT-FDX, 1000baseT-FDX-master, auto
info: tsec1: Ethernet address: ec:9e:cd:19:3c:62
tsec2: <Enhanced Three-Speed Ethernet Controller> mem 0x26000-0x26fff irq 15,16,17 on simplebus0
miibus2: <MII bus> on tsec2
ukphy2: <Generic IEEE 802.3u media interface> PHY 3 on miibus2
ukphy2:  none, 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT, 1000baseT-master, 1000baseT-FDX, 1000baseT-FDX-master, auto
info: tsec2: Ethernet address: ec:9e:cd:19:3c:63
[zone: unpcb] kern.ipc.maxsockets limit reached
info: lo0: link state changed to UP
info: version 6.2.1 starting
info: tsec0: link state changed to DOWN
info: tsec1: link state changed to DOWN
info: tsec2: link state changed to DOWN
warning: no interfaces have a carrier
info: tsec0: waiting for carrier
info: tsec1: waiting for carrier
info: tsec2: waiting for carrier
W�������to UP
info: tsec0: carrier acquired
info: DUID 00:01:00:01:e9:6d:a1:84:ec:9e:cd:19:3c:61
info: tsec0: IAID cd:19:3c:61
info: tsec1: link state changed to UP
...




Viele Grüße
Heinz Junkes
--
Experience directly varies with equipment ruined.



> On 29. Oct 2020, at 12:07, Heinz Junkes <junkes at fhi-berlin.mpg.de> wrote:
> 
> I can now run the test programs of libbsd. But on the MVME6100
> no network interfaces gets found.
> 
> MVME6100> netShut
> /-----------------------------------------
> config addr is 0xf1000cf8
> config data is 0xf1000cfc
> Welcome to RTEMS rtems-6.0.0 (PowerPC/Generic (classic FPU)/beatnik)
> CPU: MPC7457
> Board Type: MVME6100-0163 (S/N E173D27)
> Bus Clock Freq:   133333333 Hz
> CPU Clock Freq:  1266666654 Hz
> Memory:           536870912 bytes
> -----------------------------------------
> Now BSP_mem_size = 0x1fe00000
> Configuration.work_space_size = ed620
> Page table setup finished; will activate it NOW...
> Going to start PCI buses scanning and initialization
> Number of PCI buses found is : 3
> MSR 0x2003032
> Exit from bspstart
> unable to find the universe in pci config space
> Tundra Tsi148 PCI-VME bridge detected at 0x81100000, IRQ 84
> Tsi148 Outbound Ports:
> Port  VME-Addr   Size       PCI-Adrs   Mode:
> 0:    0x20000000 0x0e000000 0x90000000 A32, SUP, D32, SCT
> 1:    0x00000000 0x00ff0000 0x9f000000 A24, SUP, D32, SCT
> 2:    0x00000000 0x00010000 0x9fff0000 A16, SUP, D32, SCT
> 7:    0x00000000 0x01000000 0x9e000000 CSR, SUP, D32, SCT
> Tsi148 Inbound Ports:
> Port  VME-Addr   Size       PCI-Adrs   Mode:
> 0:    0x90000000 0x1fe00000 0x00000000 A32, PGM, DAT, SUP, USR, MBLT, BLT
> vmeTsi148 IRQ manager: looking for registers on VME...
> Trying to find CSR on VME...
> vmeTsi148 - IRQ manager using VME CSR to flush FIFO
> Registering /dev/console as minor 0 (==/dev/ttyS0)
> 
> 
> *** BEGIN OF TEST LIBBSD DHCPCD 1 ***
> *** TEST VERSION: 6.0.0.5f4fd63a0c2b4b0657b64abdcfa70c47bee21c52
> *** TEST STATE: EXPECTED_PASS
> *** TEST BUILD: RTEMS_POSIX_API
> *** TEST TOOLS: 10.2.1 20201026 (RTEMS 6, RSB 5f4fd63a0c2b4b0657b64abdcfa70c47bee21c52, Newlib 17b7dfc)
> 
> RTEMS Shell on /dev/console. Use 'help' to list commands.
> SHLL [/] # xus0: <RTEMS Nexus device>
> [zone: unpcb] kern.ipc.maxsockets limit reached
> info: lo0: link state changed to UP
> info: version 6.2.1 starting
> err: no valid interfaces found
> warning: no interfaces have a carrier
> 
> Viele Grüße
> Heinz Junkes
> --
> Experience directly varies with equipment ruined.
> 
> 
> 
>> On 27. Oct 2020, at 18:41, Sebastian Huber <sebastian.huber at embedded-brains.de> wrote:
>> 
>> 
>> On 27/10/2020 15:41, Joel Sherrill wrote:
>>> 
>>> 
>>> On Tue, Oct 27, 2020 at 9:23 AM Heinz Junkes <junkes at fhi-berlin.mpg.de <mailto:junkes at fhi-berlin.mpg.de>> wrote:
>>> 
>>>   I am currently trying git rtems6.
>>> 
>>>   ../source-builder/sb-set-builder --prefix=$HOME/.rtems --log
>>>   powerpc_beatnik.log --no-clean --target=powerpc-rtems6
>>>   --with-rtems-bsp=beatnik 6/rtems-powerpc 6/rtems-kernel
>>> 
>>>   works …
>>> 
>>>   Unfortunately It fails here:
>>> 
>>>   ../source-builder/sb-set-builder --prefix=$HOME/.rtems --log
>>>   libbsd.log --no-clean --target=powerpc-rtems6
>>>   --with-rtems-bsp=beatnik --host=powerpc-rtems6 6/rtems-libbsd
>>> 
>>>   ...
>>>   [1562/1948] Compiling freebsd/sbin/nvmecontrol/ns.c
>>>   In file included from
>>>   /home/ad/.rtems/lib/gcc/powerpc-rtems6/10.2.1/include/c++/cstdlib:75,
>>>                    from
>>>   /home/ad/.rtems/lib/gcc/powerpc-rtems6/10.2.1/include/c++/stdlib.h:36,
>>>                    from ../../freebsd/sys/sys/libkern.h:216,
>>>                    from ../../freebsd/sys/sys/systm.h:543,
>>>                    from ../../freebsd/sys/sys/mbuf.h:42,
>>>                    from ../../rtemsbsd/rtems/rtems-bsd-cxx.cc:48:
>>>   /home/ad/.rtems/powerpc-rtems6/include/stdlib.h:309:6: error:
>>>   conflicting declaration of C function 'void qsort_r(void*, size_t,
>>>   size_t, int (*)(const void*, const void*, void*
>>>   ), void*)'
>>>     309 | void qsort_r (void *__base, size_t __nmemb, size_t __size,
>>>   int (*_compar)(const void *, const void *, void *), void *__thunk);
>>>         |      ^~~~~~~
>>>   In file included from ../../freebsd/sys/sys/systm.h:543,
>>>                    from ../../freebsd/sys/sys/mbuf.h:42,
>>>                    from ../../rtemsbsd/rtems/rtems-bsd-cxx.cc:48:
>>>   ../../freebsd/sys/sys/libkern.h:211:7: note: previous declaration
>>>   'void qsort_r(void*, size_t, size_t, void*, int (*)(void*, const
>>>   void*, const void*))'
>>>     211 | void  qsort_r(void *base, size_t nmemb, size_t size, void
>>>   *thunk,
>>>         |       ^~~~~~~
>>> 
>>>   Waf: Leaving directory
>>>   `/home/ad/RTEMS_DEV/rtems-source-builder/rtems/build/rtems-libbsd-d964a6703c705cc92fd053bcefc08bb3b6baa0e2-powerpc-rtems6-1/rtems-libbsd-d964a6703c705cc9
>>>   2fd053bcefc08bb3b6baa0e2/build/powerpc-rtems6-beatnik-default'
>>>   Build failed
>>>    -> task in 'bsd' failed with exit status 1 (run with -v to
>>>   display more information)
>>>   shell cmd failed: /bin/sh -ex
>>>   /home/ad/RTEMS_DEV/rtems-source-builder/rtems/build/rtems-libbsd-d964a6703c705cc92fd053bcefc08bb3b6baa0e2-powerpc-rtems6-1/do-build
>>>   error: building
>>>   rtems-libbsd-d964a6703c705cc92fd053bcefc08bb3b6baa0e2-powerpc-rtems6-1
>>> 
>>> 
>>> I'm not sure why this would not have shown up before but the FreeBSD kernel reuses some standard library method names with different signatures. The file rtemsbsd/include/machine/rtems-bsd-kernel-namespace.h renames a lot of items to put them in a BSD namespace. qsort_r isn't in this list but perhaps should be.
>> 
>> I think its is this bug:
>> 
>> https://devel.rtems.org/ticket/4078
>> 
>> I added a workaround to the latest master and 6-freebsd-12 branches.
>> 
>> -- 
>> Sebastian Huber, embedded brains GmbH
>> 
>> Address : Dornierstr. 4, D-82178 Puchheim, Germany
>> Phone   : +49 89 189 47 41-16
>> Fax     : +49 89 189 47 41-09
>> E-Mail  : sebastian.huber at embedded-brains.de
>> PGP     : Public key available on request.
>> 
>> Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.
>> 
> 
> _______________________________________________
> devel mailing list
> devel at rtems.org
> http://lists.rtems.org/mailman/listinfo/devel

-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 5300 bytes
Desc: not available
URL: <http://lists.rtems.org/pipermail/devel/attachments/20201029/b5143cda/attachment.bin>


More information about the devel mailing list