143f5f014SHyok S. Choi/* 243f5f014SHyok S. Choi * linux/arch/arm/mm/proc-arm9tdmi.S: utility functions for ARM9TDMI 343f5f014SHyok S. Choi * 443f5f014SHyok S. Choi * Copyright (C) 2003-2006 Hyok S. Choi <hyok.choi@samsung.com> 543f5f014SHyok S. Choi * 643f5f014SHyok S. Choi * This program is free software; you can redistribute it and/or modify 743f5f014SHyok S. Choi * it under the terms of the GNU General Public License version 2 as 843f5f014SHyok S. Choi * published by the Free Software Foundation. 943f5f014SHyok S. Choi * 1043f5f014SHyok S. Choi */ 1143f5f014SHyok S. Choi#include <linux/linkage.h> 1243f5f014SHyok S. Choi#include <linux/init.h> 1343f5f014SHyok S. Choi#include <asm/assembler.h> 1443f5f014SHyok S. Choi#include <asm/asm-offsets.h> 155ec9407dSRussell King#include <asm/hwcap.h> 1643f5f014SHyok S. Choi#include <asm/pgtable-hwdef.h> 1743f5f014SHyok S. Choi#include <asm/pgtable.h> 1843f5f014SHyok S. Choi#include <asm/ptrace.h> 1943f5f014SHyok S. Choi 20*b4a19f03SDave Martin#include "proc-macros.S" 21*b4a19f03SDave Martin 2243f5f014SHyok S. Choi .text 2343f5f014SHyok S. Choi/* 2443f5f014SHyok S. Choi * cpu_arm9tdmi_proc_init() 2543f5f014SHyok S. Choi * cpu_arm9tdmi_do_idle() 2643f5f014SHyok S. Choi * cpu_arm9tdmi_dcache_clean_area() 2743f5f014SHyok S. Choi * cpu_arm9tdmi_switch_mm() 2843f5f014SHyok S. Choi * 2943f5f014SHyok S. Choi * These are not required. 3043f5f014SHyok S. Choi */ 3143f5f014SHyok S. ChoiENTRY(cpu_arm9tdmi_proc_init) 3243f5f014SHyok S. ChoiENTRY(cpu_arm9tdmi_do_idle) 3343f5f014SHyok S. ChoiENTRY(cpu_arm9tdmi_dcache_clean_area) 3443f5f014SHyok S. ChoiENTRY(cpu_arm9tdmi_switch_mm) 3543f5f014SHyok S. Choi mov pc, lr 3643f5f014SHyok S. Choi 3743f5f014SHyok S. Choi/* 3843f5f014SHyok S. Choi * cpu_arm9tdmi_proc_fin() 3943f5f014SHyok S. Choi */ 4043f5f014SHyok S. ChoiENTRY(cpu_arm9tdmi_proc_fin) 4143f5f014SHyok S. Choi mov pc, lr 4243f5f014SHyok S. Choi 4343f5f014SHyok S. Choi/* 4443f5f014SHyok S. Choi * Function: cpu_arm9tdmi_reset(loc) 4543f5f014SHyok S. Choi * Params : loc(r0) address to jump to 4643f5f014SHyok S. Choi * Purpose : Sets up everything for a reset and jump to the location for soft reset. 4743f5f014SHyok S. Choi */ 4843f5f014SHyok S. ChoiENTRY(cpu_arm9tdmi_reset) 4943f5f014SHyok S. Choi mov pc, r0 5043f5f014SHyok S. Choi 515085f3ffSRussell King __CPUINIT 5243f5f014SHyok S. Choi 5343f5f014SHyok S. Choi .type __arm9tdmi_setup, #function 5443f5f014SHyok S. Choi__arm9tdmi_setup: 5543f5f014SHyok S. Choi mov pc, lr 5643f5f014SHyok S. Choi .size __arm9tdmi_setup, . - __arm9tdmi_setup 5743f5f014SHyok S. Choi 5843f5f014SHyok S. Choi __INITDATA 5943f5f014SHyok S. Choi 60*b4a19f03SDave Martin @ define struct processor (see <asm/proc-fns.h> and proc-macros.S) 61*b4a19f03SDave Martin define_processor_functions arm9tdmi, dabort=nommu_early_abort, pabort=legacy_pabort, nommu=1 6243f5f014SHyok S. Choi 6343f5f014SHyok S. Choi .section ".rodata" 6443f5f014SHyok S. Choi 65*b4a19f03SDave Martin string cpu_arch_name, "armv4t" 66*b4a19f03SDave Martin string cpu_elf_name, "v4" 67*b4a19f03SDave Martin string cpu_arm9tdmi_name, "ARM9TDMI" 68*b4a19f03SDave Martin string cpu_p2001_name, "P2001" 6943f5f014SHyok S. Choi 7043f5f014SHyok S. Choi .align 7143f5f014SHyok S. Choi 7243f5f014SHyok S. Choi .section ".proc.info.init", #alloc, #execinstr 7343f5f014SHyok S. Choi 74*b4a19f03SDave Martin.macro arm9tdmi_proc_info name:req, cpu_val:req, cpu_mask:req, cpu_name:req 75*b4a19f03SDave Martin .type __\name\()_proc_info, #object 76*b4a19f03SDave Martin__\name\()_proc_info: 77*b4a19f03SDave Martin .long \cpu_val 78*b4a19f03SDave Martin .long \cpu_mask 7943f5f014SHyok S. Choi .long 0 8043f5f014SHyok S. Choi .long 0 8143f5f014SHyok S. Choi b __arm9tdmi_setup 8243f5f014SHyok S. Choi .long cpu_arch_name 8343f5f014SHyok S. Choi .long cpu_elf_name 8443f5f014SHyok S. Choi .long HWCAP_SWP | HWCAP_THUMB | HWCAP_26BIT 85*b4a19f03SDave Martin .long \cpu_name 8643f5f014SHyok S. Choi .long arm9tdmi_processor_functions 8743f5f014SHyok S. Choi .long 0 8843f5f014SHyok S. Choi .long 0 8943f5f014SHyok S. Choi .long v4_cache_fns 90*b4a19f03SDave Martin .size __\name\()_proc_info, . - __\name\()_proc_info 91*b4a19f03SDave Martin.endm 9243f5f014SHyok S. Choi 93*b4a19f03SDave Martin arm9tdmi_proc_info arm9tdmi, 0x41009900, 0xfff8ff00, cpu_arm9tdmi_name 94*b4a19f03SDave Martin arm9tdmi_proc_info p2001, 0x41029000, 0xffffffff, cpu_p2001_name 95