• Neeraj Sanjay Kale's avatar
    Bluetooth: btnxpuart: Add handling for boot-signature timeout errors · 27489364
    Neeraj Sanjay Kale authored
    This handles the timeout error codes sent by the chip as part of the
    bootloader signatures during firmware download process.
    
    When the bootloader does not receive a response packet from the host
    within a specific time, it adds an error code to the bootloader
    signature while requesting for the FW chunk from the same offset.
    
    The host is expected to clear this error code with a NAK, and reply to
    only those bootloader signatures which have error code 0.
    
    However, the driver was ignoring this error code and replying with the
    firmware chunks instead, which is apparently ignored by the chip and the
    chip resends the same bootloader signature with the error code again. This
    happens in a loop until the error code self clears and firmware download
    proceeds ahead, adding a couple of milliseconds to the total firmware
    download time.
    
    Commit 689ca16e
    
     was an initial implementation which simply printed
    the following line during driver debug:
    - FW Download received err 0x04 from chip
    
    This commit adds the expected handling to the error codes.
    
    This error handling is valid for data_req bootloader signatures for V3
    and future bootloader versions.
    Signed-off-by: default avatarNeeraj Sanjay Kale <neeraj.sanjaykale@nxp.com>
    Fixes: 689ca16e
    
     ("Bluetooth: NXP: Add protocol support for NXP Bluetooth chipsets")
    Signed-off-by: default avatarLuiz Augusto von Dentz <luiz.von.dentz@intel.com>
    27489364
btnxpuart.c 41.1 KB