Changeset e731b0d in mainline for boot/genarch/ofw_tree.h


Ignore:
Timestamp:
2009-08-20T16:58:55Z (16 years ago)
Author:
Martin Decky <martin@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
b9c7425
Parents:
a11099f
Message:

make ppc32 OFW usage on par with sparc64, make appropriate modifications elsewhere

  • introduce ofw_tree_walk_by_device_type() to gather all OFW devices of a given type
  • ppc32 uses canonized OFW tree, mac-io and display devices are detected in kernel (not by the boot loader) by means of device type
  • various busses (PCI, EBUS, etc.) stay sparc64 specific for now
  • boot memcpy() is defined in a common way
  • BALLOC_MAX_SIZE is platform-dependent
  • ppc32 and sparc64 boot loaders cleanup (removal of obsolete stuff, data is not passed by global variables if not necessary, etc.)
  • balloc and OFW tree canonizer have now a provision to support different mapping of the data during boot time and kernel run-time
  • OFW tree canonizer uses balloc_rebase() to store pointers suitable for access during kernel run-time (with potentially different memory mapping than during boot time)
File:
1 edited

Legend:

Unmodified
Added
Removed
  • boot/genarch/ofw_tree.h

    ra11099f re731b0d  
    3333#include <ofw.h>
    3434
    35 #define OFW_TREE_PROPERTY_MAX_NAMELEN   32
    36 
    37 typedef struct ofw_tree_node ofw_tree_node_t;
    38 typedef struct ofw_tree_property ofw_tree_property_t;
    39 
    40 /** Memory representation of OpenFirmware device tree node. */
    41 struct ofw_tree_node {
    42         ofw_tree_node_t *parent;
    43         ofw_tree_node_t *peer;
    44         ofw_tree_node_t *child;
    45 
    46         uint32_t node_handle;                   /**< Old OpenFirmware node handle. */
    47 
    48         char *da_name;                          /**< Disambigued name. */
    49 
    50         unsigned properties;                    /**< Number of properties. */
    51         ofw_tree_property_t *property;
    52        
    53         void *device;                           /**< Member used solely by the kernel. */
    54 };
     35#define OFW_TREE_PROPERTY_MAX_NAMELEN  32
    5536
    5637/** Memory representation of OpenFirmware device tree node property. */
    57 struct ofw_tree_property {
     38typedef struct {
    5839        char name[OFW_TREE_PROPERTY_MAX_NAMELEN];
    5940        size_t size;
    6041        void *value;
    61 };
     42} ofw_tree_property_t;
     43
     44/** Memory representation of OpenFirmware device tree node. */
     45typedef struct ofw_tree_node {
     46        struct ofw_tree_node *parent;
     47        struct ofw_tree_node *peer;
     48        struct ofw_tree_node *child;
     49       
     50        uint32_t node_handle;           /**< Old OpenFirmware node handle. */
     51       
     52        char *da_name;                  /**< Disambigued name. */
     53       
     54        unsigned int properties;        /**< Number of properties. */
     55        ofw_tree_property_t *property;
     56       
     57        void *device;                   /**< Member used solely by the kernel. */
     58} ofw_tree_node_t;
    6259
    6360extern ofw_tree_node_t *ofw_tree_build(void);
Note: See TracChangeset for help on using the changeset viewer.