Here's some background that will help you along in this process as we do not provide any step by step instructions in this area, but many have accomplished the same using the information here on the community.
First off, the part MUST be programmed the first time using the HCI UART. This UART MUST come up and be available within the "programming mode' (lots of threads on this subject). Most customers create some type of header on their board that can accomodate the HCI UART (Rx, Tx, PWR and GND), along with a means of assuring that the part either comes up in programming mode or can accomodate being manually placed into programming mode.
Once you have the above HW changes made, you will then need to understand that in order to program the device through the HCI UART, a proprietary protocol is used which is lincluding within the "loader" executable that is part of the SDK and the command line tools described here: Programming the TAG2/TAG3 Board using command line tools
In this thread I go into a great level of detail as to how this 'programming' process takes place at a SW level: Re: Production Programming of BCM20737S
Now in order to attach the PC running the SDK/Command Line Tools to your board with the designated header, you will need some form of USB to serial programming cable. For this, we highly recommend using the FTDI 3.3V cable jcardona describes here: Re: BCM20736S recovery problem - SDA high does not enter recovery mode
thanks for your feedback.
do you mean the initial programming of the chip have to be done manually :
- insert the connect header of HCI UART on Board_n
- install loader.exe on pc and program the chip
- remove header and move to Board_n + 1
is that the only way for mass production ? we can reach 10k boards ?! this maybe suitable for 10 or 100 boards ?
is that a any SW script/way to program the chip directly from MCU ?
Correct. Unfortunately, we do not allow the direct programming of the EEPROM, nor do we provide the source for the loader/programming protocol, so programming the device from an external uC running the programming protocol is not an option.
Our packaging house in Asia has setup custom tooling/programming for the device, so I could put you in touch with them for a quote on the 10K units.
Have your local Broadcom team contact me directly and I will try to close the loop. One of our larger global Distributors is also working with their programming vendors to develop a production programming process as well, so that may be an option in the near future also.
In addition to programming the device with your application, you will also need to consider how to change the BD_ADDRs on all of the units you product. For this, there is some guidance in this thread: Re: How can I use cgs.exe to convert *.cgs to *.hex but keep MACADDR the same?