Hello!
I am using a FRDM-MCXN947 development board, and the most recent (as of writing this) MCX Nx4x Reference Manual here: https://www.nxp.com/doc/MCXNx4xRM.
I'm trying to use the Bootloader commands, over I2C ISP, to flash an image onto the board. I'm running into some issues - I can't read a GetStatusReponse (section 14.4.7), sometimes GenericResponse (section 14.4.7), and sometimes framing Ack (section section 14.4.4), after my write.
I'm using the default bootloader I2C pins (SDA = J7[3], SCL = J7[7], section 12.2.1) and slave address (0x10, section 14.8.1). The source clock I provide for the pins is 400kHz through FlexCOMM, although I'm not 100% sure that's what the communication speed actually ends up being, or if Bootloader uses my pinmux settings? I thought the Bootloader was supposed to adjust automatically, up to 400kHz (section 14.8.1) anyways. My digital logic analyzer suggests the actual clock rate is somewhere around 550kHz. Here's some screenshots if it helps.


These are the steps I follow:
0. Refresh state.
Flash a blinky or something onto the board. I use LinkServer, but anything probably works. The point is to put the bootloader into a fresh state when you enter it.
1. Enter ISP bootloader mode.
Press the ISP button, RESET button, release RESET button, release ISP button.
2. Send a Ping (Section 14.4.2) to confirm connection.
I write a ping, 5A A6. I read a ping response, 5a a7 00 03 01 50 00 00 fb 40. Great!

3. Send GetProperty (section 14.5.2) to get the flash start address.
I write GetProperty, 5a a4 08 00 94 f7 07 00 00 01 00 00 03 00. I read a framing Ack , 5a a1. When I try to read more, SCL goes low, SDA goes high. I timeout after waiting 5 seconds, then SDA goes low again after some fuss, probably from the I2C master I'm using.


I've noticed for the command FlashEraseAll, a GenericResponse is returned fine after a half a second or so delay waiting for the framing Ack. Same for Reset, but without as much delay.
For WriteMemory, I get an ACK and no GenericResponse. For Data packets, not even an ACK could be read, unless I called WriteMemory immediately before it.
But, I'm hoping if I can just figure out why GetProperty Acks but sends no GetPropertyResponse, I can figure out the others too!
Thank you for your time!