Commit a4eaad15 authored by Federico Vaga's avatar Federico Vaga

kernel: remove vic and trtl detection

Signed-off-by: Federico Vaga's avatarFederico Vaga <federico.vaga@cern.ch>
parent a3b51673
......@@ -84,144 +84,6 @@ static int svec_reprogram_raw(struct fmc_device *fmc, struct fmc_driver *drv,
fmc->flags |= FMC_DEVICE_HAS_CUSTOM;
svec_scan_cores(svec);
return 0;
}
static struct resource htvic_resource[] = {
DEFINE_RES_MEM_NAMED(0x0,0x100, "htvic-base"),
DEFINE_RES_IRQ_NAMED(0, "htvic-carrier"),
};
static int svec_create_vic(struct svec_dev *svec)
{
struct vme_dev *vme_dev = to_vme_dev(svec->dev);
struct platform_device *pdev;
struct platform_device_info pdevinfo = {
.parent = &vme_dev->dev,
.name = "htvic-svec",
.id = vic_id++,
.res = htvic_resource,
.num_res = ARRAY_SIZE(htvic_resource),
};
int ret, i;
if (svec->pdev_vic)
return -EBUSY;
for (i = 0; i < SVEC_N_SLOTS; ++i) {
ret = fmc_scan_sdb_tree(svec->fmcs[i], 0x0);
if (ret >= 0 || ret == -EBUSY)
break;
}
ret = fmc_find_sdb_device(svec->fmcs[0]->sdb, 0xCE42, 0x0013, NULL);
if (ret < 0)
return ret;
htvic_resource[0].parent = &svec->res_mem[MAP_REG];
htvic_resource[0].start = svec->res_mem[MAP_REG].start + ret;
htvic_resource[0].end = htvic_resource[0].start + 0x100 - 1;
htvic_resource[0].child = NULL;
htvic_resource[0].sibling = NULL;
htvic_resource[0].flags = IORESOURCE_MEM;
htvic_resource[1].start = vme_dev->irq;
htvic_resource[1].flags |= IORESOURCE_IRQ_HIGHEDGE;
pdev = platform_device_register_full(&pdevinfo);
if (IS_ERR_OR_NULL(pdev)) {
dev_err(svec->dev,
"cannot register VIC device\n");
return -ENOMEM;
}
svec->pdev_vic = pdev;
return 0;
}
static struct resource trtl_resource[] = {
DEFINE_RES_MEM_NAMED(0x0,0x20000, "trtl-base"),
DEFINE_RES_IRQ_NAMED(0, "trtl-hmq"),
DEFINE_RES_IRQ_NAMED(1, "trtl-dbg"),
};
static int svec_create_trtl(struct svec_dev *svec)
{
struct vme_dev *vme_dev = to_vme_dev(svec->dev);
struct platform_device *pdev;
struct platform_device_info pdevinfo = {
.parent = &vme_dev->dev,
.name = "mock-turtle-svec",
.id = trtl_id++,
.res = trtl_resource,
.num_res = ARRAY_SIZE(trtl_resource),
};
struct irq_domain *irqd;
int ret, i;
if (svec->pdev_trtl) {
dev_err(svec->dev, "Mock Turtle aldready exists\n");
return -EBUSY;
}
if (!svec->pdev_vic) {
dev_err(svec->dev, "Mock Turtle needs the HTVIC device\n");
return -ENODEV;
}
irqd = irq_find_host(svec->pdev_vic);
if (!irqd) {
dev_err(svec->dev, "Cannot find HT-VIC irq domain\n");
return -ENODEV;
}
for (i = 0; i < SVEC_N_SLOTS; ++i) {
ret = fmc_scan_sdb_tree(svec->fmcs[i], 0x0);
if (ret >= 0 || ret == -EBUSY)
break;
}
/* Look for the WhiteRabbit NodeCore component and create a device
based of FMC device on virtual slot 2 */
ret = fmc_find_sdb_device(svec->fmcs[i]->sdb, 0xCE42, 0x90DE, NULL);
if (ret < 0)
return ret;
/* Set the FPGA base address and mockturtle base address */
trtl_resource[0].parent = &svec->res_mem[MAP_REG];
trtl_resource[0].start = svec->res_mem[MAP_REG].start + ret;
trtl_resource[0].end = trtl_resource[0].start + 0x10000 - 1;
trtl_resource[0].child = NULL;
trtl_resource[0].sibling = NULL;
trtl_resource[0].flags = IORESOURCE_MEM;
/* Set mockturtle IRQ addresses */
trtl_resource[1].start = irq_find_mapping(irqd, 2);
trtl_resource[1].flags |= IORESOURCE_IRQ_HIGHEDGE;
trtl_resource[2].start = irq_find_mapping(irqd, 3);
trtl_resource[2].flags |= IORESOURCE_IRQ_HIGHEDGE;
pdev = platform_device_register_full(&pdevinfo);
if (IS_ERR_OR_NULL(pdev)) {
dev_err(svec->dev,
"cannot allocate Mock Turtle device\n");
return -ENOMEM;
}
svec->pdev_trtl = pdev;
return 0;
}
static int svec_scan_cores(struct svec_dev *svec)
{
/* svec_create_vic(svec); */
/* svec_create_trtl(svec); */
return 0;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment