Ok, I’m going to try to start to post my latest research here as well; its a good way to keep people informed and for my own notes anyway. After looking into the difference on the FM Radio on the CDMA Diamond and CDMA Touch Pro – it looks like the problem on the CDMA Touch Pro is that the BRF6350 opcodes are not being passed to the device – here is a dump:
Touch Diamond CDMA
00:00:00 [D:BT] [FM00:11:21:785] Send HCI opcode(fd33)+++
00:00:00 [D:BT] [FM]len:(3)
00:00:00 [D:BT] [FM]6c 45 76
00:00:00 [D:BT] [FM00:11:21:785] Send HCI opcode(fd33)---
19:19:26 [D:BT] [BTU]SystemIdleTimerReset
+sio_rs232_dm_transmit()
sio_rs232_dm_transmit 1
sio_rs232_dm_transmit 1
[BTU]sio_rs232_dm_transmit():send 7
sio_rs232_dm_transmit 3
19:19:26 [D:BT] [BTU]SystemIdleTimerReset
3.sio_rs232_dm_transmit():uart_dm_imr=0x9
+Tx call dmov_transfer
-Tx call dmov_transfer
-sio_rs232_dm_transmit()
Touch Pro CDMA
00:00:00 [D:BT] [FM00:05:46:621] Send HCI opcode(fd33)+++
00:00:00 [D:BT] [FM]len:(3)
00:00:00 [D:BT] [FM]00 41 53
00:00:00 [D:BT] [FM00:05:46:622] Send HCI opcode(fd33)---
The sio_rs232_dm_transmit and dmov_transfer procedures are not called for the Touch Pro, but they are always called for the Diamond.
DMOV is a HTC API used to communicate between the ARM9 and ARM11 core – I don’t understand all its workings yet, but I’m getting there. It is initialized by the SPL; so there is a possibility that the SPL initialized this area to be ready on the Diamond, but not on the Touch Pro. I will have to look as to why these calls are failing on the Touch Pro.