On 13.03.2008 07:24, Nikolay Petukhov wrote:
OK, then it is easier to include in a mainboard.c.
Maybe call it from mainboard.c, but keep the function inside the cs5536 code.
2008/3/11, Jordan Crouse jordan.crouse@amd.com:
On 11/03/08 15:53 +0500, Nikolay Petukhov wrote:
Hi, all.
I have PCISA-LX-800 board (AMD LX800 + CS5536) http://www.ieiworld.com/en/product_IPC.asp?model=PCISA-LX.
With coreboot bios pc speaker not work on Linux. But with vendor BIOS pc speaker work on Linux OK.
The CS5536 datasheet say: Legacy PC/AT Speaker Beep is only available when GPIO1 is programmed to OUT_AUX1. The coreboot not enable pc speaker output on cs5536.
This patch enable pc speaker output on cs5536 based devices.
Signed-off-by: Nikolay Petukhov <nikolay.petukhov at gmail.com>
comments below.
-- Nikolay
diff -Nru coreboot-v2-3132/src/southbridge/amd/cs5536/cs5536_early_setup.c coreboot-v2-3132-beep/src/southbridge/amd/cs5536/cs5536_early_setup.c --- coreboot-v2-3132/src/southbridge/amd/cs5536/cs5536_early_setup.c 2008-01-18 15:35:56.000000000 +0500 +++ coreboot-v2-3132-beep/src/southbridge/amd/cs5536/cs5536_early_setup.c 2008-03-11 10:36:42.000000000 +0500 @@ -123,6 +123,15 @@ outl(val, GPIO_IO_BASE + GPIOL_INPUT_ENABLE); }
+static void cs5536_setup_beep(void) +{
/* GPIO1 - BEEP */
/* Set: Output Enable (0x4) */
outl(GPIOL_1_SET, GPIO_IO_BASE + GPIOL_OUTPUT_ENABLE);
/* Set: OUTAUX1 Select (0x10) */
outl(GPIOL_1_SET, GPIO_IO_BASE + GPIOL_OUT_AUX1_SELECT);
+}
I think we should wrap this with a config option. Lots of platform designs these days are omitting the legacy speaker hardware and reclaiming GPIO1.
And it is debatable whether we want to have the function in cs5536_early_setup.c. Another cs5536 file would be better.
static void cs5536_disable_internal_uart(void) { msr_t msr; @@ -221,4 +230,5 @@ cs5536_enable_smbus(); //print_debug("Setup power button\r\n"); cs5536_setup_power_button();
cs5536_setup_beep();
}
Regards, Carl-Daniel