http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/d98ddc1c/libs/util/src/test/cbmem_test.c
----------------------------------------------------------------------
diff --git a/libs/util/src/test/cbmem_test.c b/libs/util/src/test/cbmem_test.c
deleted file mode 100644
index b486334..0000000
--- a/libs/util/src/test/cbmem_test.c
+++ /dev/null
@@ -1,176 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *  http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-#include <stdio.h>
-#include <string.h>
-
-#include "testutil/testutil.h"
-#include "util/cbmem.h" 
-
-#define CBMEM1_BUF_SIZE (64 * 1024)
-
-struct cbmem cbmem1;
-uint8_t cbmem1_buf[CBMEM1_BUF_SIZE];
-uint8_t cbmem1_entry[1024];
-
-/*
- * Things to test.
- *
- * - Wrap of the circular buffer.  
- * - Reading through all entries.
- */
-
-static void
-setup_cbmem1(void)
-{
-    int i;
-    int rc;
-
-    rc = cbmem_init(&cbmem1, cbmem1_buf, CBMEM1_BUF_SIZE);
-    TEST_ASSERT_FATAL(rc == 0, "cbmem_init() failed, non-zero RC = %d", rc);
-
-    memset(cbmem1_entry, 0xff, sizeof(cbmem1_entry));
-
-    /* Insert 65 1024 entries, and overflow buffer.  
-     * This should overflow two entries, because the buffer is sized for 64 
-     * entries, and then the headers themselves will eat into one of the 
entries, 
-     * so there should be a total of 63 entries.
-     * Ensure no data corruption.
-     */
-    for (i = 0; i < 65; i++) {
-        cbmem1_entry[0] = i;
-        rc = cbmem_append(&cbmem1, cbmem1_entry, sizeof(cbmem1_entry));
-        TEST_ASSERT_FATAL(rc == 0, "Could not append entry %d, rc = %d", i, 
rc);
-    }
-}
-
-static int 
-cbmem_test_case_1_walk(struct cbmem *cbmem, struct cbmem_entry_hdr *hdr, 
-        void *arg)
-{
-    uint8_t expected;
-    uint8_t actual;
-    int rc;
-
-    expected = *(uint8_t *) arg;
-
-    rc = cbmem_read(cbmem, hdr, &actual, 0, sizeof(actual));
-    TEST_ASSERT_FATAL(rc == 1, "Couldn't read 1 byte from cbmem");
-    TEST_ASSERT_FATAL(actual == expected, 
-            "Actual doesn't equal expected (%d = %d)", actual, expected);
-
-    *(uint8_t *) arg = ++expected;
-
-    return (0);
-}
-
-TEST_CASE(cbmem_test_case_1) 
-{
-    int i;
-    int rc;
-
-    /* i starts at 2, for the 2 overwritten entries. */
-    i = 2;
-    rc = cbmem_walk(&cbmem1, cbmem_test_case_1_walk, &i);
-    TEST_ASSERT_FATAL(rc == 0, "Could not walk cbmem tree!  rc = %d", rc);
-    TEST_ASSERT_FATAL(i == 65, 
-            "Did not go through every element of walk, %d processed", i - 2);
-
-}
-
-TEST_CASE(cbmem_test_case_2)
-{
-    struct cbmem_entry_hdr *hdr;
-    struct cbmem_iter iter;
-    uint8_t i;
-    uint8_t val;
-    int rc;
-
-    i = 2;
-    cbmem_iter_start(&cbmem1, &iter);
-    while (1) {
-        hdr = cbmem_iter_next(&cbmem1, &iter);
-        if (hdr == NULL) {
-            break;
-        }
-
-        rc = cbmem_read(&cbmem1, hdr, &val, 0, sizeof(val));
-        TEST_ASSERT_FATAL(rc == 1, "Couldn't read 1 byte from cbmem");
-        TEST_ASSERT_FATAL(val == i, "Entry index does not match %d vs %d", 
-                val, i);
-
-        i++;
-    }
-
-    /* i starts at 2, for the 2 overwritten entries */
-    TEST_ASSERT_FATAL(i == 65, 
-            "Did not iterate through all 63 elements of CBMEM1, processed %d", 
-            i - 2);
-}
-
-TEST_CASE(cbmem_test_case_3)
-{
-    struct cbmem_entry_hdr *hdr;
-    struct cbmem_iter iter;
-    uint16_t off;
-    uint16_t len;
-    uint8_t buf[128];
-    int i;
-    int rc;
-
-    i = 0;
-    cbmem_iter_start(&cbmem1, &iter);
-    while (1) {
-        hdr = cbmem_iter_next(&cbmem1, &iter);
-        if (hdr == NULL) {
-            break;
-        }
-        
-        /* first ensure we can read the entire entry */
-        off = 0;
-        len = 0;
-        while (1) {
-            rc = cbmem_read(&cbmem1, hdr, buf, off, sizeof(buf));
-            TEST_ASSERT_FATAL(rc >= 0,
-                    "Error reading from buffer rc=%d, off=%d,len=%d", rc, off, 
-                    sizeof(buf));
-            if (rc == 0) {
-                break;
-            }
-            off += rc;
-            len += rc;
-        }
-        TEST_ASSERT_FATAL(len == 1024, 
-                "Couldn't read full entry, expected %d got %d", 1024, len);
-        i++;
-
-        /* go apesh*t, and read data out of bounds, see what we get. */
-        rc = cbmem_read(&cbmem1, hdr, buf, 2048, sizeof(buf));
-        TEST_ASSERT_FATAL(rc < 0, 
-                "Reading invalid should return error, instead %d returned.",
-                rc);
-    }
-}
-
-TEST_SUITE(cbmem_test_suite)
-{
-    setup_cbmem1();
-    cbmem_test_case_1();
-    cbmem_test_case_2();
-    cbmem_test_case_3();
-}

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/d98ddc1c/libs/util/src/test/util_test.c
----------------------------------------------------------------------
diff --git a/libs/util/src/test/util_test.c b/libs/util/src/test/util_test.c
deleted file mode 100644
index c236ab5..0000000
--- a/libs/util/src/test/util_test.c
+++ /dev/null
@@ -1,45 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *  http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#include <assert.h>
-#include <stddef.h>
-#include "testutil/testutil.h"
-#include "util_test_priv.h"
-
-int
-util_test_all(void)
-{
-    cbmem_test_suite();
-    return tu_case_failed;
-}
-
-#ifdef MYNEWT_SELFTEST
-
-int
-main(int argc, char **argv)
-{
-    tu_config.tc_print_results = 1;
-    tu_init();
-
-    util_test_all();
-
-    return tu_any_failed;
-}
-
-#endif

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/d98ddc1c/libs/util/src/test/util_test_priv.h
----------------------------------------------------------------------
diff --git a/libs/util/src/test/util_test_priv.h 
b/libs/util/src/test/util_test_priv.h
deleted file mode 100644
index cc5533d..0000000
--- a/libs/util/src/test/util_test_priv.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *  http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#ifndef __UTIL_TEST_PRIV_
-#define __UTIL_TEST_PRIV_
-
-int cbmem_test_suite(void);
-
-#endif

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/d98ddc1c/libs/util/test/pkg.yml
----------------------------------------------------------------------
diff --git a/libs/util/test/pkg.yml b/libs/util/test/pkg.yml
new file mode 100644
index 0000000..3a8cf98
--- /dev/null
+++ b/libs/util/test/pkg.yml
@@ -0,0 +1,30 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+# 
+#  http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+pkg.name: libs/util/test
+pkg.type: unittest
+pkg.description: "Util unit tests."
+pkg.author: "Apache Mynewt <d...@mynewt.incubator.apache.org>"
+pkg.homepage: "http://mynewt.apache.org/";
+pkg.keywords:
+
+pkg.deps: 
+    - libs/testutil
+    - libs/util
+
+pkg.deps.SELFTEST:
+    - libs/console/stub

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/d98ddc1c/libs/util/test/src/cbmem_test.c
----------------------------------------------------------------------
diff --git a/libs/util/test/src/cbmem_test.c b/libs/util/test/src/cbmem_test.c
new file mode 100644
index 0000000..b486334
--- /dev/null
+++ b/libs/util/test/src/cbmem_test.c
@@ -0,0 +1,176 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+#include <stdio.h>
+#include <string.h>
+
+#include "testutil/testutil.h"
+#include "util/cbmem.h" 
+
+#define CBMEM1_BUF_SIZE (64 * 1024)
+
+struct cbmem cbmem1;
+uint8_t cbmem1_buf[CBMEM1_BUF_SIZE];
+uint8_t cbmem1_entry[1024];
+
+/*
+ * Things to test.
+ *
+ * - Wrap of the circular buffer.  
+ * - Reading through all entries.
+ */
+
+static void
+setup_cbmem1(void)
+{
+    int i;
+    int rc;
+
+    rc = cbmem_init(&cbmem1, cbmem1_buf, CBMEM1_BUF_SIZE);
+    TEST_ASSERT_FATAL(rc == 0, "cbmem_init() failed, non-zero RC = %d", rc);
+
+    memset(cbmem1_entry, 0xff, sizeof(cbmem1_entry));
+
+    /* Insert 65 1024 entries, and overflow buffer.  
+     * This should overflow two entries, because the buffer is sized for 64 
+     * entries, and then the headers themselves will eat into one of the 
entries, 
+     * so there should be a total of 63 entries.
+     * Ensure no data corruption.
+     */
+    for (i = 0; i < 65; i++) {
+        cbmem1_entry[0] = i;
+        rc = cbmem_append(&cbmem1, cbmem1_entry, sizeof(cbmem1_entry));
+        TEST_ASSERT_FATAL(rc == 0, "Could not append entry %d, rc = %d", i, 
rc);
+    }
+}
+
+static int 
+cbmem_test_case_1_walk(struct cbmem *cbmem, struct cbmem_entry_hdr *hdr, 
+        void *arg)
+{
+    uint8_t expected;
+    uint8_t actual;
+    int rc;
+
+    expected = *(uint8_t *) arg;
+
+    rc = cbmem_read(cbmem, hdr, &actual, 0, sizeof(actual));
+    TEST_ASSERT_FATAL(rc == 1, "Couldn't read 1 byte from cbmem");
+    TEST_ASSERT_FATAL(actual == expected, 
+            "Actual doesn't equal expected (%d = %d)", actual, expected);
+
+    *(uint8_t *) arg = ++expected;
+
+    return (0);
+}
+
+TEST_CASE(cbmem_test_case_1) 
+{
+    int i;
+    int rc;
+
+    /* i starts at 2, for the 2 overwritten entries. */
+    i = 2;
+    rc = cbmem_walk(&cbmem1, cbmem_test_case_1_walk, &i);
+    TEST_ASSERT_FATAL(rc == 0, "Could not walk cbmem tree!  rc = %d", rc);
+    TEST_ASSERT_FATAL(i == 65, 
+            "Did not go through every element of walk, %d processed", i - 2);
+
+}
+
+TEST_CASE(cbmem_test_case_2)
+{
+    struct cbmem_entry_hdr *hdr;
+    struct cbmem_iter iter;
+    uint8_t i;
+    uint8_t val;
+    int rc;
+
+    i = 2;
+    cbmem_iter_start(&cbmem1, &iter);
+    while (1) {
+        hdr = cbmem_iter_next(&cbmem1, &iter);
+        if (hdr == NULL) {
+            break;
+        }
+
+        rc = cbmem_read(&cbmem1, hdr, &val, 0, sizeof(val));
+        TEST_ASSERT_FATAL(rc == 1, "Couldn't read 1 byte from cbmem");
+        TEST_ASSERT_FATAL(val == i, "Entry index does not match %d vs %d", 
+                val, i);
+
+        i++;
+    }
+
+    /* i starts at 2, for the 2 overwritten entries */
+    TEST_ASSERT_FATAL(i == 65, 
+            "Did not iterate through all 63 elements of CBMEM1, processed %d", 
+            i - 2);
+}
+
+TEST_CASE(cbmem_test_case_3)
+{
+    struct cbmem_entry_hdr *hdr;
+    struct cbmem_iter iter;
+    uint16_t off;
+    uint16_t len;
+    uint8_t buf[128];
+    int i;
+    int rc;
+
+    i = 0;
+    cbmem_iter_start(&cbmem1, &iter);
+    while (1) {
+        hdr = cbmem_iter_next(&cbmem1, &iter);
+        if (hdr == NULL) {
+            break;
+        }
+        
+        /* first ensure we can read the entire entry */
+        off = 0;
+        len = 0;
+        while (1) {
+            rc = cbmem_read(&cbmem1, hdr, buf, off, sizeof(buf));
+            TEST_ASSERT_FATAL(rc >= 0,
+                    "Error reading from buffer rc=%d, off=%d,len=%d", rc, off, 
+                    sizeof(buf));
+            if (rc == 0) {
+                break;
+            }
+            off += rc;
+            len += rc;
+        }
+        TEST_ASSERT_FATAL(len == 1024, 
+                "Couldn't read full entry, expected %d got %d", 1024, len);
+        i++;
+
+        /* go apesh*t, and read data out of bounds, see what we get. */
+        rc = cbmem_read(&cbmem1, hdr, buf, 2048, sizeof(buf));
+        TEST_ASSERT_FATAL(rc < 0, 
+                "Reading invalid should return error, instead %d returned.",
+                rc);
+    }
+}
+
+TEST_SUITE(cbmem_test_suite)
+{
+    setup_cbmem1();
+    cbmem_test_case_1();
+    cbmem_test_case_2();
+    cbmem_test_case_3();
+}

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/d98ddc1c/libs/util/test/src/util_test.c
----------------------------------------------------------------------
diff --git a/libs/util/test/src/util_test.c b/libs/util/test/src/util_test.c
new file mode 100644
index 0000000..d528568
--- /dev/null
+++ b/libs/util/test/src/util_test.c
@@ -0,0 +1,46 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+#include <assert.h>
+#include <stddef.h>
+#include "syscfg/syscfg.h"
+#include "testutil/testutil.h"
+#include "util_test_priv.h"
+
+int
+util_test_all(void)
+{
+    cbmem_test_suite();
+    return tu_case_failed;
+}
+
+#if MYNEWT_VAL(SELFTEST)
+
+int
+main(int argc, char **argv)
+{
+    tu_config.tc_print_results = 1;
+    tu_init();
+
+    util_test_all();
+
+    return tu_any_failed;
+}
+
+#endif

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/d98ddc1c/libs/util/test/src/util_test_priv.h
----------------------------------------------------------------------
diff --git a/libs/util/test/src/util_test_priv.h 
b/libs/util/test/src/util_test_priv.h
new file mode 100644
index 0000000..cc5533d
--- /dev/null
+++ b/libs/util/test/src/util_test_priv.h
@@ -0,0 +1,25 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+#ifndef __UTIL_TEST_PRIV_
+#define __UTIL_TEST_PRIV_
+
+int cbmem_test_suite(void);
+
+#endif

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/d98ddc1c/libs/wifi_mgmt/pkg.yml
----------------------------------------------------------------------
diff --git a/libs/wifi_mgmt/pkg.yml b/libs/wifi_mgmt/pkg.yml
index ebe582c..711dc75 100644
--- a/libs/wifi_mgmt/pkg.yml
+++ b/libs/wifi_mgmt/pkg.yml
@@ -25,11 +25,10 @@ pkg.keywords:
 pkg.deps:
     - "@apache-mynewt-core/libs/os"
     - "@apache-mynewt-core/libs/util"
