Blame view

cmd/io.c 1.32 KB
9ad557be2   Vadim Bendebury   Add console comma...
1
2
3
  /*
   * Copyright (c) 2012 The Chromium OS Authors.
   *
1a4596601   Wolfgang Denk   Add GPL-2.0+ SPDX...
4
   * SPDX-License-Identifier:     GPL-2.0+
9ad557be2   Vadim Bendebury   Add console comma...
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
   */
  
  /*
   * IO space access commands.
   */
  
  #include <common.h>
  #include <command.h>
  #include <asm/io.h>
  
  /*
   * IO Display
   *
   * Syntax:
   *	iod{.b, .w, .l} {addr}
   */
  int do_io_iod(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[])
  {
  	ulong addr;
  	int size;
  
  	if (argc != 2)
  		return CMD_RET_USAGE;
  
  	size = cmd_get_data_size(argv[0], 4);
  	if (size < 0)
  		return 1;
  
  	addr = simple_strtoul(argv[1], NULL, 16);
  
  	printf("%04x: ", (u16) addr);
  
  	if (size == 4)
  		printf("%08x
  ", inl(addr));
  	else if (size == 2)
  		printf("%04x
  ", inw(addr));
  	else
  		printf("%02x
  ", inb(addr));
  
  	return 0;
  }
  
  int do_io_iow(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[])
  {
9398b8ce5   Tom Rini   cmd/io.c: Fix com...
52
53
  	ulong addr, val;
  	int size;
9ad557be2   Vadim Bendebury   Add console comma...
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
  
  	if (argc != 3)
  		return CMD_RET_USAGE;
  
  	size = cmd_get_data_size(argv[0], 4);
  	if (size < 0)
  		return 1;
  
  	addr = simple_strtoul(argv[1], NULL, 16);
  	val = simple_strtoul(argv[2], NULL, 16);
  
  	if (size == 4)
  		outl((u32) val, addr);
  	else if (size == 2)
  		outw((u16) val, addr);
  	else
  		outb((u8) val, addr);
  
  	return 0;
  }
  
  /**************************************************/
  U_BOOT_CMD(iod, 2, 0, do_io_iod,
d641819cf   Bin Meng   common/cmd_io.c: ...
77
  	   "IO space display", "[.b, .w, .l] address");
9ad557be2   Vadim Bendebury   Add console comma...
78
79
  
  U_BOOT_CMD(iow, 3, 0, do_io_iow,
d641819cf   Bin Meng   common/cmd_io.c: ...
80
81
  	   "IO space modify",
  	   "[.b, .w, .l] address value");