7

Milkv Duo – 实测踩坑

 9 months ago
source link: https://www.taterli.com/9517/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Milkv Duo – 实测踩坑

Milkv Duo – 实测踩坑

其实很多国产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的东西,也没注册到内核,不知道是什么.

image-10.png

从代码里能看到,实际频率被限制在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如下.

image-7.png

实际运行,可用56.2M内存.

image-8.png

关于rootfs,本来想移植Debian,但是无论如何启动都失败,内存实在不够,有兴趣的可以参考下其他文章.

https://www.gloomyghost.com/live/20220503.aspx

第二分区反正是ext4的,随便造就行.


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK