[BACK]Return to machdep.h CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / sys / arch / arm / include / arm32

Annotation of src/sys/arch/arm/include/arm32/machdep.h, Revision 1.21.14.3

1.21.14.2  martin      1: /* $NetBSD$ */
1.1       chris       2:
1.21.14.1  christos    3: #ifndef _ARM32_MACHDEP_H_
                      4: #define _ARM32_MACHDEP_H_
1.1       chris       5:
1.20      skrll       6: /* Define various stack sizes in pages */
1.11      matt        7: #ifndef IRQ_STACK_SIZE
                      8: #define IRQ_STACK_SIZE 1
                      9: #endif
                     10: #ifndef ABT_STACK_SIZE
                     11: #define ABT_STACK_SIZE 1
                     12: #endif
                     13: #ifndef UND_STACK_SIZE
                     14: #define UND_STACK_SIZE 1
                     15: #endif
                     16: #ifndef FIQ_STACK_SIZE
                     17: #define FIQ_STACK_SIZE 1
                     18: #endif
                     19:
                     20: extern void (*cpu_reset_address)(void);
                     21: extern paddr_t cpu_reset_address_paddr;
                     22:
1.19      jmcneill   23: extern void (*cpu_powerdown_address)(void);
                     24:
1.10      matt       25: extern u_int data_abort_handler_address;
                     26: extern u_int prefetch_abort_handler_address;
1.14      matt       27: // extern u_int undefined_handler_address;
                     28: #define        undefined_handler_address (curcpu()->ci_undefsave[2])
                     29:
                     30: struct bootmem_info {
                     31:        paddr_t bmi_start;
                     32:        paddr_t bmi_kernelstart;
                     33:        paddr_t bmi_kernelend;
                     34:        paddr_t bmi_end;
                     35:        pv_addrqh_t bmi_freechunks;
                     36:        pv_addrqh_t bmi_chunks;         /* sorted list of memory to be mapped */
                     37:        pv_addr_t bmi_freeblocks[4];
                     38:        /*
                     39:         * These need to be static for pmap's kernel_pt list.
                     40:         */
                     41:        pv_addr_t bmi_vector_l2pt;
                     42:        pv_addr_t bmi_io_l2pt;
1.17      matt       43:        pv_addr_t bmi_l2pts[32];        // for large memory disks.
1.14      matt       44:        u_int bmi_freepages;
                     45:        u_int bmi_nfreeblocks;
                     46: };
                     47:
                     48: extern struct bootmem_info bootmem_info;
1.10      matt       49:
                     50: extern char *booted_kernel;
1.21.14.1  christos   51: extern u_long kern_vtopdiff;
                     52:
1.1       chris      53: /* misc prototypes used by the many arm machdeps */
1.12      matt       54: void cortex_pmc_ccnt_init(void);
1.21.14.1  christos   55: void cpu_hatch(struct cpu_info *, u_int, void (*)(struct cpu_info *));
1.9       dsl        56: void halt(void);
                     57: void parse_mi_bootargs(char *);
                     58: void data_abort_handler(trapframe_t *);
                     59: void prefetch_abort_handler(trapframe_t *);
                     60: void undefinedinstruction_bounce(trapframe_t *);
                     61: void dumpsys(void);
1.1       chris      62:
1.20      skrll      63: /*
1.21      skrll      64:  * note that we use void * as all the platforms have different ideas on what
1.2       chris      65:  * the structure is
                     66:  */
1.21.14.3! martin     67: vaddr_t initarm(void *);
1.14      matt       68: struct pmap_devmap;
                     69: struct boot_physmem;
1.21.14.1  christos   70:
1.21.14.2  martin     71: void cpu_startup_hook(void);
                     72: void cpu_startup_default(void);
                     73:
1.21.14.1  christos   74: static inline paddr_t
                     75: aarch32_kern_vtophys(vaddr_t va)
                     76: {
                     77:        return va - kern_vtopdiff;
                     78: }
                     79:
                     80: static inline vaddr_t
                     81: aarch32_kern_phystov(paddr_t pa)
                     82: {
                     83:        return pa + kern_vtopdiff;
                     84: }
                     85:
                     86: #define KERN_VTOPHYS(va)       aarch32_kern_vtophys(va)
                     87: #define KERN_PHYSTOV(pa)       aarch32_kern_phystov(pa)
                     88:
                     89: void cpu_kernel_vm_init(paddr_t, psize_t);
                     90:
1.14      matt       91: void arm32_bootmem_init(paddr_t memstart, psize_t memsize, paddr_t kernelstart);
                     92: void arm32_kernel_vm_init(vaddr_t kvm_base, vaddr_t vectors,
                     93:        vaddr_t iovbase /* (can be zero) */,
                     94:        const struct pmap_devmap *devmap, bool mapallmem_p);
                     95: vaddr_t initarm_common(vaddr_t kvm_base, vsize_t kvm_size,
                     96:         const struct boot_physmem *bp, size_t nbp);
                     97:
1.21.14.1  christos   98: void uartputc(int);
1.2       chris      99:
                    100: /* from arm/arm32/intr.c */
1.9       dsl       101: void dosoftints(void);
                    102: void set_spl_masks(void);
1.2       chris     103: #ifdef DIAGNOSTIC
1.9       dsl       104: void dump_spl_masks(void);
1.2       chris     105: #endif
1.1       chris     106: #endif

CVSweb <webmaster@jp.NetBSD.org>