[Pdbg] [PATCH 2/2] pdbg: Remove default_backend() selection
Alistair Popple
alistair at popple.id.au
Mon Jul 1 17:52:09 AEST 2019
Now that libpdbg can automatically select the correct device-tree the
pdbg application doesn't need code to do the same thing. By default
pdbg can just rely on the device-tree selected by libpdbg.
Unfortunately to maintain backwards compatibility for users explicitly
selecting a device-tree and device-tree node we need to retain most of
the code and continue linking the device-trees into the
application. It would be good to remove these one day so print a
deprecation warning when a user does explicitly select a backend.
Signed-off-by: Alistair Popple <alistair at popple.id.au>
---
src/main.c | 41 ++++++++++++++++++++++++-----------------
src/main.h | 2 +-
src/options.h | 3 ---
src/options_arm.c | 14 --------------
src/options_def.c | 5 -----
src/options_ppc.c | 5 -----
6 files changed, 25 insertions(+), 45 deletions(-)
diff --git a/src/main.c b/src/main.c
index ad40d19..7cee57b 100644
--- a/src/main.c
+++ b/src/main.c
@@ -64,7 +64,7 @@
#define THREADS_PER_CORE 8
-static enum backend backend = KERNEL;
+static enum backend backend = DEFAULT_BACKEND;
static char const *device_node;
static int i2c_addr = 0x50;
@@ -607,17 +607,6 @@ static bool target_selection(void)
return false;
}
- if (pathsel_count) {
- if (!path_target_parse(pathsel, pathsel_count))
- return false;
- }
-
- if (!path_target_present()) {
- printf("No valid targets found or specified. Try adding -p/-c/-t options to specify a target.\n");
- printf("Alternatively run 'pdbg -a probe' to get a list of all valid targets\n");
- return false;
- }
-
return true;
}
@@ -677,9 +666,7 @@ int main(int argc, char *argv[])
optcmd_cmd_t *cmd;
struct pdbg_target *target;
- backend = default_backend();
-
- if (!device_node)
+ if (backend && !device_node)
device_node = default_target(backend);
if (!parse_options(argc, argv))
@@ -690,9 +677,29 @@ int main(int argc, char *argv[])
return 1;
}
- /* Disable unselected targets */
- if (!target_selection())
+ if (backend) {
+ fprintf(stderr, "WARNING: Explicit backend selection should no longer be required\n");
+ fprintf(stderr, " and will be deprecated in a future release.\n");
+ fprintf(stderr, " Removing -b/-d command line options will remove this warning.\n");
+ fprintf(stderr, " An explicit device-tree can still be selected using the\n");
+ fprintf(stderr, " LPDBG_DTB environment variable instead.\n");
+
+ if (!target_selection())
+ return 1;
+ } else {
+ pdbg_targets_init(NULL);
+ }
+
+ if (pathsel_count) {
+ if (!path_target_parse(pathsel, pathsel_count))
+ return false;
+ }
+
+ if (!path_target_present()) {
+ printf("No valid targets found or specified. Try adding -p/-c/-t options to specify a target.\n");
+ printf("Alternatively run 'pdbg -a probe' to get a list of all valid targets\n");
return 1;
+ }
/* Probe all selected targets */
for_each_path_target(target) {
diff --git a/src/main.h b/src/main.h
index 78b4d92..1d5913e 100644
--- a/src/main.h
+++ b/src/main.h
@@ -19,7 +19,7 @@
#include <libpdbg.h>
-enum backend { FSI, I2C, KERNEL, FAKE, HOST };
+enum backend { DEFAULT_BACKEND = 0, FSI, I2C, KERNEL, FAKE, HOST };
static inline bool target_is_disabled(struct pdbg_target *target)
{
diff --git a/src/options.h b/src/options.h
index 67f15a8..cf63cbe 100644
--- a/src/options.h
+++ b/src/options.h
@@ -14,9 +14,6 @@
* limitations under the License.
*/
-/* Default backend on this platform */
-enum backend default_backend(void);
-
/* Print all possible backends on this platform */
void print_backends(FILE *stream);
diff --git a/src/options_arm.c b/src/options_arm.c
index 0dbc731..99a2d3f 100644
--- a/src/options_arm.c
+++ b/src/options_arm.c
@@ -28,20 +28,6 @@
#define CHIP_ID_P9 0xd1
#define CHIP_ID_P8P 0xd3
-enum backend default_backend(void)
-{
- int rc;
- rc = access(AMI_BMC, F_OK);
- if (rc == 0) /* AMI BMC */
- return I2C;
-
- rc = access(OPENFSI_BMC, F_OK);
- if (rc == 0) /* Kernel interface. OpenBMC */
- return KERNEL;
-
- return FAKE;
-}
-
void print_backends(FILE *stream)
{
fprintf(stream, "Valid backends: i2c kernel fsi fake\n");
diff --git a/src/options_def.c b/src/options_def.c
index 4092cea..3fef60d 100644
--- a/src/options_def.c
+++ b/src/options_def.c
@@ -17,11 +17,6 @@
#include <stdio.h>
#include "main.h"
-enum backend default_backend(void)
-{
- return FAKE;
-}
-
void print_backends(FILE *stream)
{
fprintf(stream, "Valid backends: fake\n");
diff --git a/src/options_ppc.c b/src/options_ppc.c
index 62eb7b0..82f410b 100644
--- a/src/options_ppc.c
+++ b/src/options_ppc.c
@@ -21,11 +21,6 @@
static const char p8[] = "p8";
static const char p9[] = "p9";
-enum backend default_backend(void)
-{
- return HOST;
-}
-
void print_backends(FILE *stream)
{
fprintf(stream, "Valid backends: host fake\n");
--
2.11.0
More information about the Pdbg
mailing list