<div dir="ltr"><font face="courier new, monospace">Hello coreboot community,<br><br>I'm currently trying to add support for the cXLi2 COM Express board from Kontron (I'm working for TTTech Automotive GmbH). On IRC, I have already talked to members of the coreboot community and started to prepare the new board.<br>
<br>I'm basing my work on the iWave/iWRainbowG6 (which is quite different). Most important components are:<br>- Processor: Intel Atom Z520PT<br>- Chipset: Intel SCH US15WPT (Poulsbo)<br>- Super-IO: Winbond W83627HG</font><div>
<font face="courier new, monospace">- BIOS flash chip: SST49LF008A<br><br>Unfortunately, there was no output on the serial line and I haven't got a POST card yet. So I thought it should be easy to get the chipset to beep. I checked under Linux (using the vendor BIOS) and in the datasheet and it seems to be correct. I added the beep code to romstage.cc:main().<br>
But nothing happened...<br><br>I checked again, and thought that maybe, the boot process gets stuck earlier, so I rewrote the beep-code in ASM and added it just after entering protected mode (which seems to be pretty early...) -> but again, no  sound. (under Linux both, the asm code, and the C-code work).<br>
<br>Beep code:<br>diff --git a/src/cpu/x86/32bit/entry32.inc b/src/cpu/x86/32bit/entry32.inc<br>index f74e1b8..d46b883 100644<br>--- a/src/cpu/x86/32bit/entry32.inc<br>+++ b/src/cpu/x86/32bit/entry32.inc<br>@@ -52,6 +52,18 @@ __protected_start:<br>
        /* Save the BIST value */<br>        movl    %eax, %ebp<br><br>+       /* Beep ! */<br>+       movb    $0xb6, %al<br>+       outb    %al, $0x43<br>+       movb    $0xa9, %al<br>+       outb    %al, $0x52<br>+       movb    $0x04, %al<br>
+       outb    %al, $0x52<br>+       inb     $0x61, %al<br>+       orb     $0x03, %al<br>+       outb    %al, $0x61<br>+       movl    %ebp, %eax<br>+<br>        post_code(POST_ENTER_PROTECTED_MODE)<br><br>        movw    $ROM_DATA_SEG, %ax</font><div>
<font face="courier new, monospace">----------------------------------------------------------------------</font></div><div><font face="courier new, monospace">0xb6 =>     10            11                011                0</font></div>
<div><font face="courier new, monospace">          Timer2 | Write LSB then MSB | Square Wave Output | binary</font></div><div><font face="courier new, monospace">----------------------------------------------------------------------<br>
<br>So I guess I'm doing something completely wrong. I have to use an external flash programmer (DATAMAN-48Pro2) to actually program the flash chip since the SCH and my vendor bios image block access to the chip. So I can't use flashrom to program the device. The Dataman just loads the coreboot.rom image and write it to the memory. I'm currently just using the iWRainbowG6 code base directly (I though there that maybe I got my Kconfigs and Makefiles wrong)... (I have already created the new board and of course I want to prepare my code to be able to push it upstream if it ever works)</font></div>
<div><font face="courier new, monospace">However, using the original BIOS (which also takes 8192KB) and flashing it with the DATAMAN can boot.</font></div><div><font face="courier new, monospace"><br></font></div></div><div>
<font face="courier new, monospace">Is there something I'm forgetting, shouldn't the 'beep' work? Am I missing some initialization code?</font></div><div><font face="courier new, monospace"><br></font></div>
<div><font face="courier new, monospace">Sorry if my questions | assumptions are somehow stupid.</font></div><div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">I hope you can help me and point me in the right direction.</font></div>
<div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">Best regards,</font></div><div><font face="courier new, monospace"><br>
</font></div><div><font face="courier new, monospace">Manuel</font></div></div>