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/ > <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 > http://lists.rtems.org/mailman/listinfo/devel
_______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel