]>
Commit | Line | Data |
---|---|---|
87ecb68b PB |
1 | /* PowerPC hardware exceptions management helpers */ |
2 | typedef void (*clk_setup_cb)(void *opaque, uint32_t freq); | |
c227f099 AL |
3 | typedef struct clk_setup_t clk_setup_t; |
4 | struct clk_setup_t { | |
87ecb68b PB |
5 | clk_setup_cb cb; |
6 | void *opaque; | |
7 | }; | |
c227f099 | 8 | static inline void clk_setup (clk_setup_t *clk, uint32_t freq) |
87ecb68b PB |
9 | { |
10 | if (clk->cb != NULL) | |
11 | (*clk->cb)(clk->opaque, freq); | |
12 | } | |
13 | ||
14 | clk_setup_cb cpu_ppc_tb_init (CPUState *env, uint32_t freq); | |
15 | /* Embedded PowerPC DCR management */ | |
73b01960 AG |
16 | typedef uint32_t (*dcr_read_cb)(void *opaque, int dcrn); |
17 | typedef void (*dcr_write_cb)(void *opaque, int dcrn, uint32_t val); | |
87ecb68b PB |
18 | int ppc_dcr_init (CPUState *env, int (*dcr_read_error)(int dcrn), |
19 | int (*dcr_write_error)(int dcrn)); | |
20 | int ppc_dcr_register (CPUState *env, int dcrn, void *opaque, | |
21 | dcr_read_cb drc_read, dcr_write_cb dcr_write); | |
22 | clk_setup_cb ppc_emb_timers_init (CPUState *env, uint32_t freq); | |
23 | /* Embedded PowerPC reset */ | |
24 | void ppc40x_core_reset (CPUState *env); | |
25 | void ppc40x_chip_reset (CPUState *env); | |
26 | void ppc40x_system_reset (CPUState *env); | |
27 | void PREP_debug_write (void *opaque, uint32_t addr, uint32_t val); | |
28 | ||
d60efc6b BS |
29 | extern CPUWriteMemoryFunc * const PPC_io_write[]; |
30 | extern CPUReadMemoryFunc * const PPC_io_read[]; | |
87ecb68b | 31 | void PPC_debug_write (void *opaque, uint32_t addr, uint32_t val); |
b1d8e52e BS |
32 | |
33 | void ppc40x_irq_init (CPUState *env); | |
9fdc60bf | 34 | void ppce500_irq_init (CPUState *env); |
b1d8e52e BS |
35 | void ppc6xx_irq_init (CPUState *env); |
36 | void ppc970_irq_init (CPUState *env); | |
5ce4aafd AJ |
37 | |
38 | /* PPC machines for OpenBIOS */ | |
39 | enum { | |
40 | ARCH_PREP = 0, | |
41 | ARCH_MAC99, | |
42 | ARCH_HEATHROW, | |
43 | }; | |
44 | ||
7f1aec5f LV |
45 | #define FW_CFG_PPC_WIDTH (FW_CFG_ARCH_LOCAL + 0x00) |
46 | #define FW_CFG_PPC_HEIGHT (FW_CFG_ARCH_LOCAL + 0x01) | |
47 | #define FW_CFG_PPC_DEPTH (FW_CFG_ARCH_LOCAL + 0x02) | |
802670e6 BS |
48 | |
49 | #define PPC_SERIAL_MM_BAUDBASE 399193 |