From mboxrd@z Thu Jan 1 00:00:00 1970 From: Gary Thomas To: Cristiano Ligieri Pereira Cc: ecos-discuss@sourceware.cygnus.com Subject: Re: [ECOS] Port problem Date: Fri, 17 Aug 2001 05:36:00 -0000 Message-id: References: X-SW-Source: 2001-08/msg00601.html On 17-Aug-2001 Cristiano Ligieri Pereira wrote: > > Hi again! > > I don't know whether my previous question made no sense or if it was too > simple... since I've got no answer. :-| > > I'm working on the port of an XScale based platform. So far I have done a > reasonable progress (in my opinion...) but now I'm kind of stuck. :( > > I started the port copying the IQ80310 and modifying it's files since both > platforms are quite different (except the processor, obviously). Then the > next thing I did was to clean up the macro PLATFORM_SETUP1 so that the > specific IQ80310 initializations were removed and the specific > initializations of my platform were inserted (those I got from CygMon > source code). After this I've changed the memory map (that I actually sent > to this list yesterday) so that I have RAM at 0x0. > You built this CygMon yourself? If so, what was the source code base? Note: we really only support RedBoot on the XScale, not CygMon. > After this I've been trying two things: load a Hello World eCos > application configured to execute on RAM (by means of GDB/Cygmon) and load > RedBoot configured to execute at RAM as well. For both I load the > application at the original RAM address (since for cygmon this is still > the RAM memory address) and for both I'm executing the code in > PLATFORM_SETUP1, which remaps the memory. > > When I try to execute the Hello World application the code crashes when > calling diag_printf function in the main body. For the RAM/RedBoot code it > is crashing when cleaning the BSS (I've checked the addresses I'm hitting > and they fall within the original memory addresses 0xC0000000). > This tells me that you may have a memory mapping problem. eCos programs expect the memory map to be somewhat different than the hardware map. Most particularly, DRAM gets moved to 0x00000000 and the FLASH at 0 gets moved around as well. On some XScale platforms, this is even trickier, but the basic idea is the same. > how should I do about the serial communication with the host? Can I reuse > the communication already established with CygMon? Do I need to break it > and restart a new connection? > No. > Am I on the right track? I was feeling good about it till two days > ago. But now that I'm stuck I getting frustrated instead. :-| > I think you should look into getting RedBoot working as your base debug environment. > Thanks again, > Cristiano. > >> Hi all, >> >> I'm porting eCos to a XScale based platform. The board have Cygmon in its >> Flash memory, which is invoked at reset time. I can load an eCos >> application in it (I'm modifying the port to IQ80310). So far I have >> modified the file PLATFORM_SETUP1, in which I change the memory map and >> initialize (or re-initialize since cygmon initialize them already) all the >> necessary components (caches, BTB, MMU, etc...). All this seems to work >> fine. The memory mapping is changed so that I have SDRAM at address 0x0. >> >> Now I'm a little confused on how to make the serial communication work. I >> can download an application using GDB. So obviously there is a connection >> between the target and the GDB in the host. What should I do to keep using >> this connection to send debugging messages to the host? Or should I break >> this connection and restart it somehow? >> >> Thanks in advance, >> Cristiano. >> >> ------------------------------------------------------------ >> Cristiano Ligieri Pereira - http://www.ics.uci.edu/~cpereira