[alsa-devel] How to create and verify verb tables for coreboot?
Takashi Iwai
tiwai at suse.de
Tue Apr 2 12:08:39 CEST 2013
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
More information about the Alsa-devel
mailing list