| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
| |
level.
New function arm_cp15_cache_invalidate_level and arm_cp15_cache_clean_level
can be used to maintain single cache level (instruction or data).
Updates #2782
Updates #2783
|
|
|
|
|
|
|
|
|
| |
The change documents meaning of codes and opens
well defined way to use cache type format for cache
examination/debugging outside of arm-cp15.h file.
Updates #2782
Updates #2783
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
architecture variants now.
Next cache operations should work on most of cores now
rtems_cache_flush_entire_data()
rtems_cache_invalidate_entire_data()
rtems_cache_invalidate_entire_instruction()
Instruction cache invalidate works on the first level for now only.
Data cacache operations are extended to ensure flush/invalidate
on all cache levels.
The CP15 arm_cp15_data_cache_clean_all_levels() function extended
to continue through unified levels too (ctype = 4).
Updates #2782
Updates #2783
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Disabling MMU requires complex cache flushing and invalidation
operations. There is almost no way how to do that right
on SMP system without stopping all other CPUs. On the other hand,
there is documented sequence of operations which should be used
according to ARM manual and it guarantees even distribution
of maintenance operations to other cores for last generation
of Cortex-A cores with multiprocessor extension.
This change could require addition of appropriate entry
to arm_cp15_start_mmu_config_table for some BSPs to ensure
that MMU table stays accessible after MMU is enabled
{
.begin = (uint32_t) bsp_translation_table_base,
.end = (uint32_t) bsp_translation_table_base + 0x4000,
.flags = ARMV7_MMU_DATA_READ_WRITE_CACHED
}
Updates #2782
Updates #2783
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The basic data and instruction rage functions should be compatible
for all ARMv4,5,6,7 functions. On the other hand, some functions
are not portable, for example arm_cp15_data_cache_test_and_clean()
and arm_cp15_data_cache_invalidate() for all versions and there
has to be specialized version for newer cores.
arm_cache_l1_properties_for_level uses CCSIDR which is not present
on older chips.
Actual version is only experimental, needs more changes
and problem has been found on RPi1 with dlopen so there seems
to be real problem.
Updates #2783
Updates #2782
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
BSPs.
The original ARM architecture wide cache_.h is changed to dummy version
for targets not implementing/enablig cache at all.
The ARM targets equipped by cache should include
appropriate implementation.
Next options are available for now
c/src/lib/libbsp/arm/shared/armv467ar-basic-cache/cache_.h
basic ARM cache integrated on the CPU core directly
which requires only CP15 oparations
c/src/lib/libbsp/arm/shared/arm-l2c-310/cache_.h
support for case where ARM L2C-310 cache controller
is used. It is accessible as mmaped peripheral.
c/src/lib/libbsp/arm/shared/armv7m/include/cache_.h
Cortex-M specific cache support
Updates #2782
Updates #2783
|
|
|
|
|
|
|
|
|
|
|
| |
base access.
The main reason for inclusion of minimum hypervisor related defines
is that current ARM boards firmware and loaders (U-boot for example)
start loaded operating system kernel in HYP mode to allow it take
control of virtualization (Linux/KVM for example).
Updates #2783
|
|
|
|
|
| |
Updates #2782
Updates #2783
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
On recent u-boots, the watchdog is turned on / left enabled. The
Beaglebone Black rev. C ships with such a u-boot internally so any
application booting from it must disable the watchdog.
Therefore this change is needed to boot an RTEMS app out-of-the-box
on a BBB Rev C - otherwise the user button must be held during boot
(to bypass the stock uboot) or the internal uboot must be updated. To
allow for a better out-of-the-box experience, we just turn off the
watchdog.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Allow users of this header file to optionally place the inline functions
into a non-standard section.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Delete ARMV7_MMU_DATA_READ_WRITE_SHAREABLE and move RTEMS_SMP
specific MMU attribute settings to arm-cp15.h.
|
|
|
|
|
|
|
|
|
|
|
| |
The new ARM_CP15_CTRL_XP is necessary to share ARMv6 and ARMv7
page-table formats and definitions.
It enables the extended page tables (introduced in ARMv6)
to be configured for the hardware page translation mechanism. This way
we can share ARMv6 and ARMv7 page tables entry formats.
Other Fault Status Register Definitions can be useful for debugging or
excpetion handlers.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Script does what is expected and tries to do it as
smartly as possible.
+ remove occurrences of two blank comment lines
next to each other after Id string line removed.
+ remove entire comment blocks which only exited to
contain CVS Ids
+ If the processing left a blank line at the top of
a file, it was removed.
|
|
|
|
|
| |
* shared/include/cache_.h: Moved content of "cache.h" to "cache_.h".
* shared/include/cache.h: Removed file.
|
|
|
|
|
| |
* pxa255/pmc/pmc.c, shared/include/arm-cp15.h:
Use "__asm__" instead of "asm" for improved c99-compliance.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
* at91rm9200/irq/bsp_irq_init.c, mc9328mxl/clock/clockdrv.c,
mc9328mxl/irq/bsp_irq_asm.S, mc9328mxl/irq/bsp_irq_init.c,
mc9328mxl/irq/irq.c, mc9328mxl/irq/irq.h,
s3c2400/irq/bsp_irq_init.c: Changed interrupt handling
to use shared rtems_irq_connect_data struct.
|
| |
|
| |
|
|
|
|
|
| |
* at91rm9200/Makefile.am, mc9328mxl/Makefile.am, shared/Makefile.am:
Eliminate CFLAGS_OPTIMIZE_V.
|
|
|
|
|
|
| |
* at91rm9200/clock/clock.c, at91rm9200/irq/irq.c, at91rm9200/pmc/pmc.c,
mc9328mxl/clock/clockdrv.c, mc9328mxl/irq/irq.c, mc9328mxl/irq/irq.h,
shared/arm920/mmu.c: Remove warnings.
|
|
|
|
|
| |
* at91rm9200/Makefile.am, mc9328mxl/Makefile.am,
shared/Makefile.am: Remove build-variant support.
|
|
|
|
|
|
|
| |
* ChangeLog: Merge-in at91rm9200/ChangeLog, mc9328mxl/ChangeLog,
shared/ChangeLog.
* at91rm9200/ChangeLog, mc9328mxl/ChangeLog, shared/ChangeLog:
Remove.
|
| |
|