Desde abril del año pasado, las placas de depuración BFK3.1 con un procesador Baikal-T1 a bordo están disponibles para la venta. Todo estaría bien, pero esta depuración no tiene la capacidad regular de conectar una tarjeta SD.
Necesitamos 30 minutos de tiempo, un soldador y un módulo externo de tarjeta Micro-SD-Catalex con un valor de 5 piezas por 300 rublos, y la pregunta se elimina.
Aquí hay una guía paso a paso sobre cómo agregar un lector de tarjetas SD al BFK3.1. Todo lo descrito se prueba en la práctica.
Utilizamos el último SDK 4.16 actualmente disponible en el sitio web oficial de Baikal. En el SDK versión 4.14 y anteriores esto no funcionará.
Primer paso
Tome el módulo Catalex MicroSD-Card.

Para que funcione la detección de la presencia de una tarjeta en la ranura (Detección de tarjeta), debe hacer lo siguiente: tirar del primer pin (CD / DAT3) de la ranura de la tarjeta al 3V3 plus a través de la resistencia 4K3.
Aquí está el diagrama.El principio de funcionamiento es el siguiente: un nivel alto en el primer pin de la ranura de la tarjeta significa que no hay tarjeta en la ranura, un nivel bajo indica que la tarjeta está insertada.
Segundo paso
A continuación, conectamos el módulo externo al conector XP25 en la placa BFK3.1
Paso tres
Agregue mmc al árbol de dispositivos en un editor de texto en un archivo
baikal / src / kernel / arch / mips / boot / dts / baikal / baikal_bfk3.dtsAquí hay un ejemplo de una descripción del dispositivo en un archivo dts:
&spi1 { num-cs = <1>; cs-gpios = <&portb 2 GPIO_ACTIVE_LOW>; /*<&porta 17 GPIO_ACTIVE_HIGH>;*/ status = "okay"; mmc@0 { status = "okay"; compatible = "mmc-spi-slot"; spi-max-frequency = <10000000>; reg = <0>; voltage-ranges = <3200 3400>; /*gpios = <Card Detection>, <Write Protection>;*/ gpios = <&porta 17 GPIO_ACTIVE_LOW>; /*non-removable;*/ disable-wp; };
Cuarto paso
Construya el núcleo y la imagen con el comando
./usr/scripts/build-boot-img.sh bfk3 -a
Quinto paso
sudo dfu-util -a 0 -D
el tablero con el comando
sudo dfu-util -a 0 -D
, indicando la ruta donde se encuentra la imagen ensamblada. En nuestro caso, esto es
sdk_4.16 / img / bfk3.rom
Voila, todo funciona.
Así es como va. El servicio que trabaja con sd / mmc está activado, analiza los parámetros de dts, configura spi, conecta las interrupciones a la detección de tarjeta.

Si se detecta una tarjeta SD en la ranura, este servicio la conecta.

Entonces aparece un nuevo dispositivo en dev.

Si retira la tarjeta, el controlador lo arreglará y eliminará el dispositivo.
