This is the mail archive of the ecos-maintainers@sources.redhat.com mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

troubles with ecos-2.0 and mips tx49 port


Gentlemen (and Ladies):

	I have been working on porting redboot (ecos-2.0 source) 
to one of our boards which uses a Toshiba TX4925 CPU (mips with
TX49 core and "stuff").  I started from the ref4955 platform port.
In the course of trying to get it (and my port) to build I noticed
several issues:

1) The ref4955 distributed .cdl file calls out mips-tx49-elf for a
toolchain prefix.  I built the the toolchain from the sources as
described on the ecos/build-toolchain.html webpage, but had some
problems:

  1a) a patch was required to get gcc to build under cygwin.  This 
      appears to be a known issue with gcc and cygwin.  I applied this
	patch and all appears to be well:
http://gcc.gnu.org/ml/gcc/2003-04/msg00538.html
      It would be nice if there was a mention of this on the 
      webpage with the other patches.

  1b) after building the toolchain the compiler barfs on the
      -mabi=eabi command line switch, which makes me wonder
      how to enable that in the toolchain I built or if there is
	some other thing I need to do. gcc -v gives:

	Configured with: /home/adyer/src/gcc-3.2.1/configure
--target=mips-tx49-elf --prefix=/opt/ecos/gnutools/mips-tx49-elf
--enable-languages=c,c++ --with-gnu-as --with-gnu-ld --with-newlib
--with-gxx-include-dir=/opt/ecos/gnutools/mips-tx49-elf
/mips-tx49-elf/include -v : (reconfigured)
/home/adyer/src/gcc-3.2.1/configure - -target=mips-tx49-elf
--prefix=/opt/ecos/gnutools/mips-tx49-elf --enable-languages=c,c++
--with-gnu-as --with-gnu-ld --with-newlib --with-gxx-nclude-dir=/opt/e
cos/gnutools/mips-tx49-elf/mips-tx49-elf/include -v
	Thread model: single
	gcc version 3.2.1

2) for yucks I tried using the mips-isa32 toolchain, which
likes the -mabi=eabi switch, but barfs on the line 
OUTPUT_ARCH(mips:4900) in the linker script file.

3) I am building for a ROM configuration, and the linker script
file for the tx49 is very wrong (looks like R3000-ish code) with
respect to where the exception vectors go for a ROM configuration.

#elif defined(CYG_HAL_STARTUP_ROM)

/* this version for ROM startup */
#define SECTION_rom_vectors(_region_, _vma_, _lma_) \
    .rom_vectors _vma_ : _lma_ \
    { KEEP (*(.reset_vector)) \
    . = ALIGN(0x100); KEEP (*(.utlb_vector)) \
    . = ALIGN(0x80); KEEP(*(.other_vector)) \
    . = ALIGN(0x100); KEEP(*(.debug_vector)) } \
    > _region_

#endif /* ROM startup version of ROM vectors */


this puts the utlb_vector at 0xbfc00100, the other_vector
at 0xbfc00180, and the debug_vector at 0xbfc00200.  According to the
tx49 core manual, the vectors go as follows:

reset vector 0xbfc0_0000
tlb refill   0xbfc0_0200
xtlb miss    0xbfc0_0280
general exc. 0xbfc0_0380
debug        0xbfc0_0400 (ProbEnb=0)

other mips parts would also have a cache error at 0xbfc00300, but tx49
doesn't seem to have it in their docs.




--
Andrew Dyer               |  adyer@righthandtech.com
Sr. Engineer              |  (630) 238-0789
RightHand Technologies    |  (630) 238-0469 (fax)
735 N. Edgewood Ave.      |
Suite D                   |
Wood Dale, IL 60191-1261  |
USA                       |


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]