How to download minidriver in HCI UART H5 mode with BCM43438/CYW43438?

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
mringwal
Level 4
Level 4
Associated Partner - BlueKitchen GmbH
5 sign-ins 10 questions asked 10 replies posted

Is is possible to download the minidriver (patchram) in H5 mode?

After setting up an H5 Link, I'm sending HCI Reset, HCI Read Local Version Information, HCI Read Local Name.

Then, I send the Download Mini Driver Command (FC2E) with H5 Seq nr. 3. Next, I get the HCI Command Complete with H5 Ack nr. 3.

This means, it received and processed the Download Mini Driver Command, without confirming on H5 that it received it???

Then, I get a weird packet with seq 0, ack 0 that has packet type HCI event, but isn't a valid HCI Event:

0x75, 0xD8, 0x21, 0x00, 0x02, 0x00,

Independent of the unexpected seq nr, this packet should have a length of 2 + 0xD8 bytes. Also, there is no official HCI Events with an opcode of 0x75.

350 ms later, we get an H5 Ack packet for the Download Mini Driver Command.

I've read that ".. this command triggers the device to reboot into a state where it is prepared to receive a download of a minidriver." Does this confuse the H5 state?

Is it possible to first upload the mini driver and then switch to H5 since we really need H5 mode?

Thanks for any hints!

Matthias

A bit lof log:

[Apr 24 13:59:16.119]  [HCI COMMAND]  [FC2E] VSC - Download Mini Driver

[Apr 24 13:59:16.119]  [NOTE]  hci_transport_h5.c.357: hci_transport_link_send_queued_packet: seq 3, ack 3, size 3. Append dic 1, dic = 0x5265

[Apr 24 13:59:16.119]  [NOTE]  btstack_util.c.225: 0x2E, 0xFC, 0x00,

[Apr 24 13:59:16.119]  [NOTE]  hci_transport_h5.c.240: slip: send 12 bytes

[Apr 24 13:59:16.135]  [NOTE]  hci_transport_h5.c.531: process_frame, reliable 1, packet type 4, seq_nr 3, ack_nr 3 , dic 1

[Apr 24 13:59:16.135]  [NOTE]  btstack_util.c.225: 0xDB, 0x64, 0x00, 0xC0,

[Apr 24 13:59:16.135]  [NOTE]  btstack_util.c.225: 0x0E, 0x04, 0x01, 0x2E, 0xFC, 0x00,

[Apr 24 13:59:16.135]  [NOTE]  btstack_util.c.225: 0xBC, 0x80,

[Apr 24 13:59:16.135]  [HCI EVENT]  Command Complete [FC2E] - Download Mini Driver

[Apr 24 13:59:16.135]  [NOTE]  hci.c.1298: Command complete for expected opcode fc2e at substate 9

[Apr 24 13:59:16.135]  [NOTE]  hci_transport_h5.c.368: send ack 4

[Apr 24 13:59:16.135]  [NOTE]  btstack_util.c.225: 0x20, 0x00, 0x00, 0xDF,

[Apr 24 13:59:16.135]  [NOTE]  hci_transport_h5.c.240: slip: send 6 bytes

[Apr 24 13:59:16.151]  [NOTE]  hci_transport_h5.c.531: process_frame, reliable 1, packet type 4, seq_nr 0, ack_nr 0 , dic 1

[Apr 24 13:59:16.151]  [NOTE]  btstack_util.c.225: 0xC0, 0x64, 0x00, 0xDB,

[Apr 24 13:59:16.151]  [NOTE]  btstack_util.c.225: 0x75, 0xD8, 0x21, 0x00, 0x02, 0x00,

[Apr 24 13:59:16.151]  [NOTE]  btstack_util.c.225: 0x34, 0xE8,

0 Likes
1 Reply
mringwal
Level 4
Level 4
Associated Partner - BlueKitchen GmbH
5 sign-ins 10 questions asked 10 replies posted

In fact, it is possible to first upload the mini driver via H4 and then just start the H5 Link setup. This is used in the brcm-patchram tool floating around on various open source repositories.

While, we can live with this work-around, I'm still curious to know if it's possible to upload the mini driver via H5.

0 Likes