How to add memory mapped I/O registers?

Part of the magic that the GDB clients and OpenOCD GDB server provides is to provide register info about various core’s (such as ARM926ej-s) automagically. So it doesn’t matter what debug UI I run (Eclipse, ddd, etc.), when I bring up a register window, I see all my ARM core registers. Super.

But, many SoCs contain many more I/O registers that are memory mapped. It is super painful when debugging to constantly look-up the address and access these manually, so these need to be easily accessed in the debugger UI window for registers, just like the ARM core registers.

Can OpenOCD do this( this = given users/developers some method, such as config file, to add memory mapped I/O register definitions)? If so, how?

While these addresses usually get re-mapped by an OS to a virtual address, Since OpenOCD has the ability to read and write to physical addressed, this shouldn’t be a problems. Worst case, you’d just need the right configuration file that corresponds to your mapping when you start OpenOCD (assuming this functionality and the necessary config file will exist one day.)

Thanks.