Hi Andrea/Al,
I set the ARM64 flag for DMI support on v8, because
io_remap() can not work in dmi_scan.c , but early_memremap() can
work.
I suppose we consider ACPI/EFI memory as IO range on v7, but
we covert them into MEMORY type on v8.
I do not know whether you met the same problem with me on
acpi_early_init(), you can try MARK's patch:
https://github.com/mosalter/linux/commit/c195e4a19b4b6c92885714941cf89a219041e09b
diff --git a/drivers/firmware/dmi_scan.c
b/drivers/firmware/dmi_scan.c
index fa0affb..0cd401c 100644
--- a/drivers/firmware/dmi_scan.c
+++ b/drivers/firmware/dmi_scan.c
@@ -786,14 +786,21 @@ int dmi_walk(void (*decode)(const struct
dmi_header *, void *),
if (!dmi_available)
return -1;
-
+#ifdef CONFIG_ARM64
+ buf = dmi_ioremap(dmi_base, dmi_len);
+#else
buf = ioremap(dmi_base, dmi_len);
+#endif
if (buf == NULL)
return -1;
dmi_table(buf, dmi_len, dmi_num, decode, private_data);
+#ifdef CONFIG_ARM64
+ dmi_iounmap(buf, dmi_len);
+#else
iounmap(buf);
+#endif
return 0;
}
EXPORT_SYMBOL_GPL(dmi_walk);
--
1.7.9.5
YI
On Thursday, November 14, 2013 05:04 PM, Andrea Gallo wrote: