This is the mail archive of the ecos-discuss@sourceware.org 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]

Re: RedBoot ROM monitor causes DMA errors!!


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


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