There is no point having interrupts enabled before reaching
boot_card() that disables interrupt. We better have it off
all the time.
It is required to turn off interrupt on secondary CPUs in an
SMP system.
Basically the shared-irq handler overwrite the SMP/MP traphandler
previously initialized with set_vector(). That caused IPIs to enter
BSP spurious handler.
Changes include reverting back to setting all page-table section entries
as invalid and modify mm_config_table to apply the correct memory attributes
for raspbberypi memory sections at startup. The newly added entry at mm_config_table
maps raspberrypi GPIO and other registers found at raspberrypi.h
The function
arm_cp15_start_setup_translation_table_and_enable_mmu_and_cache() must
only set the MMU and cache enable flags. Configuration flags must be
set elsewhere.
STOP_TRANSMISSION command is used to finish READ_MULTIPLE_BLOCK
command and its format is regular command format.
It requires valid CRC-7 to have effect at least on
same cards types else it is ignored and attempt
to issue next READ or WRITE commands results in
illegal command condition (0x04) preceded by strange
(0x3f) for tested card.
Signed-off-by: Pavel Pisa <ppisa@pikron.com>
Add support for MMU initialization for RaspberryPi. Introduce new shared
MMU configuration table that can be used by other BSPs that call the
arm_cp15_start_setup_translation_table_and_enable_mmu_and_cache function.
Demonstrate the use of the generic table with RaspberryPi.
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.
Add ISR lock to chain control for proper SMP protection. Replace
rtems_chain_extract() with rtems_chain_explicit_extract() and
rtems_chain_insert() with rtems_chain_explicit_insert() on SMP
configurations. Use rtems_chain_explicit_extract() and
rtems_chain_explicit_insert() to provide SMP support.
pc386 set CLOCK_DRIVER_ISRS_PER_TICK to a
string rather than a numeric value. Add
CLOCK_DRIVER_ISRS_PER_TICK_VALUE and
other clean up on the clock driver.