aboutsummaryrefslogtreecommitdiff
path: root/target-ppc
diff options
context:
space:
mode:
Diffstat (limited to 'target-ppc')
-rw-r--r--target-ppc/cpu.h35
-rw-r--r--target-ppc/translate_init.c10
2 files changed, 34 insertions, 11 deletions
diff --git a/target-ppc/cpu.h b/target-ppc/cpu.h
index 2a2c4409d3..4b67f1a25c 100644
--- a/target-ppc/cpu.h
+++ b/target-ppc/cpu.h
@@ -1315,15 +1315,34 @@ enum {
/* Input pins definitions */
enum {
/* 6xx bus input pins */
- PPC_INPUT_HRESET = 0,
- PPC_INPUT_SRESET = 1,
- PPC_INPUT_CKSTP_IN = 2,
- PPC_INPUT_MCP = 3,
- PPC_INPUT_SMI = 4,
- PPC_INPUT_INT = 5,
+ PPC6xx_INPUT_HRESET = 0,
+ PPC6xx_INPUT_SRESET = 1,
+ PPC6xx_INPUT_CKSTP_IN = 2,
+ PPC6xx_INPUT_MCP = 3,
+ PPC6xx_INPUT_SMI = 4,
+ PPC6xx_INPUT_INT = 5,
+};
+
+enum {
/* Embedded PowerPC input pins */
- PPC_INPUT_CINT = 6,
- PPC_INPUT_NB,
+ PPCBookE_INPUT_HRESET = 0,
+ PPCBookE_INPUT_SRESET = 1,
+ PPCBookE_INPUT_CKSTP_IN = 2,
+ PPCBookE_INPUT_MCP = 3,
+ PPCBookE_INPUT_SMI = 4,
+ PPCBookE_INPUT_INT = 5,
+ PPCBookE_INPUT_CINT = 6,
+};
+
+enum {
+ /* PowerPC 405 input pins */
+ PPC405_INPUT_RESET_CORE = 0,
+ PPC405_INPUT_RESET_CHIP = 1,
+ PPC405_INPUT_RESET_SYS = 2,
+ PPC405_INPUT_CINT = 3,
+ PPC405_INPUT_INT = 4,
+ PPC405_INPUT_HALT = 5,
+ PPC405_INPUT_DEBUG = 6,
};
/* Hardware exceptions definitions */
diff --git a/target-ppc/translate_init.c b/target-ppc/translate_init.c
index 805c897248..72e577dc27 100644
--- a/target-ppc/translate_init.c
+++ b/target-ppc/translate_init.c
@@ -45,6 +45,7 @@ static inline void glue(glue(ppc, name),_irq_init) (CPUPPCState *env) \
#define PPC_IRQ_INIT_FN(name) \
void glue(glue(ppc, name),_irq_init) (CPUPPCState *env);
#endif
+PPC_IRQ_INIT_FN(405);
PPC_IRQ_INIT_FN(6xx);
/* Generic callbacks:
@@ -1909,7 +1910,8 @@ static void init_ppc_proc (CPUPPCState *env, ppc_def_t *def)
env->nb_tlb = 64;
env->nb_ways = 1;
env->id_tlbs = 0;
- /* XXX: TODO: allocate internal IRQ controller */
+ /* Allocate hardware IRQ controller */
+ ppc405_irq_init(env);
break;
case CPU_PPC_NPE405H: /* NPe405 H family */
@@ -1924,7 +1926,8 @@ static void init_ppc_proc (CPUPPCState *env, ppc_def_t *def)
env->nb_tlb = 64;
env->nb_ways = 1;
env->id_tlbs = 0;
- /* XXX: TODO: allocate internal IRQ controller */
+ /* Allocate hardware IRQ controller */
+ ppc405_irq_init(env);
break;
#if defined (TODO)
@@ -1956,7 +1959,8 @@ static void init_ppc_proc (CPUPPCState *env, ppc_def_t *def)
env->nb_tlb = 64;
env->nb_ways = 1;
env->id_tlbs = 0;
- /* XXX: TODO: allocate internal IRQ controller */
+ /* Allocate hardware IRQ controller */
+ ppc405_irq_init(env);
break;
case CPU_PPC_440EP: /* 440 EP family */