Hi All,
After debugging this issue for couple of weeks I figured out the solution to this problem. In my testbench I had a define called UVM_DISABLE_AUTO_ITEM_RECORDING enabled. This define forces the driver to end a sequence through req.end_tr();. If you don't have this line in your driver the do_read task in uvm_reg_map will keep waiting at the bus_req.end_event.wait_on().
I removed this define and it all works now . The annoying part is since this is a SoC level testbench I had to digg into many files before I figured out that one of the files has this define.
Thanks,
Muffad