ZXFoundation™ 26h2
Loading...
Searching...
No Matches
protocol.cxxm File Reference

ZXFoundationLoader boot protocol — kernel-side C++23 view. More...

import std;
import crypto.sha256.core;
import zxfoundation.base.config;
import zxfoundation.base.types;
import arch.s390x.cpu.features;
Include dependency graph for protocol.cxxm:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  arch::s390x::init::zxvl::checksum_entry
struct  arch::s390x::init::zxvl::checksum_table
struct  arch::s390x::init::zxfl::cpu_info
 One entry in the CPU map. More...
struct  arch::s390x::init::zxfl::ecag_info
 ECAG CPU attributes. More...
struct  arch::s390x::init::zxfl::mem_region
 One entry in the physical memory map. More...
struct  arch::s390x::init::zxfl::protocol
 ZXFoundationLoader boot protocol. (C++-ify). More...
struct  arch::s390x::init::zxfl::sclp_info
 SCLP facility info detected by loader. More...
struct  arch::s390x::init::zxfl::sysmodule
 System Modules - (sysmodule=N in parmfile). More...
struct  arch::s390x::init::zxfl::systeminfo
 System identification — populated from STSI (EBCDIC converted to ASCII by loader). More...

Functions

constexpr auto arch::s390x::init::zxvl::compute_token (u64 stfle0, u64 schid) noexcept -> u64
auto arch::s390x::init::zxfl::cpu_state_str (u8 state) noexcept -> std::string_view
 Pretty-print a ZXFL CPU state.
auto arch::s390x::init::zxfl::cpu_type_str (u8 type) noexcept -> std::string_view
 Pretty-print a ZXFL CPU type.
auto arch::s390x::init::zxfl::mem_type_str (u32 type) noexcept -> std::string_view
 Pretty-print a ZXFL memory region type.

Variables

constexpr auto arch::s390x::init::zxfl::IPL_TYPE_CCW = 0U
 IPL type values for ipl_info::ipl_type.
constexpr auto arch::s390x::init::zxfl::IPL_TYPE_ECKD = 2U
constexpr auto arch::s390x::init::zxfl::IPL_TYPE_FCP = 1U
constexpr auto arch::s390x::init::zxfl::IPL_TYPE_NVME = 3U
constexpr auto arch::s390x::init::zxfl::IPL_TYPE_UNKNOWN = 0xFFU
constexpr auto arch::s390x::init::zxfl::SCLP_FEAT_CEI = 5U
constexpr auto arch::s390x::init::zxfl::SCLP_FEAT_GPERF = 3U
constexpr auto arch::s390x::init::zxfl::SCLP_FEAT_IB = 4U
constexpr auto arch::s390x::init::zxfl::SCLP_FEAT_SIEF2 = 0U
 SCLP feature bit indices for sclp_info::feature_bits.
constexpr auto arch::s390x::init::zxfl::SCLP_FEAT_SIGPIF = 2U
constexpr auto arch::s390x::init::zxfl::SCLP_FEAT_SIIF = 1U
constexpr auto arch::s390x::init::zxfl::SCLP_FEAT_SKEY = 6U
constexpr auto arch::s390x::init::zxfl::ZXFL_CPU_EVIDENCE_FALLBACK = 0x04U
constexpr auto arch::s390x::init::zxfl::ZXFL_CPU_EVIDENCE_NONE = 0x00U
constexpr auto arch::s390x::init::zxfl::ZXFL_CPU_EVIDENCE_SIGP = 0x01U
constexpr auto arch::s390x::init::zxfl::ZXFL_CPU_EVIDENCE_STSI = 0x02U
constexpr auto arch::s390x::init::zxfl::ZXFL_CPU_MAP_MAX = zxfoundation::base::config::CONFIG_ZX_MAX_CPUS
constexpr auto arch::s390x::init::zxfl::ZXFL_CPU_ONLINE = 0x01U
constexpr auto arch::s390x::init::zxfl::ZXFL_CPU_STOPPED = 0x02U
constexpr auto arch::s390x::init::zxfl::ZXFL_CPU_TYPE_CP = 1U
constexpr auto arch::s390x::init::zxfl::ZXFL_CPU_TYPE_ICF = 3U
constexpr auto arch::s390x::init::zxfl::ZXFL_CPU_TYPE_IFL = 2U
constexpr auto arch::s390x::init::zxfl::ZXFL_CPU_TYPE_UNKNOWN = 0xFFU
constexpr auto arch::s390x::init::zxfl::ZXFL_CPU_TYPE_ZAAP = 5U
constexpr auto arch::s390x::init::zxfl::ZXFL_CPU_TYPE_ZIIP = 4U
constexpr auto arch::s390x::init::zxfl::ZXFL_CPU_UNKNOWN = 0x00U
constexpr u8 arch::s390x::init::zxvl::ZXFL_EXPECTED_DIGEST [crypto::sha256::SHA256_DIGEST_SIZE] {}
 Expected SHA-256 digest of the authorized stage2 loader.
