mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-08 20:07:46 +09:00
ARM: fiq_glue: Add fiq_glue
Signed-off-by: Huibin Hong <huibin.hong@rock-chips.com> Change-Id: I27d2554e07d9de204e0a06696d38db51608d9f6b
This commit is contained in:
@@ -18,3 +18,7 @@ config SHARP_PARAM
|
|||||||
|
|
||||||
config SHARP_SCOOP
|
config SHARP_SCOOP
|
||||||
bool
|
bool
|
||||||
|
|
||||||
|
config FIQ_GLUE
|
||||||
|
bool
|
||||||
|
select FIQ
|
||||||
|
|||||||
@@ -5,6 +5,7 @@
|
|||||||
|
|
||||||
obj-y += firmware.o
|
obj-y += firmware.o
|
||||||
|
|
||||||
|
obj-$(CONFIG_FIQ_GLUE) += fiq_glue.o fiq_glue_setup.o
|
||||||
obj-$(CONFIG_SA1111) += sa1111.o
|
obj-$(CONFIG_SA1111) += sa1111.o
|
||||||
obj-$(CONFIG_DMABOUNCE) += dmabounce.o
|
obj-$(CONFIG_DMABOUNCE) += dmabounce.o
|
||||||
obj-$(CONFIG_KRAIT_L2_ACCESSORS) += krait-l2-accessors.o
|
obj-$(CONFIG_KRAIT_L2_ACCESSORS) += krait-l2-accessors.o
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ static void fiq_glue_setup_helper(void *info)
|
|||||||
{
|
{
|
||||||
struct fiq_glue_handler *handler = info;
|
struct fiq_glue_handler *handler = info;
|
||||||
fiq_glue_setup(handler->fiq, handler,
|
fiq_glue_setup(handler->fiq, handler,
|
||||||
__get_cpu_var(fiq_stack) + THREAD_START_SP,
|
(void *)((*this_cpu_ptr(&fiq_stack)) + THREAD_START_SP),
|
||||||
fiq_return_handler);
|
fiq_return_handler);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -139,7 +139,7 @@ void fiq_glue_resume(void)
|
|||||||
if (!current_handler)
|
if (!current_handler)
|
||||||
return;
|
return;
|
||||||
fiq_glue_setup(current_handler->fiq, current_handler,
|
fiq_glue_setup(current_handler->fiq, current_handler,
|
||||||
__get_cpu_var(fiq_stack) + THREAD_START_SP,
|
(void *)((*this_cpu_ptr(&fiq_stack)) + THREAD_START_SP),
|
||||||
fiq_return_handler);
|
fiq_return_handler);
|
||||||
if (current_handler->resume)
|
if (current_handler->resume)
|
||||||
current_handler->resume(current_handler);
|
current_handler->resume(current_handler);
|
||||||
|
|||||||
@@ -94,8 +94,9 @@ int show_fiq_list(struct seq_file *p, int prec)
|
|||||||
void set_fiq_handler(void *start, unsigned int length)
|
void set_fiq_handler(void *start, unsigned int length)
|
||||||
{
|
{
|
||||||
void *base = vectors_page;
|
void *base = vectors_page;
|
||||||
unsigned offset = FIQ_OFFSET;
|
unsigned int volatile offset = FIQ_OFFSET;
|
||||||
|
|
||||||
|
offset &= 0xfffffffc;
|
||||||
memcpy(base + offset, start, length);
|
memcpy(base + offset, start, length);
|
||||||
if (!cache_is_vipt_nonaliasing())
|
if (!cache_is_vipt_nonaliasing())
|
||||||
flush_icache_range((unsigned long)base + offset,
|
flush_icache_range((unsigned long)base + offset,
|
||||||
|
|||||||
@@ -70,3 +70,11 @@ config RK_CONSOLE_THREAD
|
|||||||
default n
|
default n
|
||||||
help
|
help
|
||||||
Normal kernel printk will write out to UART by "kconsole" kthread
|
Normal kernel printk will write out to UART by "kconsole" kthread
|
||||||
|
|
||||||
|
config FIQ_DEBUGGER_FIQ_GLUE
|
||||||
|
bool "Uart FIQ is captured by linux"
|
||||||
|
depends on FIQ_DEBUGGER
|
||||||
|
select FIQ_GLUE
|
||||||
|
default n
|
||||||
|
help
|
||||||
|
It is for ARM v7 arch without trust zone.
|
||||||
|
|||||||
Reference in New Issue
Block a user