In reply to ccelie:
Why did you set the configuration again in top_env? The line:
uvm_config_db #(spi_env_config)::set(this, "*", "spi_env_config", my_spi_env_config);
When you set the configuration in b_test with wildcard “*”, all child-components of b_test should be able to get it. Please remove the code line above in top_env and try again.