[LinuxBIOS] Proposed change to hypertransport.c for better error handling

San Mehat san at google.com
Fri Oct 21 21:40:05 CEST 2005


Hey Stefan,

Thanks man.

Incidentally, does anyone have an example of how to represent 2 southbridges
on an HT chain?.. ie:

CPU0 <---HT---> SB1 <---HT---> SB2


having issues figuring it out...

thanks ;)

-san


On 10/21/05, Stefan Reinauer <stepan at openbios.org> wrote:
>
> Hi San,
>
> this is good stuff, it should go in the tree. If nobody objects, I'll
> put it in by the end of this weekend. Same for the other patch (gotta
> check if the last lnxi mega patch doesn't do that one already though)
>
> Stefan
>
> * San Mehat <san at google.com> [051021 17:19]:
> > *****BEGIN CUT*****
> > Index: hypertransport.c
> > ===================================================================
> > --- hypertransport.c (revision 2064)
> > +++ hypertransport.c (working copy)
> > @@ -345,12 +345,25 @@
> > /* Wait until the link initialization is complete */
> > do {
> > ctrl = pci_read_config16(prev.dev, prev.pos +
> > prev.ctrl_off);
> > - /* Is this the end of the hypertransport chain?
> > - * Has the link failed?
> > - * If so further scanning is pointless.
> > - */
> > - if (ctrl & ((1 << 6) | (1 << 4))) {
> > - goto end_of_chain;
> > +
> > + if (ctrl & (1 << 6))
> > + goto end_of_chain; // End of chain
> > +
> > + if (ctrl & ((1 << 4) | (1 << 8))) {
> > + /*
> > + * Either the link has failed, or we have
> > + * a CRC error.
> > + * Sometimes this can happen due to link
> > + * retrain, so lets knock it down and see
> > + * if its transient
> > + */
> > + ctrl |= ((1 << 6) | (1 <<8)); // Link fail +
> > Crc
> > + pci_write_config16(prev.dev, prev.pos +
> > prev.ctrl_off, ctrl);
> > + ctrl = pci_read_config16(prev.dev, prev.pos +
> > prev.ctrl_off);
> > + if (ctrl & ((1 << 4) | (1 << 8))) {
> > + printk_alert("Detected error on
> > Hypertransport Link\n");
> > + goto end_of_chain;
> > + }
> > }
> > } while((ctrl & (1 << 5)) == 0);
> >
> > ****END CUT*****
> >
>
> > --
> > LinuxBIOS mailing list
> > LinuxBIOS at openbios.org
> > http://www.openbios.org/mailman/listinfo/linuxbios
>
> --
> LinuxBIOS mailing list
> LinuxBIOS at openbios.org
> http://www.openbios.org/mailman/listinfo/linuxbios
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.coreboot.org/pipermail/coreboot/attachments/20051021/6eb77ff3/attachment.html>


More information about the coreboot mailing list