[alsa-devel] How to create and verify verb tables for coreboot?
Dear ALSA folks,
coreboot is a free replacement for the traditional BIOS [1].
Therefore coreboot is also responsible for providing the correct verb table [2]. According to Jens the Verb Table format is not documented and is created by for example Realtek [3].
Could you give some more information about the verb table and how this can be created from scratch?
Our developer Rudolf suggests to take the values from
/sys/class/sound/hwC1D0/init_pin_configs
when running the vendor BIOS [2].
How can a correct verb table be verified?
As for the ASRock E350M1 [4][5], I attach the output of `alsa-info.sh` [6] when running coreboot. The one running with the vendor BIOS is uploaded to the server [7] due to the size limit of this mailing list.
$ wdiff vendorbios coreboot # init_pin_configs 0x11 [-0x411111f0-] {+0x411110f0+} 0x12 0x411111f0 0x14 [-0x01014010-] {+0x01014030+} 0x15 [-0x01011012-] {+0x01011031+} 0x16 [-0x01016011-] {+0x01016032+} 0x17 [-0x411111f0-] {+0x01012033+} 0x18 [-0x01a19840-] {+0x01a19850+} 0x19 [-0x02a19950-] {+0x02a19c80+} 0x1a [-0x0181304f-] {+0x01813051+} 0x1b [-0x02214120-] {+0x02214c40+} 0x1c [-0x411111f0-] {+0x9933105f+} 0x1d [-0x4005e601-] {+0x00000100+} 0x1e [-0x01452130-] {+0x01441070+} 0x1f [-0x411111f0-] {+0x41c46060+}
Thanks,
Paul
[1] http://www.coreboot.org/ [2] http://www.coreboot.org/pipermail/coreboot/2013-March/075547.html [3] http://review.coreboot.org/#/c/2553/1/src/mainboard/lippert/frontrunner-af/p... [4] http://www.coreboot.org/ASRock_E350M1 [5] http://www.coreboot.org/pipermail/coreboot/2013-March/075557.html [6] http://alsa-project.org/main/index.php/Help_To_Debug [7] http://www.alsa-project.org/db/?f=96ff75103a48ab8e58a216bd12f65d2755679cdc
At Thu, 28 Mar 2013 22:56:37 +0100, Paul Menzel wrote:
Dear ALSA folks,
coreboot is a free replacement for the traditional BIOS [1].
Therefore coreboot is also responsible for providing the correct verb table [2]. According to Jens the Verb Table format is not documented and is created by for example Realtek [3].
Could you give some more information about the verb table and how this can be created from scratch?
Our developer Rudolf suggests to take the values from
/sys/class/sound/hwC1D0/init_pin_configs
when running the vendor BIOS [2].
Yes, that would work. You don't have to initialize the codec fully just to get the initial pin configs. Pass probe_only=1 to snd-hda-intel driver so that it will skip the codec initializations but just probing the codecs. The sysfs file should be available even in this mode.
How can a correct verb table be verified?
It's difficult to say what's correct in general, because the pin setup is what's really depending on the hardware. Also, BIOS doesn't always give a correct pin config. There might be the pin config overridden by *.INI file on Windows.
Also, BIOS may set up more than pin configs. It may set also some COEF verbs.
As for the ASRock E350M1 [4][5], I attach the output of `alsa-info.sh` [6] when running coreboot. The one running with the vendor BIOS is uploaded to the server [7] due to the size limit of this mailing list.
$ wdiff vendorbios coreboot # init_pin_configs 0x11 [-0x411111f0-] {+0x411110f0+} 0x12 0x411111f0 0x14 [-0x01014010-] {+0x01014030+} 0x15 [-0x01011012-] {+0x01011031+} 0x16 [-0x01016011-] {+0x01016032+} 0x17 [-0x411111f0-] {+0x01012033+} 0x18 [-0x01a19840-] {+0x01a19850+} 0x19 [-0x02a19950-] {+0x02a19c80+} 0x1a [-0x0181304f-] {+0x01813051+} 0x1b [-0x02214120-] {+0x02214c40+} 0x1c [-0x411111f0-] {+0x9933105f+} 0x1d [-0x4005e601-] {+0x00000100+} 0x1e [-0x01452130-] {+0x01441070+} 0x1f [-0x411111f0-] {+0x41c46060+}
The values there can be decoded by hda-decode-pincfg program included in hda-emu: git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/hda-emu.git
In the case above, pins 0x14-16 are changed to have association number 3 instead of 1, and add the pin 0x17 as the side channel jack.
Takashi
participants (2)
-
Paul Menzel
-
Takashi Iwai