Flashing, lock failed

I’m not familiar with AVR, what’s the lock used for?
I’m getting errors writing the lock byte when flashing.
Is this bad? I haven’t finished soldering yet, so not sure if it works.

$ avrdude -B 100 -p m644p -c usbasp -P usb -e -u -U efuse:w:0xfd:m -U hfuse:w:0xd2:m -U lfuse:w:0xff:m -U lock:w:0x2f:m

avrdude: set SCK frequency to 8000 Hz
avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.02s

avrdude: Device signature = 0x1e960a (probably m644p)
avrdude: erasing chip
avrdude: set SCK frequency to 8000 Hz
avrdude: reading input file “0xfd”
avrdude: writing efuse (1 bytes):

Writing | ################################################## | 100% 0.00s

avrdude: 1 bytes of efuse written
avrdude: verifying efuse memory against 0xfd:
avrdude: load data efuse data from input file 0xfd:
avrdude: input file 0xfd contains 1 bytes
avrdude: reading on-chip efuse data:

Reading | ################################################## | 100% 0.01s

avrdude: verifying …
avrdude: 1 bytes of efuse verified
avrdude: reading input file “0xd2”
avrdude: writing hfuse (1 bytes):

Writing | ################################################## | 100% 0.00s

avrdude: 1 bytes of hfuse written
avrdude: verifying hfuse memory against 0xd2:
avrdude: load data hfuse data from input file 0xd2:
avrdude: input file 0xd2 contains 1 bytes
avrdude: reading on-chip hfuse data:

Reading | ################################################## | 100% 0.00s

avrdude: verifying …
avrdude: 1 bytes of hfuse verified
avrdude: reading input file “0xff”
avrdude: writing lfuse (1 bytes):

Writing | ################################################## | 100% 0.00s

avrdude: 1 bytes of lfuse written
avrdude: verifying lfuse memory against 0xff:
avrdude: load data lfuse data from input file 0xff:
avrdude: input file 0xff contains 1 bytes
avrdude: reading on-chip lfuse data:

Reading | ################################################## | 100% 0.00s

avrdude: verifying …
avrdude: 1 bytes of lfuse verified
avrdude: reading input file “0x2f”
avrdude: writing lock (1 bytes):

Writing | | 0% 0.00s ***failed;
Writing | ################################################## | 100% 0.07s

avrdude: 1 bytes of lock written
avrdude: verifying lock memory against 0x2f:
avrdude: load data lock data from input file 0x2f:
avrdude: input file 0x2f contains 1 bytes
avrdude: reading on-chip lock data:

Reading | ################################################## | 100% 0.00s

avrdude: verifying …
avrdude: verification error, first mismatch at byte 0x0000
0xef != 0x2f
avrdude: verification error; content mismatch

avrdude done. Thank you.

$ avrdude -B 1 -p m644p -c usbasp -P usb -U flash:w:ambika_controller.hex:i -U flash:w:ambika_controller_boot.hex:i -U lock:w:0x2f:m

avrdude: set SCK frequency to 750000 Hz
avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x1e960a (probably m644p)
avrdude: NOTE: “flash” memory has been specified, an erase cycle will be performed
To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: set SCK frequency to 750000 Hz
avrdude: reading input file “ambika_controller.hex”
avrdude: writing flash (61280 bytes):

Writing | ################################################## | 100% 17.68s

avrdude: 61280 bytes of flash written
avrdude: verifying flash memory against ambika_controller.hex:
avrdude: load data flash data from input file ambika_controller.hex:
avrdude: input file ambika_controller.hex contains 61280 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 12.03s

avrdude: verifying …
avrdude: 61280 bytes of flash verified
avrdude: reading input file “ambika_controller_boot.hex”
avrdude: writing flash (65074 bytes):

Writing | ################################################## | 100% 0.00s

avrdude: 65074 bytes of flash written
avrdude: verifying flash memory against ambika_controller_boot.hex:
avrdude: load data flash data from input file ambika_controller_boot.hex:
avrdude: input file ambika_controller_boot.hex contains 65074 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 0.00s

avrdude: verifying …
avrdude: 65074 bytes of flash verified
avrdude: reading input file “0x2f”
avrdude: writing lock (1 bytes):

Writing | | 0% 0.00s ***failed;
Writing | ################################################## | 100% 0.06s

avrdude: 1 bytes of lock written
avrdude: verifying lock memory against 0x2f:
avrdude: load data lock data from input file 0x2f:
avrdude: input file 0x2f contains 1 bytes
avrdude: reading on-chip lock data:

Reading | ################################################## | 100% 0.00s

avrdude: verifying …
avrdude: verification error, first mismatch at byte 0x0000
0xef != 0x2f
avrdude: verification error; content mismatch

avrdude: safemode: Fuses OK (E:FD, H:D2, L:FF)

avrdude done. Thank you.

Just tested the board, it seems to be working fine, so the error is not relevant.