diff options
Diffstat (limited to 'meta-ti-bsp/recipes-ti/beagleboard/gadget-init/g-ether-load.sh')
-rwxr-xr-x | meta-ti-bsp/recipes-ti/beagleboard/gadget-init/g-ether-load.sh | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/meta-ti-bsp/recipes-ti/beagleboard/gadget-init/g-ether-load.sh b/meta-ti-bsp/recipes-ti/beagleboard/gadget-init/g-ether-load.sh new file mode 100755 index 00000000..f9400649 --- /dev/null +++ b/meta-ti-bsp/recipes-ti/beagleboard/gadget-init/g-ether-load.sh | |||
@@ -0,0 +1,46 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | function get_devmem() | ||
4 | { | ||
5 | /usr/bin/devmem2 $1 | grep ": " | cut -d ":" -f 2|cut -d "x" -f 2 | ||
6 | } | ||
7 | |||
8 | function hex_to_mac_addr() | ||
9 | { | ||
10 | addr=$1 | ||
11 | n=0 | ||
12 | mac_addr=$(echo ${addr} | while read -r -n2 c; do | ||
13 | if [ ! -z "$c" ]; then | ||
14 | if [ $n -ne 0 ] ; then | ||
15 | echo -n ":${c}" | ||
16 | else | ||
17 | echo -n "${c}" | ||
18 | fi | ||
19 | fi | ||
20 | n=$(($n+1)) | ||
21 | done) | ||
22 | echo ${mac_addr} | ||
23 | } | ||
24 | |||
25 | function reverse_bytes() | ||
26 | { | ||
27 | addr=$1 | ||
28 | New_addr=$(echo ${addr} | while read -r -n2 c; do | ||
29 | if [ ! -z "$c" ]; then | ||
30 | New_addr=${c}${New_addr} | ||
31 | else echo | ||
32 | echo ${New_addr} | ||
33 | fi | ||
34 | done) | ||
35 | echo ${New_addr} | ||
36 | } | ||
37 | |||
38 | DEVMEM_ADDR_LO=$(get_devmem 0x44e10638|bc) | ||
39 | DEVMEM_ADDR_LO=$(reverse_bytes ${DEVMEM_ADDR_LO}) | ||
40 | |||
41 | DEVMEM_ADDR_HI=$(get_devmem 0x44e1063C) | ||
42 | DEVMEM_ADDR_HI=$(reverse_bytes ${DEVMEM_ADDR_HI}) | ||
43 | |||
44 | DEV_ADDR=$(hex_to_mac_addr "${DEVMEM_ADDR_HI}${DEVMEM_ADDR_LO}") | ||
45 | |||
46 | modprobe g_ether host_addr=${DEV_ADDR} | ||