查看: 716|回复: 0
收起左侧

Linux 5.7 将支持国产 RISC-V 芯片 K210

[复制链接]

  离线 

  • TA的每日心情
    奋斗
    2021-3-3 12:32
  • 签到天数: 10 天

    [LV.3]

    发表于 2020-8-24 15:42:22 | 显示全部楼层 |阅读模式

    有人预言,RISC-V或将是继Intel和Arm之后的第三大主流处理器体系。欢迎访问全球首家只专注于RISC-V单片机行业应用的中文网站

    您需要 登录 才可以下载或查看,没有帐号?立即注册

    x
    本帖最后由 皋陶 于 2020-8-28 10:03 编辑

    这是转载的一篇文章,文章主要内容是Linux合入了一个国产芯片k210的代码,虽然这个芯片不是很强大,


    但是对于学习来说非常有意义,而且,还有人在这个开发板上移植了Linux 0.11。



    今天早上我在查阅 Linux 内核邮件列表的时候,看到了一封 Linus 本人的回复:


    国内芯片技术交流-Linux 5.7 将支持国产 RISC-V 芯片 K210risc-v单片机中文社区(1)

    这封邮件的大概意思是说:


    Palmer Dabbelt 向 Linus 大神发了一个 Linux 内核补丁的合并请求(PR), 但是大神发现这个 PR 有问题,准确的说是不规范——其中有一条提交里面混杂了一个其他功能的修改,而这个修改和他对应的 commit message 的描述不一致。


    一般我们在软件开发的流程中,有一个朴素的版本管理哲学:开发者的提交要尽量干净,简单。开发者要把自己的代码修改按照功能拆分成一个个相对独立的提交,一个提交对应一个功能,而且要在对应的 commit message 里面描述清楚。


    在这个 PR 中,有条提交里面确实混杂了其他的一个修改,所以 Linus 说 Palmer 的代码树不干净。


    不过让人出乎意料的是 Linus 大神没有直接把这条 PR 打回去,而且自己亲自修改了里面的问题,然后把他们合并到 Linux 5.7 mainline 上了。大神以前在 Linux kernel 开源社区是出了名的暴躁,经常因为开发者提交的一些看不顺眼的代码怒发冲冠,在邮件列表了直接回复 F**K 啊,骂对方 brain damaged 啊什么的。看来经过 2018 年的闭关自省后,大神确实变的温润如玉了很多。


    这是我们从这封邮件里面看到的开发规范问题,其实对于很多爱好 RISC-V 或者 K210 SOC 的开发者来说,这封邮件还隐含着另外一个十分重要的信息。


    这个 PR 的提交者 Palmer Dabbelt 也非等闲之辈,他 2017 于伯克利大学计算机硕士毕业,然后进入 RISC-V 领头羊 SiFive,在这家公司他领导实现了 Linux、GCC、glibc 等基础组件对 RISC-V 架构的支持,是这些开源项目在 RISC-V 分支的 maintainer。去年他从 SiFive 离职,加入了 Google Android 部门。


    Palmer 的这个 PR 其中重要一部分内容是向 Linux 内核添加对 K210 SOC 的支持。



    K210 是中国一家叫做嘉楠耘智的公司(嗯,他们最开始是做矿机的,现在开始做 AI,和比特大陆、亿帮国际合称矿机三巨头,并于 2019 年在纳斯达克上市)开发的 SOC,采用 RISC-V 架构, 双核 CPU、64 位,台积电 28 nm 制程,运行频率能到 400 MHZ,还带有神经网络加速器 KPU,算力能到 1TOPS、主要面向音视觉等 AI 和 IOT 领域。


    国内芯片技术交流-Linux 5.7 将支持国产 RISC-V 芯片 K210risc-v单片机中文社区(2)


    总体来说 K210 还是一颗  MCU 级别的芯片,只有 8M 的 SRAM,无法外接大容量的 DDR 等存储器,固态存储接口好像也只有 SPI 接口,可以接 SPI Nor Flash 这种小容量的存储,所以在设计定位上,这是一颗只适合运行 RTOS 的 MCU。


    国内芯片技术交流-Linux 5.7 将支持国产 RISC-V 芯片 K210risc-v单片机中文社区(3)


    不过还是挡不住很多充满探索精神的 Linux Hacker,想尝试在 K210 上运行 Linux,毕竟现在 RISC-V 这么火,可是能跑 Linux 的却不多,SiFive 到是有一款能运行 Linux 的开发板叫做 HiFive Unleashed,但是价格让人望而却步。


    K210 的 8M SARM 以及友好的价格让广大爱好者看到了希望,

    我还在 Github 上看到有人移植了 Linux 0.11 到 K210 上,不过在这个 Linux 5.X 的时代,0.11 还是不够刺激。



    所以我立刻更新了一把最新的 Linux mainline 代码,查到了关于 K210 的相关提交:


    国内芯片技术交流-Linux 5.7 将支持国产 RISC-V 芯片 K210risc-v单片机中文社区(4)


    可以看到代码比较简单,只有 5 个补丁,可以得到如下信息:


    • 支持的功能也比较简单,只支持 UART 通信,也就是说,按照目前的状态,可以运行一个能够通过命令行交互的 Linux 最小系统。



    • 目前的代码支持勘智的 KD233 和 Sipeed MAIX Dan 和 Sipeed MAIXDUINO 三款开发板,其他的基于 RISC-V 开发板我估计也能跑,顶多只要确认下 UART 口的差异。



    • 不支持 MMU,虽然从 Github 上找到的一些代码可以看出 K210 上面搭载了基于 SV39 标准的 MMU,但是勘智的官方文档并没有提及任何和 MMU 相关的信息。这也是国内一些 SOC 设计公司需要改进的地方,不能总是不愿意开放和自己芯片相关的详细文档。不过幸运的是现在的 Linux 已经支持 nommu 架构的处理器。



    仔细查阅提交的代码可以发现,K210 是基于 SiFive 和 UC Berkeley 开源的 Rocket Core 实现的,这款开源的 Rocket Core 在业界很受欢迎,流片达十多次,性能和 Arm Cortex-A5 相当。


    因为 Palmer 在 Sifive 工作的时候已经把 RISC-V 的基础支持代码提交到了 Linux mainline,所以这次朝 Linux mainline 添加对 K210 这款 SOC 的支持就简单了很多,可以复用大量 Palmer 提交的基础代码。


    目前从提交记录还可以看到,这一系列补丁大部分是西部数据的工程师贡献的,西部数据目前是 RISC-V 处理器的超级支持者,他们已经在西数的大量产品中使用 RISC-V 处理器。


    去年我就看到一份西数工程师的 PPT,描述在 K210 等处理器上运行 Linux,没想到他们这么快就把相关成果提交到 Linux mainline 了,还是很让人激动的。

    国内芯片技术交流-Linux 5.7 将支持国产 RISC-V 芯片 K210risc-v单片机中文社区(5)


    我进一步查阅了 RISC-V 的内核邮件列表发现,这一系列补丁在提交的过程中,受到了很多极客的关注,有很多Geek 表示愿意进一步为 K210 贡献 Linux 的支持补丁,包括 LCD 屏幕、SPI 接口的 SD 卡,以及 UART 接口的 WIFI。


    这使得这款 SOC 具有了很高的可玩性,这就是开源的力量!


    在目前这种状态下,用 K210 来学习基本的 Linux 系统移植还是很不错的,因为它简单,不涉及太多复杂的东西,可以让我们快速掌握给一款芯片移植 Linux 所需要做的最基本工作,堪称一个完美的 Linux 最小系统学习平台,除了 SRAM 太小——只有 8MB。

    本篇完,感谢关注:RISC-V单片机中文网




    上一篇:RISC-V指令集架构特点总结
    下一篇:RISC-V Machine Mode 和 User Mode 相互切换
    RISCV作者优文
    全球首家只专注于RISC-V单片机行业应用的中文网站
    回复

    使用道具 举报

    高级模式
    B Color Image Link Quote Code Smilies

    本版积分规则

    关闭

    RISC-V单片机中文网上一条 /2 下一条



    版权及免责声明|RISC-V单片机中文网 |网站地图

    GMT+8, 2024-4-26 07:30 , Processed in 0.707632 second(s), 48 queries .

    快速回复 返回顶部 返回列表