I would prefer not to compile with soft float as the processors that we are using have hardware FPUs. Is there a recommended rtems and rtems source builder branch rev that should be used?
I am running CentOS CentOS Linux release 7.2.1511 (Core) Linux spartan117 3.10.0-327.22.2.el7.x86_64 #1 SMP Thu Jun 23 17:05:11 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux It has gcc: $ gcc --version gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-4) But, if I understand the RTEMS builder correctly, it downloads a version of tools and libs to build itself. It looks like it used gcc 4.9.3. $ sparc-rtems4.11-gcc -v Using built-in specs. COLLECT_GCC=sparc-rtems4.11-gcc COLLECT_LTO_WRAPPER=/gfe/RTEMS/development/rtems/4.11/libexec/gcc/sparc-rtems4.11/4.9.3/lto-wrapper Target: sparc-rtems4.11 Configured with: ../gcc-4.9.3/configure --prefix=/gfe/RTEMS/development/rtems/4.11 --bindir=/gfe/RTEMS/development/rtems/4.11/bin --exec_prefix=/gfe/RTEMS/development/rtems/4.11 --includedir=/gfe/RTEMS/development/rtems/4.11/include --libdir=/gfe/RTEMS/development/rtems/4.11/lib --libexecdir=/gfe/RTEMS/development/rtems/4.11/libexec --mandir=/gfe/RTEMS/development/rtems/4.11/share/man --infodir=/gfe/RTEMS/development/rtems/4.11/share/info --datadir=/gfe/RTEMS/development/rtems/4.11/share --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=sparc-rtems4.11 --disable-libstdcxx-pch --with-gnu-as --with-gnu-ld --verbose --with-newlib --with-system-zlib --disable-nls --without-included-gettext --disable-win32-registry --enable-version-specific-runtime-libs --disable-lto --enable-newlib-io-c99-formats --enable-newlib-iconv --enable-newlib-iconv-encodings=big5,cp775,cp850,cp852,cp855,cp866,euc_jp,euc_kr,euc_tw,iso_8859_1,iso_8859_10,iso_8859_11,iso_8859_13,iso_8859_14,iso_8859_15,iso_8859_2,iso_8859_3,iso_8859_4,iso_8859_5,iso_8859_6,iso_8859_7,iso_8859_8,iso_8859_9,iso_ir_111,koi8_r,koi8_ru,koi8_u,koi8_uni,ucs_2,ucs_2_internal,ucs_2be,ucs_2le,ucs_4,ucs_4_internal,ucs_4be,ucs_4le,us_ascii,utf_16,utf_16be,utf_16le,utf_8,win_1250,win_1251,win_1252,win_1253,win_1254,win_1255,win_1256,win_1257,win_1258 --enable-threads --disable-plugin --enable-libgomp --enable-languages=c,c++ Thread model: rtems gcc version 4.9.3 20150626 (RTEMS 4.11, RSB 1675a733536d1aec2020011e5e522497a442561a, Newlib 2.2.0.20150423) (GCC) On Oct 22, 2016, at 9:48 AM, Jiri Gaisler <j...@gaisler.se<mailto:j...@gaisler.se>> wrote: It seems that you have compiled RTEMS with a gcc version that can use %fpu registers to move integer data. The work-around could be to compile the kernel with -msoft-float, or to move to a (later) version of gcc that does not do this anymore. Which gcc version do you use? Jiri. On 22/10/16 01:22, Duran, Steve (JSC-ER611) wrote: I am trying to get and RTEMS kernel to boot on the SPARC ut700 development board. There appears to be an issue in the RTEMS networking code that must use floating point, but for some reason the FPU has been disabled. Details below. Any insights into how to resolve this issue would be appreciated. Development environment setup on: Setup on: CentOS Linux release 7.2.1511 (Core) Linux spartan117 3.10.0-327.22.2.el7.x86_64 #1 SMP Thu Jun 23 17:05:11 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux $ git clone git://git.rtems.org/rtems.git rtems $ git checkout -b rtems411 origin/4.11 Loading through grmon2, starting to run, error messages, and some debug info: GRMON2 LEON debug monitor v2.0.74 32-bit pro version Copyright (C) 2016 Cobham Gaisler - All rights reserved. For latest updates, go to http://www.gaisler.com/ Comments or bug-reports to supp...@gaisler.com<mailto:supp...@gaisler.com> using port /dev/ttyUSB4 @ 460800 baud Device ID: 0x699 GRLIB build version: 4110 Detected system: UT699E/UT700 Detected frequency: 125 MHz Component Vendor LEON3-FT SPARC V8 Processor Cobham Gaisler AHB Debug UART Cobham Gaisler JTAG Debug Link Cobham Gaisler Fast 32-bit PCI Bridge Cobham Gaisler PCI/AHB DMA controller Cobham Gaisler GR Ethernet MAC Cobham Gaisler GRSPW2 SpaceWire Serial Link Cobham Gaisler GRSPW2 SpaceWire Serial Link Cobham Gaisler GRSPW2 SpaceWire Serial Link Cobham Gaisler GRSPW2 SpaceWire Serial Link Cobham Gaisler MIL-STD-1553B Interface Cobham Gaisler Memory controller with EDAC Cobham Gaisler AHB/APB Bridge Cobham Gaisler LEON3 Debug Support Unit Cobham Gaisler AHB/APB Bridge Cobham Gaisler OC CAN AHB interface Cobham Gaisler Generic UART Cobham Gaisler Multi-processor Interrupt Ctrl. Cobham Gaisler Modular Timer Unit Cobham Gaisler Clock gating unit Cobham Gaisler PCI Arbiter European Space Agency General Purpose I/O port Cobham Gaisler AHB Status Register Cobham Gaisler SPI Controller Cobham Gaisler General Purpose Register Cobham Gaisler Use command 'info sys' to print a detailed report of attached cores 40085000 .eefs_ram 512.0kB / 512.0kB [===============>] 100% 40000000 .tarfs_ram 530.0kB / 530.0kB [===============>] 100% 40405000 .text 815.8kB / 815.8kB [===============>] 100% 404D0F20 .rtemsroset 304B [===============>] 100% 404D1050 .data 13.3kB / 13.3kB [===============>] 100% 404D4560 .jcr 4B [===============>] 100% Total size: 1.83MB (362.50kbit/s) Entry point 0x40405000 Image /home/sduran/sparc_leon3/SPARC_LEON3_Workspace/ut700/rtems4.11-kernel/rki.elf loaded RTEMS Kernel Image Booting *** RTEMS Info *** COPYRIGHT (c) 1989-2008. On-Line Applications Research Corporation (OAR). rtems-4.10.99.0(SPARC/w/FPU/leon3) BSP Ticks Per Second = 100 *** End RTEMS info *** Populating Root file system from TAR file. Starting RTEMS network configuration RTEMS network config: All structures filled out, now calling init functions Convert ethernet address Converting: 00:00:7a:cc:00:16 Calling rtems_bsdnet_initialize_network greth: driver attached **** PHY **** Vendor: 80017 Device: 9 Revision: 0 Current Operating Mode: 100 Mbit Full Duplex Autonegotiation Time: 1739ms RTEMS bsdnet_initialize_network returned OK Hostname is gfe02.local Device gr_eth1, netmask 255.255.255.0, address 139.169.132.128 gateway 139.169.132.1, dns1 139.169.132.1, dns2 (null) Starting the FTP Server. syslog: ftpd: FTP daemon started (1 session max) Setting up filesystems. Initializing Local Commands. Running /shell-init. 1: mkdir ram0 2: mkdir ram 3: mkrfs /dev/rd0 4: mount -t rfs /dev/rd0 /ram0 mounted /dev/rd0 -> /ram0 5: hello Hello RTEMS! Create your own command here! Starting shell.... RTEMS Shell on /dev/console. Use 'help' to list commands. [/] # Unexpected trap (0x04) at address 0x404A6764 fp disabled Program exited normally. >From UT700_LEON_Functional_Manual.pdf Trap table on page 18: TRAP TT PRI Description fp_disabled 0x04 6 FP instruction while FPU disabled grmon2> dis 0x404A6764 0x404a6764: d11861b0 ldd [%g1 + 0x1B0], %f8 <_svfprintf_r+100> 0x404a6768: a410a250 or %g2, 0x250, %l2 <_svfprintf_r+104> 0x404a676c: 39101341 sethi %hi(0x404D0400), %i4 <_svfprintf_r+108> grmon2> bt Inside trap/irq %pc %sp #0 0x40417e40 0x404e6158 <syscall+0> #1 0x404ba880 0x404e61b8 <_CPU_Fatal_halt+0x8> #2 0x40442d68 0x404e6218 <_Terminate+0x48> #3 0x40441720 0x404e6288 <rtems_fatal+0xc> #4 0x40416044 0x404e62e8 <bsp_spurious_handler+0xc> #5 0x404bae24 0x404e6350 #6 0x404a6710 0x40528180 <_svfprintf_r+0x10> #7 0x404a20b4 0x40528428 <sprintf+0x50> #8 0x4046eb68 0x40528500 <inet_ntop4+0x1c> #9 0x4046ee90 0x40528570 <inet_ntop+0x2e8> #10 0x4046eb3c 0x40528628 <inet_ntoa+0x54> #11 0x40474a90 0x40528690 <arplookup+0xb8> #12 0x404754c0 0x405286f8 <arpintr+0x1d4> #13 0x40434048 0x40528788 <networkDaemon+0xa8> #14 0x40433db4 0x405287f0 <taskEntry+0x1c> #15 0x40499058 0x40528850 <_Thread_Handler+0xb8> #16 0x40498fa0 0x405288b0 <_Thread_Handler+0> So it would appear that RTEMS is in networking code, calling sprintf, trying to perform a floating point operation but for some reason the FPU has been disabled. _______________________________________________ devel mailing list devel@rtems.org<mailto:devel@rtems.org> http://lists.rtems.org/mailman/listinfo/devel
_______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel