changeset 394:07000c2d21cd

se_k200i: add compiled-in RF parameter table extracts
author Mychaela Falconia <falcon@freecalypso.org>
date Sun, 06 Nov 2022 02:35:54 +0000
parents 6c31d8c54ae4
children 00f5287db832
files se_k200i/calextr.sh se_k200i/rf_1800.c se_k200i/rf_1900.c se_k200i/rf_850.c se_k200i/rf_900.c
diffstat 5 files changed, 932 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/se_k200i/calextr.sh	Sun Nov 06 02:35:54 2022 +0000
@@ -0,0 +1,4 @@
+calextract flash1.bin 0x31848 > rf_900.c
+calextract flash1.bin 0x31BD0 > rf_1800.c
+calextract flash1.bin 0x31F58 > rf_850.c
+calextract flash1.bin 0x322E0 > rf_1900.c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/se_k200i/rf_1800.c	Sun Nov 06 02:35:54 2022 +0000
@@ -0,0 +1,232 @@
+/*
+ * This compiled-in RF parameter default table has been extracted
+ * out of Vadim's flash1.bin firmware image.  This SE K200i version
+ * equals Openmoko's l1_cust.obj version (which is in turn believed
+ * to be unchanged TI's internal mainline) in all parameters except
+ * Tx ramp templates.
+ *
+ * Tx ramp templates depend on the PA type and they are generally not
+ * calibrated per unit, hence most fw designs will incorporate correct
+ * ramp templates for their PA into their compiled-in RF tables.
+ * The same principle appears to hold here as well.
+ */
+
+const T_RF_BAND rf_1800 = {
+  { /* Rx structure */
+    { /* T_RX_CAL_PARAMS */
+       188,
+        40,
+        40,
+        44,
+    },
+    { /* T_RF_AGC_BANDs */
+      {  548,     0},
+      {  622,     0},
+      {  680,     0},
+      {  745,     0},
+      {  812,     0},
+      {  860,     0},
+      {  885,     0},
+      {  991,     0},
+      {  992,     0},
+      { 1023,     0},
+    },
+    { /* Rx temperature compensation */
+      {   -15,     0},
+      {    -5,     0},
+      {     6,     0},
+      {    16,     0},
+      {    25,     0},
+      {    35,     0},
+      {    45,     0},
+      {    56,     0},
+      {    66,     0},
+      {    75,     0},
+      {   100,     0},
+    },
+  },
+  { /* Tx structure */
+    { /* levels */
+      {  436,  0,  0}, /* 0 */
+      {  363,  1,  0}, /* 1 */
+      {  310,  2,  0}, /* 2 */
+      {  253,  3,  0}, /* 3 */
+      {  205,  4,  0}, /* 4 */
+      {  168,  5,  0}, /* 5 */
+      {  138,  6,  0}, /* 6 */
+      {  113,  7,  0}, /* 7 */
+      {   93,  8,  0}, /* 8 */
+      {   76,  9,  0}, /* 9 */
+      {   61, 10,  0}, /* 10 */
+      {   50, 11,  0}, /* 11 */
+      {   40, 12,  0}, /* 12 */
+      {   32, 13,  0}, /* 13 */
+      {   26, 14,  0}, /* 14 */
+      {   20, 15,  0}, /* 15 */
+      {   20, 15,  0}, /* 16 */
+      {   20, 15,  0}, /* 17 */
+      {   20, 15,  0}, /* 18 */
+      {   20, 15,  0}, /* 19 */
+      {   20, 15,  0}, /* 20 */
+      {   20, 15,  0}, /* 21 */
+      {   20, 15,  0}, /* 22 */
+      {   20, 15,  0}, /* 23 */
+      {   20, 15,  0}, /* 24 */
+      {   20, 15,  0}, /* 25 */
+      {   20, 15,  0}, /* 26 */
+      {   20, 15,  0}, /* 27 */
+      {   20, 15,  0}, /* 28 */
+      {   20,  0,  0}, /* 29 */
+      {   20,  0,  0}, /* 30 */
+      {   20,  0,  0}, /* 31 */
+    },
+    { /* channel calibration tables */
+      { /* calibration table 0 */
+	{  554,   128},
+	{  722,   128},
+	{  746,   128},
+	{  774,   128},
+	{  808,   128},
+	{  851,   128},
+	{  870,   128},
+	{  885,   128},
+      },
+      { /* calibration table 1 */
+	{  554,   128},
+	{  722,   128},
+	{  746,   128},
+	{  774,   128},
+	{  808,   128},
+	{  851,   128},
+	{  870,   128},
+	{  885,   128},
+      },
+      { /* calibration table 2 */
+	{  554,   128},
+	{  722,   128},
+	{  746,   128},
+	{  774,   128},
+	{  808,   128},
+	{  851,   128},
+	{  870,   128},
+	{  885,   128},
+      },
+      { /* calibration table 3 */
+	{  554,   128},
+	{  722,   128},
+	{  746,   128},
+	{  774,   128},
+	{  808,   128},
+	{  851,   128},
+	{  870,   128},
+	{  885,   128},
+      },
+    },
+    { /* ramps */
+      { /* profile 0 */
+	/* ramp-up */
+	{  0,  0,  0,  0,  0,  0,  0,  0,  0, 29, 29, 29, 29,  6,  6,  0},
+	/* ramp-down */
+	{ 11, 31, 31, 21, 24, 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 1 */
+	/* ramp-up */
+	{  0,  0,  0,  0,  0,  0,  0,  0,  3, 24, 31, 31, 31,  8,  0,  0},
+	/* ramp-down */
+	{  0,  8, 31, 31, 31, 27,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 2 */
+	/* ramp-up */
+	{  0,  0,  0,  0,  0,  0,  0,  0,  3, 24, 31, 31, 31,  8,  0,  0},
+	/* ramp-down */
+	{  0,  8, 31, 31, 31, 27,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 3 */
+	/* ramp-up */
+	{  0,  0,  0,  0,  0,  0,  0, 22,  6,  4, 24, 26, 24, 18,  4,  0},
+	/* ramp-down */
+	{  0,  1, 13, 31, 31, 31, 21,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 4 */
+	/* ramp-up */
+	{  0,  0,  0,  0,  0,  0,  0,  0,  3, 24, 31, 31, 31,  8,  0,  0},
+	/* ramp-down */
+	{  0,  8, 31, 31, 31, 27,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 5 */
+	/* ramp-up */
+	{  0,  0,  0,  0,  0,  0,  0,  0,  3, 24, 31, 31, 31,  8,  0,  0},
+	/* ramp-down */
+	{  0,  8, 31, 31, 31, 27,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 6 */
+	/* ramp-up */
+	{  0,  0,  0,  0,  0,  0,  0,  0,  3, 24, 31, 31, 31,  8,  0,  0},
+	/* ramp-down */
+	{  0,  8, 31, 31, 31, 27,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 7 */
+	/* ramp-up */
+	{  0,  0,  0,  0,  0,  0,  0,  0,  3, 24, 31, 31, 31,  8,  0,  0},
+	/* ramp-down */
+	{  0,  8, 31, 31, 31, 27,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 8 */
+	/* ramp-up */
+	{  0,  0,  0,  0,  0,  0,  0,  0,  3, 24, 31, 31, 31,  8,  0,  0},
+	/* ramp-down */
+	{  0,  8, 31, 31, 31, 27,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 9 */
+	/* ramp-up */
+	{  0,  0,  0,  0,  0,  0,  0,  0,  3, 24, 31, 31, 31,  8,  0,  0},
+	/* ramp-down */
+	{  0,  8, 31, 31, 31, 27,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 10 */
+	/* ramp-up */
+	{  0,  0,  0,  0,  0,  0,  0,  0,  3, 24, 31, 31, 31,  8,  0,  0},
+	/* ramp-down */
+	{  0,  8, 31, 31, 31, 27,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 11 */
+	/* ramp-up */
+	{  0,  0,  0,  0,  0,  0,  0,  0,  0, 31, 31, 31, 31,  4,  0,  0},
+	/* ramp-down */
+	{  0,  4, 31, 31, 31, 31,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 12 */
+	/* ramp-up */
+	{  0,  0,  0,  0,  0,  0,  0,  0,  0, 31, 31, 31, 31,  4,  0,  0},
+	/* ramp-down */
+	{  0,  0, 31, 31, 31, 31,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 13 */
+	/* ramp-up */
+	{  0,  0,  0,  0,  0,  0,  0,  0,  0, 31, 31, 31, 31,  4,  0,  0},
+	/* ramp-down */
+	{  0,  0, 31, 31, 31, 31,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 14 */
+	/* ramp-up */
+	{  0,  0,  0,  0,  0,  0,  0,  0,  0, 31, 31, 31, 31,  4,  0,  0},
+	/* ramp-down */
+	{  0,  0, 31, 31, 31, 31,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 15 */
+	/* ramp-up */
+	{  0,  0,  0,  0,  0,  0,  0,  0,  0, 31, 31, 31, 31,  4,  0,  0},
+	/* ramp-down */
+	{  0,  0, 31, 31, 31, 31,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+    },
+    { /* Tx temperature compensation */
+      {   -11,     0,     0,     0},
+      {     9,     0,     0,     0},
+      {    39,     0,     0,     0},
+      {    59,     0,     0,     0},
+      {   127,     0,     0,     0},
+    },
+  },
+  0
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/se_k200i/rf_1900.c	Sun Nov 06 02:35:54 2022 +0000
@@ -0,0 +1,232 @@
+/*
+ * This compiled-in RF parameter default table has been extracted
+ * out of Vadim's flash1.bin firmware image.  This SE K200i version
+ * equals Openmoko's l1_cust.obj version (which is in turn believed
+ * to be unchanged TI's internal mainline) in all parameters except
+ * Tx ramp templates.
+ *
+ * Tx ramp templates depend on the PA type and they are generally not
+ * calibrated per unit, hence most fw designs will incorporate correct
+ * ramp templates for their PA into their compiled-in RF tables.
+ * The same principle appears to hold here as well.
+ */
+
+const T_RF_BAND rf_1900 = {
+  { /* Rx structure */
+    { /* T_RX_CAL_PARAMS */
+       188,
+        40,
+        40,
+        44,
+    },
+    { /* T_RF_AGC_BANDs */
+      {  548,     0},
+      {  622,     0},
+      {  680,     0},
+      {  745,     0},
+      {  812,     0},
+      {  860,     0},
+      {  885,     0},
+      {  991,     0},
+      {  992,     0},
+      { 1023,     0},
+    },
+    { /* Rx temperature compensation */
+      {   -15,     0},
+      {    -5,     0},
+      {     6,     0},
+      {    16,     0},
+      {    25,     0},
+      {    35,     0},
+      {    45,     0},
+      {    56,     0},
+      {    66,     0},
+      {    75,     0},
+      {   100,     0},
+    },
+  },
+  { /* Tx structure */
+    { /* levels */
+      {  429,  0,  0}, /* 0 */
+      {  353,  1,  0}, /* 1 */
+      {  302,  2,  0}, /* 2 */
+      {  246,  3,  0}, /* 3 */
+      {  200,  4,  0}, /* 4 */
+      {  164,  5,  0}, /* 5 */
+      {  135,  6,  0}, /* 6 */
+      {  111,  7,  0}, /* 7 */
+      {   91,  8,  0}, /* 8 */
+      {   75,  9,  0}, /* 9 */
+      {   60, 10,  0}, /* 10 */
+      {   49, 11,  0}, /* 11 */
+      {   40, 12,  0}, /* 12 */
+      {   33, 13,  0}, /* 13 */
+      {   26, 14,  0}, /* 14 */
+      {   26, 15,  0}, /* 15 */
+      {   26, 15,  0}, /* 16 */
+      {   26, 15,  0}, /* 17 */
+      {   26, 15,  0}, /* 18 */
+      {   26, 15,  0}, /* 19 */
+      {   26, 15,  0}, /* 20 */
+      {   26, 15,  0}, /* 21 */
+      {   26, 15,  0}, /* 22 */
+      {   26, 15,  0}, /* 23 */
+      {   26, 15,  0}, /* 24 */
+      {   26, 15,  0}, /* 25 */
+      {   26, 15,  0}, /* 26 */
+      {   26, 15,  0}, /* 27 */
+      {   26, 15,  0}, /* 28 */
+      {   26,  0,  0}, /* 29 */
+      {   26,  0,  0}, /* 30 */
+      {   26,  0,  0}, /* 31 */
+    },
+    { /* channel calibration tables */
+      { /* calibration table 0 */
+	{  554,   128},
+	{  722,   128},
+	{  746,   128},
+	{  774,   128},
+	{  808,   128},
+	{  810,   128},
+	{  810,   128},
+	{  810,   128},
+      },
+      { /* calibration table 1 */
+	{  554,   128},
+	{  722,   128},
+	{  746,   128},
+	{  774,   128},
+	{  808,   128},
+	{  810,   128},
+	{  810,   128},
+	{  810,   128},
+      },
+      { /* calibration table 2 */
+	{  554,   128},
+	{  722,   128},
+	{  746,   128},
+	{  774,   128},
+	{  808,   128},
+	{  810,   128},
+	{  810,   128},
+	{  810,   128},
+      },
+      { /* calibration table 3 */
+	{  554,   128},
+	{  722,   128},
+	{  746,   128},
+	{  774,   128},
+	{  808,   128},
+	{  810,   128},
+	{  810,   128},
+	{  810,   128},
+      },
+    },
+    { /* ramps */
+      { /* profile 0 */
+	/* ramp-up */
+	{  0,  0,  0,  0,  0,  0,  0,  0,  7, 16, 31, 31, 31, 12,  0,  0},
+	/* ramp-down */
+	{ 13, 31, 31, 31, 12, 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 1 */
+	/* ramp-up */
+	{  0,  0,  0,  0,  0,  0,  2,  3,  4, 17, 30, 31, 31, 10,  0,  0},
+	/* ramp-down */
+	{  0, 10, 31, 31, 31, 13,  9,  3,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 2 */
+	/* ramp-up */
+	{  0,  0,  0,  0,  0,  0,  0,  0,  9, 21, 31, 31, 26, 10,  0,  0},
+	/* ramp-down */
+	{  0, 11, 21, 31, 31, 14, 10, 10,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 3 */
+	/* ramp-up */
+	{  0,  0,  0,  0,  0,  0,  0,  0,  9, 21, 31, 31, 26, 10,  0,  0},
+	/* ramp-down */
+	{  0, 11, 21, 31, 31, 14, 10, 10,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 4 */
+	/* ramp-up */
+	{  0,  0,  0,  0,  0,  0,  0,  0,  9, 21, 31, 31, 26, 10,  0,  0},
+	/* ramp-down */
+	{  0, 11, 21, 31, 31, 14, 10, 10,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 5 */
+	/* ramp-up */
+	{  0,  0,  0,  0,  0,  0,  0,  0,  9, 21, 31, 31, 26, 10,  0,  0},
+	/* ramp-down */
+	{  0, 11, 21, 31, 31, 14, 10, 10,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 6 */
+	/* ramp-up */
+	{  0,  0,  0,  0,  0,  0,  0,  0,  9, 21, 31, 31, 26, 10,  0,  0},
+	/* ramp-down */
+	{  0, 11, 21, 31, 31, 14, 10, 10,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 7 */
+	/* ramp-up */
+	{  0,  0,  0,  0,  0,  0,  0,  0,  9, 21, 31, 31, 26, 10,  0,  0},
+	/* ramp-down */
+	{  0, 11, 21, 31, 31, 14, 10, 10,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 8 */
+	/* ramp-up */
+	{  0,  0,  0,  0,  0,  0,  0,  0,  9, 21, 31, 31, 26, 10,  0,  0},
+	/* ramp-down */
+	{  0, 11, 21, 31, 31, 14, 10, 10,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 9 */
+	/* ramp-up */
+	{  0,  0,  0,  0,  0,  0,  0,  0,  9, 21, 31, 31, 26, 10,  0,  0},
+	/* ramp-down */
+	{ 11, 21, 31, 31, 14, 10, 10,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 10 */
+	/* ramp-up */
+	{  0,  0,  0,  0,  0,  0,  0,  0,  9, 21, 31, 31, 26, 10,  0,  0},
+	/* ramp-down */
+	{ 21, 21, 31, 21, 14, 10, 10,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 11 */
+	/* ramp-up */
+	{  0,  0,  0,  0,  0,  0,  0,  0,  9, 21, 31, 31, 26, 10,  0,  0},
+	/* ramp-down */
+	{ 21, 21, 31, 21, 14, 10, 10,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 12 */
+	/* ramp-up */
+	{  0,  0,  0,  0,  0,  0,  0,  0,  9, 21, 31, 31, 26, 10,  0,  0},
+	/* ramp-down */
+	{ 21, 21, 31, 21, 14, 10, 10,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 13 */
+	/* ramp-up */
+	{  0,  0,  0,  0,  0,  0,  0,  0,  9, 21, 31, 31, 26, 10,  0,  0},
+	/* ramp-down */
+	{ 21, 21, 31, 21, 14, 10, 10,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 14 */
+	/* ramp-up */
+	{  0,  0,  0,  0,  0,  0,  0,  0,  9, 21, 31, 31, 26, 10,  0,  0},
+	/* ramp-down */
+	{ 21, 21, 31, 21, 14, 10, 10,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 15 */
+	/* ramp-up */
+	{  0,  0,  0,  0,  0,  0,  0,  0,  9, 21, 31, 31, 26, 10,  0,  0},
+	/* ramp-down */
+	{ 31, 21, 21, 21, 24, 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+    },
+    { /* Tx temperature compensation */
+      {   -11,     0,     0,     0},
+      {     9,     0,     0,     0},
+      {    39,     0,     0,     0},
+      {    59,     0,     0,     0},
+      {   127,     0,     0,     0},
+    },
+  },
+  0
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/se_k200i/rf_850.c	Sun Nov 06 02:35:54 2022 +0000
@@ -0,0 +1,232 @@
+/*
+ * This compiled-in RF parameter default table has been extracted
+ * out of Vadim's flash1.bin firmware image.  This SE K200i version
+ * equals Openmoko's l1_cust.obj version (which is in turn believed
+ * to be unchanged TI's internal mainline) in all parameters except
+ * Tx ramp templates.
+ *
+ * Tx ramp templates depend on the PA type and they are generally not
+ * calibrated per unit, hence most fw designs will incorporate correct
+ * ramp templates for their PA into their compiled-in RF tables.
+ * The same principle appears to hold here as well.
+ */
+
+const T_RF_BAND rf_850 = {
+  { /* Rx structure */
+    { /* T_RX_CAL_PARAMS */
+       181,
+        40,
+        40,
+        44,
+    },
+    { /* T_RF_AGC_BANDs */
+      {   10,     0},
+      {   30,     0},
+      {   51,     0},
+      {   71,     0},
+      {   90,     0},
+      {  112,     0},
+      {  124,     0},
+      {  991,     0},
+      {  992,     0},
+      { 1023,     0},
+    },
+    { /* Rx temperature compensation */
+      {   -15,     0},
+      {    -5,     0},
+      {     6,     0},
+      {    16,     0},
+      {    25,     0},
+      {    35,     0},
+      {    45,     0},
+      {    56,     0},
+      {    66,     0},
+      {    75,     0},
+      {   100,     0},
+    },
+  },
+  { /* Tx structure */
+    { /* levels */
+      {  507,  0,  0}, /* 0 */
+      {  507,  0,  0}, /* 1 */
+      {  507,  0,  0}, /* 2 */
+      {  507,  0,  0}, /* 3 */
+      {  507,  0,  0}, /* 4 */
+      {  507,  0,  0}, /* 5 */
+      {  417,  1,  0}, /* 6 */
+      {  350,  2,  0}, /* 7 */
+      {  282,  3,  0}, /* 8 */
+      {  226,  4,  0}, /* 9 */
+      {  183,  5,  0}, /* 10 */
+      {  148,  6,  0}, /* 11 */
+      {  121,  7,  0}, /* 12 */
+      {   98,  8,  0}, /* 13 */
+      {   80,  9,  0}, /* 14 */
+      {   66, 10,  0}, /* 15 */
+      {   54, 11,  0}, /* 16 */
+      {   44, 12,  0}, /* 17 */
+      {   36, 13,  0}, /* 18 */
+      {   29, 14,  0}, /* 19 */
+      {   29, 14,  0}, /* 20 */
+      {   29, 14,  0}, /* 21 */
+      {   29, 14,  0}, /* 22 */
+      {   29, 14,  0}, /* 23 */
+      {   29, 14,  0}, /* 24 */
+      {   29, 14,  0}, /* 25 */
+      {   29, 14,  0}, /* 26 */
+      {   29, 14,  0}, /* 27 */
+      {   29, 14,  0}, /* 28 */
+      {   29, 14,  0}, /* 29 */
+      {   29, 14,  0}, /* 30 */
+      {   29, 14,  0}, /* 31 */
+    },
+    { /* channel calibration tables */
+      { /* calibration table 0 */
+	{   40,   128},
+	{   80,   128},
+	{  124,   128},
+	{  586,   128},
+	{  661,   128},
+	{  736,   128},
+	{  885,   128},
+	{ 1023,   128},
+      },
+      { /* calibration table 1 */
+	{  554,   130},
+	{  722,   128},
+	{  746,   129},
+	{  774,   131},
+	{  808,   132},
+	{  851,   134},
+	{  870,   138},
+	{  885,   140},
+      },
+      { /* calibration table 2 */
+	{   40,   128},
+	{   80,   128},
+	{  124,   128},
+	{  586,   128},
+	{  661,   128},
+	{  736,   128},
+	{  885,   128},
+	{ 1023,   128},
+      },
+      { /* calibration table 3 */
+	{   40,   128},
+	{   80,   128},
+	{  124,   128},
+	{  586,   128},
+	{  661,   128},
+	{  736,   128},
+	{  885,   128},
+	{ 1023,   128},
+      },
+    },
+    { /* ramps */
+      { /* profile 0 */
+	/* ramp-up */
+	{  0,  0,  0,  0,  0,  0,  0,  0,  9, 18, 25, 31, 30, 15,  0,  0},
+	/* ramp-down */
+	{ 10, 26, 31, 26, 19, 11,  5,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 1 */
+	/* ramp-up */
+	{  0,  0,  0,  0,  0,  0,  0,  0,  9, 18, 25, 31, 30, 15,  0,  0},
+	/* ramp-down */
+	{ 10, 26, 31, 26, 19, 11,  5,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 2 */
+	/* ramp-up */
+	{  0,  0,  0,  0,  0,  0,  0,  0,  9, 18, 25, 31, 30, 15,  0,  0},
+	/* ramp-down */
+	{  0, 26, 31, 26, 29, 11,  5,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 3 */
+	/* ramp-up */
+	{  0,  0,  0,  0,  0,  0,  0,  0,  9, 18, 25, 31, 30, 15,  0,  0},
+	/* ramp-down */
+	{  0, 26, 31, 26, 29, 11,  5,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 4 */
+	/* ramp-up */
+	{  0,  0,  0,  0,  0,  0,  0,  0,  9, 18, 25, 31, 30, 15,  0,  0},
+	/* ramp-down */
+	{  0, 26, 31, 26, 29, 11,  5,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 5 */
+	/* ramp-up */
+	{  0,  0,  0,  0,  0,  0,  0,  0,  9, 18, 25, 31, 30, 15,  0,  0},
+	/* ramp-down */
+	{  0, 26, 31, 26, 29, 11,  5,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 6 */
+	/* ramp-up */
+	{  0,  0,  0,  0,  0,  0,  0,  0,  9, 18, 25, 31, 30, 15,  0,  0},
+	/* ramp-down */
+	{  0, 26, 31, 26, 29, 11,  5,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 7 */
+	/* ramp-up */
+	{  0,  0,  0,  0,  0,  0,  0,  0,  9, 18, 25, 31, 30, 15,  0,  0},
+	/* ramp-down */
+	{  0, 26, 31, 26, 29, 11,  5,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 8 */
+	/* ramp-up */
+	{  0,  0,  0,  0,  0,  0,  0,  0,  9, 18, 25, 31, 30, 15,  0,  0},
+	/* ramp-down */
+	{  0, 26, 31, 26, 29, 11,  5,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 9 */
+	/* ramp-up */
+	{  0,  0,  0,  0,  0,  0,  0,  0,  9, 18, 25, 31, 30, 15,  0,  0},
+	/* ramp-down */
+	{  0, 26, 31, 26, 29, 11,  5,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 10 */
+	/* ramp-up */
+	{  0,  0,  0,  0,  0,  0,  0,  0,  9, 18, 25, 31, 30, 15,  0,  0},
+	/* ramp-down */
+	{  0, 26, 31, 26, 29, 11,  5,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 11 */
+	/* ramp-up */
+	{  0,  0,  0,  0,  0,  0,  0,  0,  9, 18, 25, 31, 30, 15,  0,  0},
+	/* ramp-down */
+	{  0, 26, 31, 26, 29, 11,  5,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 12 */
+	/* ramp-up */
+	{  0,  0,  0,  0,  0,  0,  0,  0,  9, 18, 25, 31, 30, 15,  0,  0},
+	/* ramp-down */
+	{  0, 26, 31, 26, 29, 11,  5,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 13 */
+	/* ramp-up */
+	{  0,  0,  0,  0,  0,  0,  0,  0,  9, 18, 25, 31, 30, 15,  0,  0},
+	/* ramp-down */
+	{  0, 26, 31, 26, 29, 11,  5,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 14 */
+	/* ramp-up */
+	{  0,  0,  0,  0,  0,  0,  0,  0,  9, 18, 25, 31, 30, 15,  0,  0},
+	/* ramp-down */
+	{  0, 26, 31, 26, 29, 11,  5,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 15 */
+	/* ramp-up */
+	{  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+	/* ramp-down */
+	{  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+    },
+    { /* Tx temperature compensation */
+      {   -11,     0,     0,     0},
+      {     9,     0,     0,     0},
+      {    39,     0,     0,     0},
+      {    59,     0,     0,     0},
+      {   127,     0,     0,     0},
+    },
+  },
+  2
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/se_k200i/rf_900.c	Sun Nov 06 02:35:54 2022 +0000
@@ -0,0 +1,232 @@
+/*
+ * This compiled-in RF parameter default table has been extracted
+ * out of Vadim's flash1.bin firmware image.  This SE K200i version
+ * equals Openmoko's l1_cust.obj version (which is in turn believed
+ * to be unchanged TI's internal mainline) in all parameters except
+ * Tx ramp templates.
+ *
+ * Tx ramp templates depend on the PA type and they are generally not
+ * calibrated per unit, hence most fw designs will incorporate correct
+ * ramp templates for their PA into their compiled-in RF tables.
+ * The same principle appears to hold here as well.
+ */
+
+const T_RF_BAND rf_900 = {
+  { /* Rx structure */
+    { /* T_RX_CAL_PARAMS */
+       193,
+        40,
+        40,
+        44,
+    },
+    { /* T_RF_AGC_BANDs */
+      {   10,     0},
+      {   30,     0},
+      {   51,     0},
+      {   71,     0},
+      {   90,     0},
+      {  112,     0},
+      {  124,     0},
+      {  991,     0},
+      {  992,     0},
+      { 1023,     0},
+    },
+    { /* Rx temperature compensation */
+      {   -15,     0},
+      {    -5,     0},
+      {     6,     0},
+      {    16,     0},
+      {    25,     0},
+      {    35,     0},
+      {    45,     0},
+      {    56,     0},
+      {    66,     0},
+      {    75,     0},
+      {   100,     0},
+    },
+  },
+  { /* Tx structure */
+    { /* levels */
+      {  465,  0,  0}, /* 0 */
+      {  465,  0,  0}, /* 1 */
+      {  465,  0,  0}, /* 2 */
+      {  465,  0,  0}, /* 3 */
+      {  465,  0,  0}, /* 4 */
+      {  465,  0,  0}, /* 5 */
+      {  387,  1,  0}, /* 6 */
+      {  324,  2,  0}, /* 7 */
+      {  260,  3,  0}, /* 8 */
+      {  210,  4,  0}, /* 9 */
+      {  170,  5,  0}, /* 10 */
+      {  138,  6,  0}, /* 11 */
+      {  113,  7,  0}, /* 12 */
+      {   92,  8,  0}, /* 13 */
+      {   76,  9,  0}, /* 14 */
+      {   62, 10,  0}, /* 15 */
+      {   51, 11,  0}, /* 16 */
+      {   42, 12,  0}, /* 17 */
+      {   34, 13,  0}, /* 18 */
+      {   27, 14,  0}, /* 19 */
+      {   27, 14,  0}, /* 20 */
+      {   27, 14,  0}, /* 21 */
+      {   27, 14,  0}, /* 22 */
+      {   27, 14,  0}, /* 23 */
+      {   27, 14,  0}, /* 24 */
+      {   27, 14,  0}, /* 25 */
+      {   27, 14,  0}, /* 26 */
+      {   27, 14,  0}, /* 27 */
+      {   27, 14,  0}, /* 28 */
+      {   27, 14,  0}, /* 29 */
+      {   27, 14,  0}, /* 30 */
+      {   27, 14,  0}, /* 31 */
+    },
+    { /* channel calibration tables */
+      { /* calibration table 0 */
+	{   40,   128},
+	{   80,   128},
+	{  124,   128},
+	{  586,   128},
+	{  661,   128},
+	{  736,   128},
+	{  885,   128},
+	{ 1023,   128},
+      },
+      { /* calibration table 1 */
+	{   40,   128},
+	{   80,   128},
+	{  124,   128},
+	{  586,   128},
+	{  661,   128},
+	{  736,   128},
+	{  885,   128},
+	{ 1023,   128},
+      },
+      { /* calibration table 2 */
+	{   40,   128},
+	{   80,   128},
+	{  124,   128},
+	{  586,   128},
+	{  661,   128},
+	{  736,   128},
+	{  885,   128},
+	{ 1023,   128},
+      },
+      { /* calibration table 3 */
+	{   40,   128},
+	{   80,   128},
+	{  124,   128},
+	{  586,   128},
+	{  661,   128},
+	{  736,   128},
+	{  885,   128},
+	{ 1023,   128},
+      },
+    },
+    { /* ramps */
+      { /* profile 0 */
+	/* ramp-up */
+	{  0,  0,  0,  0,  0,  0,  0,  0, 10, 28, 30, 30, 30,  0,  0,  0},
+	/* ramp-down */
+	{  0, 15, 31, 31, 31, 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 1 */
+	/* ramp-up */
+	{  0,  0,  0,  0,  0,  0,  0,  0, 10, 28, 30, 30, 30,  0,  0,  0},
+	/* ramp-down */
+	{  0, 15, 31, 31, 31, 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 2 */
+	/* ramp-up */
+	{  0,  0,  0,  0,  0,  0,  0,  0, 10, 28, 30, 30, 30,  0,  0,  0},
+	/* ramp-down */
+	{  0, 15, 31, 31, 31, 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 3 */
+	/* ramp-up */
+	{  0,  0,  0,  0,  0,  0,  0,  0, 10, 28, 30, 30, 30,  0,  0,  0},
+	/* ramp-down */
+	{  0, 15, 31, 31, 31, 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 4 */
+	/* ramp-up */
+	{  0,  0,  0,  0,  0,  0,  0,  0, 10, 28, 30, 30, 30,  0,  0,  0},
+	/* ramp-down */
+	{  0, 15, 31, 31, 31, 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 5 */
+	/* ramp-up */
+	{  0,  0,  0,  0,  0,  0,  0,  0, 10, 28, 30, 30, 30,  0,  0,  0},
+	/* ramp-down */
+	{  0, 15, 31, 31, 31, 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 6 */
+	/* ramp-up */
+	{  0,  0,  0,  0,  0,  0,  0,  0, 10, 28, 30, 30, 30,  0,  0,  0},
+	/* ramp-down */
+	{  0, 15, 31, 31, 31, 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 7 */
+	/* ramp-up */
+	{  0,  0,  0,  0,  0,  0,  0,  0, 10, 28, 30, 30, 30,  0,  0,  0},
+	/* ramp-down */
+	{  0, 15, 31, 31, 31, 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 8 */
+	/* ramp-up */
+	{  0,  0,  0,  0,  0,  0,  0,  0, 10, 28, 30, 30, 30,  0,  0,  0},
+	/* ramp-down */
+	{  0, 15, 31, 31, 31, 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 9 */
+	/* ramp-up */
+	{  0,  0,  0,  0,  0,  0,  0,  0, 10, 28, 30, 30, 30,  0,  0,  0},
+	/* ramp-down */
+	{  0, 15, 31, 31, 31, 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 10 */
+	/* ramp-up */
+	{  0,  0,  0,  0,  0,  0,  0,  0, 10, 28, 30, 30, 30,  0,  0,  0},
+	/* ramp-down */
+	{  0, 15, 31, 31, 31, 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 11 */
+	/* ramp-up */
+	{  0,  0,  0,  0,  0,  0,  0,  0, 10, 28, 30, 30, 30,  0,  0,  0},
+	/* ramp-down */
+	{  0, 15, 31, 31, 31, 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 12 */
+	/* ramp-up */
+	{  0,  0,  0,  0,  0,  0,  0,  0, 10, 28, 30, 30, 30,  0,  0,  0},
+	/* ramp-down */
+	{  0, 15, 31, 31, 31, 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 13 */
+	/* ramp-up */
+	{  0,  0,  0,  0,  0,  0,  0,  0, 10, 28, 30, 30, 30,  0,  0,  0},
+	/* ramp-down */
+	{  0, 15, 31, 31, 31, 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 14 */
+	/* ramp-up */
+	{  0,  0,  0,  0,  0,  0,  0,  0, 10, 28, 30, 30, 30,  0,  0,  0},
+	/* ramp-down */
+	{  0, 15, 31, 31, 31, 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 15 */
+	/* ramp-up */
+	{  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+	/* ramp-down */
+	{  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+    },
+    { /* Tx temperature compensation */
+      {   -11,     0,     0,     0},
+      {     9,     0,     0,     0},
+      {    39,     0,     0,     0},
+      {    59,     0,     0,     0},
+      {   127,     0,     0,     0},
+    },
+  },
+  0
+};