/* * AMBA Plug & Play Device and Vendor name database: Created from GRLIB 3386. * * COPYRIGHT (c) 2009. * Aeroflex Gaisler. * * The device and vendor definitions are extracted with a script from * GRLIB. * * The license and distribution terms for this file may be * found in the file LICENSE in this distribution or at * http://www.rtems.org/license/LICENSE. */ #include #include #include #ifndef NULL #define NULL 0 #endif typedef struct { int device_id; char *name; } ambapp_device_name; typedef struct { unsigned int vendor_id; char *name; ambapp_device_name *devices; } ambapp_vendor_devnames; /**************** AUTO GENERATED FROM devices.vhd ****************/ static ambapp_device_name GAISLER_devices[] = { {GAISLER_LEON2DSU, "LEON2DSU"}, {GAISLER_LEON3, "LEON3"}, {GAISLER_LEON3DSU, "LEON3DSU"}, {GAISLER_ETHAHB, "ETHAHB"}, {GAISLER_APBMST, "APBMST"}, {GAISLER_AHBUART, "AHBUART"}, {GAISLER_SRCTRL, "SRCTRL"}, {GAISLER_SDCTRL, "SDCTRL"}, {GAISLER_SSRCTRL, "SSRCTRL"}, {GAISLER_I2C2AHB, "I2C2AHB"}, {GAISLER_APBUART, "APBUART"}, {GAISLER_IRQMP, "IRQMP"}, {GAISLER_AHBRAM, "AHBRAM"}, {GAISLER_AHBDPRAM, "AHBDPRAM"}, {GAISLER_GRIOMMU2, "GRIOMMU2"}, {GAISLER_GPTIMER, "GPTIMER"}, {GAISLER_PCITRG, "PCITRG"}, {GAISLER_PCISBRG, "PCISBRG"}, {GAISLER_PCIFBRG, "PCIFBRG"}, {GAISLER_PCITRACE, "PCITRACE"}, {GAISLER_DMACTRL, "DMACTRL"}, {GAISLER_AHBTRACE, "AHBTRACE"}, {GAISLER_DSUCTRL, "DSUCTRL"}, {GAISLER_CANAHB, "CANAHB"}, {GAISLER_GPIO, "GPIO"}, {GAISLER_AHBROM, "AHBROM"}, {GAISLER_AHBJTAG, "AHBJTAG"}, {GAISLER_ETHMAC, "ETHMAC"}, {GAISLER_SWNODE, "SWNODE"}, {GAISLER_SPW, "SPW"}, {GAISLER_AHB2AHB, "AHB2AHB"}, {GAISLER_USBDC, "USBDC"}, {GAISLER_USB_DCL, "USB_DCL"}, {GAISLER_DDRMP, "DDRMP"}, {GAISLER_ATACTRL, "ATACTRL"}, {GAISLER_DDRSP, "DDRSP"}, {GAISLER_EHCI, "EHCI"}, {GAISLER_UHCI, "UHCI"}, {GAISLER_I2CMST, "I2CMST"}, {GAISLER_SPW2, "SPW2"}, {GAISLER_AHBDMA, "AHBDMA"}, {GAISLER_NUHOSP3, "NUHOSP3"}, {GAISLER_CLKGATE, "CLKGATE"}, {GAISLER_SPICTRL, "SPICTRL"}, {GAISLER_DDR2SP, "DDR2SP"}, {GAISLER_SLINK, "SLINK"}, {GAISLER_GRTM, "GRTM"}, {GAISLER_GRTC, "GRTC"}, {GAISLER_GRPW, "GRPW"}, {GAISLER_GRCTM, "GRCTM"}, {GAISLER_GRHCAN, "GRHCAN"}, {GAISLER_GRFIFO, "GRFIFO"}, {GAISLER_GRADCDAC, "GRADCDAC"}, {GAISLER_GRPULSE, "GRPULSE"}, {GAISLER_GRTIMER, "GRTIMER"}, {GAISLER_AHB2PP, "AHB2PP"}, {GAISLER_GRVERSION, "GRVERSION"}, {GAISLER_APB2PW, "APB2PW"}, {GAISLER_PW2APB, "PW2APB"}, {GAISLER_GRCAN, "GRCAN"}, {GAISLER_I2CSLV, "I2CSLV"}, {GAISLER_U16550, "U16550"}, {GAISLER_AHBMST_EM, "AHBMST_EM"}, {GAISLER_AHBSLV_EM, "AHBSLV_EM"}, {GAISLER_GRTESTMOD, "GRTESTMOD"}, {GAISLER_ASCS, "ASCS"}, {GAISLER_IPMVBCTRL, "IPMVBCTRL"}, {GAISLER_SPIMCTRL, "SPIMCTRL"}, {GAISLER_L4STAT, "L4STAT"}, {GAISLER_LEON4, "LEON4"}, {GAISLER_LEON4DSU, "LEON4DSU"}, {GAISLER_PWM, "PWM"}, {GAISLER_L2CACHE, "L2CACHE"}, {GAISLER_SDCTRL64, "SDCTRL64"}, {GAISLER_GR1553B, "GR1553B"}, {GAISLER_1553TST, "1553TST"}, {GAISLER_GRIOMMU, "GRIOMMU"}, {GAISLER_FTAHBRAM, "FTAHBRAM"}, {GAISLER_FTSRCTRL, "FTSRCTRL"}, {GAISLER_AHBSTAT, "AHBSTAT"}, {GAISLER_LEON3FT, "LEON3FT"}, {GAISLER_FTMCTRL, "FTMCTRL"}, {GAISLER_FTSDCTRL, "FTSDCTRL"}, {GAISLER_FTSRCTRL8, "FTSRCTRL8"}, {GAISLER_MEMSCRUB, "MEMSCRUB"}, {GAISLER_FTSDCTRL64, "FTSDCTRL64"}, {GAISLER_NANDFCTRL, "NANDFCTRL"}, {GAISLER_N2DLLCTRL, "N2DLLCTRL"}, {GAISLER_N2PLLCTRL, "N2PLLCTRL"}, {GAISLER_SPI2AHB, "SPI2AHB"}, {GAISLER_DDRSDMUX, "DDRSDMUX"}, {GAISLER_APBPS2, "APBPS2"}, {GAISLER_VGACTRL, "VGACTRL"}, {GAISLER_LOGAN, "LOGAN"}, {GAISLER_SVGACTRL, "SVGACTRL"}, {GAISLER_T1AHB, "T1AHB"}, {GAISLER_MP7WRAP, "MP7WRAP"}, {GAISLER_GRSYSMON, "GRSYSMON"}, {GAISLER_GRACECTRL, "GRACECTRL"}, {GAISLER_ATAHBSLV, "ATAHBSLV"}, {GAISLER_ATAHBMST, "ATAHBMST"}, {GAISLER_ATAPBSLV, "ATAPBSLV"}, {GAISLER_MIGDDR2, "MIGDDR2"}, {GAISLER_LCDCTRL, "LCDCTRL"}, {GAISLER_SWITCHOVER, "SWITCHOVER"}, {GAISLER_FIFOUART, "FIFOUART"}, {GAISLER_MUXCTRL, "MUXCTRL"}, {GAISLER_B1553BC, "B1553BC"}, {GAISLER_B1553RT, "B1553RT"}, {GAISLER_B1553BRM, "B1553BRM"}, {GAISLER_AES, "AES"}, {GAISLER_ECC, "ECC"}, {GAISLER_PCIF, "PCIF"}, {GAISLER_CLKMOD, "CLKMOD"}, {GAISLER_HAPSTRAK, "HAPSTRAK"}, {GAISLER_TEST_1X2, "TEST_1X2"}, {GAISLER_WILD2AHB, "WILD2AHB"}, {GAISLER_BIO1, "BIO1"}, {GAISLER_AESDMA, "AESDMA"}, {GAISLER_GRPCI2, "GRPCI2"}, {GAISLER_GRPCI2_DMA, "GRPCI2_DMA"}, {GAISLER_GRPCI2_TB, "GRPCI2_TB"}, {GAISLER_SATCAN, "SATCAN"}, {GAISLER_CANMUX, "CANMUX"}, {GAISLER_GRTMRX, "GRTMRX"}, {GAISLER_GRTCTX, "GRTCTX"}, {GAISLER_GRTMDESC, "GRTMDESC"}, {GAISLER_GRTMVC, "GRTMVC"}, {GAISLER_GEFFE, "GEFFE"}, {GAISLER_GPREG, "GPREG"}, {GAISLER_GRTMPAHB, "GRTMPAHB"}, {GAISLER_SPWCUC, "SPWCUC"}, {GAISLER_SPW2_DMA, "SPW2_DMA"}, {GAISLER_SPWROUTER, "SPWROUTER"}, {GAISLER_EDCLMST, "EDCLMST"}, {GAISLER_GRPWTX, "GRPWTX"}, {GAISLER_GRPWRX, "GRPWRX"}, {GAISLER_GPREGBANK, "GPREGBANK"}, {GAISLER_MIG_SERIES7, "MIG_SERIES7"}, {GAISLER_SPWTDP, "SPWTDP"}, {0, NULL} }; static ambapp_device_name PENDER_devices[] = { {0, NULL} }; static ambapp_device_name ESA_devices[] = { {ESA_LEON2, "LEON2"}, {ESA_LEON2APB, "LEON2APB"}, {ESA_IRQ, "IRQ"}, {ESA_TIMER, "TIMER"}, {ESA_UART, "UART"}, {ESA_CFG, "CFG"}, {ESA_IO, "IO"}, {ESA_MCTRL, "MCTRL"}, {ESA_PCIARB, "PCIARB"}, {ESA_HURRICANE, "HURRICANE"}, {ESA_SPW_RMAP, "SPW_RMAP"}, {ESA_AHBUART, "AHBUART"}, {ESA_SPWA, "SPWA"}, {ESA_BOSCHCAN, "BOSCHCAN"}, {ESA_IRQ2, "IRQ2"}, {ESA_AHBSTAT, "AHBSTAT"}, {ESA_WPROT, "WPROT"}, {ESA_WPROT2, "WPROT2"}, {ESA_PDEC3AMBA, "PDEC3AMBA"}, {ESA_PTME3AMBA, "PTME3AMBA"}, {0, NULL} }; static ambapp_device_name ASTRIUM_devices[] = { {0, NULL} }; static ambapp_device_name OPENCHIP_devices[] = { {OPENCHIP_APBGPIO, "APBGPIO"}, {OPENCHIP_APBI2C, "APBI2C"}, {OPENCHIP_APBSPI, "APBSPI"}, {OPENCHIP_APBCHARLCD, "APBCHARLCD"}, {OPENCHIP_APBPWM, "APBPWM"}, {OPENCHIP_APBPS2, "APBPS2"}, {OPENCHIP_APBMMCSD, "APBMMCSD"}, {OPENCHIP_APBNAND, "APBNAND"}, {OPENCHIP_APBLPC, "APBLPC"}, {OPENCHIP_APBCF, "APBCF"}, {OPENCHIP_APBSYSACE, "APBSYSACE"}, {OPENCHIP_APB1WIRE, "APB1WIRE"}, {OPENCHIP_APBJTAG, "APBJTAG"}, {OPENCHIP_APBSUI, "APBSUI"}, {0, NULL} }; static ambapp_device_name OPENCORES_devices[] = { {0, NULL} }; static ambapp_device_name CONTRIB_devices[] = { {CONTRIB_CORE1, "CORE1"}, {CONTRIB_CORE2, "CORE2"}, {0, NULL} }; static ambapp_device_name EONIC_devices[] = { {0, NULL} }; static ambapp_device_name RADIONOR_devices[] = { {0, NULL} }; static ambapp_device_name GLEICHMANN_devices[] = { {GLEICHMANN_CUSTOM, "CUSTOM"}, {GLEICHMANN_GEOLCD01, "GEOLCD01"}, {GLEICHMANN_DAC, "DAC"}, {GLEICHMANN_HPI, "HPI"}, {GLEICHMANN_SPI, "SPI"}, {GLEICHMANN_HIFC, "HIFC"}, {GLEICHMANN_ADCDAC, "ADCDAC"}, {GLEICHMANN_SPIOC, "SPIOC"}, {GLEICHMANN_AC97, "AC97"}, {0, NULL} }; static ambapp_device_name MENTA_devices[] = { {0, NULL} }; static ambapp_device_name SUN_devices[] = { {SUN_T1, "SUN_T1"}, {SUN_S1, "SUN_S1"}, {0, NULL} }; static ambapp_device_name MOVIDIA_devices[] = { {0, NULL} }; static ambapp_device_name ORBITA_devices[] = { {ORBITA_1553B, "1553B"}, {ORBITA_429, "429"}, {ORBITA_SPI, "SPI"}, {ORBITA_I2C, "I2C"}, {ORBITA_SMARTCARD, "SMARTCARD"}, {ORBITA_SDCARD, "SDCARD"}, {ORBITA_UART16550, "UART16550"}, {ORBITA_CRYPTO, "CRYPTO"}, {ORBITA_SYSIF, "SYSIF"}, {ORBITA_PIO, "PIO"}, {ORBITA_RTC, "RTC"}, {ORBITA_COLORLCD, "COLORLCD"}, {ORBITA_PCI, "PCI"}, {ORBITA_DSP, "DSP"}, {ORBITA_USBHOST, "USBHOST"}, {ORBITA_USBDEV, "USBDEV"}, {0, NULL} }; static ambapp_device_name SYNOPSYS_devices[] = { {0, NULL} }; static ambapp_device_name NASA_devices[] = { {NASA_EP32, "EP32"}, {0, NULL} }; static ambapp_device_name CAL_devices[] = { {CAL_DDRCTRL, "DDRCTRL"}, {0, NULL} }; static ambapp_device_name EMBEDDIT_devices[] = { {0, NULL} }; static ambapp_device_name CETON_devices[] = { {0, NULL} }; static ambapp_device_name ACTEL_devices[] = { {ACTEL_COREMP7, "COREMP7"}, {0, NULL} }; static ambapp_vendor_devnames vendors[] = { {VENDOR_GAISLER, "GAISLER", GAISLER_devices}, {VENDOR_PENDER, "PENDER", PENDER_devices}, {VENDOR_ESA, "ESA", ESA_devices}, {VENDOR_ASTRIUM, "ASTRIUM", ASTRIUM_devices}, {VENDOR_OPENCHIP, "OPENCHIP", OPENCHIP_devices}, {VENDOR_OPENCORES, "OPENCORES", OPENCORES_devices}, {VENDOR_CONTRIB, "CONTRIB", CONTRIB_devices}, {VENDOR_EONIC, "EONIC", EONIC_devices}, {VENDOR_RADIONOR, "RADIONOR", RADIONOR_devices}, {VENDOR_GLEICHMANN, "GLEICHMANN", GLEICHMANN_devices}, {VENDOR_MENTA, "MENTA", MENTA_devices}, {VENDOR_SUN, "SUN", SUN_devices}, {VENDOR_MOVIDIA, "MOVIDIA", MOVIDIA_devices}, {VENDOR_ORBITA, "ORBITA", ORBITA_devices}, {VENDOR_SYNOPSYS, "SYNOPSYS", SYNOPSYS_devices}, {VENDOR_NASA, "NASA", NASA_devices}, {VENDOR_CAL, "CAL", CAL_devices}, {VENDOR_EMBEDDIT, "EMBEDDIT", EMBEDDIT_devices}, {VENDOR_CETON, "CETON", CETON_devices}, {VENDOR_ACTEL, "ACTEL", ACTEL_devices}, {0, NULL, NULL} }; /*****************************************************************/ static char *ambapp_get_devname(ambapp_device_name *devs, int id) { while (devs->device_id > 0) { if (devs->device_id == id) return devs->name; devs++; } return NULL; } char *ambapp_device_id2str(int vendor, int id) { ambapp_vendor_devnames *ven = &vendors[0]; while (ven->vendor_id > 0) { if (ven->vendor_id == vendor) return ambapp_get_devname(ven->devices, id); ven++; } return NULL; } char *ambapp_vendor_id2str(int vendor) { ambapp_vendor_devnames *ven = &vendors[0]; while (ven->vendor_id > 0) { if (ven->vendor_id == vendor) return ven->name; ven++; } return NULL; } int ambapp_vendev_id2str(int vendor, int id, char *buf) { char *dstr, *vstr; *buf = '\0'; vstr = ambapp_vendor_id2str(vendor); if (vstr == NULL) return 0; dstr = ambapp_device_id2str(vendor, id); if (dstr == NULL) return 0; strcpy(buf, vstr); strcat(buf, "_"); strcat(buf, dstr); return strlen(buf); }