Esempio n. 1
0
int msm_fixup_memory(void *blob)
{
	u64 bank_start[MEMORY_BANKS_MAX];
	u64 bank_size[MEMORY_BANKS_MAX];
	size_t size;
	int i;
	int count = 0;
	struct udevice *smem;
	int ret;
	struct smem_ram_ptable *ram_ptable;
	struct smem_ram_ptn *p;

	ret = uclass_get_device_by_name(UCLASS_SMEM, "smem", &smem);
	if (ret < 0) {
		printf("Failed to find SMEM node. Check device tree\n");
		return 0;
	}

	ram_ptable = smem_get(smem, -1, SMEM_USABLE_RAM_PARTITION_TABLE, &size);

	if (!ram_ptable) {
		printf("Failed to find SMEM partition.\n");
		return -ENODEV;
	}

	/* Check validy of RAM */
	for (i = 0; i < RAM_NUM_PART_ENTRIES; i++) {
		p = &ram_ptable->parts[i];
		if (p->category == CATEGORY_SDRAM && p->type == TYPE_SYSMEM) {
			bank_start[count] = p->start;
			bank_size[count] = p->size;
			debug("Detected memory bank %u: start: 0x%llx size: 0x%llx\n",
					count, p->start, p->size);
			count++;
		}
	}

	if (!count) {
		printf("Failed to detect any memory bank\n");
		return -ENODEV;
	}

	ret = fdt_fixup_memory_banks(blob, bank_start, bank_size, count);
	if (ret)
		return ret;

	return 0;
}
Esempio n. 2
0
int
VxMouseInit (void)
{
    int		    mousePort;
    unsigned long   ev_size;
    
    mouseState = 0;
    mousePort = open ("/dev/xdev", O_RDONLY, 0);
    if (mousePort < 0)
	ErrorF ("event port open failure %d\n", errno);
    mouseFd = open ("/dev/mouse", O_RDONLY, 0);
    if (mouseFd < 0)
	ErrorF ("mouse open failure %d\n", errno);
    if (eventQueue == 0)
    {
	ioctl (mousePort, EVENT_QUEUE_SMSIZE, &ev_size);
	eventQueue = (eventqueue *) smem_get ("event", ev_size, (SM_READ|SM_WRITE));
    }
    return mousePort;
}