Skip to content

Commit

Permalink
3rd: add atf
Browse files Browse the repository at this point in the history
Signed-off-by: Zone.N <[email protected]>
  • Loading branch information
MRNIU committed Feb 11, 2025
1 parent 201f7b9 commit e7e3080
Show file tree
Hide file tree
Showing 5 changed files with 48 additions and 10 deletions.
16 changes: 8 additions & 8 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,13 +22,13 @@ repos:
- id: clang-format
args:
- --style=file
- id: clang-tidy
args:
- --checks=.clang-tidy
- -p=/root/SimpleKernel/build_aarch64/compiler_commands.json
- -extra-arg=--std=c++2b
- --fix
- --header-filter=^(/root/SimpleKernel/build_aarch64/src/).*
# - id: clang-tidy
# args:
# - --checks=.clang-tidy
# - -p=/root/SimpleKernel/build_aarch64/compiler_commands.json
# - -extra-arg=--std=c++2b
# - --fix
# - --header-filter=^(/root/SimpleKernel/build_aarch64/src/).*
# - --exclude-header-filter=^(?/root/SimpleKernel/build_aarch64/src/arch/x86_64|/root/SimpleKernel/build_aarch64/src/arch/aarch64).*
# - id: clang-tidy
# args:
Expand Down Expand Up @@ -56,4 +56,4 @@ repos:
rev: v0.6.13
hooks:
- id: cmake-format
- id: cmake-lint
# - id: cmake-lint
2 changes: 1 addition & 1 deletion 3rd/smccc
Submodule smccc updated 2 files
+7 −0 src/include/smccc.h
+59 −1 src/smccc.c
31 changes: 31 additions & 0 deletions cmake/3rd.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,37 @@ ADD_SUBDIRECTORY (3rd/cpu_io)
# https://github.com/MRNIU/smccc.git
ADD_SUBDIRECTORY (3rd/smccc)

IF(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "aarch64")
# https://github.com/ARM-software/arm-trusted-firmware
# 编译 atf
SET (arm-trusted-firmware_SOURCE_DIR
${CMAKE_SOURCE_DIR}/3rd/arm-trusted-firmware)
SET (arm-trusted-firmware_BINARY_DIR
${CMAKE_BINARY_DIR}/3rd/arm-trusted-firmware)
ADD_CUSTOM_TARGET (
arm-trusted-firmware
COMMENT "build arm-trusted-firmware..."
# make 时编译
ALL
WORKING_DIRECTORY ${arm-trusted-firmware_SOURCE_DIR}
COMMAND ${CMAKE_COMMAND} -E make_directory
${arm-trusted-firmware_BINARY_DIR}
COMMAND
make CROSS_COMPILE=${TOOLCHAIN_PREFIX} FW_JUMP=y
FW_JUMP_ADDR=0x80210000 PLATFORM_RISCV_XLEN=64 PLATFORM=generic
O=${arm-trusted-firmware_BINARY_DIR}
COMMAND
${CMAKE_COMMAND} -E copy_directory
${arm-trusted-firmware_SOURCE_DIR}/include
${arm-trusted-firmware_BINARY_DIR}/include)
ADD_LIBRARY (arm-trusted-firmware-fw_jump INTERFACE)
ADD_DEPENDENCIES (arm-trusted-firmware-fw_jump arm-trusted-firmware)
TARGET_INCLUDE_DIRECTORIES (arm-trusted-firmware-fw_jump
INTERFACE ${dtc_BINARY_DIR}/libfdt)
TARGET_LINK_LIBRARIES (arm-trusted-firmware-fw_jump
INTERFACE ${dtc_BINARY_DIR}/libfdt/libfdt.a)
ENDIF()

IF(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "riscv64")
# https://github.com/riscv-software-src/opensbi.git
# 编译 opensbi
Expand Down
9 changes: 8 additions & 1 deletion src/kernel/arch/aarch64/arch_main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
#include "pl011.h"
#include "psci.h"
#include "sk_cstdio"
#include "smccc.h"

// printf_bare_metal 基本输出实现
extern "C" void _putchar(char character) {
Expand Down Expand Up @@ -90,7 +91,13 @@ void ArchInit(uint32_t argc, const uint8_t* argv) {
std::move(Psci(psci_info.migrate, psci_info.cpu_on, psci_info.cpu_off,
psci_info.cpu_suspend, psci_info.method));

// __asm__ volatile("sev");
// klog::Info("cpu_io::MPIDR_EL1::Read() [0x%X]\n",
// cpu_io::MPIDR_EL1::Read()); auto ret =
// smccc_psci_cpu_on(cpu_io::MPIDR_EL1::Read() | 2, 0x0000000040110018,
// 0);
// if (ret != SMCCC_PSCI_SUCCESS) {
// klog::Err("smccc_psci_cpu_on failed: [%d]\n", ret);
// }
}

void ArchInitSMP(uint32_t argc, const uint8_t* argv) {
Expand Down
Binary file modified tools/ovmf/OVMF_aarch64.fd
Binary file not shown.

0 comments on commit e7e3080

Please sign in to comment.