2012-12-06 18:17:31

by Gabor Juhos

[permalink] [raw]
Subject: [PATCH v2 00/13] qca-swiss-army-knife: initvals fixes and improvements

This patch-set contain patches for the initvals tool.
The first seven patches are fixing minor bugs, the next
three imporves the code a bit and the last four patches
are adding suport for AR9550.

Changes since v1:
- rebase against the current version
- add four new patch to fix more issues

Gabor Juhos (13):
qca-swiss-army-knife: refresh checksums.txt
qca-swiss-army-knife: fix ar9330_1p2_initvals.h
qca-swiss-army-knife: print AR9565 initvals
qca-swiss-army-knife: fix comment in ar9340_initvals.h
qca-swiss-army-knife: add missing families to verify_checksums.sh
qca-swiss-army-knife: fix string length for ar9340
qca-swiss-army-knife: add ar9462-2p0 to the usage text
qca-swiss-army-knife: reformat INI_PRINT_* macros
qca-swiss-army-knife: simplify initval family handling
qca-swiss-army-knife: allow to print initvals with more than 5 columns
qca-swiss-army-knife: add initval support for AR955X
qca-swiss-army-knife: add checksums for AR955X initvals
qca-swiss-army-knife: allow to verify AR955X initvals

tools/initvals/Makefile | 2 +
tools/initvals/ar9330_1p2_initvals.h | 132 +++-
tools/initvals/ar9340_initvals.h | 2 +-
tools/initvals/ar955x_1p0_initvals.h | 1284 ++++++++++++++++++++++++++++++++++
tools/initvals/checksums.txt | 89 ++-
tools/initvals/initvals.c | 315 +++++----
tools/initvals/verify_checksums.sh | 2 +-
7 files changed, 1659 insertions(+), 167 deletions(-)
create mode 100644 tools/initvals/ar955x_1p0_initvals.h

--
1.7.10



2012-12-06 18:17:33

by Gabor Juhos

[permalink] [raw]
Subject: [PATCH v2 07/13] qca-swiss-army-knife: add ar9462-2p0 to the usage text

Signed-off-by: Gabor Juhos <[email protected]>
---
tools/initvals/initvals.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/initvals/initvals.c b/tools/initvals/initvals.c
index cff2c4e..0ab4d7f 100644
--- a/tools/initvals/initvals.c
+++ b/tools/initvals/initvals.c
@@ -795,7 +795,7 @@ static void usage()
{
printf("Usage: initvals [-w] "
"[-f ar5008 | ar9001 | ar9002 | "
- "ar9003-2p2 | ar9330-1p1 | ar9330-1p2 | ar9485 | ar9580-1p0 | ar9565-1p0 ]\n");
+ "ar9003-2p2 | ar9330-1p1 | ar9330-1p2 | ar9462-2p0 | ar9485 | ar9580-1p0 | ar9565-1p0 ]\n");
}

static void print_initvals_family(char *family, bool check)
--
1.7.10


2012-12-07 17:57:15

by Luis R. Rodriguez

[permalink] [raw]
Subject: Re: [PATCH v2 10/13] qca-swiss-army-knife: allow to print initvals with more than 5 columns

