> > Alternatively you could try if this works:
> >
> > Index: src/southbridge/nvidia/mcp55/mcp55_early_setup_car.c
> > ===================================================================
> > --- src/southbridge/nvidia/mcp55/mcp55_early_setup_car.c (revision 5411)
> > +++ src/southbridge/nvidia/mcp55/mcp55_early_setup_car.c (working copy)
> > @@ -131,15 +131,9 @@
> >
> >
> > }
> > -static void delayx(uint8_t value) {
> > -#if 1
> > - int i;
> > - for(i=0;i<0x8000;i++) {
> > - outb(value, 0x80);
> > - }
> > -#endif
> > -}
> >
> > +#include "pc80/udelay_io.c"
> > +
> > static void mcp55_early_pcie_setup(unsigned busnx, unsigned devnx,
> > unsigned anactrl_io_base, unsigned pci_e_x)
> > {
> > uint32_t tgio_ctrl;
> > @@ -170,14 +164,14 @@
> > outl(tgio_ctrl, anactrl_io_base + 0xcc);
> >
> > // wait 100us
> > - delayx(1);
> > + udelay(100);
> >
> > dword = pci_read_config32(dev, 0xe4);
> > dword &= ~(0x3f0); // enable
> > pci_write_config32(dev, 0xe4, dword);
> >
> > // need to wait 100ms
> > - delayx(1000);
> > + udelay(100 * 1000);
> > }
> >
> > static void mcp55_early_setup(unsigned mcp55_num, unsigned *busn,
> > unsigned *devn, unsigned *io_base, unsigned *pci_e_x)
>
> Hmm, that generates a conflict:
>
> In file included from
> src/southbridge/nvidia/mcp55/mcp55_early_setup_car.c:143,
>                 from src/mainboard/gigabyte/m57sli/romstage.c:133:
> src/pc80/udelay_io.c:4: error: redefinition of 'udelay'
> src/cpu/amd/model_fxx/apic_timer.c:19: note: previous definition of
> 'udelay'
> was here
>
> We do indeed have 2 different functions called udelay.
>
> Ideas?
>
You could just call udelay without including pc80/udelay.c.



>
> > > Index: src/mainboard/gigabyte/m57sli/fanctl.c
> > > ===================================================================
> > > --- src/mainboard/gigabyte/m57sli/fanctl.c  (revision 5411)
> > > +++ src/mainboard/gigabyte/m57sli/fanctl.c  (working copy)
> > > @@ -71,6 +71,7 @@
> > >  /*
> > >   * Called from superio.c
> > >   */
> > > +extern void init_ec(uint16_t base);
> > >  void init_ec(uint16_t base)
> > >  {
> > >     int i;
> > >
> >
> > init_ec() is the API between the superio drivers and the mainboard
> > drivers...
> >
> > If this is a single hack, it's fine as it is.. If we're going to have an
> > API here, we should create a src/include/superio.h or some such
>
> It's only used on this particular board.


Isn't there another init_ec function in the tree?  Could they use the same
header file?

Acked-by: Myles Watson <myle...@gmail.com>

Thanks,
Myles
-- 
coreboot mailing list: coreboot@coreboot.org
http://www.coreboot.org/mailman/listinfo/coreboot

Reply via email to