版本描述
源码名称:pmon-loongarch
编译工具:现支持GCC8.3
PMON基线版本:基于 PMON 2000
PMON版本号:PMON 5.0.x-Release
搭建X86交叉编译环境
编译器:loongarch64-linux-gnu-2021-04-22-vector.tgz
开发机系统:Ubuntu 16.04为例进行操作步骤。
1、安装编译需要的库
# apt-get install acpica-tools bison flex libfl-dev xutils-dev device-tree-compiler libbison-dev
2、解压编译器到/opt目录下
# tar xf loongarch64-linux-gnu-2021-04-22-vector.tar.gz -C /opt/
设置环境变量
设置环境变量的方法有两种:临时设置和永久设置。
临时设置的方法
1、创建一个脚本文件env.sh
文件内容如下:
#!/bin/bash
export PATH=/opt/loongarch64-linux-gnu-2021-04-22/bin:$PATH
export LD_LIBRARY_PATH=/opt/loongarch64-linux-gnu-2021-04-22/lib:/opt/loongarch64-linux-gnu-2021-04-22/loongarch64-linux-gnu/lib:$LD_LIBRARY_PATH
export CROSS_COMPILE=loongarch64-linux-gnu-
export ARCH=loongarch
2、给env.sh添加可执行权限
#chmod +x env.sh
3、执行脚本,生效环境变量
#source env.sh
4、查看是否生效
命令行下输入loongarch然后按Tab键看是否出现loongarch64-linux-gnu相关信息。如出现如下信息,则说明交叉编译器的环境配置成功。接下来只需要在当前终端命令行进行编译UEFI源码即可。
# loongarch
loongarch64-linux-gnu-cpp loongarch64-linux-gnu-gcc-nm loongarch64-linux-gnu-gprof loongarch64-linux-gnu-ranlib
loongarch64-linux-gnu-addr2line loongarch64-linux-gnu-elfedit loongarch64-linux-gnu-gcc-ranlib loongarch64-linux-gnu-ld loongarch64-linux-gnu-readelf
loongarch64-linux-gnu-ar loongarch64-linux-gnu-g++ loongarch64-linux-gnu-gcov loongarch64-linux-gnu-ld.bfd loongarch64-linux-gnu-size
loongarch64-linux-gnu-as loongarch64-linux-gnu-gcc loongarch64-linux-gnu-gcov-dump loongarch64-linux-gnu-nm loongarch64-linux-gnu-strings
loongarch64-linux-gnu-c++ loongarch64-linux-gnu-gcc-8.3.0 loongarch64-linux-gnu-gcov-tool loongarch64-linux-gnu-objcopy loongarch64-linux-gnu-strip
loongarch64-linux-gnu-c++filt loongarch64-linux-gnu-gcc-ar loongarch64-linux-gnu-gfortran loongarch64-linux-gnu-objdump loongarch64-mips-gcc
永久设置方法
临时设置环境变量仅在当前终端窗口的命令行有效,更换终端窗口则需要重新配置。永久配置就是将环境变量写入一些系统启动过程中自动生效的配置文件中,如.bashrc配置文件。这样就不用每次编译之前去执行env.sh脚本了。
1、开打文件,将设置内容写入文件.bashrc文件的末尾
#vim ~/.bashrc
设置内容如下:
export PATH=/opt/loongarch64-linux-gnu-2021-04-22/bin:$PATH
export LD_LIBRARY_PATH=/opt/loongarch64-linux-gnu-2021-04-22/lib:/opt/loongarch64-linux-gnu-2021-04-22/loongarch64-linux-gnu/lib:$LD_LIBRARY_PATH
export CROSS_COMPILE=loongarch64-linux-gnu-
export ARCH=loongarch
保存退出。
2、生效环境变量
生效环境变量的方法有两种:
(1) 可以在命令行通过如下命令进行生效操作
#source ./bashrc
(2) 通过重启系统的方式进行生效操作
#reboot
3、查看是否生效
命令行下输入loongarch然后按Tab键,同上文所述。
编译方法
以3A5000平台为例,pmon配置文件为Target/ls3a5000_7a/conf/ls.3a5000_7a。
1、解压源码
# tar xf pmon-loongarch.tgz
2、拷贝dtc文件
#cp /usr/bin/dtc ./zloader.3a5000_7a/
3、编译并拷贝pmon环境配置文件
#cd tools;make;cp pmoncfg/pmoncfg /usr/bin
4、进入编译目录
#cd ./zloader.3a5000_7a/
5、编译源码
#make cfg;make tgt=rom
编译完成后,会在当前下生成一个gzrom.bin二进制文件。
烧写方法
编程器烧写方法
从板卡上取出Flash芯片放入编程器的座内,选择编程器中对应的Flash型号,导入需要烧写的二进制文件gzrom.bin。点击烧写并等待烧写完毕。由于烧写器型号不一,这里不再进行详细介绍,根据烧写器的说明进行操作即可。
PMON在线烧写方法
1、将烧写的PMON二进制文件gzrom.bin放入U盘。
2、板卡启动之前将U盘插入USB口。
3、启动板卡,等待运行到出现“LOONGSON龙芯”图标,按"c"键。
4、进入pmon的命令行后执行。
pmon> fload /dev/fs/fat@usb0/gzrom.bin
5、通过输入"reboot"命令重启后即为更新后的pmon固件。