integratorcp: convert core to memory API
Signed-off-by: Benoit Canet <benoit.canet@gmail.com> Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Avi Kivity <avi@redhat.com>
This commit is contained in:
		
							parent
							
								
									4d5bf5f651
								
							
						
					
					
						commit
						71d9bc50ce
					
				| @ -18,6 +18,7 @@ | |||||||
| 
 | 
 | ||||||
| typedef struct { | typedef struct { | ||||||
|     SysBusDevice busdev; |     SysBusDevice busdev; | ||||||
|  |     MemoryRegion iomem; | ||||||
|     uint32_t memsz; |     uint32_t memsz; | ||||||
|     MemoryRegion flash; |     MemoryRegion flash; | ||||||
|     bool flash_mapped; |     bool flash_mapped; | ||||||
| @ -39,7 +40,8 @@ static uint8_t integrator_spd[128] = { | |||||||
|    0xe, 4, 0x1c, 1, 2, 0x20, 0xc0, 0, 0, 0, 0, 0x30, 0x28, 0x30, 0x28, 0x40 |    0xe, 4, 0x1c, 1, 2, 0x20, 0xc0, 0, 0, 0, 0, 0x30, 0x28, 0x30, 0x28, 0x40 | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| static uint32_t integratorcm_read(void *opaque, target_phys_addr_t offset) | static uint64_t integratorcm_read(void *opaque, target_phys_addr_t offset, | ||||||
|  |                                   unsigned size) | ||||||
| { | { | ||||||
|     integratorcm_state *s = (integratorcm_state *)opaque; |     integratorcm_state *s = (integratorcm_state *)opaque; | ||||||
|     if (offset >= 0x100 && offset < 0x200) { |     if (offset >= 0x100 && offset < 0x200) { | ||||||
| @ -152,7 +154,7 @@ static void integratorcm_update(integratorcm_state *s) | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| static void integratorcm_write(void *opaque, target_phys_addr_t offset, | static void integratorcm_write(void *opaque, target_phys_addr_t offset, | ||||||
|                                uint32_t value) |                                uint64_t value, unsigned size) | ||||||
| { | { | ||||||
|     integratorcm_state *s = (integratorcm_state *)opaque; |     integratorcm_state *s = (integratorcm_state *)opaque; | ||||||
|     switch (offset >> 2) { |     switch (offset >> 2) { | ||||||
| @ -228,21 +230,14 @@ static void integratorcm_write(void *opaque, target_phys_addr_t offset, | |||||||
| 
 | 
 | ||||||
| /* Integrator/CM control registers.  */ | /* Integrator/CM control registers.  */ | ||||||
| 
 | 
 | ||||||
| static CPUReadMemoryFunc * const integratorcm_readfn[] = { | static const MemoryRegionOps integratorcm_ops = { | ||||||
|    integratorcm_read, |     .read = integratorcm_read, | ||||||
|    integratorcm_read, |     .write = integratorcm_write, | ||||||
|    integratorcm_read |     .endianness = DEVICE_NATIVE_ENDIAN, | ||||||
| }; |  | ||||||
| 
 |  | ||||||
| static CPUWriteMemoryFunc * const integratorcm_writefn[] = { |  | ||||||
|    integratorcm_write, |  | ||||||
|    integratorcm_write, |  | ||||||
|    integratorcm_write |  | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| static int integratorcm_init(SysBusDevice *dev) | static int integratorcm_init(SysBusDevice *dev) | ||||||
| { | { | ||||||
|     int iomemtype; |  | ||||||
|     integratorcm_state *s = FROM_SYSBUS(integratorcm_state, dev); |     integratorcm_state *s = FROM_SYSBUS(integratorcm_state, dev); | ||||||
| 
 | 
 | ||||||
|     s->cm_osc = 0x01000048; |     s->cm_osc = 0x01000048; | ||||||
| @ -269,10 +264,10 @@ static int integratorcm_init(SysBusDevice *dev) | |||||||
|     memory_region_init_ram(&s->flash, NULL, "integrator.flash", 0x100000); |     memory_region_init_ram(&s->flash, NULL, "integrator.flash", 0x100000); | ||||||
|     s->flash_mapped = false; |     s->flash_mapped = false; | ||||||
| 
 | 
 | ||||||
|     iomemtype = cpu_register_io_memory(integratorcm_readfn, |     memory_region_init_io(&s->iomem, &integratorcm_ops, s, | ||||||
|                                        integratorcm_writefn, s, |                           "integratorcm", 0x00800000); | ||||||
|                                        DEVICE_NATIVE_ENDIAN); |     sysbus_init_mmio_region(dev, &s->iomem); | ||||||
|     sysbus_init_mmio(dev, 0x00800000, iomemtype); | 
 | ||||||
|     integratorcm_do_remap(s, 1); |     integratorcm_do_remap(s, 1); | ||||||
|     /* ??? Save/restore.  */ |     /* ??? Save/restore.  */ | ||||||
|     return 0; |     return 0; | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Benoît Canet
						Benoît Canet