Date: Fri, 12 Apr 2002 03:38:58 +0900 (JST) From: Mitsuru IWASAKI <iwasaki@jp.FreeBSD.org> To: acpi-jp@FreeBSD.org Cc: cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: Re: cvs commit: ports/devel/acpicatools Makefile distinfo ports/devel/acpicatools/files patch-20020308 patch-20020404 Message-ID: <20020412.033858.13779606.iwasaki@jp.FreeBSD.org> In-Reply-To: <200204110928.g3B9SiK61543@freefall.freebsd.org> References: <200204110928.g3B9SiK61543@freefall.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Hi, I've updated acpicatools port for 20020404, and did quick hack for sys sources attaching to this mail. I hope this can help importing acpica-unix-20020404 into FreeBSD CVS. I'm not sure what's better solution of ACPI_FLUSH_CPU_CACHE macro for i386 and ia64. Should we have common cpufunc for flushing cache, just like disable_intr()/enable_intr() ? Or having acfreebsd_i386.h and acfreebsd_ia64.h separately? # like include/platform/acwin.h and acwin64.h in ACPICA source tree Comments welcome. Thanks diff -u /tmp/acpica/acfreebsd.h contrib/dev/acpica/acfreebsd.h --- /tmp/acpica/acfreebsd.h Thu Apr 11 13:43:28 2002 +++ contrib/dev/acpica/acfreebsd.h Thu Apr 11 13:54:41 2002 @@ -137,6 +139,11 @@ #define asm __asm #define __cli() disable_intr() #define __sti() enable_intr() +#ifdef __i386__ +#define ACPI_FLUSH_CPU_CACHE() wbinvd() +#else +#define ACPI_FLUSH_CPU_CACHE() /* XXX ia64_fc()? */ +#endif #ifdef ACPI_DEBUG #ifdef DEBUGGER_THREADING @@ -156,6 +163,7 @@ #define __cli() #define __sti() +#define ACPI_FLUSH_CPU_CACHE() #endif /* _KERNEL */ diff -u /tmp/acpica/tbget.c contrib/dev/acpica/tbget.c --- /tmp/acpica/tbget.c Thu Apr 11 13:43:22 2002 +++ contrib/dev/acpica/tbget.c Thu Apr 11 13:50:28 2002 @@ -434,6 +434,11 @@ */ Address.PointerType = AcpiGbl_TableFlags; Address.Pointer.Value = ACPI_GET_ADDRESS (AcpiGbl_FADT->XDsdt); + if (AcpiGbl_DSDT != NULL) + { + Address.PointerType = ACPI_LOGICAL_POINTER; + Address.Pointer.Value = AcpiGbl_DSDT; + } Status = AcpiTbGetTable (&Address, &TableInfo); if (ACPI_FAILURE (Status)) Index: dev/acpica/acpica_support.c =================================================================== RCS file: /home/ncvs/src/sys/dev/acpica/acpica_support.c,v retrieving revision 1.4 diff -u -r1.4 acpica_support.c --- dev/acpica/acpica_support.c 12 Mar 2002 09:45:17 -0000 1.4 +++ dev/acpica/acpica_support.c 11 Apr 2002 05:52:40 -0000 @@ -79,15 +79,13 @@ AcpiHwBitRegisterWrite (ACPI_BITREG_WAKE_STATUS, 1, ACPI_MTX_LOCK); - acpi_disable_irqs (); + ACPI_DISABLE_IRQS (); AcpiHwDisableNonWakeupGpes(); /* flush caches */ -#ifdef __i386__ - wbinvd(); -#endif + ACPI_FLUSH_CPU_CACHE (); /* write the value to command port and wait until we enter sleep state */ do @@ -99,7 +97,7 @@ AcpiHwEnableNonWakeupGpes(); - acpi_enable_irqs (); + ACPI_ENABLE_IRQS (); return_ACPI_STATUS (AE_OK); } Index: i386/acpica/OsdEnvironment.c =================================================================== RCS file: /home/ncvs/src/sys/i386/acpica/OsdEnvironment.c,v retrieving revision 1.3 diff -u -r1.3 OsdEnvironment.c --- i386/acpica/OsdEnvironment.c 7 Sep 2001 03:00:30 -0000 1.3 +++ i386/acpica/OsdEnvironment.c 11 Apr 2002 03:27:58 -0000 @@ -56,7 +56,7 @@ ACPI_STATUS AcpiOsGetRootPointer( UINT32 Flags, - ACPI_PHYSICAL_ADDRESS *RsdpPhysicalAddress) + ACPI_POINTER *RsdpPhysicalAddress) { /* * The loader passes the physical address at which it found the Index: ia64/acpica/OsdEnvironment.c =================================================================== RCS file: /home/ncvs/src/sys/ia64/acpica/OsdEnvironment.c,v retrieving revision 1.2 diff -u -r1.2 OsdEnvironment.c --- ia64/acpica/OsdEnvironment.c 29 Oct 2001 02:16:02 -0000 1.2 +++ ia64/acpica/OsdEnvironment.c 11 Apr 2002 04:20:55 -0000 @@ -51,13 +51,18 @@ } ACPI_STATUS -AcpiOsGetRootPointer(UINT32 Flags, ACPI_PHYSICAL_ADDRESS *RsdpPhysicalAddress) +AcpiOsGetRootPointer(UINT32 Flags, ACPI_POINTER *RsdpAddress) { - if (ia64_efi_acpi20_table) - *RsdpPhysicalAddress = ia64_efi_acpi20_table; - else if (ia64_efi_acpi_table) - *RsdpPhysicalAddress = ia64_efi_acpi_table; + if (ia64_efi_acpi20_table) { + RsdpAddress->PointerType = ACPI_PHYSICAL_POINTER; + RsdpAddress->Pointer.Physical = ia64_efi_acpi20_table; + + } + else if (ia64_efi_acpi_table) { + RsdpAddress->PointerType = ACPI_PHYSICAL_POINTER; + RsdpAddress->Pointer.Physical = ia64_efi_acpi_table; + } else return(AE_NOT_FOUND); To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20020412.033858.13779606.iwasaki>