Home | History | Annotate | Download | only in hw
      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
     17 qemu_irq *arm_pic_init_cpu(CPUState *env);
     18 
     19 /* armv7m.c */
     20 qemu_irq *armv7m_init(int flash_size, int sram_size,
     21                       const char *kernel_filename, const char *cpu_model);
     22 
     23 /* arm_boot.c */
     24 struct 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 };
     40 void 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.  */
     44 extern int system_clock_scale;
     45 
     46 #endif /* !ARM_MISC_H */
     47