> +static struct pci_controller pcie_hose[PCIE_MAX_BUSES];
> +static int pcie_num_buses;
> +
> +#define cfg_read(val, addr, type, op)        *val = op((type)(addr))
> +#define cfg_write(val, addr, type, op)       op((type *)(addr), (val))
> +
> +#define PCIE_OP(rw, size, type, op)                                          
> \
> +static int                                                                   
> \
> +pcie_##rw##_config_##size(struct pci_controller *hose,                       
>         \
> +                     pci_dev_t dev, int offset, type val)                    
> \
> +{                                                                            
> \
> +     u32 b, d, f;                                                            
> \
Please add empty line
> +     if (hose->indirect_type == INDIRECT_TYPE_NO_PCIE_LINK)                  
> \
> +             return -1;                                                      
> \
> +     b = PCI_BUS(dev); d = PCI_DEV(dev) & 0x1f; f = PCI_FUNC(dev) & 0x7;     
> \
> +     b = b - hose->first_busno;                                              
> \
> +     dev = (b << 24) | (((d << 3) | f) << 16) | (offset & 0xfff);            
> \
> +     cfg_##rw(val, (u32)hose->cfg_addr + (u32)dev, type, op);                
> \
> +     return 0;                                                               
> \
> +}
> +
> +PCIE_OP(read, byte, u8 *, in_8)
> +PCIE_OP(read, word, u16 *, in_le16)
> +PCIE_OP(read, dword, u32 *, in_le32)
> +PCIE_OP(write, byte, u8, out_8)
> +PCIE_OP(write, word, u16, out_le16)
> +PCIE_OP(write, dword, u32, out_le32)
> +
> +     static int max_bus = 0;
> +     unsigned int ram_sz, barl, tar;
> +     u16 reg16;
> +     int i, j;
> +
> +     /* Enable pex csb bridge inbound & outbound transactions */
> +     out_le32(&pex->bridge.pex_csb_ctrl,
> +             in_le32(&pex->bridge.pex_csb_ctrl) | PEX_CSB_CTRL_OBPIOE |
> +             PEX_CSB_CTRL_IBPIOE);
> +
> +     /* Enable bridge outbound */
> +     out_le32(&pex->bridge.pex_csb_obctrl, PEX_CSB_OBCTRL_PIOE |
> +             PEX_CSB_OBCTRL_MEMWE | PEX_CSB_OBCTRL_IOWE |
> +             PEX_CSB_OBCTRL_CFGWE);
> +
> +     out_win = &pex->bridge.pex_outbound_win[0];
> +     if (bus) {
> +             out_le32(&out_win->ar, PEX_OWAR_EN | PEX_OWAR_TYPE_CFG |
> +                     CFG_PCIE2_CFG_SIZE);
> +             out_le32(&out_win->bar, CFG_PCIE2_CFG_BASE);
> +     } else {
> +             out_le32(&out_win->ar, PEX_OWAR_EN | PEX_OWAR_TYPE_CFG |
> +                     CFG_PCIE1_CFG_SIZE);
> +             out_le32(&out_win->bar, CFG_PCIE1_CFG_BASE);
> +     }
> +     out_le32(&out_win->tarl, 0);
> +     out_le32(&out_win->tarh, 0);
> +
> +     for (i = 0; i < 2; i++, reg++) {
> +             u32 ar;
please add empty line
> +             if (reg->size == 0)
> +                     break;
> +
> +             hose->regions[i] = *reg;
> +             hose->region_count++;
> +
> +             out_win = &pex->bridge.pex_outbound_win[i + 1];
> +             out_le32(&out_win->bar, reg->phys_start);
> +             out_le32(&out_win->tarl, reg->bus_start);
> +             out_le32(&out_win->tarh, 0);
> +             ar = PEX_OWAR_EN | (reg->size & PEX_OWAR_SIZE);
> +             if (reg->flags & PCI_REGION_IO)
> +                     ar |= PEX_OWAR_TYPE_IO;
> +             else
> +                     ar |= PEX_OWAR_TYPE_MEM;
> +             out_le32(&out_win->ar, ar);
> +     }
> +
> +     out_le32(&pex->bridge.pex_csb_ibctrl, PEX_CSB_IBCTRL_PIOE);
> +
> +

> +     printf("PCIE%d: ", bus);
> +
> +     reg16 = in_le16(hose_cfg_base + PEX_LTSSM_STAT);
> +     if (reg16 < 0x16) {
> +             printf("No link\n");
> +             hose->indirect_type = INDIRECT_TYPE_NO_PCIE_LINK;
> +     } else {
> +             printf("link\n");
> +     }
please remove the bracket on the else
> +
> +#ifdef CONFIG_PCI_SCAN_SHOW
> +     printf("PCI:   Bus Dev VenId DevId Class Int\n");
> +#endif
> +
> +     /*
> +      * Hose scan.
> +      */
> +     hose->last_busno = pci_hose_scan(hose);
> +     max_bus = hose->last_busno + 1;
> +}
> +
> +     struct pex_csb_bridge bridge;
> +     u8 res12[0x160];
>  } pex83xx_t;
>  
>  /*
> diff --git a/include/asm-ppc/mpc83xx_pcie.h b/include/asm-ppc/mpc83xx_pcie.h
> new file mode 100644
> index 0000000..c621ce7
> --- /dev/null
> +++ b/include/asm-ppc/mpc83xx_pcie.h
> @@ -0,0 +1,14 @@
> +#ifndef __ASM_MPC83XX_PCIE
> +#define __ASM_MPC83XX_PCIE
> +
> +#include <pci.h>
> +
> +#ifdef CONFIG_PCIE
> +extern void mpc83xx_pcie_init(int num_buses, struct pci_region **reg,
> +                           int warmboot);
> +#else 
        ^
Whitespace please remvoe
> +static void mpc83xx_pcie_init(int num_buses, struct pci_region **reg,
> +                           int warmboot) {}
Why not create it as inline?
> +#endif
> +
> +#endif /* __ASM_MPC83XX_PCIE */
Best Regards,
J.

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
U-Boot-Users mailing list
U-Boot-Users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/u-boot-users

Reply via email to