一文让你了解Qualcomm BT固件的下载过程

1. Bluetooth Bootstrap

The bootstrap is Bluetooth initialization procedure. The hciattach is a user space application. which is used to boot up Qualcomm Bluetooth chip. This application should be started after the Bluetooth chip is powered on. In the booting phase, Qualcomm Bluetooth firmware (RAM patch and NVM file) is downloaded into the Bluetooth chip.

1.1 Bootstrap flow chart

The following figure describes the flow chart of Bootstrap.

1.2 HCI Vendor-Specific command for Qualcomm Chip

This section describes the vendor-specific commands that are used to download firmware and get chip firmware version.

1.2.1 EDL_PATCH_GETVER

This command is used to get current patch or ROM version information.

1.2.1.1 Return event

HCI_Command_Complete event is sent in response to the EDL_PATCH_GETVER command.

1.2.2 TLV_DOWNLOAD_REQ

TLV_DOWNLOAD_REQ is issued by host to download a TLV-style file. A TLV-style file is segmented into small pieces if it is too large. TLV_DOWNLOAD_REQ supports download maximum 243‑byte long patch data at one time. Therefore, to download a large TLV-style file completely, host must issue this command in a looping way.

1.2.2.1 Return event

HCI_Command_Complete event is sent by controller to indicate the executing status of previousTLV_DOWNLOAD_REQ command.

In rampatch downloading, there are two types of rampatch file:

  • Non-optimized rampatch
  • Optimized rampatch

For optimized rampatch, the controller does not send HCI_Command_Complete event for each TLV_DOWNLOAD_REQ command during rampatch downloading. HCI_Command_Complete event is sent to the last TLV_DOWNLOAD_REQ command for last rampatch segment. In NVM downloading, controller sends HCI_Command_Complete event for each NVM segment downloaded.

2. HCI Packet Format

2.1 HCI Command Packet

2.1.1 Opcode(2 octets)

2.1.2 Parameter_Total_Length(1 octet)

2.1.3 Parameter 0 - N(Parameter 0 - N)

2.2 HCI Event Packet

2.2.1 Event_Code(1 octet)

2.2.2 Parameter_Total_Length(1 octet)

2.2.3 Event_Parameter 0 - N(Parameter_Total_Length)

3. BlueZ Download BT FW

  • hciattach /dev/ttymxc0 qca 115200 -t120 flow

4. References

  • 80-WL520-14_REV_D_Bluetooth_HCI_Vendor_Specific_Commands_Application_Note
  • Core_v5.3(Vol 4, Part E, 5.4)

5. Abbreviations and acronyms

  • OGF(Opcode Group Field)
  • OCF(Opcode Command Field)
LVS(Linux Virtual Server)是一种基于 Linux 系统的负载均衡集群技术,它主要用于将网络流量分发到多个服务器上,以提高系统的可靠性、可扩展性和性能。 LVS 集群一般包括四个组件:调度器(LVS 调度器)、前端服务器(负载均衡器)、后端服务器(真实服务器)和存储服务器(用于共享数据)。首先,调度器接收来自客户端的请求,然后根据配置的调度算法(如轮询、加权轮询、最小连接数等)将请求分发到多个前端服务器。前端服务器接收到请求后,通过相应的负载均衡算法将请求转发到后端的真实服务器上进行处理。在整个过程中,存储服务器用于存放共享的数据,以确保所有的真实服务器都能获取到相同的数据,并提供一致的服务。 LVS 集群的优点是能够提高网站的稳定性和可靠性,当某一台服务器出现故障时,调度器会自动将请求分发到其他可用的服务器上,从而保证服务的连续性。同时,LVS 集群还能够通过增加前端服务器和后端服务器的数量来提高系统的性能和吞吐量,以满足不断增长的用户需求。 在实际应用中,LVS 集群需要合理配置,包括选择合适的调度算法、调整每台服务器的权重、选择适当的硬件设备等。此外,还需要及时监控集群的运行状态,及时发现和解决故障,以确保整个系统的正常运行。 总的来说,LVS 负载均衡集群是一种强大而高效的集群技术,能够帮助企业提高系统的可靠性和性能,是现代互联网应用中不可或缺的重要组成部分。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值