# # Copyright (C) 2006-2012 OpenWrt.org # # This is free software, licensed under the GNU General Public License v2. # See /LICENSE for more information. # BLOCK_MENU:=Block Devices define KernelPackage/aoe SUBMENU:=$(BLOCK_MENU) TITLE:=ATA over Ethernet support KCONFIG:=CONFIG_ATA_OVER_ETH FILES:=$(LINUX_DIR)/drivers/block/aoe/aoe.ko AUTOLOAD:=$(call AutoLoad,30,aoe) endef define KernelPackage/aoe/description Kernel support for ATA over Ethernet endef $(eval $(call KernelPackage,aoe)) define KernelPackage/ata-core SUBMENU:=$(BLOCK_MENU) TITLE:=Serial and Parallel ATA support DEPENDS:=@PCI_SUPPORT||TARGET_sunxi +kmod-scsi-core KCONFIG:=CONFIG_ATA FILES:=$(LINUX_DIR)/drivers/ata/libata.ko ifneq ($(wildcard $(LINUX_DIR)/drivers/ata/libahci.ko),) FILES+=$(LINUX_DIR)/drivers/ata/libahci.ko endif endef $(eval $(call KernelPackage,ata-core)) define AddDepends/ata SUBMENU:=$(BLOCK_MENU) DEPENDS+=+kmod-ata-core $(1) endef define KernelPackage/ata-ahci TITLE:=AHCI Serial ATA support KCONFIG:=CONFIG_SATA_AHCI FILES:= \ $(LINUX_DIR)/drivers/ata/ahci.ko AUTOLOAD:=$(call AutoLoad,41,libahci ahci,1) $(call AddDepends/ata) endef define KernelPackage/ata-ahci/description Support for AHCI Serial ATA controllers endef $(eval $(call KernelPackage,ata-ahci)) define KernelPackage/ata-ahci-platform TITLE:=AHCI Serial ATA Platform support KCONFIG:=CONFIG_SATA_AHCI_PLATFORM FILES:= \ $(LINUX_DIR)/drivers/ata/ahci_platform.ko \ $(LINUX_DIR)/drivers/ata/libahci_platform.ko AUTOLOAD:=$(call AutoLoad,40,libahci libahci_platform ahci_platform,1) $(call AddDepends/ata,@TARGET_ipq806x||TARGET_layerscape||TARGET_sunxi) endef define KernelPackage/ata-ahci-platform/description Platform support for AHCI Serial ATA controllers endef $(eval $(call KernelPackage,ata-ahci-platform)) define KernelPackage/ata-artop TITLE:=ARTOP 6210/6260 PATA support KCONFIG:=CONFIG_PATA_ARTOP FILES:=$(LINUX_DIR)/drivers/ata/pata_artop.ko AUTOLOAD:=$(call AutoLoad,41,pata_artop,1) $(call AddDepends/ata) endef define KernelPackage/ata-artop/description PATA support for ARTOP 6210/6260 host controllers endef $(eval $(call KernelPackage,ata-artop)) define KernelPackage/ata-nvidia-sata TITLE:=Nvidia Serial ATA support KCONFIG:=CONFIG_SATA_NV FILES:=$(LINUX_DIR)/drivers/ata/sata_nv.ko AUTOLOAD:=$(call AutoLoad,41,sata_nv,1) $(call AddDepends/ata) endef $(eval $(call KernelPackage,ata-nvidia-sata)) define KernelPackage/ata-pdc202xx-old TITLE:=Older Promise PATA controller support KCONFIG:= \ CONFIG_ATA_SFF=y \ CONFIG_PATA_PDC_OLD FILES:=$(LINUX_DIR)/drivers/ata/pata_pdc202xx_old.ko AUTOLOAD:=$(call AutoLoad,41,pata_pdc202xx_old,1) $(call AddDepends/ata) endef define KernelPackage/ata-pdc202xx-old/description This option enables support for the Promise 20246, 20262, 20263, 20265 and 20267 adapters endef $(eval $(call KernelPackage,ata-pdc202xx-old)) define KernelPackage/ata-piix TITLE:=Intel PIIX PATA/SATA support KCONFIG:=CONFIG_ATA_PIIX FILES:=$(LINUX_DIR)/drivers/ata/ata_piix.ko AUTOLOAD:=$(call AutoLoad,41,ata_piix,1) $(call AddDepends/ata) endef define KernelPackage/ata-piix/description SATA support for Intel ICH5/6/7/8 series host controllers and PATA support for Intel ESB/ICH/PIIX3/PIIX4 series host controllers endef $(eval $(call KernelPackage,ata-piix)) define KernelPackage/ata-sil TITLE:=Silicon Image SATA support KCONFIG:=CONFIG_SATA_SIL FILES:=$(LINUX_DIR)/drivers/ata/sata_sil.ko AUTOLOAD:=$(call AutoLoad,41,sata_sil,1) $(call AddDepends/ata) endef define KernelPackage/ata-sil/description Support for Silicon Image Serial ATA controllers endef $(eval $(call KernelPackage,ata-sil)) define KernelPackage/ata-sil24 TITLE:=Silicon Image 3124/3132 SATA support KCONFIG:=CONFIG_SATA_SIL24 FILES:=$(LINUX_DIR)/drivers/ata/sata_sil24.ko AUTOLOAD:=$(call AutoLoad,41,sata_sil24,1) $(call AddDepends/ata) endef define KernelPackage/ata-sil24/description Support for Silicon Image 3124/3132 Serial ATA controllers endef $(eval $(call KernelPackage,ata-sil24)) define KernelPackage/ata-via-sata TITLE:=VIA SATA support KCONFIG:=CONFIG_SATA_VIA FILES:=$(LINUX_DIR)/drivers/ata/sata_via.ko AUTOLOAD:=$(call AutoLoad,41,sata_via,1) $(call AddDepends/ata) endef define KernelPackage/ata-via-sata/description This option enables support for VIA Serial ATA endef $(eval $(call KernelPackage,ata-via-sata)) define KernelPackage/block2mtd SUBMENU:=$(BLOCK_MENU) TITLE:=Block device MTD emulation KCONFIG:=CONFIG_MTD_BLOCK2MTD FILES:=$(LINUX_DIR)/drivers/mtd/devices/block2mtd.ko endef $(eval $(call KernelPackage,block2mtd)) define KernelPackage/dax SUBMENU:=$(BLOCK_MENU) TITLE:=DAX: direct access to differentiated memory KCONFIG:=CONFIG_DAX FILES:=$(LINUX_DIR)/drivers/dax/dax.ko endef $(eval $(call KernelPackage,dax)) define KernelPackage/dm SUBMENU:=$(BLOCK_MENU) TITLE:=Device Mapper DEPENDS:=+kmod-crypto-manager +kmod-dax +KERNEL_KEYS:kmod-keys-encrypted # All the "=n" are unnecessary, they're only there # to stop the config from asking the question. # MIRROR is M because I've needed it for pvmove. KCONFIG:= \ CONFIG_BLK_DEV_MD=n \ CONFIG_DM_DEBUG=n \ CONFIG_DM_UEVENT=n \ CONFIG_DM_DELAY=n \ CONFIG_DM_LOG_WRITES=n \ CONFIG_DM_MQ_DEFAULT=n \ CONFIG_DM_MULTIPATH=n \ CONFIG_DM_ZERO=n \ CONFIG_DM_SNAPSHOT=n \ CONFIG_DM_LOG_USERSPACE=n \ CONFIG_MD=y \ CONFIG_BLK_DEV_DM \ CONFIG_DM_CRYPT \ CONFIG_DM_MIRROR FILES:= \ $(LINUX_DIR)/drivers/md/dm-mod.ko \ $(LINUX_DIR)/drivers/md/dm-crypt.ko \ $(LINUX_DIR)/drivers/md/dm-log.ko \ $(LINUX_DIR)/drivers/md/dm-mirror.ko \ $(LINUX_DIR)/drivers/md/dm-region-hash.ko AUTOLOAD:=$(call AutoLoad,30,dm-mod dm-log dm-region-hash dm-mirror dm-crypt,1) endef define KernelPackage/dm/description Kernel module necessary for LVM2 support endef $(eval $(call KernelPackage,dm)) define KernelPackage/dm-raid SUBMENU:=$(BLOCK_MENU) TITLE:=LVM2 raid support DEPENDS:=+kmod-dm +kmod-md-mod \ +kmod-md-raid0 +kmod-md-raid1 +kmod-md-raid10 +kmod-md-raid456 KCONFIG:= \ CONFIG_DM_RAID FILES:=$(LINUX_DIR)/drivers/md/dm-raid.ko AUTOLOAD:=$(call AutoLoad,31,dm-raid) endef define KernelPackage/dm-raid/description Kernel module necessary for LVM2 raid support endef $(eval $(call KernelPackage,dm-raid)) define KernelPackage/iscsi-initiator SUBMENU:=$(BLOCK_MENU) TITLE:=iSCSI Initiator over TCP/IP DEPENDS:=+kmod-scsi-core +kmod-crypto-hash KCONFIG:= \ CONFIG_INET \ CONFIG_SCSI_LOWLEVEL=y \ CONFIG_ISCSI_TCP \ CONFIG_SCSI_ISCSI_ATTRS=y FILES:= \ $(LINUX_DIR)/drivers/scsi/iscsi_tcp.ko \ $(LINUX_DIR)/drivers/scsi/libiscsi.ko \ $(LINUX_DIR)/drivers/scsi/libiscsi_tcp.ko \ $(LINUX_DIR)/drivers/scsi/scsi_transport_iscsi.ko AUTOLOAD:=$(call AutoProbe,libiscsi libiscsi_tcp scsi_transport_iscsi is
/*
 *  yosys -- Yosys Open SYnthesis Suite
 *
 *  Copyright (C) 2012  Clifford Wolf <clifford@clifford.at>
 *
 *  Permission to use, copy, modify, and/or distribute this software for any
 *  purpose with or without fee is hereby granted, provided that the above
 *  copyright notice and this permission notice appear in all copies.
 *
 *  THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
 *  WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
 *  MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
 *  ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
 *  WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
 *  ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
 *  OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 *
 */

#include "kernel/register.h"
#include "kernel/rtlil.h"
#include "kernel/log.h"

USING_YOSYS_NAMESPACE
PRIVATE_NAMESPACE_BEGIN

static std::string hicell_celltype, hicell_portname;
static std::string locell_celltype, locell_portname;
static bool singleton_mode;

static RTLIL::Module *module;
static