龙芯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

相关文章

Go语言开发实现查询IP信息的MCP服务器

《Go语言开发实现查询IP信息的MCP服务器》随着MCP的快速普及和广泛应用,MCP服务器也层出不穷,本文将详细介绍如何在Go语言中使用go-mcp库来开发一个查询IP信息的MCP... 目录前言mcp-ip-geo 服务器目录结构说明查询 IP 信息功能实现工具实现工具管理查询单个 IP 信息工具的实现服

Python列表去重的4种核心方法与实战指南详解

《Python列表去重的4种核心方法与实战指南详解》在Python开发中,处理列表数据时经常需要去除重复元素,本文将详细介绍4种最实用的列表去重方法,有需要的小伙伴可以根据自己的需要进行选择... 目录方法1:集合(set)去重法(最快速)方法2:顺序遍历法(保持顺序)方法3:副本删除法(原地修改)方法4:

在Spring Boot中浅尝内存泄漏的实战记录

《在SpringBoot中浅尝内存泄漏的实战记录》本文给大家分享在SpringBoot中浅尝内存泄漏的实战记录,结合实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录使用静态集合持有对象引用,阻止GC回收关键点:可执行代码:验证:1,运行程序(启动时添加JVM参数限制堆大小):2,访问 htt

使用Python开发一个带EPUB转换功能的Markdown编辑器

《使用Python开发一个带EPUB转换功能的Markdown编辑器》Markdown因其简单易用和强大的格式支持,成为了写作者、开发者及内容创作者的首选格式,本文将通过Python开发一个Markd... 目录应用概览代码结构与核心组件1. 初始化与布局 (__init__)2. 工具栏 (setup_t

Spring Shell 命令行实现交互式Shell应用开发

《SpringShell命令行实现交互式Shell应用开发》本文主要介绍了SpringShell命令行实现交互式Shell应用开发,能够帮助开发者快速构建功能丰富的命令行应用程序,具有一定的参考价... 目录引言一、Spring Shell概述二、创建命令类三、命令参数处理四、命令分组与帮助系统五、自定义S

Python通过模块化开发优化代码的技巧分享

《Python通过模块化开发优化代码的技巧分享》模块化开发就是把代码拆成一个个“零件”,该封装封装,该拆分拆分,下面小编就来和大家简单聊聊python如何用模块化开发进行代码优化吧... 目录什么是模块化开发如何拆分代码改进版:拆分成模块让模块更强大:使用 __init__.py你一定会遇到的问题模www.

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA

使用Python开发一个简单的本地图片服务器

《使用Python开发一个简单的本地图片服务器》本文介绍了如何结合wxPython构建的图形用户界面GUI和Python内建的Web服务器功能,在本地网络中搭建一个私人的,即开即用的网页相册,文中的示... 目录项目目标核心技术栈代码深度解析完整代码工作流程主要功能与优势潜在改进与思考运行结果总结你是否曾经

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis

MyBatis 动态 SQL 优化之标签的实战与技巧(常见用法)

《MyBatis动态SQL优化之标签的实战与技巧(常见用法)》本文通过详细的示例和实际应用场景,介绍了如何有效利用这些标签来优化MyBatis配置,提升开发效率,确保SQL的高效执行和安全性,感... 目录动态SQL详解一、动态SQL的核心概念1.1 什么是动态SQL?1.2 动态SQL的优点1.3 动态S