How to utilize MPU9250 on external?

My modified version of pixhawk has MPU9250 on external SPI channel 4 with PE4 as CS pin
while MPU6000 is on board as internal SPI.

STM32F4 SPI1 → MPU6000
SPI4 → MPU9250

So I slightly modified the board_config.h file as followings
#define PX4_SPI_BUS_SENSORS 1
#define PX4_SPI_BUS_RAMTRON 2
#define PX4_SPI_BUS_EXT 4
#define PX4_SPI_BUS_BARO PX4_SPI_BUS_SENSORS

/* Use these in place of the spi_dev_e enumeration to select a specific SPI device on SPI1 */
#define PX4_SPIDEV_GYRO			1
#define PX4_SPIDEV_ACCEL_MAG	2
#define PX4_SPIDEV_BARO			3
#define PX4_SPIDEV_MPU			4
#define PX4_SPIDEV_HMC			5
//#define PX4_SPIDEV_LIS			7
#define	PX4_SPIDEV_BMI			8

/* External bus */
#define PX4_SPIDEV_EXT0		1
#define PX4_SPIDEV_EXT1		2
#define PX4_SPIDEV_EXT2		3
#define PX4_SPIDEV_EXT3		4

/* FMUv3 SPI on external bus */
#define PX4_SPIDEV_EXT_MPU			PX4_SPIDEV_EXT0
#define PX4_SPIDEV_EXT_BARO			PX4_SPIDEV_EXT2
#define PX4_SPIDEV_EXT_MAG			PX4_SPIDEV_EXT3
#define PX4_SPIDEV_EXT_GYRO			PX4_SPIDEV_EXT1

and I still not getting data from MPU9250
on nsh, it returns

MPU9250 on SPI bus 4 at 1 (1000 KHz)

nsh> mpu9250 -S start
WARN [mpu9250] probe failed! 254
WARN [mpu9250] SPI init failed
WARN [mpu9250] no device on bus 4

Why the device return bus number 4 rather than assigned value to PX4_SPIDEV_EXT0 which is 0 (zero)
Am I doing wrong with the config file?

I see signals flowing across SPI4 channel using an oscilloscope but not sure why px4 cannot read data from it.
Maybe SPI4 read buffer is not working properly?

probe failed! is a debug message. In my case the problem was the wrong walue in whoami register. In datasheet is 0x71 but in fact i get 0x73. Changed value and got a working external MPU9250.

Were you able to solve this problem? I am having a similar problem on some custom hardware. The only difference is that all my SPI reads are zeros (0x00).