* [dpdk-dev] [PATCH 1/1] add writing registers
@ 2016-04-21 17:24 Rami Rosen
2016-04-21 17:33 ` Rosen, Rami
0 siblings, 1 reply; 2+ messages in thread
From: Rami Rosen @ 2016-04-21 17:24 UTC (permalink / raw)
To: dev; +Cc: Rami Rosen
Change-Id: Iaeeefcbc29d109fef17797d6a888cf2448499646
Signed-off-by: Rami Rosen <rami.rosen@intel.com>
---
fvlproto/build.sh | 4 +
fvlproto/config.c | 7 +
fvlproto/myMakefile | 29 +
fvlproto/mybuild.sh | 5 +
fvlproto/regs.txt | 78 ++
fvlproto/regs.txt.org | 1998 +++++++++++++++++++++++++++++++++++++++++++++++
fvlproto/run.sh | 20 +
fvlproto/test/Makefile | 29 +
fvlproto/test/readreg.c | 167 ++++
fvlproto/test/run.sh | 3 +
10 files changed, 2340 insertions(+)
create mode 100755 fvlproto/build.sh
create mode 100644 fvlproto/myMakefile
create mode 100755 fvlproto/mybuild.sh
create mode 100644 fvlproto/regs.txt
create mode 100644 fvlproto/regs.txt.org
create mode 100644 fvlproto/run.sh
create mode 100644 fvlproto/test/Makefile
create mode 100644 fvlproto/test/readreg.c
create mode 100644 fvlproto/test/run.sh
diff --git a/fvlproto/build.sh b/fvlproto/build.sh
new file mode 100755
index 0000000..bfffb6b
--- /dev/null
+++ b/fvlproto/build.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+export RTE_SDK=/work/src/dpdk-16.04
+make
diff --git a/fvlproto/config.c b/fvlproto/config.c
index f7db457..1659154 100644
--- a/fvlproto/config.c
+++ b/fvlproto/config.c
@@ -148,6 +148,9 @@ static void parse_print_regs_input(const char *arg)
char input_line[256];
char *address, *val, *curr;
const char delimiters[] = " ";
+ uint32_t reg;
+ uint32_t value;
+ char *eptr;
if (arg == NULL)
return;
@@ -166,6 +169,10 @@ static void parse_print_regs_input(const char *arg)
address = strtok(NULL, delimiters);
val = strtok(NULL, delimiters);
printf("addess=%s val=%s\n", address, val);
+ reg = strtol(address, &eptr, 16);
+ value = strtol(val, &eptr, 16);
+ printf("Writing reg=%x value=%x\n", reg, value);
+ i40e_dev_reg_write(app.nic_rx_port, reg, value, 0);
}
fclose(file);
diff --git a/fvlproto/myMakefile b/fvlproto/myMakefile
new file mode 100644
index 0000000..00b878b
--- /dev/null
+++ b/fvlproto/myMakefile
@@ -0,0 +1,29 @@
+# BSD LICENSE
+
+ifeq ($(RTE_SDK),)
+$(error "Please define RTE_SDK environment variable")
+endif
+
+# Default target, can be overriden by command line or environment
+RTE_TARGET ?= x86_64-native-linuxapp-gcc
+
+include $(RTE_SDK)/mk/rte.vars.mk
+
+# binary name
+APP = readreg
+
+# all source are stored in SRCS-y
+SRCS-y := readreg.c
+
+CFLAGS += -O3 -g
+CFLAGS += $(WERROR_FLAGS)
+#CFLAGS_config.o := -D_GNU_SOURCE
+
+# workaround for a gcc bug with noreturn attribute
+# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12603
+ifeq ($(CONFIG_RTE_TOOLCHAIN_GCC),y)
+#CFLAGS_main.o += -Wno-return-type
+CFLAGS_readreg.o += -Wno-return-type
+endif
+
+include $(RTE_SDK)/mk/rte.extapp.mk
diff --git a/fvlproto/mybuild.sh b/fvlproto/mybuild.sh
new file mode 100755
index 0000000..55b89f1
--- /dev/null
+++ b/fvlproto/mybuild.sh
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+export RTE_SDK=/work/src/dpdk-16.04
+make -f myMakefile
+
diff --git a/fvlproto/regs.txt b/fvlproto/regs.txt
new file mode 100644
index 0000000..68f9ef3
--- /dev/null
+++ b/fvlproto/regs.txt
@@ -0,0 +1,78 @@
+ write 0x1c0a90 0x5
+ write 0x1c0a9c 0x3180c
+ write 0x1c0aa0 0x20000096
+ write 0x1c0aa4 0x5
+ write 0x1c0aa8 0x3180c
+ write 0x1c0aac 0x20000096
+ write 0x1c0a90 0x305
+ write 0x1c0a9c 0x0
+ write 0x1c0aa0 0xb
+ write 0x1c0aa4 0x305
+ write 0x1c0aa8 0x0
+ write 0x1c0aac 0xb
+ write 0x1c0a90 0x110
+ write 0x1c0a9c 0x0
+ write 0x1c0aa0 0x28000cb
+ write 0x1c0aa4 0x110
+ write 0x1c0aa8 0x0
+ write 0x1c0aac 0x28000cb
+ write 0x1c0a90 0x111
+ write 0x1c0a9c 0x0
+ write 0x1c0aa0 0x280000b
+ write 0x1c0aa4 0x111
+ write 0x1c0aa8 0x0
+ write 0x1c0aac 0x280000b
+ write 0x1c0a90 0x113
+ write 0x1c0a9c 0x0
+ write 0x1c0aa0 0x2c4a7d5
+ write 0x1c0aa4 0x113
+ write 0x1c0aa8 0x0
+ write 0x1c0aac 0x2c4a7d5
+ write 0x1c0a90 0x114
+ write 0x1c0a9c 0x0
+ write 0x1c0aa0 0x2800219
+ write 0x1c0aa4 0x114
+ write 0x1c0aa8 0x0
+ write 0x1c0aac 0x2800219
+ write 0x1c0a90 0x115
+ write 0x1c0a9c 0x0
+ write 0x1c0aa0 0x280031b
+ write 0x1c0aa4 0x115
+ write 0x1c0aa8 0x0
+ write 0x1c0aac 0x280031b
+ write 0x1c0a90 0x138
+ write 0x1c0a9c 0x0
+ write 0x1c0aa0 0x2b2ac41
+ write 0x1c0aa4 0x138
+ write 0x1c0aa8 0x0
+ write 0x1c0aac 0x2b2ac41
+ write 0x1c0a90 0x139
+ write 0x1c0a9c 0x0
+ write 0x1c0aa0 0x2840019
+ write 0x1c0aa4 0x139
+ write 0x1c0aa8 0x0
+ write 0x1c0aac 0x2840019
+ write 0x1c0a90 0x13a
+ write 0x1c0a9c 0x0
+ write 0x1c0aa0 0x2c36e9b
+ write 0x1c0aa4 0x13a
+ write 0x1c0aa8 0x0
+ write 0x1c0aac 0x2c36e9b
+ write 0x1c0a90 0x13b
+ write 0x1c0a9c 0x0
+ write 0x1c0aa0 0x2c0803f
+ write 0x1c0aa4 0x13b
+ write 0x1c0aa8 0x0
+ write 0x1c0aac 0x2c0803f
+ write 0x1c0a90 0x5a7
+ write 0x1c0a9c 0x21
+ write 0x1c0aa0 0x4c8bffff
+ write 0x1c0aa4 0x5a7
+ write 0x1c0aa8 0x21
+ write 0x1c0aac 0x4c8bffff
+ write 0x51040 0x4ce
+ write 0x5104c 0x1a7
+ write 0x51050 0x0
+ write 0x51040 0x8ce
+ write 0x5104c 0x0
+ write 0x51050 0xe0000
\ No newline at end of file
diff --git a/fvlproto/regs.txt.org b/fvlproto/regs.txt.org
new file mode 100644
index 0000000..754fc08
--- /dev/null
+++ b/fvlproto/regs.txt.org
@@ -0,0 +1,1998 @@
+ write 0x1c0a90 0x5
+ write 0x1c0a9c 0x3180c
+ write 0x1c0aa0 0x20000096
+ write 0x1c0aa4 0x5
+ write 0x1c0aa8 0x3180c
+ write 0x1c0aac 0x20000096
+ write 0x1c0a90 0x305
+ write 0x1c0a9c 0x0
+ write 0x1c0aa0 0xb
+ write 0x1c0aa4 0x305
+ write 0x1c0aa8 0x0
+ write 0x1c0aac 0xb
+ write 0x1c0a90 0x110
+ write 0x1c0a9c 0x0
+ write 0x1c0aa0 0x28000cb
+ write 0x1c0aa4 0x110
+ write 0x1c0aa8 0x0
+ write 0x1c0aac 0x28000cb
+ write 0x1c0a90 0x111
+ write 0x1c0a9c 0x0
+ write 0x1c0aa0 0x280000b
+ write 0x1c0aa4 0x111
+ write 0x1c0aa8 0x0
+ write 0x1c0aac 0x280000b
+ write 0x1c0a90 0x113
+ write 0x1c0a9c 0x0
+ write 0x1c0aa0 0x2c4a7d5
+ write 0x1c0aa4 0x113
+ write 0x1c0aa8 0x0
+ write 0x1c0aac 0x2c4a7d5
+ write 0x1c0a90 0x114
+ write 0x1c0a9c 0x0
+ write 0x1c0aa0 0x2800219
+ write 0x1c0aa4 0x114
+ write 0x1c0aa8 0x0
+ write 0x1c0aac 0x2800219
+ write 0x1c0a90 0x115
+ write 0x1c0a9c 0x0
+ write 0x1c0aa0 0x280031b
+ write 0x1c0aa4 0x115
+ write 0x1c0aa8 0x0
+ write 0x1c0aac 0x280031b
+ write 0x1c0a90 0x138
+ write 0x1c0a9c 0x0
+ write 0x1c0aa0 0x2b2ac41
+ write 0x1c0aa4 0x138
+ write 0x1c0aa8 0x0
+ write 0x1c0aac 0x2b2ac41
+ write 0x1c0a90 0x139
+ write 0x1c0a9c 0x0
+ write 0x1c0aa0 0x2840019
+ write 0x1c0aa4 0x139
+ write 0x1c0aa8 0x0
+ write 0x1c0aac 0x2840019
+ write 0x1c0a90 0x13a
+ write 0x1c0a9c 0x0
+ write 0x1c0aa0 0x2c36e9b
+ write 0x1c0aa4 0x13a
+ write 0x1c0aa8 0x0
+ write 0x1c0aac 0x2c36e9b
+ write 0x1c0a90 0x13b
+ write 0x1c0a9c 0x0
+ write 0x1c0aa0 0x2c0803f
+ write 0x1c0aa4 0x13b
+ write 0x1c0aa8 0x0
+ write 0x1c0aac 0x2c0803f
+ write 0x1c0a90 0x500
+ write 0x1c0a9c 0xf
+ write 0x1c0aa0 0xffffffff
+ write 0x1c0aa4 0x500
+ write 0x1c0aa8 0xf
+ write 0x1c0aac 0xffffffff
+ write 0x1c0a90 0x501
+ write 0x1c0a9c 0x8
+ write 0x1c0aa0 0x7fffffff
+ write 0x1c0aa4 0x501
+ write 0x1c0aa8 0x8
+ write 0x1c0aac 0x7fffffff
+ write 0x1c0a90 0x502
+ write 0x1c0a9c 0x10
+ write 0x1c0aa0 0x21ffffff
+ write 0x1c0aa4 0x502
+ write 0x1c0aa8 0x10
+ write 0x1c0aac 0x21ffffff
+ write 0x1c0a90 0x503
+ write 0x1c0a9c 0x10
+ write 0x1c0aa0 0x61ffffff
+ write 0x1c0aa4 0x503
+ write 0x1c0aa8 0x10
+ write 0x1c0aac 0x61ffffff
+ write 0x1c0a90 0x504
+ write 0x1c0a9c 0x1f
+ write 0x1c0aa0 0xe1ffffff
+ write 0x1c0aa4 0x504
+ write 0x1c0aa8 0x1f
+ write 0x1c0aac 0xe1ffffff
+ write 0x1c0a90 0x505
+ write 0x1c0a9c 0x1f
+ write 0x1c0aa0 0xe1ffffff
+ write 0x1c0aa4 0x505
+ write 0x1c0aa8 0x1f
+ write 0x1c0aac 0xe1ffffff
+ write 0x1c0a90 0x506
+ write 0x1c0a9c 0x11
+ write 0x1c0aa0 0x21ffffff
+ write 0x1c0aa4 0x506
+ write 0x1c0aa8 0x11
+ write 0x1c0aac 0x21ffffff
+ write 0x1c0a90 0x507
+ write 0x1c0a9c 0x1f
+ write 0x1c0aa0 0xe1ffffff
+ write 0x1c0aa4 0x507
+ write 0x1c0aa8 0x1f
+ write 0x1c0aac 0xe1ffffff
+ write 0x1c0a90 0x508
+ write 0x1c0a9c 0x1f
+ write 0x1c0aa0 0xe1ffffff
+ write 0x1c0aa4 0x508
+ write 0x1c0aa8 0x1f
+ write 0x1c0aac 0xe1ffffff
+ write 0x1c0a90 0x509
+ write 0x1c0a9c 0x1f
+ write 0x1c0aa0 0xe1ffffff
+ write 0x1c0aa4 0x509
+ write 0x1c0aa8 0x1f
+ write 0x1c0aac 0xe1ffffff
+ write 0x1c0a90 0x50a
+ write 0x1c0a9c 0x12
+ write 0x1c0aa0 0x21ffffff
+ write 0x1c0aa4 0x50a
+ write 0x1c0aa8 0x12
+ write 0x1c0aac 0x21ffffff
+ write 0x1c0a90 0x50b
+ write 0x1c0a9c 0x12
+ write 0x1c0aa0 0x61ffffff
+ write 0x1c0aa4 0x50b
+ write 0x1c0aa8 0x12
+ write 0x1c0aac 0x61ffffff
+ write 0x1c0a90 0x50c
+ write 0x1c0a9c 0x1f
+ write 0x1c0aa0 0xe2ffffff
+ write 0x1c0aa4 0x50c
+ write 0x1c0aa8 0x1f
+ write 0x1c0aac 0xe2ffffff
+ write 0x1c0a90 0x50d
+ write 0x1c0a9c 0x2f
+ write 0x1c0aa0 0xff8bffff
+ write 0x1c0aa4 0x50d
+ write 0x1c0aa8 0x2f
+ write 0x1c0aac 0xff8bffff
+ write 0x1c0a90 0x50e
+ write 0x1c0a9c 0x2f
+ write 0x1c0aa0 0xff8bffff
+ write 0x1c0aa4 0x50e
+ write 0x1c0aa8 0x2f
+ write 0x1c0aac 0xff8bffff
+ write 0x1c0a90 0x50f
+ write 0x1c0a9c 0x2f
+ write 0x1c0aa0 0xff8bffff
+ write 0x1c0aa4 0x50f
+ write 0x1c0aa8 0x2f
+ write 0x1c0aac 0xff8bffff
+ write 0x1c0a90 0x510
+ write 0x1c0a9c 0x2f
+ write 0x1c0aa0 0xff8bffff
+ write 0x1c0aa4 0x510
+ write 0x1c0aa8 0x2f
+ write 0x1c0aac 0xff8bffff
+ write 0x1c0a90 0x511
+ write 0x1c0a9c 0x3f
+ write 0x1c0aa0 0xff8bffff
+ write 0x1c0aa4 0x511
+ write 0x1c0aa8 0x3f
+ write 0x1c0aac 0xff8bffff
+ write 0x1c0a90 0x512
+ write 0x1c0a9c 0x3f
+ write 0x1c0aa0 0xfffe2fff
+ write 0x1c0aa4 0x512
+ write 0x1c0aa8 0x3f
+ write 0x1c0aac 0xfffe2fff
+ write 0x1c0a90 0x513
+ write 0x1c0a9c 0x3f
+ write 0x1c0aa0 0xfffe2fff
+ write 0x1c0aa4 0x513
+ write 0x1c0aa8 0x3f
+ write 0x1c0aac 0xfffe2fff
+ write 0x1c0a90 0x514
+ write 0x1c0a9c 0x3f
+ write 0x1c0aa0 0xfffe2fff
+ write 0x1c0aa4 0x514
+ write 0x1c0aa8 0x3f
+ write 0x1c0aac 0xfffe2fff
+ write 0x1c0a90 0x515
+ write 0x1c0a9c 0x3f
+ write 0x1c0aa0 0xfffe2fff
+ write 0x1c0aa4 0x515
+ write 0x1c0aa8 0x3f
+ write 0x1c0aac 0xfffe2fff
+ write 0x1c0a90 0x516
+ write 0x1c0a9c 0x1b
+ write 0x1c0aa0 0x22ffffff
+ write 0x1c0aa4 0x516
+ write 0x1c0aa8 0x1b
+ write 0x1c0aac 0x22ffffff
+ write 0x51040 0x435
+ write 0x5104c 0x116
+ write 0x51050 0x0
+ write 0x51040 0x835
+ write 0x5104c 0x0
+ write 0x51050 0x50000
+ write 0x1c0a90 0x517
+ write 0x1c0a9c 0x13
+ write 0x1c0aa0 0x22ffffff
+ write 0x1c0aa4 0x517
+ write 0x1c0aa8 0x13
+ write 0x1c0aac 0x22ffffff
+ write 0x51040 0x436
+ write 0x5104c 0x117
+ write 0x51050 0x0
+ write 0x51040 0x836
+ write 0x5104c 0x0
+ write 0x51050 0x50000
+ write 0x1c0a90 0x518
+ write 0x1c0a9c 0xa3
+ write 0x1c0aa0 0x128fffff
+ write 0x1c0aa4 0x518
+ write 0x1c0aa8 0xa3
+ write 0x1c0aac 0x128fffff
+ write 0x51040 0x437
+ write 0x5104c 0x118
+ write 0x51050 0x0
+ write 0x51040 0x837
+ write 0x5104c 0x0
+ write 0x51050 0x70008
+ write 0x1c0a90 0x519
+ write 0x1c0a9c 0xa3
+ write 0x1c0aa0 0x8fffff
+ write 0x1c0aa4 0x519
+ write 0x1c0aa8 0xa3
+ write 0x1c0aac 0x8fffff
+ write 0x51040 0x438
+ write 0x5104c 0x119
+ write 0x51050 0x0
+ write 0x51040 0x838
+ write 0x5104c 0x0
+ write 0x51050 0x70008
+ write 0x1c0a90 0x51a
+ write 0x1c0a9c 0xa3
+ write 0x1c0aa0 0x118fffff
+ write 0x1c0aa4 0x51a
+ write 0x1c0aa8 0xa3
+ write 0x1c0aac 0x118fffff
+ write 0x51040 0x439
+ write 0x5104c 0x11a
+ write 0x51050 0x0
+ write 0x51040 0x839
+ write 0x5104c 0x0
+ write 0x51050 0x70000
+ write 0x1c0a90 0x51b
+ write 0x1c0a9c 0xa3
+ write 0x1c0aa0 0x138fffff
+ write 0x1c0aa4 0x51b
+ write 0x1c0aa8 0xa3
+ write 0x1c0aac 0x138fffff
+ write 0x51040 0x43a
+ write 0x5104c 0x11b
+ write 0x51050 0x0
+ write 0x51040 0x83a
+ write 0x5104c 0x0
+ write 0x51050 0xe70000
+ write 0x1c0a90 0x51c
+ write 0x1c0a9c 0xa3
+ write 0x1c0aa0 0x148fffff
+ write 0x1c0aa4 0x51c
+ write 0x1c0aa8 0xa3
+ write 0x1c0aac 0x148fffff
+ write 0x51040 0x43b
+ write 0x5104c 0x11c
+ write 0x51050 0x0
+ write 0x51040 0x83b
+ write 0x5104c 0x0
+ write 0x51050 0x50000
+ write 0x1c0a90 0x51d
+ write 0x1c0a9c 0x423
+ write 0x1c0aa0 0x2c8bffff
+ write 0x1c0aa4 0x51d
+ write 0x1c0aa8 0x423
+ write 0x1c0aac 0x2c8bffff
+ write 0x51040 0x43c
+ write 0x5104c 0x11d
+ write 0x51050 0x0
+ write 0x51040 0x83c
+ write 0x5104c 0x0
+ write 0x51050 0xd0000
+ write 0x1c0a90 0x51e
+ write 0x1c0a9c 0x423
+ write 0x1c0aa0 0xc8bffff
+ write 0x1c0aa4 0x51e
+ write 0x1c0aa8 0x423
+ write 0x1c0aac 0xc8bffff
+ write 0x51040 0x43d
+ write 0x5104c 0x11e
+ write 0x51050 0x0
+ write 0x51040 0x83d
+ write 0x5104c 0x0
+ write 0x51050 0xd0000
+ write 0x1c0a90 0x51f
+ write 0x1c0a9c 0x533
+ write 0x1c0aa0 0xc4a3fff
+ write 0x1c0aa4 0x51f
+ write 0x1c0aa8 0x533
+ write 0x1c0aac 0xc4a3fff
+ write 0x51040 0x43e
+ write 0x5104c 0x11f
+ write 0x51050 0x0
+ write 0x51040 0x83e
+ write 0x5104c 0x0
+ write 0x51050 0x100010
+ write 0x1c0a90 0x520
+ write 0x1c0a9c 0x533
+ write 0x1c0aa0 0xc023fff
+ write 0x1c0aa4 0x520
+ write 0x1c0aa8 0x533
+ write 0x1c0aac 0xc023fff
+ write 0x51040 0x43f
+ write 0x5104c 0x120
+ write 0x51050 0x0
+ write 0x51040 0x83f
+ write 0x5104c 0x0
+ write 0x51050 0x100010
+ write 0x1c0a90 0x521
+ write 0x1c0a9c 0x533
+ write 0x1c0aa0 0xc463fff
+ write 0x1c0aa4 0x521
+ write 0x1c0aa8 0x533
+ write 0x1c0aac 0xc463fff
+ write 0x51040 0x440
+ write 0x5104c 0x121
+ write 0x51050 0x0
+ write 0x51040 0x840
+ write 0x5104c 0x0
+ write 0x51050 0x100000
+ write 0x1c0a90 0x522
+ write 0x1c0a9c 0x533
+ write 0x1c0aa0 0xc4e3fff
+ write 0x1c0aa4 0x522
+ write 0x1c0aa8 0x533
+ write 0x1c0aac 0xc4e3fff
+ write 0x51040 0x441
+ write 0x5104c 0x122
+ write 0x51050 0x0
+ write 0x51040 0x841
+ write 0x5104c 0x0
+ write 0x51050 0xef0000
+ write 0x1c0a90 0x523
+ write 0x1c0a9c 0x533
+ write 0x1c0aa0 0xc523fff
+ write 0x1c0aa4 0x523
+ write 0x1c0aa8 0x533
+ write 0x1c0aac 0xc523fff
+ write 0x51040 0x442
+ write 0x5104c 0x123
+ write 0x51050 0x0
+ write 0x51040 0x842
+ write 0x5104c 0x0
+ write 0x51050 0xd0000
+ write 0x1c0a90 0x524
+ write 0x1c0a9c 0x433
+ write 0x1c0aa0 0xdc22fff
+ write 0x1c0aa4 0x524
+ write 0x1c0aa8 0x433
+ write 0x1c0aac 0xdc22fff
+ write 0x51040 0x443
+ write 0x5104c 0x124
+ write 0x51050 0x0
+ write 0x51040 0x843
+ write 0x5104c 0x0
+ write 0x51050 0x60000
+ write 0x1c0a90 0x525
+ write 0x1c0a9c 0x423
+ write 0x1c0aa0 0xd8bffff
+ write 0x1c0aa4 0x525
+ write 0x1c0aa8 0x423
+ write 0x1c0aac 0xd8bffff
+ write 0x51040 0x444
+ write 0x5104c 0x125
+ write 0x51050 0x0
+ write 0x51040 0x844
+ write 0x5104c 0x0
+ write 0x51050 0x60000
+ write 0x1c0a90 0x526
+ write 0x1c0a9c 0x533
+ write 0x1c0aa0 0xd4a3fff
+ write 0x1c0aa4 0x526
+ write 0x1c0aa8 0x533
+ write 0x1c0aac 0xd4a3fff
+ write 0x51040 0x445
+ write 0x5104c 0x126
+ write 0x51050 0x0
+ write 0x51040 0x845
+ write 0x5104c 0x0
+ write 0x51050 0x280010
+ write 0x1c0a90 0x527
+ write 0x1c0a9c 0x533
+ write 0x1c0aa0 0xd023fff
+ write 0x1c0aa4 0x527
+ write 0x1c0aa8 0x533
+ write 0x1c0aac 0xd023fff
+ write 0x51040 0x446
+ write 0x5104c 0x127
+ write 0x51050 0x0
+ write 0x51040 0x846
+ write 0x5104c 0x0
+ write 0x51050 0x280010
+ write 0x1c0a90 0x528
+ write 0x1c0a9c 0x533
+ write 0x1c0aa0 0xd463fff
+ write 0x1c0aa4 0x528
+ write 0x1c0aa8 0x533
+ write 0x1c0aac 0xd463fff
+ write 0x51040 0x447
+ write 0x5104c 0x128
+ write 0x51050 0x0
+ write 0x51040 0x847
+ write 0x5104c 0x0
+ write 0x51050 0x280000
+ write 0x1c0a90 0x529
+ write 0x1c0a9c 0x533
+ write 0x1c0aa0 0xd4e3fff
+ write 0x1c0aa4 0x529
+ write 0x1c0aa8 0x533
+ write 0x1c0aac 0xd4e3fff
+ write 0x51040 0x448
+ write 0x5104c 0x129
+ write 0x51050 0x0
+ write 0x51040 0x848
+ write 0x5104c 0x0
+ write 0x51050 0x1080000
+ write 0x1c0a90 0x52a
+ write 0x1c0a9c 0x533
+ write 0x1c0aa0 0xd5e3fff
+ write 0x1c0aa4 0x52a
+ write 0x1c0aa8 0x533
+ write 0x1c0aac 0xd5e3fff
+ write 0x51040 0x449
+ write 0x5104c 0x12a
+ write 0x51050 0x0
+ write 0x51040 0x849
+ write 0x5104c 0x0
+ write 0x51050 0x60000
+ write 0x1c0a90 0x52b
+ write 0x1c0a9c 0x823
+ write 0x1c0aa0 0xf8bffff
+ write 0x1c0aa4 0x52b
+ write 0x1c0aa8 0x823
+ write 0x1c0aac 0xf8bffff
+ write 0x51040 0x44a
+ write 0x5104c 0x12b
+ write 0x51050 0x0
+ write 0x51040 0x84a
+ write 0x5104c 0x0
+ write 0x51050 0x50000
+ write 0x1c0a90 0x52c
+ write 0x1c0a9c 0x833
+ write 0x1c0aa0 0xfb22fff
+ write 0x1c0aa4 0x52c
+ write 0x1c0aa8 0x833
+ write 0x1c0aac 0xfb22fff
+ write 0x51040 0x44b
+ write 0x5104c 0x12c
+ write 0x51050 0x0
+ write 0x51040 0x84b
+ write 0x5104c 0x0
+ write 0x51050 0x180000
+ write 0x1c0a90 0x52d
+ write 0x1c0a9c 0x833
+ write 0x1c0aa0 0xf322fff
+ write 0x1c0aa4 0x52d
+ write 0x1c0aa8 0x833
+ write 0x1c0aac 0xf322fff
+ write 0x51040 0x44c
+ write 0x5104c 0x12d
+ write 0x51050 0x0
+ write 0x51040 0x84c
+ write 0x5104c 0x0
+ write 0x51050 0x180000
+ write 0x1c0a90 0x52e
+ write 0x1c0a9c 0x9c3
+ write 0x1c0aa0 0xf3128ff
+ write 0x1c0aa4 0x52e
+ write 0x1c0aa8 0x9c3
+ write 0x1c0aac 0xf3128ff
+ write 0x51040 0x44d
+ write 0x5104c 0x12e
+ write 0x51050 0x0
+ write 0x51040 0x84d
+ write 0x5104c 0x0
+ write 0x51050 0x1b0010
+ write 0x1c0a90 0x52f
+ write 0x1c0a9c 0x9c3
+ write 0x1c0aa0 0xf3008ff
+ write 0x1c0aa4 0x52f
+ write 0x1c0aa8 0x9c3
+ write 0x1c0aac 0xf3008ff
+ write 0x51040 0x44e
+ write 0x5104c 0x12f
+ write 0x51050 0x0
+ write 0x51040 0x84e
+ write 0x5104c 0x0
+ write 0x51050 0x1b0010
+ write 0x1c0a90 0x530
+ write 0x1c0a9c 0x9c3
+ write 0x1c0aa0 0xf3118ff
+ write 0x1c0aa4 0x530
+ write 0x1c0aa8 0x9c3
+ write 0x1c0aac 0xf3118ff
+ write 0x51040 0x44f
+ write 0x5104c 0x130
+ write 0x51050 0x0
+ write 0x51040 0x84f
+ write 0x5104c 0x0
+ write 0x51050 0x1b0000
+ write 0x1c0a90 0x531
+ write 0x1c0a9c 0x9c3
+ write 0x1c0aa0 0xf3138ff
+ write 0x1c0aa4 0x531
+ write 0x1c0aa8 0x9c3
+ write 0x1c0aac 0xf3138ff
+ write 0x51040 0x450
+ write 0x5104c 0x131
+ write 0x51050 0x0
+ write 0x51040 0x850
+ write 0x5104c 0x0
+ write 0x51050 0xf80000
+ write 0x1c0a90 0x532
+ write 0x1c0a9c 0x9c3
+ write 0x1c0aa0 0xf3148ff
+ write 0x1c0aa4 0x532
+ write 0x1c0aa8 0x9c3
+ write 0x1c0aac 0xf3148ff
+ write 0x51040 0x451
+ write 0x5104c 0x132
+ write 0x51050 0x0
+ write 0x51040 0x851
+ write 0x5104c 0x0
+ write 0x51050 0x180000
+ write 0x1c0a90 0x533
+ write 0x1c0a9c 0x843
+ write 0x1c0aa0 0xf3708bf
+ write 0x1c0aa4 0x533
+ write 0x1c0aa8 0x843
+ write 0x1c0aac 0xf3708bf
+ write 0x51040 0x452
+ write 0x5104c 0x133
+ write 0x51050 0x0
+ write 0x51040 0x852
+ write 0x5104c 0x0
+ write 0x51050 0x60000
+ write 0x1c0a90 0x534
+ write 0x1c0a9c 0x833
+ write 0x1c0aa0 0xf362fff
+ write 0x1c0aa4 0x534
+ write 0x1c0aa8 0x833
+ write 0x1c0aac 0xf362fff
+ write 0x51040 0x453
+ write 0x5104c 0x134
+ write 0x51050 0x0
+ write 0x51040 0x853
+ write 0x5104c 0x0
+ write 0x51050 0x60000
+ write 0x1c0a90 0x535
+ write 0x1c0a9c 0x9c3
+ write 0x1c0aa0 0xf3528ff
+ write 0x1c0aa4 0x535
+ write 0x1c0aa8 0x9c3
+ write 0x1c0aac 0xf3528ff
+ write 0x51040 0x454
+ write 0x5104c 0x135
+ write 0x51050 0x0
+ write 0x51040 0x854
+ write 0x5104c 0x0
+ write 0x51050 0x2f0010
+ write 0x1c0a90 0x536
+ write 0x1c0a9c 0x9c3
+ write 0x1c0aa0 0xf3408ff
+ write 0x1c0aa4 0x536
+ write 0x1c0aa8 0x9c3
+ write 0x1c0aac 0xf3408ff
+ write 0x51040 0x455
+ write 0x5104c 0x136
+ write 0x51050 0x0
+ write 0x51040 0x855
+ write 0x5104c 0x0
+ write 0x51050 0x2f0010
+ write 0x1c0a90 0x537
+ write 0x1c0a9c 0x9c3
+ write 0x1c0aa0 0xf3518ff
+ write 0x1c0aa4 0x537
+ write 0x1c0aa8 0x9c3
+ write 0x1c0aac 0xf3518ff
+ write 0x51040 0x456
+ write 0x5104c 0x137
+ write 0x51050 0x0
+ write 0x51040 0x856
+ write 0x5104c 0x0
+ write 0x51050 0x2f0000
+ write 0x1c0a90 0x538
+ write 0x1c0a9c 0x9c3
+ write 0x1c0aa0 0xf3538ff
+ write 0x1c0aa4 0x538
+ write 0x1c0aa8 0x9c3
+ write 0x1c0aac 0xf3538ff
+ write 0x51040 0x457
+ write 0x5104c 0x138
+ write 0x51050 0x0
+ write 0x51040 0x857
+ write 0x5104c 0x0
+ write 0x51050 0x1100000
+ write 0x1c0a90 0x539
+ write 0x1c0a9c 0x9c3
+ write 0x1c0aa0 0xf3578ff
+ write 0x1c0aa4 0x539
+ write 0x1c0aa8 0x9c3
+ write 0x1c0aac 0xf3578ff
+ write 0x51040 0x458
+ write 0x5104c 0x139
+ write 0x51050 0x0
+ write 0x51040 0x858
+ write 0x5104c 0x0
+ write 0x51050 0x60000
+ write 0x1c0a90 0x53a
+ write 0x1c0a9c 0x833
+ write 0x1c0aa0 0xf822fff
+ write 0x1c0aa4 0x53a
+ write 0x1c0aa8 0x833
+ write 0x1c0aac 0xf822fff
+ write 0x51040 0x459
+ write 0x5104c 0x13a
+ write 0x51050 0x0
+ write 0x51040 0x859
+ write 0x5104c 0x0
+ write 0x51050 0x50000
+ write 0x1c0a90 0x53b
+ write 0x1c0a9c 0x843
+ write 0x1c0aa0 0xf82c8bf
+ write 0x1c0aa4 0x53b
+ write 0x1c0aa8 0x843
+ write 0x1c0aac 0xf82c8bf
+ write 0x51040 0x45a
+ write 0x5104c 0x13b
+ write 0x51050 0x0
+ write 0x51040 0x85a
+ write 0x5104c 0x0
+ write 0x51050 0x360002
+ write 0x1c0a90 0x53c
+ write 0x1c0a9c 0x843
+ write 0x1c0aa0 0xf80c8bf
+ write 0x1c0aa4 0x53c
+ write 0x1c0aa8 0x843
+ write 0x1c0aac 0xf80c8bf
+ write 0x51040 0x45b
+ write 0x5104c 0x13c
+ write 0x51050 0x0
+ write 0x51040 0x85b
+ write 0x5104c 0x0
+ write 0x51050 0x360002
+ write 0x1c0a90 0x53d
+ write 0x1c0a9c 0xa53
+ write 0x1c0aa0 0xf80c4a3
+ write 0x1c0aa4 0x53d
+ write 0x1c0aa8 0xa53
+ write 0x1c0aac 0xf80c4a3
+ write 0x51040 0x45c
+ write 0x5104c 0x13d
+ write 0x51050 0x0
+ write 0x51040 0x85c
+ write 0x5104c 0x0
+ write 0x51050 0x390022
+ write 0x1c0a90 0x53e
+ write 0x1c0a9c 0xa53
+ write 0x1c0aa0 0xf80c023
+ write 0x1c0aa4 0x53e
+ write 0x1c0aa8 0xa53
+ write 0x1c0aac 0xf80c023
+ write 0x51040 0x45d
+ write 0x5104c 0x13e
+ write 0x51050 0x0
+ write 0x51040 0x85d
+ write 0x5104c 0x0
+ write 0x51050 0x390022
+ write 0x1c0a90 0x53f
+ write 0x1c0a9c 0xa53
+ write 0x1c0aa0 0xf80c463
+ write 0x1c0aa4 0x53f
+ write 0x1c0aa8 0xa53
+ write 0x1c0aac 0xf80c463
+ write 0x51040 0x45e
+ write 0x5104c 0x13f
+ write 0x51050 0x0
+ write 0x51040 0x85e
+ write 0x5104c 0x0
+ write 0x51050 0x390002
+ write 0x1c0a90 0x540
+ write 0x1c0a9c 0xa53
+ write 0x1c0aa0 0xf80c4e3
+ write 0x1c0aa4 0x540
+ write 0x1c0aa8 0xa53
+ write 0x1c0aac 0xf80c4e3
+ write 0x51040 0x45f
+ write 0x5104c 0x140
+ write 0x51050 0x0
+ write 0x51040 0x85f
+ write 0x5104c 0x0
+ write 0x51050 0x1180002
+ write 0x1c0a90 0x541
+ write 0x1c0a9c 0xa53
+ write 0x1c0aa0 0xf80c523
+ write 0x1c0aa4 0x541
+ write 0x1c0aa8 0xa53
+ write 0x1c0aac 0xf80c523
+ write 0x51040 0x460
+ write 0x5104c 0x141
+ write 0x51050 0x0
+ write 0x51040 0x860
+ write 0x5104c 0x0
+ write 0x51050 0x360002
+ write 0x1c0a90 0x542
+ write 0x1c0a9c 0x853
+ write 0x1c0aa0 0xf80dc22
+ write 0x1c0aa4 0x542
+ write 0x1c0aa8 0x853
+ write 0x1c0aac 0xf80dc22
+ write 0x51040 0x461
+ write 0x5104c 0x142
+ write 0x51050 0x0
+ write 0x51040 0x861
+ write 0x5104c 0x0
+ write 0x51050 0x60000
+ write 0x1c0a90 0x543
+ write 0x1c0a9c 0x843
+ write 0x1c0aa0 0xf80d8bf
+ write 0x1c0aa4 0x543
+ write 0x1c0aa8 0x843
+ write 0x1c0aac 0xf80d8bf
+ write 0x51040 0x462
+ write 0x5104c 0x143
+ write 0x51050 0x0
+ write 0x51040 0x862
+ write 0x5104c 0x0
+ write 0x51050 0x60000
+ write 0x1c0a90 0x544
+ write 0x1c0a9c 0xa53
+ write 0x1c0aa0 0xf80d4a3
+ write 0x1c0aa4 0x544
+ write 0x1c0aa8 0xa53
+ write 0x1c0aac 0xf80d4a3
+ write 0x51040 0x463
+ write 0x5104c 0x144
+ write 0x51050 0x0
+ write 0x51040 0x863
+ write 0x5104c 0x0
+ write 0x51050 0x410022
+ write 0x1c0a90 0x545
+ write 0x1c0a9c 0xa53
+ write 0x1c0aa0 0xf80d023
+ write 0x1c0aa4 0x545
+ write 0x1c0aa8 0xa53
+ write 0x1c0aac 0xf80d023
+ write 0x51040 0x464
+ write 0x5104c 0x145
+ write 0x51050 0x0
+ write 0x51040 0x864
+ write 0x5104c 0x0
+ write 0x51050 0x410022
+ write 0x1c0a90 0x546
+ write 0x1c0a9c 0xa53
+ write 0x1c0aa0 0xf80d463
+ write 0x1c0aa4 0x546
+ write 0x1c0aa8 0xa53
+ write 0x1c0aac 0xf80d463
+ write 0x51040 0x465
+ write 0x5104c 0x146
+ write 0x51050 0x0
+ write 0x51040 0x865
+ write 0x5104c 0x0
+ write 0x51050 0x410002
+ write 0x1c0a90 0x547
+ write 0x1c0a9c 0xa53
+ write 0x1c0aa0 0xf80d4e3
+ write 0x1c0aa4 0x547
+ write 0x1c0aa8 0xa53
+ write 0x1c0aac 0xf80d4e3
+ write 0x51040 0x466
+ write 0x5104c 0x147
+ write 0x51050 0x0
+ write 0x51040 0x866
+ write 0x5104c 0x0
+ write 0x51050 0x1220002
+ write 0x1c0a90 0x548
+ write 0x1c0a9c 0xa53
+ write 0x1c0aa0 0xf80d5e3
+ write 0x1c0aa4 0x548
+ write 0x1c0aa8 0xa53
+ write 0x1c0aac 0xf80d5e3
+ write 0x51040 0x467
+ write 0x5104c 0x148
+ write 0x51050 0x0
+ write 0x51040 0x867
+ write 0x5104c 0x0
+ write 0x51050 0x60000
+ write 0x1c0a90 0x549
+ write 0x1c0a9c 0x833
+ write 0x1c0aa0 0xf7e2fff
+ write 0x1c0aa4 0x549
+ write 0x1c0aa8 0x833
+ write 0x1c0aac 0xf7e2fff
+ write 0x51040 0x468
+ write 0x5104c 0x149
+ write 0x51050 0x0
+ write 0x51040 0x868
+ write 0x5104c 0x0
+ write 0x51050 0x50000
+ write 0x51040 0x469
+ write 0x5104c 0x149
+ write 0x51050 0x4000
+ write 0x51040 0x869
+ write 0x5104c 0x0
+ write 0x51050 0x12e0000
+ write 0x1c0a90 0x54a
+ write 0x1c0a9c 0x843
+ write 0x1c0aa0 0xf7ec8bf
+ write 0x1c0aa4 0x54a
+ write 0x1c0aa8 0x843
+ write 0x1c0aac 0xf7ec8bf
+ write 0x51040 0x46a
+ write 0x5104c 0x14a
+ write 0x51050 0x0
+ write 0x51040 0x86a
+ write 0x5104c 0x0
+ write 0x51050 0x360002
+ write 0x51040 0x46b
+ write 0x5104c 0x14a
+ write 0x51050 0x4000
+ write 0x51040 0x86b
+ write 0x5104c 0x0
+ write 0x51050 0x360000
+ write 0x1c0a90 0x54b
+ write 0x1c0a9c 0x843
+ write 0x1c0aa0 0xf7cc8bf
+ write 0x1c0aa4 0x54b
+ write 0x1c0aa8 0x843
+ write 0x1c0aac 0xf7cc8bf
+ write 0x51040 0x46c
+ write 0x5104c 0x14b
+ write 0x51050 0x0
+ write 0x51040 0x86c
+ write 0x5104c 0x0
+ write 0x51050 0x360002
+ write 0x51040 0x46d
+ write 0x5104c 0x14b
+ write 0x51050 0x4000
+ write 0x51040 0x86d
+ write 0x5104c 0x0
+ write 0x51050 0x360000
+ write 0x1c0a90 0x54c
+ write 0x1c0a9c 0xa53
+ write 0x1c0aa0 0xf7cc4a3
+ write 0x1c0aa4 0x54c
+ write 0x1c0aa8 0xa53
+ write 0x1c0aac 0xf7cc4a3
+ write 0x51040 0x46e
+ write 0x5104c 0x14c
+ write 0x51050 0x0
+ write 0x51040 0x86e
+ write 0x5104c 0x0
+ write 0x51050 0x390022
+ write 0x51040 0x46f
+ write 0x5104c 0x14c
+ write 0x51050 0x4000
+ write 0x51040 0x86f
+ write 0x5104c 0x0
+ write 0x51050 0x390020
+ write 0x1c0a90 0x54d
+ write 0x1c0a9c 0xa53
+ write 0x1c0aa0 0xf7cc023
+ write 0x1c0aa4 0x54d
+ write 0x1c0aa8 0xa53
+ write 0x1c0aac 0xf7cc023
+ write 0x51040 0x470
+ write 0x5104c 0x14d
+ write 0x51050 0x0
+ write 0x51040 0x870
+ write 0x5104c 0x0
+ write 0x51050 0x390022
+ write 0x51040 0x471
+ write 0x5104c 0x14d
+ write 0x51050 0x4000
+ write 0x51040 0x871
+ write 0x5104c 0x0
+ write 0x51050 0x390020
+ write 0x1c0a90 0x54e
+ write 0x1c0a9c 0xa53
+ write 0x1c0aa0 0xf7cc463
+ write 0x1c0aa4 0x54e
+ write 0x1c0aa8 0xa53
+ write 0x1c0aac 0xf7cc463
+ write 0x51040 0x472
+ write 0x5104c 0x14e
+ write 0x51050 0x0
+ write 0x51040 0x872
+ write 0x5104c 0x0
+ write 0x51050 0x390002
+ write 0x51040 0x473
+ write 0x5104c 0x14e
+ write 0x51050 0x4000
+ write 0x51040 0x873
+ write 0x5104c 0x0
+ write 0x51050 0x390000
+ write 0x1c0a90 0x54f
+ write 0x1c0a9c 0xa53
+ write 0x1c0aa0 0xf7cc4e3
+ write 0x1c0aa4 0x54f
+ write 0x1c0aa8 0xa53
+ write 0x1c0aac 0xf7cc4e3
+ write 0x51040 0x474
+ write 0x5104c 0x14f
+ write 0x51050 0x0
+ write 0x51040 0x874
+ write 0x5104c 0x0
+ write 0x51050 0x1180002
+ write 0x51040 0x475
+ write 0x5104c 0x14f
+ write 0x51050 0x4000
+ write 0x51040 0x875
+ write 0x5104c 0x0
+ write 0x51050 0x1180000
+ write 0x1c0a90 0x550
+ write 0x1c0a9c 0xa53
+ write 0x1c0aa0 0xf7cc523
+ write 0x1c0aa4 0x550
+ write 0x1c0aa8 0xa53
+ write 0x1c0aac 0xf7cc523
+ write 0x51040 0x476
+ write 0x5104c 0x150
+ write 0x51050 0x0
+ write 0x51040 0x876
+ write 0x5104c 0x0
+ write 0x51050 0x360002
+ write 0x51040 0x477
+ write 0x5104c 0x150
+ write 0x51050 0x4000
+ write 0x51040 0x877
+ write 0x5104c 0x0
+ write 0x51050 0x360000
+ write 0x1c0a90 0x551
+ write 0x1c0a9c 0x853
+ write 0x1c0aa0 0xf7cdc22
+ write 0x1c0aa4 0x551
+ write 0x1c0aa8 0x853
+ write 0x1c0aac 0xf7cdc22
+ write 0x51040 0x478
+ write 0x5104c 0x151
+ write 0x51050 0x0
+ write 0x51040 0x878
+ write 0x5104c 0x0
+ write 0x51050 0x60000
+ write 0x51040 0x479
+ write 0x5104c 0x151
+ write 0x51050 0x4000
+ write 0x51040 0x879
+ write 0x5104c 0x0
+ write 0x51050 0x12c0000
+ write 0x1c0a90 0x552
+ write 0x1c0a9c 0x843
+ write 0x1c0aa0 0xf7cd8bf
+ write 0x1c0aa4 0x552
+ write 0x1c0aa8 0x843
+ write 0x1c0aac 0xf7cd8bf
+ write 0x51040 0x47a
+ write 0x5104c 0x152
+ write 0x51050 0x0
+ write 0x51040 0x87a
+ write 0x5104c 0x0
+ write 0x51050 0x60000
+ write 0x51040 0x47b
+ write 0x5104c 0x152
+ write 0x51050 0x4000
+ write 0x51040 0x87b
+ write 0x5104c 0x0
+ write 0x51050 0x12c0000
+ write 0x1c0a90 0x553
+ write 0x1c0a9c 0xa53
+ write 0x1c0aa0 0xf7cd4a3
+ write 0x1c0aa4 0x553
+ write 0x1c0aa8 0xa53
+ write 0x1c0aac 0xf7cd4a3
+ write 0x51040 0x47c
+ write 0x5104c 0x153
+ write 0x51050 0x0
+ write 0x51040 0x87c
+ write 0x5104c 0x0
+ write 0x51050 0x410022
+ write 0x51040 0x47d
+ write 0x5104c 0x153
+ write 0x51050 0x4000
+ write 0x51040 0x87d
+ write 0x5104c 0x0
+ write 0x51050 0x410020
+ write 0x1c0a90 0x554
+ write 0x1c0a9c 0xa53
+ write 0x1c0aa0 0xf7cd023
+ write 0x1c0aa4 0x554
+ write 0x1c0aa8 0xa53
+ write 0x1c0aac 0xf7cd023
+ write 0x51040 0x47e
+ write 0x5104c 0x154
+ write 0x51050 0x0
+ write 0x51040 0x87e
+ write 0x5104c 0x0
+ write 0x51050 0x410022
+ write 0x51040 0x47f
+ write 0x5104c 0x154
+ write 0x51050 0x4000
+ write 0x51040 0x87f
+ write 0x5104c 0x0
+ write 0x51050 0x410020
+ write 0x1c0a90 0x555
+ write 0x1c0a9c 0xa53
+ write 0x1c0aa0 0xf7cd463
+ write 0x1c0aa4 0x555
+ write 0x1c0aa8 0xa53
+ write 0x1c0aac 0xf7cd463
+ write 0x51040 0x480
+ write 0x5104c 0x155
+ write 0x51050 0x0
+ write 0x51040 0x880
+ write 0x5104c 0x0
+ write 0x51050 0x410002
+ write 0x51040 0x481
+ write 0x5104c 0x155
+ write 0x51050 0x4000
+ write 0x51040 0x881
+ write 0x5104c 0x0
+ write 0x51050 0x410000
+ write 0x1c0a90 0x556
+ write 0x1c0a9c 0xa53
+ write 0x1c0aa0 0xf7cd4e3
+ write 0x1c0aa4 0x556
+ write 0x1c0aa8 0xa53
+ write 0x1c0aac 0xf7cd4e3
+ write 0x51040 0x482
+ write 0x5104c 0x156
+ write 0x51050 0x0
+ write 0x51040 0x882
+ write 0x5104c 0x0
+ write 0x51050 0x1220002
+ write 0x51040 0x483
+ write 0x5104c 0x156
+ write 0x51050 0x4000
+ write 0x51040 0x883
+ write 0x5104c 0x0
+ write 0x51050 0x1220000
+ write 0x1c0a90 0x557
+ write 0x1c0a9c 0xa53
+ write 0x1c0aa0 0xf7cd5e3
+ write 0x1c0aa4 0x557
+ write 0x1c0aa8 0xa53
+ write 0x1c0aac 0xf7cd5e3
+ write 0x51040 0x484
+ write 0x5104c 0x157
+ write 0x51050 0x0
+ write 0x51040 0x884
+ write 0x5104c 0x0
+ write 0x51050 0x60000
+ write 0x51040 0x485
+ write 0x5104c 0x157
+ write 0x51050 0x4000
+ write 0x51040 0x885
+ write 0x5104c 0x0
+ write 0x51050 0x12c0000
+ write 0x1c0a90 0x558
+ write 0x1c0a9c 0x23
+ write 0x1c0aa0 0x708bffff
+ write 0x1c0aa4 0x558
+ write 0x1c0aa8 0x23
+ write 0x1c0aac 0x708bffff
+ write 0x1c0a90 0x559
+ write 0x1c0a9c 0x13
+ write 0x1c0aa0 0x62ffffff
+ write 0x1c0aa4 0x559
+ write 0x1c0aa8 0x13
+ write 0x1c0aac 0x62ffffff
+ write 0x1c0a90 0x55a
+ write 0x1c0a9c 0xa3
+ write 0x1c0aa0 0x528fffff
+ write 0x1c0aa4 0x55a
+ write 0x1c0aa8 0xa3
+ write 0x1c0aac 0x528fffff
+ write 0x51040 0x486
+ write 0x5104c 0x15a
+ write 0x51050 0x0
+ write 0x51040 0x886
+ write 0x5104c 0x0
+ write 0x51050 0x220008
+ write 0x1c0a90 0x55b
+ write 0x1c0a9c 0xa3
+ write 0x1c0aa0 0x408fffff
+ write 0x1c0aa4 0x55b
+ write 0x1c0aa8 0xa3
+ write 0x1c0aac 0x408fffff
+ write 0x51040 0x487
+ write 0x5104c 0x15b
+ write 0x51050 0x0
+ write 0x51040 0x887
+ write 0x5104c 0x0
+ write 0x51050 0x220008
+ write 0x1c0a90 0x55c
+ write 0x1c0a9c 0xa3
+ write 0x1c0aa0 0x518fffff
+ write 0x1c0aa4 0x55c
+ write 0x1c0aa8 0xa3
+ write 0x1c0aac 0x518fffff
+ write 0x51040 0x488
+ write 0x5104c 0x15c
+ write 0x51050 0x0
+ write 0x51040 0x888
+ write 0x5104c 0x0
+ write 0x51050 0x220000
+ write 0x1c0a90 0x55d
+ write 0x1c0a9c 0xa3
+ write 0x1c0aa0 0x538fffff
+ write 0x1c0aa4 0x55d
+ write 0x1c0aa8 0xa3
+ write 0x1c0aac 0x538fffff
+ write 0x51040 0x489
+ write 0x5104c 0x15d
+ write 0x51050 0x0
+ write 0x51040 0x889
+ write 0x5104c 0x0
+ write 0x51050 0x1010000
+ write 0x1c0a90 0x55e
+ write 0x1c0a9c 0xa3
+ write 0x1c0aa0 0x578fffff
+ write 0x1c0aa4 0x55e
+ write 0x1c0aa8 0xa3
+ write 0x1c0aac 0x578fffff
+ write 0x1c0a90 0x55f
+ write 0x1c0a9c 0x423
+ write 0x1c0aa0 0x6c8bffff
+ write 0x1c0aa4 0x55f
+ write 0x1c0aa8 0x423
+ write 0x1c0aac 0x6c8bffff
+ write 0x51040 0x48a
+ write 0x5104c 0x15f
+ write 0x51050 0x0
+ write 0x51040 0x88a
+ write 0x5104c 0x0
+ write 0x51050 0xe0000
+ write 0x1c0a90 0x560
+ write 0x1c0a9c 0x423
+ write 0x1c0aa0 0x4c8bffff
+ write 0x1c0aa4 0x560
+ write 0x1c0aa8 0x423
+ write 0x1c0aac 0x4c8bffff
+ write 0x51040 0x48b
+ write 0x5104c 0x160
+ write 0x51050 0x0
+ write 0x51040 0x88b
+ write 0x5104c 0x0
+ write 0x51050 0xe0000
+ write 0x1c0a90 0x561
+ write 0x1c0a9c 0x533
+ write 0x1c0aa0 0x4c4a3fff
+ write 0x1c0aa4 0x561
+ write 0x1c0aa8 0x533
+ write 0x1c0aac 0x4c4a3fff
+ write 0x51040 0x48c
+ write 0x5104c 0x161
+ write 0x51050 0x0
+ write 0x51040 0x88c
+ write 0x5104c 0x0
+ write 0x51050 0x110008
+ write 0x1c0a90 0x562
+ write 0x1c0a9c 0x533
+ write 0x1c0aa0 0x4c023fff
+ write 0x1c0aa4 0x562
+ write 0x1c0aa8 0x533
+ write 0x1c0aac 0x4c023fff
+ write 0x51040 0x48d
+ write 0x5104c 0x162
+ write 0x51050 0x0
+ write 0x51040 0x88d
+ write 0x5104c 0x0
+ write 0x51050 0x110008
+ write 0x1c0a90 0x563
+ write 0x1c0a9c 0x533
+ write 0x1c0aa0 0x4c463fff
+ write 0x1c0aa4 0x563
+ write 0x1c0aa8 0x533
+ write 0x1c0aac 0x4c463fff
+ write 0x51040 0x48e
+ write 0x5104c 0x163
+ write 0x51050 0x0
+ write 0x51040 0x88e
+ write 0x5104c 0x0
+ write 0x51050 0x110000
+ write 0x1c0a90 0x564
+ write 0x1c0a9c 0x533
+ write 0x1c0aa0 0x4c4e3fff
+ write 0x1c0aa4 0x564
+ write 0x1c0aa8 0x533
+ write 0x1c0aac 0x4c4e3fff
+ write 0x51040 0x48f
+ write 0x5104c 0x164
+ write 0x51050 0x0
+ write 0x51040 0x88f
+ write 0x5104c 0x0
+ write 0x51050 0xf00000
+ write 0x1c0a90 0x565
+ write 0x1c0a9c 0x533
+ write 0x1c0aa0 0x4c523fff
+ write 0x1c0aa4 0x565
+ write 0x1c0aa8 0x533
+ write 0x1c0aac 0x4c523fff
+ write 0x51040 0x490
+ write 0x5104c 0x165
+ write 0x51050 0x0
+ write 0x51040 0x890
+ write 0x5104c 0x0
+ write 0x51050 0xe0000
+ write 0x1c0a90 0x566
+ write 0x1c0a9c 0x433
+ write 0x1c0aa0 0x4dc22fff
+ write 0x1c0aa4 0x566
+ write 0x1c0aa8 0x433
+ write 0x1c0aac 0x4dc22fff
+ write 0x1c0a90 0x567
+ write 0x1c0a9c 0x423
+ write 0x1c0aa0 0x4d8bffff
+ write 0x1c0aa4 0x567
+ write 0x1c0aa8 0x423
+ write 0x1c0aac 0x4d8bffff
+ write 0x1c0a90 0x568
+ write 0x1c0a9c 0x533
+ write 0x1c0aa0 0x4d4a3fff
+ write 0x1c0aa4 0x568
+ write 0x1c0aa8 0x533
+ write 0x1c0aac 0x4d4a3fff
+ write 0x51040 0x491
+ write 0x5104c 0x168
+ write 0x51050 0x0
+ write 0x51040 0x891
+ write 0x5104c 0x0
+ write 0x51050 0x290008
+ write 0x1c0a90 0x569
+ write 0x1c0a9c 0x533
+ write 0x1c0aa0 0x4d023fff
+ write 0x1c0aa4 0x569
+ write 0x1c0aa8 0x533
+ write 0x1c0aac 0x4d023fff
+ write 0x51040 0x492
+ write 0x5104c 0x169
+ write 0x51050 0x0
+ write 0x51040 0x892
+ write 0x5104c 0x0
+ write 0x51050 0x290008
+ write 0x1c0a90 0x56a
+ write 0x1c0a9c 0x533
+ write 0x1c0aa0 0x4d463fff
+ write 0x1c0aa4 0x56a
+ write 0x1c0aa8 0x533
+ write 0x1c0aac 0x4d463fff
+ write 0x51040 0x493
+ write 0x5104c 0x16a
+ write 0x51050 0x0
+ write 0x51040 0x893
+ write 0x5104c 0x0
+ write 0x51050 0x290000
+ write 0x1c0a90 0x56b
+ write 0x1c0a9c 0x533
+ write 0x1c0aa0 0x4d4e3fff
+ write 0x1c0aa4 0x56b
+ write 0x1c0aa8 0x533
+ write 0x1c0aac 0x4d4e3fff
+ write 0x51040 0x494
+ write 0x5104c 0x16b
+ write 0x51050 0x0
+ write 0x51040 0x894
+ write 0x5104c 0x0
+ write 0x51050 0x1090000
+ write 0x1c0a90 0x56c
+ write 0x1c0a9c 0x533
+ write 0x1c0aa0 0x4d5e3fff
+ write 0x1c0aa4 0x56c
+ write 0x1c0aa8 0x533
+ write 0x1c0aac 0x4d5e3fff
+ write 0x1c0a90 0x56d
+ write 0x1c0a9c 0x823
+ write 0x1c0aa0 0x4f8bffff
+ write 0x1c0aa4 0x56d
+ write 0x1c0aa8 0x823
+ write 0x1c0aac 0x4f8bffff
+ write 0x1c0a90 0x56e
+ write 0x1c0a9c 0x833
+ write 0x1c0aa0 0x4fb22fff
+ write 0x1c0aa4 0x56e
+ write 0x1c0aa8 0x833
+ write 0x1c0aac 0x4fb22fff
+ write 0x51040 0x495
+ write 0x5104c 0x16e
+ write 0x51050 0x0
+ write 0x51040 0x895
+ write 0x5104c 0x0
+ write 0x51050 0x190000
+ write 0x1c0a90 0x56f
+ write 0x1c0a9c 0x833
+ write 0x1c0aa0 0x4f322fff
+ write 0x1c0aa4 0x56f
+ write 0x1c0aa8 0x833
+ write 0x1c0aac 0x4f322fff
+ write 0x51040 0x496
+ write 0x5104c 0x16f
+ write 0x51050 0x0
+ write 0x51040 0x896
+ write 0x5104c 0x0
+ write 0x51050 0x190000
+ write 0x1c0a90 0x570
+ write 0x1c0a9c 0x9c3
+ write 0x1c0aa0 0x4f3128ff
+ write 0x1c0aa4 0x570
+ write 0x1c0aa8 0x9c3
+ write 0x1c0aac 0x4f3128ff
+ write 0x51040 0x497
+ write 0x5104c 0x170
+ write 0x51050 0x0
+ write 0x51040 0x897
+ write 0x5104c 0x0
+ write 0x51050 0x1c0008
+ write 0x1c0a90 0x571
+ write 0x1c0a9c 0x9c3
+ write 0x1c0aa0 0x4f3008ff
+ write 0x1c0aa4 0x571
+ write 0x1c0aa8 0x9c3
+ write 0x1c0aac 0x4f3008ff
+ write 0x51040 0x498
+ write 0x5104c 0x171
+ write 0x51050 0x0
+ write 0x51040 0x898
+ write 0x5104c 0x0
+ write 0x51050 0x1c0008
+ write 0x1c0a90 0x572
+ write 0x1c0a9c 0x9c3
+ write 0x1c0aa0 0x4f3118ff
+ write 0x1c0aa4 0x572
+ write 0x1c0aa8 0x9c3
+ write 0x1c0aac 0x4f3118ff
+ write 0x51040 0x499
+ write 0x5104c 0x172
+ write 0x51050 0x0
+ write 0x51040 0x899
+ write 0x5104c 0x0
+ write 0x51050 0x1c0000
+ write 0x1c0a90 0x573
+ write 0x1c0a9c 0x9c3
+ write 0x1c0aa0 0x4f3138ff
+ write 0x1c0aa4 0x573
+ write 0x1c0aa8 0x9c3
+ write 0x1c0aac 0x4f3138ff
+ write 0x51040 0x49a
+ write 0x5104c 0x173
+ write 0x51050 0x0
+ write 0x51040 0x89a
+ write 0x5104c 0x0
+ write 0x51050 0xf90000
+ write 0x1c0a90 0x574
+ write 0x1c0a9c 0x9c3
+ write 0x1c0aa0 0x4f3148ff
+ write 0x1c0aa4 0x574
+ write 0x1c0aa8 0x9c3
+ write 0x1c0aac 0x4f3148ff
+ write 0x51040 0x49b
+ write 0x5104c 0x174
+ write 0x51050 0x0
+ write 0x51040 0x89b
+ write 0x5104c 0x0
+ write 0x51050 0x190000
+ write 0x1c0a90 0x575
+ write 0x1c0a9c 0x843
+ write 0x1c0aa0 0x4f3708bf
+ write 0x1c0aa4 0x575
+ write 0x1c0aa8 0x843
+ write 0x1c0aac 0x4f3708bf
+ write 0x1c0a90 0x576
+ write 0x1c0a9c 0x833
+ write 0x1c0aa0 0x4f362fff
+ write 0x1c0aa4 0x576
+ write 0x1c0aa8 0x833
+ write 0x1c0aac 0x4f362fff
+ write 0x1c0a90 0x577
+ write 0x1c0a9c 0x9c3
+ write 0x1c0aa0 0x4f3528ff
+ write 0x1c0aa4 0x577
+ write 0x1c0aa8 0x9c3
+ write 0x1c0aac 0x4f3528ff
+ write 0x51040 0x49c
+ write 0x5104c 0x177
+ write 0x51050 0x0
+ write 0x51040 0x89c
+ write 0x5104c 0x0
+ write 0x51050 0x300008
+ write 0x1c0a90 0x578
+ write 0x1c0a9c 0x9c3
+ write 0x1c0aa0 0x4f3408ff
+ write 0x1c0aa4 0x578
+ write 0x1c0aa8 0x9c3
+ write 0x1c0aac 0x4f3408ff
+ write 0x51040 0x49d
+ write 0x5104c 0x178
+ write 0x51050 0x0
+ write 0x51040 0x89d
+ write 0x5104c 0x0
+ write 0x51050 0x300008
+ write 0x1c0a90 0x579
+ write 0x1c0a9c 0x9c3
+ write 0x1c0aa0 0x4f3518ff
+ write 0x1c0aa4 0x579
+ write 0x1c0aa8 0x9c3
+ write 0x1c0aac 0x4f3518ff
+ write 0x51040 0x49e
+ write 0x5104c 0x179
+ write 0x51050 0x0
+ write 0x51040 0x89e
+ write 0x5104c 0x0
+ write 0x51050 0x300000
+ write 0x1c0a90 0x57a
+ write 0x1c0a9c 0x9c3
+ write 0x1c0aa0 0x4f3538ff
+ write 0x1c0aa4 0x57a
+ write 0x1c0aa8 0x9c3
+ write 0x1c0aac 0x4f3538ff
+ write 0x51040 0x49f
+ write 0x5104c 0x17a
+ write 0x51050 0x0
+ write 0x51040 0x89f
+ write 0x5104c 0x0
+ write 0x51050 0x1110000
+ write 0x1c0a90 0x57b
+ write 0x1c0a9c 0x9c3
+ write 0x1c0aa0 0x4f3578ff
+ write 0x1c0aa4 0x57b
+ write 0x1c0aa8 0x9c3
+ write 0x1c0aac 0x4f3578ff
+ write 0x1c0a90 0x57c
+ write 0x1c0a9c 0x833
+ write 0x1c0aa0 0x4f822fff
+ write 0x1c0aa4 0x57c
+ write 0x1c0aa8 0x833
+ write 0x1c0aac 0x4f822fff
+ write 0x1c0a90 0x57d
+ write 0x1c0a9c 0x843
+ write 0x1c0aa0 0x4f82c8bf
+ write 0x1c0aa4 0x57d
+ write 0x1c0aa8 0x843
+ write 0x1c0aac 0x4f82c8bf
+ write 0x51040 0x4a0
+ write 0x5104c 0x17d
+ write 0x51050 0x0
+ write 0x51040 0x8a0
+ write 0x5104c 0x0
+ write 0x51050 0x370001
+ write 0x1c0a90 0x57e
+ write 0x1c0a9c 0x843
+ write 0x1c0aa0 0x4f80c8bf
+ write 0x1c0aa4 0x57e
+ write 0x1c0aa8 0x843
+ write 0x1c0aac 0x4f80c8bf
+ write 0x51040 0x4a1
+ write 0x5104c 0x17e
+ write 0x51050 0x0
+ write 0x51040 0x8a1
+ write 0x5104c 0x0
+ write 0x51050 0x370001
+ write 0x1c0a90 0x57f
+ write 0x1c0a9c 0xa53
+ write 0x1c0aa0 0x4f80c4a3
+ write 0x1c0aa4 0x57f
+ write 0x1c0aa8 0xa53
+ write 0x1c0aac 0x4f80c4a3
+ write 0x51040 0x4a2
+ write 0x5104c 0x17f
+ write 0x51050 0x0
+ write 0x51040 0x8a2
+ write 0x5104c 0x0
+ write 0x51050 0x3a0011
+ write 0x1c0a90 0x580
+ write 0x1c0a9c 0xa53
+ write 0x1c0aa0 0x4f80c023
+ write 0x1c0aa4 0x580
+ write 0x1c0aa8 0xa53
+ write 0x1c0aac 0x4f80c023
+ write 0x51040 0x4a3
+ write 0x5104c 0x180
+ write 0x51050 0x0
+ write 0x51040 0x8a3
+ write 0x5104c 0x0
+ write 0x51050 0x3a0011
+ write 0x1c0a90 0x581
+ write 0x1c0a9c 0xa53
+ write 0x1c0aa0 0x4f80c463
+ write 0x1c0aa4 0x581
+ write 0x1c0aa8 0xa53
+ write 0x1c0aac 0x4f80c463
+ write 0x51040 0x4a4
+ write 0x5104c 0x181
+ write 0x51050 0x0
+ write 0x51040 0x8a4
+ write 0x5104c 0x0
+ write 0x51050 0x3a0001
+ write 0x1c0a90 0x582
+ write 0x1c0a9c 0xa53
+ write 0x1c0aa0 0x4f80c4e3
+ write 0x1c0aa4 0x582
+ write 0x1c0aa8 0xa53
+ write 0x1c0aac 0x4f80c4e3
+ write 0x51040 0x4a5
+ write 0x5104c 0x182
+ write 0x51050 0x0
+ write 0x51040 0x8a5
+ write 0x5104c 0x0
+ write 0x51050 0x1190001
+ write 0x1c0a90 0x583
+ write 0x1c0a9c 0xa53
+ write 0x1c0aa0 0x4f80c523
+ write 0x1c0aa4 0x583
+ write 0x1c0aa8 0xa53
+ write 0x1c0aac 0x4f80c523
+ write 0x51040 0x4a6
+ write 0x5104c 0x183
+ write 0x51050 0x0
+ write 0x51040 0x8a6
+ write 0x5104c 0x0
+ write 0x51050 0x370001
+ write 0x1c0a90 0x584
+ write 0x1c0a9c 0x853
+ write 0x1c0aa0 0x4f80dc22
+ write 0x1c0aa4 0x584
+ write 0x1c0aa8 0x853
+ write 0x1c0aac 0x4f80dc22
+ write 0x1c0a90 0x585
+ write 0x1c0a9c 0x843
+ write 0x1c0aa0 0x4f80d8bf
+ write 0x1c0aa4 0x585
+ write 0x1c0aa8 0x843
+ write 0x1c0aac 0x4f80d8bf
+ write 0x1c0a90 0x586
+ write 0x1c0a9c 0xa53
+ write 0x1c0aa0 0x4f80d4a3
+ write 0x1c0aa4 0x586
+ write 0x1c0aa8 0xa53
+ write 0x1c0aac 0x4f80d4a3
+ write 0x51040 0x4a7
+ write 0x5104c 0x186
+ write 0x51050 0x0
+ write 0x51040 0x8a7
+ write 0x5104c 0x0
+ write 0x51050 0x420011
+ write 0x1c0a90 0x587
+ write 0x1c0a9c 0xa53
+ write 0x1c0aa0 0x4f80d023
+ write 0x1c0aa4 0x587
+ write 0x1c0aa8 0xa53
+ write 0x1c0aac 0x4f80d023
+ write 0x51040 0x4a8
+ write 0x5104c 0x187
+ write 0x51050 0x0
+ write 0x51040 0x8a8
+ write 0x5104c 0x0
+ write 0x51050 0x420011
+ write 0x1c0a90 0x588
+ write 0x1c0a9c 0xa53
+ write 0x1c0aa0 0x4f80d463
+ write 0x1c0aa4 0x588
+ write 0x1c0aa8 0xa53
+ write 0x1c0aac 0x4f80d463
+ write 0x51040 0x4a9
+ write 0x5104c 0x188
+ write 0x51050 0x0
+ write 0x51040 0x8a9
+ write 0x5104c 0x0
+ write 0x51050 0x420001
+ write 0x1c0a90 0x589
+ write 0x1c0a9c 0xa53
+ write 0x1c0aa0 0x4f80d4e3
+ write 0x1c0aa4 0x589
+ write 0x1c0aa8 0xa53
+ write 0x1c0aac 0x4f80d4e3
+ write 0x51040 0x4aa
+ write 0x5104c 0x189
+ write 0x51050 0x0
+ write 0x51040 0x8aa
+ write 0x5104c 0x0
+ write 0x51050 0x1230001
+ write 0x1c0a90 0x58a
+ write 0x1c0a9c 0xa53
+ write 0x1c0aa0 0x4f80d5e3
+ write 0x1c0aa4 0x58a
+ write 0x1c0aa8 0xa53
+ write 0x1c0aac 0x4f80d5e3
+ write 0x1c0a90 0x58b
+ write 0x1c0a9c 0x833
+ write 0x1c0aa0 0x4f7e2fff
+ write 0x1c0aa4 0x58b
+ write 0x1c0aa8 0x833
+ write 0x1c0aac 0x4f7e2fff
+ write 0x51040 0x4ab
+ write 0x5104c 0x18b
+ write 0x51050 0x4000
+ write 0x51040 0x8ab
+ write 0x5104c 0x0
+ write 0x51050 0x12b0000
+ write 0x1c0a90 0x58c
+ write 0x1c0a9c 0x843
+ write 0x1c0aa0 0x4f7ec8bf
+ write 0x1c0aa4 0x58c
+ write 0x1c0aa8 0x843
+ write 0x1c0aac 0x4f7ec8bf
+ write 0x51040 0x4ac
+ write 0x5104c 0x18c
+ write 0x51050 0x0
+ write 0x51040 0x8ac
+ write 0x5104c 0x0
+ write 0x51050 0x370001
+ write 0x51040 0x4ad
+ write 0x5104c 0x18c
+ write 0x51050 0x4000
+ write 0x51040 0x8ad
+ write 0x5104c 0x0
+ write 0x51050 0x370000
+ write 0x1c0a90 0x58d
+ write 0x1c0a9c 0x843
+ write 0x1c0aa0 0x4f7cc8bf
+ write 0x1c0aa4 0x58d
+ write 0x1c0aa8 0x843
+ write 0x1c0aac 0x4f7cc8bf
+ write 0x51040 0x4ae
+ write 0x5104c 0x18d
+ write 0x51050 0x0
+ write 0x51040 0x8ae
+ write 0x5104c 0x0
+ write 0x51050 0x370001
+ write 0x51040 0x4af
+ write 0x5104c 0x18d
+ write 0x51050 0x4000
+ write 0x51040 0x8af
+ write 0x5104c 0x0
+ write 0x51050 0x370000
+ write 0x1c0a90 0x58e
+ write 0x1c0a9c 0xa53
+ write 0x1c0aa0 0x4f7cc4a3
+ write 0x1c0aa4 0x58e
+ write 0x1c0aa8 0xa53
+ write 0x1c0aac 0x4f7cc4a3
+ write 0x51040 0x4b0
+ write 0x5104c 0x18e
+ write 0x51050 0x0
+ write 0x51040 0x8b0
+ write 0x5104c 0x0
+ write 0x51050 0x3a0011
+ write 0x51040 0x4b1
+ write 0x5104c 0x18e
+ write 0x51050 0x4000
+ write 0x51040 0x8b1
+ write 0x5104c 0x0
+ write 0x51050 0x3a0010
+ write 0x1c0a90 0x58f
+ write 0x1c0a9c 0xa53
+ write 0x1c0aa0 0x4f7cc023
+ write 0x1c0aa4 0x58f
+ write 0x1c0aa8 0xa53
+ write 0x1c0aac 0x4f7cc023
+ write 0x51040 0x4b2
+ write 0x5104c 0x18f
+ write 0x51050 0x0
+ write 0x51040 0x8b2
+ write 0x5104c 0x0
+ write 0x51050 0x3a0011
+ write 0x51040 0x4b3
+ write 0x5104c 0x18f
+ write 0x51050 0x4000
+ write 0x51040 0x8b3
+ write 0x5104c 0x0
+ write 0x51050 0x3a0010
+ write 0x1c0a90 0x590
+ write 0x1c0a9c 0xa53
+ write 0x1c0aa0 0x4f7cc463
+ write 0x1c0aa4 0x590
+ write 0x1c0aa8 0xa53
+ write 0x1c0aac 0x4f7cc463
+ write 0x51040 0x4b4
+ write 0x5104c 0x190
+ write 0x51050 0x0
+ write 0x51040 0x8b4
+ write 0x5104c 0x0
+ write 0x51050 0x3a0001
+ write 0x51040 0x4b5
+ write 0x5104c 0x190
+ write 0x51050 0x4000
+ write 0x51040 0x8b5
+ write 0x5104c 0x0
+ write 0x51050 0x3a0000
+ write 0x1c0a90 0x591
+ write 0x1c0a9c 0xa53
+ write 0x1c0aa0 0x4f7cc4e3
+ write 0x1c0aa4 0x591
+ write 0x1c0aa8 0xa53
+ write 0x1c0aac 0x4f7cc4e3
+ write 0x51040 0x4b6
+ write 0x5104c 0x191
+ write 0x51050 0x0
+ write 0x51040 0x8b6
+ write 0x5104c 0x0
+ write 0x51050 0x1190001
+ write 0x51040 0x4b7
+ write 0x5104c 0x191
+ write 0x51050 0x4000
+ write 0x51040 0x8b7
+ write 0x5104c 0x0
+ write 0x51050 0x1190000
+ write 0x1c0a90 0x592
+ write 0x1c0a9c 0xa53
+ write 0x1c0aa0 0x4f7cc523
+ write 0x1c0aa4 0x592
+ write 0x1c0aa8 0xa53
+ write 0x1c0aac 0x4f7cc523
+ write 0x51040 0x4b8
+ write 0x5104c 0x192
+ write 0x51050 0x0
+ write 0x51040 0x8b8
+ write 0x5104c 0x0
+ write 0x51050 0x370001
+ write 0x51040 0x4b9
+ write 0x5104c 0x192
+ write 0x51050 0x4000
+ write 0x51040 0x8b9
+ write 0x5104c 0x0
+ write 0x51050 0x370000
+ write 0x1c0a90 0x593
+ write 0x1c0a9c 0x853
+ write 0x1c0aa0 0x4f7cdc22
+ write 0x1c0aa4 0x593
+ write 0x1c0aa8 0x853
+ write 0x1c0aac 0x4f7cdc22
+ write 0x51040 0x4ba
+ write 0x5104c 0x193
+ write 0x51050 0x4000
+ write 0x51040 0x8ba
+ write 0x5104c 0x0
+ write 0x51050 0x12b0010
+ write 0x1c0a90 0x594
+ write 0x1c0a9c 0x843
+ write 0x1c0aa0 0x4f7cd8bf
+ write 0x1c0aa4 0x594
+ write 0x1c0aa8 0x843
+ write 0x1c0aac 0x4f7cd8bf
+ write 0x51040 0x4bb
+ write 0x5104c 0x194
+ write 0x51050 0x4000
+ write 0x51040 0x8bb
+ write 0x5104c 0x0
+ write 0x51050 0x12b0010
+ write 0x1c0a90 0x595
+ write 0x1c0a9c 0xa53
+ write 0x1c0aa0 0x4f7cd4a3
+ write 0x1c0aa4 0x595
+ write 0x1c0aa8 0xa53
+ write 0x1c0aac 0x4f7cd4a3
+ write 0x51040 0x4bc
+ write 0x5104c 0x195
+ write 0x51050 0x0
+ write 0x51040 0x8bc
+ write 0x5104c 0x0
+ write 0x51050 0x420011
+ write 0x51040 0x4bd
+ write 0x5104c 0x195
+ write 0x51050 0x4000
+ write 0x51040 0x8bd
+ write 0x5104c 0x0
+ write 0x51050 0x420010
+ write 0x1c0a90 0x596
+ write 0x1c0a9c 0xa53
+ write 0x1c0aa0 0x4f7cd023
+ write 0x1c0aa4 0x596
+ write 0x1c0aa8 0xa53
+ write 0x1c0aac 0x4f7cd023
+ write 0x51040 0x4be
+ write 0x5104c 0x196
+ write 0x51050 0x0
+ write 0x51040 0x8be
+ write 0x5104c 0x0
+ write 0x51050 0x420011
+ write 0x51040 0x4bf
+ write 0x5104c 0x196
+ write 0x51050 0x4000
+ write 0x51040 0x8bf
+ write 0x5104c 0x0
+ write 0x51050 0x420010
+ write 0x1c0a90 0x597
+ write 0x1c0a9c 0xa53
+ write 0x1c0aa0 0x4f7cd463
+ write 0x1c0aa4 0x597
+ write 0x1c0aa8 0xa53
+ write 0x1c0aac 0x4f7cd463
+ write 0x51040 0x4c0
+ write 0x5104c 0x197
+ write 0x51050 0x0
+ write 0x51040 0x8c0
+ write 0x5104c 0x0
+ write 0x51050 0x420001
+ write 0x51040 0x4c1
+ write 0x5104c 0x197
+ write 0x51050 0x4000
+ write 0x51040 0x8c1
+ write 0x5104c 0x0
+ write 0x51050 0x420000
+ write 0x1c0a90 0x598
+ write 0x1c0a9c 0xa53
+ write 0x1c0aa0 0x4f7cd4e3
+ write 0x1c0aa4 0x598
+ write 0x1c0aa8 0xa53
+ write 0x1c0aac 0x4f7cd4e3
+ write 0x51040 0x4c2
+ write 0x5104c 0x198
+ write 0x51050 0x0
+ write 0x51040 0x8c2
+ write 0x5104c 0x0
+ write 0x51050 0x1230001
+ write 0x51040 0x4c3
+ write 0x5104c 0x198
+ write 0x51050 0x4000
+ write 0x51040 0x8c3
+ write 0x5104c 0x0
+ write 0x51050 0x1230000
+ write 0x1c0a90 0x599
+ write 0x1c0a9c 0xa53
+ write 0x1c0aa0 0x4f7cd5e3
+ write 0x1c0aa4 0x599
+ write 0x1c0aa8 0xa53
+ write 0x1c0aac 0x4f7cd5e3
+ write 0x51040 0x4c4
+ write 0x5104c 0x199
+ write 0x51050 0x4000
+ write 0x51040 0x8c4
+ write 0x5104c 0x0
+ write 0x51050 0x12b0000
+ write 0x1c0a90 0x59a
+ write 0x1c0a9c 0x411
+ write 0x1c0aa0 0xe1ffffff
+ write 0x1c0aa4 0x59a
+ write 0x1c0aa8 0x411
+ write 0x1c0aac 0xe1ffffff
+ write 0x1c0a90 0x59b
+ write 0x1c0a9c 0x421
+ write 0x1c0aa0 0xec8bffff
+ write 0x1c0aa4 0x59b
+ write 0x1c0aa8 0x421
+ write 0x1c0aac 0xec8bffff
+ write 0x51040 0x4c5
+ write 0x5104c 0x19b
+ write 0x51050 0x0
+ write 0x51040 0x8c5
+ write 0x5104c 0x0
+ write 0x51050 0xe0000
+ write 0x1c0a90 0x59c
+ write 0x1c0a9c 0x421
+ write 0x1c0aa0 0xcc8bffff
+ write 0x1c0aa4 0x59c
+ write 0x1c0aa8 0x421
+ write 0x1c0aac 0xcc8bffff
+ write 0x51040 0x4c6
+ write 0x5104c 0x19c
+ write 0x51050 0x0
+ write 0x51040 0x8c6
+ write 0x5104c 0x0
+ write 0x51050 0xe0000
+ write 0x1c0a90 0x59d
+ write 0x1c0a9c 0x531
+ write 0x1c0aa0 0xcc4a3fff
+ write 0x1c0aa4 0x59d
+ write 0x1c0aa8 0x531
+ write 0x1c0aac 0xcc4a3fff
+ write 0x51040 0x4c7
+ write 0x5104c 0x19d
+ write 0x51050 0x0
+ write 0x51040 0x8c7
+ write 0x5104c 0x0
+ write 0x51050 0x110008
+ write 0x1c0a90 0x59e
+ write 0x1c0a9c 0x531
+ write 0x1c0aa0 0xcc463fff
+ write 0x1c0aa4 0x59e
+ write 0x1c0aa8 0x531
+ write 0x1c0aac 0xcc463fff
+ write 0x51040 0x4c8
+ write 0x5104c 0x19e
+ write 0x51050 0x0
+ write 0x51040 0x8c8
+ write 0x5104c 0x0
+ write 0x51050 0x110000
+ write 0x1c0a90 0x59f
+ write 0x1c0a9c 0x531
+ write 0x1c0aa0 0xcc4e3fff
+ write 0x1c0aa4 0x59f
+ write 0x1c0aa8 0x531
+ write 0x1c0aac 0xcc4e3fff
+ write 0x51040 0x4c9
+ write 0x5104c 0x19f
+ write 0x51050 0x0
+ write 0x51040 0x8c9
+ write 0x5104c 0x0
+ write 0x51050 0xf00000
+ write 0x1c0a90 0x5a0
+ write 0x1c0a9c 0x531
+ write 0x1c0aa0 0xcc523fff
+ write 0x1c0aa4 0x5a0
+ write 0x1c0aa8 0x531
+ write 0x1c0aac 0xcc523fff
+ write 0x51040 0x4ca
+ write 0x5104c 0x1a0
+ write 0x51050 0x0
+ write 0x51040 0x8ca
+ write 0x5104c 0x0
+ write 0x51050 0xe0000
+ write 0x1c0a90 0x5a1
+ write 0x1c0a9c 0x431
+ write 0x1c0aa0 0xcdc22fff
+ write 0x1c0aa4 0x5a1
+ write 0x1c0aa8 0x431
+ write 0x1c0aac 0xcdc22fff
+ write 0x1c0a90 0x5a2
+ write 0x1c0a9c 0x421
+ write 0x1c0aa0 0xcd8bffff
+ write 0x1c0aa4 0x5a2
+ write 0x1c0aa8 0x421
+ write 0x1c0aac 0xcd8bffff
+ write 0x1c0a90 0x5a3
+ write 0x1c0a9c 0x531
+ write 0x1c0aa0 0xcd4a3fff
+ write 0x1c0aa4 0x5a3
+ write 0x1c0aa8 0x531
+ write 0x1c0aac 0xcd4a3fff
+ write 0x51040 0x4cb
+ write 0x5104c 0x1a3
+ write 0x51050 0x0
+ write 0x51040 0x8cb
+ write 0x5104c 0x0
+ write 0x51050 0x290008
+ write 0x1c0a90 0x5a4
+ write 0x1c0a9c 0x531
+ write 0x1c0aa0 0xcd463fff
+ write 0x1c0aa4 0x5a4
+ write 0x1c0aa8 0x531
+ write 0x1c0aac 0xcd463fff
+ write 0x51040 0x4cc
+ write 0x5104c 0x1a4
+ write 0x51050 0x0
+ write 0x51040 0x8cc
+ write 0x5104c 0x0
+ write 0x51050 0x290000
+ write 0x1c0a90 0x5a5
+ write 0x1c0a9c 0x531
+ write 0x1c0aa0 0xcd4e3fff
+ write 0x1c0aa4 0x5a5
+ write 0x1c0aa8 0x531
+ write 0x1c0aac 0xcd4e3fff
+ write 0x51040 0x4cd
+ write 0x5104c 0x1a5
+ write 0x51050 0x0
+ write 0x51040 0x8cd
+ write 0x5104c 0x0
+ write 0x51050 0x1090000
+ write 0x1c0a90 0x5a6
+ write 0x1c0a9c 0x531
+ write 0x1c0aa0 0xcd5e3fff
+ write 0x1c0aa4 0x5a6
+ write 0x1c0aa8 0x531
+ write 0x1c0aac 0xcd5e3fff
+ write 0x1c0a90 0x5a7
+ write 0x1c0a9c 0x21
+ write 0x1c0aa0 0x4c8bffff
+ write 0x1c0aa4 0x5a7
+ write 0x1c0aa8 0x21
+ write 0x1c0aac 0x4c8bffff
+ write 0x51040 0x4ce
+ write 0x5104c 0x1a7
+ write 0x51050 0x0
+ write 0x51040 0x8ce
+ write 0x5104c 0x0
+ write 0x51050 0xe0000
\ No newline at end of file
diff --git a/fvlproto/run.sh b/fvlproto/run.sh
new file mode 100644
index 0000000..f8a6573
--- /dev/null
+++ b/fvlproto/run.sh
@@ -0,0 +1,20 @@
+#!/bin/sh
+
+#./build/fvlproto -c 3d5 -n 4 -- --lb-mode sw --rx 2,2 --w 4,6,7,8,9 --lb-proto 50
+
+#./build/fvlproto -c 3d5 -n 4 -- --lb-mode sw --rx 1,2 --w 4,6,7,8,9 --lb-proto 50
+#./build/fvlproto -c 3d5 -n 4 -- --lb-mode sw --rx 0,2 --w 4,6,7,8,9 --lb-proto 50
+
+#./build/fvlproto -c 7fff -n 4 -- --lb-mode sw --rx 0,0 --w 4,6,7,8,9 --lb-proto 50
+#RX - worked for me
+#./build/fvlproto -c 3fff -n 4 -- --lb-mode sw --rx 0,2 --w 1,4,5,6,7 --lb-proto 50
+#./build/fvlproto -c 3fff -n 4 -- --lb-mode rss --rx 0,2 --w 1,4,5,6,7 --lb-proto 50
+
+
+#Shobhi
+
+
+#./build/fvlproto -c 3fff -n 4 -- --rx 0,2 --tx 1,12:20:30:40:50:60 --w 4,6,7,8,9 --lb-proto 50 --lb-mode sw --input regs.txt
+./build/fvlproto -c 3fff -n 4 -- --rx 0,2 --w 4,6,7,8,9 --lb-mode sw --input regs.txt
+
+
diff --git a/fvlproto/test/Makefile b/fvlproto/test/Makefile
new file mode 100644
index 0000000..00b878b
--- /dev/null
+++ b/fvlproto/test/Makefile
@@ -0,0 +1,29 @@
+# BSD LICENSE
+
+ifeq ($(RTE_SDK),)
+$(error "Please define RTE_SDK environment variable")
+endif
+
+# Default target, can be overriden by command line or environment
+RTE_TARGET ?= x86_64-native-linuxapp-gcc
+
+include $(RTE_SDK)/mk/rte.vars.mk
+
+# binary name
+APP = readreg
+
+# all source are stored in SRCS-y
+SRCS-y := readreg.c
+
+CFLAGS += -O3 -g
+CFLAGS += $(WERROR_FLAGS)
+#CFLAGS_config.o := -D_GNU_SOURCE
+
+# workaround for a gcc bug with noreturn attribute
+# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12603
+ifeq ($(CONFIG_RTE_TOOLCHAIN_GCC),y)
+#CFLAGS_main.o += -Wno-return-type
+CFLAGS_readreg.o += -Wno-return-type
+endif
+
+include $(RTE_SDK)/mk/rte.extapp.mk
diff --git a/fvlproto/test/readreg.c b/fvlproto/test/readreg.c
new file mode 100644
index 0000000..717ddb3
--- /dev/null
+++ b/fvlproto/test/readreg.c
@@ -0,0 +1,167 @@
+// readreg.c
+
+#include <stdio.h>
+#include <stdint.h>
+#include <stdbool.h>
+#include <rte_ethdev.h>
+//#include "i40e.h"
+//#include "trb.h"
+
+enum {
+ I40E_TRB_L2_PTP = 0, /* 0 */
+ I40E_TRB_L2_FIP, /* 1 */
+ I40E_TRB_VXLAN_KEY, /* 2 */
+ I40E_TRB_GENEVE_KEY, /* 3 */
+ I40E_TRB_L2_LLDP, /* 4 */
+ I40E_TRB_L2_MPLS, /* 5 */
+ I40E_TRB_GENERIC_UDP_KEY, /* 6 */
+ I40E_TRB_L2_NSH, /* 7 */
+ I40E_TRB_L2_888E, /* 8 */
+ I40E_TRB_L2_ARP, /* 9 */
+ I40E_TRB_GRE_KEY, /* 10 */
+ I40E_TRB_GRE_KEYC, /* 11 **/
+ I40E_TRB_L3_IPV4, /* 12 */
+ I40E_TRB_L3_IPV6, /* 13 */
+ I40E_TRB_L2_FCOE, /* 14 */
+ I40E_TRB_GRE_NO_KEY, /* 15 GRENAT */
+ I40E_TRB_TEREDO, /* 16 NAT */
+ I40E_TRB_TCP, /* 17 */
+ I40E_TRB_UDP, /* 18 */
+ I40E_TRB_SCTP, /* 19 */
+ I40E_TRB_ICMP, /* 20 */
+ I40E_TRB_RESERVED_21, /* 21 */
+ I40E_TRB_RESERVED_22, /* 22 */
+ I40E_TRB_IPV6_ICMP, /* 23 */
+ I40E_TRB_IPV6_OTHER, /* 24 */
+ I40E_TRB_IPV6_DST_ROUTE, /* 25 */
+ I40E_TRB_FC_RDY_RW, /* 26 */
+ I40E_TRB_FC_DATA, /* 27 */
+ I40E_TRB_FC_VFT, /* 28 */
+ I40E_TRB_FC_RSP, /* 29 */
+ I40E_TRB_FC_OTHER, /* 30 */
+ I40E_TRB_CLOUD_MACVLAN, /* 31 */
+ I40E_TRB_CLOUD_MAC, /* 32 */
+ I40E_TRB_L2_PAYLOAD, /* 33 */
+ I40E_TRB_L3_PAYLOAD, /* 34 */
+ I40E_TRB_L4_PAYLOAD, /* 35 */
+ I40E_TRB_L2_HDR0, /* 36 */
+ I40E_TRB_L2_HDR1, /* 37 IP First Nibble */
+ I40E_TRB_L2_HDR2, /* 38 FCRCTL */
+ I40E_TRB_L2_HDR_STAG, /* 39 IDLE */
+ I40E_TRB_L2_HDR_EXVLAN, /* 40 VXLANGPE */
+ I40E_TRB_L2_HDR_VLAN, /* 41 UDPTIMESYNC1 */
+ I40E_TRB_L2_CTS, /* 42 NSH_TUNNEL */
+ I40E_TRB_L2_HDR7, /* 43 GRE */
+ I40E_TRB_L2_HDR8, /* 44 IPV4_FRAG */
+ I40E_TRB_L2_HDR9, /* 45 */
+ I40E_TRB_L2_RESERVED46, /* 46 */
+ I40E_TRB_L2_RESERVED47, /* 47 */
+ I40E_TRB_IP_HDR_FRAG, /* 48 IPV6_FRAG */
+ I40E_TRB_IP_INNER_HDR_OP, /* 49 MACDUMMY */
+ I40E_TRB_TCP_HDR_OP, /* 50 */
+ I40E_TRB_L2_RESERVED51, /* 51 */
+ I40E_TRB_EXT_IPV4, /* 52 */
+ I40E_TRB_EXT_IPV6, /* 53 */
+ I40E_TRB_FC_BIT23, /* 54 */
+ I40E_TRB_TCP_SYN, /* 55 */
+ I40E_TRB_FC_BIT22, /* 56 */
+ I40E_TRB_FLEX_OAM_VXLAN_GPE, /* 57 */
+ I40E_TRB_FLEX_OAM_GENEVE, /* 58 */
+ I40E_TRB_FLEX_RESERVED59, /* 59 */
+ I40E_TRB_FLEX_RESERVED60, /* 60 */
+ I40E_TRB_L2_UCAST_MAC, /* 61 */
+ I40E_TRB_L2_MCAST_MAC, /* 62 */
+ I40E_TRB_L2_BCAST_MAC /* 63 */
+};
+
+// from i40e.h
+int i40e_dev_reg_write(uint8_t portid, uint32_t reg_addr, uint32_t reg_val, int ctl);
+
+int i40e_dev_reg_read(uint8_t portid, uint32_t reg_addr, uint64_t *reg_val, int ctl);
+// from i40e_int.h
+/* Some defines from internal i40e_register_x710_int.h */
+
+#define I40E_GLQF_PTYPE(_i, _j) (0x00268200 + ((_i) * 4 + (_j) * 8)) /* _i=0...1, _j=0...63 */ /* Reset: CORER */
+#define I40E_GLQF_PTYPE_MAX_INDEX 1
+#define I40E_GLQF_PTYPE_PROT_LAYER_SHIFT 0
+#define I40E_GLQF_PTYPE_PROT_LAYER_MASK I40E_MASK(0xFFFFFFFF, I40E_GLQF_PTYPE_PROT_LAYER_SHIFT)
+
+#define I40E_GLQF_PTYPE_ENA(_i, _j) (0x00268600 + ((_i) * 4 + (_j) * 8)) /* _i=0...1, _j=0...63 */ /* Reset: CORER */
+#define I40E_GLQF_PTYPE_ENA_MAX_INDEX 1
+#define I40E_GLQF_PTYPE_ENA_PROT_LAYER_SHIFT 0
+#define I40E_GLQF_PTYPE_ENA_PROT_LAYER_MASK I40E_MASK(0xFFFFFFFF, I40E_GLQF_PTYPE_ENA_PROT_LAYER_SHIFT)
+
+#define I40E_GLPPRS_INDIRECT_ADDRESS 0x001C0A90 /* Reset: CORER */
+#define I40E_GLPPRS_INDIRECT_ADDRESS_ADDR_SHIFT 0
+#define I40E_GLPPRS_INDIRECT_ADDRESS_ADDR_MASK I40E_MASK(0xFFFF, I40E_GLPPRS_INDIRECT_ADDRESS_ADDR_SHIFT)
+
+#define I40E_GLPPRS_INDIRECT_DATA(_i) (0x001C0A94 + ((_i) * 4)) /* _i=0...3 */ /* Reset: CORER */
+#define I40E_GLPPRS_INDIRECT_DATA_MAX_INDEX 3
+#define I40E_GLPPRS_INDIRECT_DATA_DATA_SHIFT 0
+#define I40E_GLPPRS_INDIRECT_DATA_DATA_MASK I40E_MASK(0xFFFFFFFF, I40E_GLPPRS_INDIRECT_DATA_DATA_SHIFT)
+
+#define I40E_GLRCU_INDIRECT_ADDRESS 0x001C0AA4 /* Reset: CORER */
+#define I40E_GLRCU_INDIRECT_ADDRESS_GLRCU_INDIRECT_ADDRESS_SHIFT 0
+#define I40E_GLRCU_INDIRECT_ADDRESS_GLRCU_INDIRECT_ADDRESS_MASK I40E_MASK(0xFFFF, I40E_GLRCU_INDIRECT_ADDRESS_GLRCU_INDIRECT_ADDRESS_SHIFT)
+
+#define I40E_GLRCU_INDIRECT_DATA(_i) (0x001C0AA8 + ((_i) * 4)) /* _i=0...1 */ /* Reset: CORER */
+#define I40E_GLRCU_INDIRECT_DATA_MAX_INDEX 1
+#define I40E_GLRCU_INDIRECT_DATA_GLRCU_INDIRECT_DATA_SHIFT 0
+#define I40E_GLRCU_INDIRECT_DATA_GLRCU_INDIRECT_DATA_MASK I40E_MASK(0xFFFFFFFF, I40E_GLRCU_INDIRECT_DATA_GLRCU_INDIRECT_DATA_SHIFT)
+
+#define I40E_GLQF_L3_MAP(_i) (0x0026C700 + ((_i) * 4)) /* _i=0...63 */ /* Reset: CORER */
+#define I40E_GLQF_L3_MAP_MAX_INDEX 63
+#define I40E_GLQF_L3_MAP_TR_IDX_CODE_SHIFT 0
+#define I40E_GLQF_L3_MAP_TR_IDX_CODE_MASK I40E_MASK(0x3F, I40E_GLQF_L3_MAP_TR_IDX_CODE_SHIFT)
+#define I40E_GLQF_L3_MAP_TR_OPCODE_SHIFT 6
+#define I40E_GLQF_L3_MAP_TR_OPCODE_MASK I40E_MASK(0x3, I40E_GLQF_L3_MAP_TR_OPCODE_SHIFT)
+#define I40E_GLQF_L3_MAP_MIN_SKIP_GAP_SHIFT 8
+#define I40E_GLQF_L3_MAP_MIN_SKIP_GAP_MASK I40E_MASK(0x7F, I40E_GLQF_L3_MAP_MIN_SKIP_GAP_SHIFT)
+#define I40E_GLQF_L3_MAP_MIN_SKIP_ENA_SHIFT 15
+#define I40E_GLQF_L3_MAP_MIN_SKIP_ENA_MASK I40E_MASK(0x1, I40E_GLQF_L3_MAP_MIN_SKIP_ENA_SHIFT)
+
+
+#define MEMTYPE_HEADER_SKIP 0x000
+#define MEMTYPE_PROTO 0x100
+#define MEMTYPE_PTYPE 0x500
+
+#define PROTO_SPACE_IPV4 1
+#define PROTO_SPACE_IPV6 2
+
+#define SKIP_SELECT_CONST 2
+
+static void i40_read_memconfig(uint8_t portid, uint32_t memtype, uint32_t entry)
+{
+ uint64_t val;
+ printf(" memtype + entry = %x in %s\n", memtype + entry, __func__);
+ i40e_dev_reg_write(portid, I40E_GLPPRS_INDIRECT_ADDRESS, memtype + entry, 0);
+ i40e_dev_reg_read(portid, I40E_GLPPRS_INDIRECT_DATA(2), &val, 0);
+ printf("I40E_GLPPRS_INDIRECT_DATA(2)=%lx in %s\n", val, __func__);
+ i40e_dev_reg_read(portid, I40E_GLPPRS_INDIRECT_DATA(3), &val, 0);
+ printf("I40E_GLPPRS_INDIRECT_DATA(3)=%lx in %s\n", val, __func__);
+ printf("****************************************************\n" );
+ i40e_dev_reg_write(portid, I40E_GLRCU_INDIRECT_ADDRESS, memtype + entry, 0);
+ i40e_dev_reg_read(portid, I40E_GLRCU_INDIRECT_DATA(0), &val, 0);
+ printf("I40E_GLRCU_INDIRECT_DATA(0)=%lx\n",val);
+ i40e_dev_reg_read(portid, I40E_GLRCU_INDIRECT_DATA(1), &val, 0);
+ printf("I40E_GLRCU_INDIRECT_DATA(1)=%lx\n",val);
+}
+
+int main(int argc, char **argv)
+{
+ uint8_t portid = 0;
+ int ret;
+ uint32_t proto_entry = 36; // ICMPv4
+ ret = rte_eal_init(argc, argv);
+ if (ret < 0) {
+ printf("rte_eal_init() failed in %s\n",__func__);
+ return -1;
+ }
+ printf("calling i40_read_memconfig() for MEMTYPE_PROTO + 0x24 in %s\n",__func__);
+ i40_read_memconfig(portid, MEMTYPE_PROTO, proto_entry);
+
+ printf("calling i40_read_memconfig() for MEMTYPE_HEADER_SKIP + I40E_TRB_ICMP in %s\n",__func__);
+ i40_read_memconfig(portid, MEMTYPE_HEADER_SKIP, I40E_TRB_ICMP);
+
+ return ret;
+}
diff --git a/fvlproto/test/run.sh b/fvlproto/test/run.sh
new file mode 100644
index 0000000..0ece4b2
--- /dev/null
+++ b/fvlproto/test/run.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+./build/readreg -c 3fff -n 4
\ No newline at end of file
--
2.5.5
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [dpdk-dev] [PATCH 1/1] add writing registers
2016-04-21 17:24 [dpdk-dev] [PATCH 1/1] add writing registers Rami Rosen
@ 2016-04-21 17:33 ` Rosen, Rami
0 siblings, 0 replies; 2+ messages in thread
From: Rosen, Rami @ 2016-04-21 17:33 UTC (permalink / raw)
To: dev; +Cc: Rosen, Rami
Please ignore, this is a wrong patch
-----Original Message-----
From: Rosen, Rami
Sent: Thursday, April 21, 2016 8:24 PM
To: dev@dpdk.org
Cc: Rosen, Rami <rami.rosen@intel.com>
Subject: [PATCH 1/1] add writing registers
Change-Id: Iaeeefcbc29d109fef17797d6a888cf2448499646
Signed-off-by: Rami Rosen <rami.rosen@intel.com>
---
fvlproto/build.sh | 4 +
fvlproto/config.c | 7 +
fvlproto/myMakefile | 29 +
fvlproto/mybuild.sh | 5 +
fvlproto/regs.txt | 78 ++
fvlproto/regs.txt.org | 1998 +++++++++++++++++++++++++++++++++++++++++++++++
fvlproto/run.sh | 20 +
fvlproto/test/Makefile | 29 +
fvlproto/test/readreg.c | 167 ++++
fvlproto/test/run.sh | 3 +
10 files changed, 2340 insertions(+)
create mode 100755 fvlproto/build.sh
create mode 100644 fvlproto/myMakefile
create mode 100755 fvlproto/mybuild.sh
create mode 100644 fvlproto/regs.txt
create mode 100644 fvlproto/regs.txt.org
create mode 100644 fvlproto/run.sh
create mode 100644 fvlproto/test/Makefile
create mode 100644 fvlproto/test/readreg.c
create mode 100644 fvlproto/test/run.sh
diff --git a/fvlproto/build.sh b/fvlproto/build.sh
new file mode 100755
index 0000000..bfffb6b
--- /dev/null
+++ b/fvlproto/build.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+export RTE_SDK=/work/src/dpdk-16.04
+make
diff --git a/fvlproto/config.c b/fvlproto/config.c
index f7db457..1659154 100644
--- a/fvlproto/config.c
+++ b/fvlproto/config.c
@@ -148,6 +148,9 @@ static void parse_print_regs_input(const char *arg)
char input_line[256];
char *address, *val, *curr;
const char delimiters[] = " ";
+ uint32_t reg;
+ uint32_t value;
+ char *eptr;
if (arg == NULL)
return;
@@ -166,6 +169,10 @@ static void parse_print_regs_input(const char *arg)
address = strtok(NULL, delimiters);
val = strtok(NULL, delimiters);
printf("addess=%s val=%s\n", address, val);
+ reg = strtol(address, &eptr, 16);
+ value = strtol(val, &eptr, 16);
+ printf("Writing reg=%x value=%x\n", reg, value);
+ i40e_dev_reg_write(app.nic_rx_port, reg, value, 0);
}
fclose(file);
diff --git a/fvlproto/myMakefile b/fvlproto/myMakefile
new file mode 100644
index 0000000..00b878b
--- /dev/null
+++ b/fvlproto/myMakefile
@@ -0,0 +1,29 @@
+# BSD LICENSE
+
+ifeq ($(RTE_SDK),)
+$(error "Please define RTE_SDK environment variable")
+endif
+
+# Default target, can be overriden by command line or environment
+RTE_TARGET ?= x86_64-native-linuxapp-gcc
+
+include $(RTE_SDK)/mk/rte.vars.mk
+
+# binary name
+APP = readreg
+
+# all source are stored in SRCS-y
+SRCS-y := readreg.c
+
+CFLAGS += -O3 -g
+CFLAGS += $(WERROR_FLAGS)
+#CFLAGS_config.o := -D_GNU_SOURCE
+
+# workaround for a gcc bug with noreturn attribute
+# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12603
+ifeq ($(CONFIG_RTE_TOOLCHAIN_GCC),y)
+#CFLAGS_main.o += -Wno-return-type
+CFLAGS_readreg.o += -Wno-return-type
+endif
+
+include $(RTE_SDK)/mk/rte.extapp.mk
diff --git a/fvlproto/mybuild.sh b/fvlproto/mybuild.sh
new file mode 100755
index 0000000..55b89f1
--- /dev/null
+++ b/fvlproto/mybuild.sh
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+export RTE_SDK=/work/src/dpdk-16.04
+make -f myMakefile
+
diff --git a/fvlproto/regs.txt b/fvlproto/regs.txt
new file mode 100644
index 0000000..68f9ef3
--- /dev/null
+++ b/fvlproto/regs.txt
@@ -0,0 +1,78 @@
+ write 0x1c0a90 0x5
+ write 0x1c0a9c 0x3180c
+ write 0x1c0aa0 0x20000096
+ write 0x1c0aa4 0x5
+ write 0x1c0aa8 0x3180c
+ write 0x1c0aac 0x20000096
+ write 0x1c0a90 0x305
+ write 0x1c0a9c 0x0
+ write 0x1c0aa0 0xb
+ write 0x1c0aa4 0x305
+ write 0x1c0aa8 0x0
+ write 0x1c0aac 0xb
+ write 0x1c0a90 0x110
+ write 0x1c0a9c 0x0
+ write 0x1c0aa0 0x28000cb
+ write 0x1c0aa4 0x110
+ write 0x1c0aa8 0x0
+ write 0x1c0aac 0x28000cb
+ write 0x1c0a90 0x111
+ write 0x1c0a9c 0x0
+ write 0x1c0aa0 0x280000b
+ write 0x1c0aa4 0x111
+ write 0x1c0aa8 0x0
+ write 0x1c0aac 0x280000b
+ write 0x1c0a90 0x113
+ write 0x1c0a9c 0x0
+ write 0x1c0aa0 0x2c4a7d5
+ write 0x1c0aa4 0x113
+ write 0x1c0aa8 0x0
+ write 0x1c0aac 0x2c4a7d5
+ write 0x1c0a90 0x114
+ write 0x1c0a9c 0x0
+ write 0x1c0aa0 0x2800219
+ write 0x1c0aa4 0x114
+ write 0x1c0aa8 0x0
+ write 0x1c0aac 0x2800219
+ write 0x1c0a90 0x115
+ write 0x1c0a9c 0x0
+ write 0x1c0aa0 0x280031b
+ write 0x1c0aa4 0x115
+ write 0x1c0aa8 0x0
+ write 0x1c0aac 0x280031b
+ write 0x1c0a90 0x138
+ write 0x1c0a9c 0x0
+ write 0x1c0aa0 0x2b2ac41
+ write 0x1c0aa4 0x138
+ write 0x1c0aa8 0x0
+ write 0x1c0aac 0x2b2ac41
+ write 0x1c0a90 0x139
+ write 0x1c0a9c 0x0
+ write 0x1c0aa0 0x2840019
+ write 0x1c0aa4 0x139
+ write 0x1c0aa8 0x0
+ write 0x1c0aac 0x2840019
+ write 0x1c0a90 0x13a
+ write 0x1c0a9c 0x0
+ write 0x1c0aa0 0x2c36e9b
+ write 0x1c0aa4 0x13a
+ write 0x1c0aa8 0x0
+ write 0x1c0aac 0x2c36e9b
+ write 0x1c0a90 0x13b
+ write 0x1c0a9c 0x0
+ write 0x1c0aa0 0x2c0803f
+ write 0x1c0aa4 0x13b
+ write 0x1c0aa8 0x0
+ write 0x1c0aac 0x2c0803f
+ write 0x1c0a90 0x5a7
+ write 0x1c0a9c 0x21
+ write 0x1c0aa0 0x4c8bffff
+ write 0x1c0aa4 0x5a7
+ write 0x1c0aa8 0x21
+ write 0x1c0aac 0x4c8bffff
+ write 0x51040 0x4ce
+ write 0x5104c 0x1a7
+ write 0x51050 0x0
+ write 0x51040 0x8ce
+ write 0x5104c 0x0
+ write 0x51050 0xe0000
\ No newline at end of file
diff --git a/fvlproto/regs.txt.org b/fvlproto/regs.txt.org
new file mode 100644
index 0000000..754fc08
--- /dev/null
+++ b/fvlproto/regs.txt.org
@@ -0,0 +1,1998 @@
+ write 0x1c0a90 0x5
+ write 0x1c0a9c 0x3180c
+ write 0x1c0aa0 0x20000096
+ write 0x1c0aa4 0x5
+ write 0x1c0aa8 0x3180c
+ write 0x1c0aac 0x20000096
+ write 0x1c0a90 0x305
+ write 0x1c0a9c 0x0
+ write 0x1c0aa0 0xb
+ write 0x1c0aa4 0x305
+ write 0x1c0aa8 0x0
+ write 0x1c0aac 0xb
+ write 0x1c0a90 0x110
+ write 0x1c0a9c 0x0
+ write 0x1c0aa0 0x28000cb
+ write 0x1c0aa4 0x110
+ write 0x1c0aa8 0x0
+ write 0x1c0aac 0x28000cb
+ write 0x1c0a90 0x111
+ write 0x1c0a9c 0x0
+ write 0x1c0aa0 0x280000b
+ write 0x1c0aa4 0x111
+ write 0x1c0aa8 0x0
+ write 0x1c0aac 0x280000b
+ write 0x1c0a90 0x113
+ write 0x1c0a9c 0x0
+ write 0x1c0aa0 0x2c4a7d5
+ write 0x1c0aa4 0x113
+ write 0x1c0aa8 0x0
+ write 0x1c0aac 0x2c4a7d5
+ write 0x1c0a90 0x114
+ write 0x1c0a9c 0x0
+ write 0x1c0aa0 0x2800219
+ write 0x1c0aa4 0x114
+ write 0x1c0aa8 0x0
+ write 0x1c0aac 0x2800219
+ write 0x1c0a90 0x115
+ write 0x1c0a9c 0x0
+ write 0x1c0aa0 0x280031b
+ write 0x1c0aa4 0x115
+ write 0x1c0aa8 0x0
+ write 0x1c0aac 0x280031b
+ write 0x1c0a90 0x138
+ write 0x1c0a9c 0x0
+ write 0x1c0aa0 0x2b2ac41
+ write 0x1c0aa4 0x138
+ write 0x1c0aa8 0x0
+ write 0x1c0aac 0x2b2ac41
+ write 0x1c0a90 0x139
+ write 0x1c0a9c 0x0
+ write 0x1c0aa0 0x2840019
+ write 0x1c0aa4 0x139
+ write 0x1c0aa8 0x0
+ write 0x1c0aac 0x2840019
+ write 0x1c0a90 0x13a
+ write 0x1c0a9c 0x0
+ write 0x1c0aa0 0x2c36e9b
+ write 0x1c0aa4 0x13a
+ write 0x1c0aa8 0x0
+ write 0x1c0aac 0x2c36e9b
+ write 0x1c0a90 0x13b
+ write 0x1c0a9c 0x0
+ write 0x1c0aa0 0x2c0803f
+ write 0x1c0aa4 0x13b
+ write 0x1c0aa8 0x0
+ write 0x1c0aac 0x2c0803f
+ write 0x1c0a90 0x500
+ write 0x1c0a9c 0xf
+ write 0x1c0aa0 0xffffffff
+ write 0x1c0aa4 0x500
+ write 0x1c0aa8 0xf
+ write 0x1c0aac 0xffffffff
+ write 0x1c0a90 0x501
+ write 0x1c0a9c 0x8
+ write 0x1c0aa0 0x7fffffff
+ write 0x1c0aa4 0x501
+ write 0x1c0aa8 0x8
+ write 0x1c0aac 0x7fffffff
+ write 0x1c0a90 0x502
+ write 0x1c0a9c 0x10
+ write 0x1c0aa0 0x21ffffff
+ write 0x1c0aa4 0x502
+ write 0x1c0aa8 0x10
+ write 0x1c0aac 0x21ffffff
+ write 0x1c0a90 0x503
+ write 0x1c0a9c 0x10
+ write 0x1c0aa0 0x61ffffff
+ write 0x1c0aa4 0x503
+ write 0x1c0aa8 0x10
+ write 0x1c0aac 0x61ffffff
+ write 0x1c0a90 0x504
+ write 0x1c0a9c 0x1f
+ write 0x1c0aa0 0xe1ffffff
+ write 0x1c0aa4 0x504
+ write 0x1c0aa8 0x1f
+ write 0x1c0aac 0xe1ffffff
+ write 0x1c0a90 0x505
+ write 0x1c0a9c 0x1f
+ write 0x1c0aa0 0xe1ffffff
+ write 0x1c0aa4 0x505
+ write 0x1c0aa8 0x1f
+ write 0x1c0aac 0xe1ffffff
+ write 0x1c0a90 0x506
+ write 0x1c0a9c 0x11
+ write 0x1c0aa0 0x21ffffff
+ write 0x1c0aa4 0x506
+ write 0x1c0aa8 0x11
+ write 0x1c0aac 0x21ffffff
+ write 0x1c0a90 0x507
+ write 0x1c0a9c 0x1f
+ write 0x1c0aa0 0xe1ffffff
+ write 0x1c0aa4 0x507
+ write 0x1c0aa8 0x1f
+ write 0x1c0aac 0xe1ffffff
+ write 0x1c0a90 0x508
+ write 0x1c0a9c 0x1f
+ write 0x1c0aa0 0xe1ffffff
+ write 0x1c0aa4 0x508
+ write 0x1c0aa8 0x1f
+ write 0x1c0aac 0xe1ffffff
+ write 0x1c0a90 0x509
+ write 0x1c0a9c 0x1f
+ write 0x1c0aa0 0xe1ffffff
+ write 0x1c0aa4 0x509
+ write 0x1c0aa8 0x1f
+ write 0x1c0aac 0xe1ffffff
+ write 0x1c0a90 0x50a
+ write 0x1c0a9c 0x12
+ write 0x1c0aa0 0x21ffffff
+ write 0x1c0aa4 0x50a
+ write 0x1c0aa8 0x12
+ write 0x1c0aac 0x21ffffff
+ write 0x1c0a90 0x50b
+ write 0x1c0a9c 0x12
+ write 0x1c0aa0 0x61ffffff
+ write 0x1c0aa4 0x50b
+ write 0x1c0aa8 0x12
+ write 0x1c0aac 0x61ffffff
+ write 0x1c0a90 0x50c
+ write 0x1c0a9c 0x1f
+ write 0x1c0aa0 0xe2ffffff
+ write 0x1c0aa4 0x50c
+ write 0x1c0aa8 0x1f
+ write 0x1c0aac 0xe2ffffff
+ write 0x1c0a90 0x50d
+ write 0x1c0a9c 0x2f
+ write 0x1c0aa0 0xff8bffff
+ write 0x1c0aa4 0x50d
+ write 0x1c0aa8 0x2f
+ write 0x1c0aac 0xff8bffff
+ write 0x1c0a90 0x50e
+ write 0x1c0a9c 0x2f
+ write 0x1c0aa0 0xff8bffff
+ write 0x1c0aa4 0x50e
+ write 0x1c0aa8 0x2f
+ write 0x1c0aac 0xff8bffff
+ write 0x1c0a90 0x50f
+ write 0x1c0a9c 0x2f
+ write 0x1c0aa0 0xff8bffff
+ write 0x1c0aa4 0x50f
+ write 0x1c0aa8 0x2f
+ write 0x1c0aac 0xff8bffff
+ write 0x1c0a90 0x510
+ write 0x1c0a9c 0x2f
+ write 0x1c0aa0 0xff8bffff
+ write 0x1c0aa4 0x510
+ write 0x1c0aa8 0x2f
+ write 0x1c0aac 0xff8bffff
+ write 0x1c0a90 0x511
+ write 0x1c0a9c 0x3f
+ write 0x1c0aa0 0xff8bffff
+ write 0x1c0aa4 0x511
+ write 0x1c0aa8 0x3f
+ write 0x1c0aac 0xff8bffff
+ write 0x1c0a90 0x512
+ write 0x1c0a9c 0x3f
+ write 0x1c0aa0 0xfffe2fff
+ write 0x1c0aa4 0x512
+ write 0x1c0aa8 0x3f
+ write 0x1c0aac 0xfffe2fff
+ write 0x1c0a90 0x513
+ write 0x1c0a9c 0x3f
+ write 0x1c0aa0 0xfffe2fff
+ write 0x1c0aa4 0x513
+ write 0x1c0aa8 0x3f
+ write 0x1c0aac 0xfffe2fff
+ write 0x1c0a90 0x514
+ write 0x1c0a9c 0x3f
+ write 0x1c0aa0 0xfffe2fff
+ write 0x1c0aa4 0x514
+ write 0x1c0aa8 0x3f
+ write 0x1c0aac 0xfffe2fff
+ write 0x1c0a90 0x515
+ write 0x1c0a9c 0x3f
+ write 0x1c0aa0 0xfffe2fff
+ write 0x1c0aa4 0x515
+ write 0x1c0aa8 0x3f
+ write 0x1c0aac 0xfffe2fff
+ write 0x1c0a90 0x516
+ write 0x1c0a9c 0x1b
+ write 0x1c0aa0 0x22ffffff
+ write 0x1c0aa4 0x516
+ write 0x1c0aa8 0x1b
+ write 0x1c0aac 0x22ffffff
+ write 0x51040 0x435
+ write 0x5104c 0x116
+ write 0x51050 0x0
+ write 0x51040 0x835
+ write 0x5104c 0x0
+ write 0x51050 0x50000
+ write 0x1c0a90 0x517
+ write 0x1c0a9c 0x13
+ write 0x1c0aa0 0x22ffffff
+ write 0x1c0aa4 0x517
+ write 0x1c0aa8 0x13
+ write 0x1c0aac 0x22ffffff
+ write 0x51040 0x436
+ write 0x5104c 0x117
+ write 0x51050 0x0
+ write 0x51040 0x836
+ write 0x5104c 0x0
+ write 0x51050 0x50000
+ write 0x1c0a90 0x518
+ write 0x1c0a9c 0xa3
+ write 0x1c0aa0 0x128fffff
+ write 0x1c0aa4 0x518
+ write 0x1c0aa8 0xa3
+ write 0x1c0aac 0x128fffff
+ write 0x51040 0x437
+ write 0x5104c 0x118
+ write 0x51050 0x0
+ write 0x51040 0x837
+ write 0x5104c 0x0
+ write 0x51050 0x70008
+ write 0x1c0a90 0x519
+ write 0x1c0a9c 0xa3
+ write 0x1c0aa0 0x8fffff
+ write 0x1c0aa4 0x519
+ write 0x1c0aa8 0xa3
+ write 0x1c0aac 0x8fffff
+ write 0x51040 0x438
+ write 0x5104c 0x119
+ write 0x51050 0x0
+ write 0x51040 0x838
+ write 0x5104c 0x0
+ write 0x51050 0x70008
+ write 0x1c0a90 0x51a
+ write 0x1c0a9c 0xa3
+ write 0x1c0aa0 0x118fffff
+ write 0x1c0aa4 0x51a
+ write 0x1c0aa8 0xa3
+ write 0x1c0aac 0x118fffff
+ write 0x51040 0x439
+ write 0x5104c 0x11a
+ write 0x51050 0x0
+ write 0x51040 0x839
+ write 0x5104c 0x0
+ write 0x51050 0x70000
+ write 0x1c0a90 0x51b
+ write 0x1c0a9c 0xa3
+ write 0x1c0aa0 0x138fffff
+ write 0x1c0aa4 0x51b
+ write 0x1c0aa8 0xa3
+ write 0x1c0aac 0x138fffff
+ write 0x51040 0x43a
+ write 0x5104c 0x11b
+ write 0x51050 0x0
+ write 0x51040 0x83a
+ write 0x5104c 0x0
+ write 0x51050 0xe70000
+ write 0x1c0a90 0x51c
+ write 0x1c0a9c 0xa3
+ write 0x1c0aa0 0x148fffff
+ write 0x1c0aa4 0x51c
+ write 0x1c0aa8 0xa3
+ write 0x1c0aac 0x148fffff
+ write 0x51040 0x43b
+ write 0x5104c 0x11c
+ write 0x51050 0x0
+ write 0x51040 0x83b
+ write 0x5104c 0x0
+ write 0x51050 0x50000
+ write 0x1c0a90 0x51d
+ write 0x1c0a9c 0x423
+ write 0x1c0aa0 0x2c8bffff
+ write 0x1c0aa4 0x51d
+ write 0x1c0aa8 0x423
+ write 0x1c0aac 0x2c8bffff
+ write 0x51040 0x43c
+ write 0x5104c 0x11d
+ write 0x51050 0x0
+ write 0x51040 0x83c
+ write 0x5104c 0x0
+ write 0x51050 0xd0000
+ write 0x1c0a90 0x51e
+ write 0x1c0a9c 0x423
+ write 0x1c0aa0 0xc8bffff
+ write 0x1c0aa4 0x51e
+ write 0x1c0aa8 0x423
+ write 0x1c0aac 0xc8bffff
+ write 0x51040 0x43d
+ write 0x5104c 0x11e
+ write 0x51050 0x0
+ write 0x51040 0x83d
+ write 0x5104c 0x0
+ write 0x51050 0xd0000
+ write 0x1c0a90 0x51f
+ write 0x1c0a9c 0x533
+ write 0x1c0aa0 0xc4a3fff
+ write 0x1c0aa4 0x51f
+ write 0x1c0aa8 0x533
+ write 0x1c0aac 0xc4a3fff
+ write 0x51040 0x43e
+ write 0x5104c 0x11f
+ write 0x51050 0x0
+ write 0x51040 0x83e
+ write 0x5104c 0x0
+ write 0x51050 0x100010
+ write 0x1c0a90 0x520
+ write 0x1c0a9c 0x533
+ write 0x1c0aa0 0xc023fff
+ write 0x1c0aa4 0x520
+ write 0x1c0aa8 0x533
+ write 0x1c0aac 0xc023fff
+ write 0x51040 0x43f
+ write 0x5104c 0x120
+ write 0x51050 0x0
+ write 0x51040 0x83f
+ write 0x5104c 0x0
+ write 0x51050 0x100010
+ write 0x1c0a90 0x521
+ write 0x1c0a9c 0x533
+ write 0x1c0aa0 0xc463fff
+ write 0x1c0aa4 0x521
+ write 0x1c0aa8 0x533
+ write 0x1c0aac 0xc463fff
+ write 0x51040 0x440
+ write 0x5104c 0x121
+ write 0x51050 0x0
+ write 0x51040 0x840
+ write 0x5104c 0x0
+ write 0x51050 0x100000
+ write 0x1c0a90 0x522
+ write 0x1c0a9c 0x533
+ write 0x1c0aa0 0xc4e3fff
+ write 0x1c0aa4 0x522
+ write 0x1c0aa8 0x533
+ write 0x1c0aac 0xc4e3fff
+ write 0x51040 0x441
+ write 0x5104c 0x122
+ write 0x51050 0x0
+ write 0x51040 0x841
+ write 0x5104c 0x0
+ write 0x51050 0xef0000
+ write 0x1c0a90 0x523
+ write 0x1c0a9c 0x533
+ write 0x1c0aa0 0xc523fff
+ write 0x1c0aa4 0x523
+ write 0x1c0aa8 0x533
+ write 0x1c0aac 0xc523fff
+ write 0x51040 0x442
+ write 0x5104c 0x123
+ write 0x51050 0x0
+ write 0x51040 0x842
+ write 0x5104c 0x0
+ write 0x51050 0xd0000
+ write 0x1c0a90 0x524
+ write 0x1c0a9c 0x433
+ write 0x1c0aa0 0xdc22fff
+ write 0x1c0aa4 0x524
+ write 0x1c0aa8 0x433
+ write 0x1c0aac 0xdc22fff
+ write 0x51040 0x443
+ write 0x5104c 0x124
+ write 0x51050 0x0
+ write 0x51040 0x843
+ write 0x5104c 0x0
+ write 0x51050 0x60000
+ write 0x1c0a90 0x525
+ write 0x1c0a9c 0x423
+ write 0x1c0aa0 0xd8bffff
+ write 0x1c0aa4 0x525
+ write 0x1c0aa8 0x423
+ write 0x1c0aac 0xd8bffff
+ write 0x51040 0x444
+ write 0x5104c 0x125
+ write 0x51050 0x0
+ write 0x51040 0x844
+ write 0x5104c 0x0
+ write 0x51050 0x60000
+ write 0x1c0a90 0x526
+ write 0x1c0a9c 0x533
+ write 0x1c0aa0 0xd4a3fff
+ write 0x1c0aa4 0x526
+ write 0x1c0aa8 0x533
+ write 0x1c0aac 0xd4a3fff
+ write 0x51040 0x445
+ write 0x5104c 0x126
+ write 0x51050 0x0
+ write 0x51040 0x845
+ write 0x5104c 0x0
+ write 0x51050 0x280010
+ write 0x1c0a90 0x527
+ write 0x1c0a9c 0x533
+ write 0x1c0aa0 0xd023fff
+ write 0x1c0aa4 0x527
+ write 0x1c0aa8 0x533
+ write 0x1c0aac 0xd023fff
+ write 0x51040 0x446
+ write 0x5104c 0x127
+ write 0x51050 0x0
+ write 0x51040 0x846
+ write 0x5104c 0x0
+ write 0x51050 0x280010
+ write 0x1c0a90 0x528
+ write 0x1c0a9c 0x533
+ write 0x1c0aa0 0xd463fff
+ write 0x1c0aa4 0x528
+ write 0x1c0aa8 0x533
+ write 0x1c0aac 0xd463fff
+ write 0x51040 0x447
+ write 0x5104c 0x128
+ write 0x51050 0x0
+ write 0x51040 0x847
+ write 0x5104c 0x0
+ write 0x51050 0x280000
+ write 0x1c0a90 0x529
+ write 0x1c0a9c 0x533
+ write 0x1c0aa0 0xd4e3fff
+ write 0x1c0aa4 0x529
+ write 0x1c0aa8 0x533
+ write 0x1c0aac 0xd4e3fff
+ write 0x51040 0x448
+ write 0x5104c 0x129
+ write 0x51050 0x0
+ write 0x51040 0x848
+ write 0x5104c 0x0
+ write 0x51050 0x1080000
+ write 0x1c0a90 0x52a
+ write 0x1c0a9c 0x533
+ write 0x1c0aa0 0xd5e3fff
+ write 0x1c0aa4 0x52a
+ write 0x1c0aa8 0x533
+ write 0x1c0aac 0xd5e3fff
+ write 0x51040 0x449
+ write 0x5104c 0x12a
+ write 0x51050 0x0
+ write 0x51040 0x849
+ write 0x5104c 0x0
+ write 0x51050 0x60000
+ write 0x1c0a90 0x52b
+ write 0x1c0a9c 0x823
+ write 0x1c0aa0 0xf8bffff
+ write 0x1c0aa4 0x52b
+ write 0x1c0aa8 0x823
+ write 0x1c0aac 0xf8bffff
+ write 0x51040 0x44a
+ write 0x5104c 0x12b
+ write 0x51050 0x0
+ write 0x51040 0x84a
+ write 0x5104c 0x0
+ write 0x51050 0x50000
+ write 0x1c0a90 0x52c
+ write 0x1c0a9c 0x833
+ write 0x1c0aa0 0xfb22fff
+ write 0x1c0aa4 0x52c
+ write 0x1c0aa8 0x833
+ write 0x1c0aac 0xfb22fff
+ write 0x51040 0x44b
+ write 0x5104c 0x12c
+ write 0x51050 0x0
+ write 0x51040 0x84b
+ write 0x5104c 0x0
+ write 0x51050 0x180000
+ write 0x1c0a90 0x52d
+ write 0x1c0a9c 0x833
+ write 0x1c0aa0 0xf322fff
+ write 0x1c0aa4 0x52d
+ write 0x1c0aa8 0x833
+ write 0x1c0aac 0xf322fff
+ write 0x51040 0x44c
+ write 0x5104c 0x12d
+ write 0x51050 0x0
+ write 0x51040 0x84c
+ write 0x5104c 0x0
+ write 0x51050 0x180000
+ write 0x1c0a90 0x52e
+ write 0x1c0a9c 0x9c3
+ write 0x1c0aa0 0xf3128ff
+ write 0x1c0aa4 0x52e
+ write 0x1c0aa8 0x9c3
+ write 0x1c0aac 0xf3128ff
+ write 0x51040 0x44d
+ write 0x5104c 0x12e
+ write 0x51050 0x0
+ write 0x51040 0x84d
+ write 0x5104c 0x0
+ write 0x51050 0x1b0010
+ write 0x1c0a90 0x52f
+ write 0x1c0a9c 0x9c3
+ write 0x1c0aa0 0xf3008ff
+ write 0x1c0aa4 0x52f
+ write 0x1c0aa8 0x9c3
+ write 0x1c0aac 0xf3008ff
+ write 0x51040 0x44e
+ write 0x5104c 0x12f
+ write 0x51050 0x0
+ write 0x51040 0x84e
+ write 0x5104c 0x0
+ write 0x51050 0x1b0010
+ write 0x1c0a90 0x530
+ write 0x1c0a9c 0x9c3
+ write 0x1c0aa0 0xf3118ff
+ write 0x1c0aa4 0x530
+ write 0x1c0aa8 0x9c3
+ write 0x1c0aac 0xf3118ff
+ write 0x51040 0x44f
+ write 0x5104c 0x130
+ write 0x51050 0x0
+ write 0x51040 0x84f
+ write 0x5104c 0x0
+ write 0x51050 0x1b0000
+ write 0x1c0a90 0x531
+ write 0x1c0a9c 0x9c3
+ write 0x1c0aa0 0xf3138ff
+ write 0x1c0aa4 0x531
+ write 0x1c0aa8 0x9c3
+ write 0x1c0aac 0xf3138ff
+ write 0x51040 0x450
+ write 0x5104c 0x131
+ write 0x51050 0x0
+ write 0x51040 0x850
+ write 0x5104c 0x0
+ write 0x51050 0xf80000
+ write 0x1c0a90 0x532
+ write 0x1c0a9c 0x9c3
+ write 0x1c0aa0 0xf3148ff
+ write 0x1c0aa4 0x532
+ write 0x1c0aa8 0x9c3
+ write 0x1c0aac 0xf3148ff
+ write 0x51040 0x451
+ write 0x5104c 0x132
+ write 0x51050 0x0
+ write 0x51040 0x851
+ write 0x5104c 0x0
+ write 0x51050 0x180000
+ write 0x1c0a90 0x533
+ write 0x1c0a9c 0x843
+ write 0x1c0aa0 0xf3708bf
+ write 0x1c0aa4 0x533
+ write 0x1c0aa8 0x843
+ write 0x1c0aac 0xf3708bf
+ write 0x51040 0x452
+ write 0x5104c 0x133
+ write 0x51050 0x0
+ write 0x51040 0x852
+ write 0x5104c 0x0
+ write 0x51050 0x60000
+ write 0x1c0a90 0x534
+ write 0x1c0a9c 0x833
+ write 0x1c0aa0 0xf362fff
+ write 0x1c0aa4 0x534
+ write 0x1c0aa8 0x833
+ write 0x1c0aac 0xf362fff
+ write 0x51040 0x453
+ write 0x5104c 0x134
+ write 0x51050 0x0
+ write 0x51040 0x853
+ write 0x5104c 0x0
+ write 0x51050 0x60000
+ write 0x1c0a90 0x535
+ write 0x1c0a9c 0x9c3
+ write 0x1c0aa0 0xf3528ff
+ write 0x1c0aa4 0x535
+ write 0x1c0aa8 0x9c3
+ write 0x1c0aac 0xf3528ff
+ write 0x51040 0x454
+ write 0x5104c 0x135
+ write 0x51050 0x0
+ write 0x51040 0x854
+ write 0x5104c 0x0
+ write 0x51050 0x2f0010
+ write 0x1c0a90 0x536
+ write 0x1c0a9c 0x9c3
+ write 0x1c0aa0 0xf3408ff
+ write 0x1c0aa4 0x536
+ write 0x1c0aa8 0x9c3
+ write 0x1c0aac 0xf3408ff
+ write 0x51040 0x455
+ write 0x5104c 0x136
+ write 0x51050 0x0
+ write 0x51040 0x855
+ write 0x5104c 0x0
+ write 0x51050 0x2f0010
+ write 0x1c0a90 0x537
+ write 0x1c0a9c 0x9c3
+ write 0x1c0aa0 0xf3518ff
+ write 0x1c0aa4 0x537
+ write 0x1c0aa8 0x9c3
+ write 0x1c0aac 0xf3518ff
+ write 0x51040 0x456
+ write 0x5104c 0x137
+ write 0x51050 0x0
+ write 0x51040 0x856
+ write 0x5104c 0x0
+ write 0x51050 0x2f0000
+ write 0x1c0a90 0x538
+ write 0x1c0a9c 0x9c3
+ write 0x1c0aa0 0xf3538ff
+ write 0x1c0aa4 0x538
+ write 0x1c0aa8 0x9c3
+ write 0x1c0aac 0xf3538ff
+ write 0x51040 0x457
+ write 0x5104c 0x138
+ write 0x51050 0x0
+ write 0x51040 0x857
+ write 0x5104c 0x0
+ write 0x51050 0x1100000
+ write 0x1c0a90 0x539
+ write 0x1c0a9c 0x9c3
+ write 0x1c0aa0 0xf3578ff
+ write 0x1c0aa4 0x539
+ write 0x1c0aa8 0x9c3
+ write 0x1c0aac 0xf3578ff
+ write 0x51040 0x458
+ write 0x5104c 0x139
+ write 0x51050 0x0
+ write 0x51040 0x858
+ write 0x5104c 0x0
+ write 0x51050 0x60000
+ write 0x1c0a90 0x53a
+ write 0x1c0a9c 0x833
+ write 0x1c0aa0 0xf822fff
+ write 0x1c0aa4 0x53a
+ write 0x1c0aa8 0x833
+ write 0x1c0aac 0xf822fff
+ write 0x51040 0x459
+ write 0x5104c 0x13a
+ write 0x51050 0x0
+ write 0x51040 0x859
+ write 0x5104c 0x0
+ write 0x51050 0x50000
+ write 0x1c0a90 0x53b
+ write 0x1c0a9c 0x843
+ write 0x1c0aa0 0xf82c8bf
+ write 0x1c0aa4 0x53b
+ write 0x1c0aa8 0x843
+ write 0x1c0aac 0xf82c8bf
+ write 0x51040 0x45a
+ write 0x5104c 0x13b
+ write 0x51050 0x0
+ write 0x51040 0x85a
+ write 0x5104c 0x0
+ write 0x51050 0x360002
+ write 0x1c0a90 0x53c
+ write 0x1c0a9c 0x843
+ write 0x1c0aa0 0xf80c8bf
+ write 0x1c0aa4 0x53c
+ write 0x1c0aa8 0x843
+ write 0x1c0aac 0xf80c8bf
+ write 0x51040 0x45b
+ write 0x5104c 0x13c
+ write 0x51050 0x0
+ write 0x51040 0x85b
+ write 0x5104c 0x0
+ write 0x51050 0x360002
+ write 0x1c0a90 0x53d
+ write 0x1c0a9c 0xa53
+ write 0x1c0aa0 0xf80c4a3
+ write 0x1c0aa4 0x53d
+ write 0x1c0aa8 0xa53
+ write 0x1c0aac 0xf80c4a3
+ write 0x51040 0x45c
+ write 0x5104c 0x13d
+ write 0x51050 0x0
+ write 0x51040 0x85c
+ write 0x5104c 0x0
+ write 0x51050 0x390022
+ write 0x1c0a90 0x53e
+ write 0x1c0a9c 0xa53
+ write 0x1c0aa0 0xf80c023
+ write 0x1c0aa4 0x53e
+ write 0x1c0aa8 0xa53
+ write 0x1c0aac 0xf80c023
+ write 0x51040 0x45d
+ write 0x5104c 0x13e
+ write 0x51050 0x0
+ write 0x51040 0x85d
+ write 0x5104c 0x0
+ write 0x51050 0x390022
+ write 0x1c0a90 0x53f
+ write 0x1c0a9c 0xa53
+ write 0x1c0aa0 0xf80c463
+ write 0x1c0aa4 0x53f
+ write 0x1c0aa8 0xa53
+ write 0x1c0aac 0xf80c463
+ write 0x51040 0x45e
+ write 0x5104c 0x13f
+ write 0x51050 0x0
+ write 0x51040 0x85e
+ write 0x5104c 0x0
+ write 0x51050 0x390002
+ write 0x1c0a90 0x540
+ write 0x1c0a9c 0xa53
+ write 0x1c0aa0 0xf80c4e3
+ write 0x1c0aa4 0x540
+ write 0x1c0aa8 0xa53
+ write 0x1c0aac 0xf80c4e3
+ write 0x51040 0x45f
+ write 0x5104c 0x140
+ write 0x51050 0x0
+ write 0x51040 0x85f
+ write 0x5104c 0x0
+ write 0x51050 0x1180002
+ write 0x1c0a90 0x541
+ write 0x1c0a9c 0xa53
+ write 0x1c0aa0 0xf80c523
+ write 0x1c0aa4 0x541
+ write 0x1c0aa8 0xa53
+ write 0x1c0aac 0xf80c523
+ write 0x51040 0x460
+ write 0x5104c 0x141
+ write 0x51050 0x0
+ write 0x51040 0x860
+ write 0x5104c 0x0
+ write 0x51050 0x360002
+ write 0x1c0a90 0x542
+ write 0x1c0a9c 0x853
+ write 0x1c0aa0 0xf80dc22
+ write 0x1c0aa4 0x542
+ write 0x1c0aa8 0x853
+ write 0x1c0aac 0xf80dc22
+ write 0x51040 0x461
+ write 0x5104c 0x142
+ write 0x51050 0x0
+ write 0x51040 0x861
+ write 0x5104c 0x0
+ write 0x51050 0x60000
+ write 0x1c0a90 0x543
+ write 0x1c0a9c 0x843
+ write 0x1c0aa0 0xf80d8bf
+ write 0x1c0aa4 0x543
+ write 0x1c0aa8 0x843
+ write 0x1c0aac 0xf80d8bf
+ write 0x51040 0x462
+ write 0x5104c 0x143
+ write 0x51050 0x0
+ write 0x51040 0x862
+ write 0x5104c 0x0
+ write 0x51050 0x60000
+ write 0x1c0a90 0x544
+ write 0x1c0a9c 0xa53
+ write 0x1c0aa0 0xf80d4a3
+ write 0x1c0aa4 0x544
+ write 0x1c0aa8 0xa53
+ write 0x1c0aac 0xf80d4a3
+ write 0x51040 0x463
+ write 0x5104c 0x144
+ write 0x51050 0x0
+ write 0x51040 0x863
+ write 0x5104c 0x0
+ write 0x51050 0x410022
+ write 0x1c0a90 0x545
+ write 0x1c0a9c 0xa53
+ write 0x1c0aa0 0xf80d023
+ write 0x1c0aa4 0x545
+ write 0x1c0aa8 0xa53
+ write 0x1c0aac 0xf80d023
+ write 0x51040 0x464
+ write 0x5104c 0x145
+ write 0x51050 0x0
+ write 0x51040 0x864
+ write 0x5104c 0x0
+ write 0x51050 0x410022
+ write 0x1c0a90 0x546
+ write 0x1c0a9c 0xa53
+ write 0x1c0aa0 0xf80d463
+ write 0x1c0aa4 0x546
+ write 0x1c0aa8 0xa53
+ write 0x1c0aac 0xf80d463
+ write 0x51040 0x465
+ write 0x5104c 0x146
+ write 0x51050 0x0
+ write 0x51040 0x865
+ write 0x5104c 0x0
+ write 0x51050 0x410002
+ write 0x1c0a90 0x547
+ write 0x1c0a9c 0xa53
+ write 0x1c0aa0 0xf80d4e3
+ write 0x1c0aa4 0x547
+ write 0x1c0aa8 0xa53
+ write 0x1c0aac 0xf80d4e3
+ write 0x51040 0x466
+ write 0x5104c 0x147
+ write 0x51050 0x0
+ write 0x51040 0x866
+ write 0x5104c 0x0
+ write 0x51050 0x1220002
+ write 0x1c0a90 0x548
+ write 0x1c0a9c 0xa53
+ write 0x1c0aa0 0xf80d5e3
+ write 0x1c0aa4 0x548
+ write 0x1c0aa8 0xa53
+ write 0x1c0aac 0xf80d5e3
+ write 0x51040 0x467
+ write 0x5104c 0x148
+ write 0x51050 0x0
+ write 0x51040 0x867
+ write 0x5104c 0x0
+ write 0x51050 0x60000
+ write 0x1c0a90 0x549
+ write 0x1c0a9c 0x833
+ write 0x1c0aa0 0xf7e2fff
+ write 0x1c0aa4 0x549
+ write 0x1c0aa8 0x833
+ write 0x1c0aac 0xf7e2fff
+ write 0x51040 0x468
+ write 0x5104c 0x149
+ write 0x51050 0x0
+ write 0x51040 0x868
+ write 0x5104c 0x0
+ write 0x51050 0x50000
+ write 0x51040 0x469
+ write 0x5104c 0x149
+ write 0x51050 0x4000
+ write 0x51040 0x869
+ write 0x5104c 0x0
+ write 0x51050 0x12e0000
+ write 0x1c0a90 0x54a
+ write 0x1c0a9c 0x843
+ write 0x1c0aa0 0xf7ec8bf
+ write 0x1c0aa4 0x54a
+ write 0x1c0aa8 0x843
+ write 0x1c0aac 0xf7ec8bf
+ write 0x51040 0x46a
+ write 0x5104c 0x14a
+ write 0x51050 0x0
+ write 0x51040 0x86a
+ write 0x5104c 0x0
+ write 0x51050 0x360002
+ write 0x51040 0x46b
+ write 0x5104c 0x14a
+ write 0x51050 0x4000
+ write 0x51040 0x86b
+ write 0x5104c 0x0
+ write 0x51050 0x360000
+ write 0x1c0a90 0x54b
+ write 0x1c0a9c 0x843
+ write 0x1c0aa0 0xf7cc8bf
+ write 0x1c0aa4 0x54b
+ write 0x1c0aa8 0x843
+ write 0x1c0aac 0xf7cc8bf
+ write 0x51040 0x46c
+ write 0x5104c 0x14b
+ write 0x51050 0x0
+ write 0x51040 0x86c
+ write 0x5104c 0x0
+ write 0x51050 0x360002
+ write 0x51040 0x46d
+ write 0x5104c 0x14b
+ write 0x51050 0x4000
+ write 0x51040 0x86d
+ write 0x5104c 0x0
+ write 0x51050 0x360000
+ write 0x1c0a90 0x54c
+ write 0x1c0a9c 0xa53
+ write 0x1c0aa0 0xf7cc4a3
+ write 0x1c0aa4 0x54c
+ write 0x1c0aa8 0xa53
+ write 0x1c0aac 0xf7cc4a3
+ write 0x51040 0x46e
+ write 0x5104c 0x14c
+ write 0x51050 0x0
+ write 0x51040 0x86e
+ write 0x5104c 0x0
+ write 0x51050 0x390022
+ write 0x51040 0x46f
+ write 0x5104c 0x14c
+ write 0x51050 0x4000
+ write 0x51040 0x86f
+ write 0x5104c 0x0
+ write 0x51050 0x390020
+ write 0x1c0a90 0x54d
+ write 0x1c0a9c 0xa53
+ write 0x1c0aa0 0xf7cc023
+ write 0x1c0aa4 0x54d
+ write 0x1c0aa8 0xa53
+ write 0x1c0aac 0xf7cc023
+ write 0x51040 0x470
+ write 0x5104c 0x14d
+ write 0x51050 0x0
+ write 0x51040 0x870
+ write 0x5104c 0x0
+ write 0x51050 0x390022
+ write 0x51040 0x471
+ write 0x5104c 0x14d
+ write 0x51050 0x4000
+ write 0x51040 0x871
+ write 0x5104c 0x0
+ write 0x51050 0x390020
+ write 0x1c0a90 0x54e
+ write 0x1c0a9c 0xa53
+ write 0x1c0aa0 0xf7cc463
+ write 0x1c0aa4 0x54e
+ write 0x1c0aa8 0xa53
+ write 0x1c0aac 0xf7cc463
+ write 0x51040 0x472
+ write 0x5104c 0x14e
+ write 0x51050 0x0
+ write 0x51040 0x872
+ write 0x5104c 0x0
+ write 0x51050 0x390002
+ write 0x51040 0x473
+ write 0x5104c 0x14e
+ write 0x51050 0x4000
+ write 0x51040 0x873
+ write 0x5104c 0x0
+ write 0x51050 0x390000
+ write 0x1c0a90 0x54f
+ write 0x1c0a9c 0xa53
+ write 0x1c0aa0 0xf7cc4e3
+ write 0x1c0aa4 0x54f
+ write 0x1c0aa8 0xa53
+ write 0x1c0aac 0xf7cc4e3
+ write 0x51040 0x474
+ write 0x5104c 0x14f
+ write 0x51050 0x0
+ write 0x51040 0x874
+ write 0x5104c 0x0
+ write 0x51050 0x1180002
+ write 0x51040 0x475
+ write 0x5104c 0x14f
+ write 0x51050 0x4000
+ write 0x51040 0x875
+ write 0x5104c 0x0
+ write 0x51050 0x1180000
+ write 0x1c0a90 0x550
+ write 0x1c0a9c 0xa53
+ write 0x1c0aa0 0xf7cc523
+ write 0x1c0aa4 0x550
+ write 0x1c0aa8 0xa53
+ write 0x1c0aac 0xf7cc523
+ write 0x51040 0x476
+ write 0x5104c 0x150
+ write 0x51050 0x0
+ write 0x51040 0x876
+ write 0x5104c 0x0
+ write 0x51050 0x360002
+ write 0x51040 0x477
+ write 0x5104c 0x150
+ write 0x51050 0x4000
+ write 0x51040 0x877
+ write 0x5104c 0x0
+ write 0x51050 0x360000
+ write 0x1c0a90 0x551
+ write 0x1c0a9c 0x853
+ write 0x1c0aa0 0xf7cdc22
+ write 0x1c0aa4 0x551
+ write 0x1c0aa8 0x853
+ write 0x1c0aac 0xf7cdc22
+ write 0x51040 0x478
+ write 0x5104c 0x151
+ write 0x51050 0x0
+ write 0x51040 0x878
+ write 0x5104c 0x0
+ write 0x51050 0x60000
+ write 0x51040 0x479
+ write 0x5104c 0x151
+ write 0x51050 0x4000
+ write 0x51040 0x879
+ write 0x5104c 0x0
+ write 0x51050 0x12c0000
+ write 0x1c0a90 0x552
+ write 0x1c0a9c 0x843
+ write 0x1c0aa0 0xf7cd8bf
+ write 0x1c0aa4 0x552
+ write 0x1c0aa8 0x843
+ write 0x1c0aac 0xf7cd8bf
+ write 0x51040 0x47a
+ write 0x5104c 0x152
+ write 0x51050 0x0
+ write 0x51040 0x87a
+ write 0x5104c 0x0
+ write 0x51050 0x60000
+ write 0x51040 0x47b
+ write 0x5104c 0x152
+ write 0x51050 0x4000
+ write 0x51040 0x87b
+ write 0x5104c 0x0
+ write 0x51050 0x12c0000
+ write 0x1c0a90 0x553
+ write 0x1c0a9c 0xa53
+ write 0x1c0aa0 0xf7cd4a3
+ write 0x1c0aa4 0x553
+ write 0x1c0aa8 0xa53
+ write 0x1c0aac 0xf7cd4a3
+ write 0x51040 0x47c
+ write 0x5104c 0x153
+ write 0x51050 0x0
+ write 0x51040 0x87c
+ write 0x5104c 0x0
+ write 0x51050 0x410022
+ write 0x51040 0x47d
+ write 0x5104c 0x153
+ write 0x51050 0x4000
+ write 0x51040 0x87d
+ write 0x5104c 0x0
+ write 0x51050 0x410020
+ write 0x1c0a90 0x554
+ write 0x1c0a9c 0xa53
+ write 0x1c0aa0 0xf7cd023
+ write 0x1c0aa4 0x554
+ write 0x1c0aa8 0xa53
+ write 0x1c0aac 0xf7cd023
+ write 0x51040 0x47e
+ write 0x5104c 0x154
+ write 0x51050 0x0
+ write 0x51040 0x87e
+ write 0x5104c 0x0
+ write 0x51050 0x410022
+ write 0x51040 0x47f
+ write 0x5104c 0x154
+ write 0x51050 0x4000
+ write 0x51040 0x87f
+ write 0x5104c 0x0
+ write 0x51050 0x410020
+ write 0x1c0a90 0x555
+ write 0x1c0a9c 0xa53
+ write 0x1c0aa0 0xf7cd463
+ write 0x1c0aa4 0x555
+ write 0x1c0aa8 0xa53
+ write 0x1c0aac 0xf7cd463
+ write 0x51040 0x480
+ write 0x5104c 0x155
+ write 0x51050 0x0
+ write 0x51040 0x880
+ write 0x5104c 0x0
+ write 0x51050 0x410002
+ write 0x51040 0x481
+ write 0x5104c 0x155
+ write 0x51050 0x4000
+ write 0x51040 0x881
+ write 0x5104c 0x0
+ write 0x51050 0x410000
+ write 0x1c0a90 0x556
+ write 0x1c0a9c 0xa53
+ write 0x1c0aa0 0xf7cd4e3
+ write 0x1c0aa4 0x556
+ write 0x1c0aa8 0xa53
+ write 0x1c0aac 0xf7cd4e3
+ write 0x51040 0x482
+ write 0x5104c 0x156
+ write 0x51050 0x0
+ write 0x51040 0x882
+ write 0x5104c 0x0
+ write 0x51050 0x1220002
+ write 0x51040 0x483
+ write 0x5104c 0x156
+ write 0x51050 0x4000
+ write 0x51040 0x883
+ write 0x5104c 0x0
+ write 0x51050 0x1220000
+ write 0x1c0a90 0x557
+ write 0x1c0a9c 0xa53
+ write 0x1c0aa0 0xf7cd5e3
+ write 0x1c0aa4 0x557
+ write 0x1c0aa8 0xa53
+ write 0x1c0aac 0xf7cd5e3
+ write 0x51040 0x484
+ write 0x5104c 0x157
+ write 0x51050 0x0
+ write 0x51040 0x884
+ write 0x5104c 0x0
+ write 0x51050 0x60000
+ write 0x51040 0x485
+ write 0x5104c 0x157
+ write 0x51050 0x4000
+ write 0x51040 0x885
+ write 0x5104c 0x0
+ write 0x51050 0x12c0000
+ write 0x1c0a90 0x558
+ write 0x1c0a9c 0x23
+ write 0x1c0aa0 0x708bffff
+ write 0x1c0aa4 0x558
+ write 0x1c0aa8 0x23
+ write 0x1c0aac 0x708bffff
+ write 0x1c0a90 0x559
+ write 0x1c0a9c 0x13
+ write 0x1c0aa0 0x62ffffff
+ write 0x1c0aa4 0x559
+ write 0x1c0aa8 0x13
+ write 0x1c0aac 0x62ffffff
+ write 0x1c0a90 0x55a
+ write 0x1c0a9c 0xa3
+ write 0x1c0aa0 0x528fffff
+ write 0x1c0aa4 0x55a
+ write 0x1c0aa8 0xa3
+ write 0x1c0aac 0x528fffff
+ write 0x51040 0x486
+ write 0x5104c 0x15a
+ write 0x51050 0x0
+ write 0x51040 0x886
+ write 0x5104c 0x0
+ write 0x51050 0x220008
+ write 0x1c0a90 0x55b
+ write 0x1c0a9c 0xa3
+ write 0x1c0aa0 0x408fffff
+ write 0x1c0aa4 0x55b
+ write 0x1c0aa8 0xa3
+ write 0x1c0aac 0x408fffff
+ write 0x51040 0x487
+ write 0x5104c 0x15b
+ write 0x51050 0x0
+ write 0x51040 0x887
+ write 0x5104c 0x0
+ write 0x51050 0x220008
+ write 0x1c0a90 0x55c
+ write 0x1c0a9c 0xa3
+ write 0x1c0aa0 0x518fffff
+ write 0x1c0aa4 0x55c
+ write 0x1c0aa8 0xa3
+ write 0x1c0aac 0x518fffff
+ write 0x51040 0x488
+ write 0x5104c 0x15c
+ write 0x51050 0x0
+ write 0x51040 0x888
+ write 0x5104c 0x0
+ write 0x51050 0x220000
+ write 0x1c0a90 0x55d
+ write 0x1c0a9c 0xa3
+ write 0x1c0aa0 0x538fffff
+ write 0x1c0aa4 0x55d
+ write 0x1c0aa8 0xa3
+ write 0x1c0aac 0x538fffff
+ write 0x51040 0x489
+ write 0x5104c 0x15d
+ write 0x51050 0x0
+ write 0x51040 0x889
+ write 0x5104c 0x0
+ write 0x51050 0x1010000
+ write 0x1c0a90 0x55e
+ write 0x1c0a9c 0xa3
+ write 0x1c0aa0 0x578fffff
+ write 0x1c0aa4 0x55e
+ write 0x1c0aa8 0xa3
+ write 0x1c0aac 0x578fffff
+ write 0x1c0a90 0x55f
+ write 0x1c0a9c 0x423
+ write 0x1c0aa0 0x6c8bffff
+ write 0x1c0aa4 0x55f
+ write 0x1c0aa8 0x423
+ write 0x1c0aac 0x6c8bffff
+ write 0x51040 0x48a
+ write 0x5104c 0x15f
+ write 0x51050 0x0
+ write 0x51040 0x88a
+ write 0x5104c 0x0
+ write 0x51050 0xe0000
+ write 0x1c0a90 0x560
+ write 0x1c0a9c 0x423
+ write 0x1c0aa0 0x4c8bffff
+ write 0x1c0aa4 0x560
+ write 0x1c0aa8 0x423
+ write 0x1c0aac 0x4c8bffff
+ write 0x51040 0x48b
+ write 0x5104c 0x160
+ write 0x51050 0x0
+ write 0x51040 0x88b
+ write 0x5104c 0x0
+ write 0x51050 0xe0000
+ write 0x1c0a90 0x561
+ write 0x1c0a9c 0x533
+ write 0x1c0aa0 0x4c4a3fff
+ write 0x1c0aa4 0x561
+ write 0x1c0aa8 0x533
+ write 0x1c0aac 0x4c4a3fff
+ write 0x51040 0x48c
+ write 0x5104c 0x161
+ write 0x51050 0x0
+ write 0x51040 0x88c
+ write 0x5104c 0x0
+ write 0x51050 0x110008
+ write 0x1c0a90 0x562
+ write 0x1c0a9c 0x533
+ write 0x1c0aa0 0x4c023fff
+ write 0x1c0aa4 0x562
+ write 0x1c0aa8 0x533
+ write 0x1c0aac 0x4c023fff
+ write 0x51040 0x48d
+ write 0x5104c 0x162
+ write 0x51050 0x0
+ write 0x51040 0x88d
+ write 0x5104c 0x0
+ write 0x51050 0x110008
+ write 0x1c0a90 0x563
+ write 0x1c0a9c 0x533
+ write 0x1c0aa0 0x4c463fff
+ write 0x1c0aa4 0x563
+ write 0x1c0aa8 0x533
+ write 0x1c0aac 0x4c463fff
+ write 0x51040 0x48e
+ write 0x5104c 0x163
+ write 0x51050 0x0
+ write 0x51040 0x88e
+ write 0x5104c 0x0
+ write 0x51050 0x110000
+ write 0x1c0a90 0x564
+ write 0x1c0a9c 0x533
+ write 0x1c0aa0 0x4c4e3fff
+ write 0x1c0aa4 0x564
+ write 0x1c0aa8 0x533
+ write 0x1c0aac 0x4c4e3fff
+ write 0x51040 0x48f
+ write 0x5104c 0x164
+ write 0x51050 0x0
+ write 0x51040 0x88f
+ write 0x5104c 0x0
+ write 0x51050 0xf00000
+ write 0x1c0a90 0x565
+ write 0x1c0a9c 0x533
+ write 0x1c0aa0 0x4c523fff
+ write 0x1c0aa4 0x565
+ write 0x1c0aa8 0x533
+ write 0x1c0aac 0x4c523fff
+ write 0x51040 0x490
+ write 0x5104c 0x165
+ write 0x51050 0x0
+ write 0x51040 0x890
+ write 0x5104c 0x0
+ write 0x51050 0xe0000
+ write 0x1c0a90 0x566
+ write 0x1c0a9c 0x433
+ write 0x1c0aa0 0x4dc22fff
+ write 0x1c0aa4 0x566
+ write 0x1c0aa8 0x433
+ write 0x1c0aac 0x4dc22fff
+ write 0x1c0a90 0x567
+ write 0x1c0a9c 0x423
+ write 0x1c0aa0 0x4d8bffff
+ write 0x1c0aa4 0x567
+ write 0x1c0aa8 0x423
+ write 0x1c0aac 0x4d8bffff
+ write 0x1c0a90 0x568
+ write 0x1c0a9c 0x533
+ write 0x1c0aa0 0x4d4a3fff
+ write 0x1c0aa4 0x568
+ write 0x1c0aa8 0x533
+ write 0x1c0aac 0x4d4a3fff
+ write 0x51040 0x491
+ write 0x5104c 0x168
+ write 0x51050 0x0
+ write 0x51040 0x891
+ write 0x5104c 0x0
+ write 0x51050 0x290008
+ write 0x1c0a90 0x569
+ write 0x1c0a9c 0x533
+ write 0x1c0aa0 0x4d023fff
+ write 0x1c0aa4 0x569
+ write 0x1c0aa8 0x533
+ write 0x1c0aac 0x4d023fff
+ write 0x51040 0x492
+ write 0x5104c 0x169
+ write 0x51050 0x0
+ write 0x51040 0x892
+ write 0x5104c 0x0
+ write 0x51050 0x290008
+ write 0x1c0a90 0x56a
+ write 0x1c0a9c 0x533
+ write 0x1c0aa0 0x4d463fff
+ write 0x1c0aa4 0x56a
+ write 0x1c0aa8 0x533
+ write 0x1c0aac 0x4d463fff
+ write 0x51040 0x493
+ write 0x5104c 0x16a
+ write 0x51050 0x0
+ write 0x51040 0x893
+ write 0x5104c 0x0
+ write 0x51050 0x290000
+ write 0x1c0a90 0x56b
+ write 0x1c0a9c 0x533
+ write 0x1c0aa0 0x4d4e3fff
+ write 0x1c0aa4 0x56b
+ write 0x1c0aa8 0x533
+ write 0x1c0aac 0x4d4e3fff
+ write 0x51040 0x494
+ write 0x5104c 0x16b
+ write 0x51050 0x0
+ write 0x51040 0x894
+ write 0x5104c 0x0
+ write 0x51050 0x1090000
+ write 0x1c0a90 0x56c
+ write 0x1c0a9c 0x533
+ write 0x1c0aa0 0x4d5e3fff
+ write 0x1c0aa4 0x56c
+ write 0x1c0aa8 0x533
+ write 0x1c0aac 0x4d5e3fff
+ write 0x1c0a90 0x56d
+ write 0x1c0a9c 0x823
+ write 0x1c0aa0 0x4f8bffff
+ write 0x1c0aa4 0x56d
+ write 0x1c0aa8 0x823
+ write 0x1c0aac 0x4f8bffff
+ write 0x1c0a90 0x56e
+ write 0x1c0a9c 0x833
+ write 0x1c0aa0 0x4fb22fff
+ write 0x1c0aa4 0x56e
+ write 0x1c0aa8 0x833
+ write 0x1c0aac 0x4fb22fff
+ write 0x51040 0x495
+ write 0x5104c 0x16e
+ write 0x51050 0x0
+ write 0x51040 0x895
+ write 0x5104c 0x0
+ write 0x51050 0x190000
+ write 0x1c0a90 0x56f
+ write 0x1c0a9c 0x833
+ write 0x1c0aa0 0x4f322fff
+ write 0x1c0aa4 0x56f
+ write 0x1c0aa8 0x833
+ write 0x1c0aac 0x4f322fff
+ write 0x51040 0x496
+ write 0x5104c 0x16f
+ write 0x51050 0x0
+ write 0x51040 0x896
+ write 0x5104c 0x0
+ write 0x51050 0x190000
+ write 0x1c0a90 0x570
+ write 0x1c0a9c 0x9c3
+ write 0x1c0aa0 0x4f3128ff
+ write 0x1c0aa4 0x570
+ write 0x1c0aa8 0x9c3
+ write 0x1c0aac 0x4f3128ff
+ write 0x51040 0x497
+ write 0x5104c 0x170
+ write 0x51050 0x0
+ write 0x51040 0x897
+ write 0x5104c 0x0
+ write 0x51050 0x1c0008
+ write 0x1c0a90 0x571
+ write 0x1c0a9c 0x9c3
+ write 0x1c0aa0 0x4f3008ff
+ write 0x1c0aa4 0x571
+ write 0x1c0aa8 0x9c3
+ write 0x1c0aac 0x4f3008ff
+ write 0x51040 0x498
+ write 0x5104c 0x171
+ write 0x51050 0x0
+ write 0x51040 0x898
+ write 0x5104c 0x0
+ write 0x51050 0x1c0008
+ write 0x1c0a90 0x572
+ write 0x1c0a9c 0x9c3
+ write 0x1c0aa0 0x4f3118ff
+ write 0x1c0aa4 0x572
+ write 0x1c0aa8 0x9c3
+ write 0x1c0aac 0x4f3118ff
+ write 0x51040 0x499
+ write 0x5104c 0x172
+ write 0x51050 0x0
+ write 0x51040 0x899
+ write 0x5104c 0x0
+ write 0x51050 0x1c0000
+ write 0x1c0a90 0x573
+ write 0x1c0a9c 0x9c3
+ write 0x1c0aa0 0x4f3138ff
+ write 0x1c0aa4 0x573
+ write 0x1c0aa8 0x9c3
+ write 0x1c0aac 0x4f3138ff
+ write 0x51040 0x49a
+ write 0x5104c 0x173
+ write 0x51050 0x0
+ write 0x51040 0x89a
+ write 0x5104c 0x0
+ write 0x51050 0xf90000
+ write 0x1c0a90 0x574
+ write 0x1c0a9c 0x9c3
+ write 0x1c0aa0 0x4f3148ff
+ write 0x1c0aa4 0x574
+ write 0x1c0aa8 0x9c3
+ write 0x1c0aac 0x4f3148ff
+ write 0x51040 0x49b
+ write 0x5104c 0x174
+ write 0x51050 0x0
+ write 0x51040 0x89b
+ write 0x5104c 0x0
+ write 0x51050 0x190000
+ write 0x1c0a90 0x575
+ write 0x1c0a9c 0x843
+ write 0x1c0aa0 0x4f3708bf
+ write 0x1c0aa4 0x575
+ write 0x1c0aa8 0x843
+ write 0x1c0aac 0x4f3708bf
+ write 0x1c0a90 0x576
+ write 0x1c0a9c 0x833
+ write 0x1c0aa0 0x4f362fff
+ write 0x1c0aa4 0x576
+ write 0x1c0aa8 0x833
+ write 0x1c0aac 0x4f362fff
+ write 0x1c0a90 0x577
+ write 0x1c0a9c 0x9c3
+ write 0x1c0aa0 0x4f3528ff
+ write 0x1c0aa4 0x577
+ write 0x1c0aa8 0x9c3
+ write 0x1c0aac 0x4f3528ff
+ write 0x51040 0x49c
+ write 0x5104c 0x177
+ write 0x51050 0x0
+ write 0x51040 0x89c
+ write 0x5104c 0x0
+ write 0x51050 0x300008
+ write 0x1c0a90 0x578
+ write 0x1c0a9c 0x9c3
+ write 0x1c0aa0 0x4f3408ff
+ write 0x1c0aa4 0x578
+ write 0x1c0aa8 0x9c3
+ write 0x1c0aac 0x4f3408ff
+ write 0x51040 0x49d
+ write 0x5104c 0x178
+ write 0x51050 0x0
+ write 0x51040 0x89d
+ write 0x5104c 0x0
+ write 0x51050 0x300008
+ write 0x1c0a90 0x579
+ write 0x1c0a9c 0x9c3
+ write 0x1c0aa0 0x4f3518ff
+ write 0x1c0aa4 0x579
+ write 0x1c0aa8 0x9c3
+ write 0x1c0aac 0x4f3518ff
+ write 0x51040 0x49e
+ write 0x5104c 0x179
+ write 0x51050 0x0
+ write 0x51040 0x89e
+ write 0x5104c 0x0
+ write 0x51050 0x300000
+ write 0x1c0a90 0x57a
+ write 0x1c0a9c 0x9c3
+ write 0x1c0aa0 0x4f3538ff
+ write 0x1c0aa4 0x57a
+ write 0x1c0aa8 0x9c3
+ write 0x1c0aac 0x4f3538ff
+ write 0x51040 0x49f
+ write 0x5104c 0x17a
+ write 0x51050 0x0
+ write 0x51040 0x89f
+ write 0x5104c 0x0
+ write 0x51050 0x1110000
+ write 0x1c0a90 0x57b
+ write 0x1c0a9c 0x9c3
+ write 0x1c0aa0 0x4f3578ff
+ write 0x1c0aa4 0x57b
+ write 0x1c0aa8 0x9c3
+ write 0x1c0aac 0x4f3578ff
+ write 0x1c0a90 0x57c
+ write 0x1c0a9c 0x833
+ write 0x1c0aa0 0x4f822fff
+ write 0x1c0aa4 0x57c
+ write 0x1c0aa8 0x833
+ write 0x1c0aac 0x4f822fff
+ write 0x1c0a90 0x57d
+ write 0x1c0a9c 0x843
+ write 0x1c0aa0 0x4f82c8bf
+ write 0x1c0aa4 0x57d
+ write 0x1c0aa8 0x843
+ write 0x1c0aac 0x4f82c8bf
+ write 0x51040 0x4a0
+ write 0x5104c 0x17d
+ write 0x51050 0x0
+ write 0x51040 0x8a0
+ write 0x5104c 0x0
+ write 0x51050 0x370001
+ write 0x1c0a90 0x57e
+ write 0x1c0a9c 0x843
+ write 0x1c0aa0 0x4f80c8bf
+ write 0x1c0aa4 0x57e
+ write 0x1c0aa8 0x843
+ write 0x1c0aac 0x4f80c8bf
+ write 0x51040 0x4a1
+ write 0x5104c 0x17e
+ write 0x51050 0x0
+ write 0x51040 0x8a1
+ write 0x5104c 0x0
+ write 0x51050 0x370001
+ write 0x1c0a90 0x57f
+ write 0x1c0a9c 0xa53
+ write 0x1c0aa0 0x4f80c4a3
+ write 0x1c0aa4 0x57f
+ write 0x1c0aa8 0xa53
+ write 0x1c0aac 0x4f80c4a3
+ write 0x51040 0x4a2
+ write 0x5104c 0x17f
+ write 0x51050 0x0
+ write 0x51040 0x8a2
+ write 0x5104c 0x0
+ write 0x51050 0x3a0011
+ write 0x1c0a90 0x580
+ write 0x1c0a9c 0xa53
+ write 0x1c0aa0 0x4f80c023
+ write 0x1c0aa4 0x580
+ write 0x1c0aa8 0xa53
+ write 0x1c0aac 0x4f80c023
+ write 0x51040 0x4a3
+ write 0x5104c 0x180
+ write 0x51050 0x0
+ write 0x51040 0x8a3
+ write 0x5104c 0x0
+ write 0x51050 0x3a0011
+ write 0x1c0a90 0x581
+ write 0x1c0a9c 0xa53
+ write 0x1c0aa0 0x4f80c463
+ write 0x1c0aa4 0x581
+ write 0x1c0aa8 0xa53
+ write 0x1c0aac 0x4f80c463
+ write 0x51040 0x4a4
+ write 0x5104c 0x181
+ write 0x51050 0x0
+ write 0x51040 0x8a4
+ write 0x5104c 0x0
+ write 0x51050 0x3a0001
+ write 0x1c0a90 0x582
+ write 0x1c0a9c 0xa53
+ write 0x1c0aa0 0x4f80c4e3
+ write 0x1c0aa4 0x582
+ write 0x1c0aa8 0xa53
+ write 0x1c0aac 0x4f80c4e3
+ write 0x51040 0x4a5
+ write 0x5104c 0x182
+ write 0x51050 0x0
+ write 0x51040 0x8a5
+ write 0x5104c 0x0
+ write 0x51050 0x1190001
+ write 0x1c0a90 0x583
+ write 0x1c0a9c 0xa53
+ write 0x1c0aa0 0x4f80c523
+ write 0x1c0aa4 0x583
+ write 0x1c0aa8 0xa53
+ write 0x1c0aac 0x4f80c523
+ write 0x51040 0x4a6
+ write 0x5104c 0x183
+ write 0x51050 0x0
+ write 0x51040 0x8a6
+ write 0x5104c 0x0
+ write 0x51050 0x370001
+ write 0x1c0a90 0x584
+ write 0x1c0a9c 0x853
+ write 0x1c0aa0 0x4f80dc22
+ write 0x1c0aa4 0x584
+ write 0x1c0aa8 0x853
+ write 0x1c0aac 0x4f80dc22
+ write 0x1c0a90 0x585
+ write 0x1c0a9c 0x843
+ write 0x1c0aa0 0x4f80d8bf
+ write 0x1c0aa4 0x585
+ write 0x1c0aa8 0x843
+ write 0x1c0aac 0x4f80d8bf
+ write 0x1c0a90 0x586
+ write 0x1c0a9c 0xa53
+ write 0x1c0aa0 0x4f80d4a3
+ write 0x1c0aa4 0x586
+ write 0x1c0aa8 0xa53
+ write 0x1c0aac 0x4f80d4a3
+ write 0x51040 0x4a7
+ write 0x5104c 0x186
+ write 0x51050 0x0
+ write 0x51040 0x8a7
+ write 0x5104c 0x0
+ write 0x51050 0x420011
+ write 0x1c0a90 0x587
+ write 0x1c0a9c 0xa53
+ write 0x1c0aa0 0x4f80d023
+ write 0x1c0aa4 0x587
+ write 0x1c0aa8 0xa53
+ write 0x1c0aac 0x4f80d023
+ write 0x51040 0x4a8
+ write 0x5104c 0x187
+ write 0x51050 0x0
+ write 0x51040 0x8a8
+ write 0x5104c 0x0
+ write 0x51050 0x420011
+ write 0x1c0a90 0x588
+ write 0x1c0a9c 0xa53
+ write 0x1c0aa0 0x4f80d463
+ write 0x1c0aa4 0x588
+ write 0x1c0aa8 0xa53
+ write 0x1c0aac 0x4f80d463
+ write 0x51040 0x4a9
+ write 0x5104c 0x188
+ write 0x51050 0x0
+ write 0x51040 0x8a9
+ write 0x5104c 0x0
+ write 0x51050 0x420001
+ write 0x1c0a90 0x589
+ write 0x1c0a9c 0xa53
+ write 0x1c0aa0 0x4f80d4e3
+ write 0x1c0aa4 0x589
+ write 0x1c0aa8 0xa53
+ write 0x1c0aac 0x4f80d4e3
+ write 0x51040 0x4aa
+ write 0x5104c 0x189
+ write 0x51050 0x0
+ write 0x51040 0x8aa
+ write 0x5104c 0x0
+ write 0x51050 0x1230001
+ write 0x1c0a90 0x58a
+ write 0x1c0a9c 0xa53
+ write 0x1c0aa0 0x4f80d5e3
+ write 0x1c0aa4 0x58a
+ write 0x1c0aa8 0xa53
+ write 0x1c0aac 0x4f80d5e3
+ write 0x1c0a90 0x58b
+ write 0x1c0a9c 0x833
+ write 0x1c0aa0 0x4f7e2fff
+ write 0x1c0aa4 0x58b
+ write 0x1c0aa8 0x833
+ write 0x1c0aac 0x4f7e2fff
+ write 0x51040 0x4ab
+ write 0x5104c 0x18b
+ write 0x51050 0x4000
+ write 0x51040 0x8ab
+ write 0x5104c 0x0
+ write 0x51050 0x12b0000
+ write 0x1c0a90 0x58c
+ write 0x1c0a9c 0x843
+ write 0x1c0aa0 0x4f7ec8bf
+ write 0x1c0aa4 0x58c
+ write 0x1c0aa8 0x843
+ write 0x1c0aac 0x4f7ec8bf
+ write 0x51040 0x4ac
+ write 0x5104c 0x18c
+ write 0x51050 0x0
+ write 0x51040 0x8ac
+ write 0x5104c 0x0
+ write 0x51050 0x370001
+ write 0x51040 0x4ad
+ write 0x5104c 0x18c
+ write 0x51050 0x4000
+ write 0x51040 0x8ad
+ write 0x5104c 0x0
+ write 0x51050 0x370000
+ write 0x1c0a90 0x58d
+ write 0x1c0a9c 0x843
+ write 0x1c0aa0 0x4f7cc8bf
+ write 0x1c0aa4 0x58d
+ write 0x1c0aa8 0x843
+ write 0x1c0aac 0x4f7cc8bf
+ write 0x51040 0x4ae
+ write 0x5104c 0x18d
+ write 0x51050 0x0
+ write 0x51040 0x8ae
+ write 0x5104c 0x0
+ write 0x51050 0x370001
+ write 0x51040 0x4af
+ write 0x5104c 0x18d
+ write 0x51050 0x4000
+ write 0x51040 0x8af
+ write 0x5104c 0x0
+ write 0x51050 0x370000
+ write 0x1c0a90 0x58e
+ write 0x1c0a9c 0xa53
+ write 0x1c0aa0 0x4f7cc4a3
+ write 0x1c0aa4 0x58e
+ write 0x1c0aa8 0xa53
+ write 0x1c0aac 0x4f7cc4a3
+ write 0x51040 0x4b0
+ write 0x5104c 0x18e
+ write 0x51050 0x0
+ write 0x51040 0x8b0
+ write 0x5104c 0x0
+ write 0x51050 0x3a0011
+ write 0x51040 0x4b1
+ write 0x5104c 0x18e
+ write 0x51050 0x4000
+ write 0x51040 0x8b1
+ write 0x5104c 0x0
+ write 0x51050 0x3a0010
+ write 0x1c0a90 0x58f
+ write 0x1c0a9c 0xa53
+ write 0x1c0aa0 0x4f7cc023
+ write 0x1c0aa4 0x58f
+ write 0x1c0aa8 0xa53
+ write 0x1c0aac 0x4f7cc023
+ write 0x51040 0x4b2
+ write 0x5104c 0x18f
+ write 0x51050 0x0
+ write 0x51040 0x8b2
+ write 0x5104c 0x0
+ write 0x51050 0x3a0011
+ write 0x51040 0x4b3
+ write 0x5104c 0x18f
+ write 0x51050 0x4000
+ write 0x51040 0x8b3
+ write 0x5104c 0x0
+ write 0x51050 0x3a0010
+ write 0x1c0a90 0x590
+ write 0x1c0a9c 0xa53
+ write 0x1c0aa0 0x4f7cc463
+ write 0x1c0aa4 0x590
+ write 0x1c0aa8 0xa53
+ write 0x1c0aac 0x4f7cc463
+ write 0x51040 0x4b4
+ write 0x5104c 0x190
+ write 0x51050 0x0
+ write 0x51040 0x8b4
+ write 0x5104c 0x0
+ write 0x51050 0x3a0001
+ write 0x51040 0x4b5
+ write 0x5104c 0x190
+ write 0x51050 0x4000
+ write 0x51040 0x8b5
+ write 0x5104c 0x0
+ write 0x51050 0x3a0000
+ write 0x1c0a90 0x591
+ write 0x1c0a9c 0xa53
+ write 0x1c0aa0 0x4f7cc4e3
+ write 0x1c0aa4 0x591
+ write 0x1c0aa8 0xa53
+ write 0x1c0aac 0x4f7cc4e3
+ write 0x51040 0x4b6
+ write 0x5104c 0x191
+ write 0x51050 0x0
+ write 0x51040 0x8b6
+ write 0x5104c 0x0
+ write 0x51050 0x1190001
+ write 0x51040 0x4b7
+ write 0x5104c 0x191
+ write 0x51050 0x4000
+ write 0x51040 0x8b7
+ write 0x5104c 0x0
+ write 0x51050 0x1190000
+ write 0x1c0a90 0x592
+ write 0x1c0a9c 0xa53
+ write 0x1c0aa0 0x4f7cc523
+ write 0x1c0aa4 0x592
+ write 0x1c0aa8 0xa53
+ write 0x1c0aac 0x4f7cc523
+ write 0x51040 0x4b8
+ write 0x5104c 0x192
+ write 0x51050 0x0
+ write 0x51040 0x8b8
+ write 0x5104c 0x0
+ write 0x51050 0x370001
+ write 0x51040 0x4b9
+ write 0x5104c 0x192
+ write 0x51050 0x4000
+ write 0x51040 0x8b9
+ write 0x5104c 0x0
+ write 0x51050 0x370000
+ write 0x1c0a90 0x593
+ write 0x1c0a9c 0x853
+ write 0x1c0aa0 0x4f7cdc22
+ write 0x1c0aa4 0x593
+ write 0x1c0aa8 0x853
+ write 0x1c0aac 0x4f7cdc22
+ write 0x51040 0x4ba
+ write 0x5104c 0x193
+ write 0x51050 0x4000
+ write 0x51040 0x8ba
+ write 0x5104c 0x0
+ write 0x51050 0x12b0010
+ write 0x1c0a90 0x594
+ write 0x1c0a9c 0x843
+ write 0x1c0aa0 0x4f7cd8bf
+ write 0x1c0aa4 0x594
+ write 0x1c0aa8 0x843
+ write 0x1c0aac 0x4f7cd8bf
+ write 0x51040 0x4bb
+ write 0x5104c 0x194
+ write 0x51050 0x4000
+ write 0x51040 0x8bb
+ write 0x5104c 0x0
+ write 0x51050 0x12b0010
+ write 0x1c0a90 0x595
+ write 0x1c0a9c 0xa53
+ write 0x1c0aa0 0x4f7cd4a3
+ write 0x1c0aa4 0x595
+ write 0x1c0aa8 0xa53
+ write 0x1c0aac 0x4f7cd4a3
+ write 0x51040 0x4bc
+ write 0x5104c 0x195
+ write 0x51050 0x0
+ write 0x51040 0x8bc
+ write 0x5104c 0x0
+ write 0x51050 0x420011
+ write 0x51040 0x4bd
+ write 0x5104c 0x195
+ write 0x51050 0x4000
+ write 0x51040 0x8bd
+ write 0x5104c 0x0
+ write 0x51050 0x420010
+ write 0x1c0a90 0x596
+ write 0x1c0a9c 0xa53
+ write 0x1c0aa0 0x4f7cd023
+ write 0x1c0aa4 0x596
+ write 0x1c0aa8 0xa53
+ write 0x1c0aac 0x4f7cd023
+ write 0x51040 0x4be
+ write 0x5104c 0x196
+ write 0x51050 0x0
+ write 0x51040 0x8be
+ write 0x5104c 0x0
+ write 0x51050 0x420011
+ write 0x51040 0x4bf
+ write 0x5104c 0x196
+ write 0x51050 0x4000
+ write 0x51040 0x8bf
+ write 0x5104c 0x0
+ write 0x51050 0x420010
+ write 0x1c0a90 0x597
+ write 0x1c0a9c 0xa53
+ write 0x1c0aa0 0x4f7cd463
+ write 0x1c0aa4 0x597
+ write 0x1c0aa8 0xa53
+ write 0x1c0aac 0x4f7cd463
+ write 0x51040 0x4c0
+ write 0x5104c 0x197
+ write 0x51050 0x0
+ write 0x51040 0x8c0
+ write 0x5104c 0x0
+ write 0x51050 0x420001
+ write 0x51040 0x4c1
+ write 0x5104c 0x197
+ write 0x51050 0x4000
+ write 0x51040 0x8c1
+ write 0x5104c 0x0
+ write 0x51050 0x420000
+ write 0x1c0a90 0x598
+ write 0x1c0a9c 0xa53
+ write 0x1c0aa0 0x4f7cd4e3
+ write 0x1c0aa4 0x598
+ write 0x1c0aa8 0xa53
+ write 0x1c0aac 0x4f7cd4e3
+ write 0x51040 0x4c2
+ write 0x5104c 0x198
+ write 0x51050 0x0
+ write 0x51040 0x8c2
+ write 0x5104c 0x0
+ write 0x51050 0x1230001
+ write 0x51040 0x4c3
+ write 0x5104c 0x198
+ write 0x51050 0x4000
+ write 0x51040 0x8c3
+ write 0x5104c 0x0
+ write 0x51050 0x1230000
+ write 0x1c0a90 0x599
+ write 0x1c0a9c 0xa53
+ write 0x1c0aa0 0x4f7cd5e3
+ write 0x1c0aa4 0x599
+ write 0x1c0aa8 0xa53
+ write 0x1c0aac 0x4f7cd5e3
+ write 0x51040 0x4c4
+ write 0x5104c 0x199
+ write 0x51050 0x4000
+ write 0x51040 0x8c4
+ write 0x5104c 0x0
+ write 0x51050 0x12b0000
+ write 0x1c0a90 0x59a
+ write 0x1c0a9c 0x411
+ write 0x1c0aa0 0xe1ffffff
+ write 0x1c0aa4 0x59a
+ write 0x1c0aa8 0x411
+ write 0x1c0aac 0xe1ffffff
+ write 0x1c0a90 0x59b
+ write 0x1c0a9c 0x421
+ write 0x1c0aa0 0xec8bffff
+ write 0x1c0aa4 0x59b
+ write 0x1c0aa8 0x421
+ write 0x1c0aac 0xec8bffff
+ write 0x51040 0x4c5
+ write 0x5104c 0x19b
+ write 0x51050 0x0
+ write 0x51040 0x8c5
+ write 0x5104c 0x0
+ write 0x51050 0xe0000
+ write 0x1c0a90 0x59c
+ write 0x1c0a9c 0x421
+ write 0x1c0aa0 0xcc8bffff
+ write 0x1c0aa4 0x59c
+ write 0x1c0aa8 0x421
+ write 0x1c0aac 0xcc8bffff
+ write 0x51040 0x4c6
+ write 0x5104c 0x19c
+ write 0x51050 0x0
+ write 0x51040 0x8c6
+ write 0x5104c 0x0
+ write 0x51050 0xe0000
+ write 0x1c0a90 0x59d
+ write 0x1c0a9c 0x531
+ write 0x1c0aa0 0xcc4a3fff
+ write 0x1c0aa4 0x59d
+ write 0x1c0aa8 0x531
+ write 0x1c0aac 0xcc4a3fff
+ write 0x51040 0x4c7
+ write 0x5104c 0x19d
+ write 0x51050 0x0
+ write 0x51040 0x8c7
+ write 0x5104c 0x0
+ write 0x51050 0x110008
+ write 0x1c0a90 0x59e
+ write 0x1c0a9c 0x531
+ write 0x1c0aa0 0xcc463fff
+ write 0x1c0aa4 0x59e
+ write 0x1c0aa8 0x531
+ write 0x1c0aac 0xcc463fff
+ write 0x51040 0x4c8
+ write 0x5104c 0x19e
+ write 0x51050 0x0
+ write 0x51040 0x8c8
+ write 0x5104c 0x0
+ write 0x51050 0x110000
+ write 0x1c0a90 0x59f
+ write 0x1c0a9c 0x531
+ write 0x1c0aa0 0xcc4e3fff
+ write 0x1c0aa4 0x59f
+ write 0x1c0aa8 0x531
+ write 0x1c0aac 0xcc4e3fff
+ write 0x51040 0x4c9
+ write 0x5104c 0x19f
+ write 0x51050 0x0
+ write 0x51040 0x8c9
+ write 0x5104c 0x0
+ write 0x51050 0xf00000
+ write 0x1c0a90 0x5a0
+ write 0x1c0a9c 0x531
+ write 0x1c0aa0 0xcc523fff
+ write 0x1c0aa4 0x5a0
+ write 0x1c0aa8 0x531
+ write 0x1c0aac 0xcc523fff
+ write 0x51040 0x4ca
+ write 0x5104c 0x1a0
+ write 0x51050 0x0
+ write 0x51040 0x8ca
+ write 0x5104c 0x0
+ write 0x51050 0xe0000
+ write 0x1c0a90 0x5a1
+ write 0x1c0a9c 0x431
+ write 0x1c0aa0 0xcdc22fff
+ write 0x1c0aa4 0x5a1
+ write 0x1c0aa8 0x431
+ write 0x1c0aac 0xcdc22fff
+ write 0x1c0a90 0x5a2
+ write 0x1c0a9c 0x421
+ write 0x1c0aa0 0xcd8bffff
+ write 0x1c0aa4 0x5a2
+ write 0x1c0aa8 0x421
+ write 0x1c0aac 0xcd8bffff
+ write 0x1c0a90 0x5a3
+ write 0x1c0a9c 0x531
+ write 0x1c0aa0 0xcd4a3fff
+ write 0x1c0aa4 0x5a3
+ write 0x1c0aa8 0x531
+ write 0x1c0aac 0xcd4a3fff
+ write 0x51040 0x4cb
+ write 0x5104c 0x1a3
+ write 0x51050 0x0
+ write 0x51040 0x8cb
+ write 0x5104c 0x0
+ write 0x51050 0x290008
+ write 0x1c0a90 0x5a4
+ write 0x1c0a9c 0x531
+ write 0x1c0aa0 0xcd463fff
+ write 0x1c0aa4 0x5a4
+ write 0x1c0aa8 0x531
+ write 0x1c0aac 0xcd463fff
+ write 0x51040 0x4cc
+ write 0x5104c 0x1a4
+ write 0x51050 0x0
+ write 0x51040 0x8cc
+ write 0x5104c 0x0
+ write 0x51050 0x290000
+ write 0x1c0a90 0x5a5
+ write 0x1c0a9c 0x531
+ write 0x1c0aa0 0xcd4e3fff
+ write 0x1c0aa4 0x5a5
+ write 0x1c0aa8 0x531
+ write 0x1c0aac 0xcd4e3fff
+ write 0x51040 0x4cd
+ write 0x5104c 0x1a5
+ write 0x51050 0x0
+ write 0x51040 0x8cd
+ write 0x5104c 0x0
+ write 0x51050 0x1090000
+ write 0x1c0a90 0x5a6
+ write 0x1c0a9c 0x531
+ write 0x1c0aa0 0xcd5e3fff
+ write 0x1c0aa4 0x5a6
+ write 0x1c0aa8 0x531
+ write 0x1c0aac 0xcd5e3fff
+ write 0x1c0a90 0x5a7
+ write 0x1c0a9c 0x21
+ write 0x1c0aa0 0x4c8bffff
+ write 0x1c0aa4 0x5a7
+ write 0x1c0aa8 0x21
+ write 0x1c0aac 0x4c8bffff
+ write 0x51040 0x4ce
+ write 0x5104c 0x1a7
+ write 0x51050 0x0
+ write 0x51040 0x8ce
+ write 0x5104c 0x0
+ write 0x51050 0xe0000
\ No newline at end of file
diff --git a/fvlproto/run.sh b/fvlproto/run.sh
new file mode 100644
index 0000000..f8a6573
--- /dev/null
+++ b/fvlproto/run.sh
@@ -0,0 +1,20 @@
+#!/bin/sh
+
+#./build/fvlproto -c 3d5 -n 4 -- --lb-mode sw --rx 2,2 --w 4,6,7,8,9 --lb-proto 50
+
+#./build/fvlproto -c 3d5 -n 4 -- --lb-mode sw --rx 1,2 --w 4,6,7,8,9 --lb-proto 50
+#./build/fvlproto -c 3d5 -n 4 -- --lb-mode sw --rx 0,2 --w 4,6,7,8,9 --lb-proto 50
+
+#./build/fvlproto -c 7fff -n 4 -- --lb-mode sw --rx 0,0 --w 4,6,7,8,9 --lb-proto 50
+#RX - worked for me
+#./build/fvlproto -c 3fff -n 4 -- --lb-mode sw --rx 0,2 --w 1,4,5,6,7 --lb-proto 50
+#./build/fvlproto -c 3fff -n 4 -- --lb-mode rss --rx 0,2 --w 1,4,5,6,7 --lb-proto 50
+
+
+#Shobhi
+
+
+#./build/fvlproto -c 3fff -n 4 -- --rx 0,2 --tx 1,12:20:30:40:50:60 --w 4,6,7,8,9 --lb-proto 50 --lb-mode sw --input regs.txt
+./build/fvlproto -c 3fff -n 4 -- --rx 0,2 --w 4,6,7,8,9 --lb-mode sw --input regs.txt
+
+
diff --git a/fvlproto/test/Makefile b/fvlproto/test/Makefile
new file mode 100644
index 0000000..00b878b
--- /dev/null
+++ b/fvlproto/test/Makefile
@@ -0,0 +1,29 @@
+# BSD LICENSE
+
+ifeq ($(RTE_SDK),)
+$(error "Please define RTE_SDK environment variable")
+endif
+
+# Default target, can be overriden by command line or environment
+RTE_TARGET ?= x86_64-native-linuxapp-gcc
+
+include $(RTE_SDK)/mk/rte.vars.mk
+
+# binary name
+APP = readreg
+
+# all source are stored in SRCS-y
+SRCS-y := readreg.c
+
+CFLAGS += -O3 -g
+CFLAGS += $(WERROR_FLAGS)
+#CFLAGS_config.o := -D_GNU_SOURCE
+
+# workaround for a gcc bug with noreturn attribute
+# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12603
+ifeq ($(CONFIG_RTE_TOOLCHAIN_GCC),y)
+#CFLAGS_main.o += -Wno-return-type
+CFLAGS_readreg.o += -Wno-return-type
+endif
+
+include $(RTE_SDK)/mk/rte.extapp.mk
diff --git a/fvlproto/test/readreg.c b/fvlproto/test/readreg.c
new file mode 100644
index 0000000..717ddb3
--- /dev/null
+++ b/fvlproto/test/readreg.c
@@ -0,0 +1,167 @@
+// readreg.c
+
+#include <stdio.h>
+#include <stdint.h>
+#include <stdbool.h>
+#include <rte_ethdev.h>
+//#include "i40e.h"
+//#include "trb.h"
+
+enum {
+ I40E_TRB_L2_PTP = 0, /* 0 */
+ I40E_TRB_L2_FIP, /* 1 */
+ I40E_TRB_VXLAN_KEY, /* 2 */
+ I40E_TRB_GENEVE_KEY, /* 3 */
+ I40E_TRB_L2_LLDP, /* 4 */
+ I40E_TRB_L2_MPLS, /* 5 */
+ I40E_TRB_GENERIC_UDP_KEY, /* 6 */
+ I40E_TRB_L2_NSH, /* 7 */
+ I40E_TRB_L2_888E, /* 8 */
+ I40E_TRB_L2_ARP, /* 9 */
+ I40E_TRB_GRE_KEY, /* 10 */
+ I40E_TRB_GRE_KEYC, /* 11 **/
+ I40E_TRB_L3_IPV4, /* 12 */
+ I40E_TRB_L3_IPV6, /* 13 */
+ I40E_TRB_L2_FCOE, /* 14 */
+ I40E_TRB_GRE_NO_KEY, /* 15 GRENAT */
+ I40E_TRB_TEREDO, /* 16 NAT */
+ I40E_TRB_TCP, /* 17 */
+ I40E_TRB_UDP, /* 18 */
+ I40E_TRB_SCTP, /* 19 */
+ I40E_TRB_ICMP, /* 20 */
+ I40E_TRB_RESERVED_21, /* 21 */
+ I40E_TRB_RESERVED_22, /* 22 */
+ I40E_TRB_IPV6_ICMP, /* 23 */
+ I40E_TRB_IPV6_OTHER, /* 24 */
+ I40E_TRB_IPV6_DST_ROUTE, /* 25 */
+ I40E_TRB_FC_RDY_RW, /* 26 */
+ I40E_TRB_FC_DATA, /* 27 */
+ I40E_TRB_FC_VFT, /* 28 */
+ I40E_TRB_FC_RSP, /* 29 */
+ I40E_TRB_FC_OTHER, /* 30 */
+ I40E_TRB_CLOUD_MACVLAN, /* 31 */
+ I40E_TRB_CLOUD_MAC, /* 32 */
+ I40E_TRB_L2_PAYLOAD, /* 33 */
+ I40E_TRB_L3_PAYLOAD, /* 34 */
+ I40E_TRB_L4_PAYLOAD, /* 35 */
+ I40E_TRB_L2_HDR0, /* 36 */
+ I40E_TRB_L2_HDR1, /* 37 IP First Nibble */
+ I40E_TRB_L2_HDR2, /* 38 FCRCTL */
+ I40E_TRB_L2_HDR_STAG, /* 39 IDLE */
+ I40E_TRB_L2_HDR_EXVLAN, /* 40 VXLANGPE */
+ I40E_TRB_L2_HDR_VLAN, /* 41 UDPTIMESYNC1 */
+ I40E_TRB_L2_CTS, /* 42 NSH_TUNNEL */
+ I40E_TRB_L2_HDR7, /* 43 GRE */
+ I40E_TRB_L2_HDR8, /* 44 IPV4_FRAG */
+ I40E_TRB_L2_HDR9, /* 45 */
+ I40E_TRB_L2_RESERVED46, /* 46 */
+ I40E_TRB_L2_RESERVED47, /* 47 */
+ I40E_TRB_IP_HDR_FRAG, /* 48 IPV6_FRAG */
+ I40E_TRB_IP_INNER_HDR_OP, /* 49 MACDUMMY */
+ I40E_TRB_TCP_HDR_OP, /* 50 */
+ I40E_TRB_L2_RESERVED51, /* 51 */
+ I40E_TRB_EXT_IPV4, /* 52 */
+ I40E_TRB_EXT_IPV6, /* 53 */
+ I40E_TRB_FC_BIT23, /* 54 */
+ I40E_TRB_TCP_SYN, /* 55 */
+ I40E_TRB_FC_BIT22, /* 56 */
+ I40E_TRB_FLEX_OAM_VXLAN_GPE, /* 57 */
+ I40E_TRB_FLEX_OAM_GENEVE, /* 58 */
+ I40E_TRB_FLEX_RESERVED59, /* 59 */
+ I40E_TRB_FLEX_RESERVED60, /* 60 */
+ I40E_TRB_L2_UCAST_MAC, /* 61 */
+ I40E_TRB_L2_MCAST_MAC, /* 62 */
+ I40E_TRB_L2_BCAST_MAC /* 63 */
+};
+
+// from i40e.h
+int i40e_dev_reg_write(uint8_t portid, uint32_t reg_addr, uint32_t reg_val, int ctl);
+
+int i40e_dev_reg_read(uint8_t portid, uint32_t reg_addr, uint64_t *reg_val, int ctl);
+// from i40e_int.h
+/* Some defines from internal i40e_register_x710_int.h */
+
+#define I40E_GLQF_PTYPE(_i, _j) (0x00268200 + ((_i) * 4 + (_j) * 8)) /* _i=0...1, _j=0...63 */ /* Reset: CORER */
+#define I40E_GLQF_PTYPE_MAX_INDEX 1
+#define I40E_GLQF_PTYPE_PROT_LAYER_SHIFT 0
+#define I40E_GLQF_PTYPE_PROT_LAYER_MASK I40E_MASK(0xFFFFFFFF, I40E_GLQF_PTYPE_PROT_LAYER_SHIFT)
+
+#define I40E_GLQF_PTYPE_ENA(_i, _j) (0x00268600 + ((_i) * 4 + (_j) * 8)) /* _i=0...1, _j=0...63 */ /* Reset: CORER */
+#define I40E_GLQF_PTYPE_ENA_MAX_INDEX 1
+#define I40E_GLQF_PTYPE_ENA_PROT_LAYER_SHIFT 0
+#define I40E_GLQF_PTYPE_ENA_PROT_LAYER_MASK I40E_MASK(0xFFFFFFFF, I40E_GLQF_PTYPE_ENA_PROT_LAYER_SHIFT)
+
+#define I40E_GLPPRS_INDIRECT_ADDRESS 0x001C0A90 /* Reset: CORER */
+#define I40E_GLPPRS_INDIRECT_ADDRESS_ADDR_SHIFT 0
+#define I40E_GLPPRS_INDIRECT_ADDRESS_ADDR_MASK I40E_MASK(0xFFFF, I40E_GLPPRS_INDIRECT_ADDRESS_ADDR_SHIFT)
+
+#define I40E_GLPPRS_INDIRECT_DATA(_i) (0x001C0A94 + ((_i) * 4)) /* _i=0...3 */ /* Reset: CORER */
+#define I40E_GLPPRS_INDIRECT_DATA_MAX_INDEX 3
+#define I40E_GLPPRS_INDIRECT_DATA_DATA_SHIFT 0
+#define I40E_GLPPRS_INDIRECT_DATA_DATA_MASK I40E_MASK(0xFFFFFFFF, I40E_GLPPRS_INDIRECT_DATA_DATA_SHIFT)
+
+#define I40E_GLRCU_INDIRECT_ADDRESS 0x001C0AA4 /* Reset: CORER */
+#define I40E_GLRCU_INDIRECT_ADDRESS_GLRCU_INDIRECT_ADDRESS_SHIFT 0
+#define I40E_GLRCU_INDIRECT_ADDRESS_GLRCU_INDIRECT_ADDRESS_MASK I40E_MASK(0xFFFF, I40E_GLRCU_INDIRECT_ADDRESS_GLRCU_INDIRECT_ADDRESS_SHIFT)
+
+#define I40E_GLRCU_INDIRECT_DATA(_i) (0x001C0AA8 + ((_i) * 4)) /* _i=0...1 */ /* Reset: CORER */
+#define I40E_GLRCU_INDIRECT_DATA_MAX_INDEX 1
+#define I40E_GLRCU_INDIRECT_DATA_GLRCU_INDIRECT_DATA_SHIFT 0
+#define I40E_GLRCU_INDIRECT_DATA_GLRCU_INDIRECT_DATA_MASK I40E_MASK(0xFFFFFFFF, I40E_GLRCU_INDIRECT_DATA_GLRCU_INDIRECT_DATA_SHIFT)
+
+#define I40E_GLQF_L3_MAP(_i) (0x0026C700 + ((_i) * 4)) /* _i=0...63 */ /* Reset: CORER */
+#define I40E_GLQF_L3_MAP_MAX_INDEX 63
+#define I40E_GLQF_L3_MAP_TR_IDX_CODE_SHIFT 0
+#define I40E_GLQF_L3_MAP_TR_IDX_CODE_MASK I40E_MASK(0x3F, I40E_GLQF_L3_MAP_TR_IDX_CODE_SHIFT)
+#define I40E_GLQF_L3_MAP_TR_OPCODE_SHIFT 6
+#define I40E_GLQF_L3_MAP_TR_OPCODE_MASK I40E_MASK(0x3, I40E_GLQF_L3_MAP_TR_OPCODE_SHIFT)
+#define I40E_GLQF_L3_MAP_MIN_SKIP_GAP_SHIFT 8
+#define I40E_GLQF_L3_MAP_MIN_SKIP_GAP_MASK I40E_MASK(0x7F, I40E_GLQF_L3_MAP_MIN_SKIP_GAP_SHIFT)
+#define I40E_GLQF_L3_MAP_MIN_SKIP_ENA_SHIFT 15
+#define I40E_GLQF_L3_MAP_MIN_SKIP_ENA_MASK I40E_MASK(0x1, I40E_GLQF_L3_MAP_MIN_SKIP_ENA_SHIFT)
+
+
+#define MEMTYPE_HEADER_SKIP 0x000
+#define MEMTYPE_PROTO 0x100
+#define MEMTYPE_PTYPE 0x500
+
+#define PROTO_SPACE_IPV4 1
+#define PROTO_SPACE_IPV6 2
+
+#define SKIP_SELECT_CONST 2
+
+static void i40_read_memconfig(uint8_t portid, uint32_t memtype, uint32_t entry)
+{
+ uint64_t val;
+ printf(" memtype + entry = %x in %s\n", memtype + entry, __func__);
+ i40e_dev_reg_write(portid, I40E_GLPPRS_INDIRECT_ADDRESS, memtype + entry, 0);
+ i40e_dev_reg_read(portid, I40E_GLPPRS_INDIRECT_DATA(2), &val, 0);
+ printf("I40E_GLPPRS_INDIRECT_DATA(2)=%lx in %s\n", val, __func__);
+ i40e_dev_reg_read(portid, I40E_GLPPRS_INDIRECT_DATA(3), &val, 0);
+ printf("I40E_GLPPRS_INDIRECT_DATA(3)=%lx in %s\n", val, __func__);
+ printf("****************************************************\n" );
+ i40e_dev_reg_write(portid, I40E_GLRCU_INDIRECT_ADDRESS, memtype + entry, 0);
+ i40e_dev_reg_read(portid, I40E_GLRCU_INDIRECT_DATA(0), &val, 0);
+ printf("I40E_GLRCU_INDIRECT_DATA(0)=%lx\n",val);
+ i40e_dev_reg_read(portid, I40E_GLRCU_INDIRECT_DATA(1), &val, 0);
+ printf("I40E_GLRCU_INDIRECT_DATA(1)=%lx\n",val);
+}
+
+int main(int argc, char **argv)
+{
+ uint8_t portid = 0;
+ int ret;
+ uint32_t proto_entry = 36; // ICMPv4
+ ret = rte_eal_init(argc, argv);
+ if (ret < 0) {
+ printf("rte_eal_init() failed in %s\n",__func__);
+ return -1;
+ }
+ printf("calling i40_read_memconfig() for MEMTYPE_PROTO + 0x24 in %s\n",__func__);
+ i40_read_memconfig(portid, MEMTYPE_PROTO, proto_entry);
+
+ printf("calling i40_read_memconfig() for MEMTYPE_HEADER_SKIP + I40E_TRB_ICMP in %s\n",__func__);
+ i40_read_memconfig(portid, MEMTYPE_HEADER_SKIP, I40E_TRB_ICMP);
+
+ return ret;
+}
diff --git a/fvlproto/test/run.sh b/fvlproto/test/run.sh
new file mode 100644
index 0000000..0ece4b2
--- /dev/null
+++ b/fvlproto/test/run.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+./build/readreg -c 3fff -n 4
\ No newline at end of file
--
2.5.5
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2016-04-21 17:33 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-04-21 17:24 [dpdk-dev] [PATCH 1/1] add writing registers Rami Rosen
2016-04-21 17:33 ` Rosen, Rami
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).