x86: Use unsigned long for address in table generation
We should use unsigned long rather than u32 for addresses. Update this so that the table-generation code builds correctly on 64-bit machines. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
This commit is contained in:
@@ -264,7 +264,7 @@ int irq_router_probe(struct udevice *dev)
|
||||
return irq_router_common_init(dev);
|
||||
}
|
||||
|
||||
u32 write_pirq_routing_table(u32 addr)
|
||||
ulong write_pirq_routing_table(ulong addr)
|
||||
{
|
||||
if (!pirq_routing_table)
|
||||
return addr;
|
||||
|
||||
@@ -316,4 +316,4 @@ int acpi_create_madt_lapic_nmi(struct acpi_madt_lapic_nmi *lapic_nmi,
|
||||
u8 cpu, u16 flags, u8 lint);
|
||||
u32 acpi_fill_madt(u32 current);
|
||||
void acpi_create_gnvs(struct acpi_global_nvs *gnvs);
|
||||
u32 write_acpi_tables(u32 start);
|
||||
ulong write_acpi_tables(ulong start);
|
||||
|
||||
@@ -456,6 +456,6 @@ int mp_determine_pci_dstirq(int bus, int dev, int func, int pirq);
|
||||
* @addr: start address to write MP table
|
||||
* @return: end address of MP table
|
||||
*/
|
||||
u32 write_mp_table(u32 addr);
|
||||
ulong write_mp_table(ulong addr);
|
||||
|
||||
#endif /* __ASM_MPSPEC_H */
|
||||
|
||||
@@ -132,6 +132,6 @@ typedef int (*sfi_table_handler) (struct sfi_table_header *table);
|
||||
* @base: Address to write table to
|
||||
* @return address to use for the next table
|
||||
*/
|
||||
u32 write_sfi_table(u32 base);
|
||||
ulong write_sfi_table(ulong base);
|
||||
|
||||
#endif /*_LINUX_SFI_H */
|
||||
|
||||
@@ -65,6 +65,6 @@ void write_tables(void);
|
||||
* @start: start address to write PIRQ routing table
|
||||
* @return: end address of PIRQ routing table
|
||||
*/
|
||||
u32 write_pirq_routing_table(u32 start);
|
||||
ulong write_pirq_routing_table(ulong start);
|
||||
|
||||
#endif /* _X86_TABLES_H_ */
|
||||
|
||||
@@ -327,7 +327,7 @@ static void enter_acpi_mode(int pm1_cnt)
|
||||
* QEMU's version of write_acpi_tables is defined in
|
||||
* arch/x86/cpu/qemu/acpi_table.c
|
||||
*/
|
||||
u32 write_acpi_tables(u32 start)
|
||||
ulong write_acpi_tables(ulong start)
|
||||
{
|
||||
u32 current;
|
||||
struct acpi_rsdp *rsdp;
|
||||
@@ -345,7 +345,7 @@ u32 write_acpi_tables(u32 start)
|
||||
/* Align ACPI tables to 16 byte */
|
||||
current = ALIGN(current, 16);
|
||||
|
||||
debug("ACPI: Writing ACPI tables at %x\n", start);
|
||||
debug("ACPI: Writing ACPI tables at %lx\n", start);
|
||||
|
||||
/* We need at least an RSDP and an RSDT Table */
|
||||
rsdp = (struct acpi_rsdp *)current;
|
||||
|
||||
@@ -365,7 +365,7 @@ static void mptable_add_lintsrc(struct mp_config_table *mc, int bus_isa)
|
||||
bus_isa, 0, MP_APIC_ALL, 1);
|
||||
}
|
||||
|
||||
u32 write_mp_table(u32 addr)
|
||||
ulong write_mp_table(ulong addr)
|
||||
{
|
||||
struct mp_config_table *mc;
|
||||
int ioapic_id, ioapic_ver;
|
||||
|
||||
@@ -38,14 +38,14 @@ static void *get_entry_start(struct table_info *tab)
|
||||
tab->table[tab->count] = tab->entry_start;
|
||||
tab->entry_start += sizeof(struct sfi_table_header);
|
||||
|
||||
return (void *)tab->entry_start;
|
||||
return (void *)(uintptr_t)tab->entry_start;
|
||||
}
|
||||
|
||||
static void finish_table(struct table_info *tab, const char *sig, void *entry)
|
||||
{
|
||||
struct sfi_table_header *hdr;
|
||||
|
||||
hdr = (struct sfi_table_header *)(tab->base + tab->ptr);
|
||||
hdr = (struct sfi_table_header *)(uintptr_t)(tab->base + tab->ptr);
|
||||
strcpy(hdr->sig, sig);
|
||||
hdr->len = sizeof(*hdr) + ((ulong)entry - tab->entry_start);
|
||||
hdr->rev = 1;
|
||||
@@ -131,7 +131,7 @@ static int sfi_write_xsdt(struct table_info *tab)
|
||||
return 0;
|
||||
}
|
||||
|
||||
u32 write_sfi_table(u32 base)
|
||||
ulong write_sfi_table(ulong base)
|
||||
{
|
||||
struct table_info table;
|
||||
|
||||
|
||||
@@ -12,20 +12,13 @@
|
||||
#include <asm/acpi_table.h>
|
||||
#include <asm/coreboot_tables.h>
|
||||
|
||||
#ifdef CONFIG_GENERATE_SMBIOS_TABLE
|
||||
static u32 write_smbios_table_wrapper(u32 addr)
|
||||
{
|
||||
return write_smbios_table(addr);
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Function prototype to write a specific configuration table
|
||||
*
|
||||
* @addr: start address to write the table
|
||||
* @return: end address of the table
|
||||
*/
|
||||
typedef u32 (*table_write)(u32 addr);
|
||||
typedef ulong (*table_write)(ulong addr);
|
||||
|
||||
static table_write table_write_funcs[] = {
|
||||
#ifdef CONFIG_GENERATE_PIRQ_TABLE
|
||||
@@ -41,7 +34,7 @@ static table_write table_write_funcs[] = {
|
||||
write_acpi_tables,
|
||||
#endif
|
||||
#ifdef CONFIG_GENERATE_SMBIOS_TABLE
|
||||
write_smbios_table_wrapper,
|
||||
write_smbios_table,
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
@@ -165,7 +165,7 @@ struct boot_params *load_zimage(char *image, unsigned long kernel_size,
|
||||
* A very old kernel MUST have its real-mode code
|
||||
* loaded at 0x90000
|
||||
*/
|
||||
if ((u32)setup_base != 0x90000) {
|
||||
if ((ulong)setup_base != 0x90000) {
|
||||
/* Copy the real-mode kernel */
|
||||
memmove((void *)0x90000, setup_base, setup_size);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user