You are not confused.  It should be <br>  while(!(inb(PM_BASE + 1) & 0x80))<br><br>but the current code has<br>while(!inb(PM_BASE + 1 & 0x80))<br><br>either way incorrect code to read port 0x80 is generated instead of reads to port (0xe8+1):<br>
L1024:<br>        /* ,:0.0 */<br>        /*<br>         * __builtin_inb,<built-in>:1.0<br>         * inb,io.h:31.29<br>         * pc97317_enable_serial,pc97317_early_serial.c:44.19<br>         * main,romstage.c:43.30<br>
         */<br>        inb  $128 , %al<br>        movzx %al, %ebp<br>        /*<br>         * pc97317_enable_serial,pc97317_early_serial.c:44.39<br>         * main,romstage.c:43.30<br>         */<br>        test %ebp, %ebp<br>
        jz L1024<br>.<br> <br><br><br><br><div class="gmail_quote">On Sun, Feb 14, 2010 at 3:05 AM, ron minnich <span dir="ltr"><<a href="mailto:rminnich@gmail.com">rminnich@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div class="im">On Sat, Feb 13, 2010 at 10:36 AM, Peter Bannis <<a href="mailto:peterjayb@gmail.com">peterjayb@gmail.com</a>> wrote:<br>
<br>
> romcc generates wrong code in pc97317_early_serial_init.c<br>
>     /* Wait for the clock to stabilise */<br>
>      while(!inb(PM_BASE + 1 & 0x80))<br>
>               ;<br>
<br>
</div>Should this be<br>
<div class="im">while(!(inb(PM_BASE + 1) & 0x80))<br>
<br>
</div>or some such? You're doing an inb from PM_BASE+1&0x80 as an address?<br>
I'm confused.<br>
<font color="#888888"><br>
ron<br>
</font></blockquote></div><br>