Sera explicado neste artigo como compilar o BDM-TOOLS para controlar uma placa com processador Coldfire através da Interface BDM.
Será utilizado a processo de geração de device driver para o kernel, e não o processo de acesso direto as portas de IO (IOPERM).
Baixe o bdm-tools do site http://sourceforge.net/projects/bdm a versão atual é a 1.3.0.
Extraia o arquivo bdm:
tar jxvf m68k-bdm-1.3.0.tar.bz2
Entre no diretório criado
m68k-bdm-1.3.0
Agora compile a BDMlib e o bdm-chk, para evitar o erro de não encontrar a biblioteca bfd.h instale o binutils-dev:
apt-get install binutils-dev
Em seguida continue com a compilação:
./configure
make
make install
Precisamos compilar o device driver BDM, mas antes temos que modificar o arquivo driver/bdm.c porque o RAMBAR está com o valor errado, não funciona nos Coldfires V2 (MCF5282, MCF5235, etc).
mude de:
0xc04, /* BDM_REG_RAMBAR */
para:
0xc05, /* BDM_REG_RAMBAR */
Entre dentro do diretório onde contém o driver para a versão do seu kernel, estou usando o kernel 2.6:
cd m68k-bdm-1.3.0/driver/linux-2.6
Compile e instale:
make
make install
Crie o file device:
mknod /dev/bdmcf0 c 34 4
Agora vamos instalar o GDB com suporta à interface BDM.
Baixe o código fonte do GDB 6.1 (os outros patchs GDB estão errados, são para o insight na verdade):
ftp://ftp.gnu.org/gnu/gdb/gdb-6.1.tar.gz
Descompacte:
tar zxvf gdb-6.1.tar.gz
O diretório gdb-6.1 deverá esta no mesmo nível do m68k-bdm-1.3.0/gdb/patches para o patch se aplicado:
patch -p0 < m68k-bdm-1.3.0/gdb/patches/gdb-6.1-bdm-m68k.patch
Compile e execute o GDB:
./configure –target=m68k-bdm-elf
make
make install
Remova qualquer módulo que possa estar usando a porta paralela, para visualizar execute lsmod:
lp
parport
parport_pc
Para remove-lo use rmmod seguido do nome do módulo:
rmmod parport_pc
rmmod parport
rmmod lp
Insira o módulo bdm no kernel:
insmod /lib/modules/`uname -r`/extra/bdm.ko