On Fri, Dec 7, 2012 at 8:23 AM, Gabor Juhos <[email protected]> wrote:
> 2012.12.07. 0:02 keltezéssel, Luis R. Rodriguez írta:
>> On Thu, Dec 6, 2012 at 10:17 AM, Gabor Juhos <[email protected]> wrote:
>>> @@ -416,19 +423,26 @@ static u32 ath9k_patch_initval(u32 idx, u32 val)
>>> return val;
>>> }
>>>
>>> -static void ath9k_hw_print_initval(const char *name, const u32 *array, u32 rows, u32 columns, bool onedim)
>>> +static void ath9k_hw_print_initval(const char *name, const u32 *array, u32 rows,
>>> + u32 columns, bool onedim, bool wide)
>>> {
>>> - u32 p_columns = columns > 5 ? 5 : columns;
>>> + u32 p_columns;
>>> u32 col, row;
>>>
>>> - /*
>>> - * This checksum stuff is designed for columns <= 8),
>>> - * and spreads the checksum over 64 bits but since currently
>>> - * the initval max column size is 6 we only use the first 48
>>> - * bits.
>>> - */
>>> - if (columns > 6)
>>> - return;
>>> + if (wide) {
>>> + p_columns = columns;
>>> + } else {
>>> + p_columns = columns > 5 ? 5 : columns;
>>> +
>>> + /*
>>> + * This checksum stuff is designed for columns <= 8),
>>> + * and spreads the checksum over 64 bits but since currently
>>> + * the initval max column size is 6 we only use the first 48
>>> + * bits.
>>> + */
>>> + if (columns > 6)
>>> + return;
>>> + }
>>
>> The comment here was for the case that we were using the old nasty
>> checksum thingy I invented, prior to you adding SHA1 checksum support.
>> The column limitation therefore seems artificial here ?
>
> Well, the comment and the 'if (columns > 6)' block can be removed.
> However, the
> p_columns = columns > 5 ? 5 : columns;
> line ensures that we don't print the values for 'Turbo' modes. Although it can
> be removed (along with the 'wide' argument) but that needs more changes.

Sure.

>> Also, as per Adrian's advice on the eeprom dump tool, perhaps we can
>> remove clutter from the initvals tool by allowing us to copy to the
>> local directory the initval files from a linux-next tag.
>>
>> git show next-20121204:drivers/net/wireless/ath/ath9k/ar9002_initvals.h
>>> path/ar9002_initvals.h
>>
>> For example. But this would mean requiring us to get diffs by using a
>> kernel git tree, separate from where we are. Not sure if there are
>> gains with this strategy. Its unclear.
>
> Copying the initval headers from a git tree would add unnecessary complexity
> IMHO. If we want to check the validity of the initval headers in a given kernel
> tree, that can be achieved in a simpler way. The path which contains the ath9k
> specific initval headers can be defined as an include dir while compiling the
> initval tool.

Makes sense.

Luis

2012-12-06 18:17:35

by Gabor Juhos

[permalink] [raw]
Subject: [PATCH v2 11/13] qca-swiss-army-knife: add initval support for AR955X

Signed-off-by: Gabor Juhos <[email protected]>
---
tools/initvals/Makefile | 1 +
tools/initvals/ar955x_1p0_initvals.h | 1284 ++++++++++++++++++++++++++++++++++
tools/initvals/initvals.c | 44 ++
3 files changed, 1329 insertions(+)
create mode 100644 tools/initvals/ar955x_1p0_initvals.h

diff --git a/tools/initvals/Makefile b/tools/initvals/Makefile
index 35bf82f..010b68c 100644
--- a/tools/initvals/Makefile
+++ b/tools/initvals/Makefile
@@ -20,6 +20,7 @@ ATHEROS_DEPS += \
ar9330_12.ini \
ar9340.ini \
ar9485.ini \
+ ar955x.ini \
ar9580.ini \
ar9300_jupiter20.ini \
ar9300_aphrodite10.ini
diff --git a/tools/initvals/ar955x_1p0_initvals.h b/tools/initvals/ar955x_1p0_initvals.h
new file mode 100644
index 0000000..df97f21
--- /dev/null
+++ b/tools/initvals/ar955x_1p0_initvals.h
@@ -0,0 +1,1284 @@
+/*
+ * Copyright (c) 2010-2011 Atheros Communications Inc.
+ * Copyright (c) 2011-2012 Qualcomm Atheros Inc.
+ *
+ * Permission to use, copy, modify, and/or distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef INITVALS_955X_1P0_H
+#define INITVALS_955X_1P0_H
+
+/* AR955X 1.0 */
+
+static const u32 ar955x_1p0_radio_postamble[][5] = {
+ /* Addr 5G_HT20 5G_HT40 2G_HT40 2G_HT20 */
+ {0x00016098, 0xd2dd5554, 0xd2dd5554, 0xd28b3330, 0xd28b3330},
+ {0x0001609c, 0x0a566f3a, 0x0a566f3a, 0x06345f2a, 0x06345f2a},
+ {0x000160ac, 0xa4647c00, 0xa4647c00, 0xa4646800, 0xa4646800},
+ {0x000160b0, 0x01885f52, 0x01885f52, 0x04accf3a, 0x04accf3a},
+ {0x00016104, 0xb7a00001, 0xb7a00001, 0xb7a00001, 0xb7a00001},
+ {0x0001610c, 0xc0000000, 0xc0000000, 0xc0000000, 0xc0000000},
+ {0x00016140, 0x10804008, 0x10804008, 0x10804008, 0x10804008},
+ {0x00016504, 0xb7a00001, 0xb7a00001, 0xb7a00001, 0xb7a00001},
+ {0x0001650c, 0xc0000000, 0xc0000000, 0xc0000000, 0xc0000000},
+ {0x00016540, 0x10804008, 0x10804008, 0x10804008, 0x10804008},
+ {0x00016904, 0xb7a00001, 0xb7a00001, 0xb7a00001, 0xb7a00001},
+ {0x0001690c, 0xc0000000, 0xc0000000, 0xc0000000, 0xc0000000},
+ {0x00016940, 0x10804008, 0x10804008, 0x10804008, 0x10804008},
+};
+
+static const u32 ar955x_1p0_baseband_core_txfir_coeff_japan_2484[][2] = {
+ /* Addr allmodes */
+ {0x0000a398, 0x00000000},
+ {0x0000a39c, 0x6f7f0301},
+ {0x0000a3a0, 0xca9228ee},
+};
+
+static const u32 ar955x_1p0_baseband_postamble[][5] = {
+ /* Addr 5G_HT20 5G_HT40 2G_HT40 2G_HT20 */
+ {0x00009810, 0xd00a8005, 0xd00a8005, 0xd00a8011, 0xd00a8011},
+ {0x00009820, 0x206a022e, 0x206a022e, 0x206a012e, 0x206a012e},
+ {0x00009824, 0x5ac640d0, 0x5ac640d0, 0x5ac640d0, 0x5ac640d0},
+ {0x00009828, 0x06903081, 0x06903081, 0x06903881, 0x06903881},
+ {0x0000982c, 0x05eea6d4, 0x05eea6d4, 0x05eea6d4, 0x05eea6d4},
+ {0x00009830, 0x0000059c, 0x0000059c, 0x0000119c, 0x0000119c},
+ {0x00009c00, 0x000000c4, 0x000000c4, 0x000000c4, 0x000000c4},
+ {0x00009e00, 0x0372111a, 0x0372111a, 0x037216a0, 0x037216a0},
+ {0x00009e04, 0x001c2020, 0x001c2020, 0x001c2020, 0x001c2020},
+ {0x00009e0c, 0x6c4000e2, 0x6d4000e2, 0x6d4000e2, 0x6c4000e2},
+ {0x00009e10, 0x7ec88d2e, 0x7ec88d2e, 0x7ec84d2e, 0x7ec84d2e},
+ {0x00009e14, 0x37b95d5e, 0x37b9605e, 0x3379605e, 0x33795d5e},
+ {0x00009e18, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
+ {0x00009e1c, 0x0001cf9c, 0x0001cf9c, 0x00021f9c, 0x00021f9c},
+ {0x00009e20, 0x000003b5, 0x000003b5, 0x000003ce, 0x000003ce},
+ {0x00009e2c, 0x0000001c, 0x0000001c, 0x00000021, 0x00000021},
+ {0x00009e3c, 0xcfa10820, 0xcfa10820, 0xcfa10822, 0xcfa10822},
+ {0x00009e44, 0xfe321e27, 0xfe321e27, 0xfe291e27, 0xfe291e27},
+ {0x00009e48, 0x5030201a, 0x5030201a, 0x50302012, 0x50302012},
+ {0x00009fc8, 0x0003f000, 0x0003f000, 0x0001a000, 0x0001a000},
+ {0x0000a204, 0x005c0ec0, 0x005c0ec4, 0x005c0ec4, 0x005c0ec0},
+ {0x0000a208, 0x00000104, 0x00000104, 0x00000004, 0x00000004},
+ {0x0000a22c, 0x07e26a2f, 0x07e26a2f, 0x01026a2f, 0x01026a2f},
+ {0x0000a230, 0x0000000a, 0x00000014, 0x00000016, 0x0000000b},
+ {0x0000a234, 0x00000fff, 0x10000fff, 0x10000fff, 0x00000fff},
+ {0x0000a238, 0xffb01018, 0xffb01018, 0xffb01018, 0xffb01018},
+ {0x0000a250, 0x00000000, 0x00000000, 0x00000210, 0x00000108},
+ {0x0000a254, 0x000007d0, 0x00000fa0, 0x00001130, 0x00000898},
+ {0x0000a258, 0x02020002, 0x02020002, 0x02020002, 0x02020002},
+ {0x0000a25c, 0x01000e0e, 0x01000e0e, 0x01000e0e, 0x01000e0e},
+ {0x0000a260, 0x0a021501, 0x0a021501, 0x3a021501, 0x3a021501},
+ {0x0000a264, 0x00000e0e, 0x00000e0e, 0x00000e0e, 0x00000e0e},
+ {0x0000a280, 0x00000007, 0x00000007, 0x0000000b, 0x0000000b},
+ {0x0000a284, 0x00000000, 0x00000000, 0x00000010, 0x00000010},
+ {0x0000a288, 0x00000110, 0x00000110, 0x00000110, 0x00000110},
+ {0x0000a28c, 0x00022222, 0x00022222, 0x00022222, 0x00022222},
+ {0x0000a2c4, 0x00158d18, 0x00158d18, 0x00158d18, 0x00158d18},
+ {0x0000a2cc, 0x18c50033, 0x18c43433, 0x18c41033, 0x18c44c33},
+ {0x0000a2d0, 0x00041982, 0x00041982, 0x00041982, 0x00041982},
+ {0x0000a2d8, 0x7999a83b, 0x7999a83b, 0x7999a83b, 0x7999a83b},
+ {0x0000a358, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
+ {0x0000a830, 0x0000019c, 0x0000019c, 0x0000019c, 0x0000019c},
+ {0x0000ae04, 0x001c0000, 0x001c0000, 0x001c0000, 0x001c0000},
+ {0x0000ae18, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
+ {0x0000ae1c, 0x0000019c, 0x0000019c, 0x0000019c, 0x0000019c},
+ {0x0000ae20, 0x000001b5, 0x000001b5, 0x000001ce, 0x000001ce},
+ {0x0000b284, 0x00000000, 0x00000000, 0x00000010, 0x00000010},
+ {0x0000b830, 0x0000019c, 0x0000019c, 0x0000019c, 0x0000019c},
+ {0x0000be04, 0x001c0000, 0x001c0000, 0x001c0000, 0x001c0000},
+ {0x0000be18, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
+ {0x0000be1c, 0x0000019c, 0x0000019c, 0x0000019c, 0x0000019c},
+ {0x0000be20, 0x000001b5, 0x000001b5, 0x000001ce, 0x000001ce},
+ {0x0000c284, 0x00000000, 0x00000000, 0x00000010, 0x00000010},
+};
+
+static const u32 ar955x_1p0_radio_core[][2] = {
+ /* Addr allmodes */
+ {0x00016000, 0x36db6db6},
+ {0x00016004, 0x6db6db40},
+ {0x00016008, 0x73f00000},
+ {0x0001600c, 0x00000000},
+ {0x00016040, 0x7f80fff8},
+ {0x0001604c, 0x76d005b5},
+ {0x00016050, 0x557cf031},
+ {0x00016054, 0x13449440},
+ {0x00016058, 0x0c51c92c},
+ {0x0001605c, 0x3db7fffc},
+ {0x00016060, 0xfffffffc},
+ {0x00016064, 0x000f0278},
+ {0x00016068, 0x6db6db6c},
+ {0x0001606c, 0x6db60000},
+ {0x00016080, 0x00080000},
+ {0x00016084, 0x0e48048c},
+ {0x00016088, 0x14214514},
+ {0x0001608c, 0x119f101e},
+ {0x00016090, 0x24926490},
+ {0x00016094, 0x00000000},
+ {0x000160a0, 0x0a108ffe},
+ {0x000160a4, 0x812fc370},
+ {0x000160a8, 0x423c8000},
+ {0x000160b4, 0x92480080},
+ {0x000160c0, 0x006db6d0},
+ {0x000160c4, 0x6db6db60},
+ {0x000160c8, 0x6db6db6c},
+ {0x000160cc, 0x01e6c000},
+ {0x00016100, 0x11999601},
+ {0x00016108, 0x00080010},
+ {0x00016144, 0x02084080},
+ {0x00016148, 0x000080c0},
+ {0x00016280, 0x01800804},
+ {0x00016284, 0x00038dc5},
+ {0x00016288, 0x00000000},
+ {0x0001628c, 0x00000040},
+ {0x00016380, 0x00000000},
+ {0x00016384, 0x00000000},
+ {0x00016388, 0x00400705},
+ {0x0001638c, 0x00800700},
+ {0x00016390, 0x00800700},
+ {0x00016394, 0x00000000},
+ {0x00016398, 0x00000000},
+ {0x0001639c, 0x00000000},
+ {0x000163a0, 0x00000001},
+ {0x000163a4, 0x00000001},
+ {0x000163a8, 0x00000000},
+ {0x000163ac, 0x00000000},
+ {0x000163b0, 0x00000000},
+ {0x000163b4, 0x00000000},
+ {0x000163b8, 0x00000000},
+ {0x000163bc, 0x00000000},
+ {0x000163c0, 0x000000a0},
+ {0x000163c4, 0x000c0000},
+ {0x000163c8, 0x14021402},
+ {0x000163cc, 0x00001402},
+ {0x000163d0, 0x00000000},
+ {0x000163d4, 0x00000000},
+ {0x00016400, 0x36db6db6},
+ {0x00016404, 0x6db6db40},
+ {0x00016408, 0x73f00000},
+ {0x0001640c, 0x00000000},
+ {0x00016440, 0x7f80fff8},
+ {0x0001644c, 0x76d005b5},
+ {0x00016450, 0x557cf031},
+ {0x00016454, 0x13449440},
+ {0x00016458, 0x0c51c92c},
+ {0x0001645c, 0x3db7fffc},
+ {0x00016460, 0xfffffffc},
+ {0x00016464, 0x000f0278},
+ {0x00016468, 0x6db6db6c},
+ {0x0001646c, 0x6db60000},
+ {0x00016500, 0x11999601},
+ {0x00016508, 0x00080010},
+ {0x00016544, 0x02084080},
+ {0x00016548, 0x000080c0},
+ {0x00016780, 0x00000000},
+ {0x00016784, 0x00000000},
+ {0x00016788, 0x00400705},
+ {0x0001678c, 0x00800700},
+ {0x00016790, 0x00800700},
+ {0x00016794, 0x00000000},
+ {0x00016798, 0x00000000},
+ {0x0001679c, 0x00000000},
+ {0x000167a0, 0x00000001},
+ {0x000167a4, 0x00000001},
+ {0x000167a8, 0x00000000},
+ {0x000167ac, 0x00000000},
+ {0x000167b0, 0x00000000},
+ {0x000167b4, 0x00000000},
+ {0x000167b8, 0x00000000},
+ {0x000167bc, 0x00000000},
+ {0x000167c0, 0x000000a0},
+ {0x000167c4, 0x000c0000},
+ {0x000167c8, 0x14021402},
+ {0x000167cc, 0x00001402},
+ {0x000167d0, 0x00000000},
+ {0x000167d4, 0x00000000},
+ {0x00016800, 0x36db6db6},
+ {0x00016804, 0x6db6db40},
+ {0x00016808, 0x73f00000},
+ {0x0001680c, 0x00000000},
+ {0x00016840, 0x7f80fff8},
+ {0x0001684c, 0x76d005b5},
+ {0x00016850, 0x557cf031},
+ {0x00016854, 0x13449440},
+ {0x00016858, 0x0c51c92c},
+ {0x0001685c, 0x3db7fffc},
+ {0x00016860, 0xfffffffc},
+ {0x00016864, 0x000f0278},
+ {0x00016868, 0x6db6db6c},
+ {0x0001686c, 0x6db60000},
+ {0x00016900, 0x11999601},
+ {0x00016908, 0x00080010},
+ {0x00016944, 0x02084080},
+ {0x00016948, 0x000080c0},
+ {0x00016b80, 0x00000000},
+ {0x00016b84, 0x00000000},
+ {0x00016b88, 0x00400705},
+ {0x00016b8c, 0x00800700},
+ {0x00016b90, 0x00800700},
+ {0x00016b94, 0x00000000},
+ {0x00016b98, 0x00000000},
+ {0x00016b9c, 0x00000000},
+ {0x00016ba0, 0x00000001},
+ {0x00016ba4, 0x00000001},
+ {0x00016ba8, 0x00000000},
+ {0x00016bac, 0x00000000},
+ {0x00016bb0, 0x00000000},
+ {0x00016bb4, 0x00000000},
+ {0x00016bb8, 0x00000000},
+ {0x00016bbc, 0x00000000},
+ {0x00016bc0, 0x000000a0},
+ {0x00016bc4, 0x000c0000},
+ {0x00016bc8, 0x14021402},
+ {0x00016bcc, 0x00001402},
+ {0x00016bd0, 0x00000000},
+ {0x00016bd4, 0x00000000},
+};
+
+static const u32 ar955x_1p0_modes_xpa_tx_gain_table[][9] = {
+ /* Addr 5G_HT20_L 5G_HT40_L 5G_HT20_M 5G_HT40_M 5G_HT20_H 5G_HT40_H 2G_HT40 2G_HT20 */
+ {0x0000a2dc, 0xffffaaaa, 0xffffaaaa, 0xffffaaaa, 0xffffaaaa, 0xffffaaaa, 0xffffaaaa, 0xfffd5aaa, 0xfffd5aaa},
+ {0x0000a2e0, 0xffffcccc, 0xffffcccc, 0xffffcccc, 0xffffcccc, 0xffffcccc, 0xffffcccc, 0xfffe9ccc, 0xfffe9ccc},
+ {0x0000a2e4, 0xfffff0f0, 0xfffff0f0, 0xfffff0f0, 0xfffff0f0, 0xfffff0f0, 0xfffff0f0, 0xffffe0f0, 0xffffe0f0},
+ {0x0000a2e8, 0xffffff00, 0xffffff00, 0xffffff00, 0xffffff00, 0xffffff00, 0xffffff00, 0xfffcff00, 0xfffcff00},
+ {0x0000a410, 0x000050de, 0x000050de, 0x000050de, 0x000050de, 0x000050de, 0x000050de, 0x000050da, 0x000050da},
+ {0x0000a500, 0x00000003, 0x00000003, 0x00000003, 0x00000003, 0x00000003, 0x00000003, 0x00000000, 0x00000000},
+ {0x0000a504, 0x04000005, 0x04000005, 0x04000005, 0x04000005, 0x04000005, 0x04000005, 0x04000002, 0x04000002},
+ {0x0000a508, 0x08000009, 0x08000009, 0x08000009, 0x08000009, 0x08000009, 0x08000009, 0x08000004, 0x08000004},
+ {0x0000a50c, 0x0c00000b, 0x0c00000b, 0x0c00000b, 0x0c00000b, 0x0c00000b, 0x0c00000b, 0x0c000006, 0x0c000006},
+ {0x0000a510, 0x1000000d, 0x1000000d, 0x1000000d, 0x1000000d, 0x1000000d, 0x1000000d, 0x0f00000a, 0x0f00000a},
+ {0x0000a514, 0x14000011, 0x14000011, 0x14000011, 0x14000011, 0x14000011, 0x14000011, 0x1300000c, 0x1300000c},
+ {0x0000a518, 0x19004008, 0x19004008, 0x19004008, 0x19004008, 0x18004008, 0x18004008, 0x1700000e, 0x1700000e},
+ {0x0000a51c, 0x1d00400a, 0x1d00400a, 0x1d00400a, 0x1d00400a, 0x1c00400a, 0x1c00400a, 0x1b000064, 0x1b000064},
+ {0x0000a520, 0x230020a2, 0x230020a2, 0x210020a2, 0x210020a2, 0x200020a2, 0x200020a2, 0x1f000242, 0x1f000242},
+ {0x0000a524, 0x2500006e, 0x2500006e, 0x2500006e, 0x2500006e, 0x2400006e, 0x2400006e, 0x23000229, 0x23000229},
+ {0x0000a528, 0x29022221, 0x29022221, 0x28022221, 0x28022221, 0x27022221, 0x27022221, 0x270002a2, 0x270002a2},
+ {0x0000a52c, 0x2d00062a, 0x2d00062a, 0x2c00062a, 0x2c00062a, 0x2a00062a, 0x2a00062a, 0x2c001203, 0x2c001203},
+ {0x0000a530, 0x340220a5, 0x340220a5, 0x320220a5, 0x320220a5, 0x2f0220a5, 0x2f0220a5, 0x30001803, 0x30001803},
+ {0x0000a534, 0x380022c5, 0x380022c5, 0x350022c5, 0x350022c5, 0x320022c5, 0x320022c5, 0x33000881, 0x33000881},
+ {0x0000a538, 0x3b002486, 0x3b002486, 0x39002486, 0x39002486, 0x36002486, 0x36002486, 0x38001809, 0x38001809},
+ {0x0000a53c, 0x3f00248a, 0x3f00248a, 0x3d00248a, 0x3d00248a, 0x3a00248a, 0x3a00248a, 0x3a000814, 0x3a000814},
+ {0x0000a540, 0x4202242c, 0x4202242c, 0x4102242c, 0x4102242c, 0x3f02242c, 0x3f02242c, 0x3f001a0c, 0x3f001a0c},
+ {0x0000a544, 0x490044c6, 0x490044c6, 0x460044c6, 0x460044c6, 0x420044c6, 0x420044c6, 0x43001a0e, 0x43001a0e},
+ {0x0000a548, 0x4d024485, 0x4d024485, 0x4a024485, 0x4a024485, 0x46024485, 0x46024485, 0x46001812, 0x46001812},
+ {0x0000a54c, 0x51044483, 0x51044483, 0x4e044483, 0x4e044483, 0x4a044483, 0x4a044483, 0x49001884, 0x49001884},
+ {0x0000a550, 0x5404a40c, 0x5404a40c, 0x5204a40c, 0x5204a40c, 0x4d04a40c, 0x4d04a40c, 0x4d001e84, 0x4d001e84},
+ {0x0000a554, 0x57024632, 0x57024632, 0x55024632, 0x55024632, 0x52024632, 0x52024632, 0x50001e69, 0x50001e69},
+ {0x0000a558, 0x5c00a634, 0x5c00a634, 0x5900a634, 0x5900a634, 0x5600a634, 0x5600a634, 0x550006f4, 0x550006f4},
+ {0x0000a55c, 0x5f026832, 0x5f026832, 0x5d026832, 0x5d026832, 0x5a026832, 0x5a026832, 0x59000ad3, 0x59000ad3},
+ {0x0000a560, 0x6602b012, 0x6602b012, 0x6202b012, 0x6202b012, 0x5d02b012, 0x5d02b012, 0x5e000ad5, 0x5e000ad5},
+ {0x0000a564, 0x6e02d0e1, 0x6e02d0e1, 0x6802d0e1, 0x6802d0e1, 0x6002d0e1, 0x6002d0e1, 0x61001ced, 0x61001ced},
+ {0x0000a568, 0x7202b4c4, 0x7202b4c4, 0x6c02b4c4, 0x6c02b4c4, 0x6502b4c4, 0x6502b4c4, 0x660018d4, 0x660018d4},
+ {0x0000a56c, 0x75007894, 0x75007894, 0x70007894, 0x70007894, 0x6b007894, 0x6b007894, 0x660018d4, 0x660018d4},
+ {0x0000a570, 0x7b025c74, 0x7b025c74, 0x75025c74, 0x75025c74, 0x70025c74, 0x70025c74, 0x660018d4, 0x660018d4},
+ {0x0000a574, 0x8300bcb5, 0x8300bcb5, 0x7a00bcb5, 0x7a00bcb5, 0x7600bcb5, 0x7600bcb5, 0x660018d4, 0x660018d4},
+ {0x0000a578, 0x8a04dc74, 0x8a04dc74, 0x7f04dc74, 0x7f04dc74, 0x7c04dc74, 0x7c04dc74, 0x660018d4, 0x660018d4},
+ {0x0000a57c, 0x8a04dc74, 0x8a04dc74, 0x7f04dc74, 0x7f04dc74, 0x7c04dc74, 0x7c04dc74, 0x660018d4, 0x660018d4},
+ {0x0000a600, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
+ {0x0000a604, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
+ {0x0000a608, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
+ {0x0000a60c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x03804000, 0x03804000},
+ {0x0000a610, 0x04c08c01, 0x04c08c01, 0x04808b01, 0x04808b01, 0x04808a01, 0x04808a01, 0x0300ca02, 0x0300ca02},
+ {0x0000a614, 0x00c0c303, 0x00c0c303, 0x00c0c303, 0x00c0c303, 0x00c0c303, 0x00c0c303, 0x00000e04, 0x00000e04},
+ {0x0000a618, 0x04010c01, 0x04010c01, 0x03c10b01, 0x03c10b01, 0x03810a01, 0x03810a01, 0x03014000, 0x03014000},
+ {0x0000a61c, 0x03814e05, 0x03814e05, 0x03414d05, 0x03414d05, 0x03414d05, 0x03414d05, 0x00000000, 0x00000000},
+ {0x0000a620, 0x04010303, 0x04010303, 0x03c10303, 0x03c10303, 0x03810303, 0x03810303, 0x00000000, 0x00000000},
+ {0x0000a624, 0x03814e05, 0x03814e05, 0x03414d05, 0x03414d05, 0x03414d05, 0x03414d05, 0x03014000, 0x03014000},
+ {0x0000a628, 0x00c0c000, 0x00c0c000, 0x00c0c000, 0x00c0c000, 0x00c0c000, 0x00c0c000, 0x03804c05, 0x03804c05},
+ {0x0000a62c, 0x00c0c303, 0x00c0c303, 0x00c0c303, 0x00c0c303, 0x00c0c303, 0x00c0c303, 0x0701de06, 0x0701de06},
+ {0x0000a630, 0x03418000, 0x03418000, 0x03018000, 0x03018000, 0x02c18000, 0x02c18000, 0x07819c07, 0x07819c07},
+ {0x0000a634, 0x03815004, 0x03815004, 0x03414f04, 0x03414f04, 0x03414e04, 0x03414e04, 0x0701dc07, 0x0701dc07},
+ {0x0000a638, 0x03005302, 0x03005302, 0x02c05202, 0x02c05202, 0x02805202, 0x02805202, 0x0701dc07, 0x0701dc07},
+ {0x0000a63c, 0x04c09302, 0x04c09302, 0x04809202, 0x04809202, 0x04809202, 0x04809202, 0x0701dc07, 0x0701dc07},
+ {0x0000b2dc, 0xffffaaaa, 0xffffaaaa, 0xffffaaaa, 0xffffaaaa, 0xffffaaaa, 0xffffaaaa, 0xfffd5aaa, 0xfffd5aaa},
+ {0x0000b2e0, 0xffffcccc, 0xffffcccc, 0xffffcccc, 0xffffcccc, 0xffffcccc, 0xffffcccc, 0xfffe9ccc, 0xfffe9ccc},
+ {0x0000b2e4, 0xfffff0f0, 0xfffff0f0, 0xfffff0f0, 0xfffff0f0, 0xfffff0f0, 0xfffff0f0, 0xffffe0f0, 0xffffe0f0},
+ {0x0000b2e8, 0xffffff00, 0xffffff00, 0xffffff00, 0xffffff00, 0xffffff00, 0xffffff00, 0xfffcff00, 0xfffcff00},
+ {0x0000c2dc, 0xffffaaaa, 0xffffaaaa, 0xffffaaaa, 0xffffaaaa, 0xffffaaaa, 0xffffaaaa, 0xfffd5aaa, 0xfffd5aaa},
+ {0x0000c2e0, 0xffffcccc, 0xffffcccc, 0xffffcccc, 0xffffcccc, 0xffffcccc, 0xffffcccc, 0xfffe9ccc, 0xfffe9ccc},
+ {0x0000c2e4, 0xfffff0f0, 0xfffff0f0, 0xfffff0f0, 0xfffff0f0, 0xfffff0f0, 0xfffff0f0, 0xffffe0f0, 0xffffe0f0},
+ {0x0000c2e8, 0xffffff00, 0xffffff00, 0xffffff00, 0xffffff00, 0xffffff00, 0xffffff00, 0xfffcff00, 0xfffcff00},
+ {0x00016044, 0x056db2d4, 0x056db2d4, 0x056db2d4, 0x056db2d4, 0x056db2d4, 0x056db2d4, 0x010002d4, 0x010002d4},
+ {0x00016048, 0x62482401, 0x62482401, 0x62482401, 0x62482401, 0x62482401, 0x62482401, 0x66482401, 0x66482401},
+ {0x00016280, 0x01801e84, 0x01801e84, 0x01801e84, 0x01801e84, 0x01801e84, 0x01801e84, 0x01808e84, 0x01808e84},
+ {0x00016444, 0x056db2d4, 0x056db2d4, 0x056db2d4, 0x056db2d4, 0x056db2d4, 0x056db2d4, 0x010002d4, 0x010002d4},
+ {0x00016448, 0x62482401, 0x62482401, 0x62482401, 0x62482401, 0x62482401, 0x62482401, 0x66482401, 0x66482401},
+ {0x00016844, 0x056db2d4, 0x056db2d4, 0x056db2d4, 0x056db2d4, 0x056db2d4, 0x056db2d4, 0x010002d4, 0x010002d4},
+ {0x00016848, 0x62482401, 0x62482401, 0x62482401, 0x62482401, 0x62482401, 0x62482401, 0x66482401, 0x66482401},
+};
+
+static const u32 ar955x_1p0_mac_core[][2] = {
+ /* Addr allmodes */
+ {0x00000008, 0x00000000},
+ {0x00000030, 0x00020085},
+ {0x00000034, 0x00000005},
+ {0x00000040, 0x00000000},
+ {0x00000044, 0x00000000},
+ {0x00000048, 0x00000008},
+ {0x0000004c, 0x00000010},
+ {0x00000050, 0x00000000},
+ {0x00001040, 0x002ffc0f},
+ {0x00001044, 0x002ffc0f},
+ {0x00001048, 0x002ffc0f},
+ {0x0000104c, 0x002ffc0f},
+ {0x00001050, 0x002ffc0f},
+ {0x00001054, 0x002ffc0f},
+ {0x00001058, 0x002ffc0f},
+ {0x0000105c, 0x002ffc0f},
+ {0x00001060, 0x002ffc0f},
+ {0x00001064, 0x002ffc0f},
+ {0x000010f0, 0x00000100},
+ {0x00001270, 0x00000000},
+ {0x000012b0, 0x00000000},
+ {0x000012f0, 0x00000000},
+ {0x0000143c, 0x00000000},
+ {0x0000147c, 0x00000000},
+ {0x00008000, 0x00000000},
+ {0x00008004, 0x00000000},
+ {0x00008008, 0x00000000},
+ {0x0000800c, 0x00000000},
+ {0x00008018, 0x00000000},
+ {0x00008020, 0x00000000},
+ {0x00008038, 0x00000000},
+ {0x0000803c, 0x00000000},
+ {0x00008040, 0x00000000},
+ {0x00008044, 0x00000000},
+ {0x00008048, 0x00000000},
+ {0x0000804c, 0xffffffff},
+ {0x00008054, 0x00000000},
+ {0x00008058, 0x00000000},
+ {0x0000805c, 0x000fc78f},
+ {0x00008060, 0x0000000f},
+ {0x00008064, 0x00000000},
+ {0x00008070, 0x00000310},
+ {0x00008074, 0x00000020},
+ {0x00008078, 0x00000000},
+ {0x0000809c, 0x0000000f},
+ {0x000080a0, 0x00000000},
+ {0x000080a4, 0x02ff0000},
+ {0x000080a8, 0x0e070605},
+ {0x000080ac, 0x0000000d},
+ {0x000080b0, 0x00000000},
+ {0x000080b4, 0x00000000},
+ {0x000080b8, 0x00000000},
+ {0x000080bc, 0x00000000},
+ {0x000080c0, 0x2a800000},
+ {0x000080c4, 0x06900168},
+ {0x000080c8, 0x13881c22},
+ {0x000080cc, 0x01f40000},
+ {0x000080d0, 0x00252500},
+ {0x000080d4, 0x00a00000},
+ {0x000080d8, 0x00400000},
+ {0x000080dc, 0x00000000},
+ {0x000080e0, 0xffffffff},
+ {0x000080e4, 0x0000ffff},
+ {0x000080e8, 0x3f3f3f3f},
+ {0x000080ec, 0x00000000},
+ {0x000080f0, 0x00000000},
+ {0x000080f4, 0x00000000},
+ {0x000080fc, 0x00020000},
+ {0x00008100, 0x00000000},
+ {0x00008108, 0x00000052},
+ {0x0000810c, 0x00000000},
+ {0x00008110, 0x00000000},
+ {0x00008114, 0x000007ff},
+ {0x00008118, 0x000000aa},
+ {0x0000811c, 0x00003210},
+ {0x00008124, 0x00000000},
+ {0x00008128, 0x00000000},
+ {0x0000812c, 0x00000000},
+ {0x00008130, 0x00000000},
+ {0x00008134, 0x00000000},
+ {0x00008138, 0x00000000},
+ {0x0000813c, 0x0000ffff},
+ {0x00008140, 0x000000fe},
+ {0x00008144, 0xffffffff},
+ {0x00008168, 0x00000000},
+ {0x0000816c, 0x00000000},
+ {0x000081c0, 0x00000000},
+ {0x000081c4, 0x33332210},
+ {0x000081ec, 0x00000000},
+ {0x000081f0, 0x00000000},
+ {0x000081f4, 0x00000000},
+ {0x000081f8, 0x00000000},
+ {0x000081fc, 0x00000000},
+ {0x00008240, 0x00100000},
+ {0x00008244, 0x0010f400},
+ {0x00008248, 0x00000800},
+ {0x0000824c, 0x0001e800},
+ {0x00008250, 0x00000000},
+ {0x00008254, 0x00000000},
+ {0x00008258, 0x00000000},
+ {0x0000825c, 0x40000000},
+ {0x00008260, 0x00080922},
+ {0x00008264, 0x9d400010},
+ {0x00008268, 0xffffffff},
+ {0x0000826c, 0x0000ffff},
+ {0x00008270, 0x00000000},
+ {0x00008274, 0x40000000},
+ {0x00008278, 0x003e4180},
+ {0x0000827c, 0x00000004},
+ {0x00008284, 0x0000002c},
+ {0x00008288, 0x0000002c},
+ {0x0000828c, 0x000000ff},
+ {0x00008294, 0x00000000},
+ {0x00008298, 0x00000000},
+ {0x0000829c, 0x00000000},
+ {0x00008300, 0x00001d40},
+ {0x00008314, 0x00000000},
+ {0x0000831c, 0x0000010d},
+ {0x00008328, 0x00000000},
+ {0x0000832c, 0x0000001f},
+ {0x00008330, 0x00000302},
+ {0x00008334, 0x00000700},
+ {0x00008338, 0xffff0000},
+ {0x0000833c, 0x02400000},
+ {0x00008340, 0x000107ff},
+ {0x00008344, 0xaa48107b},
+ {0x00008348, 0x008f0000},
+ {0x0000835c, 0x00000000},
+ {0x00008360, 0xffffffff},
+ {0x00008364, 0xffffffff},
+ {0x00008368, 0x00000000},
+ {0x00008370, 0x00000000},
+ {0x00008374, 0x000000ff},
+ {0x00008378, 0x00000000},
+ {0x0000837c, 0x00000000},
+ {0x00008380, 0xffffffff},
+ {0x00008384, 0xffffffff},
+ {0x00008390, 0xffffffff},
+ {0x00008394, 0xffffffff},
+ {0x00008398, 0x00000000},
+ {0x0000839c, 0x00000000},
+ {0x000083a0, 0x00000000},
+ {0x000083a4, 0x0000fa14},
+ {0x000083a8, 0x000f0c00},
+ {0x000083ac, 0x33332210},
+ {0x000083b0, 0x33332210},
+ {0x000083b4, 0x33332210},
+ {0x000083b8, 0x33332210},
+ {0x000083bc, 0x00000000},
+ {0x000083c0, 0x00000000},
+ {0x000083c4, 0x00000000},
+ {0x000083c8, 0x00000000},
+ {0x000083cc, 0x00000200},
+ {0x000083d0, 0x8c7901ff},
+};
+
+static const u32 ar955x_1p0_common_rx_gain_table[][2] = {
+ /* Addr allmodes */
+ {0x0000a000, 0x00010000},
+ {0x0000a004, 0x00030002},
+ {0x0000a008, 0x00050004},
+ {0x0000a00c, 0x00810080},
+ {0x0000a010, 0x00830082},
+ {0x0000a014, 0x01810180},
+ {0x0000a018, 0x01830182},
+ {0x0000a01c, 0x01850184},
+ {0x0000a020, 0x01890188},
+ {0x0000a024, 0x018b018a},
+ {0x0000a028, 0x018d018c},
+ {0x0000a02c, 0x01910190},
+ {0x0000a030, 0x01930192},
+ {0x0000a034, 0x01950194},
+ {0x0000a038, 0x038a0196},
+ {0x0000a03c, 0x038c038b},
+ {0x0000a040, 0x0390038d},
+ {0x0000a044, 0x03920391},
+ {0x0000a048, 0x03940393},
+ {0x0000a04c, 0x03960395},
+ {0x0000a050, 0x00000000},
+ {0x0000a054, 0x00000000},
+ {0x0000a058, 0x00000000},
+ {0x0000a05c, 0x00000000},
+ {0x0000a060, 0x00000000},
+ {0x0000a064, 0x00000000},
+ {0x0000a068, 0x00000000},
+ {0x0000a06c, 0x00000000},
+ {0x0000a070, 0x00000000},
+ {0x0000a074, 0x00000000},
+ {0x0000a078, 0x00000000},
+ {0x0000a07c, 0x00000000},
+ {0x0000a080, 0x22222229},
+ {0x0000a084, 0x1d1d1d1d},
+ {0x0000a088, 0x1d1d1d1d},
+ {0x0000a08c, 0x1d1d1d1d},
+ {0x0000a090, 0x171d1d1d},
+ {0x0000a094, 0x11111717},
+ {0x0000a098, 0x00030311},
+ {0x0000a09c, 0x00000000},
+ {0x0000a0a0, 0x00000000},
+ {0x0000a0a4, 0x00000000},
+ {0x0000a0a8, 0x00000000},
+ {0x0000a0ac, 0x00000000},
+ {0x0000a0b0, 0x00000000},
+ {0x0000a0b4, 0x00000000},
+ {0x0000a0b8, 0x00000000},
+ {0x0000a0bc, 0x00000000},
+ {0x0000a0c0, 0x001f0000},
+ {0x0000a0c4, 0x01000101},
+ {0x0000a0c8, 0x011e011f},
+ {0x0000a0cc, 0x011c011d},
+ {0x0000a0d0, 0x02030204},
+ {0x0000a0d4, 0x02010202},
+ {0x0000a0d8, 0x021f0200},
+ {0x0000a0dc, 0x0302021e},
+ {0x0000a0e0, 0x03000301},
+ {0x0000a0e4, 0x031e031f},
+ {0x0000a0e8, 0x0402031d},
+ {0x0000a0ec, 0x04000401},
+ {0x0000a0f0, 0x041e041f},
+ {0x0000a0f4, 0x0502041d},
+ {0x0000a0f8, 0x05000501},
+ {0x0000a0fc, 0x051e051f},
+ {0x0000a100, 0x06010602},
+ {0x0000a104, 0x061f0600},
+ {0x0000a108, 0x061d061e},
+ {0x0000a10c, 0x07020703},
+ {0x0000a110, 0x07000701},
+ {0x0000a114, 0x00000000},
+ {0x0000a118, 0x00000000},
+ {0x0000a11c, 0x00000000},
+ {0x0000a120, 0x00000000},
+ {0x0000a124, 0x00000000},
+ {0x0000a128, 0x00000000},
+ {0x0000a12c, 0x00000000},
+ {0x0000a130, 0x00000000},
+ {0x0000a134, 0x00000000},
+ {0x0000a138, 0x00000000},
+ {0x0000a13c, 0x00000000},
+ {0x0000a140, 0x001f0000},
+ {0x0000a144, 0x01000101},
+ {0x0000a148, 0x011e011f},
+ {0x0000a14c, 0x011c011d},
+ {0x0000a150, 0x02030204},
+ {0x0000a154, 0x02010202},
+ {0x0000a158, 0x021f0200},
+ {0x0000a15c, 0x0302021e},
+ {0x0000a160, 0x03000301},
+ {0x0000a164, 0x031e031f},
+ {0x0000a168, 0x0402031d},
+ {0x0000a16c, 0x04000401},
+ {0x0000a170, 0x041e041f},
+ {0x0000a174, 0x0502041d},
+ {0x0000a178, 0x05000501},
+ {0x0000a17c, 0x051e051f},
+ {0x0000a180, 0x06010602},
+ {0x0000a184, 0x061f0600},
+ {0x0000a188, 0x061d061e},
+ {0x0000a18c, 0x07020703},
+ {0x0000a190, 0x07000701},
+ {0x0000a194, 0x00000000},
+ {0x0000a198, 0x00000000},
+ {0x0000a19c, 0x00000000},
+ {0x0000a1a0, 0x00000000},
+ {0x0000a1a4, 0x00000000},
+ {0x0000a1a8, 0x00000000},
+ {0x0000a1ac, 0x00000000},
+ {0x0000a1b0, 0x00000000},
+ {0x0000a1b4, 0x00000000},
+ {0x0000a1b8, 0x00000000},
+ {0x0000a1bc, 0x00000000},
+ {0x0000a1c0, 0x00000000},
+ {0x0000a1c4, 0x00000000},
+ {0x0000a1c8, 0x00000000},
+ {0x0000a1cc, 0x00000000},
+ {0x0000a1d0, 0x00000000},
+ {0x0000a1d4, 0x00000000},
+ {0x0000a1d8, 0x00000000},
+ {0x0000a1dc, 0x00000000},
+ {0x0000a1e0, 0x00000000},
+ {0x0000a1e4, 0x00000000},
+ {0x0000a1e8, 0x00000000},
+ {0x0000a1ec, 0x00000000},
+ {0x0000a1f0, 0x00000396},
+ {0x0000a1f4, 0x00000396},
+ {0x0000a1f8, 0x00000396},
+ {0x0000a1fc, 0x00000196},
+ {0x0000b000, 0x00010000},
+ {0x0000b004, 0x00030002},
+ {0x0000b008, 0x00050004},
+ {0x0000b00c, 0x00810080},
+ {0x0000b010, 0x00830082},
+ {0x0000b014, 0x01810180},
+ {0x0000b018, 0x01830182},
+ {0x0000b01c, 0x01850184},
+ {0x0000b020, 0x02810280},
+ {0x0000b024, 0x02830282},
+ {0x0000b028, 0x02850284},
+ {0x0000b02c, 0x02890288},
+ {0x0000b030, 0x028b028a},
+ {0x0000b034, 0x0388028c},
+ {0x0000b038, 0x038a0389},
+ {0x0000b03c, 0x038c038b},
+ {0x0000b040, 0x0390038d},
+ {0x0000b044, 0x03920391},
+ {0x0000b048, 0x03940393},
+ {0x0000b04c, 0x03960395},
+ {0x0000b050, 0x00000000},
+ {0x0000b054, 0x00000000},
+ {0x0000b058, 0x00000000},
+ {0x0000b05c, 0x00000000},
+ {0x0000b060, 0x00000000},
+ {0x0000b064, 0x00000000},
+ {0x0000b068, 0x00000000},
+ {0x0000b06c, 0x00000000},
+ {0x0000b070, 0x00000000},
+ {0x0000b074, 0x00000000},
+ {0x0000b078, 0x00000000},
+ {0x0000b07c, 0x00000000},
+ {0x0000b080, 0x23232323},
+ {0x0000b084, 0x21232323},
+ {0x0000b088, 0x19191c1e},
+ {0x0000b08c, 0x12141417},
+ {0x0000b090, 0x07070e0e},
+ {0x0000b094, 0x03030305},
+ {0x0000b098, 0x00000003},
+ {0x0000b09c, 0x00000000},
+ {0x0000b0a0, 0x00000000},
+ {0x0000b0a4, 0x00000000},
+ {0x0000b0a8, 0x00000000},
+ {0x0000b0ac, 0x00000000},
+ {0x0000b0b0, 0x00000000},
+ {0x0000b0b4, 0x00000000},
+ {0x0000b0b8, 0x00000000},
+ {0x0000b0bc, 0x00000000},
+ {0x0000b0c0, 0x003f0020},
+ {0x0000b0c4, 0x00400041},
+ {0x0000b0c8, 0x0140005f},
+ {0x0000b0cc, 0x0160015f},
+ {0x0000b0d0, 0x017e017f},
+ {0x0000b0d4, 0x02410242},
+ {0x0000b0d8, 0x025f0240},
+ {0x0000b0dc, 0x027f0260},
+ {0x0000b0e0, 0x0341027e},
+ {0x0000b0e4, 0x035f0340},
+ {0x0000b0e8, 0x037f0360},
+ {0x0000b0ec, 0x04400441},
+ {0x0000b0f0, 0x0460045f},
+ {0x0000b0f4, 0x0541047f},
+ {0x0000b0f8, 0x055f0540},
+ {0x0000b0fc, 0x057f0560},
+ {0x0000b100, 0x06400641},
+ {0x0000b104, 0x0660065f},
+ {0x0000b108, 0x067e067f},
+ {0x0000b10c, 0x07410742},
+ {0x0000b110, 0x075f0740},
+ {0x0000b114, 0x077f0760},
+ {0x0000b118, 0x07800781},
+ {0x0000b11c, 0x07a0079f},
+ {0x0000b120, 0x07c107bf},
+ {0x0000b124, 0x000007c0},
+ {0x0000b128, 0x00000000},
+ {0x0000b12c, 0x00000000},
+ {0x0000b130, 0x00000000},
+ {0x0000b134, 0x00000000},
+ {0x0000b138, 0x00000000},
+ {0x0000b13c, 0x00000000},
+ {0x0000b140, 0x003f0020},
+ {0x0000b144, 0x00400041},
+ {0x0000b148, 0x0140005f},
+ {0x0000b14c, 0x0160015f},
+ {0x0000b150, 0x017e017f},
+ {0x0000b154, 0x02410242},
+ {0x0000b158, 0x025f0240},
+ {0x0000b15c, 0x027f0260},
+ {0x0000b160, 0x0341027e},
+ {0x0000b164, 0x035f0340},
+ {0x0000b168, 0x037f0360},
+ {0x0000b16c, 0x04400441},
+ {0x0000b170, 0x0460045f},
+ {0x0000b174, 0x0541047f},
+ {0x0000b178, 0x055f0540},
+ {0x0000b17c, 0x057f0560},
+ {0x0000b180, 0x06400641},
+ {0x0000b184, 0x0660065f},
+ {0x0000b188, 0x067e067f},
+ {0x0000b18c, 0x07410742},
+ {0x0000b190, 0x075f0740},
+ {0x0000b194, 0x077f0760},
+ {0x0000b198, 0x07800781},
+ {0x0000b19c, 0x07a0079f},
+ {0x0000b1a0, 0x07c107bf},
+ {0x0000b1a4, 0x000007c0},
+ {0x0000b1a8, 0x00000000},
+ {0x0000b1ac, 0x00000000},
+ {0x0000b1b0, 0x00000000},
+ {0x0000b1b4, 0x00000000},
+ {0x0000b1b8, 0x00000000},
+ {0x0000b1bc, 0x00000000},
+ {0x0000b1c0, 0x00000000},
+ {0x0000b1c4, 0x00000000},
+ {0x0000b1c8, 0x00000000},
+ {0x0000b1cc, 0x00000000},
+ {0x0000b1d0, 0x00000000},
+ {0x0000b1d4, 0x00000000},
+ {0x0000b1d8, 0x00000000},
+ {0x0000b1dc, 0x00000000},
+ {0x0000b1e0, 0x00000000},
+ {0x0000b1e4, 0x00000000},
+ {0x0000b1e8, 0x00000000},
+ {0x0000b1ec, 0x00000000},
+ {0x0000b1f0, 0x00000396},
+ {0x0000b1f4, 0x00000396},
+ {0x0000b1f8, 0x00000396},
+ {0x0000b1fc, 0x00000196},
+};
+
+static const u32 ar955x_1p0_baseband_core[][2] = {
+ /* Addr allmodes */
+ {0x00009800, 0xafe68e30},
+ {0x00009804, 0xfd14e000},
+ {0x00009808, 0x9c0a9f6b},
+ {0x0000980c, 0x04900000},
+ {0x00009814, 0x0280c00a},
+ {0x00009818, 0x00000000},
+ {0x0000981c, 0x00020028},
+ {0x00009834, 0x6400a190},
+ {0x00009838, 0x0108ecff},
+ {0x0000983c, 0x14000600},
+ {0x00009880, 0x201fff00},
+ {0x00009884, 0x00001042},
+ {0x000098a4, 0x00200400},
+ {0x000098b0, 0x32840bbe},
+ {0x000098bc, 0x00000002},
+ {0x000098d0, 0x004b6a8e},
+ {0x000098d4, 0x00000820},
+ {0x000098dc, 0x00000000},
+ {0x000098f0, 0x00000000},
+ {0x000098f4, 0x00000000},
+ {0x00009c04, 0xff55ff55},
+ {0x00009c08, 0x0320ff55},
+ {0x00009c0c, 0x00000000},
+ {0x00009c10, 0x00000000},
+ {0x00009c14, 0x00046384},
+ {0x00009c18, 0x05b6b440},
+ {0x00009c1c, 0x00b6b440},
+ {0x00009d00, 0xc080a333},
+ {0x00009d04, 0x40206c10},
+ {0x00009d08, 0x009c4060},
+ {0x00009d0c, 0x9883800a},
+ {0x00009d10, 0x01834061},
+ {0x00009d14, 0x00c0040b},
+ {0x00009d18, 0x00000000},
+ {0x00009e08, 0x0038230c},
+ {0x00009e24, 0x990bb515},
+ {0x00009e28, 0x0c6f0000},
+ {0x00009e30, 0x06336f77},
+ {0x00009e34, 0x6af6532f},
+ {0x00009e38, 0x0cc80c00},
+ {0x00009e40, 0x0d261820},
+ {0x00009e4c, 0x00001004},
+ {0x00009e50, 0x00ff03f1},
+ {0x00009fc0, 0x813e4788},
+ {0x00009fc4, 0x0001efb5},
+ {0x00009fcc, 0x40000014},
+ {0x00009fd0, 0x01193b93},
+ {0x0000a20c, 0x00000000},
+ {0x0000a220, 0x00000000},
+ {0x0000a224, 0x00000000},
+ {0x0000a228, 0x10002310},
+ {0x0000a23c, 0x00000000},
+ {0x0000a244, 0x0c000000},
+ {0x0000a248, 0x00000140},
+ {0x0000a2a0, 0x00000007},
+ {0x0000a2c0, 0x00000007},
+ {0x0000a2c8, 0x00000000},
+ {0x0000a2d4, 0x00000000},
+ {0x0000a2ec, 0x00000000},
+ {0x0000a2f0, 0x00000000},
+ {0x0000a2f4, 0x00000000},
+ {0x0000a2f8, 0x00000000},
+ {0x0000a344, 0x00000000},
+ {0x0000a34c, 0x00000000},
+ {0x0000a350, 0x0000a000},
+ {0x0000a364, 0x00000000},
+ {0x0000a370, 0x00000000},
+ {0x0000a390, 0x00000001},
+ {0x0000a394, 0x00000444},
+ {0x0000a398, 0x1f020503},
+ {0x0000a39c, 0x29180c03},
+ {0x0000a3a0, 0x9a8b6844},
+ {0x0000a3a4, 0x00000000},
+ {0x0000a3a8, 0xaaaaaaaa},
+ {0x0000a3ac, 0x3c466478},
+ {0x0000a3c0, 0x20202020},
+ {0x0000a3c4, 0x22222220},
+ {0x0000a3c8, 0x20200020},
+ {0x0000a3cc, 0x20202020},
+ {0x0000a3d0, 0x20202020},
+ {0x0000a3d4, 0x20202020},
+ {0x0000a3d8, 0x20202020},
+ {0x0000a3dc, 0x20202020},
+ {0x0000a3e0, 0x20202020},
+ {0x0000a3e4, 0x20202020},
+ {0x0000a3e8, 0x20202020},
+ {0x0000a3ec, 0x20202020},
+ {0x0000a3f0, 0x00000000},
+ {0x0000a3f4, 0x00000000},
+ {0x0000a3f8, 0x0c9bd380},
+ {0x0000a3fc, 0x000f0f01},
+ {0x0000a400, 0x8fa91f01},
+ {0x0000a404, 0x00000000},
+ {0x0000a408, 0x0e79e5c6},
+ {0x0000a40c, 0x00820820},
+ {0x0000a414, 0x1ce739ce},
+ {0x0000a418, 0x2d001dce},
+ {0x0000a41c, 0x1ce739ce},
+ {0x0000a420, 0x000001ce},
+ {0x0000a424, 0x1ce739ce},
+ {0x0000a428, 0x000001ce},
+ {0x0000a42c, 0x1ce739ce},
+ {0x0000a430, 0x1ce739ce},
+ {0x0000a434, 0x00000000},
+ {0x0000a438, 0x00001801},
+ {0x0000a43c, 0x00100000},
+ {0x0000a444, 0x00000000},
+ {0x0000a448, 0x05000080},
+ {0x0000a44c, 0x00000001},
+ {0x0000a450, 0x00010000},
+ {0x0000a458, 0x00000000},
+ {0x0000a644, 0x3fad9d74},
+ {0x0000a648, 0x0048060a},
+ {0x0000a64c, 0x00003c37},
+ {0x0000a670, 0x03020100},
+ {0x0000a674, 0x09080504},
+ {0x0000a678, 0x0d0c0b0a},
+ {0x0000a67c, 0x13121110},
+ {0x0000a680, 0x31301514},
+ {0x0000a684, 0x35343332},
+ {0x0000a688, 0x00000036},
+ {0x0000a690, 0x00000838},
+ {0x0000a7cc, 0x00000000},
+ {0x0000a7d0, 0x00000000},
+ {0x0000a7d4, 0x00000004},
+ {0x0000a7dc, 0x00000000},
+ {0x0000a8d0, 0x004b6a8e},
+ {0x0000a8d4, 0x00000820},
+ {0x0000a8dc, 0x00000000},
+ {0x0000a8f0, 0x00000000},
+ {0x0000a8f4, 0x00000000},
+ {0x0000b2d0, 0x00000080},
+ {0x0000b2d4, 0x00000000},
+ {0x0000b2ec, 0x00000000},
+ {0x0000b2f0, 0x00000000},
+ {0x0000b2f4, 0x00000000},
+ {0x0000b2f8, 0x00000000},
+ {0x0000b408, 0x0e79e5c0},
+ {0x0000b40c, 0x00820820},
+ {0x0000b420, 0x00000000},
+ {0x0000b8d0, 0x004b6a8e},
+ {0x0000b8d4, 0x00000820},
+ {0x0000b8dc, 0x00000000},
+ {0x0000b8f0, 0x00000000},
+ {0x0000b8f4, 0x00000000},
+ {0x0000c2d0, 0x00000080},
+ {0x0000c2d4, 0x00000000},
+ {0x0000c2ec, 0x00000000},
+ {0x0000c2f0, 0x00000000},
+ {0x0000c2f4, 0x00000000},
+ {0x0000c2f8, 0x00000000},
+ {0x0000c408, 0x0e79e5c0},
+ {0x0000c40c, 0x00820820},
+ {0x0000c420, 0x00000000},
+};
+
+static const u32 ar955x_1p0_common_wo_xlna_rx_gain_table[][2] = {
+ /* Addr allmodes */
+ {0x0000a000, 0x00010000},
+ {0x0000a004, 0x00030002},
+ {0x0000a008, 0x00050004},
+ {0x0000a00c, 0x00810080},
+ {0x0000a010, 0x00830082},
+ {0x0000a014, 0x01810180},
+ {0x0000a018, 0x01830182},
+ {0x0000a01c, 0x01850184},
+ {0x0000a020, 0x01890188},
+ {0x0000a024, 0x018b018a},
+ {0x0000a028, 0x018d018c},
+ {0x0000a02c, 0x03820190},
+ {0x0000a030, 0x03840383},
+ {0x0000a034, 0x03880385},
+ {0x0000a038, 0x038a0389},
+ {0x0000a03c, 0x038c038b},
+ {0x0000a040, 0x0390038d},
+ {0x0000a044, 0x03920391},
+ {0x0000a048, 0x03940393},
+ {0x0000a04c, 0x03960395},
+ {0x0000a050, 0x00000000},
+ {0x0000a054, 0x00000000},
+ {0x0000a058, 0x00000000},
+ {0x0000a05c, 0x00000000},
+ {0x0000a060, 0x00000000},
+ {0x0000a064, 0x00000000},
+ {0x0000a068, 0x00000000},
+ {0x0000a06c, 0x00000000},
+ {0x0000a070, 0x00000000},
+ {0x0000a074, 0x00000000},
+ {0x0000a078, 0x00000000},
+ {0x0000a07c, 0x00000000},
+ {0x0000a080, 0x29292929},
+ {0x0000a084, 0x29292929},
+ {0x0000a088, 0x29292929},
+ {0x0000a08c, 0x29292929},
+ {0x0000a090, 0x22292929},
+ {0x0000a094, 0x1d1d2222},
+ {0x0000a098, 0x0c111117},
+ {0x0000a09c, 0x00030303},
+ {0x0000a0a0, 0x00000000},
+ {0x0000a0a4, 0x00000000},
+ {0x0000a0a8, 0x00000000},
+ {0x0000a0ac, 0x00000000},
+ {0x0000a0b0, 0x00000000},
+ {0x0000a0b4, 0x00000000},
+ {0x0000a0b8, 0x00000000},
+ {0x0000a0bc, 0x00000000},
+ {0x0000a0c0, 0x001f0000},
+ {0x0000a0c4, 0x01000101},
+ {0x0000a0c8, 0x011e011f},
+ {0x0000a0cc, 0x011c011d},
+ {0x0000a0d0, 0x02030204},
+ {0x0000a0d4, 0x02010202},
+ {0x0000a0d8, 0x021f0200},
+ {0x0000a0dc, 0x0302021e},
+ {0x0000a0e0, 0x03000301},
+ {0x0000a0e4, 0x031e031f},
+ {0x0000a0e8, 0x0402031d},
+ {0x0000a0ec, 0x04000401},
+ {0x0000a0f0, 0x041e041f},
+ {0x0000a0f4, 0x0502041d},
+ {0x0000a0f8, 0x05000501},
+ {0x0000a0fc, 0x051e051f},
+ {0x0000a100, 0x06010602},
+ {0x0000a104, 0x061f0600},
+ {0x0000a108, 0x061d061e},
+ {0x0000a10c, 0x07020703},
+ {0x0000a110, 0x07000701},
+ {0x0000a114, 0x00000000},
+ {0x0000a118, 0x00000000},
+ {0x0000a11c, 0x00000000},
+ {0x0000a120, 0x00000000},
+ {0x0000a124, 0x00000000},
+ {0x0000a128, 0x00000000},
+ {0x0000a12c, 0x00000000},
+ {0x0000a130, 0x00000000},
+ {0x0000a134, 0x00000000},
+ {0x0000a138, 0x00000000},
+ {0x0000a13c, 0x00000000},
+ {0x0000a140, 0x001f0000},
+ {0x0000a144, 0x01000101},
+ {0x0000a148, 0x011e011f},
+ {0x0000a14c, 0x011c011d},
+ {0x0000a150, 0x02030204},
+ {0x0000a154, 0x02010202},
+ {0x0000a158, 0x021f0200},
+ {0x0000a15c, 0x0302021e},
+ {0x0000a160, 0x03000301},
+ {0x0000a164, 0x031e031f},
+ {0x0000a168, 0x0402031d},
+ {0x0000a16c, 0x04000401},
+ {0x0000a170, 0x041e041f},
+ {0x0000a174, 0x0502041d},
+ {0x0000a178, 0x05000501},
+ {0x0000a17c, 0x051e051f},
+ {0x0000a180, 0x06010602},
+ {0x0000a184, 0x061f0600},
+ {0x0000a188, 0x061d061e},
+ {0x0000a18c, 0x07020703},
+ {0x0000a190, 0x07000701},
+ {0x0000a194, 0x00000000},
+ {0x0000a198, 0x00000000},
+ {0x0000a19c, 0x00000000},
+ {0x0000a1a0, 0x00000000},
+ {0x0000a1a4, 0x00000000},
+ {0x0000a1a8, 0x00000000},
+ {0x0000a1ac, 0x00000000},
+ {0x0000a1b0, 0x00000000},
+ {0x0000a1b4, 0x00000000},
+ {0x0000a1b8, 0x00000000},
+ {0x0000a1bc, 0x00000000},
+ {0x0000a1c0, 0x00000000},
+ {0x0000a1c4, 0x00000000},
+ {0x0000a1c8, 0x00000000},
+ {0x0000a1cc, 0x00000000},
+ {0x0000a1d0, 0x00000000},
+ {0x0000a1d4, 0x00000000},
+ {0x0000a1d8, 0x00000000},
+ {0x0000a1dc, 0x00000000},
+ {0x0000a1e0, 0x00000000},
+ {0x0000a1e4, 0x00000000},
+ {0x0000a1e8, 0x00000000},
+ {0x0000a1ec, 0x00000000},
+ {0x0000a1f0, 0x00000396},
+ {0x0000a1f4, 0x00000396},
+ {0x0000a1f8, 0x00000396},
+ {0x0000a1fc, 0x00000196},
+ {0x0000b000, 0x00010000},
+ {0x0000b004, 0x00030002},
+ {0x0000b008, 0x00050004},
+ {0x0000b00c, 0x00810080},
+ {0x0000b010, 0x00830082},
+ {0x0000b014, 0x01810180},
+ {0x0000b018, 0x01830182},
+ {0x0000b01c, 0x01850184},
+ {0x0000b020, 0x02810280},
+ {0x0000b024, 0x02830282},
+ {0x0000b028, 0x02850284},
+ {0x0000b02c, 0x02890288},
+ {0x0000b030, 0x028b028a},
+ {0x0000b034, 0x0388028c},
+ {0x0000b038, 0x038a0389},
+ {0x0000b03c, 0x038c038b},
+ {0x0000b040, 0x0390038d},
+ {0x0000b044, 0x03920391},
+ {0x0000b048, 0x03940393},
+ {0x0000b04c, 0x03960395},
+ {0x0000b050, 0x00000000},
+ {0x0000b054, 0x00000000},
+ {0x0000b058, 0x00000000},
+ {0x0000b05c, 0x00000000},
+ {0x0000b060, 0x00000000},
+ {0x0000b064, 0x00000000},
+ {0x0000b068, 0x00000000},
+ {0x0000b06c, 0x00000000},
+ {0x0000b070, 0x00000000},
+ {0x0000b074, 0x00000000},
+ {0x0000b078, 0x00000000},
+ {0x0000b07c, 0x00000000},
+ {0x0000b080, 0x32323232},
+ {0x0000b084, 0x2f2f3232},
+ {0x0000b088, 0x23282a2d},
+ {0x0000b08c, 0x1c1e2123},
+ {0x0000b090, 0x14171919},
+ {0x0000b094, 0x0e0e1214},
+ {0x0000b098, 0x03050707},
+ {0x0000b09c, 0x00030303},
+ {0x0000b0a0, 0x00000000},
+ {0x0000b0a4, 0x00000000},
+ {0x0000b0a8, 0x00000000},
+ {0x0000b0ac, 0x00000000},
+ {0x0000b0b0, 0x00000000},
+ {0x0000b0b4, 0x00000000},
+ {0x0000b0b8, 0x00000000},
+ {0x0000b0bc, 0x00000000},
+ {0x0000b0c0, 0x003f0020},
+ {0x0000b0c4, 0x00400041},
+ {0x0000b0c8, 0x0140005f},
+ {0x0000b0cc, 0x0160015f},
+ {0x0000b0d0, 0x017e017f},
+ {0x0000b0d4, 0x02410242},
+ {0x0000b0d8, 0x025f0240},
+ {0x0000b0dc, 0x027f0260},
+ {0x0000b0e0, 0x0341027e},
+ {0x0000b0e4, 0x035f0340},
+ {0x0000b0e8, 0x037f0360},
+ {0x0000b0ec, 0x04400441},
+ {0x0000b0f0, 0x0460045f},
+ {0x0000b0f4, 0x0541047f},
+ {0x0000b0f8, 0x055f0540},
+ {0x0000b0fc, 0x057f0560},
+ {0x0000b100, 0x06400641},
+ {0x0000b104, 0x0660065f},
+ {0x0000b108, 0x067e067f},
+ {0x0000b10c, 0x07410742},
+ {0x0000b110, 0x075f0740},
+ {0x0000b114, 0x077f0760},
+ {0x0000b118, 0x07800781},
+ {0x0000b11c, 0x07a0079f},
+ {0x0000b120, 0x07c107bf},
+ {0x0000b124, 0x000007c0},
+ {0x0000b128, 0x00000000},
+ {0x0000b12c, 0x00000000},
+ {0x0000b130, 0x00000000},
+ {0x0000b134, 0x00000000},
+ {0x0000b138, 0x00000000},
+ {0x0000b13c, 0x00000000},
+ {0x0000b140, 0x003f0020},
+ {0x0000b144, 0x00400041},
+ {0x0000b148, 0x0140005f},
+ {0x0000b14c, 0x0160015f},
+ {0x0000b150, 0x017e017f},
+ {0x0000b154, 0x02410242},
+ {0x0000b158, 0x025f0240},
+ {0x0000b15c, 0x027f0260},
+ {0x0000b160, 0x0341027e},
+ {0x0000b164, 0x035f0340},
+ {0x0000b168, 0x037f0360},
+ {0x0000b16c, 0x04400441},
+ {0x0000b170, 0x0460045f},
+ {0x0000b174, 0x0541047f},
+ {0x0000b178, 0x055f0540},
+ {0x0000b17c, 0x057f0560},
+ {0x0000b180, 0x06400641},
+ {0x0000b184, 0x0660065f},
+ {0x0000b188, 0x067e067f},
+ {0x0000b18c, 0x07410742},
+ {0x0000b190, 0x075f0740},
+ {0x0000b194, 0x077f0760},
+ {0x0000b198, 0x07800781},
+ {0x0000b19c, 0x07a0079f},
+ {0x0000b1a0, 0x07c107bf},
+ {0x0000b1a4, 0x000007c0},
+ {0x0000b1a8, 0x00000000},
+ {0x0000b1ac, 0x00000000},
+ {0x0000b1b0, 0x00000000},
+ {0x0000b1b4, 0x00000000},
+ {0x0000b1b8, 0x00000000},
+ {0x0000b1bc, 0x00000000},
+ {0x0000b1c0, 0x00000000},
+ {0x0000b1c4, 0x00000000},
+ {0x0000b1c8, 0x00000000},
+ {0x0000b1cc, 0x00000000},
+ {0x0000b1d0, 0x00000000},
+ {0x0000b1d4, 0x00000000},
+ {0x0000b1d8, 0x00000000},
+ {0x0000b1dc, 0x00000000},
+ {0x0000b1e0, 0x00000000},
+ {0x0000b1e4, 0x00000000},
+ {0x0000b1e8, 0x00000000},
+ {0x0000b1ec, 0x00000000},
+ {0x0000b1f0, 0x00000396},
+ {0x0000b1f4, 0x00000396},
+ {0x0000b1f8, 0x00000396},
+ {0x0000b1fc, 0x00000196},
+};
+
+static const u32 ar955x_1p0_soc_preamble[][2] = {
+ /* Addr allmodes */
+ {0x00007000, 0x00000000},
+ {0x00007004, 0x00000000},
+ {0x00007008, 0x00000000},
+ {0x0000700c, 0x00000000},
+ {0x0000701c, 0x00000000},
+ {0x00007020, 0x00000000},
+ {0x00007024, 0x00000000},
+ {0x00007028, 0x00000000},
+ {0x0000702c, 0x00000000},
+ {0x00007030, 0x00000000},
+ {0x00007034, 0x00000002},
+ {0x00007038, 0x000004c2},
+ {0x00007048, 0x00000000},
+};
+
+static const u32 ar955x_1p0_common_wo_xlna_rx_gain_bounds[][5] = {
+ /* Addr 5G_HT20 5G_HT40 2G_HT40 2G_HT20 */
+ {0x00009e44, 0xfe321e27, 0xfe321e27, 0xfe291e27, 0xfe291e27},
+ {0x00009e48, 0x5030201a, 0x5030201a, 0x50302012, 0x50302012},
+};
+
+static const u32 ar955x_1p0_mac_postamble[][5] = {
+ /* Addr 5G_HT20 5G_HT40 2G_HT40 2G_HT20 */
+ {0x00001030, 0x00000230, 0x00000460, 0x000002c0, 0x00000160},
+ {0x00001070, 0x00000168, 0x000002d0, 0x00000318, 0x0000018c},
+ {0x000010b0, 0x00000e60, 0x00001cc0, 0x00007c70, 0x00003e38},
+ {0x00008014, 0x03e803e8, 0x07d007d0, 0x10801600, 0x08400b00},
+ {0x0000801c, 0x128d8027, 0x128d804f, 0x12e00057, 0x12e0002b},
+ {0x00008120, 0x08f04800, 0x08f04800, 0x08f04810, 0x08f04810},
+ {0x000081d0, 0x00003210, 0x00003210, 0x0000320a, 0x0000320a},
+ {0x00008318, 0x00003e80, 0x00007d00, 0x00006880, 0x00003440},
+};
+
+static const u32 ar955x_1p0_common_rx_gain_bounds[][5] = {
+ /* Addr 5G_HT20 5G_HT40 2G_HT40 2G_HT20 */
+ {0x00009e44, 0xfe321e27, 0xfe321e27, 0xfe291e27, 0xfe291e27},
+ {0x00009e48, 0x5030201a, 0x5030201a, 0x50302018, 0x50302018},
+};
+
+static const u32 ar955x_1p0_modes_no_xpa_tx_gain_table[][9] = {
+ /* Addr 5G_HT20_L 5G_HT40_L 5G_HT20_M 5G_HT40_M 5G_HT20_H 5G_HT40_H 2G_HT40 2G_HT20 */
+ {0x0000a2dc, 0x01feee00, 0x01feee00, 0x01feee00, 0x01feee00, 0x01feee00, 0x01feee00, 0xfffe5aaa, 0xfffe5aaa},
+ {0x0000a2e0, 0x0000f000, 0x0000f000, 0x0000f000, 0x0000f000, 0x0000f000, 0x0000f000, 0xfffe9ccc, 0xfffe9ccc},
+ {0x0000a2e4, 0x01ff0000, 0x01ff0000, 0x01ff0000, 0x01ff0000, 0x01ff0000, 0x01ff0000, 0xffffe0f0, 0xffffe0f0},
+ {0x0000a2e8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffef00, 0xffffef00},
+ {0x0000a410, 0x000050d8, 0x000050d8, 0x000050d8, 0x000050d8, 0x000050d8, 0x000050d8, 0x000050d7, 0x000050d7},
+ {0x0000a500, 0x00002220, 0x00002220, 0x00002220, 0x00002220, 0x00002220, 0x00002220, 0x00000000, 0x00000000},
+ {0x0000a504, 0x04002222, 0x04002222, 0x04002222, 0x04002222, 0x04002222, 0x04002222, 0x04000002, 0x04000002},
+ {0x0000a508, 0x09002421, 0x09002421, 0x09002421, 0x09002421, 0x09002421, 0x09002421, 0x08000004, 0x08000004},
+ {0x0000a50c, 0x0d002621, 0x0d002621, 0x0d002621, 0x0d002621, 0x0d002621, 0x0d002621, 0x0b000006, 0x0b000006},
+ {0x0000a510, 0x13004620, 0x13004620, 0x13004620, 0x13004620, 0x13004620, 0x13004620, 0x0f00000a, 0x0f00000a},
+ {0x0000a514, 0x19004a20, 0x19004a20, 0x19004a20, 0x19004a20, 0x19004a20, 0x19004a20, 0x1300000c, 0x1300000c},
+ {0x0000a518, 0x1d004e20, 0x1d004e20, 0x1d004e20, 0x1d004e20, 0x1d004e20, 0x1d004e20, 0x1700000e, 0x1700000e},
+ {0x0000a51c, 0x21005420, 0x21005420, 0x21005420, 0x21005420, 0x21005420, 0x21005420, 0x1b000012, 0x1b000012},
+ {0x0000a520, 0x26005e20, 0x26005e20, 0x26005e20, 0x26005e20, 0x26005e20, 0x26005e20, 0x1f00004a, 0x1f00004a},
+ {0x0000a524, 0x2b005e40, 0x2b005e40, 0x2b005e40, 0x2b005e40, 0x2b005e40, 0x2b005e40, 0x23000244, 0x23000244},
+ {0x0000a528, 0x2f005e42, 0x2f005e42, 0x2f005e42, 0x2f005e42, 0x2f005e42, 0x2f005e42, 0x2700022b, 0x2700022b},
+ {0x0000a52c, 0x33005e44, 0x33005e44, 0x33005e44, 0x33005e44, 0x33005e44, 0x33005e44, 0x2b000625, 0x2b000625},
+ {0x0000a530, 0x38005e65, 0x38005e65, 0x38005e65, 0x38005e65, 0x38005e65, 0x38005e65, 0x2f001006, 0x2f001006},
+ {0x0000a534, 0x3c005e69, 0x3c005e69, 0x3c005e69, 0x3c005e69, 0x3c005e69, 0x3c005e69, 0x330008a0, 0x330008a0},
+ {0x0000a538, 0x40005e6b, 0x40005e6b, 0x40005e6b, 0x40005e6b, 0x40005e6b, 0x40005e6b, 0x37000a2a, 0x37000a2a},
+ {0x0000a53c, 0x44005e6d, 0x44005e6d, 0x44005e6d, 0x44005e6d, 0x44005e6d, 0x44005e6d, 0x3b001c23, 0x3b001c23},
+ {0x0000a540, 0x49005e72, 0x49005e72, 0x49005e72, 0x49005e72, 0x49005e72, 0x49005e72, 0x3f0014a0, 0x3f0014a0},
+ {0x0000a544, 0x4e005eb2, 0x4e005eb2, 0x4e005eb2, 0x4e005eb2, 0x4e005eb2, 0x4e005eb2, 0x43001882, 0x43001882},
+ {0x0000a548, 0x53005f12, 0x53005f12, 0x53005f12, 0x53005f12, 0x53005f12, 0x53005f12, 0x47001ca2, 0x47001ca2},
+ {0x0000a54c, 0x59025eb2, 0x59025eb2, 0x59025eb2, 0x59025eb2, 0x59025eb2, 0x59025eb2, 0x4b001ec3, 0x4b001ec3},
+ {0x0000a550, 0x5e025f12, 0x5e025f12, 0x5e025f12, 0x5e025f12, 0x5e025f12, 0x5e025f12, 0x4f00148c, 0x4f00148c},
+ {0x0000a554, 0x61027f12, 0x61027f12, 0x61027f12, 0x61027f12, 0x61027f12, 0x61027f12, 0x53001c6e, 0x53001c6e},
+ {0x0000a558, 0x6702bf12, 0x6702bf12, 0x6702bf12, 0x6702bf12, 0x6702bf12, 0x6702bf12, 0x57001c92, 0x57001c92},
+ {0x0000a55c, 0x6b02bf14, 0x6b02bf14, 0x6b02bf14, 0x6b02bf14, 0x6b02bf14, 0x6b02bf14, 0x5c001af6, 0x5c001af6},
+ {0x0000a560, 0x6f02bf16, 0x6f02bf16, 0x6f02bf16, 0x6f02bf16, 0x6f02bf16, 0x6f02bf16, 0x5c001af6, 0x5c001af6},
+ {0x0000a564, 0x6f02bf16, 0x6f02bf16, 0x6f02bf16, 0x6f02bf16, 0x6f02bf16, 0x6f02bf16, 0x5c001af6, 0x5c001af6},
+ {0x0000a568, 0x6f02bf16, 0x6f02bf16, 0x6f02bf16, 0x6f02bf16, 0x6f02bf16, 0x6f02bf16, 0x5c001af6, 0x5c001af6},
+ {0x0000a56c, 0x6f02bf16, 0x6f02bf16, 0x6f02bf16, 0x6f02bf16, 0x6f02bf16, 0x6f02bf16, 0x5c001af6, 0x5c001af6},
+ {0x0000a570, 0x6f02bf16, 0x6f02bf16, 0x6f02bf16, 0x6f02bf16, 0x6f02bf16, 0x6f02bf16, 0x5c001af6, 0x5c001af6},
+ {0x0000a574, 0x6f02bf16, 0x6f02bf16, 0x6f02bf16, 0x6f02bf16, 0x6f02bf16, 0x6f02bf16, 0x5c001af6, 0x5c001af6},
+ {0x0000a578, 0x6f02bf16, 0x6f02bf16, 0x6f02bf16, 0x6f02bf16, 0x6f02bf16, 0x6f02bf16, 0x5c001af6, 0x5c001af6},
+ {0x0000a57c, 0x6f02bf16, 0x6f02bf16, 0x6f02bf16, 0x6f02bf16, 0x6f02bf16, 0x6f02bf16, 0x5c001af6, 0x5c001af6},
+ {0x0000a600, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
+ {0x0000a604, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
+ {0x0000a608, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
+ {0x0000a60c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
+ {0x0000a610, 0x00804000, 0x00804000, 0x00804000, 0x00804000, 0x00804000, 0x00804000, 0x04005001, 0x04005001},
+ {0x0000a614, 0x00804201, 0x00804201, 0x00804201, 0x00804201, 0x00804201, 0x00804201, 0x03808e02, 0x03808e02},
+ {0x0000a618, 0x0280c802, 0x0280c802, 0x0280c802, 0x0280c802, 0x0280c802, 0x0280c802, 0x0300c000, 0x0300c000},
+ {0x0000a61c, 0x0280ca03, 0x0280ca03, 0x0280ca03, 0x0280ca03, 0x0280ca03, 0x0280ca03, 0x03808e02, 0x03808e02},
+ {0x0000a620, 0x04c15104, 0x04c15104, 0x04c15104, 0x04c15104, 0x04c15104, 0x04c15104, 0x03410c03, 0x03410c03},
+ {0x0000a624, 0x04c15305, 0x04c15305, 0x04c15305, 0x04c15305, 0x04c15305, 0x04c15305, 0x04014c03, 0x04014c03},
+ {0x0000a628, 0x04c15305, 0x04c15305, 0x04c15305, 0x04c15305, 0x04c15305, 0x04c15305, 0x05818d04, 0x05818d04},
+ {0x0000a62c, 0x04c15305, 0x04c15305, 0x04c15305, 0x04c15305, 0x04c15305, 0x04c15305, 0x0801cd04, 0x0801cd04},
+ {0x0000a630, 0x04c15305, 0x04c15305, 0x04c15305, 0x04c15305, 0x04c15305, 0x04c15305, 0x0801e007, 0x0801e007},
+ {0x0000a634, 0x04c15305, 0x04c15305, 0x04c15305, 0x04c15305, 0x04c15305, 0x04c15305, 0x0801e007, 0x0801e007},
+ {0x0000a638, 0x04c15305, 0x04c15305, 0x04c15305, 0x04c15305, 0x04c15305, 0x04c15305, 0x0801e007, 0x0801e007},
+ {0x0000a63c, 0x04c15305, 0x04c15305, 0x04c15305, 0x04c15305, 0x04c15305, 0x04c15305, 0x0801e007, 0x0801e007},
+ {0x0000b2dc, 0x01feee00, 0x01feee00, 0x01feee00, 0x01feee00, 0x01feee00, 0x01feee00, 0xfffe5aaa, 0xfffe5aaa},
+ {0x0000b2e0, 0x0000f000, 0x0000f000, 0x0000f000, 0x0000f000, 0x0000f000, 0x0000f000, 0xfffe9ccc, 0xfffe9ccc},
+ {0x0000b2e4, 0x01ff0000, 0x01ff0000, 0x01ff0000, 0x01ff0000, 0x01ff0000, 0x01ff0000, 0xffffe0f0, 0xffffe0f0},
+ {0x0000b2e8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffef00, 0xffffef00},
+ {0x0000c2dc, 0x01feee00, 0x01feee00, 0x01feee00, 0x01feee00, 0x01feee00, 0x01feee00, 0xfffe5aaa, 0xfffe5aaa},
+ {0x0000c2e0, 0x0000f000, 0x0000f000, 0x0000f000, 0x0000f000, 0x0000f000, 0x0000f000, 0xfffe9ccc, 0xfffe9ccc},
+ {0x0000c2e4, 0x01ff0000, 0x01ff0000, 0x01ff0000, 0x01ff0000, 0x01ff0000, 0x01ff0000, 0xffffe0f0, 0xffffe0f0},
+ {0x0000c2e8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffef00, 0xffffef00},
+ {0x00016044, 0x056db2d4, 0x056db2d4, 0x056db2d4, 0x056db2d4, 0x056db2d4, 0x056db2d4, 0x054922d4, 0x054922d4},
+ {0x00016048, 0x66482401, 0x66482401, 0x66482401, 0x66482401, 0x66482401, 0x66482401, 0x66482401, 0x66482401},
+ {0x00016444, 0x056db2d4, 0x056db2d4, 0x056db2d4, 0x056db2d4, 0x056db2d4, 0x056db2d4, 0x054922d4, 0x054922d4},
+ {0x00016448, 0x66482401, 0x66482401, 0x66482401, 0x66482401, 0x66482401, 0x66482401, 0x66482401, 0x66482401},
+ {0x00016844, 0x056db2d4, 0x056db2d4, 0x056db2d4, 0x056db2d4, 0x056db2d4, 0x056db2d4, 0x054922d4, 0x054922d4},
+ {0x00016848, 0x66482401, 0x66482401, 0x66482401, 0x66482401, 0x66482401, 0x66482401, 0x66482401, 0x66482401},
+};
+
+static const u32 ar955x_1p0_soc_postamble[][5] = {
+ /* Addr 5G_HT20 5G_HT40 2G_HT40 2G_HT20 */
+ {0x00007010, 0x00000023, 0x00000023, 0x00000023, 0x00000023},
+};
+
+static const u32 ar955x_1p0_modes_fast_clock[][3] = {
+ /* Addr 5G_HT20 5G_HT40 */
+ {0x00001030, 0x00000268, 0x000004d0},
+ {0x00001070, 0x0000018c, 0x00000318},
+ {0x000010b0, 0x00000fd0, 0x00001fa0},
+ {0x00008014, 0x044c044c, 0x08980898},
+ {0x0000801c, 0x148ec02b, 0x148ec057},
+ {0x00008318, 0x000044c0, 0x00008980},
+ {0x00009e00, 0x0372131c, 0x0372131c},
+ {0x0000a230, 0x0000000b, 0x00000016},
+ {0x0000a254, 0x00000898, 0x00001130},
+};
+
+#endif /* INITVALS_955X_1P0_H */
diff --git a/tools/initvals/initvals.c b/tools/initvals/initvals.c
index b13d12e..6522de6 100644
--- a/tools/initvals/initvals.c
+++ b/tools/initvals/initvals.c
@@ -35,6 +35,7 @@ struct initval_family {
#include "ar9330_1p2_initvals.h"
#include "ar9340_initvals.h"
#include "ar9485_initvals.h"
+#include "ar955x_1p0_initvals.h"
#include "ar9580_1p0_initvals.h"
#include "ar9462_2p0_initvals.h"
#include "ar9565_1p0_initvals.h"
@@ -235,6 +236,25 @@ struct initval_family {

#include "ar9485_1_1.ini"

+#define ar955x_scorpion_1p0_radio_postamble ar955x_1p0_radio_postamble
+#define ar955x_scorpion_1p0_baseband_core_txfir_coeff_japan_2484 ar955x_1p0_baseband_core_txfir_coeff_japan_2484
+#define ar955x_scorpion_1p0_baseband_postamble ar955x_1p0_baseband_postamble
+#define ar955x_scorpion_1p0_radio_core ar955x_1p0_radio_core
+#define ar955xModes_xpa_tx_gain_table_scorpion_1p0 ar955x_1p0_modes_xpa_tx_gain_table
+#define ar955x_scorpion_1p0_mac_core ar955x_1p0_mac_core
+#define ar955xCommon_rx_gain_table_scorpion_1p0 ar955x_1p0_common_rx_gain_table
+#define ar955x_scorpion_1p0_baseband_core ar955x_1p0_baseband_core
+#define ar955xCommon_wo_xlna_rx_gain_table_scorpion_1p0 ar955x_1p0_common_wo_xlna_rx_gain_table
+#define ar955x_scorpion_1p0_soc_preamble ar955x_1p0_soc_preamble
+#define ar955xCommon_wo_xlna_rx_gain_bounds_scorpion_1p0 ar955x_1p0_common_wo_xlna_rx_gain_bounds
+#define ar955x_scorpion_1p0_mac_postamble ar955x_1p0_mac_postamble
+#define ar955xCommon_rx_gain_bounds_scorpion_1p0 ar955x_1p0_common_rx_gain_bounds
+#define ar955xModes_no_xpa_tx_gain_table_scorpion_1p0 ar955x_1p0_modes_no_xpa_tx_gain_table
+#define ar955x_scorpion_1p0_soc_postamble ar955x_1p0_soc_postamble
+#define ar955xModes_fast_clock_scorpion_1p0 ar955x_1p0_modes_fast_clock
+
+#include "ar955x.ini"
+
#define ar9300Modes_fast_clock_ar9580_1p0 ar9580_1p0_modes_fast_clock
#define ar9300_ar9580_1p0_radio_postamble ar9580_1p0_radio_postamble
#define ar9300_ar9580_1p0_baseband_core ar9580_1p0_baseband_core
@@ -450,6 +470,9 @@ static void ath9k_hw_print_initval(const char *name, const u32 *array, u32 rows,
printf("static const u32 %s[][%d] = {\n", name, p_columns);

switch (p_columns) {
+ case 9:
+ printf("\t/* Addr 5G_HT20_L 5G_HT40_L 5G_HT20_M 5G_HT40_M 5G_HT20_H 5G_HT40_H 2G_HT40 2G_HT20 */\n");
+ break;
case 5:
printf("\t/* Addr 5G_HT20 5G_HT40 2G_HT40 2G_HT20 */\n");
break;
@@ -750,6 +773,26 @@ static void ar9485_hw_print_initvals(bool check)
ar9462_2p0_baseband_core_txfir_coeff_japan_2484);
}

+static void ar955x_1p0_hw_print_initvals(bool check)
+{
+ INI_PRINT(ar955x_1p0_radio_postamble);
+ INI_PRINT(ar955x_1p0_baseband_core_txfir_coeff_japan_2484);
+ INI_PRINT(ar955x_1p0_baseband_postamble);
+ INI_PRINT(ar955x_1p0_radio_core);
+ INI_PRINTW(ar955x_1p0_modes_xpa_tx_gain_table);
+ INI_PRINT(ar955x_1p0_mac_core);
+ INI_PRINT(ar955x_1p0_common_rx_gain_table);
+ INI_PRINT(ar955x_1p0_baseband_core);
+ INI_PRINT(ar955x_1p0_common_wo_xlna_rx_gain_table);
+ INI_PRINT(ar955x_1p0_soc_preamble);
+ INI_PRINT(ar955x_1p0_common_wo_xlna_rx_gain_bounds);
+ INI_PRINT(ar955x_1p0_mac_postamble);
+ INI_PRINT(ar955x_1p0_common_rx_gain_bounds);
+ INI_PRINTW(ar955x_1p0_modes_no_xpa_tx_gain_table);
+ INI_PRINT(ar955x_1p0_soc_postamble);
+ INI_PRINT(ar955x_1p0_modes_fast_clock);
+}
+
static void ar9580_1p0_hw_print_initvals(bool check)
{
INI_PRINT_DUP(ar9580_1p0_modes_fast_clock,
@@ -843,6 +886,7 @@ struct initval_family families[] = {
FAM("ar9340" , "9340" , NULL , ar9340_hw_print_initvals),
FAM("ar9462-2p0", "9462_2P0", "AR9462 2.0", ar9462_2p0_hw_print_initvals),
FAM("ar9485" , "9485" , "AR9485 1.1", ar9485_hw_print_initvals),
+ FAM("ar955x-1p0", "955X_1P0", "AR955X 1.0", ar955x_1p0_hw_print_initvals),
FAM("ar9565-1p0", "9565_1P0", "AR9565 1.0", ar9565_1p0_hw_print_initvals),
FAM("ar9580" , "9580_1P0", "AR9580 1.0", ar9580_1p0_hw_print_initvals),
};
--
1.7.10


2012-12-06 18:17:34

by Gabor Juhos

[permalink] [raw]
Subject: [PATCH v2 09/13] qca-swiss-army-knife: simplify initval family handling

The current code contain lots of duplication in order to
print initval arrays for different families. Refactor the
code to get rid of the duplications. This makes the code
a bit clener, and adding support for a new family will be
easier as well.

Aslo update checksums.txt because the initvals for AR9462
are printed before AR9580.

Signed-off-by: Gabor Juhos <[email protected]>
---
tools/initvals/checksums.txt | 38 ++++----
tools/initvals/initvals.c | 199 ++++++++++++++++++------------------------
2 files changed, 104 insertions(+), 133 deletions(-)

diff --git a/tools/initvals/checksums.txt b/tools/initvals/checksums.txt
index 5f18eb1..f02df5b 100644
--- a/tools/initvals/checksums.txt
+++ b/tools/initvals/checksums.txt
@@ -137,6 +137,25 @@ ca6088034f339ea8f106f7f034d34baafec0c0ca ar9340Modes_high_ob_db_tx_gain_t
58caac4e0a0184f6904d4adc7f7be8e528e6d0e3 ar9340_1p0_mac_core
481b3066bd6b4dfa425027157f7c6252b535ebe4 ar9340Common_wo_xlna_rx_gain_table_1p0
1b9f617ab8c10ec0760e81fe61d469692f2acc29 ar9340_1p0_soc_preamble
+d9efd1c575ac43d60c310d717c59617a5323c111 ar9462_modes_fast_clock_2p0
+8bf1688079add33889085f3d35a5fab61c33487f ar9462_pciephy_clkreq_enable_L1_2p0
+8dacf543535b605143b40aef74f7d46af064cb43 ar9462_2p0_baseband_postamble
+d0f7aff1a1ab7e6f6bbda0da067714459341ce5f ar9462_common_rx_gain_table_2p0
+bc232a96b4c1530bebe654420652a9f080a09db8 ar9462_pciephy_clkreq_disable_L1_2p0
+f4c2241d40995e09f8736ed2ef5eaa5d6f051aa5 ar9462_pciephy_pll_on_clkreq_disable_L1_2p0
+057d1ee3d10321f1cc4d6c19cf1927e2ae56af28 ar9462_2p0_radio_postamble_sys2ant
+481b3066bd6b4dfa425027157f7c6252b535ebe4 ar9462_common_wo_xlna_rx_gain_table_2p0
+dfaefa89122b4b769bfcf93b4bd9569f2b0ee961 ar9462_2p0_baseband_core_txfir_coeff_japan_2484
+a36b90fcdeeb4071fd090537f008f8091d885581 ar9462_modes_low_ob_db_tx_gain_table_2p0
+7c0a54aaf0f77f5bf048126e43feea746732d43f ar9462_2p0_soc_postamble
+e87864956a7209224880cff035b4441b0ab3fbcc ar9462_2p0_baseband_core
+b50d2fe654b069110bdbe06e5065f2aa9b117e3e ar9462_2p0_radio_postamble
+5a98e71e601539bf31af7b9d18b210ab70f99dae ar9462_modes_high_ob_db_tx_gain_table_2p0
+fd98d0361e085b102131c2dc07c601e0a7ccdd13 ar9462_2p0_radio_core
+3e60b14761abfa24d758727954d1d5cc398abf7f ar9462_2p0_soc_preamble
+fc8623151293cc7739d0fb8e2873256749c74930 ar9462_2p0_mac_core
+c8dc777b012068116cd5282aade8eb460f397d20 ar9462_2p0_mac_postamble
+72675fd0f308e6f31502e283119e12469d262f40 ar9462_common_mixed_rx_gain_table_2p0
c8dc777b012068116cd5282aade8eb460f397d20 ar9485_1_1_mac_postamble
5d20e4848b97566ad55e0e95458463d622ee5480 ar9485_1_1_pcie_phy_pll_on_clkreq_disable_L1
d9a90632a00a7b417154173b947dfffdeab23e51 ar9485Common_wo_xlna_rx_gain_1_1
@@ -193,22 +212,3 @@ d0f7aff1a1ab7e6f6bbda0da067714459341ce5f ar9580_1p0_rx_gain_table
0514ee3b3d014dc7110c616390a2fc5103b057f7 ar9580_1p0_pcie_phy_clkreq_enable_L1
d0865f0cebcd7df2114a5626a3d0d19b8dae5710 ar9580_1p0_pcie_phy_clkreq_disable_L1
45047f648d4c6138429f8bbc97680ac07f74ba62 ar9580_1p0_pcie_phy_pll_on_clkreq
-d9efd1c575ac43d60c310d717c59617a5323c111 ar9462_modes_fast_clock_2p0
-8bf1688079add33889085f3d35a5fab61c33487f ar9462_pciephy_clkreq_enable_L1_2p0
-8dacf543535b605143b40aef74f7d46af064cb43 ar9462_2p0_baseband_postamble
-d0f7aff1a1ab7e6f6bbda0da067714459341ce5f ar9462_common_rx_gain_table_2p0
-bc232a96b4c1530bebe654420652a9f080a09db8 ar9462_pciephy_clkreq_disable_L1_2p0
-f4c2241d40995e09f8736ed2ef5eaa5d6f051aa5 ar9462_pciephy_pll_on_clkreq_disable_L1_2p0
-057d1ee3d10321f1cc4d6c19cf1927e2ae56af28 ar9462_2p0_radio_postamble_sys2ant
-481b3066bd6b4dfa425027157f7c6252b535ebe4 ar9462_common_wo_xlna_rx_gain_table_2p0
-dfaefa89122b4b769bfcf93b4bd9569f2b0ee961 ar9462_2p0_baseband_core_txfir_coeff_japan_2484
-a36b90fcdeeb4071fd090537f008f8091d885581 ar9462_modes_low_ob_db_tx_gain_table_2p0
-7c0a54aaf0f77f5bf048126e43feea746732d43f ar9462_2p0_soc_postamble
-e87864956a7209224880cff035b4441b0ab3fbcc ar9462_2p0_baseband_core
-b50d2fe654b069110bdbe06e5065f2aa9b117e3e ar9462_2p0_radio_postamble
-5a98e71e601539bf31af7b9d18b210ab70f99dae ar9462_modes_high_ob_db_tx_gain_table_2p0
-fd98d0361e085b102131c2dc07c601e0a7ccdd13 ar9462_2p0_radio_core
-3e60b14761abfa24d758727954d1d5cc398abf7f ar9462_2p0_soc_preamble
-fc8623151293cc7739d0fb8e2873256749c74930 ar9462_2p0_mac_core
-c8dc777b012068116cd5282aade8eb460f397d20 ar9462_2p0_mac_postamble
-72675fd0f308e6f31502e283119e12469d262f40 ar9462_common_mixed_rx_gain_table_2p0
diff --git a/tools/initvals/initvals.c b/tools/initvals/initvals.c
index 90ca377..35466bc 100644
--- a/tools/initvals/initvals.c
+++ b/tools/initvals/initvals.c
@@ -13,6 +13,14 @@
typedef uint32_t u32;
typedef long long unsigned int u64;

+struct initval_family {
+ const char *name;
+ const char *header_def;
+ const char *header_ver;
+
+ void (*print)(bool check);
+};
+
/*
* compile with -DATHEROS if you want to use the upstream Atheros initvals
* and have them handy.
@@ -798,129 +806,102 @@ static void ar9565_1p0_hw_print_initvals(bool check)
INI_PRINT(ar9565_1p0_modes_high_power_tx_gain_table);
}

-static void usage()
+#define FAM(_name, _def, _ver, _print) { \
+ .name = _name, \
+ .header_def = _def, \
+ .header_ver = _ver, \
+ .print = _print \
+}
+
+struct initval_family families[] = {
+ FAM("ar5008" , NULL , NULL , ar5008_hw_print_initvals),
+ FAM("ar9001" , NULL , NULL , ar9001_hw_print_initvals),
+ FAM("ar9002" , NULL , NULL , ar9002_hw_print_initvals),
+ FAM("ar9003-2p2", "9003_2P2", "AR9003 2.2", ar9003_2p2_hw_print_initvals),
+ FAM("ar9330-1p1", "9330_1P1", NULL , ar9330_1p1_hw_print_initvals),
+ FAM("ar9330-1p2", "9330_1P2", NULL , ar9330_1p2_hw_print_initvals),
+ FAM("ar9340" , "9340" , NULL , ar9340_hw_print_initvals),
+ FAM("ar9462-2p0", "9462_2P0", "AR9462 2.0", ar9462_2p0_hw_print_initvals),
+ FAM("ar9485" , "9485" , "AR9485 1.1", ar9485_hw_print_initvals),
+ FAM("ar9565-1p0", "9565_1P0", "AR9565 1.0", ar9565_1p0_hw_print_initvals),
+ FAM("ar9580" , "9580_1P0", "AR9580 1.0", ar9580_1p0_hw_print_initvals),
+};
+
+static struct initval_family *find_family(const char *name)
{
- printf("Usage: initvals [-w] "
- "[-f ar5008 | ar9001 | ar9002 | "
- "ar9003-2p2 | ar9330-1p1 | ar9330-1p2 | ar9462-2p0 | ar9485 | ar9580-1p0 | ar9565-1p0 ]\n");
+ int i;
+
+ for (i = 0; i < ARRAY_SIZE(families); i++) {
+ struct initval_family *fam;
+
+ fam = &families[i];
+ if (strncmp(fam->name, name, strlen(fam->name)) == 0)
+ return fam;
+ }
+
+ return NULL;
}

-static void print_initvals_family(char *family, bool check)
+static void print_family(struct initval_family *family, bool check)
{
- if (!check)
+ if (!check) {
print_license();

- if (strncmp(family, "ar5008", 6) == 0)
- ar5008_hw_print_initvals(check);
- else if (strncmp(family, "ar9001", 6) == 0)
- ar9001_hw_print_initvals(check);
- else if (strncmp(family, "ar9002", 6) == 0)
- ar9002_hw_print_initvals(check);
- else if (strncmp(family, "ar9003-2p2", 10) == 0) {
- if (!check) {
- printf("#ifndef INITVALS_9003_2P2_H\n");
- printf("#define INITVALS_9003_2P2_H\n");
- printf("\n");
- printf("/* AR9003 2.2 */\n");
- printf("\n");
- }
- ar9003_2p2_hw_print_initvals(check);
- if (!check)
- printf("#endif /* INITVALS_9003_2P2_H */\n");
- } else if (strncmp(family, "ar9330-1p1", 10) == 0) {
- if (!check) {
- printf("#ifndef INITVALS_9330_1P1_H\n");
- printf("#define INITVALS_9330_1P1_H\n");
- printf("\n");
- }
- ar9330_1p1_hw_print_initvals(check);
- if (!check)
- printf("#endif /* INITVALS_9330_1P1_H */\n");
- } else if (strncmp(family, "ar9330-1p2", 10) == 0) {
- if (!check) {
- printf("#ifndef INITVALS_9330_1P2_H\n");
- printf("#define INITVALS_9330_1P2_H\n");
- printf("\n");
- }
- ar9330_1p2_hw_print_initvals(check);
- if (!check)
- printf("#endif /* INITVALS_9330_1P2_H */\n");
- } else if (strncmp(family, "ar9340", 6) == 0) {
- if (!check) {
- printf("#ifndef INITVALS_9340_H\n");
- printf("#define INITVALS_9340_H\n");
- printf("\n");
- }
- ar9340_hw_print_initvals(check);
- if (!check)
- printf("#endif /* INITVALS_9340_H */\n");
- } else if (strncmp(family, "ar9485", 6) == 0) {
- if (!check) {
- printf("#ifndef INITVALS_9485_H\n");
- printf("#define INITVALS_9485_H\n");
- printf("\n");
- printf("/* AR9485 1.1 */\n");
- printf("\n");
- }
- ar9485_hw_print_initvals(check);
- if (!check)
- printf("#endif /* INITVALS_9485_H */\n");
- } else if (strncmp(family, "ar9580-1p0", 10) == 0) {
- if (!check) {
- printf("#ifndef INITVALS_9580_1P0_H\n");
- printf("#define INITVALS_9580_1P0_H\n");
- printf("\n");
- printf("/* AR9580 1.0 */\n");
- printf("\n");
- }
- ar9580_1p0_hw_print_initvals(check);
- if (!check)
- printf("#endif /* INITVALS_9580_1P0_H */\n");
- } else if (strncmp(family, "ar9462-2p0", 10) == 0) {
- if (!check) {
- printf("#ifndef INITVALS_9462_2P0_H\n");
- printf("#define INITVALS_9462_2P0_H\n");
- printf("\n");
- printf("/* AR9462 2.0 */\n");
+ if (family->header_def) {
+ printf("#ifndef INITVALS_%s_H\n", family->header_def);
+ printf("#define INITVALS_%s_H\n", family->header_def);
printf("\n");
}
- ar9462_2p0_hw_print_initvals(check);
- if (!check)
- printf("#endif /* INITVALS_9462_2P0_H */\n");
- } else if (strncmp(family, "ar9565-1p0", 10) == 0) {
- if (!check) {
- printf("#ifndef INITVALS_9565_1P0_H\n");
- printf("#define INITVALS_9565_1P0_H\n");
- printf("\n");
- printf("/* AR9565 1.0 */\n");
+
+ if (family->header_ver) {
+ printf("/* %s */\n", family->header_ver);
printf("\n");
}
- ar9565_1p0_hw_print_initvals(check);
- if (!check)
- printf("#endif /* INITVALS_9565_1P0_H */\n");
}
+
+ family->print(check);
+
+ if (!check && family->header_def)
+ printf("#endif /* INITVALS_%s_H */\n", family->header_def);
}

-int main(int argc, char *argv[])
+static void usage()
+{
+ int i;
+
+ printf("Usage: initvals [-w] [-f <family>]\n");
+ printf("valid <family> values:\n");
+ for (i = 0; i < ARRAY_SIZE(families); i++)
+ printf("\t%s\n", families[i].name);
+}
+
+static void print_initvals_family(char *name, bool check)
{
+ struct initval_family *family;

+ family = find_family(name);
+ if (!family)
+ return;
+
+ print_family(family, check);
+}
+
+static void print_initvals_family_all(bool check)
+{
+ int i;
+
+ for (i = 0; i < ARRAY_SIZE(families); i++)
+ print_family(&families[i], check);
+}
+
+int main(int argc, char *argv[])
+{
if (argc > 1) {
if (argc == 2) {
if (strncmp(argv[1], "-w", 2) != 0)
return -1;

- ar5008_hw_print_initvals(false);
- ar9001_hw_print_initvals(false);
- ar9002_hw_print_initvals(false);
- ar9003_2p2_hw_print_initvals(false);
- ar9330_1p1_hw_print_initvals(false);
- ar9330_1p2_hw_print_initvals(false);
- ar9340_hw_print_initvals(false);
- ar9485_hw_print_initvals(false);
- ar9565_1p0_hw_print_initvals(false);
- ar9580_1p0_hw_print_initvals(false);
- ar9462_2p0_hw_print_initvals(false);
-
+ print_initvals_family_all(false);
return 0;
}

@@ -942,17 +923,7 @@ int main(int argc, char *argv[])
return 0;
}

- ar5008_hw_print_initvals(true);
- ar9001_hw_print_initvals(true);
- ar9002_hw_print_initvals(true);
- ar9003_2p2_hw_print_initvals(true);
- ar9330_1p1_hw_print_initvals(true);
- ar9330_1p2_hw_print_initvals(true);
- ar9340_hw_print_initvals(true);
- ar9485_hw_print_initvals(true);
- ar9565_1p0_hw_print_initvals(true);
- ar9580_1p0_hw_print_initvals(true);
- ar9462_2p0_hw_print_initvals(true);
+ print_initvals_family_all(true);

return 0;
}
--
1.7.10


2012-12-06 18:17:32

by Gabor Juhos

[permalink] [raw]
Subject: [PATCH v2 02/13] qca-swiss-army-knife: fix ar9330_1p2_initvals.h

The 'ar9331_common_rx_gain_1p2' array was a dupe
of 'ar9485_common_rx_gain_1_1'. Since commit
8a72181377fb544e675114d9b500f6bcb877f9d1 (Update
AR9485 initvals) this is no longer the case.

Because the SHA1 values of the two arrays are
different now, verify_checksum.sh complains:

$./verify_checksums.sh
ar5008 7340125997ffffe26a3bfc854c5b9dce74b86152 pass
ar9001 8a4557f6a4e5ad2b01a40ca0519940ab775572aa pass
ar9002 67813ac6decf14f5221dd3c41126f23f4d333fc4 pass
ar9003-2p2 fdcc27a4327c6bb5e82bc7ded7387e06a2c82bb0 pass
ar9330-1p1 e01b965b87c98d865b43e5febf37cb067644e56b pass
ar9330-1p2 ab7e2aa014d2a9bd5cefad261999868888fc570e fail
+1d9e632b3fdcb2db52f95dd75ff2eac31fcac0d6 ar9331_common_rx_gain_1p2
ar9485 bbe34977a5de7a913333149ff322e767b53ec9e3 pass
ar9580-1p0 cbdf2a5efad22be6694b586f8bd9c6605697cb9f pass
$

Use the INI_PRINT macro for the 'ar9331_common_rx_gain_1p2'
array and refresh the 'ar9330_1p2_initvals.h' header.

Signed-off-by: Gabor Juhos <[email protected]>
---
tools/initvals/ar9330_1p2_initvals.h | 132 +++++++++++++++++++++++++++++++++-
tools/initvals/initvals.c | 3 +-
2 files changed, 132 insertions(+), 3 deletions(-)

diff --git a/tools/initvals/ar9330_1p2_initvals.h b/tools/initvals/ar9330_1p2_initvals.h
index 57ed8a1..1c31f61 100644
--- a/tools/initvals/ar9330_1p2_initvals.h
+++ b/tools/initvals/ar9330_1p2_initvals.h
@@ -237,6 +237,136 @@ static const u32 ar9331_1p2_radio_core[][2] = {

#define ar9331_common_wo_xlna_rx_gain_1p2 ar9331_common_wo_xlna_rx_gain_1p1

-#define ar9331_common_rx_gain_1p2 ar9485_common_rx_gain_1_1
+static const u32 ar9331_common_rx_gain_1p2[][2] = {
+ /* Addr allmodes */
+ {0x0000a000, 0x00010000},
+ {0x0000a004, 0x00030002},
+ {0x0000a008, 0x00050004},
+ {0x0000a00c, 0x00810080},
+ {0x0000a010, 0x01800082},
+ {0x0000a014, 0x01820181},
+ {0x0000a018, 0x01840183},
+ {0x0000a01c, 0x01880185},
+ {0x0000a020, 0x018a0189},
+ {0x0000a024, 0x02850284},
+ {0x0000a028, 0x02890288},
+ {0x0000a02c, 0x03850384},
+ {0x0000a030, 0x03890388},
+ {0x0000a034, 0x038b038a},
+ {0x0000a038, 0x038d038c},
+ {0x0000a03c, 0x03910390},
+ {0x0000a040, 0x03930392},
+ {0x0000a044, 0x03950394},
+ {0x0000a048, 0x00000396},
+ {0x0000a04c, 0x00000000},
+ {0x0000a050, 0x00000000},
+ {0x0000a054, 0x00000000},
+ {0x0000a058, 0x00000000},
+ {0x0000a05c, 0x00000000},
+ {0x0000a060, 0x00000000},
+ {0x0000a064, 0x00000000},
+ {0x0000a068, 0x00000000},
+ {0x0000a06c, 0x00000000},
+ {0x0000a070, 0x00000000},
+ {0x0000a074, 0x00000000},
+ {0x0000a078, 0x00000000},
+ {0x0000a07c, 0x00000000},
+ {0x0000a080, 0x28282828},
+ {0x0000a084, 0x28282828},
+ {0x0000a088, 0x28282828},
+ {0x0000a08c, 0x28282828},
+ {0x0000a090, 0x28282828},
+ {0x0000a094, 0x21212128},
+ {0x0000a098, 0x171c1c1c},
+ {0x0000a09c, 0x02020212},
+ {0x0000a0a0, 0x00000202},
+ {0x0000a0a4, 0x00000000},
+ {0x0000a0a8, 0x00000000},
+ {0x0000a0ac, 0x00000000},
+ {0x0000a0b0, 0x00000000},
+ {0x0000a0b4, 0x00000000},
+ {0x0000a0b8, 0x00000000},
+ {0x0000a0bc, 0x00000000},
+ {0x0000a0c0, 0x001f0000},
+ {0x0000a0c4, 0x111f1100},
+ {0x0000a0c8, 0x111d111e},
+ {0x0000a0cc, 0x111b111c},
+ {0x0000a0d0, 0x22032204},
+ {0x0000a0d4, 0x22012202},
+ {0x0000a0d8, 0x221f2200},
+ {0x0000a0dc, 0x221d221e},
+ {0x0000a0e0, 0x33013302},
+ {0x0000a0e4, 0x331f3300},
+ {0x0000a0e8, 0x4402331e},
+ {0x0000a0ec, 0x44004401},
+ {0x0000a0f0, 0x441e441f},
+ {0x0000a0f4, 0x55015502},
+ {0x0000a0f8, 0x551f5500},
+ {0x0000a0fc, 0x6602551e},
+ {0x0000a100, 0x66006601},
+ {0x0000a104, 0x661e661f},
+ {0x0000a108, 0x7703661d},
+ {0x0000a10c, 0x77017702},
+ {0x0000a110, 0x00007700},
+ {0x0000a114, 0x00000000},
+ {0x0000a118, 0x00000000},
+ {0x0000a11c, 0x00000000},
+ {0x0000a120, 0x00000000},
+ {0x0000a124, 0x00000000},
+ {0x0000a128, 0x00000000},
+ {0x0000a12c, 0x00000000},
+ {0x0000a130, 0x00000000},
+ {0x0000a134, 0x00000000},
+ {0x0000a138, 0x00000000},
+ {0x0000a13c, 0x00000000},
+ {0x0000a140, 0x001f0000},
+ {0x0000a144, 0x111f1100},
+ {0x0000a148, 0x111d111e},
+ {0x0000a14c, 0x111b111c},
+ {0x0000a150, 0x22032204},
+ {0x0000a154, 0x22012202},
+ {0x0000a158, 0x221f2200},
+ {0x0000a15c, 0x221d221e},
+ {0x0000a160, 0x33013302},
+ {0x0000a164, 0x331f3300},
+ {0x0000a168, 0x4402331e},
+ {0x0000a16c, 0x44004401},
+ {0x0000a170, 0x441e441f},
+ {0x0000a174, 0x55015502},
+ {0x0000a178, 0x551f5500},
+ {0x0000a17c, 0x6602551e},
+ {0x0000a180, 0x66006601},
+ {0x0000a184, 0x661e661f},
+ {0x0000a188, 0x7703661d},
+ {0x0000a18c, 0x77017702},
+ {0x0000a190, 0x00007700},
+ {0x0000a194, 0x00000000},
+ {0x0000a198, 0x00000000},
+ {0x0000a19c, 0x00000000},
+ {0x0000a1a0, 0x00000000},
+ {0x0000a1a4, 0x00000000},
+ {0x0000a1a8, 0x00000000},
+ {0x0000a1ac, 0x00000000},
+ {0x0000a1b0, 0x00000000},
+ {0x0000a1b4, 0x00000000},
+ {0x0000a1b8, 0x00000000},
+ {0x0000a1bc, 0x00000000},
+ {0x0000a1c0, 0x00000000},
+ {0x0000a1c4, 0x00000000},
+ {0x0000a1c8, 0x00000000},
+ {0x0000a1cc, 0x00000000},
+ {0x0000a1d0, 0x00000000},
+ {0x0000a1d4, 0x00000000},
+ {0x0000a1d8, 0x00000000},
+ {0x0000a1dc, 0x00000000},
+ {0x0000a1e0, 0x00000000},
+ {0x0000a1e4, 0x00000000},
+ {0x0000a1e8, 0x00000000},
+ {0x0000a1ec, 0x00000000},
+ {0x0000a1f0, 0x00000396},
+ {0x0000a1f4, 0x00000396},
+ {0x0000a1f8, 0x00000396},
+ {0x0000a1fc, 0x00000296},
+};

#endif /* INITVALS_9330_1P2_H */
diff --git a/tools/initvals/initvals.c b/tools/initvals/initvals.c
index 9f4e22b..5dd54f3 100644
--- a/tools/initvals/initvals.c
+++ b/tools/initvals/initvals.c
@@ -654,8 +654,7 @@ static void ar9330_1p2_hw_print_initvals(bool check)
INI_PRINT_DUP(ar9331_common_wo_xlna_rx_gain_1p2,
ar9331_common_wo_xlna_rx_gain_1p1);

- INI_PRINT_DUP(ar9331_common_rx_gain_1p2,
- ar9485_common_rx_gain_1_1);
+ INI_PRINT(ar9331_common_rx_gain_1p2);
}

static void ar9340_hw_print_initvals(bool check)
--
1.7.10


2012-12-06 18:17:31

by Gabor Juhos

[permalink] [raw]
Subject: [PATCH v2 01/13] qca-swiss-army-knife: refresh checksums.txt

The initvals of the AR9462 and AR9485 chips
has been updated recently, but checksums.txt
does not reflects that. Refresh it in order to
contain the actual sha1sum values.

Signed-off-by: Gabor Juhos <[email protected]>
---
tools/initvals/checksums.txt | 21 +++++++++++----------
1 file changed, 11 insertions(+), 10 deletions(-)

diff --git a/tools/initvals/checksums.txt b/tools/initvals/checksums.txt
index 9a9f909..9407ae4 100644
--- a/tools/initvals/checksums.txt
+++ b/tools/initvals/checksums.txt
@@ -139,23 +139,24 @@ ca6088034f339ea8f106f7f034d34baafec0c0ca ar9340Modes_high_ob_db_tx_gain_t
1b9f617ab8c10ec0760e81fe61d469692f2acc29 ar9340_1p0_soc_preamble
c8dc777b012068116cd5282aade8eb460f397d20 ar9485_1_1_mac_postamble
5d20e4848b97566ad55e0e95458463d622ee5480 ar9485_1_1_pcie_phy_pll_on_clkreq_disable_L1
-9c6add06664b36a13b93a3f6406ab35d24979045 ar9485Common_wo_xlna_rx_gain_1_1
-092ac2598c26b798386c3fd64920d765f8e17c55 ar9485Modes_high_power_tx_gain_1_1
-092ac2598c26b798386c3fd64920d765f8e17c55 ar9485Modes_high_ob_db_tx_gain_1_1
-092ac2598c26b798386c3fd64920d765f8e17c55 ar9485Modes_low_ob_db_tx_gain_1_1
-092ac2598c26b798386c3fd64920d765f8e17c55 ar9485_modes_lowest_ob_db_tx_gain_1_1
-8b9dc388f684bcfd25c4aea47d34c617798ae104 ar9485_1_1
+d9a90632a00a7b417154173b947dfffdeab23e51 ar9485Common_wo_xlna_rx_gain_1_1
+88b0666758b93ccaa26d500f4a80fec368c6a4e2 ar9485Modes_high_power_tx_gain_1_1
+0ac7092cc0a74e2cd03a3cc8821d46fbc3d1b3f4 ar9485Modes_high_ob_db_tx_gain_1_1
+88b0666758b93ccaa26d500f4a80fec368c6a4e2 ar9485Modes_low_ob_db_tx_gain_1_1
+88b0666758b93ccaa26d500f4a80fec368c6a4e2 ar9485_modes_lowest_ob_db_tx_gain_1_1
+5ca2c72bdaf75ac11c0f8ae8dae5bef32ffa3c3b ar9485_1_1
26e183ba89fcd047fa2c6e92549ed33772800bfb ar9485_1_1_radio_core
-0e35263848420cd394a19288ecdcc8bf6037d09e ar9485_1_1_baseband_core
-7d3b6958741de3fd02a55da56292f0e36c7bb0f9 ar9485_common_rx_gain_1_1
+2cb731330486f7c5bc501693eb729531124d21a4 ar9485_1_1_baseband_core
+1d9e632b3fdcb2db52f95dd75ff2eac31fcac0d6 ar9485_common_rx_gain_1_1
13bec2462d608918bcc8a5d2600c750730663745 ar9485_1_1_pcie_phy_pll_on_clkreq_enable_L1
b8bc19098aa0ac38cf74ca4747e28ce6bad14fa1 ar9485_1_1_pcie_phy_clkreq_enable_L1
7e1adfdb0f6a6dbbbe901d8eb019a425edfa58a6 ar9485_1_1_soc_preamble
f247bc63c9a632092b94d1af1526650753b77a60 ar9485_fast_clock_1_1_baseband_postamble
-94ad30af190524bf203b9455888503207ae6200b ar9485_1_1_baseband_postamble
+f1b452dfb558a755d9004241c29b43abd3332359 ar9485_1_1_baseband_postamble
c8016c349304ed85842783f04f01f40a0cf4468f ar9485_1_1_pcie_phy_clkreq_disable_L1
f5bb0f6a25e512b85039e8c49ebc6555ff27ac4d ar9485_1_1_radio_postamble
be2a6982ce450a3e03b1593199395599778297b0 ar9485_1_1_mac_core
+dfaefa89122b4b769bfcf93b4bd9569f2b0ee961 ar9485_1_1_baseband_core_txfir_coeff_japan_2484
87e0ecae5df96673e22bc448b17d813510964de8 ar9580_1p0_modes_fast_clock
6b0fb5b3698c99f42a885c8e982ae436363f1865 ar9580_1p0_radio_postamble
5b81bf27a30c826cfde3e8f6746473e949cb41ef ar9580_1p0_baseband_core
@@ -178,7 +179,7 @@ d0865f0cebcd7df2114a5626a3d0d19b8dae5710 ar9580_1p0_pcie_phy_clkreq_disab
45047f648d4c6138429f8bbc97680ac07f74ba62 ar9580_1p0_pcie_phy_pll_on_clkreq
d9efd1c575ac43d60c310d717c59617a5323c111 ar9462_modes_fast_clock_2p0
8bf1688079add33889085f3d35a5fab61c33487f ar9462_pciephy_clkreq_enable_L1_2p0
-96d7f2eafc15577fb6a5a907622198e258406b19 ar9462_2p0_baseband_postamble
+8dacf543535b605143b40aef74f7d46af064cb43 ar9462_2p0_baseband_postamble
d0f7aff1a1ab7e6f6bbda0da067714459341ce5f ar9462_common_rx_gain_table_2p0
bc232a96b4c1530bebe654420652a9f080a09db8 ar9462_pciephy_clkreq_disable_L1_2p0
f4c2241d40995e09f8736ed2ef5eaa5d6f051aa5 ar9462_pciephy_pll_on_clkreq_disable_L1_2p0
--
1.7.10


2012-12-06 18:17:35

by Gabor Juhos

[permalink] [raw]
Subject: [PATCH v2 10/13] qca-swiss-army-knife: allow to print initvals with more than 5 columns

This is required for the QCA955X initvals, because that
contain some arrays with 9 columns.

Signed-off-by: Gabor Juhos <[email protected]>
---
tools/initvals/initvals.c | 62 ++++++++++++++++++++++++++++++---------------
1 file changed, 41 insertions(+), 21 deletions(-)

diff --git a/tools/initvals/initvals.c b/tools/initvals/initvals.c
index 35466bc..b13d12e 100644
--- a/tools/initvals/initvals.c
+++ b/tools/initvals/initvals.c
@@ -338,7 +338,8 @@ struct initval_family {
char *sha1sum; \
sha1sum = ath9k_hw_check_initval((const u32 *) &_array,\
ARRAY_SIZE(_array), \
- ARRAY_SIZE((_array)[0])); \
+ ARRAY_SIZE((_array)[0]), \
+ false); \
printf("%s "#_array"\n", sha1sum); \
} else { \
if (sizeof(_ref) == sizeof(_array) && \
@@ -349,34 +350,40 @@ struct initval_family {
ath9k_hw_print_initval(#_array, (const u32 *) _array, \
ARRAY_SIZE(_array), \
ARRAY_SIZE((_array)[0]), \
+ false, \
false); \
} \
} while (0)

-#define INI_PRINT(_array) do { \
+#define _INI_PRINT(_label, _array, _wide) do { \
if (check) { \
char *sha1sum; \
sha1sum = ath9k_hw_check_initval((const u32 *) &_array,\
- ARRAY_SIZE(_array), \
- ARRAY_SIZE((_array)[0])); \
- printf("%s "#_array"\n", sha1sum); \
+ ARRAY_SIZE(_array), \
+ ARRAY_SIZE((_array)[0]), \
+ _wide); \
+ printf("%s " _label "\n", sha1sum); \
} else { \
- ath9k_hw_print_initval(#_array, (const u32 *) _array, \
+ ath9k_hw_print_initval((_label), (const u32 *) _array, \
ARRAY_SIZE(_array), \
ARRAY_SIZE((_array)[0]), \
- false); \
+ false, \
+ _wide); \
} \
} while (0)

+#define INI_PRINT(_array) _INI_PRINT(#_array, _array, false)
+#define INI_PRINTW(_array) _INI_PRINT(#_array, _array, true)
+
#define INI_PRINT_ONEDIM(_array) do { \
if (check) { \
char *sha1sum; \
sha1sum = ath9k_hw_check_initval((const u32 *) &_array,\
- ARRAY_SIZE(_array), 1); \
+ ARRAY_SIZE(_array), 1, false); \
printf("%s "#_array"\n", sha1sum); \
} else { \
ath9k_hw_print_initval(#_array, (const u32 *) _array, \
- ARRAY_SIZE(_array), 1, true); \
+ ARRAY_SIZE(_array), 1, true, false); \
} \
} while (0)

@@ -416,19 +423,26 @@ static u32 ath9k_patch_initval(u32 idx, u32 val)
return val;
}

-static void ath9k_hw_print_initval(const char *name, const u32 *array, u32 rows, u32 columns, bool onedim)
+static void ath9k_hw_print_initval(const char *name, const u32 *array, u32 rows,
+ u32 columns, bool onedim, bool wide)
{
- u32 p_columns = columns > 5 ? 5 : columns;
+ u32 p_columns;
u32 col, row;

- /*
- * This checksum stuff is designed for columns <= 8),
- * and spreads the checksum over 64 bits but since currently
- * the initval max column size is 6 we only use the first 48
- * bits.
- */
- if (columns > 6)
- return;
+ if (wide) {
+ p_columns = columns;
+ } else {
+ p_columns = columns > 5 ? 5 : columns;
+
+ /*
+ * This checksum stuff is designed for columns <= 8),
+ * and spreads the checksum over 64 bits but since currently
+ * the initval max column size is 6 we only use the first 48
+ * bits.
+ */
+ if (columns > 6)
+ return;
+ }

if (onedim)
printf("static const u32 %s[] = {\n", name);
@@ -472,14 +486,20 @@ static void ath9k_hw_print_initval(const char *name, const u32 *array, u32 rows,
printf("};\n\n");
}

-static char *ath9k_hw_check_initval(const u32 *array, u32 rows, u32 columns)
+static char *ath9k_hw_check_initval(const u32 *array, u32 rows, u32 columns,
+ bool wide)
{
SHA1_CTX ctx;
unsigned char digest[SHA1_DIGEST_SIZE];
static char buf[64];
- u32 p_columns = columns > 5 ? 5 : columns;
+ u32 p_columns;
u32 col, row;

+ if (wide)
+ p_columns = columns;
+ else
+ p_columns = columns > 5 ? 5 : columns;
+
SHA1_Init(&ctx);
for (row = 0; row < rows; row++) {
for (col = 0; col < p_columns; col++) {
--
1.7.10


2012-12-06 18:17:33

by Gabor Juhos

[permalink] [raw]
Subject: [PATCH v2 06/13] qca-swiss-army-knife: fix string length for ar9340

Signed-off-by: Gabor Juhos <[email protected]>
---
tools/initvals/initvals.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/initvals/initvals.c b/tools/initvals/initvals.c
index cb0bbbf..cff2c4e 100644
--- a/tools/initvals/initvals.c
+++ b/tools/initvals/initvals.c
@@ -838,7 +838,7 @@ static void print_initvals_family(char *family, bool check)
ar9330_1p2_hw_print_initvals(check);
if (!check)
printf("#endif /* INITVALS_9330_1P2_H */\n");
- } else if (strncmp(family, "ar9340", 10) == 0) {
+ } else if (strncmp(family, "ar9340", 6) == 0) {
if (!check) {
printf("#ifndef INITVALS_9340_H\n");
printf("#define INITVALS_9340_H\n");
--
1.7.10


2012-12-06 18:17:33

by Gabor Juhos

[permalink] [raw]
Subject: [PATCH v2 04/13] qca-swiss-army-knife: fix comment in ar9340_initvals.h

The comment at the end of the 'ar9340_initvals.h'
header does not match with defined constant. Fix it.

Signed-off-by: Gabor Juhos <[email protected]>
---
tools/initvals/ar9340_initvals.h | 2 +-
tools/initvals/initvals.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/tools/initvals/ar9340_initvals.h b/tools/initvals/ar9340_initvals.h
index dfc202e..1d8235e 100644
--- a/tools/initvals/ar9340_initvals.h
+++ b/tools/initvals/ar9340_initvals.h
@@ -1345,4 +1345,4 @@ static const u32 ar9340_1p0_soc_preamble[][2] = {
{0x00007038, 0x000004c2},
};

-#endif /* INITVALS_9340_1P0_H */
+#endif /* INITVALS_9340_H */
diff --git a/tools/initvals/initvals.c b/tools/initvals/initvals.c
index c93a3d1..cb0bbbf 100644
--- a/tools/initvals/initvals.c
+++ b/tools/initvals/initvals.c
@@ -846,7 +846,7 @@ static void print_initvals_family(char *family, bool check)
}
ar9340_hw_print_initvals(check);
if (!check)
- printf("#endif /* INITVALS_9340_1P0_H */\n");
+ printf("#endif /* INITVALS_9340_H */\n");
} else if (strncmp(family, "ar9485", 6) == 0) {
if (!check) {
printf("#ifndef INITVALS_9485_H\n");
--
1.7.10


2012-12-06 18:17:36

by Gabor Juhos

[permalink] [raw]
Subject: [PATCH v2 12/13] qca-swiss-army-knife: add checksums for AR955X initvals

Now that initvals supports the AR955X family,
refresh 'checksums.txt'.

Signed-off-by: Gabor Juhos <[email protected]>
---
tools/initvals/checksums.txt | 16 ++++++++++++++++
1 file changed, 16 insertions(+)

diff --git a/tools/initvals/checksums.txt b/tools/initvals/checksums.txt
index f02df5b..0128621 100644
--- a/tools/initvals/checksums.txt
+++ b/tools/initvals/checksums.txt
@@ -176,6 +176,22 @@ c8016c349304ed85842783f04f01f40a0cf4468f ar9485_1_1_pcie_phy_clkreq_disab
f5bb0f6a25e512b85039e8c49ebc6555ff27ac4d ar9485_1_1_radio_postamble
be2a6982ce450a3e03b1593199395599778297b0 ar9485_1_1_mac_core
dfaefa89122b4b769bfcf93b4bd9569f2b0ee961 ar9485_1_1_baseband_core_txfir_coeff_japan_2484
+8ac169541145c0815a3310fe70ecb18d0b5beb1e ar955x_1p0_radio_postamble
+dfaefa89122b4b769bfcf93b4bd9569f2b0ee961 ar955x_1p0_baseband_core_txfir_coeff_japan_2484
+79c5a0883ca14e2cd93b00c06956686d6afc35b8 ar955x_1p0_baseband_postamble
+944fce08afd997013da4a0f2fc49f04b215a19d7 ar955x_1p0_radio_core
+a9ee65d54600d6a4fc4e81292083b7673161a1f7 ar955x_1p0_modes_xpa_tx_gain_table
+c034452a6673a30a02a02510aefd48274bb9ab42 ar955x_1p0_mac_core
+2b67b93c41a4e7cd5761a7c698387f4282d3d092 ar955x_1p0_common_rx_gain_table
+6d91c355cd39873388ba87c71a92fbdfcf200491 ar955x_1p0_baseband_core
+481b3066bd6b4dfa425027157f7c6252b535ebe4 ar955x_1p0_common_wo_xlna_rx_gain_table
+cb21861cd9f3fa38eccd2552495820f64e1402d1 ar955x_1p0_soc_preamble
+894acf855e7b814678270fcf5c8736b5035755b9 ar955x_1p0_common_wo_xlna_rx_gain_bounds
+c8dc777b012068116cd5282aade8eb460f397d20 ar955x_1p0_mac_postamble
+91301f020ec21e066b43364b0f21bb810b0fe90c ar955x_1p0_common_rx_gain_bounds
+b836a622916e66da6a23c9cd34a7d933571ff6db ar955x_1p0_modes_no_xpa_tx_gain_table
+8ad6e285ff8db78d133b0b5203145ef2c7f97364 ar955x_1p0_soc_postamble
+87e0ecae5df96673e22bc448b17d813510964de8 ar955x_1p0_modes_fast_clock
839b2486a70775db100fca6421860d4922fbf945 ar9565_1p0_mac_core
c8dc777b012068116cd5282aade8eb460f397d20 ar9565_1p0_mac_postamble
be2a958615907b5f7766336b124d79cb3dbb3c1f ar9565_1p0_baseband_core
--
1.7.10


2012-12-06 18:17:32

by Gabor Juhos

[permalink] [raw]
Subject: [PATCH v2 03/13] qca-swiss-army-knife: print AR9565 initvals

The initvals tool contain support for the
AR9565 chip, however the sha1sum values and
the actual initval arrays are not printend
when 'initvals' is called without a family
parameter.

Add the missing 'ar9565_1p0_hw_print_initvals()'
calls to fix this. Also refresh checksums.txt.

Signed-off-by: Gabor Juhos <[email protected]>
---
tools/initvals/checksums.txt | 16 ++++++++++++++++
tools/initvals/initvals.c | 2 ++
2 files changed, 18 insertions(+)

diff --git a/tools/initvals/checksums.txt b/tools/initvals/checksums.txt
index 9407ae4..5f18eb1 100644
--- a/tools/initvals/checksums.txt
+++ b/tools/initvals/checksums.txt
@@ -157,6 +157,22 @@ c8016c349304ed85842783f04f01f40a0cf4468f ar9485_1_1_pcie_phy_clkreq_disab
f5bb0f6a25e512b85039e8c49ebc6555ff27ac4d ar9485_1_1_radio_postamble
be2a6982ce450a3e03b1593199395599778297b0 ar9485_1_1_mac_core
dfaefa89122b4b769bfcf93b4bd9569f2b0ee961 ar9485_1_1_baseband_core_txfir_coeff_japan_2484
+839b2486a70775db100fca6421860d4922fbf945 ar9565_1p0_mac_core
+c8dc777b012068116cd5282aade8eb460f397d20 ar9565_1p0_mac_postamble
+be2a958615907b5f7766336b124d79cb3dbb3c1f ar9565_1p0_baseband_core
+7ae44b5234dc536c5fe3bd484ecbf4bd4f8f8ee1 ar9565_1p0_baseband_postamble
+98708e6c8cde013777cd5c5c9ded6dfe038b652f ar9565_1p0_radio_core
+bc722e44e8c7039983b485fc099275c6629974cf ar9565_1p0_radio_postamble
+524fae156c2942a28c62603dac8f9ee99ff0e25a ar9565_1p0_soc_preamble
+b045882e6e5b3f54d9eed19022abe6a44bc04e73 ar9565_1p0_soc_postamble
+bc0a956de3b035894bf68722ca4c8a4365fe0f4b ar9565_1p0_Common_rx_gain_table
+4bf703cdebf0bfb9ad867cb53b79d6c3957b6f91 ar9565_1p0_Modes_lowest_ob_db_tx_gain_table
+2fbe90336971cd66f0264c0cc57605c2de069d5f ar9565_1p0_pciephy_clkreq_disable_L1
+6db24dff7f419466d4734d59063314b9e52d4640 ar9565_1p0_modes_fast_clock
+d297fe8586260e902a2b629323e4802fe207f2b7 ar9565_1p0_common_wo_xlna_rx_gain_table
+4bf703cdebf0bfb9ad867cb53b79d6c3957b6f91 ar9565_1p0_modes_low_ob_db_tx_gain_table
+7e7f55da5f2572348ddf79e41e9ab9647d94caff ar9565_1p0_modes_high_ob_db_tx_gain_table
+a67925a1d3f3263537a4a0d6096f3f8994190f14 ar9565_1p0_modes_high_power_tx_gain_table
87e0ecae5df96673e22bc448b17d813510964de8 ar9580_1p0_modes_fast_clock
6b0fb5b3698c99f42a885c8e982ae436363f1865 ar9580_1p0_radio_postamble
5b81bf27a30c826cfde3e8f6746473e949cb41ef ar9580_1p0_baseband_core
diff --git a/tools/initvals/initvals.c b/tools/initvals/initvals.c
index 5dd54f3..c93a3d1 100644
--- a/tools/initvals/initvals.c
+++ b/tools/initvals/initvals.c
@@ -910,6 +910,7 @@ int main(int argc, char *argv[])
ar9330_1p2_hw_print_initvals(false);
ar9340_hw_print_initvals(false);
ar9485_hw_print_initvals(false);
+ ar9565_1p0_hw_print_initvals(false);
ar9580_1p0_hw_print_initvals(false);
ar9462_2p0_hw_print_initvals(false);

@@ -942,6 +943,7 @@ int main(int argc, char *argv[])
ar9330_1p2_hw_print_initvals(true);
ar9340_hw_print_initvals(true);
ar9485_hw_print_initvals(true);
+ ar9565_1p0_hw_print_initvals(true);
ar9580_1p0_hw_print_initvals(true);
ar9462_2p0_hw_print_initvals(true);

--
1.7.10


2012-12-06 18:17:34

by Gabor Juhos

[permalink] [raw]
Subject: [PATCH v2 08/13] qca-swiss-army-knife: reformat INI_PRINT_* macros

Keep the length of the macro lines under 80 character.

Signed-off-by: Gabor Juhos <[email protected]>
---
tools/initvals/initvals.c | 17 ++++++++++++-----
1 file changed, 12 insertions(+), 5 deletions(-)

diff --git a/tools/initvals/initvals.c b/tools/initvals/initvals.c
index 0ab4d7f..90ca377 100644
--- a/tools/initvals/initvals.c
+++ b/tools/initvals/initvals.c
@@ -329,15 +329,19 @@ typedef long long unsigned int u64;
if (check) { \
char *sha1sum; \
sha1sum = ath9k_hw_check_initval((const u32 *) &_array,\
- ARRAY_SIZE(_array), ARRAY_SIZE((_array)[0])); \
+ ARRAY_SIZE(_array), \
+ ARRAY_SIZE((_array)[0])); \
printf("%s "#_array"\n", sha1sum); \
} else { \
- if (sizeof(_ref) == sizeof(_array) && !memcmp(&_ref, &_array, sizeof(_ref))) { \
+ if (sizeof(_ref) == sizeof(_array) && \
+ !memcmp(&_ref, &_array, sizeof(_ref))) { \
printf("#define " #_array " " #_ref "\n\n"); \
break; \
} \
ath9k_hw_print_initval(#_array, (const u32 *) _array, \
- ARRAY_SIZE(_array), ARRAY_SIZE((_array)[0]), false); \
+ ARRAY_SIZE(_array), \
+ ARRAY_SIZE((_array)[0]), \
+ false); \
} \
} while (0)

@@ -345,11 +349,14 @@ typedef long long unsigned int u64;
if (check) { \
char *sha1sum; \
sha1sum = ath9k_hw_check_initval((const u32 *) &_array,\
- ARRAY_SIZE(_array), ARRAY_SIZE((_array)[0])); \
+ ARRAY_SIZE(_array), \
+ ARRAY_SIZE((_array)[0])); \
printf("%s "#_array"\n", sha1sum); \
} else { \
ath9k_hw_print_initval(#_array, (const u32 *) _array, \
- ARRAY_SIZE(_array), ARRAY_SIZE((_array)[0]), false); \
+ ARRAY_SIZE(_array), \
+ ARRAY_SIZE((_array)[0]), \
+ false); \
} \
} while (0)

--
1.7.10


2012-12-06 23:02:55

by Luis R. Rodriguez

[permalink] [raw]
Subject: Re: [PATCH v2 10/13] qca-swiss-army-knife: allow to print initvals with more than 5 columns

On Thu, Dec 6, 2012 at 10:17 AM, Gabor Juhos <[email protected]> wrote:
> @@ -416,19 +423,26 @@ static u32 ath9k_patch_initval(u32 idx, u32 val)
> return val;
> }
>
> -static void ath9k_hw_print_initval(const char *name, const u32 *array, u32 rows, u32 columns, bool onedim)
> +static void ath9k_hw_print_initval(const char *name, const u32 *array, u32 rows,
> + u32 columns, bool onedim, bool wide)
> {
> - u32 p_columns = columns > 5 ? 5 : columns;
> + u32 p_columns;
> u32 col, row;
>
> - /*
> - * This checksum stuff is designed for columns <= 8),
> - * and spreads the checksum over 64 bits but since currently
> - * the initval max column size is 6 we only use the first 48
> - * bits.
> - */
> - if (columns > 6)
> - return;
> + if (wide) {
> + p_columns = columns;
> + } else {
> + p_columns = columns > 5 ? 5 : columns;
> +
> + /*
> + * This checksum stuff is designed for columns <= 8),
> + * and spreads the checksum over 64 bits but since currently
> + * the initval max column size is 6 we only use the first 48
> + * bits.
> + */
> + if (columns > 6)
> + return;
> + }

The comment here was for the case that we were using the old nasty
checksum thingy I invented, prior to you adding SHA1 checksum support.
The column limitation therefore seems artificial here ?

Also, as per Adrian's advice on the eeprom dump tool, perhaps we can
remove clutter from the initvals tool by allowing us to copy to the
local directory the initval files from a linux-next tag.

git show next-20121204:drivers/net/wireless/ath/ath9k/ar9002_initvals.h
> path/ar9002_initvals.h

For example. But this would mean requiring us to get diffs by using a
kernel git tree, separate from where we are. Not sure if there are
gains with this strategy. Its unclear.

Luis

2012-12-06 22:40:32

by Luis Chamberlain

[permalink] [raw]
Subject: Re: [PATCH v2 00/13] qca-swiss-army-knife: initvals fixes and improvements

On Thu, Dec 6, 2012 at 10:17 AM, Gabor Juhos <[email protected]> wrote:
> This patch-set contain patches for the initvals tool.
> The first seven patches are fixing minor bugs, the next
> three imporves the code a bit and the last four patches
> are adding suport for AR9550.
>
> Changes since v1:
> - rebase against the current version
> - add four new patch to fix more issues
>
> Gabor Juhos (13):
> qca-swiss-army-knife: refresh checksums.txt
> qca-swiss-army-knife: fix ar9330_1p2_initvals.h
> qca-swiss-army-knife: print AR9565 initvals
> qca-swiss-army-knife: fix comment in ar9340_initvals.h
> qca-swiss-army-knife: add missing families to verify_checksums.sh
> qca-swiss-army-knife: fix string length for ar9340
> qca-swiss-army-knife: add ar9462-2p0 to the usage text
> qca-swiss-army-knife: reformat INI_PRINT_* macros
> qca-swiss-army-knife: simplify initval family handling
> qca-swiss-army-knife: allow to print initvals with more than 5 columns
> qca-swiss-army-knife: add initval support for AR955X
> qca-swiss-army-knife: add checksums for AR955X initvals
> qca-swiss-army-knife: allow to verify AR955X initvals

Thanks, applied and pushed! I have a comment on a patch but that can
be reviewed and address if required through follow up patches if so
desired.

Luis

2012-12-07 16:23:08

by Gabor Juhos

[permalink] [raw]
Subject: Re: [PATCH v2 10/13] qca-swiss-army-knife: allow to print initvals with more than 5 columns

2012.12.07. 0:02 keltezéssel, Luis R. Rodriguez írta:
> On Thu, Dec 6, 2012 at 10:17 AM, Gabor Juhos <[email protected]> wrote:
>> @@ -416,19 +423,26 @@ static u32 ath9k_patch_initval(u32 idx, u32 val)
>> return val;
>> }
>>
>> -static void ath9k_hw_print_initval(const char *name, const u32 *array, u32 rows, u32 columns, bool onedim)
>> +static void ath9k_hw_print_initval(const char *name, const u32 *array, u32 rows,
>> + u32 columns, bool onedim, bool wide)
>> {
>> - u32 p_columns = columns > 5 ? 5 : columns;
>> + u32 p_columns;
>> u32 col, row;
>>
>> - /*
>> - * This checksum stuff is designed for columns <= 8),
>> - * and spreads the checksum over 64 bits but since currently
>> - * the initval max column size is 6 we only use the first 48
>> - * bits.
>> - */
>> - if (columns > 6)
>> - return;
>> + if (wide) {
>> + p_columns = columns;
>> + } else {
>> + p_columns = columns > 5 ? 5 : columns;
>> +
>> + /*
>> + * This checksum stuff is designed for columns <= 8),
>> + * and spreads the checksum over 64 bits but since currently
>> + * the initval max column size is 6 we only use the first 48
>> + * bits.
>> + */
>> + if (columns > 6)
>> + return;
>> + }
>
> The comment here was for the case that we were using the old nasty
> checksum thingy I invented, prior to you adding SHA1 checksum support.
> The column limitation therefore seems artificial here ?

Well, the comment and the 'if (columns > 6)' block can be removed.
However, the
p_columns = columns > 5 ? 5 : columns;
line ensures that we don't print the values for 'Turbo' modes. Although it can
be removed (along with the 'wide' argument) but that needs more changes.

> Also, as per Adrian's advice on the eeprom dump tool, perhaps we can
> remove clutter from the initvals tool by allowing us to copy to the
> local directory the initval files from a linux-next tag.
>
> git show next-20121204:drivers/net/wireless/ath/ath9k/ar9002_initvals.h
>> path/ar9002_initvals.h
>
> For example. But this would mean requiring us to get diffs by using a
> kernel git tree, separate from where we are. Not sure if there are
> gains with this strategy. Its unclear.

Copying the initval headers from a git tree would add unnecessary complexity
IMHO. If we want to check the validity of the initval headers in a given kernel
tree, that can be achieved in a simpler way. The path which contains the ath9k
specific initval headers can be defined as an include dir while compiling the
initval tool.

-Gabor


2012-12-06 18:17:36

by Gabor Juhos

[permalink] [raw]
Subject: [PATCH v2 13/13] qca-swiss-army-knife: allow to verify AR955X initvals

Signed-off-by: Gabor Juhos <[email protected]>
---
tools/initvals/Makefile | 1 +
tools/initvals/verify_checksums.sh | 2 +-
2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/tools/initvals/Makefile b/tools/initvals/Makefile
index 010b68c..884eeeb 100644
--- a/tools/initvals/Makefile
+++ b/tools/initvals/Makefile
@@ -35,6 +35,7 @@ ATH9K_HEADERS = \
ar9330-1p2:ar9330_1p2_initvals.h \
ar9340:ar9340_initvals.h \
ar9485:ar9485_initvals.h \
+ ar955x-1p0:ar955x_1p0_initvals.h \
ar9580-1p0:ar9580_1p0_initvals.h \
ar9462-2p0:ar9462_2p0_initvals.h \
ar9565-1p0:ar9565_1p0_initvals.h
diff --git a/tools/initvals/verify_checksums.sh b/tools/initvals/verify_checksums.sh
index 46fff90..fcc6db6 100755
--- a/tools/initvals/verify_checksums.sh
+++ b/tools/initvals/verify_checksums.sh
@@ -31,7 +31,7 @@ verify_family_checksum()
}

FAMILIES="$@"
-[ -z "$FAMILIES" ] && FAMILIES="ar5008 ar9001 ar9002 ar9003-2p2 ar9330-1p1 ar9330-1p2 ar9340 ar9462-1p0 ar9485 ar9565-1p0 ar9580-1p0"
+[ -z "$FAMILIES" ] && FAMILIES="ar5008 ar9001 ar9002 ar9003-2p2 ar9330-1p1 ar9330-1p2 ar9340 ar9462-1p0 ar9485 ar955x-1p0 ar9565-1p0 ar9580-1p0"

mkdir -p "$CSUM_DIR"
for family in $FAMILIES; do
--
1.7.10


2012-12-06 18:17:33

by Gabor Juhos

[permalink] [raw]
Subject: [PATCH v2 05/13] qca-swiss-army-knife: add missing families to verify_checksums.sh

Add the missing ar9340, ar9462-1p0, ar9565-1p0
families to the 'verify_checksums.sh' script.

Signed-off-by: Gabor Juhos <[email protected]>
---
tools/initvals/verify_checksums.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/initvals/verify_checksums.sh b/tools/initvals/verify_checksums.sh
index 6878ca5..46fff90 100755
--- a/tools/initvals/verify_checksums.sh
+++ b/tools/initvals/verify_checksums.sh
@@ -31,7 +31,7 @@ verify_family_checksum()
}

FAMILIES="$@"
-[ -z "$FAMILIES" ] && FAMILIES="ar5008 ar9001 ar9002 ar9003-2p2 ar9330-1p1 ar9330-1p2 ar9485 ar9580-1p0"
+[ -z "$FAMILIES" ] && FAMILIES="ar5008 ar9001 ar9002 ar9003-2p2 ar9330-1p1 ar9330-1p2 ar9340 ar9462-1p0 ar9485 ar9565-1p0 ar9580-1p0"

mkdir -p "$CSUM_DIR"
for family in $FAMILIES; do
--
1.7.10