I believe this error is caused by GDB being configured to the
wrong architecture. So I did the following:

$ ppc_4xx-gdb u-boot
...
The target architecture is set automatically (currently powerpc:403)
(gdb) show arch
The target architecture is set automatically (currently powerpc:e500)
(gdb) set arch powerpc:403
The target architecture is assumed to be powerpc:e500
(gdb) show arch
The target architecture is assumed to be powerpc:e500
(gdb) set arch powerpc:common
The target architecture is assumed to be powerpc:e500
(gdb) show arch
The target architecture is assumed to be powerpc:e500
(gdb)

As you see, initially GDB says the target architecture is
"powerpc:403". But the "show arch" command claims it is the
"powerpc:e500". And any commands that try to change it from
"powerpc:e500" do not appear to be working.

What's wrong, and why am I not able to change the architecture?

Answer:

Some versions of GDB are hard coded to try and read the
architecture from the ELF file and set the arch based on that at
startup. When this happens you cannot change the arch again. In
this case it looks like it has set it incorrectly from the ELF
file as "powerpc:e500".

Workaround:

The following procedure can be used to work around the
problem:

Start GDB without a file argument, i. e. do not give the
the name of the ELF file (here "u-boot") on the command line

use "set arch" to set the appropriate architecture

use the "add-symbol-file" command to load the ELF file (here
"u-boot") manually

double check using "show arch" to make sure the arch hasn't
changed; change it back in case it has

connect to the BDI using the "target remote" commAnd as
usual and start debugging