constexpr auto arch::s390x::init::zxfl::ZXFL_FLAG_CMDLINE = 1U << 2
constexpr auto arch::s390x::init::zxfl::ZXFL_FLAG_ECAG = 1U << 12
constexpr auto arch::s390x::init::zxfl::ZXFL_FLAG_LOWCORE = 1U << 3
constexpr auto arch::s390x::init::zxfl::ZXFL_FLAG_MEM_MAP = 1U << 1
constexpr auto arch::s390x::init::zxfl::ZXFL_FLAG_SCLP = 1U << 8
constexpr auto arch::s390x::init::zxfl::ZXFL_FLAG_SMP = 1U << 0
constexpr auto arch::s390x::init::zxfl::ZXFL_FLAG_STFLE = 1U << 4
constexpr auto arch::s390x::init::zxfl::ZXFL_FLAG_SYSINFO = 1U << 5
constexpr auto arch::s390x::init::zxfl::ZXFL_FLAG_TOD = 1U << 6
constexpr auto arch::s390x::init::zxfl::ZXFL_LOADER_MAJOR = 1U
constexpr auto arch::s390x::init::zxfl::ZXFL_LOADER_MINOR = 0U
constexpr auto arch::s390x::init::zxfl::ZXFL_LOWCORE_PHYS = 0x0ULL
constexpr auto arch::s390x::init::zxfl::ZXFL_MAGIC = 0x5A58464CU
constexpr auto arch::s390x::init::zxfl::ZXFL_MEM_KERNEL = 0x04U
constexpr auto arch::s390x::init::zxfl::ZXFL_MEM_LOADER = 0x03U
constexpr auto arch::s390x::init::zxfl::ZXFL_MEM_MAP_MAX = 16U
constexpr auto arch::s390x::init::zxfl::ZXFL_MEM_RESERVED = 0x02U
constexpr auto arch::s390x::init::zxfl::ZXFL_MEM_USABLE = 0x01U
constexpr auto arch::s390x::init::zxfl::ZXFL_MEMPROBE_DIAG = 2
constexpr auto arch::s390x::init::zxfl::ZXFL_MEMPROBE_SCLP = 1
constexpr auto arch::s390x::init::zxfl::ZXFL_MEMPROBE_TPROT = 3
constexpr auto arch::s390x::init::zxfl::ZXFL_MEMPROBE_UNKNOWN = 0
constexpr auto arch::s390x::init::zxfl::ZXFL_OFFSET_KERNEL_STACK_TOP = 400U
constexpr auto arch::s390x::init::zxfl::ZXFL_SEED = 0xA5F0C3E1B2D49687UL
constexpr auto arch::s390x::init::zxfl::ZXFL_VERSION_4 = 0x00000004U
constexpr auto arch::s390x::init::zxvl::ZXVL_CKSUM_ALGO_SHA256 = 0x00000001U
constexpr auto arch::s390x::init::zxvl::ZXVL_CKSUM_MAGIC = 0x5A58564CU
constexpr auto arch::s390x::init::zxvl::ZXVL_CKSUM_MAX_ENTRIES = 16U
constexpr auto arch::s390x::init::zxvl::ZXVL_CKSUM_VERSION = 0x00000001U
constexpr auto arch::s390x::init::zxvl::ZXVL_FRAME_MAGIC_A = 0xC0FFEE00FACADE42UL
constexpr auto arch::s390x::init::zxvl::ZXVL_FRAME_MAGIC_B = 0x1337BABE0DDBA115UL
constexpr auto arch::s390x::init::zxvl::ZXVL_FRAME_SIZE = 64U
constexpr auto arch::s390x::init::zxvl::ZXVL_HS_CHALLENGE = 0xFEEDFACECAFEBABEUL
constexpr auto arch::s390x::init::zxvl::ZXVL_HS_RESPONSE = 0xDEADBEEF0BADF00DUL
constexpr auto arch::s390x::init::zxvl::ZXVL_HS_RESPONSE_HI = 0xDEADBEEFU
constexpr auto arch::s390x::init::zxvl::ZXVL_HS_RESPONSE_LO = 0x0BADF00DU
constexpr auto arch::s390x::init::zxvl::ZXVL_LOCK_EMBED_HI = 0xCCBBCC35U
constexpr auto arch::s390x::init::zxvl::ZXVL_LOCK_EMBED_LO = 0xE5664311U
constexpr auto arch::s390x::init::zxvl::ZXVL_LOCK_EXPECTED = 0xF0A5C3B2E1D49687UL
constexpr auto arch::s390x::init::zxvl::ZXVL_LOCK_MASK = 0x3C1E0F8704B2D596UL
constexpr auto arch::s390x::init::zxvl::ZXVL_LOCK_SENTINEL = 0x5A58464CU
constexpr auto arch::s390x::init::zxvl::ZXVL_PFLAGS_CKSUM = 0x00200004U
constexpr auto arch::s390x::init::zxvl::ZXVL_PFLAGS_ENTRY = 0x00800005U
constexpr auto arch::s390x::init::zxvl::ZXVL_PFLAGS_HS = 0x00400005U
constexpr auto arch::s390x::init::zxvl::ZXVL_PFLAGS_LOCK = 0x00100006U
constexpr auto arch::s390x::init::zxvl::ZXVL_SEED = 0xA5F0C3E1B2D49687UL
constexpr auto arch::s390x::init::zxvl::ZXVL_SEED_HI = 0xA5F0C3E1U
constexpr auto arch::s390x::init::zxvl::ZXVL_SEED_LO = 0xB2D49687U

Detailed Description

ZXFoundationLoader boot protocol — kernel-side C++23 view.

SPDX-License-Identifier: Apache-2.0

Variable Documentation

◆ ZXFL_CPU_TYPE_CP

auto arch::s390x::init::zxfl::ZXFL_CPU_TYPE_CP = 1U
constexprexport
Note
This is NOT z/Architecture CPU Types, this is just ZXFL variables