Nothing Special   »   [go: up one dir, main page]

CN117075973A - 一种基于RISC-V服务器CPU的新型LinuxBoot启动引导方法及系统 - Google Patents

一种基于RISC-V服务器CPU的新型LinuxBoot启动引导方法及系统 Download PDF

Info

Publication number
CN117075973A
CN117075973A CN202310948503.0A CN202310948503A CN117075973A CN 117075973 A CN117075973 A CN 117075973A CN 202310948503 A CN202310948503 A CN 202310948503A CN 117075973 A CN117075973 A CN 117075973A
Authority
CN
China
Prior art keywords
linux
kernel
boot
starting
loads
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202310948503.0A
Other languages
English (en)
Inventor
戴鸿君
蔡雨晴
李冰
翟明杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shandong University
Original Assignee
Shandong University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shandong University filed Critical Shandong University
Priority to CN202310948503.0A priority Critical patent/CN117075973A/zh
Publication of CN117075973A publication Critical patent/CN117075973A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

本发明涉及一种基于RISC‑V服务器CPU的新型LinuxBoot启动引导方法及系统,包括:首先执行ZSBL,加载并跳转到FSBL。然后,FSBL将DTB、OpenSBI和LinuxBoot加载到内存中;OpenSBI首先执行底层初始化,再执行平台早期初始化,相关硬件设备初始化,以及平台最终初始化,最后执行二级引导跳转到LinuxBoot内核;LinuxBoot内核加载u‑root作为initramfs;LinuxBoot内核加载真正的Linux内核映像和设备树,并设置硬件配置和参数,从而启动Linux内核。本发明提高了系统启动的效率和灵活性;实现了服务器系统的快速、可靠和灵活的启动。

Description

