nb/intel/sandybridge: Do not define tables in a header

Header files are supposed to not make allocations from .bss. Builds
fail if said file is included multiple times. To prevent this from
happening, move the definitions to a C file.

Also, rename raminit_patterns to raminit_tables. This is because more
tables that are not patterns will be added here in subsequent changes.

Tested on Asus P8Z77-V LX2, still boots fine.

Change-Id: If8e3a285ecdc4df9e978ae156be915ced6e1750b
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/39754
Reviewed-by: Patrick Georgi <pgeorgi@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
Angel Pons 2020-03-21 12:45:12 +01:00 committed by Patrick Georgi
parent 0e47ad6d2c
commit 7f6586ff78
4 changed files with 20 additions and 18 deletions

View File

@ -36,6 +36,7 @@ romstage-y += raminit.c
romstage-y += raminit_common.c romstage-y += raminit_common.c
romstage-y += raminit_sandy.c romstage-y += raminit_sandy.c
romstage-y += raminit_ivy.c romstage-y += raminit_ivy.c
romstage-y += raminit_tables.c
romstage-y += ../../../device/dram/ddr3.c romstage-y += ../../../device/dram/ddr3.c
else else
romstage-y += raminit_mrc.c romstage-y += raminit_mrc.c

View File

@ -24,6 +24,7 @@
#include "raminit_native.h" #include "raminit_native.h"
#include "raminit_common.h" #include "raminit_common.h"
#include "raminit_tables.h"
#include "sandybridge.h" #include "sandybridge.h"
/* FIXME: no ECC support */ /* FIXME: no ECC support */
@ -2100,8 +2101,6 @@ static int test_320c(ramctr_timing *ctrl, int channel, int slotrank)
return lanes_ok != ((1 << NUM_LANES) - 1); return lanes_ok != ((1 << NUM_LANES) - 1);
} }
#include "raminit_patterns.h"
static void fill_pattern5(ramctr_timing *ctrl, int channel, int patno) static void fill_pattern5(ramctr_timing *ctrl, int channel, int patno)
{ {
unsigned int i, j; unsigned int i, j;

View File

@ -1,18 +1,7 @@
/* /* SPDX-License-Identifier: GPL-2.0-only */
* This file is part of the coreboot project. /* This file is part of the coreboot project. */
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; version 2 of the License.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#ifndef SANDYBRIDGE_RAMINIT_PATTERNS_H #include "raminit_tables.h"
#define SANDYBRIDGE_RAMINIT_PATTERNS_H
const u32 pattern[32][16] = { const u32 pattern[32][16] = {
{0x00000000, 0x00000000, 0xffffffff, 0xffffffff, {0x00000000, 0x00000000, 0xffffffff, 0xffffffff,
@ -654,5 +643,3 @@ const u8 invert[63][32] = {
0x88, 0xa4, 0x1c, 0xea, 0x11, 0x8c, 0xfb, 0xbe, 0x88, 0xa4, 0x1c, 0xea, 0x11, 0x8c, 0xfb, 0xbe,
0x70, 0x62, 0xec, 0x4e, 0x00, 0x56, 0x0e, 0xa9}, 0x70, 0x62, 0xec, 0x4e, 0x00, 0x56, 0x0e, 0xa9},
}; };
#endif /* SANDYBRIDGE_RAMINIT_PATTERNS_H */

View File

@ -0,0 +1,15 @@
/* SPDX-License-Identifier: GPL-2.0-only */
/* This file is part of the coreboot project. */
#ifndef RAMINIT_TABLES_H
#define RAMINIT_TABLES_H
#include <types.h>
extern const u32 pattern[32][16];
extern const u8 use_base[63][32];
extern const u8 invert[63][32];
#endif /* RAMINIT_TABLES_H */