From 4d94f56c6c5ba00d35d6b3e3a1862439b2ced3f0 Mon Sep 17 00:00:00 2001 From: Michel Stam Date: Mon, 7 Apr 2014 12:01:20 +0200 Subject: common: Allow for I/O mapped I/O Rework the current framework so that I/O mapped I/O resources are also possible. Signed-off-by: Michel Stam Signed-off-by: Sascha Hauer --- commands/iomemport.c | 67 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 commands/iomemport.c (limited to 'commands/iomemport.c') diff --git a/commands/iomemport.c b/commands/iomemport.c new file mode 100644 index 0000000000..652708c9cd --- /dev/null +++ b/commands/iomemport.c @@ -0,0 +1,67 @@ +/* + * iomem.c - barebox iomem command + * + * Copyright (c) 2011 Sascha Hauer , Pengutronix + * + * See file CREDITS for list of people who contributed to this + * project. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ +#include +#include +#include + +static void __print_resources(struct resource *res, int indent) +{ + struct resource *r; + int i; + + for (i = 0; i < indent; i++) + printf(" "); + + printf(PRINTF_CONVERSION_RESOURCE " - " PRINTF_CONVERSION_RESOURCE + " (size " PRINTF_CONVERSION_RESOURCE ") %s\n", + res->start, res->end, resource_size(res), res->name); + + list_for_each_entry(r, &res->children, sibling) + __print_resources(r, indent + 1); +} + +static void print_resources(struct resource *res) +{ + __print_resources(res, 0); +} + +static int do_iomem(int argc, char *argv[]) +{ + print_resources(&iomem_resource); + + return 0; +} + +BAREBOX_CMD_START(iomem) + .cmd = do_iomem, + .usage = "show iomem usage", +BAREBOX_CMD_END + +#if IO_SPACE_LIMIT > 0 +static int do_ioport(int argc, char *argv[]) +{ + print_resources(&ioport_resource); + + return 0; +} + +BAREBOX_CMD_START(ioport) + .cmd = do_ioport, + .usage = "show ioport usage", +BAREBOX_CMD_END +#endif -- cgit v1.2.3