Project

General

Profile

Actions

Bug #513

open

clear_memory() triggers null dereference exception when running coreboot in long (64-bit) mode

Added by Bill XIE 5 months ago. Updated 5 months ago.

Status:
New
Priority:
Low
Assignee:
-
Category:
coreboot common code
Target version:
Start date:
11/17/2023
Due date:
% Done:

0%

Estimated time:
Affected versions:
Needs backport to:
Affected hardware:
X200
Affected OS:

Description

Enabling CONFIG_USE_EXP_X86_64_SUPPORT and CONFIG_SECURITY_CLEAR_DRAM_ON_REGULAR_BOOT in the mean time on my X200 triggers null dereference exception. Register dump in attached log suggests that clearing DRAM 0000000100000000-0000000180000000 triggers the exception, and the used memset() implementation in src/arch/x86/memset.c seems unable to handle such usage when built against X86_64.


Files

clrmem-amd64-nulderef.log (5.21 KB) clrmem-amd64-nulderef.log Bill XIE, 11/17/2023 09:56 AM
Actions #1

Updated by Patrick Rudolph 5 months ago

That's because the default page tables do not cover anything above 4GiB and the PAE mechanism used on x86_32 isn't used on x86_64.

Actions

Also available in: Atom PDF