Commit a07dec2212d6ba9751dd1dac2b3f4b560325fee0

Authored by balrog
1 parent b645bb48

Correct NAND erase block size. Misc fixes in Spitz code.


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2806 c046a42c-6fe2-441c-8c8c-71466251a162
hw/nand.c
@@ -547,7 +547,7 @@ static void glue(nand_blk_erase_, PAGE_SIZE)(struct nand_flash_s *s) @@ -547,7 +547,7 @@ static void glue(nand_blk_erase_, PAGE_SIZE)(struct nand_flash_s *s)
547 page = i >> 9; 547 page = i >> 9;
548 if (bdrv_read(s->bdrv, page, iobuf, 1) == -1) 548 if (bdrv_read(s->bdrv, page, iobuf, 1) == -1)
549 printf("%s: read error in sector %i\n", __FUNCTION__, page); 549 printf("%s: read error in sector %i\n", __FUNCTION__, page);
550 - memset(iobuf, 0xff, addr & 0x1ff); 550 + memset(iobuf, 0xff, ((addr - 1) & 0x1ff) + 1);
551 if (bdrv_write(s->bdrv, page, iobuf, 1) == -1) 551 if (bdrv_write(s->bdrv, page, iobuf, 1) == -1)
552 printf("%s: write error in sector %i\n", __FUNCTION__, page); 552 printf("%s: write error in sector %i\n", __FUNCTION__, page);
553 } 553 }
hw/pxa.h
@@ -59,9 +59,9 @@ @@ -59,9 +59,9 @@
59 59
60 # define PXA2XX_SDRAM_BASE 0xa0000000 60 # define PXA2XX_SDRAM_BASE 0xa0000000
61 # define PXA2XX_INTERNAL_BASE 0x5c000000 61 # define PXA2XX_INTERNAL_BASE 0x5c000000
  62 +# define PXA2XX_INTERNAL_SIZE 0x40000
62 63
63 /* pxa2xx_pic.c */ 64 /* pxa2xx_pic.c */
64 -struct pxa2xx_pic_state_s;  
65 qemu_irq *pxa2xx_pic_init(target_phys_addr_t base, CPUState *env); 65 qemu_irq *pxa2xx_pic_init(target_phys_addr_t base, CPUState *env);
66 66
67 /* pxa2xx_timer.c */ 67 /* pxa2xx_timer.c */
hw/pxa2xx.c
@@ -1634,10 +1634,10 @@ struct pxa2xx_state_s *pxa255_init(unsigned int sdram_size, @@ -1634,10 +1634,10 @@ struct pxa2xx_state_s *pxa255_init(unsigned int sdram_size,
1634 cpu_arm_set_model(s->env, "pxa255"); 1634 cpu_arm_set_model(s->env, "pxa255");
1635 1635
1636 /* SDRAM & Internal Memory Storage */ 1636 /* SDRAM & Internal Memory Storage */
1637 - cpu_register_physical_memory(PXA2XX_SDRAM_BASE,  
1638 - sdram_size, qemu_ram_alloc(sdram_size) | IO_MEM_RAM);  
1639 - cpu_register_physical_memory(PXA2XX_INTERNAL_BASE,  
1640 - 0x40000, qemu_ram_alloc(0x40000) | IO_MEM_RAM); 1637 + cpu_register_physical_memory(PXA2XX_SDRAM_BASE, sdram_size,
  1638 + qemu_ram_alloc(sdram_size) | IO_MEM_RAM);
  1639 + cpu_register_physical_memory(PXA2XX_INTERNAL_BASE, PXA2XX_INTERNAL_SIZE,
  1640 + qemu_ram_alloc(PXA2XX_INTERNAL_SIZE) | IO_MEM_RAM);
1641 1641
1642 s->pic = pxa2xx_pic_init(0x40d00000, s->env); 1642 s->pic = pxa2xx_pic_init(0x40d00000, s->env);
1643 1643
hw/pxa2xx_lcd.c
@@ -737,8 +737,7 @@ static void pxa2xx_lcdc_dma0_redraw_horiz(struct pxa2xx_lcdc_s *s, @@ -737,8 +737,7 @@ static void pxa2xx_lcdc_dma0_redraw_horiz(struct pxa2xx_lcdc_s *s,
737 dest, src, s->xres, s->dest_width); 737 dest, src, s->xres, s->dest_width);
738 if (addr < start) 738 if (addr < start)
739 start = addr; 739 start = addr;
740 - if (new_addr > end)  
741 - end = new_addr; 740 + end = new_addr;
742 if (y < *miny) 741 if (y < *miny)
743 *miny = y; 742 *miny = y;
744 if (y >= *maxy) 743 if (y >= *maxy)
hw/spitz.c
@@ -1003,9 +1003,9 @@ static void spitz_common_init(int ram_size, int vga_ram_size, @@ -1003,9 +1003,9 @@ static void spitz_common_init(int ram_size, int vga_ram_size,
1003 cpu_model = (model == terrier) ? "pxa270-c5" : "pxa270-c0"; 1003 cpu_model = (model == terrier) ? "pxa270-c5" : "pxa270-c0";
1004 1004
1005 /* Setup CPU & memory */ 1005 /* Setup CPU & memory */
1006 - if (ram_size < spitz_ram + spitz_rom) { 1006 + if (ram_size < spitz_ram + spitz_rom + PXA2XX_INTERNAL_SIZE) {
1007 fprintf(stderr, "This platform requires %i bytes of memory\n", 1007 fprintf(stderr, "This platform requires %i bytes of memory\n",
1008 - spitz_ram + spitz_rom); 1008 + spitz_ram + spitz_rom + PXA2XX_INTERNAL_SIZE);
1009 exit(1); 1009 exit(1);
1010 } 1010 }
1011 cpu = pxa270_init(spitz_ram, ds, cpu_model); 1011 cpu = pxa270_init(spitz_ram, ds, cpu_model);