sbutils.h
上传用户:yuanda199
上传日期:2022-06-26
资源大小:412k
文件大小:3k
源码类别:

VxWorks

开发平台:

C/C++

  1. /*
  2.  * Misc utility routines for accessing chip-specific features
  3.  * of Broadcom HNBU SiliconBackplane-based chips.
  4.  *
  5.  * Copyright(c) 2001 Broadcom Corporation
  6.  * $Id: sbutils.h,v 1.1 Broadcom SDK $
  7.  */
  8. #ifndef _sbutils_h_
  9. #define _sbutils_h_
  10. /* Bus types */
  11. #define SB_BUS 0 /* Silicon Backplane */
  12. #define PCI_BUS 1 /* PCI target */
  13. #define PCMCIA_BUS 2 /* PCMCIA target */
  14. /* Board types (form factor) */
  15. #define BOARDTYPE_SOC 0 /* Silicon Backplane */
  16. #define BOARDTYPE_PCI 1 /* PCI/MiniPCI board */
  17. #define BOARDTYPE_PCMCIA 2 /* PCMCIA board */
  18. #define BOARDTYPE_CARDBUS 3 /* Cardbus board */
  19. /*
  20.  * Many of the routines below take an 'sbh' handle as their first arg.
  21.  * Allocate this by calling sb_attach().  Free it by calling sb_detach().
  22.  * At any one time, the sbh is logically focused on one particular sb core
  23.  * (the "current core").
  24.  * Use sb_setcore() or sb_setcoreidx() to change the association to another core.
  25.  */
  26. extern int gSPIEnable;
  27. /* exported externs */
  28. extern void *sb_attach(uint pcidev, void *osh, void *regs, char **vars, int *varsz);
  29. extern void *sb_kattach(uint chip, uint chiprev);
  30. extern void sb_detach(void *sbh);
  31. extern uint sb_chip(void *sbh);
  32. extern uint sb_chiprev(void *sbh);
  33. extern uint16 sb_boardvendor(void *sbh);
  34. extern uint16 sb_board(void *sbh);
  35. extern uint sb_boardtype(void *sbh);
  36. extern uint sb_bus(void *sbh);
  37. extern uint sb_corelist(void *sbh, uint coreid[]);
  38. extern uint sb_coreid(void *sbh);
  39. extern uint sb_coreidx(void *sbh);
  40. extern uint sb_coreunit(void *sbh);
  41. extern uint sb_corevendor(void *sbh);
  42. extern uint sb_corerev(void *sbh);
  43. extern uint32 sb_coreflags(void *sbh, uint32 mask, uint32 val);
  44. extern bool sb_iscoreup(void *sbh);
  45. extern void *sb_setcoreidx(void *sbh, uint coreidx);
  46. extern void *sb_setcore(void *sbh, uint coreid, uint coreunit);
  47. extern void sb_commit(void *sbh);
  48. extern uint32 sb_base(uint32 admatch);
  49. extern uint32 sb_size(uint32 admatch);
  50. extern void sb_core_reset(void *sbh, uint32 bits);
  51. extern void sb_core_tofixup(void *sbh);
  52. extern void sb_core_disable(void *sbh, uint32 bits);
  53. extern uint32 sb_clock_rate(uint32 n, uint32 m);
  54. extern uint32 sb_clock(void *sbh);
  55. extern bool sb_setclock(void *sbh, uint32 sb, uint32 pci);
  56. extern void sb_pci_setup(void *sbh, uint32 *dmaoffset, uint coremask);
  57. extern void sb_pcmcia_init(void *sbh);
  58. extern void sb_chip_reset(void *sbh);
  59. extern void *sb_gpiosetcore(void *sbh);
  60. extern uint32 sb_gpiocontrol(void *sbh, uint32 mask, uint32 val);
  61. extern uint32 sb_gpioouten(void *sbh, uint32 mask, uint32 val);
  62. extern uint32 sb_gpioout(void *sbh, uint32 mask, uint32 val);
  63. extern uint32 sb_gpioin(void *sbh);
  64. extern void sb_dump(void *sbh, char *buf);
  65. extern bool sb_taclear(void *sbh);
  66. /* nvram related */
  67. extern char *getvar(char *vars, char *name);
  68. extern int getintvar(char *vars, char *name);
  69. extern int sromread(void *sbh, uint byteoff, uint nbytes, uint16 *buf);
  70. extern int sromwrite(void *sbh, uint byteoff, uint nbytes, uint16 *buf);
  71. extern int parsecis(uint8 *cis, char **vars, int *count);
  72. extern void robo_mdio_reset(void);
  73. #endif /* _sbutils_h_ */