diff mbox

[U-Boot,v3,51/62] x86: Move pirq_routing_table to global_data

Message ID 20170116140427.29283-52-sjg@chromium.org
State Accepted
Delegated to: Bin Meng
Headers show

Commit Message

Simon Glass Jan. 16, 2017, 2:04 p.m. UTC
To avoid using BSS in SPL before SDRAM is set up, move this field to
global_data.

Signed-off-by: Simon Glass <sjg@chromium.org>
---

Changes in v3: None
Changes in v2: None

 arch/x86/cpu/irq.c                 | 12 +++++-------
 arch/x86/include/asm/global_data.h |  1 +
 2 files changed, 6 insertions(+), 7 deletions(-)

Comments

Bin Meng Feb. 7, 2017, 5:03 a.m. UTC | #1
On Mon, Jan 16, 2017 at 10:04 PM, Simon Glass <sjg@chromium.org> wrote:
> To avoid using BSS in SPL before SDRAM is set up, move this field to
> global_data.
>
> Signed-off-by: Simon Glass <sjg@chromium.org>
> ---
>
> Changes in v3: None
> Changes in v2: None
>
>  arch/x86/cpu/irq.c                 | 12 +++++-------
>  arch/x86/include/asm/global_data.h |  1 +
>  2 files changed, 6 insertions(+), 7 deletions(-)
>

Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Bin Meng Feb. 7, 2017, 5:17 a.m. UTC | #2
On Tue, Feb 7, 2017 at 1:03 PM, Bin Meng <bmeng.cn@gmail.com> wrote:
> On Mon, Jan 16, 2017 at 10:04 PM, Simon Glass <sjg@chromium.org> wrote:
>> To avoid using BSS in SPL before SDRAM is set up, move this field to
>> global_data.
>>
>> Signed-off-by: Simon Glass <sjg@chromium.org>
>> ---
>>
>> Changes in v3: None
>> Changes in v2: None
>>
>>  arch/x86/cpu/irq.c                 | 12 +++++-------
>>  arch/x86/include/asm/global_data.h |  1 +
>>  2 files changed, 6 insertions(+), 7 deletions(-)
>>
>
> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>

applied to u-boot-x86, thanks!
diff mbox

Patch

diff --git a/arch/x86/cpu/irq.c b/arch/x86/cpu/irq.c
index e3e928bb79b..442d373e095 100644
--- a/arch/x86/cpu/irq.c
+++ b/arch/x86/cpu/irq.c
@@ -17,8 +17,6 @@ 
 
 DECLARE_GLOBAL_DATA_PTR;
 
-static struct irq_routing_table *pirq_routing_table;
-
 bool pirq_check_irq_routed(struct udevice *dev, int link, u8 irq)
 {
 	struct irq_router *priv = dev_get_priv(dev);
@@ -219,7 +217,7 @@  static int create_pirq_routing_table(struct udevice *dev)
 	/* Fix up the table checksum */
 	rt->checksum = table_compute_checksum(rt, rt->size);
 
-	pirq_routing_table = rt;
+	gd->arch.pirq_routing_table = rt;
 
 	return 0;
 }
@@ -250,8 +248,8 @@  int irq_router_common_init(struct udevice *dev)
 		return ret;
 	}
 	/* Route PIRQ */
-	pirq_route_irqs(dev, pirq_routing_table->slots,
-			get_irq_slot_count(pirq_routing_table));
+	pirq_route_irqs(dev, gd->arch.pirq_routing_table->slots,
+			get_irq_slot_count(gd->arch.pirq_routing_table));
 
 	if (IS_ENABLED(CONFIG_GENERATE_ACPI_TABLE))
 		irq_enable_sci(dev);
@@ -266,10 +264,10 @@  int irq_router_probe(struct udevice *dev)
 
 ulong write_pirq_routing_table(ulong addr)
 {
-	if (!pirq_routing_table)
+	if (!gd->arch.pirq_routing_table)
 		return addr;
 
-	return copy_pirq_routing_table(addr, pirq_routing_table);
+	return copy_pirq_routing_table(addr, gd->arch.pirq_routing_table);
 }
 
 static const struct udevice_id irq_router_ids[] = {
diff --git a/arch/x86/include/asm/global_data.h b/arch/x86/include/asm/global_data.h
index 34e19efd145..43a59a3b0c9 100644
--- a/arch/x86/include/asm/global_data.h
+++ b/arch/x86/include/asm/global_data.h
@@ -93,6 +93,7 @@  struct arch_global_data {
 	char *mrc_output;
 	unsigned int mrc_output_len;
 	ulong table;			/* Table pointer from previous loader */
+	struct irq_routing_table *pirq_routing_table;
 #ifdef CONFIG_SEABIOS
 	u32 high_table_ptr;
 	u32 high_table_limit;