diff options
author | Jonathan Liu <net147@gmail.com> | 2014-02-02 15:58:52 +1100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2014-02-02 11:22:08 +0000 |
commit | 4a8ddd8379527705ec8828c9c8e1c9b29a6a4152 (patch) | |
tree | 99fb2b31dc0c55d9cddc0680a4616af09ced05e1 /meta/recipes-devtools/syslinux/files/0004-pxe-use-bios_fbm-and-real_base_mem-to-calculate-free.patch | |
parent | 1ae1b2885177e29324b6758cb8c123ab7cdbaf9b (diff) | |
download | poky-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.patch | 65 |
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 @@ | |||
1 | Upstream-Status: Backport [c0ea15936de8378d1da6843d3dbddd8dddba1011] | ||
2 | Signed-off-by: Jonathan Liu <net147@gmail.com> | ||
3 | |||
4 | From f3347f9b09135d71a4effae1614b22dcdf16a7e2 Mon Sep 17 00:00:00 2001 | ||
5 | From: Matt Fleming <matt.fleming@intel.com> | ||
6 | Date: Wed, 24 Jul 2013 18:33:14 +0100 | ||
7 | Subject: [PATCH 4/4] pxe: use bios_fbm() and real_base_mem to calculate free | ||
8 | space | ||
9 | |||
10 | We don't need to individually add the PXE regions, we already have two | ||
11 | symbols that denote the memory region that will be freed when calling | ||
12 | unload_pxe(). | ||
13 | |||
14 | This essentially reverts commit 03dda0f1 ("pxe: mark all PXE regions as | ||
15 | SMT_TERMINAL"). | ||
16 | |||
17 | Signed-off-by: Matt Fleming <matt.fleming@intel.com> | ||
18 | |||
19 | Conflicts: | ||
20 | core/fs/pxe/bios.c | ||
21 | --- | ||
22 | core/fs/pxe/bios.c | 18 +++++++++--------- | ||
23 | 1 file changed, 9 insertions(+), 9 deletions(-) | ||
24 | |||
25 | diff --git a/core/fs/pxe/bios.c b/core/fs/pxe/bios.c | ||
26 | index 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 | -- | ||
64 | 1.8.5.3 | ||
65 | |||