The 8051 splits memory into two types of memory, code and data memory.When the low memory is configured to be external memory it needs to have the program loaded into it prior to starting.
1. If you try to load via a B2 load from an EEPROM, the SIE loads the program to internal memory,(the SIE can only load to internal memory).
2. If you try to load via the ezloader function and a B0 load, the system still loads a small program to process the load. This program ends up in the internal memory and again you cannot execute it.
The only way to use this is have the program in the external memory before the chip is taken out of reset. his is normally done with external non-volatile memory.