Skip to content

Commit

Permalink
of/fdt: create common debugfs
Browse files Browse the repository at this point in the history
Both powerpc and microblaze have the same FDT blob in debugfs feature.
Move this to common location and remove the powerpc and microblaze
implementations. This feature could become more useful when FDT
overlay support is added.

This changes the path of the blob from "$arch/flat-device-tree" to
"device-tree/flat-device-tree".

Signed-off-by: Rob Herring <robh@kernel.org>
Tested-by: Michal Simek <michal.simek@xilinx.com>
Cc: Michal Simek <monstr@monstr.eu>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: linuxppc-dev@lists.ozlabs.org
Tested-by: Grant Likely <grant.likely@linaro.org>
Tested-by: Stephen Chivers <schivers@csc.com>
  • Loading branch information
Rob Herring committed Apr 30, 2014
1 parent c972de1 commit b0a6fb3
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 52 deletions.
31 changes: 0 additions & 31 deletions arch/microblaze/kernel/prom.c
Original file line number Diff line number Diff line change
Expand Up @@ -114,34 +114,3 @@ void __init early_init_devtree(void *params)

pr_debug(" <- early_init_devtree()\n");
}

/*******
*
* New implementation of the OF "find" APIs, return a refcounted
* object, call of_node_put() when done. The device tree and list
* are protected by a rw_lock.
*
* Note that property management will need some locking as well,
* this isn't dealt with yet.
*
*******/

#if defined(CONFIG_DEBUG_FS) && defined(DEBUG)
static struct debugfs_blob_wrapper flat_dt_blob;

static int __init export_flat_device_tree(void)
{
struct dentry *d;

flat_dt_blob.data = initial_boot_params;
flat_dt_blob.size = initial_boot_params->totalsize;

d = debugfs_create_blob("flat-device-tree", S_IFREG | S_IRUSR,
of_debugfs_root, &flat_dt_blob);
if (!d)
return 1;

return 0;
}
device_initcall(export_flat_device_tree);
#endif
21 changes: 0 additions & 21 deletions arch/powerpc/kernel/prom.c
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@
#include <linux/bitops.h>
#include <linux/export.h>
#include <linux/kexec.h>
#include <linux/debugfs.h>
#include <linux/irq.h>
#include <linux/memblock.h>
#include <linux/of.h>
Expand Down Expand Up @@ -924,23 +923,3 @@ bool arch_match_cpu_phys_id(int cpu, u64 phys_id)
{
return (int)phys_id == get_hard_smp_processor_id(cpu);
}

#if defined(CONFIG_DEBUG_FS) && defined(DEBUG)
static struct debugfs_blob_wrapper flat_dt_blob;

static int __init export_flat_device_tree(void)
{
struct dentry *d;

flat_dt_blob.data = initial_boot_params;
flat_dt_blob.size = be32_to_cpu(initial_boot_params->totalsize);

d = debugfs_create_blob("flat-device-tree", S_IFREG | S_IRUSR,
powerpc_debugfs_root, &flat_dt_blob);
if (!d)
return 1;

return 0;
}
__initcall(export_flat_device_tree);
#endif
24 changes: 24 additions & 0 deletions drivers/of/fdt.c
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
#include <linux/errno.h>
#include <linux/slab.h>
#include <linux/libfdt.h>
#include <linux/debugfs.h>

#include <asm/setup.h> /* for COMMAND_LINE_SIZE */
#include <asm/page.h>
Expand Down Expand Up @@ -916,4 +917,27 @@ void __init unflatten_and_copy_device_tree(void)
unflatten_device_tree();
}

#if defined(CONFIG_DEBUG_FS) && defined(DEBUG)
static struct debugfs_blob_wrapper flat_dt_blob;

static int __init of_flat_dt_debugfs_export_fdt(void)
{
struct dentry *d = debugfs_create_dir("device-tree", NULL);

if (!d)
return -ENOENT;

flat_dt_blob.data = initial_boot_params;
flat_dt_blob.size = fdt_totalsize(initial_boot_params);

d = debugfs_create_blob("flat-device-tree", S_IFREG | S_IRUSR,
d, &flat_dt_blob);
if (!d)
return -ENOENT;

return 0;
}
module_init(of_flat_dt_debugfs_export_fdt);
#endif

#endif /* CONFIG_OF_EARLY_FLATTREE */

0 comments on commit b0a6fb3

Please sign in to comment.