导航

    全志在线开发者论坛

    • 注册
    • 登录
    • 搜索
    • 版块
    • 话题
    • 在线文档
    • 社区主页
    1. 主页
    2. damon
    D
    • 资料
    • 关注 0
    • 粉丝 2
    • 我的积分 392
    • 主题 1
    • 帖子 9
    • 最佳 1
    • 群组 0

    板砖LV 3

    @damon

    392
    积分
    1
    声望
    9
    资料浏览
    9
    帖子
    2
    粉丝
    0
    关注
    注册时间 最后登录
    位置 珠海

    damon 取消关注 关注

    damon 发布的最佳帖子

    • 回复: D1怎么使用JTAG?

      D1开发板支持JTAG调试方式

      1. 代码修改

        • 由于jtag和sdc的pinmux相同,disable dts文件中的sdc0配置。configs/nezha/linux-5.4/board.dts
        • 打开sysconfig配置中的jtag开关。configs/nezha/sys_config.fex
        • 利用tf卡的插槽连接jtag口进行调试。
      2. 调试工具:CKLINK

        • 详情请咨询平头哥客服,链接地址:https://shop145257746.taobao.com/category-1178679379.htm?spm=a1z10.1-c.w4010-18365123432.7.733637f3p5H4Fu&search=y&catName=������#bd
      发布在 MR Series
      D
      板砖

    damon 发布的最新帖子

    • 回复: 基于社区最新开源仓库(Opensbi、Linux)构建nezha - d1开发环境

      @aiminick 在 基于社区最新开源仓库(Opensbi、Linux)构建nezha - d1开发环境 中说:

      分开也有分开的优势,这种复合型的可定制化程度没有单独的方便。
      没有理解你的意思,可以描述的再详细一点吗?

      发布在 MR Series
      D
      板砖
    • 基于社区最新开源仓库(Opensbi、Linux)构建nezha - d1开发环境

      一、 本文目的

      介绍如何基于NEZHA-D1平台搭建社区最新的opensbi和Linux最小系统。
      启动分为两大阶段:
      第一阶段brom->boot0->uboot,该阶段固件烧写在nand flash。
      第二阶段:opensbi->kernel->rootfs,该阶段固件存储在TF卡上。TF卡实现2个分区,分区1为FAT文件系统,方便开发者拷贝linux、dtb、opensbi等固件,分区2为EXT4的rootfs。

      二、实验准备

      硬件:nezha开发板+电源线+串口线+TF卡
      软件:github仓库:https://github.com/chinchilla222/nezha-d1.git

      nezha-d1仓库简要说明:

      ├── build.sh -> scripts/build.sh -- 编译脚本
      ├── HOW-TO-CN.txt -- 说明文档
      ├── README.md
      ├── resource -- 代码资源
      │   ├── linux -- 存放最小系统必要的patch
      │   │   ├── 0001-riscv-pgtable.h-Fixup-_PAGE_CHG_MASK-usage.patch
      │   │   ├── 0002-riscv-Add-DMA_COHERENT-for-custom-PTE-attributes.patch
      │   │   ├── 0003-riscv-Add-SYNC_DMA_FOR_CPU-DEVICE-for-DMA_COHERENT.patch
      │   │   ├── 0004-dt-bindings-clk-sunxi-ccu-add-compatible-string-for-.patch
      │   │   ├── 0005-clk-sunxi-ng-add-support-for-the-Allwinner-D1-CCU.patch
      │   │   ├── 0006-dt-bindings-pinctrl-sunxi-Add-D1-pinctrl-bindings.patch
      │   │   ├── 0007-pinctrl-sunxi-add-support-for-the-Allwinner-D1-pin-c.patch
      │   │   ├── 0008-rv64-allwinner-d1-add-the-basical-d1-dtsi-file.patch
      │   │   ├── 0009-rv64-allwinner-D1-add-support-for-Allwinner-nezha-bo.patch
      │   │   ├── 0010-mmc-sunxi-mmc-add-mmc0-support-on-d1-and-fix-clk-set.patch
      │   │   ├── 0011-riscv-d1-nezha-default-config.patch
      │   │   ├── 0012-rv64-allwinner-d1-support-card-boot-ext4-file-system.patch
      │   │   └── useless-patch -- 暂时无用
      │   │   ├── 0001-dump_reg-support-interface-to-Read-Write-IO.patch
      │   │   ├── 0001-riscv-pgtable.h-Fixup-_PAGE_CHG_MASK-usage.patch
      │   │   ├── 0002-gmac-support-temporary-driver.patch
      │   │   ├── 0002-riscv-Add-DMA_COHERENT-for-custom-PTE-attributes.patch
      │   │   ├── 0003-riscv-Add-SYNC_DMA_FOR_CPU-DEVICE-for-DMA_COHERENT.patch
      │   │   └── 0004-drivers-ccu-pinctrl-uart-gmac-mmc-driver-support.patch
      │   ├── opensbi -- 社区最新opensbi源码
      │   │   └── opensbi-master.zip
      │   ├── rootfs -- 编译好根文件系统
      │   │   └── rootfs.tar.gz
      │   └── tools -- 存放开发需要的工具
      │   ├── make_ext4fs
      │   ├── mkbootimg
      │   └── toolchain -- 存放PTG工具链
      │   ├── riscv64-glibc-gcc-thead_20200702.tar.xz.00
      │   ├── riscv64-glibc-gcc-thead_20200702.tar.xz.01
      │   └── riscv64-glibc-gcc-thead_20200702.tar.xz.02
      ├── scripts
      │   ├── build.sh
      │   └── gdbinit
      └── tina-d1-open -- 存放基于tina-d1-open仓库编译好的固件(更改了启动顺序)
      ├── 0001-d1-add-new-board-nezha_debug.patch
      ├── 0001-uboot-nezha-suport-boot0-uboot-opensbi-kernel-startu.patch
      └── tina_d1-nezha_debug_uart0.img

      三、 搭建环境

      1、下载nezha-d1仓库

      git clone https://github.com/chinchilla222/nezha-d1.git 由于仓库中包含交叉编译工具,下载速度会受影响,请大家耐心等待。

      2、烧写固件:nezha-d1/tina-d1-open/tina_d1-nezha_debug_uart0.img

      tina_d1-nezha_debug_uart0.img固件同tina-d1-open源码仓库编译打包的原生固件区别在于修改了启动顺序,并且在uboot阶段修改直接引导TF卡中opensbi、kernel的功能。(原流程:brom->boot0->opensbi->uboot->kernel,改后:brom->boot0->uboot->opensbi->kernel)

      3、编译opensbi/kernel/dtb

      3.1、自动编译
      执行scripts/build.sh脚本,生成的目标文件输出至build/debug目录。

      3.2、手动编译 - 下文中提到的命令为示意性命令,请大家根据实际的目录结构使用。已经执行了build.sh脚本的同学忽略3.2,以及第4/5节的操作

      (1)创建临时目录:mkdir build

      (2)准备工具链:tar xvf resource/tools/riscv64-glibc-gcc-thead_20200702.tar.xz -C build/

      (3)编译linux

      • 解压:tar xzvf resource/linux/linux-5.13-rc3.tar.gz -C build/

      • 打补丁:cd nezha-d1/build/linux-5.13-rc3;git init; git add ./; git commit -s -m "init version";git am *.patch

      • 编译:
        make ARCH=riscv CROSS_COMPILE=../riscv64-glibc-gcc-thead_20200702/bin/riscv64-unknown-linux-gnu- d1_nezha_defconfig
        make ARCH=riscv CROSS_COMPILE=../riscv64-glibc-gcc-thead_20200702/bin/riscv64-unknown-linux-gnu- all -j32

      • 生成boot.img:./mkbootimg --kernel Image --board sun20i_riscv --base 0x40200000 --kernel_offset 0 -o boot.img

      4、编译opensbi

      (1)解压:unzip resource/opensbi/opensbi-master.zip -d build/

      (2)编译:make PLATFORM=generic CROSS_COMPILE=../riscv64-glibc-gcc-thead_20200702/bin/riscv64-unknown-linux-gnu-

      5、制作EXT4根文件系统*

      (1)tar -xzvf resource/rootfs/rootfs.tar.gz -C build/

      (2)make_ext4fs -l 256M roofs.ext4 rootfs/

      6、 制作启动卡

      (1)制作GPT分区,工具:parted,举例:分区1 - 1G到12G 区间,分区2 - 12G至25G区间

      • parted -s /dev/sdb mklabel gpt
      • parted -s /dev/sdb unit GB mkpart primary 1 12
      • parted -s /dev/sdb unit GB mkpart primary 12 25
      • parted -s /dev/sdb print

      (2)格式化分区1,工具:mkfs.fat,举例:mkfs.fat /dev/sdb1。将boot.img,d1.dtb,d1.dtb拷贝到TF卡的分区1中。

      (3)烧写分区2,工具:dd,举例:dd if=./build/rootfs.ext4 of=/dev/sdb2

      7.将TF卡插入开发板,上电启动,大功告成。

      发布在 MR Series
      D
      板砖
    • 回复: 如何将单独编译的opensbi u-boot kernel rootfs 烧录制作成可以启动的sdcard.img镜像?

      @allwinnertech 在 如何将单独编译的opensbi u-boot kernel rootfs 烧录制作成可以启动的sdcard.img镜像? 中说:

      本以及单独执行pack打包命令验证,发现最开始的三个分区,对应的文件分别

      TF卡中没有boot0和boot-package的分区信息,uboot阶段不能分区烧写这两个二级制文件。boot-package是按照一定的格式打包了uboot、dtb、opensbi三个文件的二进制文件。通过phoenixcard烧写tina_d1-nezha_min_uart0.img时将boot-package烧写到了TF卡指定的offset区域,phoenixcard同boot0约定将boot-package烧写在TF卡offset 32800扇区处,每个扇区512Byte。可通过dd命令单独烧写boot-package文件烧写到指定位置(offset:32800扇区)。

      发布在 MR Series
      D
      板砖
    • 回复: 下载的D1tina SDK出现错误

      @marleo repo工具配置有问题。请按照官网说明下载,如下

      ××××××××××××××××××××××××××××××××××××××××××××××××××××
      ****请客户使用AW提供的引导脚本和repo仓库,如已安装了google官方引导脚本,请将官方引导脚本替换成AW提供的引导脚本。

      1.从全志服务器下载安装repo引导脚本,将username替换成客户下载账号的用户名

      $ git clone ssh://username@sdk.allwinnertech.com/git_repo/repo.git

      2.修改repo/repo文件中下面一行,将username替换成客户下载账号的用户名

      REPO_URL='ssh://username@sdk.allwinnertech.com/git_repo/repo.git'

      3.把repo引导脚本添加到自己计算机环境变量中

      $ cp repo/repo /usr/bin/repo $ chmod 777 /usr/bin/repo****
      ×××××××××××××××××××××××××××××××××××××××××××××××××××××××××

      发布在 MR Series
      D
      板砖
    • 回复: 请问淘宝上面的cklink可以调试d1吗?

      @whycan cklink可以调试D1。

      发布在 MR Series
      D
      板砖
    • 回复: 请问淘宝上面的cklink可以调试d1吗?

      @whycan 不行。需要使用ptg提供的调试工具及配套软件

      发布在 MR Series
      D
      板砖
    • 回复: 两个riscv64交叉编译工具的区别是什么?

      @allwinnertech 您好。0702版本比0528版本优化了部分特性,两版本之间无本质区别。下版本release 的sdk会发布统一工具。

      发布在 MR Series
      D
      板砖
    • 回复: 使用社区buildroot单独编译构建D1开发板系统opensbi出错

      @allwinnertech tina-d1-open发布的opensbi的部分模块实现有扩展指令,tina-d1-open中发布的工具链默认是打开该编译选项--with-arch=rv64gcxthead,但是opensbi中重新指定了-march,
      编译的时候默认是PLATFORM_RISCV_ISA = rv64imafdc,编译的时候重新指定参数 -march=rv64gcxthead,可以参考tina-d1-open中发布的opensbi原码根目录下的编译脚本

      发布在 MR Series
      D
      板砖
    • 回复: D1怎么使用JTAG?

      D1开发板支持JTAG调试方式

      1. 代码修改

        • 由于jtag和sdc的pinmux相同,disable dts文件中的sdc0配置。configs/nezha/linux-5.4/board.dts
        • 打开sysconfig配置中的jtag开关。configs/nezha/sys_config.fex
        • 利用tf卡的插槽连接jtag口进行调试。
      2. 调试工具:CKLINK

        • 详情请咨询平头哥客服,链接地址:https://shop145257746.taobao.com/category-1178679379.htm?spm=a1z10.1-c.w4010-18365123432.7.733637f3p5H4Fu&search=y&catName=������#bd
      发布在 MR Series
      D
      板砖