龙芯LS3A5000固件PMON开发实战

2024-03-08 23:28

本文主要是介绍龙芯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/bashcd zloader.3a5000_7aexport PATH=/opt/loongson-gnu-toolchain-8.3-x86_64-loongarch64-linux-gnu-rc1.2/bin:$PATHmake 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信息与板卡实际信息不符

这篇关于龙芯LS3A5000固件PMON开发实战的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/788766

相关文章

使用DeepSeek API 结合VSCode提升开发效率

《使用DeepSeekAPI结合VSCode提升开发效率》:本文主要介绍DeepSeekAPI与VisualStudioCode(VSCode)结合使用,以提升软件开发效率,具有一定的参考价值... 目录引言准备工作安装必要的 VSCode 扩展配置 DeepSeek API1. 创建 API 请求文件2.

C语言小项目实战之通讯录功能

《C语言小项目实战之通讯录功能》:本文主要介绍如何设计和实现一个简单的通讯录管理系统,包括联系人信息的存储、增加、删除、查找、修改和排序等功能,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录功能介绍:添加联系人模块显示联系人模块删除联系人模块查找联系人模块修改联系人模块排序联系人模块源代码如下

Golang操作DuckDB实战案例分享

《Golang操作DuckDB实战案例分享》DuckDB是一个嵌入式SQL数据库引擎,它与众所周知的SQLite非常相似,但它是为olap风格的工作负载设计的,DuckDB支持各种数据类型和SQL特性... 目录DuckDB的主要优点环境准备初始化表和数据查询单行或多行错误处理和事务完整代码最后总结Duck

基于Python开发电脑定时关机工具

《基于Python开发电脑定时关机工具》这篇文章主要为大家详细介绍了如何基于Python开发一个电脑定时关机工具,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 简介2. 运行效果3. 相关源码1. 简介这个程序就像一个“忠实的管家”,帮你按时关掉电脑,而且全程不需要你多做

Java中的Opencv简介与开发环境部署方法

《Java中的Opencv简介与开发环境部署方法》OpenCV是一个开源的计算机视觉和图像处理库,提供了丰富的图像处理算法和工具,它支持多种图像处理和计算机视觉算法,可以用于物体识别与跟踪、图像分割与... 目录1.Opencv简介Opencv的应用2.Java使用OpenCV进行图像操作opencv安装j

Python中的随机森林算法与实战

《Python中的随机森林算法与实战》本文详细介绍了随机森林算法,包括其原理、实现步骤、分类和回归案例,并讨论了其优点和缺点,通过面向对象编程实现了一个简单的随机森林模型,并应用于鸢尾花分类和波士顿房... 目录1、随机森林算法概述2、随机森林的原理3、实现步骤4、分类案例:使用随机森林预测鸢尾花品种4.1

四种简单方法 轻松进入电脑主板 BIOS 或 UEFI 固件设置

《四种简单方法轻松进入电脑主板BIOS或UEFI固件设置》设置BIOS/UEFI是计算机维护和管理中的一项重要任务,它允许用户配置计算机的启动选项、硬件设置和其他关键参数,该怎么进入呢?下面... 随着计算机技术的发展,大多数主流 PC 和笔记本已经从传统 BIOS 转向了 UEFI 固件。很多时候,我们也

基于Qt开发一个简单的OFD阅读器

《基于Qt开发一个简单的OFD阅读器》这篇文章主要为大家详细介绍了如何使用Qt框架开发一个功能强大且性能优异的OFD阅读器,文中的示例代码讲解详细,有需要的小伙伴可以参考一下... 目录摘要引言一、OFD文件格式解析二、文档结构解析三、页面渲染四、用户交互五、性能优化六、示例代码七、未来发展方向八、结论摘要

Golang使用minio替代文件系统的实战教程

《Golang使用minio替代文件系统的实战教程》本文讨论项目开发中直接文件系统的限制或不足,接着介绍Minio对象存储的优势,同时给出Golang的实际示例代码,包括初始化客户端、读取minio对... 目录文件系统 vs Minio文件系统不足:对象存储:miniogolang连接Minio配置Min

Node.js 中 http 模块的深度剖析与实战应用小结

《Node.js中http模块的深度剖析与实战应用小结》本文详细介绍了Node.js中的http模块,从创建HTTP服务器、处理请求与响应,到获取请求参数,每个环节都通过代码示例进行解析,旨在帮... 目录Node.js 中 http 模块的深度剖析与实战应用一、引言二、创建 HTTP 服务器:基石搭建(一