Ok, new round of boards, same old problem: I cannot program MAC2!
So I put several debug statements in this time, the process of programming MAC0 and MAC1 appears exactly the same as MAC2, but MAC2 either does not program or gets programmed with 0x00000000!
I added a dump of the lock register, the lock bits for the MAC region are NOT set:
root@NEBULA001F4B007043:~# ./macaddr 00:1f:4b:00:70:4e
MAC0 = 4b00704e
drivers/char/fsl_otp.c-fsl_otp_store() index = 34, buf = "4b00704e", value = 0x4B00704E
drivers/char/fsl_otp.c-imx6_otp_write_bits() reading data = 0x20820002 from lock register 0xA11C0400
drivers/char/fsl_otp.c-imx6_otp_write_bits() reading data = 0x00000000 from ctrl register 0xA11C0004
drivers/char/fsl_otp.c-imx6_otp_write_bits() writing data = 0x3E770022 to ctrl register 0xA11C0004
drivers/char/fsl_otp.c-imx6_otp_write_bits() writing data = 0x4B00704E to data register 0xA11C0020
MAC1 = 704f001f
drivers/char/fsl_otp.c-fsl_otp_store() index = 35, buf = "704f001f", value = 0x704F001F
drivers/char/fsl_otp.c-imx6_otp_write_bits() reading data = 0x20820002 from lock register 0xA11C0400
drivers/char/fsl_otp.c-imx6_otp_write_bits() reading data = 0x00000022 from ctrl register 0xA11C0004
drivers/char/fsl_otp.c-imx6_otp_write_bits() writing data = 0x3E770023 to ctrl register 0xA11C0004
drivers/char/fsl_otp.c-imx6_otp_write_bits() writing data = 0x704F001F to data register 0xA11C0020
MAC2 = 001f4b00
drivers/char/fsl_otp.c-fsl_otp_store() index = 36, buf = "001f4b00", value = 0x001F4B00
drivers/char/fsl_otp.c-imx6_otp_write_bits() reading data = 0x20820002 from lock register 0xA11C0400
drivers/char/fsl_otp.c-imx6_otp_write_bits() reading data = 0x00000023 from ctrl register 0xA11C0004
drivers/char/fsl_otp.c-imx6_otp_write_bits() writing data = 0x3E770024 to ctrl register 0xA11C0004
drivers/char/fsl_otp.c-imx6_otp_write_bits() writing data = 0x001F4B00 to data register 0xA11C0020
root@NEBULA001F4B007043:~# cat /sys/fsl_otp/HW_OCOTP_MAC?
drivers/char/fsl_otp.c-fsl_otp_show() reading data = 0x4B00704E from register 0xA11C0620
0x4b00704e
drivers/char/fsl_otp.c-fsl_otp_show() reading data = 0x704F001F from register 0xA11C0630
0x704f001
fdrivers/char/fsl_otp.c-fsl_otp_show() reading data = 0x00000000 from register 0xA11C0640
0x0
root@NEBULA001F4B007043:~#