m5475evb FireEngine eval board, first steps

Wolfgang Rostek Wolfgang.Rostek at esg.de
Wed Jul 21 12:10:02 UTC 2010


Hi all,

I'm looking for a hint to see why my eval board doesn't come up.

A custom 5475 board (Cobra) and its toolchain is running already.
It has RAM in the upper address range.

To make some reference tests I found a m5475evb FireEngine board
lieing around. It has dBUG running and I want to bring it up. RTEMS
seems to support it out of the box.

The point I'm blocked is that the initialization seems to run through
but the application code does not get invoked. The hello world from
test.c runs on my custom board but not on the eval board. It is not
giving any output and not even changing a memory location (see below).
But printk from RTEMS functions are visible.

Attached the modified pieces. May be there is an obvious error
showing up.

Thanks in advance
Wolfgang R.

################################################################
## in top level makefile for toolchain build
...
# target settings
    RTEMS_ARCH=m68k
    RTEMS_BSP=m5484FireEngine
    ##RTEMS_BSP=COBRA5475
...

################################################################
## 
## ./gcc/rtems-4.10/c/src/lib/libbsp/m68k/genmcf548x/configure.ac
...
RTEMS_BSPOPTS_SET([HAS_DBUG],[COBRA5475],[1])
RTEMS_BSPOPTS_SET([HAS_DBUG],[*],[1]) 
##RTEMS_BSPOPTS_SET([HAS_DBUG],[*],[0])
...
## the following two lines make no difference in behaviour
##RTEMS_BSPOPTS_SET([HAS_LOW_LEVEL_INIT],[m5484FireEngine],[1])
RTEMS_BSPOPTS_SET([HAS_LOW_LEVEL_INIT],[*],[0])
...

################################################################
## /opt/Ada-rtems-4.10/m68k-rtems4.10/m5484FireEngine/lib/linkcmds
...
/*
 * Location and size of on-chip devices
 */
_SdramBase      = DEFINED(_SdramBase)      ? _SdramBase   : 0x00000000;
_SdramSize      = DEFINED(_SdramSize)      ? _SdramSize   : (64 * 
1024*1024);
_SysSramBase    = DEFINED(_SysSramBase)    ? _SysSramBase : __MBAR + 
0x00010000;
_SysSramSize    = DEFINED(_SysSramSize)    ? _SysSramSize : (32 * 1024);
_McdapiBase     = DEFINED(_McdapiBase)     ? _McdapiBase  : _SysSramBase;
_McdapiSize     = DEFINED(_McdapiSize)     ? _McdapiSize  : (12 * 1024);
_CoreSramBase0  = DEFINED(_CoreSramBase0)  ? _CoreSramBase0 : 0x20000000;
_CoreSramBase1  = DEFINED(_CoreSramBase1)  ? _CoreSramBase1 : 0x20001000;
_CoreSramSize0  = DEFINED(_CoreSramSize0)  ? _CoreSramSize0 : (4 * 1024);
_CoreSramSize1  = DEFINED(_CoreSramSize1)  ? _CoreSramSize1 : (4 * 1024);
_BootFlashBase  = DEFINED(_BootFlashBase)  ? _BootFlashBase : 0xFF800000;
_BootFlashSize  = DEFINED(_BootFlashSize)  ? _BootFlashSize : (2 * 
1024*1024);
_CodeFlashBase  = DEFINED(_CodeFlashBase)  ? _CodeFlashBase : 0xE0000000;
_CodeFlashSize  = DEFINED(_CodeFlashSize)  ? _CodeFlashSize : (16 * 
1024*1024);

_VectorRam      = DEFINED(_VectorRam)      ? _VectorRam : _SdramBase;
_DataRam        = DEFINED(_DataRam)        ? _DataRam   : 
_data_dest_start;
_DataRom        = DEFINED(_DataRom)        ? _DataRom   : _data_src_start;
_DataEnd        = DEFINED(_DataEnd)        ? _DataEnd   : _data_dest_end;
_BssStart       = DEFINED(_BssStart)       ? _BssStart  : _clear_start;
_BssEnd         = DEFINED(_BssEnd)         ? _BssEnd    : _clear_end;
_SpInit         = DEFINED(_SpInit)         ? _SpInit    : 
_EndInitStackSpace;

_InitStackSize  = DEFINED(StackSize)       ? StackSize  : 0x800;  /* 2 kB  
*/
_TopRamReserved = DEFINED(_TopRamReserved) ? _TopRamReserved : 0;

RamBase        = DEFINED(_SdramBase)      ? _SdramBase : _SdramBase;
RamSize        = DEFINED(_SdramSize)      ? _SdramSize : _SdramSize;
HeapSize       = DEFINED(HeapSize)       ? HeapSize   : 0x0;
_VBR            = DEFINED(_VBR)            ? _VBR       : RamBase;

__MBAR          = DEFINED(__MBAR)          ? __MBAR     : 0x10000000;

ENTRY(start)
MEMORY
{
    /*sdram      : ORIGIN = 0x400     , LENGTH = 64M - 0x400*/
    sdram      : ORIGIN = 0x01000000  , LENGTH = 64M - 0x01000000
    code_flash : ORIGIN = 0xE0000000, LENGTH = 16M
    boot_flash : ORIGIN = 0xFF800000, LENGTH = 2M
}
...

################################################################
## mmap

## mmap EVB
dBUG>

External Reset

ColdFire MCF547X on the M5475EVB
Firmware v4a.1a.1d (Built on Jan 21 2007 22:28:09)
Copyright 1995-2007 Freescale Semiconductor, Inc.

Enter 'help' for help.

dBUG> mmap

      Type           Start         End      Port Size
  ---------------------------------------------------
  SDRAM            0x00000000   0x03FFFFFF   32-bit
  MBAR             0x10000000   0x1003FFFF   32-bit
  System SRAM      0x10010000   0x10017FFF   32-bit
  Core SRAM0       0x20000000   0x20000FFF   32-bit
  Core SRAM1       0x20001000   0x20001FFF   32-bit
  Code Flash       0xE0000000   0xE0FFFFFF   16-bit
  Boot Flash       0xFF800000   0xFF9FFFFF   16-bit

   Protected         Start         End
  ----------------------------------------
  dBUG Code        0xFF800000   0xFF82FFFF
  dBUG Data        0x00000000   0x0001FFFF
  MCD API          0x10010000   0x10012FFF

    Chip Selects
  ----------------
  CS0  Boot Flash
  CS1  Code Flash

## mmap Cobra

      Type           Start         End      Port Size
  ---------------------------------------------------
  SDRAM            0xF0000000   0xF7FFFFFF   32-bit
  MBAR             0xFE000000   0xFE03FFFF   32-bit
  System SRAM      0xFE010000   0xFE017FFF   32-bit
  Core SRAM0       0xFF000000   0xFF000FFF   32-bit
  Core SRAM1       0xFF001000   0xFF001FFF   32-bit
  Boot Flash       0xFC000000   0xFDFFFFFF   16-bit
  VME Config       0xFE800000   0xFE800226   16-bit
  Timer            0xFE880000   0xFE88000C   8-bit
  VME Bus          0x00000000   0xBFFFFFFF   32-bit
  VME Bus Sh. IO   0xFFFF0000   0xFFFFFFFF   32-bit

   Protected         Start         End
  ----------------------------------------
  dBUG Code        0xFC000000   0xFC095FFF
  dBUG Data        0xF0000000   0xF001FFFF
  MCD API          0xFE010000   0xFE012FFF
 
    Chip Selects
  ----------------
  CS0  Boot Flash

dBUG> 

################################################################
## I come to this point visible in the console 
## (launch multi-tasking)
## ./cpukit/score/src/threadstartmultitasking.c
void _Thread_Start_multitasking( void )
{
...
  printk("_Context_Switch()...\n");
  _Context_Switch( &_Thread_BSP_context, &_Thread_Heir->Registers );
}

################################################################
## ./test.c  (0xadef  is not set on the EVB board but works on Cobra)
## not any output visible
#include <bsp.h>

#include <stdlib.h>
#include <stdio.h>

#include <rtems/bspIo.h>

rtems_task Init(
  rtems_task_argument ignored
)
{
  /* make a memory entry to check after board reset */
        *((volatile unsigned int *)0x00f00000) = 0xadef; 
 
  printf( "\n\n*** HELLO WORLD TEST ***\n" );
  printf( "Hello World\n" );
  printf( "*** END OF HELLO WORLD TEST ***\n" );
  exit( 0 );
}

/* configuration information */

/* NOTICE: the clock driver is explicitly disabled */
#define CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER

#define CONFIGURE_MAXIMUM_TASKS            1

#define CONFIGURE_MAXIMUM_SEMAPHORES       5

#define CONFIGURE_RTEMS_INIT_TASKS_TABLE

#define CONFIGURE_USE_MINIIMFS_AS_BASE_FILESYSTEM

#define CONFIGURE_INIT
#include <rtems/confdefs.h>

/* end of include file */
#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER

#define CONFIGURE_RTEMS_INIT_TASKS_TABLE

#define CONFIGURE_MAXIMUM_TASKS 1

#define CONFIGURE_INIT

#include <rtems/confdefs.h>

/* end of file */

################################################################
## I'm not able to link to 0x400 as seen in the default linkcmds 
## No idea why, used 0x01000000 instead
dBUG> md.l 0 600
00000000:  0001F840 00000400 FF812B12 FF812B12 ... at ......+...+.
00000010:  FF812B12 FF812B12 FF812B12 FF812B12 ..+...+...+...+.
00000020:  FF812B12 FF812B12 FF812B12 FF812B12 ..+...+...+...+.
00000030:  FF812B12 FF812B12 FF812B12 FF812B12 ..+...+...+...+.
00000040:  FF812B12 FF812B12 FF812B12 FF812B12 ..+...+...+...+.
...
000003F0:  FF812C3E FF812C3E FF812C3E FF812C3E ..,>..,>..,>..,>
00000400:  2D5C7C2F 4D756C74 692D6368 616E6E65 -\|/Multi-channe
00000410:  6C20444D 41204150 4920416C 70686120 l DMA API Alpha
00000420:  76302E33 20283230 30342D30 342D3236 v0.3 (2004-04-26
00000430:  29000000 00000005 00000005 00000001 )...............
00000440:  00000001 00000001 00000001 00000001 ................
...

################################################################



 








-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/users/attachments/20100721/cb7a5580/attachment.html>


More information about the users mailing list