diff options
author | Anthony Liguori <aliguori@us.ibm.com> | 2013-06-03 13:24:25 -0500 |
---|---|---|
committer | Anthony Liguori <aliguori@us.ibm.com> | 2013-06-03 13:24:25 -0500 |
commit | 0ded1fe5f36765b97b15a7afebb6d04ddcc4771c (patch) | |
tree | 5bed5d3f9ac15091b101cbc8223d548490eabbcb /hw/arm/exynos4210.c | |
parent | 8b779b368b3b45d5ed3160173499eeafee4d567c (diff) | |
parent | 95669e69848eda87861e1ec3016562101542f543 (diff) | |
download | qemu-0ded1fe5f36765b97b15a7afebb6d04ddcc4771c.tar.gz |
Merge remote-tracking branch 'pmaydell/arm-devs.next' into staging
# By Peter Crosthwaite (20) and others
# Via Peter Maydell
* pmaydell/arm-devs.next: (24 commits)
i.MX: Improve EPIT timer code.
exynos4210.c: register rom_mem for memory migration
hw/arm/exynos4210.c: convert chipid_and_omr to an mmio region
i.MX: split GPT and EPIT timer implementation
sd/sd.c: Fix "inquiry" ACMD41
sd/sdhci:ADMA: fix interrupt
sd/sdhci.c: Fix bdata_read DPRINT message
sd/sdhci: Fix Buffer Write Ready interrupt
sd/sdhci.c: Only reset data_count on new commands
xilinx_spips: lqspi: Fix byte/misaligned access
xilinx_spips: lqspi: Push more data to tx-fifo
xilinx_spips: Multiple debug verbosity levels
xilinx_spips: Debug msgs for Snoop state
xilinx_spips: Fix striping behaviour
xilinx_spips: Fix CTRL register RW bits
xilinx_spips: lqspi: Dont touch config register
xilinx_spips: Implement automatic CS
xilinx_spips: Add automatic start support
xilinx_spips: Trash LQ page cache on mode change
xilinx_spips: Fix QSPI FIFO size
...
Message-id: 1370277021-26129-1-git-send-email-peter.maydell@linaro.org
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Diffstat (limited to 'hw/arm/exynos4210.c')
-rw-r--r-- | hw/arm/exynos4210.c | 28 |
1 files changed, 25 insertions, 3 deletions
diff --git a/hw/arm/exynos4210.c b/hw/arm/exynos4210.c index c8101d3e84..8186f1486b 100644 --- a/hw/arm/exynos4210.c +++ b/hw/arm/exynos4210.c @@ -79,6 +79,28 @@ static uint8_t chipid_and_omr[] = { 0x11, 0x02, 0x21, 0x43, 0x09, 0x00, 0x00, 0x00 }; +static uint64_t exynos4210_chipid_and_omr_read(void *opaque, hwaddr offset, + unsigned size) +{ + assert(offset < sizeof(chipid_and_omr)); + return chipid_and_omr[offset]; +} + +static void exynos4210_chipid_and_omr_write(void *opaque, hwaddr offset, + uint64_t value, unsigned size) +{ + return; +} + +static const MemoryRegionOps exynos4210_chipid_and_omr_ops = { + .read = exynos4210_chipid_and_omr_read, + .write = exynos4210_chipid_and_omr_write, + .endianness = DEVICE_NATIVE_ENDIAN, + .impl = { + .max_access_size = 1, + } +}; + void exynos4210_write_secondary(ARMCPU *cpu, const struct arm_boot_info *info) { @@ -219,15 +241,15 @@ Exynos4210State *exynos4210_init(MemoryRegion *system_mem, /*** Memory ***/ /* Chip-ID and OMR */ - memory_region_init_ram_ptr(&s->chipid_mem, "exynos4210.chipid", - sizeof(chipid_and_omr), chipid_and_omr); - memory_region_set_readonly(&s->chipid_mem, true); + memory_region_init_io(&s->chipid_mem, &exynos4210_chipid_and_omr_ops, + NULL, "exynos4210.chipid", sizeof(chipid_and_omr)); memory_region_add_subregion(system_mem, EXYNOS4210_CHIPID_ADDR, &s->chipid_mem); /* Internal ROM */ memory_region_init_ram(&s->irom_mem, "exynos4210.irom", EXYNOS4210_IROM_SIZE); + vmstate_register_ram_global(&s->irom_mem); memory_region_set_readonly(&s->irom_mem, true); memory_region_add_subregion(system_mem, EXYNOS4210_IROM_BASE_ADDR, &s->irom_mem); |