Details
-
Bug
-
Resolution: Won't Fix
-
Major
-
None
-
Flounder
-
None
Description
Hi have a kingfisher rev M04
The original symptom was that the radio does not start.
After some investigation, I found out that the init of the radio chip fails:
I narrowed down the test case to this:
#si_init
#si_ctl /dev/i2c-12 0x65 -b fm
si46xx_boot_flash(0x00008000)
si46xx_init_patch()
si46xx_load_init()
Loading: /lib/firmware/radio/patch.bin (5796 bytes)
si46xx_load_init()
si46xx_flash_load(0x00008000)
si46xx_boot()
ERR_CMD
000: c0 00 00 80
PUP_STATE: bootloader
si46xx_set_property(PIN_CONFIG_ENABLE, 0x03)
ERR_CMD
000: c0 00 00 80
PUP_STATE: bootloader
si46xx_set_property(FM_TUNE_FE_CFG, 0x00)
ERR_CMD
000: c0 00 00 80
PUP_STATE: bootloader
si46xx_set_property(FM_SEEK_BAND_BOTTOM, 0x2256)
ERR_CMD
000: c0 00 00 80
PUP_STATE: bootloader
si46xx_set_property(FM_SEEK_BAND_TOP, 0x2A26)
ERR_CMD
000: c0 00 00 80
PUP_STATE: bootloader
si46xx_set_property(FM_SEEK_FREQUENCY_SPACING, 0x14)
ERR_CMD
000: c0 00 00 80
PUP_STATE: bootloader
si46xx_set_property(DIGITAL_IO_OUTPUT_SELECT, 0x8000)
ERR_CMD
000: c0 00 00 80
PUP_STATE: bootloader
si46xx_set_property(DIGITAL_IO_OUTPUT_FORMAT, 0x1040)
ERR_CMD
000: c0 00 00 80
PUP_STATE: bootloader
si46xx_set_property(FM_RDS_CONFIG, 0x01)
ERR_CMD
000: c0 00 00 80
PUP_STATE: bootloader
si46xx_set_property(FM_AUDIO_DE_EMPHASIS, 0x01)
ERR_CMD
000: c0 00 00 80
PUP_STATE: bootloader
ERR_CMD
000: c0 00 00 80
PUP_STATE: bootloader
Invalid mode (no FW loaded?)
The interesting thing is that boot from file works:
m3ulcb:~# si_init
m3ulcb:~# /usr/bin/si_ctl /dev/i2c-12 0x65 -a fm -p US -t 128 -u 128 -c 87900
si46xx_init_mode(3)
ERR_CMD
000: c0 00 00 80
PUP_STATE: bootloader
si46xx_init_patch()
ERR_CMD
000: c0 00 00 80
PUP_STATE: bootloader
si46xx_load_init()
Loading: /lib/firmware/radio/fm.bif (516492 bytes)
si46xx_boot()
Current mode:
FMHD is active
si46xx_set_property(PIN_CONFIG_ENABLE, 0x03)
si46xx_set_property(FM_TUNE_FE_CFG, 0x00)
si46xx_set_property(FM_SEEK_BAND_BOTTOM, 0x2256)
si46xx_set_property(FM_SEEK_BAND_TOP, 0x2A26)
si46xx_set_property(FM_SEEK_FREQUENCY_SPACING, 0x14)
si46xx_set_property(DIGITAL_IO_OUTPUT_SELECT, 0x8000)
si46xx_set_property(DIGITAL_IO_OUTPUT_FORMAT, 0x1040)
si46xx_set_property(FM_RDS_CONFIG, 0x01)
si46xx_set_property(FM_AUDIO_DE_EMPHASIS, 0x01)
si46xx_fm_tune_freq(87900)
SNR: 4 dB
RSSI: 23 dBuV
Frequency: 87900kHz
FREQOFF: 306
READANTCAP: 1
m3ulcb:~# si_ctl /dev/i2c-12 0x65 -l up
SNR: 11 dB
RSSI: 33 dBuV
Frequency: 88300kHz
FREQOFF: 304
READANTCAP: 19
m3ulcb:~# si_ctl /dev/i2c-12 0x65 -l up
SNR: 12 dB
RSSI: 30 dBuV
Frequency: 90900kHz
FREQOFF: 302
READANTCAP: 19
... but after si_init,
the boot from flash will fail:
m3ulcb:~# si_ctl /dev/i2c-12 0x65 -b fm
si46xx_boot_flash(0x00008000)
si46xx_init_patch()
si46xx_load_init()
Loading: /lib/firmware/radio/patch.bin (5796 bytes)
si46xx_load_init()
si46xx_flash_load(0x00008000)
si46xx_boot()
ERR_CMD
000: c0 00 00 80
PUP_STATE: bootloader
si46xx_set_property(PIN_CONFIG_ENABLE, 0x03)
ERR_CMD
000: c0 00 00 80
PUP_STATE: bootloader
si46xx_set_property(FM_TUNE_FE_CFG, 0x00)
ERR_CMD
000: c0 00 00 80
PUP_STATE: bootloader
si46xx_set_property(FM_SEEK_BAND_BOTTOM, 0x2256)
ERR_CMD
000: c0 00 00 80
PUP_STATE: bootloader
si46xx_set_property(FM_SEEK_BAND_TOP, 0x2A26)
ERR_CMD
000: c0 00 00 80
PUP_STATE: bootloader
si46xx_set_property(FM_SEEK_FREQUENCY_SPACING, 0x14)
ERR_CMD
000: c0 00 00 80
PUP_STATE: bootloader
si46xx_set_property(DIGITAL_IO_OUTPUT_SELECT, 0x8000)
ERR_CMD
000: c0 00 00 80
PUP_STATE: bootloader
si46xx_set_property(DIGITAL_IO_OUTPUT_FORMAT, 0x1040)
ERR_CMD
000: c0 00 00 80
PUP_STATE: bootloader
si46xx_set_property(FM_RDS_CONFIG, 0x01)
ERR_CMD
000: c0 00 00 80
PUP_STATE: bootloader
si46xx_set_property(FM_AUDIO_DE_EMPHASIS, 0x01)
ERR_CMD
000: c0 00 00 80
PUP_STATE: bootloader
ERR_CMD
000: c0 00 00 80
PUP_STATE: bootloader
Invalid mode (no FW loaded?)