diff options
author | Amaury Pouly <amaury.pouly@gmail.com> | 2014-04-04 15:33:39 +0200 |
---|---|---|
committer | Amaury Pouly <amaury.pouly@gmail.com> | 2014-05-01 19:32:01 +0200 |
commit | 3754624edc48539c5cc5acbf426ce909477e87d8 (patch) | |
tree | 5b74dd28aa33186dcba9557c1ab516fc6e39d0db /utils/regtools | |
parent | 0cd03c2d201b5b17d9465470cedccab3d4c5edd0 (diff) | |
download | rockbox-3754624edc48539c5cc5acbf426ce909477e87d8.tar.gz rockbox-3754624edc48539c5cc5acbf426ce909477e87d8.zip |
regtools: update soc desc parser/header to include desc fields
Change-Id: I32374784d17f4352905f15e404df23b01338235b
Diffstat (limited to 'utils/regtools')
-rw-r--r-- | utils/regtools/lib/soc_desc.cpp | 4 | ||||
-rw-r--r-- | utils/regtools/lib/soc_desc.hpp | 19 |
2 files changed, 16 insertions, 7 deletions
diff --git a/utils/regtools/lib/soc_desc.cpp b/utils/regtools/lib/soc_desc.cpp index 21c2f8acac..6a6d47648f 100644 --- a/utils/regtools/lib/soc_desc.cpp +++ b/utils/regtools/lib/soc_desc.cpp | |||
@@ -147,6 +147,7 @@ bool parse_field_elem(xmlNode *node, soc_reg_field_t& field) | |||
147 | BEGIN_ATTR_MATCH(node->properties) | 147 | BEGIN_ATTR_MATCH(node->properties) |
148 | MATCH_TEXT_ATTR("name", field.name) | 148 | MATCH_TEXT_ATTR("name", field.name) |
149 | MATCH_BITRANGE_ATTR("bitrange", field.first_bit, field.last_bit) | 149 | MATCH_BITRANGE_ATTR("bitrange", field.first_bit, field.last_bit) |
150 | MATCH_TEXT_ATTR("desc", field.desc) | ||
150 | END_ATTR_MATCH() | 151 | END_ATTR_MATCH() |
151 | 152 | ||
152 | BEGIN_NODE_MATCH(node->children) | 153 | BEGIN_NODE_MATCH(node->children) |
@@ -194,6 +195,7 @@ bool parse_reg_elem(xmlNode *node, soc_reg_t& reg) | |||
194 | MATCH_TEXT_ATTR("name", reg.name) | 195 | MATCH_TEXT_ATTR("name", reg.name) |
195 | SOFT_MATCH_SCT_ATTR("sct", reg.flags) | 196 | SOFT_MATCH_SCT_ATTR("sct", reg.flags) |
196 | SOFT_MATCH_X_ATTR("addr", parse_add_trivial_addr, reg) | 197 | SOFT_MATCH_X_ATTR("addr", parse_add_trivial_addr, reg) |
198 | MATCH_TEXT_ATTR("desc", reg.desc) | ||
197 | END_ATTR_MATCH() | 199 | END_ATTR_MATCH() |
198 | 200 | ||
199 | BEGIN_NODE_MATCH(node->children) | 201 | BEGIN_NODE_MATCH(node->children) |
@@ -227,6 +229,8 @@ bool parse_dev_elem(xmlNode *node, soc_dev_t& dev) | |||
227 | { | 229 | { |
228 | BEGIN_ATTR_MATCH(node->properties) | 230 | BEGIN_ATTR_MATCH(node->properties) |
229 | MATCH_TEXT_ATTR("name", dev.name) | 231 | MATCH_TEXT_ATTR("name", dev.name) |
232 | MATCH_TEXT_ATTR("long_name", dev.long_name) | ||
233 | MATCH_TEXT_ATTR("desc", dev.desc) | ||
230 | MATCH_TEXT_ATTR("version", dev.version) | 234 | MATCH_TEXT_ATTR("version", dev.version) |
231 | END_ATTR_MATCH() | 235 | END_ATTR_MATCH() |
232 | 236 | ||
diff --git a/utils/regtools/lib/soc_desc.hpp b/utils/regtools/lib/soc_desc.hpp index 0324a90fad..efaf813eb2 100644 --- a/utils/regtools/lib/soc_desc.hpp +++ b/utils/regtools/lib/soc_desc.hpp | |||
@@ -63,15 +63,17 @@ const soc_reg_flags_t REG_HAS_SCT = 1 << 0; /// register SCT variants | |||
63 | /** SoC register field named value */ | 63 | /** SoC register field named value */ |
64 | struct soc_reg_field_value_t | 64 | struct soc_reg_field_value_t |
65 | { | 65 | { |
66 | std::string name; | 66 | std::string name; /// name of the value |
67 | soc_word_t value; | 67 | soc_word_t value; /// numeric value |
68 | std::string desc; /// human description | ||
68 | }; | 69 | }; |
69 | 70 | ||
70 | /** SoC register field */ | 71 | /** SoC register field */ |
71 | struct soc_reg_field_t | 72 | struct soc_reg_field_t |
72 | { | 73 | { |
73 | std::string name; | 74 | std::string name; /// name of the field |
74 | unsigned first_bit, last_bit; | 75 | std::string desc; /// human description |
76 | unsigned first_bit, last_bit; /// bit range of the field | ||
75 | 77 | ||
76 | soc_word_t bitmask() const | 78 | soc_word_t bitmask() const |
77 | { | 79 | { |
@@ -94,7 +96,7 @@ struct soc_reg_field_t | |||
94 | struct soc_reg_addr_t | 96 | struct soc_reg_addr_t |
95 | { | 97 | { |
96 | std::string name; /// actual register name | 98 | std::string name; /// actual register name |
97 | soc_addr_t addr; | 99 | soc_addr_t addr; /// actual register address (relative to device) |
98 | }; | 100 | }; |
99 | 101 | ||
100 | /** SoC register formula */ | 102 | /** SoC register formula */ |
@@ -108,8 +110,9 @@ struct soc_reg_formula_t | |||
108 | struct soc_reg_t | 110 | struct soc_reg_t |
109 | { | 111 | { |
110 | std::string name; /// generic name (for multi registers) or actual name | 112 | std::string name; /// generic name (for multi registers) or actual name |
111 | std::vector< soc_reg_addr_t > addr; | 113 | std::string desc; /// human description |
112 | soc_reg_formula_t formula; | 114 | std::vector< soc_reg_addr_t > addr; /// instances of the registers |
115 | soc_reg_formula_t formula; /// formula for the instance addresses | ||
113 | soc_reg_flags_t flags; /// ORed value | 116 | soc_reg_flags_t flags; /// ORed value |
114 | 117 | ||
115 | std::vector< soc_reg_field_t > field; | 118 | std::vector< soc_reg_field_t > field; |
@@ -126,6 +129,8 @@ struct soc_dev_addr_t | |||
126 | struct soc_dev_t | 129 | struct soc_dev_t |
127 | { | 130 | { |
128 | std::string name; /// generic name (of multi devices) or actual name | 131 | std::string name; /// generic name (of multi devices) or actual name |
132 | std::string long_name; /// human friendly name | ||
133 | std::string desc; /// human description | ||
129 | std::string version; /// description version | 134 | std::string version; /// description version |
130 | std::vector< soc_dev_addr_t > addr; | 135 | std::vector< soc_dev_addr_t > addr; |
131 | 136 | ||