This is the mail archive of the
ecos-discuss@sourceware.org
mailing list for the eCos project.
Re: RedBoot ROM monitor causes DMA errors!!
- From: Jürgen Lambrecht <J dot Lambrecht at televic dot com>
- To: ecos-discuss at ecos dot sourceware dot org
- Date: Tue, 08 Jul 2008 17:26:22 +0200
- Subject: Re: [ECOS] RedBoot ROM monitor causes DMA errors!!
- References: <4862684C.3060703@televic.com>
Jürgen Lambrecht wrote:
Hello,
My DMA problems with the AT91 EMAC Ethernet driver are solved (cf.
http://ecos.sourceware.org/ml/ecos-discuss/2008-06/msg00135.html).
The problems are caused by the RedBoot ROM monitor:
=> a RAM application has DMA problems (RX Overrun in EMAC Ethernet HW
block in AT91SAM9260)
Also RedBoot ROM itself had the same DMA problems during networking.
The RedBoot ROM (code running in NOR flash) problems were caused by the
very slow flash accesses.
After fine tuning the timing parameters and enabling burst access,
networking in RedBoot ROM works fine.
A RAM application is almost OK, only very seldom there is (still) a DMA
error (RX Overrun).
Conclusions:
OK, a RAM application (using a ROM monitor) is meant to debug, but if
the problems are related to timing, you are lost, because a part of the
code (VVT functions) still resides in ROM which is very slow in access
compared to code in S(D)RAM. (on the faster platforms, as the
AT91SAM9260 ARM9 I have).
So use a standalone appication (not using a ROM monitor) when having
timing related problems!!
Kind regards,
Jürgen
P.S.: yes I will commit my at91 emac driver patch - it just needs some
time. Also, I'm still waiting for answers from Atmel to finalize the TX
part...
=> a "JTAGRAM" application works fine
(JTAGRAM: initializes the VVT, so does not use/need a ROM monitor -
from my build script:
cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
user_value 0 0
};
# cdl_option CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE {
# user_value 1
# # Default value: CYG_HAL_STARTUP != "RAM" ||
!CYGSEM_HAL_USE_ROM_MONITOR
# # option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DEFAULT
# # ActiveIf: !CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE
# # Requires: CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_RESET
# # Requires: CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DELAY_US
# # Requires: CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_CACHE
# # Requires: CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DATA
# # Requires: CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS
# }; default with rom monitor to 0
cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
user_value 0
};
)
Does anybody know why??
I am not debugging with gdb. I am only connected to the board with a
serial port to see the diag_printf's.
This is the startup procedure: Redboot ROM does 'fis load application;
go;'
Kind regards,
Jürgen
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss