Commit 9ff6755bf9f31a2aebcc1d780e4a2a3fa661cc01

Authored by balrog
1 parent 40ce0a9a

Move ECC calculation to a more appropriate place.


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3232 c046a42c-6fe2-441c-8c8c-71466251a162
Makefile.target
@@ -472,7 +472,7 @@ VL_OBJS+= arm-semi.o @@ -472,7 +472,7 @@ VL_OBJS+= arm-semi.o
472 VL_OBJS+= pxa2xx.o pxa2xx_pic.o pxa2xx_gpio.o pxa2xx_timer.o pxa2xx_dma.o 472 VL_OBJS+= pxa2xx.o pxa2xx_pic.o pxa2xx_gpio.o pxa2xx_timer.o pxa2xx_dma.o
473 VL_OBJS+= pxa2xx_lcd.o pxa2xx_mmci.o pxa2xx_pcmcia.o max111x.o max7310.o 473 VL_OBJS+= pxa2xx_lcd.o pxa2xx_mmci.o pxa2xx_pcmcia.o max111x.o max7310.o
474 VL_OBJS+= spitz.o ads7846.o ide.o serial.o nand.o $(AUDIODRV) wm8750.o 474 VL_OBJS+= spitz.o ads7846.o ide.o serial.o nand.o $(AUDIODRV) wm8750.o
475 -VL_OBJS+= omap.o omap_lcdc.o omap1_clk.o omap_mmc.o palm.o 475 +VL_OBJS+= omap.o omap_lcdc.o omap1_clk.o omap_mmc.o palm.o ecc.o
476 CPPFLAGS += -DHAS_AUDIO 476 CPPFLAGS += -DHAS_AUDIO
477 endif 477 endif
478 ifeq ($(TARGET_BASE_ARCH), sh4) 478 ifeq ($(TARGET_BASE_ARCH), sh4)
ecc.h renamed to hw/ecc.c
@@ -8,11 +8,7 @@ @@ -8,11 +8,7 @@
8 * This code is licensed under the GNU GPL v2. 8 * This code is licensed under the GNU GPL v2.
9 */ 9 */
10 10
11 -struct ecc_state_s {  
12 - uint8_t cp; /* Column parity */  
13 - uint16_t lp[2]; /* Line parity */  
14 - uint16_t count;  
15 -}; 11 +#include "vl.h"
16 12
17 /* 13 /*
18 * Pre-calculated 256-way 1 byte column parity. Table borrowed from Linux. 14 * Pre-calculated 256-way 1 byte column parity. Table borrowed from Linux.
@@ -53,7 +49,7 @@ static const uint8_t nand_ecc_precalc_table[] = { @@ -53,7 +49,7 @@ static const uint8_t nand_ecc_precalc_table[] = {
53 }; 49 };
54 50
55 /* Update ECC parity count. */ 51 /* Update ECC parity count. */
56 -static inline uint8_t ecc_digest(struct ecc_state_s *s, uint8_t sample) 52 +uint8_t ecc_digest(struct ecc_state_s *s, uint8_t sample)
57 { 53 {
58 uint8_t idx = nand_ecc_precalc_table[sample]; 54 uint8_t idx = nand_ecc_precalc_table[sample];
59 55
@@ -68,7 +64,7 @@ static inline uint8_t ecc_digest(struct ecc_state_s *s, uint8_t sample) @@ -68,7 +64,7 @@ static inline uint8_t ecc_digest(struct ecc_state_s *s, uint8_t sample)
68 } 64 }
69 65
70 /* Reinitialise the counters. */ 66 /* Reinitialise the counters. */
71 -static inline void ecc_reset(struct ecc_state_s *s) 67 +void ecc_reset(struct ecc_state_s *s)
72 { 68 {
73 s->lp[0] = 0x0000; 69 s->lp[0] = 0x0000;
74 s->lp[1] = 0x0000; 70 s->lp[1] = 0x0000;
@@ -77,7 +73,7 @@ static inline void ecc_reset(struct ecc_state_s *s) @@ -77,7 +73,7 @@ static inline void ecc_reset(struct ecc_state_s *s)
77 } 73 }
78 74
79 /* Save/restore */ 75 /* Save/restore */
80 -static inline void ecc_put(QEMUFile *f, struct ecc_state_s *s) 76 +void ecc_put(QEMUFile *f, struct ecc_state_s *s)
81 { 77 {
82 qemu_put_8s(f, &s->cp); 78 qemu_put_8s(f, &s->cp);
83 qemu_put_be16s(f, &s->lp[0]); 79 qemu_put_be16s(f, &s->lp[0]);
@@ -85,7 +81,7 @@ static inline void ecc_put(QEMUFile *f, struct ecc_state_s *s) @@ -85,7 +81,7 @@ static inline void ecc_put(QEMUFile *f, struct ecc_state_s *s)
85 qemu_put_be16s(f, &s->count); 81 qemu_put_be16s(f, &s->count);
86 } 82 }
87 83
88 -static inline void ecc_get(QEMUFile *f, struct ecc_state_s *s) 84 +void ecc_get(QEMUFile *f, struct ecc_state_s *s)
89 { 85 {
90 qemu_get_8s(f, &s->cp); 86 qemu_get_8s(f, &s->cp);
91 qemu_get_be16s(f, &s->lp[0]); 87 qemu_get_be16s(f, &s->lp[0]);
@@ -1539,7 +1539,17 @@ uint8_t nand_getio(struct nand_flash_s *s); @@ -1539,7 +1539,17 @@ uint8_t nand_getio(struct nand_flash_s *s);
1539 #define NAND_MFR_HYNIX 0xad 1539 #define NAND_MFR_HYNIX 0xad
1540 #define NAND_MFR_MICRON 0x2c 1540 #define NAND_MFR_MICRON 0x2c
1541 1541
1542 -#include "ecc.h" 1542 +/* ecc.c */
  1543 +struct ecc_state_s {
  1544 + uint8_t cp; /* Column parity */
  1545 + uint16_t lp[2]; /* Line parity */
  1546 + uint16_t count;
  1547 +};
  1548 +
  1549 +uint8_t ecc_digest(struct ecc_state_s *s, uint8_t sample);
  1550 +void ecc_reset(struct ecc_state_s *s);
  1551 +void ecc_put(QEMUFile *f, struct ecc_state_s *s);
  1552 +void ecc_get(QEMUFile *f, struct ecc_state_s *s);
1543 1553
1544 /* GPIO */ 1554 /* GPIO */
1545 typedef void (*gpio_handler_t)(int line, int level, void *opaque); 1555 typedef void (*gpio_handler_t)(int line, int level, void *opaque);