The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/arm/include/machdep.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /* $NetBSD: machdep.h,v 1.7 2002/02/21 02:52:21 thorpej Exp $ */
    2 /* $FreeBSD: releng/10.1/sys/arm/include/machdep.h 266207 2014-05-16 02:21:51Z ian $ */
    3 
    4 #ifndef _MACHDEP_BOOT_MACHDEP_H_
    5 #define _MACHDEP_BOOT_MACHDEP_H_
    6 
    7 /* Structs that need to be initialised by initarm */
    8 struct pv_addr;
    9 extern struct pv_addr irqstack;
   10 extern struct pv_addr undstack;
   11 extern struct pv_addr abtstack;
   12 
   13 /* Define various stack sizes in pages */
   14 #define IRQ_STACK_SIZE  1
   15 #define ABT_STACK_SIZE  1
   16 #define UND_STACK_SIZE  1
   17 
   18 /* misc prototypes used by the many arm machdeps */
   19 struct trapframe;
   20 void arm_lock_cache_line(vm_offset_t);
   21 void init_proc0(vm_offset_t kstack);
   22 void halt(void);
   23 void data_abort_handler(struct trapframe *);
   24 void prefetch_abort_handler(struct trapframe *);
   25 void set_stackptrs(int cpu);
   26 void undefinedinstruction_bounce(struct trapframe *);
   27 
   28 /* Early boot related helper functions */
   29 struct arm_boot_params;
   30 vm_offset_t default_parse_boot_param(struct arm_boot_params *abp);
   31 vm_offset_t freebsd_parse_boot_param(struct arm_boot_params *abp);
   32 vm_offset_t linux_parse_boot_param(struct arm_boot_params *abp);
   33 vm_offset_t fake_preload_metadata(struct arm_boot_params *abp);
   34 vm_offset_t parse_boot_param(struct arm_boot_params *abp);
   35 void arm_generic_initclocks(void);
   36 
   37 /*
   38  * Initialization functions called by the common initarm() function in
   39  * arm/machdep.c (but not necessarily from the custom initarm() functions of
   40  * older code).
   41  *
   42  *  - initarm_early_init() is called very early, after parsing the boot params
   43  *    and after physical memory has been located and sized.
   44  *
   45  *  - platform_devmap_init() is called as one of the last steps of early virtual
   46  *    memory initialization, shortly before the new page tables are installed.
   47  *
   48  *  - initarm_lastaddr() is called after platform_devmap_init(), and must return
   49  *    the address of the first byte of unusable KVA space.  This allows a
   50  *    platform to carve out of the top of the KVA space whatever reserves it
   51  *    needs for things like static device mapping, and this is called to get the
   52  *    value before calling pmap_bootstrap() which uses the value to size the
   53  *    available KVA.
   54  *
   55  *  - initarm_gpio_init() is called after the static device mappings are
   56  *    established and just before cninit().  The intention is that the routine
   57  *    can do any hardware setup (such as gpio or pinmux) necessary to make the
   58  *    console functional.
   59  *
   60  *  - initarm_late_init() is called just after cninit().  This is the first of
   61  *    the init routines that can use printf() and expect the output to appear on
   62  *    a standard console.
   63  *
   64  */
   65 void initarm_early_init(void);
   66 int initarm_devmap_init(void);
   67 vm_offset_t initarm_lastaddr(void);
   68 void initarm_gpio_init(void);
   69 void initarm_late_init(void);
   70 
   71 /* Board-specific attributes */
   72 void board_set_serial(uint64_t);
   73 void board_set_revision(uint32_t);
   74 
   75 #endif /* !_MACHINE_MACHDEP_H_ */

Cache object: 4cc19311fc2e003595802cd62f314619


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.