一种基于RISC-V服务器CPU的新型LinuxBoot启动引导方法及 系统
技术领域
本发明涉及计算机领域,特别涉及一种基于RISC-V服务器CPU的新型LinuxBoot启动引导方法就系统。
背景技术
UEFI是一种固件接口标准,代替了传统的BIOS(基本输入/输出系统),用于初始化硬件和启动操作系统。UEFI提供了一个可扩展的固件环境,具有更强大的功能和灵活性。它支持多个操作系统、驱动程序和应用程序的加载和执行。UEFI引导程序负责初始化系统硬件、加载操作系统映像和设备驱动程序,并启动操作系统的执行。
LinuxBoot是一个开源项目,旨在用Linux内核替代传统的固件(如BIOS和UEFI)作为系统的启动引导。它采用Linux内核作为引导环境,通过在引导过程中加载Linux内核和用户空间工具集,实现了更快速、可靠和灵活的系统启动。LinuxBoot通过简化引导过程和减少复杂的引导层,提供了一种轻量级、灵活性高的启动解决方案。
在现代计算机系统中,引导过程是操作系统启动的关键步骤之一。传统的启动过程依赖于复杂的引导层和传统的BIOS/UEFI,这些引导层在某些情况下可能会引入额外的复杂性和不稳定性。随着RISC-V架构在服务器领域的应用越来越广泛,对一种更快速、可靠和灵活的LinuxBoot启动引导方法的需求也日益迫切。
发明内容
针对现有的启动过程中对复杂的引导层和传统BIOS/UEFI的依赖,以及在RISC-V服务器CPU应用中的需求,本发明提供了一种基于RISC-V服务器CPU的新型LinuxBoot启动引导方法。该方法通过简化启动过程、减少对传统BIOS/UEFI的依赖,实现了更快速、可靠和灵活的Linux内核启动。
本发明还提供了一种基于RISC-V服务器CPU的新型LinuxBoot启动引导系统。
术语解释:
1、RISC-V:RISC-V是一种开源的指令集架构,它采用了精简指令集、模块化设计和可扩展性的理念。这使得RISC-V处理器设计简单、成本低,并且能够根据需求进行灵活扩展。RISC-V具备全平台支持,广泛应用于各种领域,并且在开放的生态系统中得到了持续的发展。
2、OpenSBI:OpenSBI是一个开源、标准化的超级管理程序二进制接口,旨在简化RISC-V系统软件的开发和移植,提供通用基础、规范接口和可扩展性,以促进RISC-V生态系统的发展和创新。
3、EXT4文件系统:EXT4文件系统是一种高性能、高可靠性的Linux文件系统,通过增加文件系统容量、改进性能和引入更强大的功能,满足了现代计算环境中对文件系统的需求。
4、EXT4文件系统驱动程序:EXT4文件系统驱动程序是Linux操作系统中的一个模块,用于与EXT4文件系统进行交互和管理。它提供了创建、读取、写入、删除和修改文件、目录和文件属性的功能,并提供一致性保护和硬盘空间管理。
5、Hart(硬件线程):在RISC-V中,Hart是指一个处理器核心,可以执行指令流。每个Hart都有一个唯一的标识符,称为Hart ID。初始化Hart涉及设置初始状态、配置寄存器和启动指令流的执行。
6、Console(控制台):Console是系统的标准输入输出设备,用于与用户进行交互和显示调试信息。初始化Console涉及配置输入和输出接口,以及确保正确的输入和输出通道。
7、PMU(Performance Monitoring Unit,硬件性能监控单元):PMU是一个硬件组件,用于监测和记录系统的性能数据,如指令执行次数、缓存命中率等。初始化PMU涉及配置计数器和事件选择,以便进行性能分析和优化。
8、IRQ(Interrupt Request,中断请求):IRQ是指中断请求,用于通知处理器发生了某个外部事件,例如设备输入或时钟中断。初始化IRQ涉及配置中断控制器和中断处理程序,以确保系统能够适时响应和处理中断请求。
9、IPI(Inter-Processor Interrupt,核间中断):IPI是指处理器间的中断,用于处理器之间的通信和协作。初始化IPI涉及配置IPI控制器和处理IPI的中断处理程序,以实现处理器之间的同步和数据共享。
10、TLB(Translation Lookaside Buffer,地址转换后援缓冲器):TLB是一种硬件缓存,用于存储虚拟地址到物理地址的转换映射。初始化TLB涉及配置和填充TLB表项,以确保正确的地址转换和内存访问权限。
11、Timer(计时器):Timer是系统中的计时器设备,用于提供时间基准和定时功能。初始化Timer涉及配置计时器的频率和模式,以及设置中断以实现定时器中断功能。
12、ecall(Environment Call,系统调用):ecall是一种特殊的机器指令,用于从用户态程序中请求操作系统提供的服务。初始化ecall涉及设置ecall处理程序和系统调用接口,以便用户程序可以通过ecall指令与操作系统进行交互。
13、Domain(域):Domain是指处理器的特权级别和权限域,用于隔离和保护不同的软件实体。初始化Domain涉及配置处理器的特权级别和权限模式,以确保正确的权限切换和访问控制。
14、PMP(Physical Memory Protection,物理内存保护):PMP是一种硬件机制,用于保护物理内存的访问权限。初始化PMP涉及设置PMP寄存器和规则,以确保对内存区域的正确保护和访问限制。
15、平台最终初始化:这是指在硬件设备的初始化完成后,执行的最后一步初始化过程。这可能涉及初始化其他平台特定的设备、配置系统启动选项、加载操作系统或应用程序等。
本发明所采用的技术方案如下:
一种基于RISC-V服务器CPU的新型LinuxBoot启动引导方法,包括:
在服务器CPU上电后,首先执行ZSBL,ZSBL负责加载并跳转到FSBL;然后,FSBL将DTB、OpenSBI和LinuxBoot加载到内存中;
OpenSBI首先执行底层初始化,再执行平台早期初始化,相关硬件设备初始化,以及平台最终初始化,最后执行二级引导跳转到LinuxBoot内核;
LinuxBoot内核加载u-root作为initramfs;
LinuxBoot内核加载真正的Linux内核映像和设备树,并设置硬件配置和参数,从而启动Linux内核。
根据本发明优选的,首先执行ZSBL,ZSBL负责加载并跳转到FSBL;然后,FSBL将DTB、OpenSBI和LinuxBoot加载到内存中,包括:
ZSBL初始化处理器的基本环境,包括:设置寄存器、中断向量表和初始化存储器;
ZSBL加载并跳转到FSBL,FSBL从存储介质中将DTB、OpenSBI和LinuxBoot加载到内存中;
FSBL初始化存储器控制器、外设控制器、时钟控制器,并设置内存映射表,FSBL还负责从存储介质中加载和执行下一个阶段的引导加载程序。
根据本发明优选的,OpenSBI首先执行底层初始化,再执行平台早期初始化,相关硬件设备初始化,包括Hart、Console、PMU、IRQ、IPI、TLB、Timer、ecall、Domain、PMP,以及平台最终初始化。
根据本发明优选的,LinuxBoot内核加载真正的Linux内核映像和设备树,并设置硬件配置和参数,从而启动Linux内核,包括:
LinuxBoot内核加载真正的Linux内核映像和设备树,并根据设备树的描述信息进行硬件初始化和配置,描述对象包括:处理器、内存、总线、时钟、中断控制器、定时器、串口、电源管理、存储设备及控制器、输入/输出设备、中断映射和设备节点之间的连接关系;
LinuxBoot内核将控制权转交给Linux内核,从而启动操作系统的完整环境。
根据本发明优选的,通过FSBL将DTB、OpenSBI和LinuxBoot加载到内存中,之后还包括:
FSBL负责建立内存映射表,初始化一部分CPU功能,然后通过跳转指令将控制权传递给OpenSBI。
根据本发明优选的,LinuxBoot内核加载u-root作为initramfs,之后还包括:
u-root使用EXT4文件系统驱动,进行EXT4文件系统的初始化和管理,包括创建分区、格式化、挂载、卸载文件和目录管理、文件系统检查与修复、文件系统参数配置的操作;
u-root在EXT4文件系统中寻找并解析Linux内核的启动配置文件,配置文件中包括多个启动选项,每个启动选项都是一行命令,命令包括Linux内核的路径和启动参数。
根据本发明优选的,LinuxBoot内核加载真正的Linux内核映像和设备树,并设置硬件配置和参数,还包括:
LinuxBoot内核将真正的Linux内核映像加载到内存中,并根据设备树中的属性“bootargs”为Linux内核设置必要的启动参数;
LinuxBoot内核使用kexec命令运行一个新的内核,并将控制权传递给真正的Linux内核,从而启动Linux操作系统的完整功能。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现基于RISC-V服务器CPU的新型LinuxBoot启动引导方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现基于RISC-V服务器CPU的新型LinuxBoot启动引导方法的步骤。
一种基于RISC-V服务器CPU的新型LinuxBoot启动引导系统,包括:
第一加载模块,被配置为:在服务器CPU上电后,首先执行ZSBL,ZSBL负责加载并跳转到FSBL;然后,FSBL将DTB、OpenSBI和LinuxBoot加载到内存中;
关键组件初始化模块,被配置为:OpenSBI首先执行底层初始化,再执行平台早期初始化,相关硬件设备初始化,以及平台最终初始化,最后执行二级引导跳转到LinuxBoot内核;
第二加载模块,被配置为:LinuxBoot内核加载u-root作为initramfs;
第三加载模块,被配置为:LinuxBoot内核加载真正的Linux内核映像和设备树,并设置硬件配置和参数,从而启动Linux内核。
本发明的有益效果在于:
1、本发明通过优化启动流程和减少不必要的环节,本发明可以实现更快速的系统启动,减少启动时间,提升用户体验和生产效率。LinuxBoot启动引导方法能在20秒钟以内完成服务器启动,而UEFI需要几分钟的时间。
2、本发明通过引入可靠的启动组件和框架,如OpenSBI和LinuxBoot,本发明能够确保系统的稳定性和可靠性。同时,通过使用设备树来描述系统硬件配置和设备驱动关系,可以减少硬件兼容性问题,提升系统的兼容性和稳定性。
3、本发明通过使用u-root作为initramfs,本发明提供了灵活的文件系统初始化和管理能力。u-root可以进行EXT4分区文件系统的初始化、格式化、挂载和卸载等操作,同时解析Linux内核的启动配置文件,使得系统管理员可以灵活配置和管理多个Linux内核的启动参数和路径。
4、本发明通过简化启动过程、减少对传统BIOS/UEFI的依赖,提高了系统启动的效率和灵活性。本发明可应用于RISC-V架构的服务器领域,为服务器系统的快速、可靠和灵活的启动提供了有益的技术解决方案。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。
图1为本发明提出的一种基于RISC-V服务器CPU的LinuxBoot启动引导方法的流程图。
图2为启动配置文件的样例图。
具体实施方式
下面结合说明书附图和实施例对本发明作进一步限定,但不限于此。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
实施例1
一种基于RISC-V服务器CPU的新型LinuxBoot启动引导方法,如图1所示,包括:
S110:在服务器CPU上电后,首先执行ZSBL,ZSBL负责加载并跳转到FSBL;然后,FSBL将DTB、OpenSBI和LinuxBoot加载到内存中;
S120:OpenSBI首先执行底层初始化,再执行平台早期初始化,相关硬件设备初始化,以及平台最终初始化,最后执行二级引导跳转到LinuxBoot内核;
S130:LinuxBoot内核加载u-root作为initramfs;
S140:LinuxBoot内核加载真正的Linux内核映像和设备树,并设置硬件配置和参数,从而启动Linux内核。
实施例2
根据实施例1所述的一种基于RISC-V服务器CPU的新型LinuxBoot启动引导方法,其区别在于:
本实施例以北京算能科技公司设计的基于SG2042 EVB开发板为例;
在SG2042 EVB开发板上电后,首先执行ZSBL,ZSBL负责加载并跳转到FSBL;然后,FSBL将DTB、OpenSBI和LinuxBoot加载到内存中,包括:
ZSBL是RISC-V服务器CPU系统启动的第零阶段,它是固化在处理器中的引导固件(Boot ROM),位于处理器复位向量地址处;
ZSBL初始化处理器的基本环境,包括:设置寄存器、中断向量表和初始化存储器;
ZSBL加载并跳转到FSBL,FSBL从存储介质(如闪存、硬盘等)中将DTB、OpenSBI和LinuxBoot加载到内存中;
在RISC-V的启动过程中,ZSBL是一个关键组件。它是位于处理器复位向量地址处的简单固件程序,负责初始化处理器和外围设备,并加载更复杂的引导加载程序。ZSBL的主要任务是建立基本的硬件环境,包括设置寄存器、中断向量表和初始化存储器等。ZSBL通常在启动过程的最初阶段运行,然后将转交控制权给更高级别的引导加载程序,后者可以进一步加载操作系统或其他应用程序。
FSBL是引导加载程序的第二个阶段,也称为主引导加载程序。它通常位于非易失性存储器(如闪存)中,由ZSBL加载和执行。FSBL的主要任务是完成更加复杂的系统初始化和配置。FSBL初始化存储器控制器、外设控制器、时钟控制器,并设置内存映射表,以便操作系统或固件可以正确访问和管理系统资源。FSBL还负责从存储介质中加载和执行下一个阶段的引导加载程序。
DTB是一种描述计算机硬件设备信息的数据结构。在RISC-V服务器系统中,DTB用于向操作系统提供硬件配置信息。ZSBL会加载DTB文件到内存中的特定地址,以便后续的软件组件可以读取并解析DTB中的设备信息。
OpenSBI首先执行底层初始化,再执行平台早期初始化,相关硬件设备初始化,包括Hart、Console、PMU、IRQ、IPI、TLB、Timer、ecall、Domain、PMP,以及平台最终初始化。一旦这些组件初始化完成,OpenSBI将跳转到LinuxBoot内核,将控制权交给后者,从而继续系统的启动过程。这个过程确保了硬件和基本的运行环境正确初始化,为后续的操作系统启动做好准备。
在SG2042 EVB开发板的启动过程中,FSBL和OpenSBI的作用相当于UEFI的SEC和PEI阶段,都是进行最少的必要硬件初始化,后面的很多硬件初始化都依靠Linux内核的驱动来完成。
LinuxBoot内核加载u-root作为initramfs;具体的,OpenSBI运行完将控制权转交给LinuxBoot内核,它可以使用Linux内核功能替换特定的UEFI功能,然后在计算机上启动实际的生产内核。特定于LinuxBoot的内核配置文件提供了所需的Linux内核功能,而不会因不必要的驱动程序而使BIOS的大小膨胀。LinuxBoot加载u-root作为initramfs,它将成为LinuxBoot的用户空间。u-root提供了各种命令和工具,用于执行启动过程中的各种任务。它可以用于加载和配置设备驱动程序、挂载文件系统、执行系统初始化脚本等。当LinuxBoot内核完成所有必要的初始化和配置任务后,它会将控制权转交给根文件系统中的第一个进程,通常是init进程。这个进程将继续系统的启动过程,加载操作系统的核心组件,并启动用户空间的完整环境。
当Linux引导时,它需要一个提供引导和启动实用程序的根文件系统。u-root就是一个这样的使用Go语言编写的文件系统,u-root是一个用户空间环境,可以提供一个Linux环境中工作的基本库和实用程序。LinuxBoot使用u-root来创建一个用于此目的的initramfs。initramfs是嵌入在固件映像本身中的根文件系统。它旨在与Linux内核一起放置在闪存设备中,作为LinuxBoot固件映像的一部分。u-root是一个Go用户空间。它包含标准Linux应用程序和命令的工具集。u-root可以在两种不同的模式下创建initramfs:源模式,其中包含:Go工具链二进制文件、一个简单的外壳、通过shell动态编译工具的Go源代码;Busybox(bb)模式:这是一个类似busybox的二进制文件,包含所有请求的实用程序。
LinuxBoot内核加载真正的Linux内核映像和设备树,并设置硬件配置和参数,从而启动Linux内核,包括:
LinuxBoot内核加载真正的Linux内核映像和设备树,并根据设备树的描述信息进行硬件初始化和配置,描述对象包括:处理器、内存、总线、时钟、中断控制器、定时器、串口、电源管理、存储设备及控制器、输入/输出设备、中断映射和设备节点之间的连接关系;
LinuxBoot内核将控制权转交给Linux内核,从而启动操作系统的完整环境。这个过程确保了Linux内核和硬件之间的正确交互和配置,为操作系统的正常运行提供了必要的基础。
经过实践对比可知:采用传统的启动方式,SG2042 EVB开发板从系统上电到操作系统登录界面出现耗时在105s左右,而采用本发明的方案,SG2042 EVB开发板从系统上电到操作系统登录界面出现耗时在50s左右。
实施例3
根据实施例1或2所述的一种基于RISC-V服务器CPU的新型LinuxBoot启动引导方法,其区别在于:
通过FSBL将DTB、OpenSBI和LinuxBoot加载到内存中,之后还包括:
FSBL负责建立内存映射表,初始化一部分CPU功能,然后通过跳转指令将控制权传递给OpenSBI。
LinuxBoot内核加载u-root作为initramfs,它支持EXT4文件系统的驱动程序,EXT4分区支持更大的文件大小和分区容量,提供了灵活的文件系统初始化和管理能力。现有的SG2042 EVB开发板在启动过程中,使用开源框架EDK2实现的UEFI,并不支持EXT4文件系统的驱动程序,需要引导GRUB来支持EXT4文件系统,这无疑增加了启动时间。同时,UEFI引导FAT文件系统中的GRUB,使得UEFI中需要实现SD卡的驱动程序,而本发明可以重用Linux内核支持的SD卡驱动程序。之后还包括:
u-root使用EXT4文件系统驱动,进行EXT4文件系统的初始化和管理,包括创建分区、格式化、挂载、卸载文件和目录管理、文件系统检查与修复、文件系统参数配置的操作;
u-root在EXT4文件系统中寻找并解析Linux内核的启动配置文件,配置文件中包括多个启动选项,每个启动选项都是一行命令,命令包括Linux内核的路径和启动参数。以确保正确启动Linux操作系统。
具体的,图2是启动配置文件的样例。图2的启动配置文件包含多个内核版本的操作系统,同时还可以包括多种平台的启动配置信息,提高了服务器的使用效率。
LinuxBoot内核加载真正的Linux内核映像和设备树,并设置硬件配置和参数,还包括:
LinuxBoot内核将真正的Linux内核映像加载到内存中,并根据设备树中的属性“bootargs”为Linux内核设置必要的启动参数;
LinuxBoot内核使用kexec命令运行一个新的内核,并将控制权传递给真正的Linux内核,从而启动Linux操作系统的完整功能。
具体的,现有的SG2042 EVB开发板在启动过程中,LinuxBoot会默认选择启动配置文件的第一个启动选项,获取启动文件(initrd.img文件和vmlinuz文件)的目标位置和内核启动参数。
本发明提供一种基于RISC-V服务器CPU的新型LinuxBoot启动引导方法,能够提供高效、可靠的服务器CPU启动过程,确保处理器、内存和设备等关键组件正确初始化和配置,从而实现可靠的Linux操作系统的启动。该方法能够减少了对传统BIOS或UEFI固件的依赖,提供了更灵活和可定制的引导方式,适用于RISC-V架构的服务器CPU。
实施例4
一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现实施例1-3任一所述的基于RISC-V服务器CPU的新型LinuxBoot启动引导方法的步骤。
实施例5
一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现实施例1-3任一所述的基于RISC-V服务器CPU的新型LinuxBoot启动引导方法的步骤。
实施例6
一种基于RISC-V服务器CPU的新型LinuxBoot启动引导系统,包括:
第一加载模块,被配置为:在服务器CPU上电后,首先执行ZSBL,ZSBL负责加载并跳转到FSBL;然后,FSBL将DTB、OpenSBI和LinuxBoot加载到内存中;
关键组件初始化模块,被配置为:OpenSBI首先执行底层初始化,再执行平台早期初始化,相关硬件设备初始化,以及平台最终初始化,最后执行二级引导跳转到LinuxBoot内核;
第二加载模块,被配置为:LinuxBoot内核加载u-root作为initramfs;
第三加载模块,被配置为:LinuxBoot内核加载真正的Linux内核映像和设备树,并设置硬件配置和参数,从而启动Linux内核。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。

