Changeset 1474 for trunk/82802ab.c
- Timestamp:
- 12/18/11 16:01:24 (5 months ago)
- File:
-
- 1 edited
-
trunk/82802ab.c (modified) (13 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/82802ab.c
r1473 r1474 48 48 49 49 /* Reset to get a clean state */ 50 chip_writeb( 0xFF, bios);50 chip_writeb(flash, 0xFF, bios); 51 51 programmer_delay(10); 52 52 53 53 /* Enter ID mode */ 54 chip_writeb( 0x90, bios);55 programmer_delay(10); 56 57 id1 = chip_readb( bios + (0x00 << shifted));58 id2 = chip_readb( bios + (0x01 << shifted));54 chip_writeb(flash, 0x90, bios); 55 programmer_delay(10); 56 57 id1 = chip_readb(flash, bios + (0x00 << shifted)); 58 id2 = chip_readb(flash, bios + (0x01 << shifted)); 59 59 60 60 /* Leave ID mode */ 61 chip_writeb( 0xFF, bios);61 chip_writeb(flash, 0xFF, bios); 62 62 63 63 programmer_delay(10); … … 72 72 * flash contents. 73 73 */ 74 flashcontent1 = chip_readb( bios + (0x00 << shifted));75 flashcontent2 = chip_readb( bios + (0x01 << shifted));74 flashcontent1 = chip_readb(flash, bios + (0x00 << shifted)); 75 flashcontent2 = chip_readb(flash, bios + (0x01 << shifted)); 76 76 77 77 if (id1 == flashcontent1) … … 95 95 chipaddr bios = flash->virtual_memory; 96 96 97 chip_writeb( 0x70, bios);98 if ((chip_readb( bios) & 0x80) == 0) { // it's busy99 while ((chip_readb( bios) & 0x80) == 0) ;100 } 101 102 status = chip_readb( bios);97 chip_writeb(flash, 0x70, bios); 98 if ((chip_readb(flash, bios) & 0x80) == 0) { // it's busy 99 while ((chip_readb(flash, bios) & 0x80) == 0) ; 100 } 101 102 status = chip_readb(flash, bios); 103 103 104 104 /* Reset to get a clean state */ 105 chip_writeb( 0xFF, bios);105 chip_writeb(flash, 0xFF, bios); 106 106 107 107 return status; … … 114 114 115 115 for (i = 0; i < flash->total_size * 1024; i+= flash->page_size) 116 chip_writeb( 0, flash->virtual_registers + i + 2);116 chip_writeb(flash, 0, flash->virtual_registers + i + 2); 117 117 118 118 return 0; … … 126 126 127 127 // clear status register 128 chip_writeb( 0x50, bios + page);128 chip_writeb(flash, 0x50, bios + page); 129 129 130 130 // now start it 131 chip_writeb( 0x20, bios + page);132 chip_writeb( 0xd0, bios + page);131 chip_writeb(flash, 0x20, bios + page); 132 chip_writeb(flash, 0xd0, bios + page); 133 133 programmer_delay(10); 134 134 … … 142 142 143 143 /* chunksize is 1 */ 144 int write_82802ab(struct flashctx *flash, uint8_t *src, unsigned int start, unsigned int len) 144 int write_82802ab(struct flashctx *flash, uint8_t *src, unsigned int start, 145 unsigned int len) 145 146 { 146 147 int i; … … 149 150 for (i = 0; i < len; i++) { 150 151 /* transfer data from source to destination */ 151 chip_writeb( 0x40, dst);152 chip_writeb( *src++, dst++);152 chip_writeb(flash, 0x40, dst); 153 chip_writeb(flash, *src++, dst++); 153 154 wait_82802ab(flash); 154 155 } … … 165 166 166 167 /* Clear status register */ 167 chip_writeb( 0x50, bios);168 chip_writeb(flash, 0x50, bios); 168 169 169 170 /* Read identifier codes */ 170 chip_writeb( 0x90, bios);171 chip_writeb(flash, 0x90, bios); 171 172 172 173 /* Read master lock-bit */ 173 mcfg = chip_readb( bios + 0x3);174 mcfg = chip_readb(flash, bios + 0x3); 174 175 msg_cdbg("master lock is "); 175 176 if (mcfg) { … … 182 183 /* Read block lock-bits */ 183 184 for (i = 0; i < flash->total_size * 1024; i+= (64 * 1024)) { 184 bcfg = chip_readb( bios + i + 2); // read block lock config185 bcfg = chip_readb(flash, bios + i + 2); // read block lock config 185 186 msg_cdbg("block lock at %06x is %slocked!\n", i, bcfg ? "" : "un"); 186 187 if (bcfg) { … … 190 191 191 192 /* Reset chip */ 192 chip_writeb( 0xFF, bios);193 chip_writeb(flash, 0xFF, bios); 193 194 194 195 /* Unlock: clear block lock-bits, if needed */ 195 196 if (can_unlock && need_unlock) { 196 197 msg_cdbg("Unlock: "); 197 chip_writeb( 0x60, bios);198 chip_writeb( 0xD0, bios);199 chip_writeb( 0xFF, bios);198 chip_writeb(flash, 0x60, bios); 199 chip_writeb(flash, 0xD0, bios); 200 chip_writeb(flash, 0xFF, bios); 200 201 msg_cdbg("Done!\n"); 201 202 } … … 221 222 222 223 /* Read identifier codes */ 223 chip_writeb( 0x90, bios);224 chip_writeb(flash, 0x90, bios); 224 225 225 226 /* Read master lock-bit */ 226 mcfg = chip_readb( bios + 0x3);227 mcfg = chip_readb(flash, bios + 0x3); 227 228 msg_cdbg("master lock is "); 228 229 if (mcfg) { … … 236 237 for (i = 0; i < flash->total_size * 1024; 237 238 i += (i >= (64 * 1024) ? 64 * 1024 : 8 * 1024)) { 238 bcfg = chip_readb( bios + i + 2); /* read block lock config */239 bcfg = chip_readb(flash, bios + i + 2); /* read block lock config */ 239 240 msg_cdbg("block lock at %06x is %slocked!\n", i, 240 241 bcfg ? "" : "un"); … … 244 245 245 246 /* Reset chip */ 246 chip_writeb( 0xFF, bios);247 chip_writeb(flash, 0xFF, bios); 247 248 248 249 /* Unlock: clear block lock-bits, if needed */ 249 250 if (can_unlock && need_unlock) { 250 251 msg_cdbg("Unlock: "); 251 chip_writeb( 0x60, bios);252 chip_writeb( 0xD0, bios);253 chip_writeb( 0xFF, bios);252 chip_writeb(flash, 0x60, bios); 253 chip_writeb(flash, 0xD0, bios); 254 chip_writeb(flash, 0xFF, bios); 254 255 wait_82802ab(flash); 255 256 msg_cdbg("Done!\n");
Note: See TracChangeset
for help on using the changeset viewer.