-pkg.reqs:
-    - console
-pkg.cflags.SHELL:
-    - -DSHELL_PRESENT
-
-pkg.deps.TEST:
-   - libs/testutil
+pkg.deps.WIFI_MGMT_CLI:
+    - libs/shell
 
+pkg.syscfg_defs:
+    WIFI_MGMT_CLI:
+        description: 'TBD'
+        value: 'MYNEWT_PKG_LIBS_SHELL'

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/d98ddc1c/libs/wifi_mgmt/src/wifi.c
----------------------------------------------------------------------
diff --git a/libs/wifi_mgmt/src/wifi.c b/libs/wifi_mgmt/src/wifi.c
index b5b6a72..b96a2ed 100644
--- a/libs/wifi_mgmt/src/wifi.c
+++ b/libs/wifi_mgmt/src/wifi.c
@@ -338,7 +338,7 @@ wifi_task(void *arg)
 int
 wifi_task_init(uint8_t prio, os_stack_t *stack, uint16_t stack_size)
 {
-#ifdef SHELL_PRESENT
+#if MYNEWT_VAL(WIFI_MGMT_CLI)
     shell_cmd_register(&wifi_cli_cmd);
 #endif
     os_eventq_init(&wifi_evq);

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/d98ddc1c/libs/wifi_mgmt/src/wifi_cli.c
----------------------------------------------------------------------
diff --git a/libs/wifi_mgmt/src/wifi_cli.c b/libs/wifi_mgmt/src/wifi_cli.c
index 4cd9552..350418f 100644
--- a/libs/wifi_mgmt/src/wifi_cli.c
+++ b/libs/wifi_mgmt/src/wifi_cli.c
@@ -16,7 +16,11 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-#ifdef SHELL_PRESENT
+
+#include "syscfg/syscfg.h"
+
+#if MYNEWT_VAL(WIFI_MGMT_CLI)
+
 #include <stddef.h>
 #include <string.h>
 #include <assert.h>

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/d98ddc1c/libs/wifi_mgmt/src/wifi_priv.h
----------------------------------------------------------------------
diff --git a/libs/wifi_mgmt/src/wifi_priv.h b/libs/wifi_mgmt/src/wifi_priv.h
index dfba81d..d7fbb1f 100644
--- a/libs/wifi_mgmt/src/wifi_priv.h
+++ b/libs/wifi_mgmt/src/wifi_priv.h
@@ -20,7 +20,9 @@
 #ifndef __WIFI_PRIV_H__
 #define __WIFI_PRIV_H__
 
-#ifdef SHELL_PRESENT
+#include "syscfg/syscfg.h"
+
+#if MYNEWT_VAL(WIFI_MGMT_CLI)
 extern struct shell_cmd wifi_cli_cmd;
 #endif
 

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/d98ddc1c/net/nimble/controller/include/controller/ble_ll.h
----------------------------------------------------------------------
diff --git a/net/nimble/controller/include/controller/ble_ll.h 
b/net/nimble/controller/include/controller/ble_ll.h
index 2be8425..6f48ac6 100644
--- a/net/nimble/controller/include/controller/ble_ll.h
+++ b/net/nimble/controller/include/controller/ble_ll.h
@@ -287,8 +287,7 @@ struct ble_dev_addr
 
 /*--- External API ---*/
 /* Initialize the Link Layer */
-int
-ble_ll_init(uint8_t ll_task_prio, uint8_t num_acl_pkts, uint16_t acl_pkt_size);
+void ble_ll_init(void);
 
 /* Reset the Link Layer */
 int ble_ll_reset(void);
@@ -390,7 +389,7 @@ void ble_ll_log(uint8_t id, uint8_t arg8, uint16_t arg16, 
uint32_t arg32);
 #define ble_ll_log(m,n,o,p)
 #endif
 
-#if (BLE_LL_CFG_FEAT_LE_ENCRYPTION == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LE_ENCRYPTION) == 1)
 /* LTK 0x4C68384139F574D836BCF34E9DFB01BF */
 extern const uint8_t g_bletest_LTK[];
 extern uint16_t g_bletest_EDIV;

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/d98ddc1c/net/nimble/controller/include/controller/ble_ll_conn.h
----------------------------------------------------------------------
diff --git a/net/nimble/controller/include/controller/ble_ll_conn.h 
b/net/nimble/controller/include/controller/ble_ll_conn.h
index 38a3a22..0b15d06 100644
--- a/net/nimble/controller/include/controller/ble_ll_conn.h
+++ b/net/nimble/controller/include/controller/ble_ll_conn.h
@@ -53,7 +53,7 @@
 /* Definition for RSSI when the RSSI is unknown */
 #define BLE_LL_CONN_UNKNOWN_RSSI        (127)
 
-#if (BLE_LL_CFG_FEAT_LE_ENCRYPTION == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LE_ENCRYPTION) == 1)
 /*
  * Encryption states for a connection
  *
@@ -232,7 +232,7 @@ struct ble_ll_conn_sm
     /* For scheduling connections */
     struct ble_ll_sched_item conn_sch;
 
-#if (BLE_LL_CFG_FEAT_LE_PING == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LE_PING) == 1)
     struct os_callout_func auth_pyld_timer;
 #endif
 
@@ -244,7 +244,7 @@ struct ble_ll_conn_sm
      * allocate these from a pool? Not sure what to do. For now, I just use
      * a large chunk of memory per connection.
      */
-#if (BLE_LL_CFG_FEAT_LE_ENCRYPTION == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LE_ENCRYPTION) == 1)
     struct ble_ll_conn_enc_data enc_data;
 #endif
     /*

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/d98ddc1c/net/nimble/controller/pkg.yml
----------------------------------------------------------------------
diff --git a/net/nimble/controller/pkg.yml b/net/nimble/controller/pkg.yml
index 8e52aba..19846bb 100644
--- a/net/nimble/controller/pkg.yml
+++ b/net/nimble/controller/pkg.yml
@@ -34,5 +34,171 @@ pkg.deps:
     - sys/stats
     - net/nimble
 
-pkg.features:
-    - BLE_DEVICE
+pkg.init_function: ble_ll_init
+pkg.init_stage: 2
+
+pkg.syscfg_defs:
+    BLE_DEVICE:
+        description: 'TBD'
+        value: 1
+
+    BLE_LL_PRIO:
+        description: 'TBD'
+        type: 'task_priority'
+        value: 0
+
+    # Sleep clock accuracy (sca). This is the amount of drift in the system
+    # during when the device is sleeping (in parts per million).
+    #
+    # NOTE: 'the' master sca is an enumerated value based on the sca. Rather
+    # than have a piece of code calculate this value, the developer must set
+    # this value based on the value of the SCA using the following table:
+    #
+    #  SCA between 251 and 500 ppm (inclusive); master sca = 0
+    #  SCA between 151 and 250 ppm (inclusive); master sca = 1
+    #  SCA between 101 and 150 ppm (inclusive); master sca = 2
+    #  SCA between 76 and 100 ppm (inclusive); master sca = 3
+    #  SCA between 51 and 75 ppm (inclusive); master sca = 4
+    #  SCA between 31 and 50 ppm (inclusive); master sca = 5
+    #  SCA between 21 and 30 ppm (inclusive); master sca = 6
+    #  SCA between 0 and 20 ppm (inclusive); master sca = 7
+    #
+    #  For example:
+    #      if your clock drift is 101 ppm, your master should be set to 2.
+    #      if your clock drift is 20, your master sca should be set to 7.
+    #
+    #  The values provided below are merely meant to be an example and should
+    #  be replaced by values appropriate for your platform.
+    BLE_LL_OUR_SCA:
+        description: 'TBD'
+        value: '60'    # in ppm
+
+    BLE_LL_MASTER_SCA:
+        description: 'TBD'
+        value: '4'
+
+    BLE_LL_TX_PWR_DBM:
+        description: 'Transmit power level.'
+        value: '0'
+
+    BLE_NUM_COMP_PKT_RATE:
+        description: >
+            Determines the maximum rate at which the controller will send the
+            number of completed packets event to the host. Rate is in os time
+            ticks.
+        value: '((2000 * OS_TICKS_PER_SEC) / 1000)'
+
+    BLE_LL_MFRG_ID:
+        description: >
+            Manufacturer ID. Should be set to unique ID per manufacturer.
+        value: '0xFFFF'
+
+    # Configuration items for the number of duplicate advertisers and the
+    # number of advertisers from which we have heard a scan response.
+    BLE_LL_NUM_SCAN_DUP_ADVS:
+        description: 'TBD'
+        value: '8'
+    BLE_LL_NUM_SCAN_RSP_ADVS:
+        description: 'TBD'
+        value: '8'
+
+    BLE_LL_WHITELIST_SIZE:
+        description: 'Size of the LL whitelist.'
+        value: '8'
+
+    BLE_LL_RESOLV_LIST_SIZE:
+        description: 'Size of the resolving list.'
+        value: '4'
+
+    # Data length management definitions for connections. These define the
+    # maximum size of the PDU's that will be sent and/or received in a
+    # connection.
+    BLE_LL_MAX_PKT_SIZE:
+        description: 'TBD'
+        value: '251'
+    BLE_LL_SUPP_MAX_RX_BYTES:
+        description: 'TBD'
+        value: 'MYNEWT_VAL_BLE_LL_MAX_PKT_SIZE'
+    BLE_LL_SUPP_MAX_TX_BYTES:
+        description: 'TBD'
+        value: 'MYNEWT_VAL_BLE_LL_MAX_PKT_SIZE'
+    BLE_LL_CONN_INIT_MAX_TX_BYTES:
+        description: 'TBD'
+        value: '27'
+
+    # The number of slots that will be allocated to each connection
+    BLE_LL_CONN_INIT_SLOTS:
+        description: 'TBD'
+        value: '2'
+
+    # The number of random bytes to store
+    BLE_LL_RNG_BUFSIZE:
+        description: 'TBD'
+        value: '32'
+
+    # Configuration for LL supported features.
+    #
+    # There are a total 8 features that the LL can support. These can be found
+    # in v4.2, Vol 6 Part B Section 4.6.
+    #
+    # These feature definitions are used to inform a host or other controller
+    # about the LL features supported by the controller.
+    #
+    # NOTE: 'the' controller always supports extended reject indicate and thus
+    # is not listed here.
+
+
+    BLE_LL_CFG_FEAT_LE_ENCRYPTION:
+        description: >
+            This option enables/disables encryption support in the controller.
+            This option saves both both code and RAM.
+        value: '1'
+
+    BLE_LL_CFG_FEAT_CONN_PARAM_REQ:
+        description: >
+            This option enables/disables the connection parameter request
+            procedure.  This is implemented in the controller but is disabled
+            by default.
+        value: '0'
+
+    BLE_LL_CFG_FEAT_SLAVE_INIT_FEAT_XCHG:
+        description: >
+            This option allows a slave to initiate the feature exchange
+            procedure.  This feature is implemented but currently has no impact
+            on code or ram size
+        value: '1'
+
+    BLE_LL_CFG_FEAT_LE_PING:
+        description: >
+            This option allows a controller to send/receive LE pings.
+            Currently, this feature is not implemented by the controller so
+            turning it on or off has no effect.
+        value: '1'
+
+    BLE_LL_CFG_FEAT_DATA_LEN_EXT:
+        description: >
+            This option enables/disables the data length update procedure in
+            the controller. If enabled, the controller is allowed to change the
+            size of tx/rx pdu's used in a connection. This option has only
+            minor impact on code size and non on RAM.
+        value: '1'
+
+    BLE_LL_CFG_FEAT_LL_PRIVACY:
+        description: >
+            This option is used to enable/disable LL privacy. Currently, this
+            feature is not supported by the nimble controller.
+        value: '1'
+
+    BLE_LL_CFG_FEAT_EXT_SCAN_FILT:
+        description: >
+            This option is used to enable/disable the extended scanner filter
+            policy feature. Currently, this feature is not supported by the
+            nimble controller.
+        value: '0'
+
+    BLE_LL_ACL_PKT_COUNT:
+        description: 'TBD'
+        value: 12
+    BLE_LL_ACL_PKT_SIZE:
+        description: 'TBD'
+        value: 260

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/d98ddc1c/net/nimble/controller/src/ble_ll.c
----------------------------------------------------------------------
diff --git a/net/nimble/controller/src/ble_ll.c 
b/net/nimble/controller/src/ble_ll.c
index 1a4f558..978497a 100644
--- a/net/nimble/controller/src/ble_ll.c
+++ b/net/nimble/controller/src/ble_ll.c
@@ -20,6 +20,8 @@
 #include <stdint.h>
 #include <assert.h>
 #include <string.h>
+#include "sysinit/sysinit.h"
+#include "syscfg/syscfg.h"
 #include "os/os.h"
 #include "stats/stats.h"
 #include "bsp/bsp.h"
@@ -186,6 +188,12 @@ os_stack_t g_ble_ll_stack[BLE_LL_STACK_SIZE];
 struct os_mempool g_ble_ll_hci_ev_pool;
 static void *ble_ll_hci_os_event_buf;
 
+/** Our global device address (public) */
+uint8_t g_dev_addr[BLE_DEV_ADDR_LEN];
+
+/** Our random address */
+uint8_t g_random_addr[BLE_DEV_ADDR_LEN];
+
 /* XXX: temporary logging until we transition to real logging */
 #ifdef BLE_LL_LOG
 struct ble_ll_log
@@ -872,7 +880,7 @@ ble_ll_task(void *arg)
     ble_phy_init();
 
     /* Set output power to 1mW (0 dBm) */
-    ble_phy_txpwr_set(NIMBLE_OPT_LL_TX_PWR_DBM);
+    ble_phy_txpwr_set(MYNEWT_VAL(BLE_LL_TX_PWR_DBM));
 
     /* Tell the host that we are ready to receive packets */
     ble_ll_hci_send_noop();
@@ -1089,7 +1097,7 @@ ble_ll_reset(void)
     ble_ll_whitelist_clear();
 
     /* Reset resolving list */
-#if (BLE_LL_CFG_FEAT_LL_PRIVACY == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LL_PRIVACY) == 1)
     ble_ll_resolv_list_reset();
 #endif
 
@@ -1099,13 +1107,30 @@ ble_ll_reset(void)
     return rc;
 }
 
