Hello:
I am working on a USB bootloader project. I am running into the issue where the USB will not boot on first start up but boots following this. I read some of the previous comments on the issue. On thing I am seeing: The code below does not return True for our implementation. It would fix the issue if did return True. This is the Errata 187 detection code.
static inline bool nrf_drv_usbd_errata_type_52840_fp1(void) {
return ( nrf_drv_usbd_errata_type_52840() &&
( ((*(uint32_t *)0xF0000FE8) & 0xF0) == 0x20 ) && /// use to be 0x10
( ((*(uint32_t *)0xF0000FEC) & 0xF0) == 0x00 ) );
}
I am seeing the value 0x30 returned from register 0xF000_0FE8 (instead of 0x10 or 0x20). Is it ok to patch the nrf_drv_usbd_errata_type_52840_fp1() function with 0x30 instead of 0x20?
Thanks,
joer55