]>
Commit | Line | Data |
---|---|---|
9fe267c2 PZ |
1 | diff -Naurp libc/misc/eerd_block.S libc/misc/eerd_block.S |
2 | --- libc/misc/eerd_block.S 2011-12-29 14:21:55.000000000 +0530 | |
3 | +++ libc/misc/eerd_block.S 2012-10-16 15:55:45.000000000 +0530 | |
4 | @@ -62,6 +62,7 @@ ENTRY eeprom_read_block | |
5 | ||
6 | #if __AVR_XMEGA__ /* -------------------------------------------- */ | |
7 | ||
8 | +#if defined (NVM_EEMAPEN_bm) | |
9 | ; Load base address of NVM. | |
10 | ldi ZL, lo8(NVM_BASE) | |
11 | ldi ZH, hi8(NVM_BASE) | |
12 | @@ -75,6 +76,7 @@ ENTRY eeprom_read_block | |
13 | ldd XL, Z + NVM_CTRLB - NVM_BASE | |
14 | ori XL, NVM_EEMAPEN_bm | |
15 | std Z + NVM_CTRLB - NVM_BASE, XL | |
16 | +#endif | |
17 | ||
18 | ; Correct EEPROM address to read from data space. | |
19 | subi eepr_lo, lo8(-MAPPED_EEPROM_START) | |
20 | diff -Naurp libc/misc/eerd_byte.S libc/misc/eerd_byte.S | |
21 | --- libc/misc/eerd_byte.S 2011-12-29 14:21:55.000000000 +0530 | |
22 | +++ libc/misc/eerd_byte.S 2012-10-16 15:55:45.000000000 +0530 | |
23 | @@ -55,6 +55,7 @@ ENTRY eeprom_read_byte | |
24 | ||
25 | ENTRY eeprom_mapen | |
26 | ||
27 | +#if defined (NVM_EEMAPEN_bm) | |
28 | ; Load base address of NVM. | |
29 | ldi ZL, lo8(NVM_BASE) | |
30 | ldi ZH, hi8(NVM_BASE) | |
31 | @@ -68,6 +69,7 @@ ENTRY eeprom_mapen | |
32 | ldd r19, Z + NVM_CTRLB - NVM_BASE | |
33 | ori r19, NVM_EEMAPEN_bm | |
34 | std Z + NVM_CTRLB - NVM_BASE, r19 | |
35 | +#endif | |
36 | ||
37 | ; Load Z with correct EEPROM address to read from data space. | |
38 | movw ZL, addr_lo | |
39 | diff -Naurp libc/misc/eewr_byte.S libc/misc/eewr_byte.S | |
40 | --- libc/misc/eewr_byte.S 2011-12-29 14:21:55.000000000 +0530 | |
41 | +++ libc/misc/eewr_byte.S 2012-10-16 16:27:09.000000000 +0530 | |
42 | @@ -70,6 +70,7 @@ ENTRY eeprom_write_r18 | |
43 | sbrc r19, NVM_NVMBUSY_bp | |
44 | rjmp 1b | |
45 | ||
46 | +#if defined (NVM_EEMAPEN_bm) | |
47 | ; Disable EEPROM mapping into data space. | |
48 | ldd r19, Z + NVM_CTRLB - NVM_BASE | |
49 | andi r19, ~NVM_EEMAPEN_bm | |
50 | @@ -103,10 +104,18 @@ ENTRY eeprom_write_r18 | |
51 | ; Issue EEPROM Buffer Load command. | |
52 | 3: ldi r19, NVM_CMD_LOAD_EEPROM_BUFFER_gc | |
53 | std Z + NVM_CMD - NVM_BASE, r19 | |
54 | +#endif | |
55 | std Z + NVM_ADDR0 - NVM_BASE, addr_lo | |
56 | std Z + NVM_ADDR1 - NVM_BASE, addr_hi | |
57 | std Z + NVM_ADDR2 - NVM_BASE, __zero_reg__ | |
58 | +#if defined (NVM_EEMAPEN_bm) | |
59 | std Z + NVM_DATA0 - NVM_BASE, r18 | |
60 | +#else | |
61 | + movw XL, addr_lo | |
62 | + subi XL, lo8(-MAPPED_EEPROM_START) | |
63 | + sbci XH, hi8(-MAPPED_EEPROM_START) | |
64 | + st X, r18 | |
65 | +#endif | |
66 | ||
67 | ; Issue EEPROM Erase & Write command. | |
68 | ldi r18, NVM_CMD_ERASE_WRITE_EEPROM_PAGE_gc |