Subject: ACPI/PCI machine - how to completely get rid if ISA ?
To: None <port-i386@netbsd.org>
From: Ian Zagorskih <ianzag@megasignal.com>
List: port-i386
Date: 10/20/2004 13:25:30
# uname -a
NetBSD IANZAG 2.99.10 NetBSD 2.99.10 (IANZAG-ACPI) #0: Mon Oct 18 17:31:49
NOVST 2004 ianzag@IANZAG:/usr/src/sys/arch/i386/compile/IANZAG-ACPI i386
For a long time on my workstation[s] i don't have ISA slots. Same as i don't
have even single native ISA device. At hardware level, all peripherials are
done through LPC -> Multi IO chipset and so on. I.e. i really do not have
obsolete ISA stuff. All "ISA" devicec like lpt, com, npx and so on are
configured through ACPI just fine so i don't need to specify them manually in
kernel config file as isa bindings.
So i would like to make a pure non-ISA kernel for i386 arch. But when i remove
all "isa0 at *" bindings, i got the following link errors:
---cut---
making sure the compat library is up to date...
`libcompat.a' is up to date.
making sure the kern library is up to date...
`libkern.o' is up to date.
# link IANZAG-ACPI/netbsd
ld -T ../../../../arch/i386/conf/kern.ldscript -Ttext c0100000 -e start -X -o
netbsd ${SYSTEM_OBJ} ${EXTRA_OBJ} vers.o
microtime.o(.text+0x3e): In function `i8254_microtime':
: undefined reference to `isa_timer_tick'
microtime.o(.text+0x46): In function `i8254_microtime':
: undefined reference to `isa_timer_msb_table'
microtime.o(.text+0x4e): In function `i8254_microtime':
: undefined reference to `isa_timer_lsb_table'
init_main.o(.text+0x44a): In function `main':
: undefined reference to `inittodr'
kern_clock.o(.text+0xa20): In function `statclock':
: undefined reference to `setstatclockrate'
kern_time.o(.text+0x129): In function `settime':
: undefined reference to `resettodr'
lapic.o(.text+0x246): In function `lapic_calibrate_timer':
: undefined reference to `gettick'
lapic.o(.text+0x268): In function `lapic_calibrate_timer':
: undefined reference to `gettick'
lapic.o(.text+0x274): In function `lapic_calibrate_timer':
: undefined reference to `rtclock_tval'
lapic.o(.text+0x3dd): In function `lapic_calibrate_timer':
: undefined reference to `gettick'
lapic.o(.text+0x3fd): In function `lapic_calibrate_timer':
: undefined reference to `gettick'
pciide_machdep.o(.text+0x24): In function
`pciide_machdep_compat_intr_establish':
: undefined reference to `isa_intr_establish'
autoconf.o(.text+0x7): In function `cpu_configure':
: undefined reference to `startrtclock'
machdep.o(.text+0xbc8): In function `cpu_reboot':
: undefined reference to `sysbeep'
machdep.o(.text+0xbef): In function `cpu_reboot':
: undefined reference to `sysbeep'
machdep.o(.text+0xce0): In function `cpu_reboot':
: undefined reference to `resettodr'
machdep.o(.data+0x24): undefined reference to `i8254_delay'
machdep.o(.data+0x2c): undefined reference to `i8254_initclocks'
identcpu.o(.text+0xc2): In function `cyrix6x86_cpu_setup':
: undefined reference to `clock_broken_latch'
mainbus.o(.text+0x8a): In function `mainbus_attach':
: undefined reference to `isa_bus_dma_tag'
fd.o(.text+0x20a): In function `fdcfinishattach':
: undefined reference to `mc146818_read'
com_acpi.o(.text+0x146): In function `com_acpi_attach':
: undefined reference to `isa_intr_establish'
fdc_acpi.o(.text+0x1b2): In function `fdc_acpi_attach':
: undefined reference to `isa_intr_establish'
lpt_acpi.o(.text+0xf1): In function `lpt_acpi_attach':
: undefined reference to `isa_intr_establish'
pckbc_acpi.o(.text+0x34e): In function `pckbc_acpi_intr_establish':
: undefined reference to `isa_intr_establish'
acpi_wakeup.o(.text+0x4d0): In function `acpi_md_sleep':
: undefined reference to `initrtclock'
acpi_wakeup.o(.text+0x4dc): In function `acpi_md_sleep':
: undefined reference to `inittodr'
npx_acpi.o(.text+0x16d): In function `npx_acpi_attach':
: undefined reference to `isa_intr_establish'
*** Error code 1
Stop.
mk: stopped in /usr/src/sys/arch/i386/compile/IANZAG-ACPI
---cut---
Looks like the i386 kernel code have some internal tight links with ISA bus
code which arn't removed when ISA bus is abscent in kernel config file.
Any ideas what can i do with it? Is it possibly to build non-ISA kernels on
i386?
// wbr