Commit a5236105dbf7b971715f1ac55f52f716081a0632
1 parent
2b8f2d41
Word-reads from spitz NAND controller, patch by Juergen Lock.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3090 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
1 changed file
with
13 additions
and
1 deletions
hw/spitz.c
| @@ -78,6 +78,18 @@ static uint32_t sl_readb(void *opaque, target_phys_addr_t addr) | @@ -78,6 +78,18 @@ static uint32_t sl_readb(void *opaque, target_phys_addr_t addr) | ||
| 78 | return 0; | 78 | return 0; |
| 79 | } | 79 | } |
| 80 | 80 | ||
| 81 | +static uint32_t sl_readl(void *opaque, target_phys_addr_t addr) | ||
| 82 | +{ | ||
| 83 | + struct sl_nand_s *s = (struct sl_nand_s *) opaque; | ||
| 84 | + addr -= s->target_base; | ||
| 85 | + | ||
| 86 | + if (addr == FLASH_FLASHIO) | ||
| 87 | + return ecc_digest(&s->ecc, nand_getio(s->nand)) | | ||
| 88 | + (ecc_digest(&s->ecc, nand_getio(s->nand)) << 16); | ||
| 89 | + | ||
| 90 | + return sl_readb(opaque, addr); | ||
| 91 | +} | ||
| 92 | + | ||
| 81 | static void sl_writeb(void *opaque, target_phys_addr_t addr, | 93 | static void sl_writeb(void *opaque, target_phys_addr_t addr, |
| 82 | uint32_t value) | 94 | uint32_t value) |
| 83 | { | 95 | { |
| @@ -139,7 +151,7 @@ static void sl_flash_register(struct pxa2xx_state_s *cpu, int size) | @@ -139,7 +151,7 @@ static void sl_flash_register(struct pxa2xx_state_s *cpu, int size) | ||
| 139 | CPUReadMemoryFunc *sl_readfn[] = { | 151 | CPUReadMemoryFunc *sl_readfn[] = { |
| 140 | sl_readb, | 152 | sl_readb, |
| 141 | sl_readb, | 153 | sl_readb, |
| 142 | - sl_readb, | 154 | + sl_readl, |
| 143 | }; | 155 | }; |
| 144 | CPUWriteMemoryFunc *sl_writefn[] = { | 156 | CPUWriteMemoryFunc *sl_writefn[] = { |
| 145 | sl_writeb, | 157 | sl_writeb, |