1/*
2 * Misc ARM declarations
3 *
4 * Copyright (c) 2006 CodeSourcery.
5 * Written by Paul Brook
6 *
7 * This code is licenced under the LGPL.
8 *
9 */
10
11#ifndef ARM_MISC_H
12#define ARM_MISC_H 1
13
14/* The CPU is also modeled as an interrupt controller.  */
15#define ARM_PIC_CPU_IRQ 0
16#define ARM_PIC_CPU_FIQ 1
17qemu_irq *arm_pic_init_cpu(CPUState *env);
18
19/* armv7m.c */
20qemu_irq *armv7m_init(int flash_size, int sram_size,
21                      const char *kernel_filename, const char *cpu_model);
22
23/* arm_boot.c */
24struct arm_boot_info {
25    int ram_size;
26    const char *kernel_filename;
27    const char *kernel_cmdline;
28    const char *initrd_filename;
29    target_phys_addr_t loader_start;
30    target_phys_addr_t smp_loader_start;
31    target_phys_addr_t smp_priv_base;
32    int nb_cpus;
33    int board_id;
34    int (*atag_board)(struct arm_boot_info *info, void *p);
35    /* Used internally by arm_boot.c */
36    int is_linux;
37    target_phys_addr_t initrd_size;
38    target_phys_addr_t entry;
39};
40void arm_load_kernel(CPUState *env, struct arm_boot_info *info);
41
42/* Multiplication factor to convert from system clock ticks to qemu timer
43   ticks.  */
44extern int system_clock_scale;
45
46#endif /* !ARM_MISC_H */
47