Miod Vallat writes:
> > I've a config file that works, but I'm still tweaking it. When I'm
> > finished I'll post it. The biggest issue is that option SMALL_KERNEL
> > cant be used with the ACPI devices so, to make space, you have to
> > remove many of the unused devices. I wound up removing just about
> > everything that wasn't mentioned in the mini dmesg.
>
> Do you mean the acpi code depends on functionality SMALL_KERNEL removes?
> If so, which one?
Yep. Let see. Don't remember. Ok, I'll just re-build with SMALL_KERNEL
and see what it was....
There are two ACPI ramdisk issues
1) acpi code references sensor_add and sensor_task_unregister which is
in kern_sensors.c. kern_sensors.c is !small_kernel
2) /sys/dev/acpi/dsdt.c defines DST which interferes with option DST
in the config file. I changed DST -> DST1 in /sys/dev/acpi/dsdt.c
That same file also references tsleep but does not include <sys/proc.h>
for the function prototype. Patch with both changes follows.
Index: dsdt.c
===================================================================
RCS file: /u8/cvso/src/sys/dev/acpi/dsdt.c,v
retrieving revision 1.67
diff -u -p -r1.67 dsdt.c
--- dsdt.c 29 Nov 2006 22:17:07 -0000 1.67
+++ dsdt.c 2 Dec 2006 20:47:34 -0000
@@ -19,6 +19,7 @@
#include <sys/systm.h>
#include <sys/device.h>
#include <sys/malloc.h>
+#include <sys/proc.h>
#include <machine/bus.h>
@@ -802,7 +803,7 @@ int aml_parsenode(struct aml_scope *,str
#define LHS 0
#define RHS 1
-#define DST 2
+#define DST1 2
#define DST2 3
/* Allocate temporary storage in this scope */
@@ -2897,20 +2898,20 @@ aml_parsestring(struct aml_scope *scope,
tmpval = aml_alloctmp(scope, 4);
aml_parseterm(scope, &tmpval[LHS]);
aml_parseterm(scope, &tmpval[RHS]);
- aml_parsetarget(scope, &tmpval[DST], NULL);
+ aml_parsetarget(scope, &tmpval[DST1], NULL);
if (tmpval[LHS].type == AML_OBJTYPE_BUFFER &&
tmpval[RHS].type == AML_OBJTYPE_BUFFER) {
aml_resize(&tmpval[LHS],
tmpval[LHS].length+tmpval[RHS].length);
memcpy(&tmpval[LHS].v_buffer+tmpval[LHS].length,
tmpval[RHS].v_buffer, tmpval[RHS].length);
- aml_setvalue(scope, &tmpval[DST], &tmpval[LHS], 0);
+ aml_setvalue(scope, &tmpval[DST1], &tmpval[LHS], 0);
}
if (tmpval[LHS].type == AML_OBJTYPE_STRING &&
tmpval[RHS].type == AML_OBJTYPE_STRING) {
aml_resize(&tmpval[LHS],
tmpval[LHS].length+tmpval[RHS].length);
memcpy(&tmpval[LHS].v_string+tmpval[LHS].length,
tmpval[RHS].v_buffer, tmpval[RHS].length);
- aml_setvalue(scope, &tmpval[DST], &tmpval[LHS], 0);
+ aml_setvalue(scope, &tmpval[DST1], &tmpval[LHS], 0);
}
else {
aml_die("concat");