+static void
+ble_ll_seed_prng(void)
+{
+    uint32_t seed;
+    int i;
+
+    /* Seed random number generator with least significant bytes of device
+     * address.
+     */
+    seed = 0;
+    for (i = 0; i < 4; ++i) {
+        seed |= g_dev_addr[i];
+        seed <<= 8;
+    }
+    srand(seed);
+}
+
 /**
  * Initialize the Link Layer. Should be called only once
  *
  * @return int
  */
-int
-ble_ll_init(uint8_t ll_task_prio, uint8_t num_acl_pkts, uint16_t acl_pkt_size)
+void
+ble_ll_init(void)
 {
     int rc;
     uint8_t features;
@@ -1115,8 +1140,8 @@ ble_ll_init(uint8_t ll_task_prio, uint8_t num_acl_pkts, 
uint16_t acl_pkt_size)
     lldata = &g_ble_ll_data;
 
     /* Set acl pkt size and number */
-    lldata->ll_num_acl_pkts = num_acl_pkts;
-    lldata->ll_acl_pkt_size = acl_pkt_size;
+    lldata->ll_num_acl_pkts = MYNEWT_VAL(BLE_LL_ACL_PKT_COUNT);
+    lldata->ll_acl_pkt_size = MYNEWT_VAL(BLE_LL_ACL_PKT_SIZE);
 
     /* Initialize eventq */
     os_eventq_init(&lldata->ll_evq);
@@ -1135,13 +1160,13 @@ ble_ll_init(uint8_t ll_task_prio, uint8_t num_acl_pkts, 
uint16_t acl_pkt_size)
 
     ble_ll_hci_os_event_buf = malloc(
         OS_MEMPOOL_BYTES(16, sizeof (struct os_event)));
-    assert(ble_ll_hci_os_event_buf != NULL);
+    SYSINIT_PANIC_ASSERT(ble_ll_hci_os_event_buf != NULL);
 
     /* Create memory pool of OS events */
     rc = os_mempool_init(&g_ble_ll_hci_ev_pool, 16,
                          sizeof (struct os_event), ble_ll_hci_os_event_buf,
                          "g_ble_ll_hci_ev_pool");
-    assert(rc == 0);
+    SYSINIT_PANIC_ASSERT(rc == 0);
 
     /* Initialize LL HCI */
     ble_ll_hci_init();
@@ -1161,45 +1186,50 @@ ble_ll_init(uint8_t ll_task_prio, uint8_t num_acl_pkts, 
uint16_t acl_pkt_size)
     /* Set the supported features. NOTE: we always support extended reject. */
     features = BLE_LL_FEAT_EXTENDED_REJ;
 
-#if (BLE_LL_CFG_FEAT_DATA_LEN_EXT == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_DATA_LEN_EXT) == 1)
     features |= BLE_LL_FEAT_DATA_LEN_EXT;
 #endif
-#if (BLE_LL_CFG_FEAT_CONN_PARAM_REQ == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_CONN_PARAM_REQ) == 1)
     features |= BLE_LL_FEAT_CONN_PARM_REQ;
 #endif
-#if (BLE_LL_CFG_FEAT_SLAVE_INIT_FEAT_XCHG == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_SLAVE_INIT_FEAT_XCHG) == 1)
     features |= BLE_LL_FEAT_SLAVE_INIT;
 #endif
-#if (BLE_LL_CFG_FEAT_LE_ENCRYPTION == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LE_ENCRYPTION) == 1)
     features |= BLE_LL_FEAT_LE_ENCRYPTION;
 #endif
 
-#if (BLE_LL_CFG_FEAT_LL_PRIVACY == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LL_PRIVACY) == 1)
     features |= (BLE_LL_FEAT_LL_PRIVACY | BLE_LL_FEAT_EXT_SCAN_FILT);
     ble_ll_resolv_init();
 #endif
 
-#if (BLE_LL_CFG_FEAT_LE_PING == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LE_PING) == 1)
     features |= BLE_LL_FEAT_LE_PING;
 #endif
 
     /* Initialize random number generation */
     ble_ll_rand_init();
 
+    /* XXX: This really doesn't belong here, as the address probably has not
+     * been set yet.
+     */
+    ble_ll_seed_prng();
+
     lldata->ll_supp_features = features;
 
     /* Initialize the LL task */
-    os_task_init(&g_ble_ll_task, "ble_ll", ble_ll_task, NULL, ll_task_prio,
-                 OS_WAIT_FOREVER, g_ble_ll_stack, BLE_LL_STACK_SIZE);
+    os_task_init(&g_ble_ll_task, "ble_ll", ble_ll_task, NULL,
+                 MYNEWT_VAL(BLE_LL_PRIO), OS_WAIT_FOREVER, g_ble_ll_stack,
+                 BLE_LL_STACK_SIZE);
 
     rc = stats_init_and_reg(STATS_HDR(ble_ll_stats),
                             STATS_SIZE_INIT_PARMS(ble_ll_stats, STATS_SIZE_32),
                             STATS_NAME_INIT_PARMS(ble_ll_stats),
                             "ble_ll");
+    SYSINIT_PANIC_ASSERT(rc == 0);
 
-    ble_hci_trans_cfg_ll(ble_ll_hci_cmd_rx, NULL,
-                                    ble_ll_hci_acl_rx, NULL);
-    return rc;
+    ble_hci_trans_cfg_ll(ble_ll_hci_cmd_rx, NULL, ble_ll_hci_acl_rx, NULL);
 }
 
 #ifdef BLE_LL_LOG

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/d98ddc1c/net/nimble/controller/src/ble_ll_adv.c
----------------------------------------------------------------------
diff --git a/net/nimble/controller/src/ble_ll_adv.c 
b/net/nimble/controller/src/ble_ll_adv.c
index 1f43a5d..01de299 100644
--- a/net/nimble/controller/src/ble_ll_adv.c
+++ b/net/nimble/controller/src/ble_ll_adv.c
@@ -19,6 +19,7 @@
 #include <stdint.h>
 #include <string.h>
 #include <assert.h>
+#include "syscfg/syscfg.h"
 #include "os/os.h"
 #include "bsp/bsp.h"
 #include "ble/xcvr.h"
@@ -120,7 +121,7 @@ struct ble_ll_adv_sm g_ble_ll_adv_sm;
 #define BLE_LL_ADV_DIRECT_SCHED_MAX_USECS   (502)
 
 
-#if (BLE_LL_CFG_FEAT_LL_PRIVACY == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LL_PRIVACY) == 1)
 void
 ble_ll_adv_chk_rpa_timeout(struct ble_ll_adv_sm *advsm)
 {
@@ -373,12 +374,12 @@ ble_ll_adv_tx_start_cb(struct ble_ll_sched_item *sch)
         goto adv_tx_done;
     }
 
-#if (BLE_LL_CFG_FEAT_LE_ENCRYPTION == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LE_ENCRYPTION) == 1)
     /* XXX: automatically do this in the phy based on channel? */
     ble_phy_encrypt_disable();
 #endif
 
-#if (BLE_LL_CFG_FEAT_LL_PRIVACY == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LL_PRIVACY) == 1)
     advsm->adv_rpa_index = -1;
     if (ble_ll_resolv_enabled()) {
         ble_phy_resolv_list_enable();
@@ -578,7 +579,7 @@ ble_ll_adv_set_adv_params(uint8_t *cmd)
         return BLE_ERR_INV_HCI_CMD_PARMS;
     }
 
-#if (BLE_LL_CFG_FEAT_LL_PRIVACY == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LL_PRIVACY) == 1)
     if (own_addr_type > BLE_HCI_ADV_OWN_ADDR_RANDOM) {
         /* Copy peer address */
         memcpy(advsm->peer_addr, cmd + 7, BLE_DEV_ADDR_LEN);
@@ -696,7 +697,7 @@ ble_ll_adv_sm_start(struct ble_ll_adv_sm *advsm)
     }
 
     /* This will generate an RPA for both initiator addr and adva */
-#if (BLE_LL_CFG_FEAT_LL_PRIVACY == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LL_PRIVACY) == 1)
     ble_ll_adv_chk_rpa_timeout(advsm);
 #endif
 
@@ -759,7 +760,7 @@ ble_ll_adv_scheduled(uint32_t sch_start)
 int
 ble_ll_adv_read_txpwr(uint8_t *rspbuf, uint8_t *rsplen)
 {
-    rspbuf[0] = NIMBLE_OPT_LL_TX_PWR_DBM;
+    rspbuf[0] = MYNEWT_VAL(BLE_LL_TX_PWR_DBM);
     *rsplen = 1;
     return BLE_ERR_SUCCESS;
 }
@@ -909,7 +910,7 @@ ble_ll_adv_rx_req(uint8_t pdu_type, struct os_mbuf *rxpdu)
     peer_addr_type = txadd;
     resolved = 0;
 