Claims (10)

1.一种基于RISC-V服务器CPU的新型LinuxBoot启动引导方法,其特征在于,包括:
在服务器CPU上电后,首先执行ZSBL,ZSBL负责加载并跳转到FSBL;然后,FSBL将DTB、OpenSBI和LinuxBoot加载到内存中;
OpenSBI首先执行底层初始化,再执行平台早期初始化,相关硬件设备初始化,以及平台最终初始化,最后执行二级引导跳转到LinuxBoot内核;
LinuxBoot内核加载u-root作为initramfs;
LinuxBoot内核加载真正的Linux内核映像和设备树,并设置硬件配置和参数,从而启动Linux内核。
2.根据权利要求1所述的一种基于RISC-V服务器CPU的新型LinuxBoot启动引导方法,其特征在于,首先执行ZSBL,ZSBL负责加载并跳转到FSBL;然后,FSBL将DTB、OpenSBI和LinuxBoot加载到内存中,包括:
ZSBL初始化处理器的基本环境,包括:设置寄存器、中断向量表和初始化存储器;
ZSBL加载并跳转到FSBL,FSBL从存储介质中将DTB、OpenSBI和LinuxBoot加载到内存中;
FSBL初始化存储器控制器、外设控制器、时钟控制器,并设置内存映射表,FSBL还负责从存储介质中加载和执行下一个阶段的引导加载程序。
3.根据权利要求1所述的一种基于RISC-V服务器CPU的新型LinuxBoot启动引导方法,其特征在于,OpenSBI首先执行底层初始化,再执行平台早期初始化,相关硬件设备初始化,包括Hart、Console、PMU、IRQ、IPI、TLB、Timer、ecall、Domain、PMP,以及平台最终初始化。
4.根据权利要求1所述的一种基于RISC-V服务器CPU的新型LinuxBoot启动引导方法,其特征在于,LinuxBoot内核加载真正的Linux内核映像和设备树,并设置硬件配置和参数,从而启动Linux内核,包括:
LinuxBoot内核加载真正的Linux内核映像和设备树,并根据设备树的描述信息进行硬件初始化和配置,描述对象包括:处理器、内存、总线、时钟、中断控制器、定时器、串口、电源管理、存储设备及控制器、输入/输出设备、中断映射和设备节点之间的连接关系;
LinuxBoot内核将控制权转交给Linux内核,从而启动操作系统的完整环境。
5.根据权利要求1所述的一种基于RISC-V服务器CPU的新型LinuxBoot启动引导方法,其特征在于,通过FSBL将DTB、OpenSBI和LinuxBoot加载到内存中,之后还包括:
FSBL负责建立内存映射表,初始化一部分CPU功能,然后通过跳转指令将控制权传递给OpenSBI。
6.根据权利要求1所述的一种基于RISC-V服务器CPU的新型LinuxBoot启动引导方法,其特征在于,LinuxBoot内核加载u-root作为initramfs,之后还包括:
u-root使用EXT4文件系统驱动,进行EXT4文件系统的初始化和管理,包括创建分区、格式化、挂载、卸载文件和目录管理、文件系统检查与修复、文件系统参数配置的操作;
u-root在EXT4文件系统中寻找并解析Linux内核的启动配置文件,配置文件中包括多个启动选项,每个启动选项都是一行命令,命令包括Linux内核的路径和启动参数。
7.根据权利要求1-6任一所述的一种基于RISC-V服务器CPU的新型LinuxBoot启动引导方法,其特征在于,LinuxBoot内核加载真正的Linux内核映像和设备树,并设置硬件配置和参数,还包括:
LinuxBoot内核将真正的Linux内核映像加载到内存中,并根据设备树中的属性“bootargs”为Linux内核设置必要的启动参数;
LinuxBoot内核使用kexec命令运行一个新的内核,并将控制权传递给真正的Linux内核,从而启动Linux操作系统的完整功能。
8.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1-7任一所述的基于RISC-V服务器CPU的新型LinuxBoot启动引导方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-7任一所述的基于RISC-V服务器CPU的新型LinuxBoot启动引导方法的步骤。
10.一种基于RISC-V服务器CPU的新型LinuxBoot启动引导系统,其特征在于,包括:
第一加载模块,被配置为:在服务器CPU上电后,首先执行ZSBL,ZSBL负责加载并跳转到FSBL;然后,FSBL将DTB、OpenSBI和LinuxBoot加载到内存中;
关键组件初始化模块,被配置为:OpenSBI首先执行底层初始化,再执行平台早期初始化,相关硬件设备初始化,以及平台最终初始化,最后执行二级引导跳转到LinuxBoot内核;
第二加载模块,被配置为:LinuxBoot内核加载u-root作为initramfs;
第三加载模块,被配置为:LinuxBoot内核加载真正的Linux内核映像和设备树,并设置硬件配置和参数,从而启动Linux内核。
CN202310948503.0A 2023-07-31 2023-07-31 一种基于RISC-V服务器CPU的新型LinuxBoot启动引导方法及系统 Pending CN117075973A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310948503.0A CN117075973A (zh) 2023-07-31 2023-07-31 一种基于RISC-V服务器CPU的新型LinuxBoot启动引导方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310948503.0A CN117075973A (zh) 2023-07-31 2023-07-31 一种基于RISC-V服务器CPU的新型LinuxBoot启动引导方法及系统

