summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKyösti Mälkki <kyosti.malkki@gmail.com>2019-01-03 11:38:39 +0200
committerKyösti Mälkki <kyosti.malkki@gmail.com>2019-01-04 17:20:24 +0000
commitc0b1be0ba1d0c87d9670e695c60eeb6ec901a2d8 (patch)
tree5441907a48042d21e459c470a5a514527162fa8c /src
parenta2cfe9e90001fe11f7c7653c9917ea75dd082333 (diff)
downloadcoreboot-c0b1be0ba1d0c87d9670e695c60eeb6ec901a2d8.tar.xz
amdfam10 boards: Call get_bus_conf() just once
It has to be called once before PIRQ and MP table generation. Change-Id: I238c6b4810404d320b36d4f6b4a161c1ff11c8d3 Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com> Reviewed-on: https://review.coreboot.org/c/30630 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Arthur Heymans <arthur@aheymans.xyz> Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Diffstat (limited to 'src')
-rw-r--r--src/mainboard/advansus/a785e-i/get_bus_conf.c6
-rw-r--r--src/mainboard/advansus/a785e-i/irq_tables.c2
-rw-r--r--src/mainboard/advansus/a785e-i/mptable.c2
-rw-r--r--src/mainboard/amd/bimini_fam10/get_bus_conf.c6
-rw-r--r--src/mainboard/amd/bimini_fam10/irq_tables.c2
-rw-r--r--src/mainboard/amd/bimini_fam10/mptable.c2
-rw-r--r--src/mainboard/amd/mahogany_fam10/get_bus_conf.c6
-rw-r--r--src/mainboard/amd/mahogany_fam10/irq_tables.c2
-rw-r--r--src/mainboard/amd/mahogany_fam10/mptable.c2
-rw-r--r--src/mainboard/amd/serengeti_cheetah_fam10/acpi_tables.c2
-rw-r--r--src/mainboard/amd/serengeti_cheetah_fam10/get_bus_conf.c7
-rw-r--r--src/mainboard/amd/serengeti_cheetah_fam10/irq_tables.c2
-rw-r--r--src/mainboard/amd/serengeti_cheetah_fam10/mptable.c2
-rw-r--r--src/mainboard/amd/tilapia_fam10/get_bus_conf.c6
-rw-r--r--src/mainboard/amd/tilapia_fam10/irq_tables.c2
-rw-r--r--src/mainboard/amd/tilapia_fam10/mptable.c2
-rw-r--r--src/mainboard/asus/kcma-d8/get_bus_conf.c6
-rw-r--r--src/mainboard/asus/kcma-d8/irq_tables.c2
-rw-r--r--src/mainboard/asus/kcma-d8/mptable.c2
-rw-r--r--src/mainboard/asus/kfsn4-dre/get_bus_conf.c6
-rw-r--r--src/mainboard/asus/kfsn4-dre/irq_tables.c4
-rw-r--r--src/mainboard/asus/kfsn4-dre/mptable.c1
-rw-r--r--src/mainboard/asus/kgpe-d16/get_bus_conf.c6
-rw-r--r--src/mainboard/asus/kgpe-d16/irq_tables.c2
-rw-r--r--src/mainboard/asus/kgpe-d16/mptable.c2
-rw-r--r--src/mainboard/asus/m4a78-em/get_bus_conf.c6
-rw-r--r--src/mainboard/asus/m4a78-em/mptable.c2
-rw-r--r--src/mainboard/asus/m4a785-m/get_bus_conf.c6
-rw-r--r--src/mainboard/asus/m4a785-m/mptable.c2
-rw-r--r--src/mainboard/asus/m5a88-v/get_bus_conf.c6
-rw-r--r--src/mainboard/asus/m5a88-v/irq_tables.c2
-rw-r--r--src/mainboard/asus/m5a88-v/mptable.c2
-rw-r--r--src/mainboard/avalue/eax-785e/get_bus_conf.c6
-rw-r--r--src/mainboard/avalue/eax-785e/irq_tables.c2
-rw-r--r--src/mainboard/avalue/eax-785e/mptable.c2
-rw-r--r--src/mainboard/gigabyte/ma785gm/get_bus_conf.c6
-rw-r--r--src/mainboard/gigabyte/ma785gm/irq_tables.c2
-rw-r--r--src/mainboard/gigabyte/ma785gm/mptable.c2
-rw-r--r--src/mainboard/gigabyte/ma785gmt/get_bus_conf.c6
-rw-r--r--src/mainboard/gigabyte/ma785gmt/irq_tables.c2
-rw-r--r--src/mainboard/gigabyte/ma785gmt/mptable.c2
-rw-r--r--src/mainboard/gigabyte/ma78gm/get_bus_conf.c6
-rw-r--r--src/mainboard/gigabyte/ma78gm/irq_tables.c2
-rw-r--r--src/mainboard/gigabyte/ma78gm/mptable.c2
-rw-r--r--src/mainboard/hp/dl165_g6_fam10/get_bus_conf.c6
-rw-r--r--src/mainboard/hp/dl165_g6_fam10/mptable.c1
-rw-r--r--src/mainboard/iei/kino-780am2-fam10/get_bus_conf.c6
-rw-r--r--src/mainboard/iei/kino-780am2-fam10/irq_tables.c2
-rw-r--r--src/mainboard/iei/kino-780am2-fam10/mptable.c2
-rw-r--r--src/mainboard/jetway/pa78vm5/get_bus_conf.c6
-rw-r--r--src/mainboard/jetway/pa78vm5/irq_tables.c2
-rw-r--r--src/mainboard/jetway/pa78vm5/mptable.c2
-rw-r--r--src/mainboard/msi/ms9652_fam10/acpi_tables.c1
-rw-r--r--src/mainboard/msi/ms9652_fam10/get_bus_conf.c8
-rw-r--r--src/mainboard/msi/ms9652_fam10/irq_tables.c1
-rw-r--r--src/mainboard/msi/ms9652_fam10/mptable.c1
-rw-r--r--src/mainboard/supermicro/h8dmr_fam10/get_bus_conf.c6
-rw-r--r--src/mainboard/supermicro/h8dmr_fam10/irq_tables.c1
-rw-r--r--src/mainboard/supermicro/h8dmr_fam10/mptable.c1
-rw-r--r--src/mainboard/supermicro/h8qme_fam10/get_bus_conf.c6
-rw-r--r--src/mainboard/supermicro/h8qme_fam10/irq_tables.c1
-rw-r--r--src/mainboard/supermicro/h8qme_fam10/mptable.c1
-rw-r--r--src/mainboard/supermicro/h8scm_fam10/get_bus_conf.c6
-rw-r--r--src/mainboard/supermicro/h8scm_fam10/irq_tables.c2
-rw-r--r--src/mainboard/supermicro/h8scm_fam10/mptable.c2
-rw-r--r--src/mainboard/tyan/s2912_fam10/get_bus_conf.c6
-rw-r--r--src/mainboard/tyan/s2912_fam10/irq_tables.c1
-rw-r--r--src/mainboard/tyan/s2912_fam10/mptable.c1
-rw-r--r--src/northbridge/amd/amdfam10/acpi.c4
-rw-r--r--src/northbridge/amd/amdfam10/get_pci1234.c11
70 files changed, 11 insertions, 226 deletions
diff --git a/src/mainboard/advansus/a785e-i/get_bus_conf.c b/src/mainboard/advansus/a785e-i/get_bus_conf.c
index a7645a8da4..1738bf878e 100644
--- a/src/mainboard/advansus/a785e-i/get_bus_conf.c
+++ b/src/mainboard/advansus/a785e-i/get_bus_conf.c
@@ -48,18 +48,12 @@ u32 hcdnx[] = {
u32 sbdn_rs780;
u32 sbdn_sb800;
-static u32 get_bus_conf_done = 0;
-
void get_bus_conf(void)
{
u32 apicid_base;
struct device *dev;
int i;
- if (get_bus_conf_done == 1)
- return; /* do it only once */
- get_bus_conf_done = 1;
-
sysconf.hc_possible_num = ARRAY_SIZE(pci1234x);
for (i = 0; i < sysconf.hc_possible_num; i++) {
sysconf.pci1234[i] = pci1234x[i];
diff --git a/src/mainboard/advansus/a785e-i/irq_tables.c b/src/mainboard/advansus/a785e-i/irq_tables.c
index fc5edca3e0..b0b8af88eb 100644
--- a/src/mainboard/advansus/a785e-i/irq_tables.c
+++ b/src/mainboard/advansus/a785e-i/irq_tables.c
@@ -53,8 +53,6 @@ unsigned long write_pirq_routing_table(unsigned long addr)
u8 sum = 0;
int i;
- get_bus_conf(); /* it will find out all bus num and apic that share with mptable.c and mptable.c and acpi_tables.c */
-
/* Align the table to be 16 byte aligned. */
addr += 15;
addr &= ~15;
diff --git a/src/mainboard/advansus/a785e-i/mptable.c b/src/mainboard/advansus/a785e-i/mptable.c
index 3952a45d33..5d0650305e 100644
--- a/src/mainboard/advansus/a785e-i/mptable.c
+++ b/src/mainboard/advansus/a785e-i/mptable.c
@@ -49,8 +49,6 @@ static void *smp_write_config_table(void *v)
smp_write_processors(mc);
- get_bus_conf();
-
mptable_write_buses(mc, NULL, &bus_isa);
/* I/O APICs: APIC ID Version State Address */
diff --git a/src/mainboard/amd/bimini_fam10/get_bus_conf.c b/src/mainboard/amd/bimini_fam10/get_bus_conf.c
index b03567c747..2b25770b3b 100644
--- a/src/mainboard/amd/bimini_fam10/get_bus_conf.c
+++ b/src/mainboard/amd/bimini_fam10/get_bus_conf.c
@@ -48,18 +48,12 @@ u32 hcdnx[] = {
u32 sbdn_rs780;
u32 sbdn_sb800;
-static u32 get_bus_conf_done = 0;
-
void get_bus_conf(void)
{
u32 apicid_base;
struct device *dev;
int i;
- if (get_bus_conf_done == 1)
- return; /* do it only once */
- get_bus_conf_done = 1;
-
sysconf.hc_possible_num = ARRAY_SIZE(pci1234x);
for (i = 0; i < sysconf.hc_possible_num; i++) {
sysconf.pci1234[i] = pci1234x[i];
diff --git a/src/mainboard/amd/bimini_fam10/irq_tables.c b/src/mainboard/amd/bimini_fam10/irq_tables.c
index 1125e1f1b3..3b5faabbcb 100644
--- a/src/mainboard/amd/bimini_fam10/irq_tables.c
+++ b/src/mainboard/amd/bimini_fam10/irq_tables.c
@@ -53,8 +53,6 @@ unsigned long write_pirq_routing_table(unsigned long addr)
u8 sum = 0;
int i;
- get_bus_conf(); /* it will find out all bus num and apic that share with mptable.c and mptable.c and acpi_tables.c */
-
/* Align the table to be 16 byte aligned. */
addr += 15;
addr &= ~15;
diff --git a/src/mainboard/amd/bimini_fam10/mptable.c b/src/mainboard/amd/bimini_fam10/mptable.c
index 861327aeb8..07df03a349 100644
--- a/src/mainboard/amd/bimini_fam10/mptable.c
+++ b/src/mainboard/amd/bimini_fam10/mptable.c
@@ -50,8 +50,6 @@ static void *smp_write_config_table(void *v)
smp_write_processors(mc);
- get_bus_conf();
-
mptable_write_buses(mc, NULL, &bus_isa);
/* I/O APICs: APIC ID Version State Address */
diff --git a/src/mainboard/amd/mahogany_fam10/get_bus_conf.c b/src/mainboard/amd/mahogany_fam10/get_bus_conf.c
index d7ca975a5d..3c4894085a 100644
--- a/src/mainboard/amd/mahogany_fam10/get_bus_conf.c
+++ b/src/mainboard/amd/mahogany_fam10/get_bus_conf.c
@@ -48,18 +48,12 @@ u32 hcdnx[] = {
u32 sbdn_rs780;
u32 sbdn_sb700;
-static u32 get_bus_conf_done = 0;
-
void get_bus_conf(void)
{
u32 apicid_base;
struct device *dev;
int i;
- if (get_bus_conf_done == 1)
- return; /* do it only once */
- get_bus_conf_done = 1;
-
sysconf.hc_possible_num = ARRAY_SIZE(pci1234x);
for (i = 0; i < sysconf.hc_possible_num; i++) {
sysconf.pci1234[i] = pci1234x[i];
diff --git a/src/mainboard/amd/mahogany_fam10/irq_tables.c b/src/mainboard/amd/mahogany_fam10/irq_tables.c
index aff85b63ee..526be4f4cd 100644
--- a/src/mainboard/amd/mahogany_fam10/irq_tables.c
+++ b/src/mainboard/amd/mahogany_fam10/irq_tables.c
@@ -54,8 +54,6 @@ unsigned long write_pirq_routing_table(unsigned long addr)
u8 sum = 0;
int i;
- get_bus_conf(); /* it will find out all bus num and apic that share with mptable.c and mptable.c and acpi_tables.c */
-
/* Align the table to be 16 byte aligned. */
addr += 15;
addr &= ~15;
diff --git a/src/mainboard/amd/mahogany_fam10/mptable.c b/src/mainboard/amd/mahogany_fam10/mptable.c
index 458c6146bc..e2b28900fa 100644
--- a/src/mainboard/amd/mahogany_fam10/mptable.c
+++ b/src/mainboard/amd/mahogany_fam10/mptable.c
@@ -39,8 +39,6 @@ static void *smp_write_config_table(void *v)
smp_write_processors(mc);
- get_bus_conf();
-
mptable_write_buses(mc, NULL, &bus_isa);
/* I/O APICs: APIC ID Version State Address */
diff --git a/src/mainboard/amd/serengeti_cheetah_fam10/acpi_tables.c b/src/mainboard/amd/serengeti_cheetah_fam10/acpi_tables.c
index bf8ef2a824..3b3ad5b9f3 100644
--- a/src/mainboard/amd/serengeti_cheetah_fam10/acpi_tables.c
+++ b/src/mainboard/amd/serengeti_cheetah_fam10/acpi_tables.c
@@ -129,8 +129,6 @@ unsigned long mainboard_write_acpi_tables(struct device *device,
int i;
- get_bus_conf(); /* it will get sblk, pci1234, hcdn, and sbdn */
-
/* same htio, but different possition? We may have to copy,
* change HCIN, and recalculate the checknum and add_table
*/
diff --git a/src/mainboard/amd/serengeti_cheetah_fam10/get_bus_conf.c b/src/mainboard/amd/serengeti_cheetah_fam10/get_bus_conf.c
index 2a83d43a61..279a14658a 100644
--- a/src/mainboard/amd/serengeti_cheetah_fam10/get_bus_conf.c
+++ b/src/mainboard/amd/serengeti_cheetah_fam10/get_bus_conf.c
@@ -57,8 +57,6 @@ static unsigned hcdnx[] = {
-static u32 get_bus_conf_done = 0;
-
static u32 get_hcid(u32 i)
{
u32 id = 0;
@@ -92,11 +90,6 @@ void get_bus_conf(void)
int i, j;
struct mb_sysconf_t *m;
- if (get_bus_conf_done == 1)
- return; /* do it only once */
-
- get_bus_conf_done = 1;
-
sysconf.mb = &mb_sysconf;
m = sysconf.mb;
diff --git a/src/mainboard/amd/serengeti_cheetah_fam10/irq_tables.c b/src/mainboard/amd/serengeti_cheetah_fam10/irq_tables.c
index 1ca7f3dc9b..4ce52854b3 100644
--- a/src/mainboard/amd/serengeti_cheetah_fam10/irq_tables.c
+++ b/src/mainboard/amd/serengeti_cheetah_fam10/irq_tables.c
@@ -54,8 +54,6 @@ unsigned long write_pirq_routing_table(unsigned long addr)
struct mb_sysconf_t *m;
- get_bus_conf(); /* it will find out all bus num and apic that share with mptable.c and mptable.c and acpi_tables.c */
-
m = sysconf.mb;
/* Align the table to be 16 byte aligned. */
diff --git a/src/mainboard/amd/serengeti_cheetah_fam10/mptable.c b/src/mainboard/amd/serengeti_cheetah_fam10/mptable.c
index fb9473f008..1ab3ad2e6d 100644
--- a/src/mainboard/amd/serengeti_cheetah_fam10/mptable.c
+++ b/src/mainboard/amd/serengeti_cheetah_fam10/mptable.c
@@ -36,8 +36,6 @@ static void *smp_write_config_table(void *v)
smp_write_processors(mc);
- get_bus_conf();
-
m = sysconf.mb;
mptable_write_buses(mc, NULL, &bus_isa);
diff --git a/src/mainboard/amd/tilapia_fam10/get_bus_conf.c b/src/mainboard/amd/tilapia_fam10/get_bus_conf.c
index d7ca975a5d..3c4894085a 100644
--- a/src/mainboard/amd/tilapia_fam10/get_bus_conf.c
+++ b/src/mainboard/amd/tilapia_fam10/get_bus_conf.c
@@ -48,18 +48,12 @@ u32 hcdnx[] = {
u32 sbdn_rs780;
u32 sbdn_sb700;
-static u32 get_bus_conf_done = 0;
-
void get_bus_conf(void)
{
u32 apicid_base;
struct device *dev;
int i;
- if (get_bus_conf_done == 1)
- return; /* do it only once */
- get_bus_conf_done = 1;
-
sysconf.hc_possible_num = ARRAY_SIZE(pci1234x);
for (i = 0; i < sysconf.hc_possible_num; i++) {
sysconf.pci1234[i] = pci1234x[i];
diff --git a/src/mainboard/amd/tilapia_fam10/irq_tables.c b/src/mainboard/amd/tilapia_fam10/irq_tables.c
index aff85b63ee..526be4f4cd 100644
--- a/src/mainboard/amd/tilapia_fam10/irq_tables.c
+++ b/src/mainboard/amd/tilapia_fam10/irq_tables.c
@@ -54,8 +54,6 @@ unsigned long write_pirq_routing_table(unsigned long addr)
u8 sum = 0;
int i;
- get_bus_conf(); /* it will find out all bus num and apic that share with mptable.c and mptable.c and acpi_tables.c */
-
/* Align the table to be 16 byte aligned. */
addr += 15;
addr &= ~15;
diff --git a/src/mainboard/amd/tilapia_fam10/mptable.c b/src/mainboard/amd/tilapia_fam10/mptable.c
index 458c6146bc..e2b28900fa 100644
--- a/src/mainboard/amd/tilapia_fam10/mptable.c
+++ b/src/mainboard/amd/tilapia_fam10/mptable.c
@@ -39,8 +39,6 @@ static void *smp_write_config_table(void *v)
smp_write_processors(mc);
- get_bus_conf();
-
mptable_write_buses(mc, NULL, &bus_isa);
/* I/O APICs: APIC ID Version State Address */
diff --git a/src/mainboard/asus/kcma-d8/get_bus_conf.c b/src/mainboard/asus/kcma-d8/get_bus_conf.c
index 7f1da1b8cb..c6cce56095 100644
--- a/src/mainboard/asus/kcma-d8/get_bus_conf.c
+++ b/src/mainboard/asus/kcma-d8/get_bus_conf.c
@@ -50,18 +50,12 @@ u32 hcdnx[] = {
u32 sbdn_sr5650;
u32 sbdn_sp5100;
-static u32 get_bus_conf_done = 0;
-
void get_bus_conf(void)
{
u32 apicid_base;
struct device *dev;
int i;
- if (get_bus_conf_done == 1)
- return; /* do it only once */
- get_bus_conf_done = 1;
-
sysconf.hc_possible_num = ARRAY_SIZE(pci1234x);
for (i = 0; i < sysconf.hc_possible_num; i++) {
sysconf.pci1234[i] = pci1234x[i];
diff --git a/src/mainboard/asus/kcma-d8/irq_tables.c b/src/mainboard/asus/kcma-d8/irq_tables.c
index 2ff8a7ad7a..f5e005a627 100644
--- a/src/mainboard/asus/kcma-d8/irq_tables.c
+++ b/src/mainboard/asus/kcma-d8/irq_tables.c
@@ -75,8 +75,6 @@ unsigned long write_pirq_routing_table(unsigned long addr)
u8 sum = 0;
int i;
- get_bus_conf(); /* it will find out all bus num and apic that share with mptable.c and mptable.c and acpi_tables.c */
-
/* Align the table to be 16 byte aligned. */
addr += 15;
addr &= ~15;
diff --git a/src/mainboard/asus/kcma-d8/mptable.c b/src/mainboard/asus/kcma-d8/mptable.c
index 5caadc70f3..786f0b3746 100644
--- a/src/mainboard/asus/kcma-d8/mptable.c
+++ b/src/mainboard/asus/kcma-d8/mptable.c
@@ -44,8 +44,6 @@ static void *smp_write_config_table(void *v)
smp_write_processors(mc);
- get_bus_conf();
-
if (IS_ENABLED(CONFIG_ENABLE_APIC_EXT_ID) && (CONFIG_APIC_ID_OFFSET > 0))
apicid_sp5100 = 0x0;
else
diff --git a/src/mainboard/asus/kfsn4-dre/get_bus_conf.c b/src/mainboard/asus/kfsn4-dre/get_bus_conf.c
index 180f6292c7..4971314d7a 100644
--- a/src/mainboard/asus/kfsn4-dre/get_bus_conf.c
+++ b/src/mainboard/asus/kfsn4-dre/get_bus_conf.c
@@ -60,18 +60,12 @@ static unsigned hcdnx[] = {
0x20202020, 0x20202020,
};
-static unsigned get_bus_conf_done = 0;
-
void get_bus_conf(void)
{
unsigned apicid_base, sbdn;
struct device *dev;
int i;
- if (get_bus_conf_done == 1)
- return; /* Do it only once. */
-
- get_bus_conf_done = 1;
sysconf.hc_possible_num = ARRAY_SIZE(pci1234x);
for (i = 0; i < sysconf.hc_possible_num; i++) {
diff --git a/src/mainboard/asus/kfsn4-dre/irq_tables.c b/src/mainboard/asus/kfsn4-dre/irq_tables.c
index 139b400a0a..a5dc9658dd 100644
--- a/src/mainboard/asus/kfsn4-dre/irq_tables.c
+++ b/src/mainboard/asus/kfsn4-dre/irq_tables.c
@@ -68,10 +68,6 @@ unsigned long write_pirq_routing_table(unsigned long addr)
uint8_t *v, sum = 0;
int i;
- /* get_bus_conf() will find out all bus num and APIC that share with
- * mptable.c and mptable.c.
- */
- get_bus_conf();
sbdn = sysconf.sbdn;
/* Align the table to be 16 byte aligned. */
diff --git a/src/mainboard/asus/kfsn4-dre/mptable.c b/src/mainboard/asus/kfsn4-dre/mptable.c
index 4109306378..387baa4f25 100644
--- a/src/mainboard/asus/kfsn4-dre/mptable.c
+++ b/src/mainboard/asus/kfsn4-dre/mptable.c
@@ -43,7 +43,6 @@ static void *smp_write_config_table(void *v)
smp_write_processors(mc);
- get_bus_conf();
sbdn = sysconf.sbdn;
mptable_write_buses(mc, NULL, &bus_isa);
diff --git a/src/mainboard/asus/kgpe-d16/get_bus_conf.c b/src/mainboard/asus/kgpe-d16/get_bus_conf.c
index 7f1da1b8cb..c6cce56095 100644
--- a/src/mainboard/asus/kgpe-d16/get_bus_conf.c
+++ b/src/mainboard/asus/kgpe-d16/get_bus_conf.c
@@ -50,18 +50,12 @@ u32 hcdnx[] = {
u32 sbdn_sr5650;
u32 sbdn_sp5100;
-static u32 get_bus_conf_done = 0;
-
void get_bus_conf(void)
{
u32 apicid_base;
struct device *dev;
int i;
- if (get_bus_conf_done == 1)
- return; /* do it only once */
- get_bus_conf_done = 1;
-
sysconf.hc_possible_num = ARRAY_SIZE(pci1234x);
for (i = 0; i < sysconf.hc_possible_num; i++) {
sysconf.pci1234[i] = pci1234x[i];
diff --git a/src/mainboard/asus/kgpe-d16/irq_tables.c b/src/mainboard/asus/kgpe-d16/irq_tables.c
index 2ff8a7ad7a..f5e005a627 100644
--- a/src/mainboard/asus/kgpe-d16/irq_tables.c
+++ b/src/mainboard/asus/kgpe-d16/irq_tables.c
@@ -75,8 +75,6 @@ unsigned long write_pirq_routing_table(unsigned long addr)
u8 sum = 0;
int i;
- get_bus_conf(); /* it will find out all bus num and apic that share with mptable.c and mptable.c and acpi_tables.c */
-
/* Align the table to be 16 byte aligned. */
addr += 15;
addr &= ~15;
diff --git a/src/mainboard/asus/kgpe-d16/mptable.c b/src/mainboard/asus/kgpe-d16/mptable.c
index bf468807f0..706a66bcbb 100644
--- a/src/mainboard/asus/kgpe-d16/mptable.c
+++ b/src/mainboard/asus/kgpe-d16/mptable.c
@@ -44,8 +44,6 @@ static void *smp_write_config_table(void *v)
smp_write_processors(mc);
- get_bus_conf();
-
if (IS_ENABLED(CONFIG_ENABLE_APIC_EXT_ID) && (CONFIG_APIC_ID_OFFSET > 0))
apicid_sp5100 = 0x0;
else
diff --git a/src/mainboard/asus/m4a78-em/get_bus_conf.c b/src/mainboard/asus/m4a78-em/get_bus_conf.c
index d7ca975a5d..3c4894085a 100644
--- a/src/mainboard/asus/m4a78-em/get_bus_conf.c
+++ b/src/mainboard/asus/m4a78-em/get_bus_conf.c
@@ -48,18 +48,12 @@ u32 hcdnx[] = {
u32 sbdn_rs780;
u32 sbdn_sb700;
-static u32 get_bus_conf_done = 0;
-
void get_bus_conf(void)
{
u32 apicid_base;
struct device *dev;
int i;
- if (get_bus_conf_done == 1)
- return; /* do it only once */
- get_bus_conf_done = 1;
-
sysconf.hc_possible_num = ARRAY_SIZE(pci1234x);
for (i = 0; i < sysconf.hc_possible_num; i++) {
sysconf.pci1234[i] = pci1234x[i];
diff --git a/src/mainboard/asus/m4a78-em/mptable.c b/src/mainboard/asus/m4a78-em/mptable.c
index 458c6146bc..e2b28900fa 100644
--- a/src/mainboard/asus/m4a78-em/mptable.c
+++ b/src/mainboard/asus/m4a78-em/mptable.c
@@ -39,8 +39,6 @@ static void *smp_write_config_table(void *v)
smp_write_processors(mc);
- get_bus_conf();
-
mptable_write_buses(mc, NULL, &bus_isa);
/* I/O APICs: APIC ID Version State Address */
diff --git a/src/mainboard/asus/m4a785-m/get_bus_conf.c b/src/mainboard/asus/m4a785-m/get_bus_conf.c
index d7ca975a5d..3c4894085a 100644
--- a/src/mainboard/asus/m4a785-m/get_bus_conf.c
+++ b/src/mainboard/asus/m4a785-m/get_bus_conf.c
@@ -48,18 +48,12 @@ u32 hcdnx[] = {
u32 sbdn_rs780;
u32 sbdn_sb700;
-static u32 get_bus_conf_done = 0;
-
void get_bus_conf(void)
{
u32 apicid_base;
struct device *dev;
int i;
- if (get_bus_conf_done == 1)
- return; /* do it only once */
- get_bus_conf_done = 1;
-
sysconf.hc_possible_num = ARRAY_SIZE(pci1234x);
for (i = 0; i < sysconf.hc_possible_num; i++) {
sysconf.pci1234[i] = pci1234x[i];
diff --git a/src/mainboard/asus/m4a785-m/mptable.c b/src/mainboard/asus/m4a785-m/mptable.c
index 458c6146bc..e2b28900fa 100644
--- a/src/mainboard/asus/m4a785-m/mptable.c
+++ b/src/mainboard/asus/m4a785-m/mptable.c
@@ -39,8 +39,6 @@ static void *smp_write_config_table(void *v)
smp_write_processors(mc);
- get_bus_conf();
-
mptable_write_buses(mc, NULL, &bus_isa);
/* I/O APICs: APIC ID Version State Address */
diff --git a/src/mainboard/asus/m5a88-v/get_bus_conf.c b/src/mainboard/asus/m5a88-v/get_bus_conf.c
index c7268c6030..ce663a52b2 100644
--- a/src/mainboard/asus/m5a88-v/get_bus_conf.c
+++ b/src/mainboard/asus/m5a88-v/get_bus_conf.c
@@ -48,18 +48,12 @@ u32 hcdnx[] = {
u32 sbdn_rs780;
u32 sbdn_sb800;
-static u32 get_bus_conf_done = 0;
-
void get_bus_conf(void)
{
u32 apicid_base;
struct device *dev;
int i;
- if (get_bus_conf_done == 1)
- return; /* do it only once */
- get_bus_conf_done = 1;
-
sysconf.hc_possible_num = ARRAY_SIZE(pci1234x);
for (i = 0; i < sysconf.hc_possible_num; i++) {
sysconf.pci1234[i] = pci1234x[i];
diff --git a/src/mainboard/asus/m5a88-v/irq_tables.c b/src/mainboard/asus/m5a88-v/irq_tables.c
index fc5edca3e0..b0b8af88eb 100644
--- a/src/mainboard/asus/m5a88-v/irq_tables.c
+++ b/src/mainboard/asus/m5a88-v/irq_tables.c
@@ -53,8 +53,6 @@ unsigned long write_pirq_routing_table(unsigned long addr)
u8 sum = 0;
int i;
- get_bus_conf(); /* it will find out all bus num and apic that share with mptable.c and mptable.c and acpi_tables.c */
-
/* Align the table to be 16 byte aligned. */
addr += 15;
addr &= ~15;
diff --git a/src/mainboard/asus/m5a88-v/mptable.c b/src/mainboard/asus/m5a88-v/mptable.c
index a5a6b4e825..1d6adc6409 100644
--- a/src/mainboard/asus/m5a88-v/mptable.c
+++ b/src/mainboard/asus/m5a88-v/mptable.c
@@ -49,8 +49,6 @@ static void *smp_write_config_table(void *v)
smp_write_processors(mc);
- get_bus_conf();
-
mptable_write_buses(mc, NULL, &bus_isa);
/* I/O APICs: APIC ID Version State Address */
diff --git a/src/mainboard/avalue/eax-785e/get_bus_conf.c b/src/mainboard/avalue/eax-785e/get_bus_conf.c
index c7268c6030..ce663a52b2 100644
--- a/src/mainboard/avalue/eax-785e/get_bus_conf.c
+++ b/src/mainboard/avalue/eax-785e/get_bus_conf.c
@@ -48,18 +48,12 @@ u32 hcdnx[] = {
u32 sbdn_rs780;
u32 sbdn_sb800;
-static u32 get_bus_conf_done = 0;
-
void get_bus_conf(void)
{
u32 apicid_base;
struct device *dev;
int i;
- if (get_bus_conf_done == 1)
- return; /* do it only once */
- get_bus_conf_done = 1;
-
sysconf.hc_possible_num = ARRAY_SIZE(pci1234x);
for (i = 0; i < sysconf.hc_possible_num; i++) {
sysconf.pci1234[i] = pci1234x[i];
diff --git a/src/mainboard/avalue/eax-785e/irq_tables.c b/src/mainboard/avalue/eax-785e/irq_tables.c
index fc5edca3e0..b0b8af88eb 100644
--- a/src/mainboard/avalue/eax-785e/irq_tables.c
+++ b/src/mainboard/avalue/eax-785e/irq_tables.c
@@ -53,8 +53,6 @@ unsigned long write_pirq_routing_table(unsigned long addr)
u8 sum = 0;
int i;
- get_bus_conf(); /* it will find out all bus num and apic that share with mptable.c and mptable.c and acpi_tables.c */
-
/* Align the table to be 16 byte aligned. */
addr += 15;
addr &= ~15;
diff --git a/src/mainboard/avalue/eax-785e/mptable.c b/src/mainboard/avalue/eax-785e/mptable.c
index cbaf06b927..2d39f1cb78 100644
--- a/src/mainboard/avalue/eax-785e/mptable.c
+++ b/src/mainboard/avalue/eax-785e/mptable.c
@@ -49,8 +49,6 @@ static void *smp_write_config_table(void *v)
smp_write_processors(mc);
- get_bus_conf();
-
mptable_write_buses(mc, NULL, &bus_isa);
/* I/O APICs: APIC ID Version State Address */
diff --git a/src/mainboard/gigabyte/ma785gm/get_bus_conf.c b/src/mainboard/gigabyte/ma785gm/get_bus_conf.c
index d7ca975a5d..3c4894085a 100644
--- a/src/mainboard/gigabyte/ma785gm/get_bus_conf.c
+++ b/src/mainboard/gigabyte/ma785gm/get_bus_conf.c
@@ -48,18 +48,12 @@ u32 hcdnx[] = {
u32 sbdn_rs780;
u32 sbdn_sb700;
-static u32 get_bus_conf_done = 0;
-
void get_bus_conf(void)
{
u32 apicid_base;
struct device *dev;
int i;
- if (get_bus_conf_done == 1)
- return; /* do it only once */
- get_bus_conf_done = 1;
-
sysconf.hc_possible_num = ARRAY_SIZE(pci1234x);
for (i = 0; i < sysconf.hc_possible_num; i++) {
sysconf.pci1234[i] = pci1234x[i];
diff --git a/src/mainboard/gigabyte/ma785gm/irq_tables.c b/src/mainboard/gigabyte/ma785gm/irq_tables.c
index aff85b63ee..526be4f4cd 100644
--- a/src/mainboard/gigabyte/ma785gm/irq_tables.c
+++ b/src/mainboard/gigabyte/ma785gm/irq_tables.c
@@ -54,8 +54,6 @@ unsigned long write_pirq_routing_table(unsigned long addr)
u8 sum = 0;
int i;
- get_bus_conf(); /* it will find out all bus num and apic that share with mptable.c and mptable.c and acpi_tables.c */
-
/* Align the table to be 16 byte aligned. */
addr += 15;
addr &= ~15;
diff --git a/src/mainboard/gigabyte/ma785gm/mptable.c b/src/mainboard/gigabyte/ma785gm/mptable.c
index 458c6146bc..e2b28900fa 100644
--- a/src/mainboard/gigabyte/ma785gm/mptable.c
+++ b/src/mainboard/gigabyte/ma785gm/mptable.c
@@ -39,8 +39,6 @@ static void *smp_write_config_table(void *v)
smp_write_processors(mc);
- get_bus_conf();
-
mptable_write_buses(mc, NULL, &bus_isa);
/* I/O APICs: APIC ID Version State Address */
diff --git a/src/mainboard/gigabyte/ma785gmt/get_bus_conf.c b/src/mainboard/gigabyte/ma785gmt/get_bus_conf.c
index d7ca975a5d..3c4894085a 100644
--- a/src/mainboard/gigabyte/ma785gmt/get_bus_conf.c
+++ b/src/mainboard/gigabyte/ma785gmt/get_bus_conf.c
@@ -48,18 +48,12 @@ u32 hcdnx[] = {
u32 sbdn_rs780;
u32 sbdn_sb700;
-static u32 get_bus_conf_done = 0;
-
void get_bus_conf(void)
{
u32 apicid_base;
struct device *dev;
int i;
- if (get_bus_conf_done == 1)
- return; /* do it only once */
- get_bus_conf_done = 1;
-
sysconf.hc_possible_num = ARRAY_SIZE(pci1234x);
for (i = 0; i < sysconf.hc_possible_num; i++) {
sysconf.pci1234[i] = pci1234x[i];
diff --git a/src/mainboard/gigabyte/ma785gmt/irq_tables.c b/src/mainboard/gigabyte/ma785gmt/irq_tables.c
index aff85b63ee..526be4f4cd 100644
--- a/src/mainboard/gigabyte/ma785gmt/irq_tables.c
+++ b/src/mainboard/gigabyte/ma785gmt/irq_tables.c
@@ -54,8 +54,6 @@ unsigned long write_pirq_routing_table(unsigned long addr)
u8 sum = 0;
int i;
- get_bus_conf(); /* it will find out all bus num and apic that share with mptable.c and mptable.c and acpi_tables.c */
-
/* Align the table to be 16 byte aligned. */
addr += 15;
addr &= ~15;
diff --git a/src/mainboard/gigabyte/ma785gmt/mptable.c b/src/mainboard/gigabyte/ma785gmt/mptable.c
index 458c6146bc..e2b28900fa 100644
--- a/src/mainboard/gigabyte/ma785gmt/mptable.c
+++ b/src/mainboard/gigabyte/ma785gmt/mptable.c
@@ -39,8 +39,6 @@ static void *smp_write_config_table(void *v)
smp_write_processors(mc);
- get_bus_conf();
-
mptable_write_buses(mc, NULL, &bus_isa);
/* I/O APICs: APIC ID Version State Address */
diff --git a/src/mainboard/gigabyte/ma78gm/get_bus_conf.c b/src/mainboard/gigabyte/ma78gm/get_bus_conf.c
index d7ca975a5d..3c4894085a 100644
--- a/src/mainboard/gigabyte/ma78gm/get_bus_conf.c
+++ b/src/mainboard/gigabyte/ma78gm/get_bus_conf.c
@@ -48,18 +48,12 @@ u32 hcdnx[] = {
u32 sbdn_rs780;
u32 sbdn_sb700;
-static u32 get_bus_conf_done = 0;
-
void get_bus_conf(void)
{
u32 apicid_base;
struct device *dev;
int i;
- if (get_bus_conf_done == 1)
- return; /* do it only once */
- get_bus_conf_done = 1;
-
sysconf.hc_possible_num = ARRAY_SIZE(pci1234x);
for (i = 0; i < sysconf.hc_possible_num; i++) {
sysconf.pci1234[i] = pci1234x[i];
diff --git a/src/mainboard/gigabyte/ma78gm/irq_tables.c b/src/mainboard/gigabyte/ma78gm/irq_tables.c
index aff85b63ee..526be4f4cd 100644
--- a/src/mainboard/gigabyte/ma78gm/irq_tables.c
+++ b/src/mainboard/gigabyte/ma78gm/irq_tables.c
@@ -54,8 +54,6 @@ unsigned long write_pirq_routing_table(unsigned long addr)
u8 sum = 0;
int i;
- get_bus_conf(); /* it will find out all bus num and apic that share with mptable.c and mptable.c and acpi_tables.c */
-
/* Align the table to be 16 byte aligned. */
addr += 15;
addr &= ~15;
diff --git a/src/mainboard/gigabyte/ma78gm/mptable.c b/src/mainboard/gigabyte/ma78gm/mptable.c
index 458c6146bc..e2b28900fa 100644
--- a/src/mainboard/gigabyte/ma78gm/mptable.c
+++ b/src/mainboard/gigabyte/ma78gm/mptable.c
@@ -39,8 +39,6 @@ static void *smp_write_config_table(void *v)
smp_write_processors(mc);
- get_bus_conf();
-
mptable_write_buses(mc, NULL, &bus_isa);
/* I/O APICs: APIC ID Version State Address */
diff --git a/src/mainboard/hp/dl165_g6_fam10/get_bus_conf.c b/src/mainboard/hp/dl165_g6_fam10/get_bus_conf.c
index 65a4d8582d..44066e9253 100644
--- a/src/mainboard/hp/dl165_g6_fam10/get_bus_conf.c
+++ b/src/mainboard/hp/dl165_g6_fam10/get_bus_conf.c
@@ -55,8 +55,6 @@ static unsigned hcdnx[] = {
0x20202020, 0x20202020,
};
-static unsigned get_bus_conf_done = 0;
-
void get_bus_conf(void)
{
@@ -66,10 +64,6 @@ void get_bus_conf(void)
int i;
struct mb_sysconf_t *m;
- if (get_bus_conf_done == 1)
- return; //do it only once
-
- get_bus_conf_done = 1;
sysconf.mb = &mb_sysconf;
diff --git a/src/mainboard/hp/dl165_g6_fam10/mptable.c b/src/mainboard/hp/dl165_g6_fam10/mptable.c
index b65f12ca8c..9e5976feba 100644
--- a/src/mainboard/hp/dl165_g6_fam10/mptable.c
+++ b/src/mainboard/hp/dl165_g6_fam10/mptable.c
@@ -48,7 +48,6 @@ static void *smp_write_config_table(void *v)
smp_write_processors(mc);
- get_bus_conf();
m = sysconf.mb;
mptable_write_buses(mc, NULL, &isa_bus);
diff --git a/src/mainboard/iei/kino-780am2-fam10/get_bus_conf.c b/src/mainboard/iei/kino-780am2-fam10/get_bus_conf.c
index d7ca975a5d..3c4894085a 100644
--- a/src/mainboard/iei/kino-780am2-fam10/get_bus_conf.c
+++ b/src/mainboard/iei/kino-780am2-fam10/get_bus_conf.c
@@ -48,18 +48,12 @@ u32 hcdnx[] = {
u32 sbdn_rs780;
u32 sbdn_sb700;
-static u32 get_bus_conf_done = 0;
-
void get_bus_conf(void)
{
u32 apicid_base;
struct device *dev;
int i;
- if (get_bus_conf_done == 1)
- return; /* do it only once */
- get_bus_conf_done = 1;
-
sysconf.hc_possible_num = ARRAY_SIZE(pci1234x);
for (i = 0; i < sysconf.hc_possible_num; i++) {
sysconf.pci1234[i] = pci1234x[i];
diff --git a/src/mainboard/iei/kino-780am2-fam10/irq_tables.c b/src/mainboard/iei/kino-780am2-fam10/irq_tables.c
index aff85b63ee..526be4f4cd 100644
--- a/src/mainboard/iei/kino-780am2-fam10/irq_tables.c
+++ b/src/mainboard/iei/kino-780am2-fam10/irq_tables.c
@@ -54,8 +54,6 @@ unsigned long write_pirq_routing_table(unsigned long addr)
u8 sum = 0;
int i;
- get_bus_conf(); /* it will find out all bus num and apic that share with mptable.c and mptable.c and acpi_tables.c */
-
/* Align the table to be 16 byte aligned. */
addr += 15;
addr &= ~15;
diff --git a/src/mainboard/iei/kino-780am2-fam10/mptable.c b/src/mainboard/iei/kino-780am2-fam10/mptable.c
index 458c6146bc..e2b28900fa 100644
--- a/src/mainboard/iei/kino-780am2-fam10/mptable.c
+++ b/src/mainboard/iei/kino-780am2-fam10/mptable.c
@@ -39,8 +39,6 @@ static void *smp_write_config_table(void *v)
smp_write_processors(mc);
- get_bus_conf();
-
mptable_write_buses(mc, NULL, &bus_isa);
/* I/O APICs: APIC ID Version State Address */
diff --git a/src/mainboard/jetway/pa78vm5/get_bus_conf.c b/src/mainboard/jetway/pa78vm5/get_bus_conf.c
index d7ca975a5d..3c4894085a 100644
--- a/src/mainboard/jetway/pa78vm5/get_bus_conf.c
+++ b/src/mainboard/jetway/pa78vm5/get_bus_conf.c
@@ -48,18 +48,12 @@ u32 hcdnx[] = {
u32 sbdn_rs780;
u32 sbdn_sb700;
-static u32 get_bus_conf_done = 0;
-
void get_bus_conf(void)
{
u32 apicid_base;
struct device *dev;
int i;
- if (get_bus_conf_done == 1)
- return; /* do it only once */
- get_bus_conf_done = 1;
-
sysconf.hc_possible_num = ARRAY_SIZE(pci1234x);
for (i = 0; i < sysconf.hc_possible_num; i++) {
sysconf.pci1234[i] = pci1234x[i];
diff --git a/src/mainboard/jetway/pa78vm5/irq_tables.c b/src/mainboard/jetway/pa78vm5/irq_tables.c
index aff85b63ee..526be4f4cd 100644
--- a/src/mainboard/jetway/pa78vm5/irq_tables.c
+++ b/src/mainboard/jetway/pa78vm5/irq_tables.c
@@ -54,8 +54,6 @@ unsigned long write_pirq_routing_table(unsigned long addr)
u8 sum = 0;
int i;
- get_bus_conf(); /* it will find out all bus num and apic that share with mptable.c and mptable.c and acpi_tables.c */
-
/* Align the table to be 16 byte aligned. */
addr += 15;
addr &= ~15;
diff --git a/src/mainboard/jetway/pa78vm5/mptable.c b/src/mainboard/jetway/pa78vm5/mptable.c
index 215128735d..40340877f0 100644
--- a/src/mainboard/jetway/pa78vm5/mptable.c
+++ b/src/mainboard/jetway/pa78vm5/mptable.c
@@ -40,8 +40,6 @@ static void *smp_write_config_table(void *v)
smp_write_processors(mc);
- get_bus_conf();
-
mptable_write_buses(mc, NULL, &bus_isa);
/* I/O APICs: APIC ID Version State Address */
diff --git a/src/mainboard/msi/ms9652_fam10/acpi_tables.c b/src/mainboard/msi/ms9652_fam10/acpi_tables.c
index 5b00374abc..6e759739c9 100644
--- a/src/mainboard/msi/ms9652_fam10/acpi_tables.c
+++ b/src/mainboard/msi/ms9652_fam10/acpi_tables.c
@@ -39,7 +39,6 @@ unsigned long acpi_fill_madt(unsigned long current)
struct resource *res;
struct device *dev;
- get_bus_conf();
sbdn = sysconf.sbdn;
m = sysconf.mb;
diff --git a/src/mainboard/msi/ms9652_fam10/get_bus_conf.c b/src/mainboard/msi/ms9652_fam10/get_bus_conf.c
index 887110f717..c2183a3b0f 100644
--- a/src/mainboard/msi/ms9652_fam10/get_bus_conf.c
+++ b/src/mainboard/msi/ms9652_fam10/get_bus_conf.c
@@ -55,8 +55,6 @@ static unsigned hcdnx[] = {
0x20202020, 0x20202020,
};
-static unsigned get_bus_conf_done = 0;
-
void get_bus_conf(void)
{
unsigned apicid_base;
@@ -65,12 +63,6 @@ void get_bus_conf(void)
struct device *dev;
int i;
- printk(BIOS_SPEW, "get_bus_conf()\n");
-
- if (get_bus_conf_done == 1)
- return; //do it only once
-
- get_bus_conf_done = 1;
sysconf.mb = &mb_sysconf;
diff --git a/src/mainboard/msi/ms9652_fam10/irq_tables.c b/src/mainboard/msi/ms9652_fam10/irq_tables.c
index 513fd57c58..97245ec292 100644
--- a/src/mainboard/msi/ms9652_fam10/irq_tables.c
+++ b/src/mainboard/msi/ms9652_fam10/irq_tables.c
@@ -57,7 +57,6 @@ unsigned long write_pirq_routing_table(unsigned long addr)
uint8_t sum = 0;
int i;
- get_bus_conf(); // it will find out all bus num and apic that share with mptable.c and mptable.c and acpi_tables.c
sbdn = sysconf.sbdn;
m = sysconf.mb;
diff --git a/src/mainboard/msi/ms9652_fam10/mptable.c b/src/mainboard/msi/ms9652_fam10/mptable.c
index a4362f40de..8cf5b3d507 100644
--- a/src/mainboard/msi/ms9652_fam10/mptable.c
+++ b/src/mainboard/msi/ms9652_fam10/mptable.c
@@ -36,7 +36,6 @@ static void *smp_write_config_table(void *v)
smp_write_processors(mc);
- get_bus_conf();
sbdn = sysconf.sbdn;
m = sysconf.mb;
diff --git a/src/mainboard/supermicro/h8dmr_fam10/get_bus_conf.c b/src/mainboard/supermicro/h8dmr_fam10/get_bus_conf.c
index b122073f1b..6ceb21d6f3 100644
--- a/src/mainboard/supermicro/h8dmr_fam10/get_bus_conf.c
+++ b/src/mainboard/supermicro/h8dmr_fam10/get_bus_conf.c
@@ -55,8 +55,6 @@ static unsigned hcdnx[] = {
0x20202020, 0x20202020,
};
-static unsigned get_bus_conf_done = 0;
-
void get_bus_conf(void)
{
@@ -66,10 +64,6 @@ void get_bus_conf(void)
struct device *dev;
int i;
- if(get_bus_conf_done == 1) return; //do it only once
-
- get_bus_conf_done = 1;
-
sysconf.mb = &mb_sysconf;
m = sysconf.mb;
diff --git a/src/mainboard/supermicro/h8dmr_fam10/irq_tables.c b/src/mainboard/supermicro/h8dmr_fam10/irq_tables.c
index 513fd57c58..97245ec292 100644
--- a/src/mainboard/supermicro/h8dmr_fam10/irq_tables.c
+++ b/src/mainboard/supermicro/h8dmr_fam10/irq_tables.c
@@ -57,7 +57,6 @@ unsigned long write_pirq_routing_table(unsigned long addr)
uint8_t sum = 0;
int i;
- get_bus_conf(); // it will find out all bus num and apic that share with mptable.c and mptable.c and acpi_tables.c
sbdn = sysconf.sbdn;
m = sysconf.mb;
diff --git a/src/mainboard/supermicro/h8dmr_fam10/mptable.c b/src/mainboard/supermicro/h8dmr_fam10/mptable.c
index 52066d0333..16a342069f 100644
--- a/src/mainboard/supermicro/h8dmr_fam10/mptable.c
+++ b/src/mainboard/supermicro/h8dmr_fam10/mptable.c
@@ -35,7 +35,6 @@ static void *smp_write_config_table(void *v)
smp_write_processors(mc);
- get_bus_conf();
sbdn = sysconf.sbdn;
m = sysconf.mb;
diff --git a/src/mainboard/supermicro/h8qme_fam10/get_bus_conf.c b/src/mainboard/supermicro/h8qme_fam10/get_bus_conf.c
index 9643417250..4b24943f5b 100644
--- a/src/mainboard/supermicro/h8qme_fam10/get_bus_conf.c
+++ b/src/mainboard/supermicro/h8qme_fam10/get_bus_conf.c
@@ -57,8 +57,6 @@ static unsigned hcdnx[] = {
unsigned sbdn3;
-static unsigned get_bus_conf_done = 0;
-
void get_bus_conf(void)
{
@@ -68,10 +66,6 @@ void get_bus_conf(void)
struct device *dev;
int i;
- if(get_bus_conf_done == 1) return; //do it only once
-
- get_bus_conf_done = 1;
-
sysconf.mb = &mb_sysconf;
m = sysconf.mb;
diff --git a/src/mainboard/supermicro/h8qme_fam10/irq_tables.c b/src/mainboard/supermicro/h8qme_fam10/irq_tables.c
index 82023f9b10..b5ea2c2ea1 100644
--- a/src/mainboard/supermicro/h8qme_fam10/irq_tables.c
+++ b/src/mainboard/supermicro/h8qme_fam10/irq_tables.c
@@ -57,7 +57,6 @@ unsigned long write_pirq_routing_table(unsigned long addr)
uint8_t sum = 0;
int i;
- get_bus_conf(); // it will find out all bus num and apic that share with mptable.c and mptable.c and acpi_tables.c
sbdn = sysconf.sbdn;
m = sysconf.mb;
diff --git a/src/mainboard/supermicro/h8qme_fam10/mptable.c b/src/mainboard/supermicro/h8qme_fam10/mptable.c
index 0d7c22786e..616e6a8898 100644
--- a/src/mainboard/supermicro/h8qme_fam10/mptable.c
+++ b/src/mainboard/supermicro/h8qme_fam10/mptable.c
@@ -37,7 +37,6 @@ static void *smp_write_config_table(void *v)
smp_write_processors(mc);
- get_bus_conf();
sbdn = sysconf.sbdn;
m = sysconf.mb;
diff --git a/src/mainboard/supermicro/h8scm_fam10/get_bus_conf.c b/src/mainboard/supermicro/h8scm_fam10/get_bus_conf.c
index b242a81a1f..cfa646b575 100644
--- a/src/mainboard/supermicro/h8scm_fam10/get_bus_conf.c
+++ b/src/mainboard/supermicro/h8scm_fam10/get_bus_conf.c
@@ -49,18 +49,12 @@ u32 hcdnx[] = {
u32 sbdn_sr5650;
u32 sbdn_sp5100;
-static u32 get_bus_conf_done = 0;
-
void get_bus_conf(void)
{
u32 apicid_base;
struct device *dev;
int i;
- if (get_bus_conf_done == 1)
- return; /* do it only once */
- get_bus_conf_done = 1;
-
sysconf.hc_possible_num = ARRAY_SIZE(pci1234x);
for (i = 0; i < sysconf.hc_possible_num; i++) {
sysconf.pci1234[i] = pci1234x[i];
diff --git a/src/mainboard/supermicro/h8scm_fam10/irq_tables.c b/src/mainboard/supermicro/h8scm_fam10/irq_tables.c
index aa78b45d67..39c68db66d 100644
--- a/src/mainboard/supermicro/h8scm_fam10/irq_tables.c
+++ b/src/mainboard/supermicro/h8scm_fam10/irq_tables.c
@@ -54,8 +54,6 @@ unsigned long write_pirq_routing_table(unsigned long addr)
u8 sum = 0;
int i;
- get_bus_conf(); /* it will find out all bus num and apic that share with mptable.c and mptable.c and acpi_tables.c */
-
/* Align the table to be 16 byte aligned. */
addr += 15;
addr &= ~15;
diff --git a/src/mainboard/supermicro/h8scm_fam10/mptable.c b/src/mainboard/supermicro/h8scm_fam10/mptable.c
index c8c7119676..db4dea7492 100644
--- a/src/mainboard/supermicro/h8scm_fam10/mptable.c
+++ b/src/mainboard/supermicro/h8scm_fam10/mptable.c
@@ -41,8 +41,6 @@ static void *smp_write_config_table(void *v)
smp_write_processors(mc);
- get_bus_conf();
-
apicid_sp5100 = 0x20;
apicid_sr5650 = apicid_sp5100 + 1;
diff --git a/src/mainboard/tyan/s2912_fam10/get_bus_conf.c b/src/mainboard/tyan/s2912_fam10/get_bus_conf.c
index ed3dfb701e..c3775b9336 100644
--- a/src/mainboard/tyan/s2912_fam10/get_bus_conf.c
+++ b/src/mainboard/tyan/s2912_fam10/get_bus_conf.c
@@ -55,8 +55,6 @@ static unsigned hcdnx[] = {
0x20202020, 0x20202020,
};
-static unsigned get_bus_conf_done = 0;
-
void get_bus_conf(void)
{
unsigned apicid_base;
@@ -65,10 +63,6 @@ void get_bus_conf(void)
struct device *dev;
int i;
- if(get_bus_conf_done == 1) return; //do it only once
-
- get_bus_conf_done = 1;
-
sysconf.mb = &mb_sysconf;
m = sysconf.mb;
diff --git a/src/mainboard/tyan/s2912_fam10/irq_tables.c b/src/mainboard/tyan/s2912_fam10/irq_tables.c
index 513fd57c58..97245ec292 100644
--- a/src/mainboard/tyan/s2912_fam10/irq_tables.c
+++ b/src/mainboard/tyan/s2912_fam10/irq_tables.c
@@ -57,7 +57,6 @@ unsigned long write_pirq_routing_table(unsigned long addr)
uint8_t sum = 0;
int i;
- get_bus_conf(); // it will find out all bus num and apic that share with mptable.c and mptable.c and acpi_tables.c
sbdn = sysconf.sbdn;
m = sysconf.mb;
diff --git a/src/mainboard/tyan/s2912_fam10/mptable.c b/src/mainboard/tyan/s2912_fam10/mptable.c
index e6f2e5ca1f..3b77689338 100644
--- a/src/mainboard/tyan/s2912_fam10/mptable.c
+++ b/src/mainboard/tyan/s2912_fam10/mptable.c
@@ -35,7 +35,6 @@ static void *smp_write_config_table(void *v)
smp_write_processors(mc);
- get_bus_conf();
sbdn = sysconf.sbdn;
m = sysconf.mb;
diff --git a/src/northbridge/amd/amdfam10/acpi.c b/src/northbridge/amd/amdfam10/acpi.c
index eaea725360..dc139adb87 100644
--- a/src/northbridge/amd/amdfam10/acpi.c
+++ b/src/northbridge/amd/amdfam10/acpi.c
@@ -215,8 +215,6 @@ void northbridge_acpi_write_vars(struct device *device)
char pscope[] = "\\_SB.PCI0";
int i;
- get_bus_conf(); /* it will get sblk, pci1234, hcdn, and sbdn */
-
acpigen_write_scope(pscope);
acpigen_write_name("BUSN");
@@ -333,8 +331,6 @@ unsigned long northbridge_write_acpi_tables(struct device *device,
acpi_srat_t *srat;
acpi_slit_t *slit;
- get_bus_conf(); /* it will get sblk, pci1234, hcdn, and sbdn */
-
/* SRAT */
current = ALIGN(current, 8);
printk(BIOS_DEBUG, "ACPI: * SRAT at %lx\n", current);
diff --git a/src/northbridge/amd/amdfam10/get_pci1234.c b/src/northbridge/amd/amdfam10/get_pci1234.c
index d9dd2ced8b..71772b3feb 100644
--- a/src/northbridge/amd/amdfam10/get_pci1234.c
+++ b/src/northbridge/amd/amdfam10/get_pci1234.c
@@ -13,6 +13,7 @@
* GNU General Public License for more details.
*/
+#include <bootstate.h>
#include <device/pci.h>
#include <string.h>
#include <stdint.h>
@@ -108,3 +109,13 @@ void get_pci1234(void)
sysconf.hcid[i] = 0;
}
}
+
+static void amd_bs_sysconf(void *arg)
+{
+ /* Prepare sysconf structures, which are used to generate IRQ,
+ * MP and ACPI table entries.
+ */
+ get_bus_conf();
+}
+
+BOOT_STATE_INIT_ENTRY(BS_WRITE_TABLES, BS_ON_ENTRY, amd_bs_sysconf, NULL);