This is the mail archive of the
mailing list for the eCos project.
S3C2440 cache problem [Was: Corrupted alarm list]
- From: Stanislav Meduna <stano at meduna dot org>
- To: eCos Discussion <ecos-discuss at ecos dot sourceware dot org>
- Date: Mon, 07 Feb 2011 00:37:16 +0100
- Subject: [ECOS] S3C2440 cache problem [Was: Corrupted alarm list]
- References: <4D4A6C6C.email@example.com>
On 03.02.2011 09:50, Stanislav Meduna wrote:
> I have a strange situation in the eCos alarm list.
> The Cyg_Counter::tick is looping endlessly, because
> they are two active alarms in the (single, non-sorted)
> list pointing to each other, but neither one is
> pointed to by alarm_list_ptr.
Well .. this and many other corruptions were apparently
caused by HAL_FLASH_CACHES_OFF / HAL_FLASH_CACHES_ON
calls in the flash memory subsystem - I was able to
reproduce it without accessing the flash region at all.
I am not (yet ;)) an expert for ARM920T cache handling
(I'll try to study the documents later - I actually do
not need this as the region is set to uncached/unbuffered
at the MMU level so I can just #ifdef it out), but something
is clearly wrong here.
Anyone has experience with an ARM920T with MMU enabled
and cache sync/clean and can review the code in
hal_cache.h macros for CYGPKG_HAL_ARM_ARM9_ARM920T?
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss