summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/syslinux/files/0004-pxe-use-bios_fbm-and-real_base_mem-to-calculate-free.patch
diff options
context:
space:
mode:
authorJonathan Liu <net147@gmail.com>2014-02-02 15:58:52 +1100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2014-02-02 11:22:08 +0000
commit4a8ddd8379527705ec8828c9c8e1c9b29a6a4152 (patch)
tree99fb2b31dc0c55d9cddc0680a4616af09ced05e1 /meta/recipes-devtools/syslinux/files/0004-pxe-use-bios_fbm-and-real_base_mem-to-calculate-free.patch
parent1ae1b2885177e29324b6758cb8c123ab7cdbaf9b (diff)
downloadpoky-4a8ddd8379527705ec8828c9c8e1c9b29a6a4152.tar.gz
syslinux: fix booting memtest86+ using pxelinux regression
After syslinux was updated from 4.07 to 6.01, booting memtest86+ using pxelinux would fail: PXELINUX 6.01 2013-07-04 Copyright (C) 1994-2013 H. Peter Anvin et al Loading memtest86... ok Booting kernel failed: invalid argument This backports the necessary upstream patches to allow memtest86+ to boot using pxelinux again. [YOCTO #5501] (From OE-Core rev: ed9ccb8622b347173602be8b2126324d4fdf54d8) Signed-off-by: Jonathan Liu <net147@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-devtools/syslinux/files/0004-pxe-use-bios_fbm-and-real_base_mem-to-calculate-free.patch')
-rw-r--r--meta/recipes-devtools/syslinux/files/0004-pxe-use-bios_fbm-and-real_base_mem-to-calculate-free.patch65
1 files changed, 65 insertions, 0 deletions
diff --git a/meta/recipes-devtools/syslinux/files/0004-pxe-use-bios_fbm-and-real_base_mem-to-calculate-free.patch b/meta/recipes-devtools/syslinux/files/0004-pxe-use-bios_fbm-and-real_base_mem-to-calculate-free.patch
new file mode 100644
index 0000000000..ee0a77237d
--- /dev/null
+++ b/meta/recipes-devtools/syslinux/files/0004-pxe-use-bios_fbm-and-real_base_mem-to-calculate-free.patch
@@ -0,0 +1,65 @@
1Upstream-Status: Backport [c0ea15936de8378d1da6843d3dbddd8dddba1011]
2Signed-off-by: Jonathan Liu <net147@gmail.com>
3
4From f3347f9b09135d71a4effae1614b22dcdf16a7e2 Mon Sep 17 00:00:00 2001
5From: Matt Fleming <matt.fleming@intel.com>
6Date: Wed, 24 Jul 2013 18:33:14 +0100
7Subject: [PATCH 4/4] pxe: use bios_fbm() and real_base_mem to calculate free
8 space
9
10We don't need to individually add the PXE regions, we already have two
11symbols that denote the memory region that will be freed when calling
12unload_pxe().
13
14This essentially reverts commit 03dda0f1 ("pxe: mark all PXE regions as
15SMT_TERMINAL").
16
17Signed-off-by: Matt Fleming <matt.fleming@intel.com>
18
19Conflicts:
20 core/fs/pxe/bios.c
21---
22 core/fs/pxe/bios.c | 18 +++++++++---------
23 1 file changed, 9 insertions(+), 9 deletions(-)
24
25diff --git a/core/fs/pxe/bios.c b/core/fs/pxe/bios.c
26index 5f61824..ffdffaf 100644
27--- a/core/fs/pxe/bios.c
28+++ b/core/fs/pxe/bios.c
29@@ -94,24 +94,24 @@ static const struct pxenv_t *memory_scan_for_pxenv_struct(void)
30
31 static int pxelinux_scan_memory(scan_memory_callback_t callback, void *data)
32 {
33+ addr_t start, size;
34 int rv = 0;
35
36+ if (KeepPXE)
37+ return 0;
38+
39 /*
40 * If we are planning on calling unload_pxe() and unmapping the PXE
41 * region before we transfer control away from PXELINUX we can mark
42 * that region as SMT_TERMINAL to indicate that the region will
43 * become free at some point in the future.
44 */
45- if (!KeepPXE) {
46- dprintf("Marking PXE code region 0x%x - 0x%x as SMT_TERMINAL\n",
47- pxe_code_start, pxe_code_start + pxe_code_size);
48- rv = callback(data, pxe_code_start, pxe_code_size, SMT_TERMINAL);
49-
50- dprintf("Marking PXE data region 0x%x - 0x%x as SMT_TERMINAL\n",
51- pxe_data_start, pxe_data_start + pxe_data_size);
52- rv = callback(data, pxe_data_start, pxe_data_size, SMT_TERMINAL);
53- }
54+ start = bios_fbm() << 10;
55+ size = (real_base_mem - bios_fbm()) << 10;
56+ dprintf("Marking PXE region 0x%x - 0x%x as SMT_TERMINAL\n",
57+ start, start + size);
58
59+ callback(data, start, size, SMT_TERMINAL);
60 return rv;
61 }
62
63--
641.8.5.3
65