-#if (BLE_LL_CFG_FEAT_LL_PRIVACY == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LL_PRIVACY) == 1)
     if (ble_ll_is_rpa(peer, txadd) && ble_ll_resolv_enabled()) {
         advsm->adv_rpa_index = ble_hw_resolv_list_match();
         if (advsm->adv_rpa_index >= 0) {
@@ -1000,7 +1001,7 @@ ble_ll_adv_conn_req_rxd(uint8_t *rxbuf, struct 
ble_mbuf_hdr *hdr)
             (advsm->adv_type == BLE_HCI_ADV_TYPE_ADV_DIRECT_IND_LD)) {
             ident_addr = inita;
 
-#if (BLE_LL_CFG_FEAT_LL_PRIVACY == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LL_PRIVACY) == 1)
             if (resolved) {
                 ident_addr = 
g_ble_ll_resolv_list[advsm->adv_rpa_index].rl_identity_addr;
                 addr_type = 
g_ble_ll_resolv_list[advsm->adv_rpa_index].rl_addr_type;
@@ -1014,7 +1015,7 @@ ble_ll_adv_conn_req_rxd(uint8_t *rxbuf, struct 
ble_mbuf_hdr *hdr)
     }
 
     if (valid) {
-#if (BLE_LL_CFG_FEAT_LL_PRIVACY == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LL_PRIVACY) == 1)
         if (resolved) {
             /* Retain the resolvable private address that we received. */
             memcpy(advsm->adv_rpa, inita, BLE_DEV_ADDR_LEN);
@@ -1296,7 +1297,7 @@ ble_ll_adv_event_done(void *arg)
     }
 
     /* We need to regenerate our RPA's if we have passed timeout */
-#if (BLE_LL_CFG_FEAT_LL_PRIVACY == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LL_PRIVACY) == 1)
     ble_ll_adv_chk_rpa_timeout(advsm);
 #endif
 

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/d98ddc1c/net/nimble/controller/src/ble_ll_conn.c
----------------------------------------------------------------------
diff --git a/net/nimble/controller/src/ble_ll_conn.c 
b/net/nimble/controller/src/ble_ll_conn.c
index cb0f89b..8ec6bca 100644
--- a/net/nimble/controller/src/ble_ll_conn.c
+++ b/net/nimble/controller/src/ble_ll_conn.c
@@ -20,6 +20,7 @@
 #include <stdint.h>
 #include <string.h>
 #include <assert.h>
+#include "syscfg/syscfg.h"
 #include "bsp/bsp.h"
 #include "os/os.h"
 #include "nimble/ble.h"
@@ -124,7 +125,7 @@ struct ble_ll_empty_pdu
 };
 
 /* We cannot have more than 254 connections given our current implementation */
-#if (NIMBLE_OPT_MAX_CONNECTIONS >= 255)
+#if (MYNEWT_VAL(BLE_MAX_CONNECTIONS) >= 255)
     #error "Maximum # of connections is 254"
 #endif
 
@@ -144,7 +145,7 @@ struct ble_ll_conn_sm *g_ble_ll_conn_create_sm;
 struct ble_ll_conn_sm *g_ble_ll_conn_cur_sm;
 
 /* Connection state machine array */
-struct ble_ll_conn_sm g_ble_ll_conn_sm[NIMBLE_OPT_MAX_CONNECTIONS];
+struct ble_ll_conn_sm g_ble_ll_conn_sm[MYNEWT_VAL(BLE_MAX_CONNECTIONS)];
 
 /* List of active connections */
 struct ble_ll_conn_active_list g_ble_ll_conn_active_list;
@@ -211,7 +212,7 @@ STATS_NAME_START(ble_ll_conn_stats)
     STATS_NAME(ble_ll_conn_stats, mic_failures)
 STATS_NAME_END(ble_ll_conn_stats)
 
-#if (BLE_LL_CFG_FEAT_LE_ENCRYPTION == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LE_ENCRYPTION) == 1)
 /**
  * Called to determine if the received PDU is an empty PDU or not.
  */
@@ -313,7 +314,7 @@ ble_ll_conn_find_active_conn(uint16_t handle)
     struct ble_ll_conn_sm *connsm;
 
     connsm = NULL;
-    if ((handle != 0) && (handle <= NIMBLE_OPT_MAX_CONNECTIONS)) {
+    if ((handle != 0) && (handle <= MYNEWT_VAL(BLE_MAX_CONNECTIONS))) {
         connsm = &g_ble_ll_conn_sm[handle - 1];
         if (connsm->conn_state == BLE_LL_CONN_STATE_IDLE) {
             connsm = NULL;
@@ -364,7 +365,7 @@ ble_ll_conn_calc_window_widening(struct ble_ll_conn_sm 
*connsm)
     if (time_since_last_anchor > 0) {
         delta_msec = cputime_ticks_to_usecs(time_since_last_anchor) / 1000;
         total_sca_ppm = g_ble_sca_ppm_tbl[connsm->master_sca] +
-            NIMBLE_OPT_LL_OUR_SCA;
+            MYNEWT_VAL(BLE_LL_OUR_SCA);
         window_widening = (total_sca_ppm * delta_msec) / 1000;
     }
 
@@ -598,7 +599,7 @@ ble_ll_conn_wait_txend(void *arg)
     ble_ll_event_send(&connsm->conn_ev_end);
 }
 
-#if (BLE_LL_CFG_FEAT_LE_ENCRYPTION == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LE_ENCRYPTION) == 1)
 static void
 ble_ll_conn_start_rx_encrypt(void *arg)
 {
@@ -699,7 +700,7 @@ ble_ll_conn_chk_csm_flags(struct ble_ll_conn_sm *connsm)
 {
     uint8_t update_status;
 
-#if (BLE_LL_CFG_FEAT_LE_ENCRYPTION == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LE_ENCRYPTION) == 1)
     if (connsm->csmflags.cfbit.send_ltk_req) {
         /*
          * Send Long term key request event to host. If masked, we need to
@@ -789,7 +790,7 @@ ble_ll_conn_tx_data_pdu(struct ble_ll_conn_sm *connsm)
         m = OS_MBUF_PKTHDR_TO_MBUF(pkthdr);
         nextpkthdr = STAILQ_NEXT(pkthdr, omp_next);
 
-#if (BLE_LL_CFG_FEAT_LE_ENCRYPTION == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LE_ENCRYPTION) == 1)
         /*
          * If we are encrypting, we are only allowed to send certain
          * kinds of LL control PDU's. If none is enqueued, send empty pdu!
@@ -839,7 +840,7 @@ ble_ll_conn_tx_data_pdu(struct ble_ll_conn_sm *connsm)
             if (cur_offset == 0) {
                 hdr_byte = ble_hdr->txinfo.hdr_byte & 
BLE_LL_DATA_HDR_LLID_MASK;
             }
-#if (BLE_LL_CFG_FEAT_LE_ENCRYPTION == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LE_ENCRYPTION) == 1)
             if (connsm->enc_data.enc_state > CONN_ENC_S_ENCRYPTED) {
                 /* We will allow a next packet if it itself is allowed */
                 pkthdr = OS_MBUF_PKTHDR(connsm->cur_tx_pdu);
@@ -854,7 +855,7 @@ ble_ll_conn_tx_data_pdu(struct ble_ll_conn_sm *connsm)
             /* Empty PDU here. NOTE: header byte gets set later */
             pktlen = 0;
             cur_txlen = 0;
-#if (BLE_LL_CFG_FEAT_LE_ENCRYPTION == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LE_ENCRYPTION) == 1)
             if (connsm->enc_data.enc_state > CONN_ENC_S_ENCRYPTED) {
                 /* We will allow a next packet if it itself is allowed */
                 if (nextpkthdr && !ble_ll_ctrl_enc_allowed_pdu(nextpkthdr)) {
@@ -977,7 +978,7 @@ conn_tx_pdu:
         txend_func = NULL;
     }
 
-#if (BLE_LL_CFG_FEAT_LE_ENCRYPTION == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LE_ENCRYPTION) == 1)
     int is_ctrl;
     uint8_t llid;
     uint8_t opcode;
@@ -1118,7 +1119,7 @@ ble_ll_conn_event_start_cb(struct ble_ll_sched_item *sch)
     ble_phy_setchan(connsm->data_chan_index, connsm->access_addr,
                     connsm->crcinit);
 
-#if (BLE_LL_CFG_FEAT_LL_PRIVACY == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LL_PRIVACY) == 1)
     ble_phy_resolv_list_disable();
 #endif
 
@@ -1126,7 +1127,7 @@ ble_ll_conn_event_start_cb(struct ble_ll_sched_item *sch)
         /* Set start time of transmission */
         rc = ble_phy_tx_set_start_time(sch->start_time + 
XCVR_PROC_DELAY_USECS);
         if (!rc) {
-#if (BLE_LL_CFG_FEAT_LE_ENCRYPTION == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LE_ENCRYPTION) == 1)
             if (CONN_F_ENCRYPTED(connsm)) {
                 ble_phy_encrypt_enable(connsm->enc_data.tx_pkt_cntr,
                                        connsm->enc_data.iv,
@@ -1148,7 +1149,7 @@ ble_ll_conn_event_start_cb(struct ble_ll_sched_item *sch)
             rc = BLE_LL_SCHED_STATE_DONE;
         }
     } else {
-#if (BLE_LL_CFG_FEAT_LE_ENCRYPTION == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LE_ENCRYPTION) == 1)
             if (CONN_F_ENCRYPTED(connsm)) {
                 ble_phy_encrypt_enable(connsm->enc_data.rx_pkt_cntr,
                                        connsm->enc_data.iv,
@@ -1263,7 +1264,7 @@ ble_ll_conn_can_send_next_pdu(struct ble_ll_conn_sm 
*connsm, uint32_t begtime)
     return rc;
 }
 
-#if (BLE_LL_CFG_FEAT_LE_PING == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LE_PING) == 1)
 /**
  * Callback for the Authenticated payload timer. This function is called
  * when the authenticated payload timer expires. When the authenticated
@@ -1337,7 +1338,7 @@ ble_ll_conn_master_init(struct ble_ll_conn_sm *connsm,
     /* Set default ce parameters */
     connsm->tx_win_size = BLE_LL_CONN_TX_WIN_MIN;
     connsm->tx_win_off = 0;
-    connsm->master_sca = NIMBLE_OPT_LL_MASTER_SCA;
+    connsm->master_sca = MYNEWT_VAL(BLE_LL_MASTER_SCA);
 
     /* Hop increment is a random value between 5 and 16. */
     connsm->hop_inc = (rand() % 12) + 5;
@@ -1465,12 +1466,12 @@ ble_ll_conn_sm_new(struct ble_ll_conn_sm *connsm)
     connsm->eff_max_rx_octets = BLE_LL_CONN_SUPP_BYTES_MIN;
 
     /* Reset encryption data */
-#if (BLE_LL_CFG_FEAT_LE_ENCRYPTION == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LE_ENCRYPTION) == 1)
     memset(&connsm->enc_data, 0, sizeof(struct ble_ll_conn_enc_data));
     connsm->enc_data.enc_state = CONN_ENC_S_UNENCRYPTED;
 #endif
 
-#if (BLE_LL_CFG_FEAT_LE_PING == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LE_PING) == 1)
     connsm->auth_pyld_tmo = BLE_LL_CONN_DEF_AUTH_PYLD_TMO;
     CONN_F_LE_PING_SUPP(connsm) = 1;
     os_callout_func_init(&connsm->auth_pyld_timer,
@@ -1558,7 +1559,7 @@ ble_ll_conn_end(struct ble_ll_conn_sm *connsm, uint8_t 
ble_err)
     /* Stop any control procedures that might be running */
     os_callout_stop(&connsm->ctrl_proc_rsp_timer.cf_c);
 
-#if (BLE_LL_CFG_FEAT_LE_PING == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LE_PING) == 1)
     os_callout_stop(&connsm->auth_pyld_timer.cf_c);
 #endif
 
@@ -1738,7 +1739,7 @@ ble_ll_conn_next_event(struct ble_ll_conn_sm *connsm)
      * Calculate ce end time. For a slave, we need to add window widening and
      * the transmit window if we still have one.
      */
-    itvl = NIMBLE_OPT_LL_CONN_INIT_SLOTS * BLE_LL_SCHED_USECS_PER_SLOT;
+    itvl = MYNEWT_VAL(BLE_LL_CONN_INIT_SLOTS) * BLE_LL_SCHED_USECS_PER_SLOT;
     if (connsm->conn_role == BLE_LL_CONN_ROLE_SLAVE) {
         cur_ww = ble_ll_conn_calc_window_widening(connsm);
         max_ww = (connsm->conn_itvl * (BLE_LL_CONN_ITVL_USECS/2)) - BLE_LL_IFS;
@@ -1803,7 +1804,7 @@ ble_ll_conn_created(struct ble_ll_conn_sm *connsm, 
uint32_t endtime)
         usecs = 1250 + (connsm->tx_win_off * BLE_LL_CONN_TX_WIN_USECS);
         connsm->anchor_point = endtime + cputime_usecs_to_ticks(usecs);
         usecs = connsm->slave_cur_tx_win_usecs +
-            (NIMBLE_OPT_LL_CONN_INIT_SLOTS * BLE_LL_SCHED_USECS_PER_SLOT);
+            (MYNEWT_VAL(BLE_LL_CONN_INIT_SLOTS) * BLE_LL_SCHED_USECS_PER_SLOT);
         connsm->ce_end_time = connsm->anchor_point +
             cputime_usecs_to_ticks(usecs);
         connsm->slave_cur_window_widening = 0;
@@ -1891,7 +1892,7 @@ ble_ll_conn_event_end(void *arg)
         connsm->slave_cur_tx_win_usecs = 0;
     }
 
-#if (BLE_LL_CFG_FEAT_LE_PING == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LE_PING) == 1)
     /*
      * If we are encrypted and have passed the authenticated payload timeout
      * we need to send an event to tell the host. Unfortunately, I think we
@@ -2290,7 +2291,7 @@ ble_ll_init_rx_isr_end(struct os_mbuf *rxpdu, uint8_t 
crcok)
         resolved = 0;
         chk_wl = ble_ll_scan_whitelist_enabled();
 
-#if (BLE_LL_CFG_FEAT_LL_PRIVACY == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LL_PRIVACY) == 1)
         if (ble_ll_is_rpa(adv_addr, addr_type) && ble_ll_resolv_enabled()) {
             index = ble_hw_resolv_list_match();
             if (index >= 0) {
@@ -2335,7 +2336,7 @@ ble_ll_init_rx_isr_end(struct os_mbuf *rxpdu, uint8_t 
crcok)
         /* Attempt to schedule new connection. Possible that this might fail */
         endtime = ble_hdr->beg_cputime + BLE_TX_DUR_USECS_M(pyld_len);
         if (!ble_ll_sched_master_new(connsm, endtime,
-                                     NIMBLE_OPT_LL_CONN_INIT_SLOTS)) {
+                                     MYNEWT_VAL(BLE_LL_CONN_INIT_SLOTS))) {
             /* Setup to transmit the connect request */
             rc = ble_ll_conn_request_send(addr_type, adv_addr,
                                           connsm->tx_win_off, index);
@@ -2497,7 +2498,7 @@ ble_ll_conn_rx_data_pdu(struct os_mbuf *rxpdu, struct 
ble_mbuf_hdr *hdr)
                 goto conn_rx_data_pdu_end;
             }
 
-#if (BLE_LL_CFG_FEAT_LE_PING == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LE_PING) == 1)
             /*
              * Reset authenticated payload timeout if valid MIC. NOTE: we dont
              * check the MIC failure bit as that would have terminated the
@@ -2536,7 +2537,7 @@ ble_ll_conn_rx_data_pdu(struct os_mbuf *rxpdu, struct 
ble_mbuf_hdr *hdr)
                     goto conn_rx_data_pdu_end;
                 }
 
-#if (BLE_LL_CFG_FEAT_LE_ENCRYPTION == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LE_ENCRYPTION) == 1)
                 /*
                  * XXX: should we check to see if we are in a state where we
                  * might expect to get an encrypted PDU?
@@ -2682,14 +2683,14 @@ ble_ll_conn_rx_isr_end(struct os_mbuf *rxpdu)
         conn_nesn = connsm->next_exp_seqnum;
         if ((hdr_sn && conn_nesn) || (!hdr_sn && !conn_nesn)) {
             connsm->next_exp_seqnum ^= 1;
-#if (BLE_LL_CFG_FEAT_LE_ENCRYPTION == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LE_ENCRYPTION) == 1)
             if (CONN_F_ENCRYPTED(connsm) && !ble_ll_conn_is_empty_pdu(rxpdu)) {
                 ++connsm->enc_data.rx_pkt_cntr;
             }
 #endif
         }
 
-#if (BLE_LL_CFG_FEAT_LE_ENCRYPTION == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LE_ENCRYPTION) == 1)
         ble_ll_log(BLE_LL_LOG_ID_CONN_RX,
                    hdr_byte,
                    (uint16_t)connsm->tx_seqnum << 8 | conn_nesn,
@@ -2727,7 +2728,7 @@ ble_ll_conn_rx_isr_end(struct os_mbuf *rxpdu)
                  */
                 txpdu = connsm->cur_tx_pdu;
                 if (txpdu) {
-#if (BLE_LL_CFG_FEAT_LE_ENCRYPTION == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LE_ENCRYPTION) == 1)
                     if (connsm->enc_data.tx_encrypted) {
                         ++connsm->enc_data.tx_pkt_cntr;
                     }
@@ -2789,7 +2790,7 @@ chk_rx_terminate_ind:
         } else {
             /* A slave always replies */
             reply = 1;
-#if (BLE_LL_CFG_FEAT_LE_ENCRYPTION == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LE_ENCRYPTION) == 1)
             if (is_ctrl && (opcode == BLE_LL_CTRL_PAUSE_ENC_RSP)) {
                 connsm->enc_data.enc_state = CONN_ENC_S_UNENCRYPTED;
             }
@@ -2851,7 +2852,7 @@ ble_ll_conn_enqueue_pkt(struct ble_ll_conn_sm *connsm, 
struct os_mbuf *om,
     }
 
     lifo = 0;
-#if (BLE_LL_CFG_FEAT_LE_ENCRYPTION == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LE_ENCRYPTION) == 1)
     if (connsm->enc_data.enc_state > CONN_ENC_S_ENCRYPTED) {
         uint8_t llid;
 
@@ -3125,17 +3126,17 @@ ble_ll_conn_module_reset(void)
     conn_params = &g_ble_ll_conn_params;
     max_phy_pyld = ble_phy_max_data_pdu_pyld();
 
-    maxbytes = min(NIMBLE_OPT_LL_SUPP_MAX_RX_BYTES, max_phy_pyld);
+    maxbytes = min(MYNEWT_VAL(BLE_LL_SUPP_MAX_RX_BYTES), max_phy_pyld);
     conn_params->supp_max_rx_octets = maxbytes;
     conn_params->supp_max_rx_time =
         BLE_TX_DUR_USECS_M(maxbytes + BLE_LL_DATA_MIC_LEN);
 
-    maxbytes = min(NIMBLE_OPT_LL_SUPP_MAX_TX_BYTES, max_phy_pyld);
+    maxbytes = min(MYNEWT_VAL(BLE_LL_SUPP_MAX_TX_BYTES), max_phy_pyld);
     conn_params->supp_max_tx_octets = maxbytes;
     conn_params->supp_max_tx_time =
         BLE_TX_DUR_USECS_M(maxbytes + BLE_LL_DATA_MIC_LEN);
 
-    maxbytes = min(NIMBLE_OPT_LL_CONN_INIT_MAX_TX_BYTES, max_phy_pyld);
+    maxbytes = min(MYNEWT_VAL(BLE_LL_CONN_INIT_MAX_TX_BYTES), max_phy_pyld);
     conn_params->conn_init_max_tx_octets = maxbytes;
     conn_params->conn_init_max_tx_time =
         BLE_TX_DUR_USECS_M(maxbytes + BLE_LL_DATA_MIC_LEN);
@@ -3171,7 +3172,7 @@ ble_ll_conn_module_init(void)
      * the specification allows a handle of zero; we just avoid using it.
      */
     connsm = &g_ble_ll_conn_sm[0];
-    for (i = 0; i < NIMBLE_OPT_MAX_CONNECTIONS; ++i) {
+    for (i = 0; i < MYNEWT_VAL(BLE_MAX_CONNECTIONS); ++i) {
 
         memset(connsm, 0, sizeof(struct ble_ll_conn_sm));
         connsm->conn_handle = i + 1;

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/d98ddc1c/net/nimble/controller/src/ble_ll_conn_hci.c
----------------------------------------------------------------------
diff --git a/net/nimble/controller/src/ble_ll_conn_hci.c 
b/net/nimble/controller/src/ble_ll_conn_hci.c
index f653ca6..3f3b77c 100644
--- a/net/nimble/controller/src/ble_ll_conn_hci.c
+++ b/net/nimble/controller/src/ble_ll_conn_hci.c
@@ -20,6 +20,7 @@
 #include <stdint.h>
 #include <string.h>
 #include <assert.h>
+#include "syscfg/syscfg.h"
 #include "bsp/bsp.h"
 #include "os/os.h"
 #include "nimble/ble.h"
@@ -228,7 +229,7 @@ ble_ll_conn_num_comp_pkts_event_send(void)
 
     /* Check rate limit */
     if ((uint32_t)(g_ble_ll_next_num_comp_pkt_evt - os_time_get()) <
-         NIMBLE_OPT_NUM_COMP_PKT_RATE) {
+         MYNEWT_VAL(BLE_NUM_COMP_PKT_RATE)) {
         return;
     }
 
@@ -295,11 +296,11 @@ ble_ll_conn_num_comp_pkts_event_send(void)
 
     if (event_sent) {
         g_ble_ll_next_num_comp_pkt_evt = os_time_get() +
-            NIMBLE_OPT_NUM_COMP_PKT_RATE;
+            MYNEWT_VAL(BLE_NUM_COMP_PKT_RATE);
     }
 }
 
-#if (BLE_LL_CFG_FEAT_LE_PING == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LE_PING) == 1)
 /**
  * Send a authenticated payload timeout event
  *
@@ -928,7 +929,7 @@ ble_ll_conn_hci_set_chan_class(uint8_t *cmdbuf)
     return rc;
 }
 
-#if (BLE_LL_CFG_FEAT_DATA_LEN_EXT == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_DATA_LEN_EXT) == 1)
 int
 ble_ll_conn_hci_set_data_len(uint8_t *cmdbuf, uint8_t *rspbuf, uint8_t *rsplen)
 {
@@ -969,7 +970,7 @@ ble_ll_conn_hci_set_data_len(uint8_t *cmdbuf, uint8_t 
*rspbuf, uint8_t *rsplen)
 }
 #endif
 
-#if (BLE_LL_CFG_FEAT_LE_ENCRYPTION == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LE_ENCRYPTION) == 1)
 /**
  * LE start encrypt command
  *
@@ -1062,7 +1063,7 @@ ltk_key_cmd_complete:
 }
 #endif
 
-#if (BLE_LL_CFG_FEAT_LE_PING == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LE_PING) == 1)
 /**
  * Read authenticated payload timeout (OGF=3, OCF==0x007B)
  *

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/d98ddc1c/net/nimble/controller/src/ble_ll_conn_priv.h
----------------------------------------------------------------------
diff --git a/net/nimble/controller/src/ble_ll_conn_priv.h 
b/net/nimble/controller/src/ble_ll_conn_priv.h
index b855b22..17a5edd 100644
--- a/net/nimble/controller/src/ble_ll_conn_priv.h
+++ b/net/nimble/controller/src/ble_ll_conn_priv.h
@@ -148,7 +148,7 @@ int ble_ll_conn_hci_wr_auth_pyld_tmo(uint8_t *cmdbuf, 
uint8_t *rsp,
                                      uint8_t *rsplen);
 int ble_ll_conn_hci_rd_auth_pyld_tmo(uint8_t *cmdbuf, uint8_t *rsp,
                                      uint8_t *rsplen);
-#if (BLE_LL_CFG_FEAT_LE_PING == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LE_PING) == 1)
 void ble_ll_conn_auth_pyld_timer_start(struct ble_ll_conn_sm *connsm);
 #else
 #define ble_ll_conn_auth_pyld_timer_start(x)

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/d98ddc1c/net/nimble/controller/src/ble_ll_ctrl.c
----------------------------------------------------------------------
diff --git a/net/nimble/controller/src/ble_ll_ctrl.c 
b/net/nimble/controller/src/ble_ll_ctrl.c
index 3ba69af..1d98ed3 100644
--- a/net/nimble/controller/src/ble_ll_ctrl.c
+++ b/net/nimble/controller/src/ble_ll_ctrl.c
@@ -19,6 +19,7 @@
 #include <stdint.h>
 #include <assert.h>
 #include <string.h>
+#include "syscfg/syscfg.h"
 #include "nimble/ble.h"
 #include "nimble/nimble_opt.h"
 #include "nimble/hci_common.h"
@@ -306,7 +307,7 @@ ble_ll_ctrl_proc_unk_rsp(struct ble_ll_conn_sm *connsm, 
uint8_t *dptr)
         break;
     case BLE_LL_CTRL_PING_REQ:
         CONN_F_LE_PING_SUPP(connsm) = 0;
-#if (BLE_LL_CFG_FEAT_LE_PING == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LE_PING) == 1)
         os_callout_stop(&connsm->auth_pyld_timer.cf_c);
 #endif
         ctrl_proc = BLE_LL_CTRL_PROC_LE_PING;
@@ -346,7 +347,7 @@ ble_ll_ctrl_datalen_upd_make(struct ble_ll_conn_sm *connsm, 
uint8_t *dptr)
     htole16(dptr + 7, connsm->max_tx_time);
 }
 
-#if (BLE_LL_CFG_FEAT_LE_ENCRYPTION == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LE_ENCRYPTION) == 1)
 void
 ble_ll_calc_session_key(struct ble_ll_conn_sm *connsm)
 {
@@ -697,7 +698,7 @@ ble_ll_ctrl_rx_start_enc_rsp(struct ble_ll_conn_sm *connsm)
         /* We are encrypted */
         connsm->enc_data.enc_state = CONN_ENC_S_ENCRYPTED;
         ble_ll_ctrl_proc_stop(connsm, BLE_LL_CTRL_PROC_ENCRYPT);
-#if (BLE_LL_CFG_FEAT_LE_PING == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LE_PING) == 1)
         ble_ll_conn_auth_pyld_timer_start(connsm);
 #endif
         rc = BLE_ERR_MAX;
@@ -777,7 +778,7 @@ ble_ll_ctrl_version_ind_make(struct ble_ll_conn_sm *connsm, 
uint8_t *pyld)
 
     /* Fill out response */
     pyld[0] = BLE_HCI_VER_BCS_4_2;
-    htole16(pyld + 1, NIMBLE_OPT_LL_MFRG_ID);
+    htole16(pyld + 1, MYNEWT_VAL(BLE_LL_MFRG_ID));
     htole16(pyld + 3, BLE_LL_SUB_VERS_NR);
 }
 
@@ -946,7 +947,7 @@ ble_ll_ctrl_rx_reject_ind(struct ble_ll_conn_sm *connsm, 
uint8_t *dptr,
             ble_ll_hci_ev_conn_update(connsm, ble_error);
         }
         break;
-#if (BLE_LL_CFG_FEAT_LE_ENCRYPTION == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LE_ENCRYPTION) == 1)
     case BLE_LL_CTRL_PROC_ENCRYPT:
         ble_ll_ctrl_proc_stop(connsm, BLE_LL_CTRL_PROC_ENCRYPT);
         ble_ll_hci_ev_encrypt_chg(connsm, ble_error);
@@ -1302,7 +1303,7 @@ ble_ll_ctrl_proc_init(struct ble_ll_conn_sm *connsm, int 
ctrl_proc)
             opcode = BLE_LL_CTRL_LENGTH_REQ;
             ble_ll_ctrl_datalen_upd_make(connsm, dptr);
             break;
-#if (BLE_LL_CFG_FEAT_LE_ENCRYPTION == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LE_ENCRYPTION) == 1)
         /* XXX: deal with already encrypted connection.*/
         case BLE_LL_CTRL_PROC_ENCRYPT:
             /* If we are already encrypted we do pause procedure */
@@ -1517,7 +1518,7 @@ ble_ll_ctrl_rx_pdu(struct ble_ll_conn_sm *connsm, struct 
os_mbuf *om)
     uint8_t *dptr;
     uint8_t *rspbuf;
     uint8_t *rspdata;
-#if (BLE_LL_CFG_FEAT_LE_ENCRYPTION == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LE_ENCRYPTION) == 1)
     int restart_encryption;
 #endif
 
@@ -1562,7 +1563,7 @@ ble_ll_ctrl_rx_pdu(struct ble_ll_conn_sm *connsm, struct 
os_mbuf *om)
         goto rx_malformed_ctrl;
     }
 
-#if (BLE_LL_CFG_FEAT_LE_ENCRYPTION == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LE_ENCRYPTION) == 1)
     restart_encryption = 0;
 #endif
 
@@ -1673,7 +1674,7 @@ ble_ll_ctrl_rx_pdu(struct ble_ll_conn_sm *connsm, struct 
os_mbuf *om)
     case BLE_LL_CTRL_SLAVE_FEATURE_REQ:
         rsp_opcode = ble_ll_ctrl_rx_feature_req(connsm, dptr, rspbuf, opcode);
         break;
-#if (BLE_LL_CFG_FEAT_LE_ENCRYPTION == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LE_ENCRYPTION) == 1)
     case BLE_LL_CTRL_ENC_REQ:
         rsp_opcode = ble_ll_ctrl_rx_enc_req(connsm, dptr, rspdata);
         break;
@@ -1733,7 +1734,7 @@ ll_ctrl_send_rsp:
         }
         len = g_ble_ll_ctrl_pkt_lengths[rsp_opcode] + 1;
         ble_ll_conn_enqueue_pkt(connsm, om, BLE_LL_LLID_CTRL, len);
-#if (BLE_LL_CFG_FEAT_LE_ENCRYPTION == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LE_ENCRYPTION) == 1)
         if (restart_encryption) {
             /* XXX: what happens if this fails? Meaning we cant allocate
                mbuf? */
@@ -1822,18 +1823,18 @@ ble_ll_ctrl_tx_done(struct os_mbuf *txpdu, struct 
ble_ll_conn_sm *connsm)
             connsm->reject_reason = txpdu->om_data[2];
             connsm->csmflags.cfbit.host_expects_upd_event = 1;
         }
-#if (BLE_LL_CFG_FEAT_LE_ENCRYPTION == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LE_ENCRYPTION) == 1)
         if (connsm->enc_data.enc_state > CONN_ENC_S_ENCRYPTED) {
             connsm->enc_data.enc_state = CONN_ENC_S_UNENCRYPTED;
         }
 #endif
         break;
     case BLE_LL_CTRL_REJECT_IND:
-#if (BLE_LL_CFG_FEAT_LE_ENCRYPTION == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LE_ENCRYPTION) == 1)
         connsm->enc_data.enc_state = CONN_ENC_S_UNENCRYPTED;
 #endif
         break;
-#if (BLE_LL_CFG_FEAT_LE_ENCRYPTION == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LE_ENCRYPTION) == 1)
     case BLE_LL_CTRL_PAUSE_ENC_REQ:
         /* note: fall-through intentional */
     case BLE_LL_CTRL_ENC_REQ:

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/d98ddc1c/net/nimble/controller/src/ble_ll_hci.c
----------------------------------------------------------------------
diff --git a/net/nimble/controller/src/ble_ll_hci.c 
b/net/nimble/controller/src/ble_ll_hci.c
index 352dda2..401aacc 100644
--- a/net/nimble/controller/src/ble_ll_hci.c
+++ b/net/nimble/controller/src/ble_ll_hci.c
@@ -19,6 +19,7 @@
 #include <stdint.h>
 #include <assert.h>
 #include <string.h>
+#include "syscfg/syscfg.h"
 #include "os/os.h"
 #include "nimble/ble.h"
 #include "nimble/nimble_opt.h"
@@ -103,7 +104,7 @@ ble_ll_hci_send_noop(void)
     return rc;
 }
 
-#if (BLE_LL_CFG_FEAT_LE_ENCRYPTION == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LE_ENCRYPTION) == 1)
 /**
  * LE encrypt command
  *
@@ -171,7 +172,7 @@ ble_ll_hci_rd_local_version(uint8_t *rspbuf, uint8_t 
*rsplen)
 
     hci_rev = 0;
     lmp_subver = 0;
-    mfrg = NIMBLE_OPT_LL_MFRG_ID;
+    mfrg = MYNEWT_VAL(BLE_LL_MFRG_ID);
 
     /* Place the data packet length and number of packets in the buffer */
     rspbuf[0] = BLE_HCI_VER_BCS_4_2;
@@ -281,7 +282,7 @@ ble_ll_hci_le_read_bufsize(uint8_t *rspbuf, uint8_t *rsplen)
     return BLE_ERR_SUCCESS;
 }
 
-#if (BLE_LL_CFG_FEAT_DATA_LEN_EXT == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_DATA_LEN_EXT) == 1)
 /**
  * HCI write suggested default data length command.
  *
@@ -615,7 +616,7 @@ ble_ll_hci_le_cmd_proc(uint8_t *cmdbuf, uint16_t ocf, 
uint8_t *rsplen)
     case BLE_HCI_OCF_LE_RD_REM_FEAT:
         rc = ble_ll_conn_hci_read_rem_features(cmdbuf);
         break;
-#if (BLE_LL_CFG_FEAT_LE_ENCRYPTION == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LE_ENCRYPTION) == 1)
     case BLE_HCI_OCF_LE_ENCRYPT:
         rc = ble_ll_hci_le_encrypt(cmdbuf, rspbuf, rsplen);
         break;
@@ -623,7 +624,7 @@ ble_ll_hci_le_cmd_proc(uint8_t *cmdbuf, uint16_t ocf, 
uint8_t *rsplen)
     case BLE_HCI_OCF_LE_RAND:
         rc = ble_ll_hci_le_rand(rspbuf, rsplen);
         break;
-#if (BLE_LL_CFG_FEAT_LE_ENCRYPTION == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LE_ENCRYPTION) == 1)
     case BLE_HCI_OCF_LE_START_ENCRYPT:
         rc = ble_ll_conn_hci_le_start_encrypt(cmdbuf);
         break;
@@ -642,7 +643,7 @@ ble_ll_hci_le_cmd_proc(uint8_t *cmdbuf, uint16_t ocf, 
uint8_t *rsplen)
     case BLE_HCI_OCF_LE_REM_CONN_PARAM_RR:
         rc = ble_ll_conn_hci_param_reply(cmdbuf, 1);
         break;
-#if (BLE_LL_CFG_FEAT_DATA_LEN_EXT == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_DATA_LEN_EXT) == 1)
     case BLE_HCI_OCF_LE_SET_DATA_LEN:
         rc = ble_ll_conn_hci_set_data_len(cmdbuf, rspbuf, rsplen);
         break;
@@ -653,7 +654,7 @@ ble_ll_hci_le_cmd_proc(uint8_t *cmdbuf, uint16_t ocf, 
uint8_t *rsplen)
         rc = ble_ll_hci_le_wr_sugg_data_len(cmdbuf);
         break;
 #endif
-#if (BLE_LL_CFG_FEAT_LL_PRIVACY == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LL_PRIVACY) == 1)
     case BLE_HCI_OCF_LE_ADD_RESOLV_LIST :
         rc = ble_ll_resolv_list_add(cmdbuf);
         break;
@@ -759,7 +760,7 @@ ble_ll_hci_ctlr_bb_cmd_proc(uint8_t *cmdbuf, uint16_t ocf, 
uint8_t *rsplen)
 {
     int rc;
     uint8_t len;
-#if (BLE_LL_CFG_FEAT_LE_PING == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LE_PING) == 1)
     uint8_t *rspbuf;
 #endif
 
@@ -771,7 +772,7 @@ ble_ll_hci_ctlr_bb_cmd_proc(uint8_t *cmdbuf, uint16_t ocf, 
uint8_t *rsplen)
 
     /* Move past HCI command header */
     cmdbuf += BLE_HCI_CMD_HDR_LEN;
-#if (BLE_LL_CFG_FEAT_LE_PING == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LE_PING) == 1)
     rspbuf = cmdbuf + BLE_HCI_EVENT_CMD_COMPLETE_MIN_LEN;
 #endif
 
@@ -793,7 +794,7 @@ ble_ll_hci_ctlr_bb_cmd_proc(uint8_t *cmdbuf, uint16_t ocf, 
uint8_t *rsplen)
             rc = BLE_ERR_SUCCESS;
         }
         break;
-#if (BLE_LL_CFG_FEAT_LE_PING == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LE_PING) == 1)
     case BLE_HCI_OCF_CB_RD_AUTH_PYLD_TMO:
         rc = ble_ll_conn_hci_wr_auth_pyld_tmo(cmdbuf, rspbuf, rsplen);
         break;

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/d98ddc1c/net/nimble/controller/src/ble_ll_hci_ev.c
----------------------------------------------------------------------
diff --git a/net/nimble/controller/src/ble_ll_hci_ev.c 
b/net/nimble/controller/src/ble_ll_hci_ev.c
index 2548bdc..9b8e315 100644
--- a/net/nimble/controller/src/ble_ll_hci_ev.c
+++ b/net/nimble/controller/src/ble_ll_hci_ev.c
@@ -19,6 +19,7 @@
 #include <stdint.h>
 #include <assert.h>
 #include <string.h>
+#include "syscfg/syscfg.h"
 #include "nimble/ble.h"
 #include "nimble/hci_common.h"
 #include "nimble/ble_hci_trans.h"
@@ -111,7 +112,7 @@ ble_ll_hci_ev_conn_update(struct ble_ll_conn_sm *connsm, 
uint8_t status)
     }
 }
 
-#if (BLE_LL_CFG_FEAT_LE_ENCRYPTION == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LE_ENCRYPTION) == 1)
 void
 ble_ll_hci_ev_encrypt_chg(struct ble_ll_conn_sm *connsm, uint8_t status)
 {

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/d98ddc1c/net/nimble/controller/src/ble_ll_rand.c
----------------------------------------------------------------------
diff --git a/net/nimble/controller/src/ble_ll_rand.c 
b/net/nimble/controller/src/ble_ll_rand.c
index 8d26f8d..1306138 100644
--- a/net/nimble/controller/src/ble_ll_rand.c
+++ b/net/nimble/controller/src/ble_ll_rand.c
@@ -20,6 +20,7 @@
 #include <stdint.h>
 #include <assert.h>
 #include <string.h>
+#include "syscfg/syscfg.h"
 #include "os/os.h"
 #include "nimble/ble.h"
 #include "nimble/nimble_opt.h"
@@ -35,10 +36,10 @@ struct ble_ll_rnum_data
 };
 
 struct ble_ll_rnum_data g_ble_ll_rnum_data;
-uint8_t g_ble_ll_rnum_buf[NIMBLE_OPT_LL_RNG_BUFSIZE];
+uint8_t g_ble_ll_rnum_buf[MYNEWT_VAL(BLE_LL_RNG_BUFSIZE)];
 
 #define IS_RNUM_BUF_END(x)  \
-    (x == &g_ble_ll_rnum_buf[NIMBLE_OPT_LL_RNG_BUFSIZE - 1])
+    (x == &g_ble_ll_rnum_buf[MYNEWT_VAL(BLE_LL_RNG_BUFSIZE) - 1])
 
 void
 ble_ll_rand_sample(uint8_t rnum)
@@ -46,7 +47,7 @@ ble_ll_rand_sample(uint8_t rnum)
     os_sr_t sr;
 
     OS_ENTER_CRITICAL(sr);
-    if (g_ble_ll_rnum_data.rnd_size < NIMBLE_OPT_LL_RNG_BUFSIZE) {
+    if (g_ble_ll_rnum_data.rnd_size < MYNEWT_VAL(BLE_LL_RNG_BUFSIZE)) {
         ++g_ble_ll_rnum_data.rnd_size;
         g_ble_ll_rnum_data.rnd_in[0] = rnum;
         if (IS_RNUM_BUF_END(g_ble_ll_rnum_data.rnd_in)) {
@@ -94,7 +95,7 @@ ble_ll_rand_data_get(uint8_t *buf, uint8_t len)
         /* Wait till bytes are in buffer. */
         if (len) {
             while ((g_ble_ll_rnum_data.rnd_size < len) &&
-                   (g_ble_ll_rnum_data.rnd_size < NIMBLE_OPT_LL_RNG_BUFSIZE)) {
+                   (g_ble_ll_rnum_data.rnd_size < 
MYNEWT_VAL(BLE_LL_RNG_BUFSIZE))) {
                 /* Spin here */
             }
         }
@@ -138,7 +139,7 @@ int
 ble_ll_rand_start(void)
 {
     /* Start the generation of numbers if we are not full */
-    if (g_ble_ll_rnum_data.rnd_size < NIMBLE_OPT_LL_RNG_BUFSIZE) {
+    if (g_ble_ll_rnum_data.rnd_size < MYNEWT_VAL(BLE_LL_RNG_BUFSIZE)) {
         ble_hw_rng_start();
     }
     return 0;

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/d98ddc1c/net/nimble/controller/src/ble_ll_resolv.c
----------------------------------------------------------------------
diff --git a/net/nimble/controller/src/ble_ll_resolv.c 
b/net/nimble/controller/src/ble_ll_resolv.c
index 4d91685..608da8c 100644
--- a/net/nimble/controller/src/ble_ll_resolv.c
+++ b/net/nimble/controller/src/ble_ll_resolv.c
@@ -19,6 +19,7 @@
 #include <stdint.h>
 #include <assert.h>
 #include <string.h>
+#include "syscfg/syscfg.h"
 #include "os/os.h"
 #include "nimble/ble.h"
 #include "nimble/nimble_opt.h"
@@ -30,7 +31,7 @@
 #include "controller/ble_hw.h"
 #include "ble_ll_conn_priv.h"
 
-#if (BLE_LL_CFG_FEAT_LL_PRIVACY == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LL_PRIVACY) == 1)
 
 /* Flag denoting whether or not address translation is enabled. */
 uint8_t g_ble_ll_addr_res_enabled;
@@ -38,7 +39,7 @@ uint8_t g_ble_ll_resolv_list_size;
 uint8_t g_ble_ll_resolv_list_cnt;
 uint32_t g_ble_ll_resolv_rpa_tmo;
 
-struct ble_ll_resolv_entry 
g_ble_ll_resolv_list[NIMBLE_OPT_LL_RESOLV_LIST_SIZE];
+struct ble_ll_resolv_entry 
g_ble_ll_resolv_list[MYNEWT_VAL(BLE_LL_RESOLV_LIST_SIZE)];
 
 /**
  * Called to determine if a change is allowed to the resolving list at this
@@ -457,12 +458,12 @@ ble_ll_resolv_init(void)
     g_ble_ll_resolv_rpa_tmo = 15 * 60 * OS_TICKS_PER_SEC;
 
     hw_size = ble_hw_resolv_list_size();
-    if (hw_size > NIMBLE_OPT_LL_RESOLV_LIST_SIZE) {
-        hw_size = NIMBLE_OPT_LL_RESOLV_LIST_SIZE;
+    if (hw_size > MYNEWT_VAL(BLE_LL_RESOLV_LIST_SIZE)) {
+        hw_size = MYNEWT_VAL(BLE_LL_RESOLV_LIST_SIZE);
     }
     g_ble_ll_resolv_list_size = hw_size;
 
 }
 
-#endif  /* if BLE_LL_CFG_FEAT_LL_PRIVACY == 1 */
+#endif  /* if MYNEWT_VAL(BLE_LL_CFG_FEAT_LL_PRIVACY) == 1 */
 

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/d98ddc1c/net/nimble/controller/src/ble_ll_rng.c
----------------------------------------------------------------------
diff --git a/net/nimble/controller/src/ble_ll_rng.c 
b/net/nimble/controller/src/ble_ll_rng.c
index d93c420..5f5728b 100644
--- a/net/nimble/controller/src/ble_ll_rng.c
+++ b/net/nimble/controller/src/ble_ll_rng.c
@@ -34,7 +34,7 @@ struct ble_ll_rnum_data
     uint8_t _pad;
 };
 
-#if (BLE_LL_CFG_FEAT_LE_ENCRYPTION == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LE_ENCRYPTION) == 1)
 int
 ble_ll_rng_init(void)
 {

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/d98ddc1c/net/nimble/controller/src/ble_ll_scan.c
----------------------------------------------------------------------
diff --git a/net/nimble/controller/src/ble_ll_scan.c 
b/net/nimble/controller/src/ble_ll_scan.c
index 64c3990..fb73ddd 100644
--- a/net/nimble/controller/src/ble_ll_scan.c
+++ b/net/nimble/controller/src/ble_ll_scan.c
@@ -20,6 +20,7 @@
 #include <stdint.h>
 #include <string.h>
 #include <assert.h>
+#include "syscfg/syscfg.h"
 #include "bsp/bsp.h"
 #include "os/os.h"
 #include "nimble/ble.h"
@@ -50,10 +51,10 @@
  */
 
 /* Dont allow more than 255 of these entries */
-#if NIMBLE_OPT_LL_NUM_SCAN_DUP_ADVS > 255
+#if MYNEWT_VAL(BLE_LL_NUM_SCAN_DUP_ADVS) > 255
     #error "Cannot have more than 255 duplicate entries!"
 #endif
-#if NIMBLE_OPT_LL_NUM_SCAN_RSP_ADVS > 255
+#if MYNEWT_VAL(BLE_LL_NUM_SCAN_RSP_ADVS) > 255
     #error "Cannot have more than 255 scan response entries!"
 #endif
 
@@ -79,12 +80,12 @@ struct ble_ll_scan_advertisers
 /* Contains list of advertisers that we have heard scan responses from */
 static uint8_t g_ble_ll_scan_num_rsp_advs;
 struct ble_ll_scan_advertisers
-g_ble_ll_scan_rsp_advs[NIMBLE_OPT_LL_NUM_SCAN_RSP_ADVS];
+g_ble_ll_scan_rsp_advs[MYNEWT_VAL(BLE_LL_NUM_SCAN_RSP_ADVS)];
 
 /* Used to filter duplicate advertising events to host */
 static uint8_t g_ble_ll_scan_num_dup_advs;
 struct ble_ll_scan_advertisers
-g_ble_ll_scan_dup_advs[NIMBLE_OPT_LL_NUM_SCAN_DUP_ADVS];
+g_ble_ll_scan_dup_advs[MYNEWT_VAL(BLE_LL_NUM_SCAN_DUP_ADVS)];
 
 /* See Vol 6 Part B Section 4.4.3.2. Active scanning backoff */
 static void
@@ -136,7 +137,7 @@ ble_ll_scan_req_pdu_make(struct ble_ll_scan_sm *scansm, 
uint8_t *adv_addr,
     uint8_t     pdu_type;
     uint8_t     *scana;
     struct os_mbuf *m;
-#if (BLE_LL_CFG_FEAT_LL_PRIVACY == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LL_PRIVACY) == 1)
     uint8_t rpa[BLE_DEV_ADDR_LEN];
     struct ble_ll_resolv_entry *rl;
 #endif
@@ -159,7 +160,7 @@ ble_ll_scan_req_pdu_make(struct ble_ll_scan_sm *scansm, 
uint8_t *adv_addr,
         scana = g_random_addr;
     }
 
-#if (BLE_LL_CFG_FEAT_LL_PRIVACY == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LL_PRIVACY) == 1)
     if (scansm->own_addr_type > BLE_HCI_ADV_OWN_ADDR_RANDOM) {
         rl = NULL;
         if (ble_ll_is_rpa(adv_addr, adv_addr_type)) {
@@ -280,7 +281,7 @@ ble_ll_scan_add_dup_adv(uint8_t *addr, uint8_t txadd, 
uint8_t subev)
     if (!adv) {
         /* XXX: for now, if we dont have room, just leave */
         num_advs = g_ble_ll_scan_num_dup_advs;
-        if (num_advs == NIMBLE_OPT_LL_NUM_SCAN_DUP_ADVS) {
+        if (num_advs == MYNEWT_VAL(BLE_LL_NUM_SCAN_DUP_ADVS)) {
             return;
         }
 
@@ -347,7 +348,7 @@ ble_ll_scan_add_scan_rsp_adv(uint8_t *addr, uint8_t txadd)
 
     /* XXX: for now, if we dont have room, just leave */
     num_advs = g_ble_ll_scan_num_rsp_advs;
-    if (num_advs == NIMBLE_OPT_LL_NUM_SCAN_RSP_ADVS) {
+    if (num_advs == MYNEWT_VAL(BLE_LL_NUM_SCAN_RSP_ADVS)) {
         return;
     }
 
@@ -569,11 +570,11 @@ ble_ll_scan_start(struct ble_ll_scan_sm *scansm, uint8_t 
chan)
      */
     ble_phy_set_txend_cb(NULL, NULL);
 
-#if (BLE_LL_CFG_FEAT_LE_ENCRYPTION == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LE_ENCRYPTION) == 1)
     ble_phy_encrypt_disable();
 #endif
 
-#if (BLE_LL_CFG_FEAT_LL_PRIVACY == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LL_PRIVACY) == 1)
     if (ble_ll_resolv_enabled()) {
         ble_phy_resolv_list_enable();
     } else {
@@ -972,7 +973,7 @@ ble_ll_scan_rx_isr_end(struct os_mbuf *rxpdu, uint8_t crcok)
     resolved = 0;
 
     index = -1;
-#if (BLE_LL_CFG_FEAT_LL_PRIVACY == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LL_PRIVACY) == 1)
     if (ble_ll_is_rpa(peer, peer_addr_type) && ble_ll_resolv_enabled()) {
         index = ble_hw_resolv_list_match();
         if (index >= 0) {
@@ -1133,7 +1134,7 @@ ble_ll_scan_rx_pkt_in(uint8_t ptype, uint8_t *rxbuf, 
struct ble_mbuf_hdr *hdr)
     ident_addr_type = txadd;
 
     scansm = &g_ble_ll_scan_sm;
-#if (BLE_LL_CFG_FEAT_LL_PRIVACY == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LL_PRIVACY) == 1)
     index = scansm->scan_rpa_index;
     if (index >= 0) {
         ident_addr = g_ble_ll_resolv_list[index].rl_identity_addr;

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/d98ddc1c/net/nimble/controller/src/ble_ll_supp_cmd.c
----------------------------------------------------------------------
diff --git a/net/nimble/controller/src/ble_ll_supp_cmd.c 
b/net/nimble/controller/src/ble_ll_supp_cmd.c
index 738ee9c..3344f8e 100644
--- a/net/nimble/controller/src/ble_ll_supp_cmd.c
+++ b/net/nimble/controller/src/ble_ll_supp_cmd.c
@@ -106,7 +106,7 @@
 #define BLE_SUPP_CMD_LE_SET_HOST_CHAN_CLASS (1 << 3)
 #define BLE_SUPP_CMD_LE_RD_CHAN_MAP         (1 << 4)
 #define BLE_SUPP_CMD_LE_RD_REM_USED_FEAT    (1 << 5)
-#if (BLE_LL_CFG_FEAT_LE_ENCRYPTION == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LE_ENCRYPTION) == 1)
 #define BLE_SUPP_CMD_LE_ENCRYPT             (1 << 6)
 #else
 #define BLE_SUPP_CMD_LE_ENCRYPT             (0 << 6)
@@ -126,7 +126,7 @@
 )
 
 /* Octet 28 */
-#if (BLE_LL_CFG_FEAT_LE_ENCRYPTION == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LE_ENCRYPTION) == 1)
 #define BLE_SUPP_CMD_LE_START_ENCRYPT       (1 << 0)
 #else
 #define BLE_SUPP_CMD_LE_START_ENCRYPT       (0 << 0)

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/d98ddc1c/net/nimble/controller/src/ble_ll_whitelist.c
----------------------------------------------------------------------
diff --git a/net/nimble/controller/src/ble_ll_whitelist.c 
b/net/nimble/controller/src/ble_ll_whitelist.c
index f3af569..b92b157 100644
--- a/net/nimble/controller/src/ble_ll_whitelist.c
+++ b/net/nimble/controller/src/ble_ll_whitelist.c
@@ -19,6 +19,7 @@
 #include <stdint.h>
 #include <assert.h>
 #include <string.h>
+#include "syscfg/syscfg.h"
 #include "os/os.h"
 #include "nimble/ble.h"
 #include "nimble/nimble_opt.h"
@@ -30,8 +31,8 @@
 #include "controller/ble_hw.h"
 #include "hal/hal_cputime.h"
 
-#if (NIMBLE_OPT_LL_WHITELIST_SIZE < BLE_HW_WHITE_LIST_SIZE)
-#define BLE_LL_WHITELIST_SIZE       NIMBLE_OPT_LL_WHITELIST_SIZE
+#if (MYNEWT_VAL(BLE_LL_WHITELIST_SIZE) < BLE_HW_WHITE_LIST_SIZE)
+#define BLE_LL_WHITELIST_SIZE       MYNEWT_VAL(BLE_LL_WHITELIST_SIZE)
 #else
 #define BLE_LL_WHITELIST_SIZE       BLE_HW_WHITE_LIST_SIZE
 #endif

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/d98ddc1c/net/nimble/drivers/native/src/ble_hw.c
----------------------------------------------------------------------
diff --git a/net/nimble/drivers/native/src/ble_hw.c 
b/net/nimble/drivers/native/src/ble_hw.c
index bb30c53..214ad51 100644
--- a/net/nimble/drivers/native/src/ble_hw.c
+++ b/net/nimble/drivers/native/src/ble_hw.c
@@ -20,6 +20,7 @@
 #include <stdint.h>
 #include <assert.h>
 #include <string.h>
+#include "syscfg/syscfg.h"
 #include "os/os.h"
 #include "nimble/ble.h"
 #include "nimble/nimble_opt.h"
@@ -164,7 +165,7 @@ ble_hw_rng_read(void)
     return 0;
 }
 
-#if (BLE_LL_CFG_FEAT_LL_PRIVACY == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LL_PRIVACY) == 1)
 /**
  * Clear the resolving list
  *

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/d98ddc1c/net/nimble/drivers/native/src/ble_phy.c
----------------------------------------------------------------------
diff --git a/net/nimble/drivers/native/src/ble_phy.c 
b/net/nimble/drivers/native/src/ble_phy.c
index e2c9f25..d19e54b 100644
--- a/net/nimble/drivers/native/src/ble_phy.c
+++ b/net/nimble/drivers/native/src/ble_phy.c
@@ -19,6 +19,7 @@
 
 #include <stdint.h>
 #include <assert.h>
+#include "syscfg/syscfg.h"
 #include "os/os.h"
 #include "nimble/ble.h"             /* XXX: needed for ble mbuf header.*/
 #include "controller/ble_phy.h"
@@ -249,7 +250,7 @@ ble_phy_rx(void)
     return 0;
 }
 
-#if (BLE_LL_CFG_FEAT_LE_ENCRYPTION == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LE_ENCRYPTION) == 1)
 /**
  * Called to enable encryption at the PHY. Note that this state will persist
  * in the PHY; in other words, if you call this function you have to call
@@ -510,7 +511,7 @@ ble_phy_max_data_pdu_pyld(void)
     return BLE_LL_DATA_PDU_MAX_PYLD;
 }
 
-#if (BLE_LL_CFG_FEAT_LL_PRIVACY == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LL_PRIVACY) == 1)
 void
 ble_phy_resolv_list_enable(void)
 {

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/d98ddc1c/net/nimble/drivers/nrf51/src/ble_hw.c
----------------------------------------------------------------------
diff --git a/net/nimble/drivers/nrf51/src/ble_hw.c 
b/net/nimble/drivers/nrf51/src/ble_hw.c
index afeda82..259bd05 100644
--- a/net/nimble/drivers/nrf51/src/ble_hw.c
+++ b/net/nimble/drivers/nrf51/src/ble_hw.c
@@ -20,6 +20,7 @@
 #include <stdint.h>
 #include <assert.h>
 #include <string.h>
+#include "syscfg/syscfg.h"
 #include "os/os.h"
 #include "ble/xcvr.h"
 #include "nimble/ble.h"
@@ -38,11 +39,11 @@ static uint8_t g_ble_hw_whitelist_mask;
 ble_rng_isr_cb_t g_ble_rng_isr_cb;
 
 /* If LL privacy is enabled, allocate memory for AAR */
-#if (BLE_LL_CFG_FEAT_LL_PRIVACY == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LL_PRIVACY) == 1)
 
 /* The NRF51 supports up to 16 IRK entries */
-#if (NIMBLE_OPT_LL_RESOLV_LIST_SIZE < 16)
-#define NRF_IRK_LIST_ENTRIES    (NIMBLE_OPT_LL_RESOLV_LIST_SIZE)
+#if (MYNEWT_VAL(BLE_LL_RESOLV_LIST_SIZE) < 16)
+#define NRF_IRK_LIST_ENTRIES    (MYNEWT_VAL(BLE_LL_RESOLV_LIST_SIZE))
 #else
 #define NRF_IRK_LIST_ENTRIES    (16)
 #endif
@@ -339,7 +340,7 @@ ble_hw_rng_read(void)
     return rnum;
 }
 
-#if (BLE_LL_CFG_FEAT_LL_PRIVACY)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LL_PRIVACY))
 /**
  * Clear the resolving list
  *

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/d98ddc1c/net/nimble/drivers/nrf51/src/ble_phy.c
----------------------------------------------------------------------
diff --git a/net/nimble/drivers/nrf51/src/ble_phy.c 
b/net/nimble/drivers/nrf51/src/ble_phy.c
index 5b588bf..db6618f 100644
--- a/net/nimble/drivers/nrf51/src/ble_phy.c
+++ b/net/nimble/drivers/nrf51/src/ble_phy.c
@@ -20,6 +20,7 @@
 #include <stdint.h>
 #include <string.h>
 #include <assert.h>
+#include "syscfg/syscfg.h"
 #include "os/os.h"
 #include "bsp/cmsis_nvic.h"
 #include "nimble/ble.h"
@@ -94,7 +95,7 @@ struct ble_phy_obj g_ble_phy_data;
 /* Global transmit/receive buffer */
 static uint32_t g_ble_phy_txrx_buf[(BLE_PHY_MAX_PDU_LEN + 3) / 4];
 
-#if (BLE_LL_CFG_FEAT_LE_ENCRYPTION == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LE_ENCRYPTION) == 1)
 /* Make sure word-aligned for faster copies */
 static uint32_t g_ble_phy_enc_buf[(NRF_ENC_BUF_SIZE + 3) / 4];
 #endif
@@ -164,10 +165,10 @@ STATS_NAME_END(ble_phy_stats)
  *  bit in the NVIC just to be sure when we disable the PHY.
  */
 
-#if (BLE_LL_CFG_FEAT_LE_ENCRYPTION == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LE_ENCRYPTION) == 1)
 /* XXX: test this. only needs 43 bytes. Should just not use the macro for 
this*/
 /* Per nordic, the number of bytes needed for scratch is 16 + MAX_PKT_SIZE */
-#define NRF_ENC_SCRATCH_WORDS   (((NIMBLE_OPT_LL_MAX_PKT_SIZE + 16) + 3) / 4)
+#define NRF_ENC_SCRATCH_WORDS   (((MYNEWT_VAL(BLE_LL_MAX_PKT_SIZE) + 16) + 3) 
/ 4)
 
 uint32_t g_nrf_encrypt_scratchpad[NRF_ENC_SCRATCH_WORDS];
 
@@ -241,7 +242,7 @@ nrf_wait_disabled(void)
 static void
 ble_phy_rx_xcvr_setup(void)
 {
-#if (BLE_LL_CFG_FEAT_LE_ENCRYPTION == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LE_ENCRYPTION) == 1)
     if (g_ble_phy_data.phy_encrypted) {
         NRF_RADIO->PACKETPTR = (uint32_t)&g_ble_phy_enc_buf[0];
         NRF_CCM->INPTR = (uint32_t)&g_ble_phy_enc_buf[0];
@@ -260,7 +261,7 @@ ble_phy_rx_xcvr_setup(void)
     NRF_RADIO->PACKETPTR = (uint32_t)g_ble_phy_data.rxpdu->om_data;
 #endif
 
-#if (BLE_LL_CFG_FEAT_LL_PRIVACY == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LL_PRIVACY) == 1)
     if (g_ble_phy_data.phy_privacy) {
         NRF_RADIO->PCNF0 = (6 << RADIO_PCNF0_LFLEN_Pos) |
                            (2 << RADIO_PCNF0_S1LEN_Pos) |
@@ -330,7 +331,7 @@ ble_phy_tx_end_isr(void)
     NRF_RADIO->EVENTS_END = 0;
     wfr_time = NRF_RADIO->SHORTS;
 
-#if (BLE_LL_CFG_FEAT_LE_ENCRYPTION == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LE_ENCRYPTION) == 1)
     /*
      * XXX: not sure what to do. We had a HW error during transmission.
      * For now I just count a stat but continue on like all is good.
@@ -382,7 +383,7 @@ static void
 ble_phy_rx_end_isr(void)
 {
     int rc;
-#if (BLE_LL_CFG_FEAT_LE_ENCRYPTION == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LE_ENCRYPTION) == 1)
     uint8_t *dptr;
 #endif
     uint8_t crcok;
@@ -400,7 +401,7 @@ ble_phy_rx_end_isr(void)
     ble_hdr = BLE_MBUF_HDR_PTR(g_ble_phy_data.rxpdu);
     assert(NRF_RADIO->EVENTS_RSSIEND != 0);
     ble_hdr->rxinfo.rssi = -1 * NRF_RADIO->RSSISAMPLE;
-#if (BLE_LL_CFG_FEAT_LE_ENCRYPTION == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LE_ENCRYPTION) == 1)
     dptr = g_ble_phy_data.rxpdu->om_data;
 #endif
     /* Count PHY crc errors and valid packets */
@@ -410,7 +411,7 @@ ble_phy_rx_end_isr(void)
     } else {
         STATS_INC(ble_phy_stats, rx_valid);
         ble_hdr->rxinfo.flags |= BLE_MBUF_HDR_F_CRC_OK;
-#if (BLE_LL_CFG_FEAT_LE_ENCRYPTION == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LE_ENCRYPTION) == 1)
         if (g_ble_phy_data.phy_encrypted) {
             /* Only set MIC failure flag if frame is not zero length */
             if ((dptr[1] != 0) && (NRF_CCM->MICSTATUS == 0)) {
@@ -445,7 +446,7 @@ ble_phy_rx_end_isr(void)
     rxpdu = g_ble_phy_data.rxpdu;
     g_ble_phy_data.rxpdu = NULL;
 
-#if (BLE_LL_CFG_FEAT_LE_ENCRYPTION == 1) || (BLE_LL_CFG_FEAT_LL_PRIVACY == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LE_ENCRYPTION) == 1) || 
(MYNEWT_VAL(BLE_LL_CFG_FEAT_LL_PRIVACY) == 1)
     if (g_ble_phy_data.phy_encrypted || g_ble_phy_data.phy_privacy) {
         /*
          * XXX: This is a horrible ugly hack to deal with the RAM S1 byte.
@@ -509,7 +510,7 @@ ble_phy_rx_start_isr(void)
         g_ble_phy_data.phy_rx_started = 1;
         NRF_RADIO->INTENSET = RADIO_INTENSET_END_Msk;
 
-#if (BLE_LL_CFG_FEAT_LL_PRIVACY == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LL_PRIVACY) == 1)
         /* Must start aar if we need to  */
         if (g_ble_phy_data.phy_privacy) {
             NRF_RADIO->EVENTS_BCMATCH = 0;
@@ -619,14 +620,14 @@ ble_phy_init(void)
     /* Captures tx/rx start in timer0 capture 1 */
     NRF_PPI->CHENSET = PPI_CHEN_CH26_Msk;
 
-#if (BLE_LL_CFG_FEAT_LE_ENCRYPTION == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LE_ENCRYPTION) == 1)
     NRF_CCM->INTENCLR = 0xffffffff;
     NRF_CCM->SHORTS = CCM_SHORTS_ENDKSGEN_CRYPT_Msk;
     NRF_CCM->EVENTS_ERROR = 0;
     memset(g_nrf_encrypt_scratchpad, 0, sizeof(g_nrf_encrypt_scratchpad));
 #endif
 
-#if (BLE_LL_CFG_FEAT_LL_PRIVACY == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LL_PRIVACY) == 1)
     g_ble_phy_data.phy_aar_scratch = 0;
     NRF_AAR->IRKPTR = (uint32_t)&g_nrf_irk_list[0];
     NRF_AAR->INTENCLR = 0xffffffff;
@@ -697,7 +698,7 @@ ble_phy_rx(void)
     return 0;
 }
 
-#if (BLE_LL_CFG_FEAT_LE_ENCRYPTION == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LE_ENCRYPTION) == 1)
 /**
  * Called to enable encryption at the PHY. Note that this state will persist
  * in the PHY; in other words, if you call this function you have to call
@@ -844,7 +845,7 @@ ble_phy_tx(struct os_mbuf *txpdu, uint8_t end_trans)
     ble_hdr = BLE_MBUF_HDR_PTR(txpdu);
     payload_len = ble_hdr->txinfo.pyld_len;
 
-#if (BLE_LL_CFG_FEAT_LE_ENCRYPTION == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LE_ENCRYPTION) == 1)
     if (g_ble_phy_data.phy_encrypted) {
         /* RAM representation has S0, LENGTH and S1 fields. (3 bytes) */
         dptr = (uint8_t *)&g_ble_phy_enc_buf[0];
@@ -864,7 +865,7 @@ ble_phy_tx(struct os_mbuf *txpdu, uint8_t end_trans)
         NRF_PPI->CHENSET = PPI_CHEN_CH24_Msk;
     } else {
 
-#if (BLE_LL_CFG_FEAT_LL_PRIVACY == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LL_PRIVACY) == 1)
         /* Reconfigure PCNF0 */
         NRF_RADIO->PCNF0 = (NRF_LFLEN_BITS << RADIO_PCNF0_LFLEN_Pos) |
                            (NRF_S0_LEN << RADIO_PCNF0_S0LEN_Pos);
@@ -879,7 +880,7 @@ ble_phy_tx(struct os_mbuf *txpdu, uint8_t end_trans)
     }
 #else
 
-#if (BLE_LL_CFG_FEAT_LL_PRIVACY == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LL_PRIVACY) == 1)
     /* Reconfigure PCNF0 */
     NRF_RADIO->PCNF0 = (NRF_LFLEN_BITS << RADIO_PCNF0_LFLEN_Pos) |
                        (NRF_S0_LEN << RADIO_PCNF0_S0LEN_Pos);
@@ -1139,14 +1140,14 @@ ble_phy_xcvr_state_get(void)
 uint8_t
 ble_phy_max_data_pdu_pyld(void)
 {
-#if (BLE_LL_CFG_FEAT_LE_ENCRYPTION == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LE_ENCRYPTION) == 1)
     return NRF_MAX_ENCRYPTED_PYLD_LEN;
 #else
     return BLE_LL_DATA_PDU_MAX_PYLD;
 #endif
 }
 
-#if (BLE_LL_CFG_FEAT_LL_PRIVACY == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LL_PRIVACY) == 1)
 void
 ble_phy_resolv_list_enable(void)
 {

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/d98ddc1c/net/nimble/drivers/nrf52/src/ble_hw.c
----------------------------------------------------------------------
diff --git a/net/nimble/drivers/nrf52/src/ble_hw.c 
b/net/nimble/drivers/nrf52/src/ble_hw.c
index 66efb08..569596c 100644
--- a/net/nimble/drivers/nrf52/src/ble_hw.c
+++ b/net/nimble/drivers/nrf52/src/ble_hw.c
@@ -20,6 +20,7 @@
 #include <stdint.h>
 #include <assert.h>
 #include <string.h>
+#include "syscfg/syscfg.h"
 #include "os/os.h"
 #include "ble/xcvr.h"
 #include "nimble/ble.h"
@@ -28,6 +29,8 @@
 #include "controller/ble_hw.h"
 #include "bsp/cmsis_nvic.h"
 
+#include "nrf52_bitfields.h"
+
 /* Total number of resolving list elements */
 #define BLE_HW_RESOLV_LIST_SIZE     (16)
 
@@ -38,11 +41,11 @@ static uint8_t g_ble_hw_whitelist_mask;
 ble_rng_isr_cb_t g_ble_rng_isr_cb;
 
 /* If LL privacy is enabled, allocate memory for AAR */
-#if (BLE_LL_CFG_FEAT_LL_PRIVACY == 1)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LL_PRIVACY) == 1)
 
 /* The NRF51 supports up to 16 IRK entries */
-#if (NIMBLE_OPT_LL_RESOLV_LIST_SIZE < 16)
-#define NRF_IRK_LIST_ENTRIES    (NIMBLE_OPT_LL_RESOLV_LIST_SIZE)
+#if (MYNEWT_VAL(BLE_LL_RESOLV_LIST_SIZE) < 16)
+#define NRF_IRK_LIST_ENTRIES    (MYNEWT_VAL(BLE_LL_RESOLV_LIST_SIZE))
 #else
 #define NRF_IRK_LIST_ENTRIES    (16)
 #endif
@@ -339,7 +342,7 @@ ble_hw_rng_read(void)
     return rnum;
 }
 
-#if (BLE_LL_CFG_FEAT_LL_PRIVACY)
+#if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LL_PRIVACY))
 /**
  * Clear the resolving list
  *


Reply via email to