龙芯LS3A5000固件PMON开发实战

一、LS3A5000+7A2000工业开发板

1.1 硬件信息

  • ls3a5000处理器配置:2.5GHz
  • 内存配置:2路DIMM槽、频率3200Mbps
  • HT频率配置:CPU和7A2000的HT均配置最高速率3200MHz
  • 桥片显存配置:2颗x16的DDR4颗粒,容量共计1GB,速率2400Mbps
  • PCIE:
F0F1HG0
4个X11个X42个X41个X8
  • USB:USB2.0、USB3.0全部使用
  • 显示: HDMI0用作HDMI、VGA使用;HDMI1转换为DP信号,芯片使用LT6711
  • 音频:音频使用I2S信号,codec使用ES8388, codes配置通过7A IIC0 地址0x10
  • UART/CAN:UART与CAN复用,GPIO控制切换通道
  • 温度传感器: 接7A IIC0 地址0X48
  • 看门狗:CPU_GPIO6看门狗使能

1.2 硬件结构图

在这里插入图片描述

二、固件开发准备工作

2.1 资源获取

  • 源码从龙芯获取
  • 交叉工具链 使用最新版本 (rc1.2) , 工具链放到系统 /opt 目录下

2.2 首次编译安装依赖

  • 安装makedepand、make、iasl、gawk
    sudo apt-get install xutils-dev make iasl gawk
  • 安装pmoncfg (可以不操作)
    sudo apt-get install bison flex build-essential patch
    cd pmon-loongarch/tools/pmoncfg
    make
    sudo cp pmoncfg /usr/bin

2.3 创建编译脚本

  • Pmon采用交叉编译,在源码pmon-loongarch目录下创建编译脚本cmd.sh,操作如下:
    vim cmd.sh
  • 将下面内容写到cmd.sh文件里
	#!/bin/bash
	cd zloader.3a5000_7a
	export PATH=/opt/loongson-gnu-toolchain-8.3-x86_64-loongarch64-linux-gnu-rc1.2/bin:$PATH
	make cfg 
	make all tgt=rom  CROSS_COMPILE=loongarch64-linux-gnu- DEBUG=-g
  • 修改cmd.sh执行权限
    sudo chmod 777 cmd.sh
  • 执行脚本编译pmon
    ./cmd.sh

备注:编译完成生成二进制文件 编译完成后在pmon源码目录下的zloader.3a5000_7a/目录下生成gzrom.bin

三、固件PMON配置

3.1 频率配置

在这里插入图片描述

3.2 LS3A5000和LS3A6000差异

在这里插入图片描述

3.3 桥片选择

在这里插入图片描述

3.4 看门狗

在这里插入图片描述

3.5 峰鸣器

在这里插入图片描述

3.6 内存配置

详见:龙芯板贴内存讲解

在这里插入图片描述

3.6.1 板贴内存颗粒参数

在这里插入图片描述

3.6.2 板贴内存颗粒举例

在这里插入图片描述

3.7 关闭未使用设备

在这里插入图片描述

3.8 PCIE配置

在这里插入图片描述

3.9 时钟配置

3.9.1 时钟架构图

在这里插入图片描述

3.9.2 时钟计算方式

在这里插入图片描述

3.9.3 显存频率

在这里插入图片描述

3.10 网络PHY配置

在这里插入图片描述

3.11 I2S音频配置

在这里插入图片描述

3.12 温度传感器

在这里插入图片描述

3.13 制作vbios

板卡使用的是集显,使用默认设计,开发时不需要修改vbios。

在这里插入图片描述

参考:龙芯VBIOS生成工具

3.13.1 vbios格式转化

在这里插入图片描述

四、固件PMON更新

首次更新,只能通过JTAG或烧录器更新

4.1 JTAG烧录

在这里插入图片描述

4.2 在线更新

在这里插入图片描述

五、调试板卡常见问题

5.1 JTAG使用问题

  1. 判断ejtag是否有链接到处理器上
    jtagregs d8 1 1 #读取的值是”000000005a5a5a5a ZZZZ…” 表示链接成功
  2. ejtag链接不上处理器,可以尝试降ejtag频率
    jtag_clk 4
  3. ejtag软件版本
    a、win系统(win7、win10)版本
    b、linux(ubuntu)版本
    c、龙芯(la架构)版本

备注: ejtag使用文档详见ejtag软件目录下doc里的ejtag1.pdf

5.2 上电没有反应

板卡上电后,串口没有任何输出,此时检查硬件电源、时钟以及上电时序是否正常

5.3 卡在HT初始化,报crc错误

检查ht部分硬件电源、时钟

5.4 开机后不断重启

板卡上有硬件看门狗,可以尝试将硬件看门狗关闭掉

5.5 板贴内存颗粒,启动卡死内存训练位置

  1. 内存颗粒信息配置与板卡实际不符
  2. 走线太差

5.6 统信或麒麟系统无法安装

确认系统镜像是否支持pmon引导,与系统厂商申请可以pmon引导的系统镜像文件

5.7 PMON下有显示,系统下没有显示

  1. 系统下可能没有获取到屏幕的EDID信息,导致没有显示输出
  2. vbios信息与板卡实际信息不符
  • 30
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大、猫

感谢支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值