1
0
Fork 0
forked from len0rd/rockbox

regtools: update soc desc parser/header to include desc fields

Change-Id: I32374784d17f4352905f15e404df23b01338235b
This commit is contained in:
Amaury Pouly 2014-04-04 15:33:39 +02:00
parent 0cd03c2d20
commit 3754624edc
2 changed files with 16 additions and 7 deletions

View file

@ -147,6 +147,7 @@ bool parse_field_elem(xmlNode *node, soc_reg_field_t& field)
BEGIN_ATTR_MATCH(node->properties) BEGIN_ATTR_MATCH(node->properties)
MATCH_TEXT_ATTR("name", field.name) MATCH_TEXT_ATTR("name", field.name)
MATCH_BITRANGE_ATTR("bitrange", field.first_bit, field.last_bit) MATCH_BITRANGE_ATTR("bitrange", field.first_bit, field.last_bit)
MATCH_TEXT_ATTR("desc", field.desc)
END_ATTR_MATCH() END_ATTR_MATCH()
BEGIN_NODE_MATCH(node->children) BEGIN_NODE_MATCH(node->children)
@ -194,6 +195,7 @@ bool parse_reg_elem(xmlNode *node, soc_reg_t& reg)
MATCH_TEXT_ATTR("name", reg.name) MATCH_TEXT_ATTR("name", reg.name)
SOFT_MATCH_SCT_ATTR("sct", reg.flags) SOFT_MATCH_SCT_ATTR("sct", reg.flags)
SOFT_MATCH_X_ATTR("addr", parse_add_trivial_addr, reg) SOFT_MATCH_X_ATTR("addr", parse_add_trivial_addr, reg)
MATCH_TEXT_ATTR("desc", reg.desc)
END_ATTR_MATCH() END_ATTR_MATCH()
BEGIN_NODE_MATCH(node->children) BEGIN_NODE_MATCH(node->children)
@ -227,6 +229,8 @@ bool parse_dev_elem(xmlNode *node, soc_dev_t& dev)
{ {
BEGIN_ATTR_MATCH(node->properties) BEGIN_ATTR_MATCH(node->properties)
MATCH_TEXT_ATTR("name", dev.name) MATCH_TEXT_ATTR("name", dev.name)
MATCH_TEXT_ATTR("long_name", dev.long_name)
MATCH_TEXT_ATTR("desc", dev.desc)
MATCH_TEXT_ATTR("version", dev.version) MATCH_TEXT_ATTR("version", dev.version)
END_ATTR_MATCH() END_ATTR_MATCH()

View file

@ -63,15 +63,17 @@ const soc_reg_flags_t REG_HAS_SCT = 1 << 0; /// register SCT variants
/** SoC register field named value */ /** SoC register field named value */
struct soc_reg_field_value_t struct soc_reg_field_value_t
{ {
std::string name; std::string name; /// name of the value
soc_word_t value; soc_word_t value; /// numeric value
std::string desc; /// human description
}; };
/** SoC register field */ /** SoC register field */
struct soc_reg_field_t struct soc_reg_field_t
{ {
std::string name; std::string name; /// name of the field
unsigned first_bit, last_bit; std::string desc; /// human description
unsigned first_bit, last_bit; /// bit range of the field
soc_word_t bitmask() const soc_word_t bitmask() const
{ {
@ -94,7 +96,7 @@ struct soc_reg_field_t
struct soc_reg_addr_t struct soc_reg_addr_t
{ {
std::string name; /// actual register name std::string name; /// actual register name
soc_addr_t addr; soc_addr_t addr; /// actual register address (relative to device)
}; };
/** SoC register formula */ /** SoC register formula */
@ -108,8 +110,9 @@ struct soc_reg_formula_t
struct soc_reg_t struct soc_reg_t
{ {
std::string name; /// generic name (for multi registers) or actual name std::string name; /// generic name (for multi registers) or actual name
std::vector< soc_reg_addr_t > addr; std::string desc; /// human description
soc_reg_formula_t formula; std::vector< soc_reg_addr_t > addr; /// instances of the registers
soc_reg_formula_t formula; /// formula for the instance addresses
soc_reg_flags_t flags; /// ORed value soc_reg_flags_t flags; /// ORed value
std::vector< soc_reg_field_t > field; std::vector< soc_reg_field_t > field;
@ -126,6 +129,8 @@ struct soc_dev_addr_t
struct soc_dev_t struct soc_dev_t
{ {
std::string name; /// generic name (of multi devices) or actual name std::string name; /// generic name (of multi devices) or actual name
std::string long_name; /// human friendly name
std::string desc; /// human description
std::string version; /// description version std::string version; /// description version
std::vector< soc_dev_addr_t > addr; std::vector< soc_dev_addr_t > addr;