Revision a8170e5e hw/ppce500_spin.c
b/hw/ppce500_spin.c | ||
---|---|---|
68 | 68 |
} |
69 | 69 |
|
70 | 70 |
/* Create -kernel TLB entries for BookE, linearly spanning 256MB. */ |
71 |
static inline target_phys_addr_t booke206_page_size_to_tlb(uint64_t size)
|
|
71 |
static inline hwaddr booke206_page_size_to_tlb(uint64_t size)
|
|
72 | 72 |
{ |
73 | 73 |
return (ffs(size >> 10) - 1) >> 1; |
74 | 74 |
} |
75 | 75 |
|
76 | 76 |
static void mmubooke_create_initial_mapping(CPUPPCState *env, |
77 | 77 |
target_ulong va, |
78 |
target_phys_addr_t pa,
|
|
79 |
target_phys_addr_t len)
|
|
78 |
hwaddr pa,
|
|
79 |
hwaddr len)
|
|
80 | 80 |
{ |
81 | 81 |
ppcmas_tlb_t *tlb = booke206_get_tlbm(env, 1, 0, 1); |
82 |
target_phys_addr_t size;
|
|
82 |
hwaddr size;
|
|
83 | 83 |
|
84 | 84 |
size = (booke206_page_size_to_tlb(len) << MAS1_TSIZE_SHIFT); |
85 | 85 |
tlb->mas1 = MAS1_VALID | size; |
... | ... | |
94 | 94 |
SpinKick *kick = data; |
95 | 95 |
CPUPPCState *env = kick->env; |
96 | 96 |
SpinInfo *curspin = kick->spin; |
97 |
target_phys_addr_t map_size = 64 * 1024 * 1024;
|
|
98 |
target_phys_addr_t map_start;
|
|
97 |
hwaddr map_size = 64 * 1024 * 1024;
|
|
98 |
hwaddr map_start;
|
|
99 | 99 |
|
100 | 100 |
cpu_synchronize_state(env); |
101 | 101 |
stl_p(&curspin->pir, env->spr[SPR_PIR]); |
... | ... | |
117 | 117 |
qemu_cpu_kick(env); |
118 | 118 |
} |
119 | 119 |
|
120 |
static void spin_write(void *opaque, target_phys_addr_t addr, uint64_t value,
|
|
120 |
static void spin_write(void *opaque, hwaddr addr, uint64_t value,
|
|
121 | 121 |
unsigned len) |
122 | 122 |
{ |
123 | 123 |
SpinState *s = opaque; |
... | ... | |
166 | 166 |
} |
167 | 167 |
} |
168 | 168 |
|
169 |
static uint64_t spin_read(void *opaque, target_phys_addr_t addr, unsigned len)
|
|
169 |
static uint64_t spin_read(void *opaque, hwaddr addr, unsigned len)
|
|
170 | 170 |
{ |
171 | 171 |
SpinState *s = opaque; |
172 | 172 |
uint8_t *spin_p = &((uint8_t*)s->spin)[addr]; |
Also available in: Unified diff