int __init arch_board_final_init(void) { int rc; struct vmm_devtree_node *node; struct vmm_chardev * cdev; /* All VMM API's are available here */ /* We can register a Board specific resource here */ /* Do Probing using device driver framework */ node = vmm_devtree_getnode(VMM_DEVTREE_PATH_SEPARATOR_STRING VMM_DEVTREE_HOSTINFO_NODE_NAME VMM_DEVTREE_PATH_SEPARATOR_STRING "l3"); if (!node) { return VMM_ENOTAVAIL; } rc = vmm_devdrv_probe(node, NULL); if (rc) { return rc; } /* Find uart0 character device and * set it as vmm_stdio character device */ if ((cdev = vmm_chardev_find("uart0"))) { vmm_stdio_change_indevice(cdev); vmm_stdio_change_outdevice(cdev); } return VMM_OK; }
int __init arch_board_final_init(void) { int rc; struct vmm_devtree_node *node; /* All VMM API's are available here */ /* We can register a Board specific resource here */ /* Initialize timer misc APIs */ rc = aw_timer_misc_init(); if (rc) { return rc; } /* Find simple-bus node */ node = vmm_devtree_find_compatible(NULL, NULL, "simple-bus"); if (!node) { return VMM_ENODEV; } /* Do probing using device driver framework */ rc = vmm_devdrv_probe(node); if (rc) { return rc; } return VMM_OK; }
int __init arch_board_final_init(void) { int rc; struct vmm_devtree_node *node; /* All VMM API's are available here */ /* We can register a Board specific resource here */ /* Do Probing using device driver framework */ node = vmm_devtree_getnode(VMM_DEVTREE_PATH_SEPARATOR_STRING VMM_DEVTREE_HOSTINFO_NODE_NAME VMM_DEVTREE_PATH_SEPARATOR_STRING "plb"); if(!node) { return VMM_ENOTAVAIL; } rc = vmm_devdrv_probe(node, NULL); if(rc) { return rc; } return VMM_OK; }
static int __init vmm_net_init(void) { int rc = VMM_OK; struct vmm_devtree_node *node; rc = vmm_mbufpool_init(); if (rc) { vmm_printf("%s: Failed to init mbuf pool\n", __func__); goto mbufpool_init_failed; } rc = vmm_netswitch_init(); if (rc) { vmm_printf("%s: Failed to init netswitch\n", __func__); goto netswitch_init_failed; } rc = vmm_netport_init(); if (rc) { vmm_printf("%s: Failed to init netport\n", __func__); goto netport_init_failed; } rc = vmm_bridge_init(); if (rc) { vmm_printf("%s: Failed to init bridge\n", __func__); goto bridge_init_failed; } node = vmm_devtree_getnode(VMM_DEVTREE_PATH_SEPARATOR_STRING VMM_DEVTREE_VMMINFO_NODE_NAME VMM_DEVTREE_PATH_SEPARATOR_STRING "net"); if (!node) { vmm_printf("%s: devtree node not found\n", __func__); goto net_devtree_probe_failed; } rc = vmm_devdrv_probe(node); if (rc) { vmm_printf("%s: devtree node probe failed\n", __func__); goto net_devtree_probe_failed; } goto net_init_done; net_devtree_probe_failed: vmm_bridge_exit(); bridge_init_failed: vmm_netport_exit(); netport_init_failed: vmm_netswitch_exit(); netswitch_init_failed: vmm_mbufpool_exit(); mbufpool_init_failed: net_init_done: return rc; }
int __init arch_board_final_init(void) { int rc; struct vmm_devtree_node *node; struct vmm_chardev * cdev; #if defined(CONFIG_RTC) struct vmm_rtcdev * rdev; #endif /* All VMM API's are available here */ /* We can register a Board specific resource here */ #if 0 /* FIXME: */ /* Map control registers */ ca15x4_sys_base = vmm_host_iomap(VEXPRESS_SYS_BASE, 0x1000); /* Unlock Lockable registers */ vmm_writel(VEXPRESS_SYS_LOCKVAL, (void *)(ca15x4_sys_base + VEXPRESS_SYS_LOCK_OFFSET)); #endif /* Do Probing using device driver framework */ node = vmm_devtree_getnode(VMM_DEVTREE_PATH_SEPARATOR_STRING VMM_DEVTREE_HOSTINFO_NODE_NAME VMM_DEVTREE_PATH_SEPARATOR_STRING "nbridge"); if (!node) { return VMM_ENOTAVAIL; } rc = vmm_devdrv_probe(node, NULL); if (rc) { return rc; } /* Find uart0 character device and * set it as vmm_stdio character device */ if ((cdev = vmm_chardev_find("uart0"))) { vmm_stdio_change_indevice(cdev); vmm_stdio_change_outdevice(cdev); } /* Syncup wall-clock time from rtc0 */ #if defined(CONFIG_RTC) if ((rdev = vmm_rtcdev_find("rtc0"))) { if ((rc = vmm_rtcdev_sync_wallclock(rdev))) { return rc; } } #endif return VMM_OK; }
int __init arch_board_final_init(void) { int rc; struct vmm_devtree_node *node; struct vmm_chardev * cdev; /* All VMM API's are available here */ /* We can register a Board specific resource here */ /* Map control registers */ pba8_sys_base = vmm_host_iomap(REALVIEW_SYS_BASE, 0x1000); /* Unlock Lockable registers */ vmm_writel(REALVIEW_SYS_LOCKVAL, (void *)(pba8_sys_base + REALVIEW_SYS_LOCK_OFFSET)); /* Do Probing using device driver framework */ node = vmm_devtree_getnode(VMM_DEVTREE_PATH_SEPARATOR_STRING VMM_DEVTREE_HOSTINFO_NODE_NAME VMM_DEVTREE_PATH_SEPARATOR_STRING "nbridge"); if (!node) { return VMM_ENOTAVAIL; } rc = vmm_devdrv_probe(node); if (rc) { return rc; } /* Find uart0 character device and * set it as vmm_stdio character device */ if ((cdev = vmm_chardev_find("uart0"))) { vmm_stdio_change_device(cdev); } return VMM_OK; }
int __init arch_board_final_init(void) { int rc; struct vmm_devtree_node *node; /* All VMM API's are available here */ /* We can register a Board specific resource here */ /* Find simple-bus node */ node = vmm_devtree_find_compatible(NULL, NULL, "simple-bus"); if (!node) { vmm_printf("vmm_devtree_find_compatible for simple-bus...FAIL\n"); return VMM_ENODEV; } /* Do probing using device driver framework */ rc = vmm_devdrv_probe(node); if (rc) { vmm_printf("vmm_devdrv_probe...FAIL\n"); return rc; } return VMM_OK; }