其实很多国产RISCV板子,强调自己是多么的牛逼,偶尔也会想试试看,这就最近看到一个特别便宜能跑Linux的板子,基于C906架构,大家都很熟悉了,当然如果真的想跑的更舒服,建议买更贵一些的板子,资源也没那么匮乏嘛.官方公开的数据也是东拼西凑,不过这也是国产板子的日常了,所以也不好说什么,而且这本来就是个做智能摄像头的芯片,用来做这些你只能当是玩玩,本身设计也是NAND/EMMC启动,只是恰逢这个控制器也能支持SDIO 4Bit模式,好了,废话比较多,我说一下我大致知道的内容.
- C906 内核 - no SMP
- 1GHz w/ 32K I-Cache / 32K D-Cache / rv64imafdvcsu
- 700MHz / Unclear instruction set
- TPU - incomplete SDK
- 分类 / 检测 / 人脸识别 / 姿势识别 / 超分辨率 / 分割
- 视频编码 - 但是反正你没输入源,瞎扯.
- H264 Max Res. 2688 * 1520 @ 25fps
- 模式支持 => CBR / VBR / FIXQP
- 视频输入 - 没多大参考价值,反正你都要用他摄像头,至于MIPI驱动文档和提供的源码压根对不上.
- Max Res. 2688 * 1520
- Common ISP Function
- EngineCV - 加速OpenCV,也没地方给你发挥.
- 音频编解码 - 放心,没接口给你用
- 16bit audio I/O
- Mono Ouput
- AEC ANR AGC
- G.711 G.726 ADPCM
- 有线网 - 够用就行?
- 10/100 Mbps
- 安全模块 - 由于他仅限FreeRTOS调用且一直不见开放.
- AES / DES / SM4 / SHA1 / SHA256
- eFuse
- 外设接口 - 部分外设在第二个C906核心,同时FreeRTOS未开放,所以无法使用.
- 3 * ADC
- 4 * I2C
- 3 * SPI
- 5 * UART
- 4 * PWM
- 2 * SDIO
- 1 * USB
- 内置内存 - 64MB
- SPI NOR / SPI NAND 启动
你从源码中能看到很多在FPGA本体开发的痕迹,可以说内核其实也是半成品,能用就行,那么挑干嘛.从内核里能看到,启用了SPI2,UART4等,但是从GPIO执行结果看似乎什么反应都没有,I2C挂着一个0x56的东西,也没注册到内核,不知道是什么.
从代码里能看到,实际频率被限制在850MHz,试过调整并没有用.
cv181x_cooling:cv181x_cooling {
clocks = <&clk CV181X_CLK_C906_0>, <&clk CV181X_CLK_TPU>;
clock-names = "clk_cpu", "clk_tpu_axi";
dev-freqs = <850000000 500000000>,
<425000000 375000000>,
<425000000 300000000>;
compatible = "cvitek,cv181x-cooling";
#cooling-cells = <2>;
};
我的cv1800b_milkv_duo_sd.dts,禁用了FreeRTOS和所有保留内存,删除了压根没引出来东西的.
/dts-v1/;
#include "cv180x_base_riscv.dtsi"
#include "cv180x_asic_qfn.dtsi"
#include "cv180x_asic_sd.dtsi"
#include "cv180x_default_memmap.dtsi"
&spi3 {
status = "disabled";
};
/ {
/delete-node/ wifi_pin;
/delete-node/ cvitek-ion;
/delete-node/ fast_image;
/delete-node/ reserved-memory;
};
整体dts如下.
实际运行,可用56.2M内存.
关于rootfs,本来想移植Debian,但是无论如何启动都失败,内存实在不够,有兴趣的可以参考下其他文章.
https://www.gloomyghost.com/live/20220503.aspx
第二分区反正是ext4的,随便造就行.