]>
Commit | Line | Data |
---|---|---|
5e5803e1 SB |
1 | /* |
2 | * (C) Copyright 2007 | |
3 | * Stefano Babic, DENX Software Engineering, sbabic@denx.de. | |
4 | * | |
1a459660 | 5 | * SPDX-License-Identifier: GPL-2.0+ |
5e5803e1 SB |
6 | */ |
7 | ||
8 | #include <common.h> | |
9 | #include <command.h> | |
e5a3bc24 | 10 | #include <dm9000.h> |
5e5803e1 | 11 | |
54841ab5 | 12 | static int do_read_dm9000_eeprom ( cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) { |
e5a3bc24 RB |
13 | unsigned int i; |
14 | u8 data[2]; | |
5e5803e1 SB |
15 | |
16 | for (i=0; i < 0x40; i++) { | |
17 | if (!(i % 0x10)) | |
e5a3bc24 RB |
18 | printf("\n%08x:", i); |
19 | dm9000_read_srom_word(i, data); | |
20 | printf(" %02x%02x", data[1], data[0]); | |
5e5803e1 SB |
21 | } |
22 | printf ("\n"); | |
23 | return (0); | |
24 | } | |
25 | ||
54841ab5 | 26 | static int do_write_dm9000_eeprom ( cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) { |
5e5803e1 SB |
27 | int offset,value; |
28 | ||
47e26b1b WD |
29 | if (argc < 4) |
30 | return cmd_usage(cmdtp); | |
5e5803e1 SB |
31 | |
32 | offset=simple_strtoul(argv[2],NULL,16); | |
33 | value=simple_strtoul(argv[3],NULL,16); | |
34 | if (offset > 0x40) { | |
35 | printf("Wrong offset : 0x%x\n",offset); | |
47e26b1b | 36 | return cmd_usage(cmdtp); |
5e5803e1 | 37 | } |
e5a3bc24 | 38 | dm9000_write_srom_word(offset, value); |
5e5803e1 SB |
39 | return (0); |
40 | } | |
41 | ||
54841ab5 | 42 | int do_dm9000_eeprom ( cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) { |
47e26b1b WD |
43 | if (argc < 2) |
44 | return cmd_usage(cmdtp); | |
5e5803e1 | 45 | |
47e26b1b | 46 | if (strcmp (argv[1],"read") == 0) |
5e5803e1 | 47 | return (do_read_dm9000_eeprom(cmdtp,flag,argc,argv)); |
47e26b1b | 48 | else if (strcmp (argv[1],"write") == 0) |
5e5803e1 | 49 | return (do_write_dm9000_eeprom(cmdtp,flag,argc,argv)); |
47e26b1b WD |
50 | else |
51 | return cmd_usage(cmdtp); | |
5e5803e1 SB |
52 | } |
53 | ||
54 | U_BOOT_CMD( | |
55 | dm9000ee,4,1,do_dm9000_eeprom, | |
2fb2604d | 56 | "Read/Write eeprom connected to Ethernet Controller", |
5e5803e1 SB |
57 | "\ndm9000ee write <word offset> <value> \n" |
58 | "\tdm9000ee read \n" | |
59 | "\tword:\t\t00-02 : MAC Address\n" | |
60 | "\t\t\t03-07 : DM9000 Configuration\n" | |
a89c33db WD |
61 | "\t\t\t08-63 : User data" |
62 | ); |