Publications (1)

Publication Number Publication Date
CN117075973A true CN117075973A (zh) 2023-11-17

Family

ID=88716220

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310948503.0A Pending CN117075973A (zh) 2023-07-31 2023-07-31 一种基于RISC-V服务器CPU的新型LinuxBoot启动引导方法及系统

Country Status (1)

Country Link
CN (1) CN117075973A (zh)

Similar Documents

Publication Publication Date Title
US7134007B2 (en) Method for sharing firmware across heterogeneous processor architectures
CN109478135B (zh) 计算机系统和用于重新引导计算机系统的方法
US8407396B2 (en) Providing block data access for an operating system using solid-state memory
US9483639B2 (en) Service partition virtualization system and method having a secure application
US8533735B2 (en) System for execution context isolation in response to invoking a BIOS kernel function during a driver execution environment (DXE) phase of boot-up of a computer
US10007546B2 (en) Operating-system exchanges using memory-pointer transfers
RU2639693C1 (ru) Способ обработки ресурса, операционная система и устройство
US8429669B2 (en) Virtual machine switching control by prefetching information out of and updating a set of processor control information based on a bitmap having update status
JP2011100431A (ja) 仮想マシン制御装置及び仮想マシン制御方法
US10725770B2 (en) Hot-swapping operating systems using inter-partition application migration
US7454547B1 (en) Data exchange between a runtime environment and a computer firmware in a multi-processor computing system
US20090265708A1 (en) Information Processing Apparatus and Method of Controlling Information Processing Apparatus
US20150261952A1 (en) Service partition virtualization system and method having a secure platform
US10620963B2 (en) Providing fallback drivers for IO devices in a computing system
US10983847B2 (en) Dynamically loadable unikernel binaries
US7111200B2 (en) Apparatus and method for debugging a logical partition
US10853259B2 (en) Exitless extended page table switching for nested hypervisors
US20160077847A1 (en) Synchronization of physical functions and virtual functions within a fabric
CN111782335A (zh) 通过进程内操作系统的扩展应用机制
US7484083B1 (en) Method, apparatus, and computer-readable medium for utilizing BIOS boot specification compliant devices within an extensible firmware interface environment
CN117075973A (zh) 一种基于RISC-V服务器CPU的新型LinuxBoot启动引导方法及系统
US8713545B2 (en) Architecture for accelerated computer processing
US8555046B2 (en) Computer system and its HW abstraction method
Banik et al. System Firmware Architecture
Banik et al. Understanding the BIOS and Minimalistic Design

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination