Kevin asked for the project file, so here it is..
Hope you got a few hours to compile it :*(
>From: John Williams <
jwilliams@xxxxxxxxxxxxxx>
>Reply-To:
microblaze-uclinux@xxxxxxxxxxxxxx>To:
microblaze-uclinux@xxxxxxxxxxxxxx>Subject:
Re: [microblaze-uclinux] Jtag Debug
>Date: Fri, 28 Oct 2005 08:42:30
+1000
>
>Hi Andy,
>
>A couple of comments/observations
about your system, that may be relevant.
>
>From your MHS
file:
>
>BEGIN mch_opb_ddr
> PARAMETER INSTANCE =
DDR_SDRAM_64Mx32
> PARAMETER HW_VER =
1.00.a
>
>
>[snip]
>
> PARAMETER
C_DDR_AWIDTH = 13
>
>You have no PARAMETER C_DDR_DWIDTH set - by
default it is 16 (look at
>MPD file), but the name of your peripheral
suggests that you have
>32-bit wide DDR.
>
>
>
[snip]
>
> BUS_INTERFACE SOPB = mb_opb
>
BUS_INTERFACE MCH0 = ixcl
> BUS_INTERFACE MCH1 =
dxcl
>
>I am surprised your system works at all - there is a bug in
the
>opb_mch_ddr controller - I reported the bug to Xilinx a while ago,
and
>understand that a patch shhould be released soon.
>
>In
the systems where I saw the bug (66 MHz w/ 16 bit wide DDR) the XCL
>interface would lock up the CPU - but maybe in your system it's
>manifesting itself as very slow instruction fetch?
>
>I can
say with some certainty that the debug/MDM controller is not the
>cause
of your performance woes.
>
>Try the OPB_DDR controller instead
(with caches of course), see if that
>has any impact. In principle,
the MCH controllers are much faster, but
>until the bug in the
mch_opb_ddr is fixed, you probably shouldn't try
>to use
it.
>
>Cheers,
>
>John
>
>
>
>Abot
Botbot wrote:
> > Hey Friends,
> >
> >
This might be considered off topic, but I think I'm missing a
> >
fundamantal explanation for the performance that I get. Here's my
> >
basic design flow, which doesn't use uCLinux yet, I was just trying
>
> to verify that the DSP functionality I want is possible on the
>
> microblaze... I download the XMD stub to the board, then run "dow
>
> executable.elf" from XMD and type "run"... This sets my code in
>
> motion, but it seems to be going extremely slow. It's running
> >
entirely out of SRAM, but that shouldn't be the only factor in the
> >
performance I'm seeing... I'm wondering if my whole system is
> >
running over the JTAG clock and putting out debug symbols to the PC,
>
> even though I'm not observing them, and I took the -g option out of
> > the compiler flags.. So two questions... Am I running in some
debug
> > mode where it is running much slower than it could be... How
do I
> > get the hardware to run independantly, if it is in some debug
mode..
> > After I finish a few things for my graduate classes (mid
terms,
> > blech!) I will get back on the uCLinux train and get that
running on
> > my ML401 board. Thanks for any help you can give! I'll
attatch some
> > files in case anyone thinks looking at them will help
them to
>understand.
> >
> > Thanks,
> >
Andy
> >
> >
_________________________________________________________________
> >
Express yourself instantly with MSN Messenger! Download today - it's
>
> FREE!
> >
http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/>
>
> >
/*******************************************************************
>
> *
> > * CAUTION: This file is automatically generated by
libgen.
> > * Version: Xilinx EDK 7.1.2 EDK_H.12.5.1
> > * DO
NOT EDIT.
> > *
> > * Copyright (c) 2005 Xilinx, Inc.
All rights reserved.
> > *
> > * Description: Driver
parameters
> > *
> >
*******************************************************************/
>
>
> > #define STDIN_BASEADDRESS 0x40600000 #define
STDOUT_BASEADDRESS
> > 0x40600000
> >
> >
/******************************************************************/
>
>
> > #define XPAR_DLMB_CNTLR_BASEADDR 0x00000000 #define
>
> XPAR_DLMB_CNTLR_HIGHADDR 0x00001FFF #define XPAR_ILMB_CNTLR_BASEADDR
> > 0x00000000 #define XPAR_ILMB_CNTLR_HIGHADDR 0x00001FFF
>
>
> >
/******************************************************************/
>
>
> > #define XPAR_XUARTLITE_NUM_INSTANCES 2 #define
> >
XPAR_DEBUG_MODULE_BASEADDR 0x41400000 #define
> >
XPAR_DEBUG_MODULE_HIGHADDR 0x4140FFFF #define
> >
XPAR_DEBUG_MODULE_DEVICE_ID 0 #define XPAR_DEBUG_MODULE_BAUDRATE 0
> >
#define XPAR_DEBUG_MODULE_USE_PARITY 0 #define
> >
XPAR_DEBUG_MODULE_ODD_PARITY 0 #define XPAR_DEBUG_MODULE_DATA_BITS 0
>
> #define XPAR_RS232_UART_BASEADDR 0x40600000 #define
> >
XPAR_RS232_UART_HIGHADDR 0x4060FFFF #define
> >
XPAR_RS232_UART_DEVICE_ID 1 #define XPAR_RS232_UART_BAUDRATE 9600
> >
#define XPAR_RS232_UART_USE_PARITY 0 #define
> >
XPAR_RS232_UART_ODD_PARITY 0 #define XPAR_RS232_UART_DATA_BITS 8
>
>
> >
/******************************************************************/
>
>
> > #define XPAR_XGPIO_NUM_INSTANCES 4
> > #define
XPAR_LEDS_4BIT_BASEADDR 0x40040000 #define
> > XPAR_LEDS_4BIT_HIGHADDR
0x4004FFFF #define XPAR_LEDS_4BIT_DEVICE_ID
> > 0 #define
XPAR_LEDS_4BIT_INTERRUPT_PRESENT 0 #define
> > XPAR_LEDS_4BIT_IS_DUAL
0 #define XPAR_LEDS_POSITIONS_BASEADDR
> > 0x40020000 #define
XPAR_LEDS_POSITIONS_HIGHADDR 0x4002FFFF #define
> >
XPAR_LEDS_POSITIONS_DEVICE_ID 1 #define
> >
XPAR_LEDS_POSITIONS_INTERRUPT_PRESENT 0 #define
> >
XPAR_LEDS_POSITIONS_IS_DUAL 0 #define
> >
XPAR_PUSH_BUTTONS_POSITION_BASEADDR 0x40000000 #define
> >
XPAR_PUSH_BUTTONS_POSITION_HIGHADDR 0x4000FFFF #define
> >
XPAR_PUSH_BUTTONS_POSITION_DEVICE_ID 2 #define
> >
XPAR_PUSH_BUTTONS_POSITION_INTERRUPT_PRESENT 0 #define
> >
XPAR_PUSH_BUTTONS_POSITION_IS_DUAL 0 #define
> >
XPAR_DIP_SWITCHES_8BIT_BASEADDR 0x40060000 #define
> >
XPAR_DIP_SWITCHES_8BIT_HIGHADDR 0x4006FFFF #define
> >
XPAR_DIP_SWITCHES_8BIT_DEVICE_ID 3 #define
> >
XPAR_DIP_SWITCHES_8BIT_INTERRUPT_PRESENT 0 #define
> >
XPAR_DIP_SWITCHES_8BIT_IS_DUAL 0
> >
> >
/******************************************************************/
>
>
> > #define XPAR_XIIC_NUM_INSTANCES 1
> > #define
XPAR_IIC_EEPROM_BASEADDR 0x40800000 #define
> >
XPAR_IIC_EEPROM_HIGHADDR 0x4080FFFF #define
> >
XPAR_IIC_EEPROM_DEVICE_ID 0 #define XPAR_IIC_EEPROM_TEN_BIT_ADR 0
> >
#define XPAR_IIC_EEPROM_GPO_WIDTH 1
> >
> >
/******************************************************************/
>
>
> > #define XPAR_XSYSACE_MEM_WIDTH 16
> > #define
XPAR_XSYSACE_NUM_INSTANCES 1 #define
> >
XPAR_SYSACE_COMPACTFLASH_BASEADDR 0x41800000 #define
> >
XPAR_SYSACE_COMPACTFLASH_HIGHADDR 0x4180FFFF #define
> >
XPAR_SYSACE_COMPACTFLASH_DEVICE_ID 0 #define
> >
XPAR_SYSACE_COMPACTFLASH_MEM_WIDTH 16
> >
> >
/******************************************************************/
>
>
> > #define XPAR_DDR_SDRAM_64MX32_MEM0_BASEADDR 0x24000000 #define
> > XPAR_DDR_SDRAM_64MX32_MEM0_HIGHADDR 0x27FFFFFF
>
>
> >
/******************************************************************/
>
>
> > #define XPAR_XEMAC_NUM_INSTANCES 1
> > #define
XPAR_ETHERNET_MAC_BASEADDR 0x40C00000 #define
> >
XPAR_ETHERNET_MAC_HIGHADDR 0x40C0FFFF #define
> >
XPAR_ETHERNET_MAC_DEVICE_ID 0 #define
> >
XPAR_ETHERNET_MAC_ERR_COUNT_EXIST 1 #define
> >
XPAR_ETHERNET_MAC_DMA_PRESENT 1 #define XPAR_ETHERNET_MAC_MII_EXIST
>
> 1 #define XPAR_ETHERNET_MAC_CAM_EXIST 0 #define
> >
XPAR_ETHERNET_MAC_JUMBO_EXIST 0
> >
> >
/******************************************************************/
>
>
> > #define XPAR_SRAM_256KX32_NUM_BANKS_MEM 1
> >
>
>
/******************************************************************/
>
>
> > #define XPAR_SRAM_256KX32_MEM0_BASEADDR 0x22000000 #define
> > XPAR_SRAM_256KX32_MEM0_HIGHADDR 0x220FFFFF
> >
>
>
/******************************************************************/
>
>
> > #define XPAR_XTMRCTR_NUM_INSTANCES 1 #define
> >
XPAR_OPB_TIMER_1_BASEADDR 0x41C00000 #define
> >
XPAR_OPB_TIMER_1_HIGHADDR 0x41C0FFFF #define
> >
XPAR_OPB_TIMER_1_DEVICE_ID 0
> >
> >
/******************************************************************/
>
>
> > #define XPAR_INTC_MAX_NUM_INTR_INPUTS 1 #define
XPAR_XINTC_HAS_IPR 1
> > #define XPAR_XINTC_USE_DCR 0 #define
XPAR_XINTC_NUM_INSTANCES 1
> > #define XPAR_OPB_INTC_0_BASEADDR
0x41200000 #define
> > XPAR_OPB_INTC_0_HIGHADDR 0x4120FFFF #define
> > XPAR_OPB_INTC_0_DEVICE_ID 0 #define XPAR_OPB_INTC_0_KIND_OF_INTR
> > 0x00000000
> >
> >
/******************************************************************/
>
>
> > #define XPAR_INTC_SINGLE_BASEADDR 0x41200000 #define
>
> XPAR_INTC_SINGLE_HIGHADDR 0x4120FFFF #define
> >
XPAR_INTC_SINGLE_DEVICE_ID XPAR_OPB_INTC_0_DEVICE_ID #define
> >
XPAR_OPB_TIMER_1_INTERRUPT_MASK 0X000001 #define
> >
XPAR_OPB_INTC_0_OPB_TIMER_1_INTERRUPT_INTR 0
> >
> >
/******************************************************************/
>
>
> > #define XPAR_CPU_CORE_CLOCK_FREQ_HZ 100000000
>
>
> >
/******************************************************************/
>
>
>
>
>--
>Dr John Williams, Research
Fellow,
>Embedded Systems Group / Reconfigurable Computing School of ITEE,
The
>University of Queensland, Brisbane, Australia
>(p) +61 7
33652185 (f) +61 7 33654999 (m) +61 403969243
>___________________________ microblaze-uclinux mailing list
>microblaze-uclinux@xxxxxxxxxxxxxx
>Project Home Page :
http://www.itee.uq.edu.au/~jwilliams/mblaze-uclinux>Mailing
List Archive :
>http://www.itee.uq.edu.au/~listarch/microblaze-uclinux/
>