You can use below procedures to dynamically reprogram the register:
1) Bring down the PCIe link by asserting the hip_reconfig_rst_n reset for a few cycles, ser_shift_load and interface_sel stay high during this period. npor is driven low, and stays low throughout the process.
2) After reconfig_rst_n go high (enter user mode), make sure ser_shift_load and interface_sel stay high for 324ns, as per the Figure 34 timing diagram in the A10 user guide.
3) After waiting 324ns for PLL to locked, drive ser_shift_load low for 4 cycles, then high, while interface_sel stays high.
4) After 4 more cycles, drive interface_sel low.
5) Assert hip_reconfig_write for four cycles, with hip_reconfig_address set to 0, and hip_reconfig_writedata set to 0.
(Write to location 0 of value 0, to enable PCIe reconfig mode. When 0, PCIe reconfig mode is enabled.
When 1, PCIe reconfig mode is disabled and the original read-only register values set in the programming file used to configure the device are restored.)
6) Assert hip_reconfig_write for four cycles, with hip_reconfig_address set to 0009h (instead of 0x8A), hip_reconfig_writedata set to the desired new device ID (i.e. 0xb500).
7) Read from register 0009h as the address for device ID.
Expect the device ID after 4 clock cycles. (npor reset signal is released).