Intel Macs that boot FreeBSD?

12 views
Skip to first unread message

Eric Anderson

unread,
Apr 5, 2006, 10:13:58 AM4/5/06
to
Is this what is needed to get it booting FreeBSD?

http://www.apple.com/macosx/bootcamp/


Eric


--
------------------------------------------------------------------------
Eric Anderson Sr. Systems Administrator Centaur Technology
Anything that works is better than anything that doesn't.
------------------------------------------------------------------------
_______________________________________________
freebsd...@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-curre...@freebsd.org"

Frode Nordahl

unread,
Apr 5, 2006, 3:44:52 PM4/5/06
to
On 5. apr. 2006, at 16.09, Eric Anderson wrote:

> Is this what is needed to get it booting FreeBSD?
>
> http://www.apple.com/macosx/bootcamp/

According to this:
http://forum.osx86project.org/index.php?
s=&showtopic=14048&view=findpost&p=89523

The actual magic is in a Firmware update wich seems to add some
Legacy BIOS support to make it work. Boot Camp is just a nice helper
to resize your hard drive and provide some Windows drivers in a
package :-)

I just tried to boot FreeBSD on my MacBook Pro, and it did seem to
start booting, but I could not see anything, just a white / grey screen.

I guess I need framebuffer support?

I am downloading Fedora now and will give it a shot shortly.


How would I go about building a FreeBSD CD with a framebuffer on it? :-)

Frode Nordahl
fr...@nordahl.net

Maxim Sobolev

unread,
Apr 6, 2006, 8:34:06 PM4/6/06
to
Andre Guibert de Bruet wrote:
>
> On Wed, 5 Apr 2006, Maxim Sobolev wrote:
>
>> No, I don't think it's framebuffer issue, since FreeBSD CD starts
>> loading (I see message indicating that cdboot is trying to start
>> BOOT/LOADER on the screen). My guess is that Apple has only
>> implemented BIOS in amount necessary to bootstrap WinXP, while FreeBSD
>> requires some functionality that doesn't exist.
>
> Does it drop you to the loader prompt or die before that?

Dies before. I have not time to investigate the exact point when it dies.

-Maxim

Mark Sergeant

unread,
Apr 6, 2006, 8:51:23 PM4/6/06
to

On 07/04/2006, at 10:32 AM, Maxim Sobolev wrote:

> Andre Guibert de Bruet wrote:
>> On Wed, 5 Apr 2006, Maxim Sobolev wrote:
>>> No, I don't think it's framebuffer issue, since FreeBSD CD starts
>>> loading (I see message indicating that cdboot is trying to start
>>> BOOT/LOADER on the screen). My guess is that Apple has only
>>> implemented BIOS in amount necessary to bootstrap WinXP, while
>>> FreeBSD requires some functionality that doesn't exist.
>> Does it drop you to the loader prompt or die before that?
>
> Dies before. I have not time to investigate the exact point when it
> dies.
>
> -Maxim

It could be worth trying

http://www.macworld.com/news/2006/04/06/parallels/index.php

bazzoola

unread,
Apr 6, 2006, 10:57:21 PM4/6/06
to
Maxim Sobolev wrote:
> No, I don't think it's framebuffer issue, since FreeBSD CD starts
> loading (I see message indicating that cdboot is trying to start
> BOOT/LOADER on the screen). My guess is that Apple has only implemented
> BIOS in amount necessary to bootstrap WinXP, while FreeBSD requires some
> functionality that doesn't exist.
>
> -Maxim

>
> Frode Nordahl wrote:
> > On 5. apr. 2006, at 16.09, Eric Anderson wrote:
> >
> >> Is this what is needed to get it booting FreeBSD?
> >>
> >> http://www.apple.com/macosx/bootcamp/
> >
> > According to this:
> >
http://forum.osx86project.org/index.php?s=&showtopic=14048&view=findpost&p=89523
> >
> >
> > The actual magic is in a Firmware update wich seems to add some Legacy
> > BIOS support to make it work. Boot Camp is just a nice helper to resize
> > your hard drive and provide some Windows drivers in a package :-)
> >
> > I just tried to boot FreeBSD on my MacBook Pro, and it did seem to
start
> > booting, but I could not see anything, just a white / grey screen.
> >
> > I guess I need framebuffer support?
> >
> > I am downloading Fedora now and will give it a shot shortly.
> >
> >
> > How would I go about building a FreeBSD CD with a framebuffer on
it? :-)
> >
> > Frode Nordahl
> > fr...@nordahl.net
> >
> >
> >
> > _______________________________________________
> > freebsd...@freebsd.org mailing list
> > http://lists.freebsd.org/mailman/listinfo/freebsd-current
> > To unsubscribe, send any mail to
"freebsd-curre...@freebsd.org"
> >
> >

I too tried booting FreeBSD 6.0 on a 2.0Ghz Macbook Pro with 1GB RAM
I get the following


CD Loader 1.2

Building the boot loader arguments
Looking up /BOOT/LOADER... Found
_


the cursor at the end is blinkin so fast. There isnt any activity.
At least thats what I feel.

Scott Long

unread,
Apr 7, 2006, 12:18:31 AM4/7/06
to
bazzoola wrote:

Someone should pull out a 4.11 CD and see if that boots. The CD boots
via emulated El Torito, meaning that it makes itself look like a floppy
disk.

Scott

Bruce M Simpson

unread,
Apr 8, 2006, 6:34:25 AM4/8/06
to

--XLsjFikA86nwwlhe
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

I wrote a document which explains exactly which BIOS calls FreeBSD
uses to boot.

Unfortunately there is a bit of an ongoing re-jig with my web stuff so
it isn't up anywhere but I will repost it here.

BMS

--XLsjFikA86nwwlhe
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="freebsd-bios-interaction.txt"

-----------------------------------------
FreeBSD BIOS Coupling on i386
Bruce M. Simpson <b...@spc.org> 2002-12-27
-----------------------------------------

Copyright (c) 2002 Bruce M. Simpson, All rights reserved.

Redistribution and use are freely permitted provided that the above
copyright notice and this paragraph are duplicated in all forms.

Introduction
------------
This file is intended purely as a source of technical information
on how closely coupled the FreeBSD/i386 boot process is to the BIOS
and legacy i386 hardware.

It should be of interest to anybody considering implementing their
own BIOS and who wishes to be able to boot FreeBSD with it.

FreeBSD Boot Process
--------------------
The FreeBSD OS employs a three stage boot loader. Here we consider the
most common case: booting from a hard disk recognised by the BIOS.

The flow of execution runs thus: boot0 is loaded from the MBR, which then
looks for the first FreeBSD DOS partition; boot1 is loaded from the BPB,
which then loads and invokes boot2 from the boot sectors inside the FreeBSD
disk label; then boot2 attempts to load and invoke the FreeBSD Loader from
the root slice. Finally, the loader invokes the kernel.

boot0/boot0sio
--------------
- Master Boot Record (MBR) boot loader
- Permits selection of DOS partition to boot from
- Loaded from INT 19h (Bootstrap Loader) by BIOS
- Self-relocates to 0000:7C00 (well clear of BIOS Data Area)
- Loads boot sector from selected partition into segment 0, and
performs a near jmp through BX to it

BIOS functions used:
Int Fn SFn Description
------------------------------------------------------------------
10h 0Eh n/a Write Character in Teletype Mode (boot0)
13h 02h n/a Read Disk Sectors
13h 03h n/a Write Disk Sectors
13h 42h n/a Extended Read Sectors
13h 43h n/a Extended Write Sectors
14h 00h n/a Initialize Serial Port (boot0sio)
14h 01h n/a Send Byte (boot0sio)
14h 02h n/a Receive Byte (boot0sio)
14h 03h n/a Read Status (boot0sio)
16h 00h n/a Read Keyboard Input (boot0)
16h 01h n/a Check Keyboard Status (boot0)
1Ah 00h n/a Get System Time

BIOS parameters accepted:
Register Description
-------------------------------
dl BIOS Drive Number (when invoked via INT 19h IPL)

boot1
-----
- BIOS Parameter Block (BPB) boot loader
- Resides in the BPB of the first FreeBSD partition on the disk
- Loaded and invoked by boot0 at 0000:7C00
- Self-relocates on load to 0000:0700 (above BIOS data area and IDT)
- Enables A20 by itself using the AT keyboard controller method
- Reads and relocates boot2 to low memory to continue boot process
- boot1 is kept resident in memory, and V86 mode is used to call into
the real mode xread routine in this segment.

BIOS functions used:
Int Fn SFn Description
------------------------------------------------------------------
10h 0Eh n/a Write Character in Teletype Mode
13h 00h n/a Disk Controller Reset
13h 02h n/a Read Disk Sectors
13h 08h n/a Read Disk Drive Parameters
13h 41h n/a Check If Extensions Present
13h 42h n/a Extended Read Sectors
13h 43h n/a Extended Write Sectors
16h 00h n/a Read Keyboard Input

boot2 meta-binary
-----------------
btxldr, btx, and boot2 are actually compiled into the same binary.
Many things are going on in here.

BTXLDR
------
- This is used to load the BTX framework.
- It enters 'unreal' mode to allow the use of a 32-bit flat address
space, thus permitting boot2 to be compiled using gcc.

BIOS Data Area locations referenced:
Address Description
------------------------------------------------------------------
40:13h Main Memory Size
40:49h Video Mode
40:50h Video -- Cursor Position Page 0

BTXLDR addresses the VGA video memory at B8000h directly.
BTXLDR does not make any BIOS calls.

BTX and boot2
-------------
- BTX sets up a small protected mode kernel. It's actually quite a good
example of how to drive the i386.
- A V86 monitor is used to redirect calls into the BIOS (and capture some),
whilst remaining in protected mode.
- INT 19h is used by the BTX client to reset the machine.

BIOS Data Area locations referenced:
Address Description
------------------------------------------------------------------
40:13h Main Memory Size
40:17h Keyboard Shift Flags 1
40:49h Video Mode
40:50h Video -- Cursor Position Page 0
40:72h Warm Boot Flag

Direct I/O Port Hardware Accesses:
Port Description
------------------------------------------------------------------
0x20 8259 Master Interrupt Command Register
0x21 8259 Master Interrupt Mask Register
0xA0 8259 Slave Interrupt Command Register
0xA1 8259 Slave Interrupt Mask Register
0x3F8 UART 0 Transmit/Receive Buffer and Divisor LSB
0x3F9 UART 0 Divisor MSB
0x3FB UART 0 Line Control
0x3FC UART 0 Modem Control
0x3FD UART 0 Line Status

BIOS Calls intercepted by the V86 Monitor:
Int Fn SFn Description
------------------------------------------------------------------
15h 87h n/a Access Extended Memory
19h n/a n/a Bootstrap Loader

BIOS Calls passed through by the V86 Monitor:
Int Fn SFn Description
------------------------------------------------------------------
10h 0Eh n/a Write Character in Teletype Mode
12h 88h n/a Base Memory Size
13h 08h n/a Read Disk Drive Parameters
15h 88h n/a Extended Memory Size
16h 00h n/a Read Keyboard Input
16h 01h n/a Check Keyboard Status

boot2
-----
boot2 is the BTX client. It uses the protected-mode kernel to call into
the BIOS through the V86 monitor. It understands enough of FreeBSD FFS
to load /boot/loader or /kernel on its own. The FORTH loader is preferable
for modern FreeBSD configurations. It uses the /boot.config file for
some settings of its own (such as forcing an autoboot on a CD installation).

It knows enough to load an ELF or an a.out executable.

loader
------
- This is the newer, advanced FreeBSD third stage bootstrap which has
an embedded, Forth-like interpreter called FICL.
- It is actually referred to as BOOT3 in the boot2 source.
- Source is found under: /usr/src/sys/boot
- Picks up i386 specific functions from i386/libi386, these handle
interaction with the platform hardware, and the BIOS.

BIOS Calls passed through by the V86 Monitor:
Int Fn SFn Description
------------------------------------------------------------------
10h 02h n/a Set Cursor Position (from vidconsole.c)
10h 03h n/a Read Cursor Position and Type (from vidconsole.c)
10h 06h n/a Scroll Active Page Up (from vidconsole.c)
10h 08h n/a Read Character and Attribute (from vidconsole.c)
10h 09h n/a Write Character and Attribute (from vidconsole.c)
10h 0Eh n/a Write Character in Teletype Mode (from vidconsole.c)
12h 88h n/a Base Memory Size (from biosmem.c)
13h 00h n/a Disk Controller Reset (from bioscd.c, biosdisk.c)
13h 02h n/a Read Disk Sectors (from biosdisk.c)
13h 08h n/a Read Disk Drive Parameters (from biosdisk.c)
13h 42h n/a Extended Read Sectors (from bioscd.c, biosdisk.c)
13h 4Bh 01h Terminate Disk Emulation (from bioscd.c)
15h 86h n/a Wait (from time.c)
15h 88h n/a Extended Memory Size (from biosmem.c)
15h E8h 01h Get Extended Memory Info (from biosmem.c)
15h E8h 20h Get System Memory Map (from biosmem.c)
16h 00h n/a Read Keyboard Input (from vidconsole.c)
16h 01h n/a Check Keyboard Status (from vidconsole.c)
1Ah 02h n/a Read CMOS Time (from time.c)
1Ah B1h 01h PCI Test for PCI BIOS Present (from biospci.c)
1Ah B1h 03h PCI Find Device Matching Class Code (from biospci.c)
1Ah B1h 0Ah PCI Read Device Configuration DWORD (from biospci.c)

- FreeBSD's import of ficl has functions which wrap the in/out
instructions to allow them to be used from boot FORTH. The actions of
any FORTH programs which use these bindings are not documented here.

- biospnp.c wraps the PnP BIOS. The PnP specification dictates that
there must be a $PnP structure in the BIOS image, which contains a
real mode CS:IP vector to be used for calls into the PnP BIOS. This
vector will vary according to the BIOS in use.

- pxe.c uses v86 to bounce into routines inside the PXE UNDI BIOS which
knows how to get the IP address, etc. These ROMs exist on the network
card, which can reside on an ISA or PCI bus. PXE compliant cards have
$PnP headers in the boot ROM. Again, the PnP BIOS specification details
how the various boot vectors in this header work, when a PnP BIOS is
loading a PnP compliant expansion ROM.

Kernel->BIOS entry points
-------------------------
- Some BIOS extensions can be called from protected mode using the
BIOS32 Service Directory. Others must be called from real mode.

- We're lurking in: /usr/src/sys/i386

- i386/bios.c, i386/bioscall.s and i386/vm86.c define the following:
- bios16() -- Make a 16-bit BIOS call in real mode *no man page*
- bios32() -- Make a 32-bit BIOS call in protected mode (bios(9))
- bios32_SDlookup() -- Attempt to locate a BIOS32 service (bios(9))
- bios_sigsearch() -- Search for a service signature in ROM (bios(9))
- vm86_intcall() -- Make a 16-bit BIOS call in V86 mode *no man page*
- vm86_datacall() -- Make a 16-bit BIOS call in V86 mode which returns
some data *no man page*
- vm86_bioscall() -- Make a 16-bit BIOS call in V86 mode *no man page*
- BIOS_PADDRTOVADDR() wraps a reference to BIOS Data Area memory.

- Grepping for the relevant permutations of the above entry points
will let you see where kernel drivers are entering the BIOS, or
referencing the BIOS Data Area.

Boot-time Kernel->BIOS Communication
------------------------------------
- i386 specific low level code is in: /usr/src/sys/i386/i386
- Early boot initialization is handled in: locore.s
- loader enters kernel at the entry point 'newboot'
- The kernel reloads the GDT whilst bringing up the system. vm86
descriptors are created as part of the system-wide GDT. These are used
to call into the BIOS or other real mode expansion ROMs later on.

- Most of the kernel coupling is to the loader and not the BIOS, which
is a good thing. That is, handling the BIOS directly has been farmed
out to the loader, which passes this information to the kernel using
a boot information structure, _bootinfo, which it fills in after
loading the kernel.

- The kernel does make a limited number of BIOS calls during boot,
these are mainly made within machdep.c to discover the BIOS's
idea of the system memory map:

Int Fn SFn Description
------------------------------------------------------------------
12h 88h n/a Base Memory Size
15h 88h n/a Extended Memory Size
15h E8h 01h Get Extended Memory Info
15h E8h 20h Get System Memory Map

- If you set bootverbose to 1 from the loader, you can see the SMAP
initialization being printed out on the console.

- isa/mca_machdep.c makes these calls via vm86_intcall():

Int Fn SFn Description
------------------------------------------------------------------
15h C0h n/a Return System BIOS Configuration

- This is used to discover a MicroChannel Bus (MCA) machine.

- isa/pci_cfgreg.c makes these calls via bios32():

Int Fn SFn Description
------------------------------------------------------------------
1Ah B1h 01h PCI Test for PCI BIOS Present
1Ah B1h 0Fh PCI Route Device Interrupt

- This is necessary as the board specific knowledge/code to route
interrupts according to the northbridge/southbridge pair is contained
within the BIOS on i386 machines. Note however that configuration
register access is a well defined process on the i386 which doesn't
require assistance from the BIOS.

- The kernel doesn't specifically call into the BIOS after boot, unless
separate initialization is required on behalf of drivers (e.g. APM).
These are considered separately; please see below.

Run-time Kernel->BIOS Communication
-----------------------------------
- apm/apm.c makes these BIOS calls in 16- or 32-bit mode depending
on whether or not the APM BIOS supports 32-bit invocation:

Int Fn SFn Description
------------------------------------------------------------------
15h 53h nnh APM BIOS Calls (PC/AT)
1Fh 9Ah nnh APM BIOS Calls (PC98)

- i386/isa/vesa.c makes the following calls via vm86_[int|data]call():

Int Fn SFn Description
------------------------------------------------------------------
10h 00h n/a Set Video Mode
10h 4Fh 00h VBE Initialize VESA BIOS
10h 4Fh 01h VBE Get Extended Modes
10h 4Fh 02h VBE Set Extended Mode
10h 4Fh 04h VBE Buffer Manipulation
10h 4Fh 05h VBE Window Manipulation
10h 4Fh 06h VBE Scanline Manipulation
10h 4Fh 07h VBE Linear Framebuffer Manipulation
10h 4Fh 08h VBE DAC Manipulation
10h 4Fh 09h VBE Palette Manipulation

- dev/fb/vga.c uses the BIOS Data Area, primarily if there is no VESA
BIOS present.

BIOS Data Area locations referenced:
Address Description
------------------------------------------------------------------
40:4Ah Video Columns (BYTE)
40:4Ch Video Bytes per Page (WORD)
40:4Dh Video Current Page Offset (WORD)
40:63h Video I/O Port Number Base (WORD)
40:84h Video Number of Rows (BYTE)
40:85h Video Pixels per Character (WORD)
40:87h Video Options (BYTE)
40:88h Video Switches (BYTE)
40:A8h Video Parameter Control Block Pointer (DWORD)

- dev/kbd/atkbd.c makes the following calls via vm86_intcall(),
and may reference a BIOS Data Area location as a result of INT 15h:

Int Fn SFn Description
------------------------------------------------------------------
15h C0h n/a Return System BIOS Configuration
16h 03h 06h Get Typematic Rate
16h 09h n/a Get Typematic Capabilities

- XXX: The DMItable is documented in bios(9), but not implemented.
- XXX: The SMBIOStable is documented in bios(9), but not implemented.
- XXX: I haven't documented how ACPI is called yet.

References
----------
The Undocumented PC 2e
van Gilluwe, Frank; Addison-Wesley; ISBN 0-201-47950-8

PC Intern 6e
Tischer & Jennrich; Abacus; ISBN 1-55755-304-1

PCI System Architecture 4e
Shanley & Anderson; Addison-Wesley; ISBN 0-201-30974-2

--XLsjFikA86nwwlhe
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
freebsd...@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-curre...@freebsd.org"

--XLsjFikA86nwwlhe--

Luigi Rizzo

unread,
Apr 8, 2006, 6:45:03 AM4/8/06
to
On Sat, Apr 08, 2006 at 11:32:24AM +0100, Bruce M Simpson wrote:
> I wrote a document which explains exactly which BIOS calls FreeBSD
> uses to boot.
>
> Unfortunately there is a bit of an ongoing re-jig with my web stuff so
> it isn't up anywhere but I will repost it here.
>
> BMS

very interesting stuff, thanks.

Ii wonder if we can do more progress if we use
a picobsd-like approach namely bypass btx and load the kernel
directly. Reading your list we may well get stuck at the pci
probe, but at least we should see the initial kernel messages.

Testing (given available hardware) should be as simple as running
picobsd on current or 6.1 and creating a 'bridge' image, then trying
it from a flash card...

cheers
luigi

> _______________________________________________

Bruce M Simpson

unread,
Apr 8, 2006, 6:51:14 AM4/8/06
to
On Sat, Apr 08, 2006 at 03:43:58AM -0700, Luigi Rizzo wrote:
> Ii wonder if we can do more progress if we use
> a picobsd-like approach namely bypass btx and load the kernel
> directly. Reading your list we may well get stuck at the pci
> probe, but at least we should see the initial kernel messages.

I would suggest that anyone who wants to get FreeBSD booting on the
mini-mac purchases a port 0x80 POST diag card (<$10 on eBay), and
instruments the early boot paths to output to such a device.

If hacking kernel code then probably quicker to just use NFS and
PXE for starter bootstrap :-)

Of course those of us who are lucky enough to have a PCI logic analyzer
(not me, though I bought an FPGA card explicitly for this purpose,
ENOTIME to learn hardware design language) will be able to do this
right away.

It shouldn't be too difficult to implement PCI Configuration Register
Type 1 support. Ideally of course we'd support EFI natively w/o the shim.

Regards,
BMS

Maxim Sobolev

unread,
Apr 9, 2006, 7:58:59 PM4/9/06
to
Some progress: further investigation revealed that cdboot has been
hanging when trying to enable A20 line, apparently Mac simply don't have
relevant legacy hardware. After commenting out appropriate routine call
in cdboot I was able to get loader working just fine. The loader works
normally, but unfortunately attempt to start kernel hangs up machine.

I suspect that either Mac doesn't have real text mode or kernel also
waits for some nonexisting legacy hardware indefinitely.

-Maxim

Scott Long

unread,
Apr 9, 2006, 7:59:43 PM4/9/06
to
Maxim Sobolev wrote:

> Some progress: further investigation revealed that cdboot has been
> hanging when trying to enable A20 line, apparently Mac simply don't have
> relevant legacy hardware. After commenting out appropriate routine call
> in cdboot I was able to get loader working just fine. The loader works
> normally, but unfortunately attempt to start kernel hangs up machine.
>
> I suspect that either Mac doesn't have real text mode or kernel also
> waits for some nonexisting legacy hardware indefinitely.
>
> -Maxim
>

The Windows 1st stage installer uses text mode, and that runs just fine.
I'm pretty sure that the linux efforts also just use plain text mode.
Text mode is a property of the video BIOS anyways, and from what I
gather the Macintel video hardware is using video BIOSes that are close
to stock. I'm guessing that FreeBSD is doing some BIOS call that isn't
emulated or is emulated poorly. FreeBSD could also be trying to twiddle
some MSR that is behaving as expected (like how the amd64 port used to
enable the NX MSR by default, causing early 64-bit Intel chips to lock
up).

Scott

Kurt Jaeger

unread,
Apr 10, 2006, 7:31:29 AM4/10/06
to
Hi!

> >Some progress: further investigation revealed that cdboot has been
> >hanging when trying to enable A20 line, apparently Mac simply don't
> >have relevant legacy hardware.
>

> The Intel-Mac-Hardware is touted to be the first legacy-free(TM) ("this
> time really") Intel-Hardware that is generally available.
> A testimonial to where the computing industry could be now, had MSDOS
> been abandoned 20 years ago.

See

http://ezine.daemonnews.org/200604/netvista_s40.html

Someone describes the install process for some IBM legacy-free HW.

Maybe this helps.

--
p...@c0mplx.org +49 171 3101372 14 years to go !

Maxim Sobolev

unread,
Apr 10, 2006, 10:57:41 AM4/10/06
to
This is a multi-part message in MIME format.
--------------050209040900010500090104
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit

Oh, cool disabling psm and atkbd/atkbdc helps! The kernel starts
booting, but something goes wrong and it dies with:

avail memory = 1025830912 (978 MB)
AP #1 (PHY# 1) failed!
panic y/n? [y]

Disabling apic helps to boot the system, following is first dmesg of
FreeBSD running on Macintel:

-Maxim

Kurt Jaeger wrote:
> Hi!
>
>>> Some progress: further investigation revealed that cdboot has been
>>> hanging when trying to enable A20 line, apparently Mac simply don't
>>> have relevant legacy hardware.
>> The Intel-Mac-Hardware is touted to be the first legacy-free(TM) ("this
>> time really") Intel-Hardware that is generally available.
>> A testimonial to where the computing industry could be now, had MSDOS
>> been abandoned 20 years ago.
>
> See
>
> http://ezine.daemonnews.org/200604/netvista_s40.html
>
> Someone describes the install process for some IBM legacy-free HW.
>
> Maybe this helps.
>


--------------050209040900010500090104
Content-Type: text/plain;
name="macbook.dmesg"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
filename="macbook.dmesg"

Copyright (c) 1992-2006 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
The Regents of the University of California. All rights reserved.
FreeBSD 7.0-CURRENT #2: Mon Apr 10 13:40:44 UTC 2006
root@:/usr/src/sys/i386/compile/MACBOOK
Using 64 colors for the VM-PQ tuning (2048, 8)
Preloaded elf kernel "/boot/kernel/kernel" at 0xc0b08000.
Preloaded elf module "/boot/kernel/geom_label.ko" at 0xc0b082c4.
Preloaded elf module "/boot/kernel/acpi.ko" at 0xc0b08374.
Calibrating clock(s) ... i8254 clock: 781653 Hz
781653 Hz differs from default of 1193182 Hz by more than 1%
Timecounter "i8254" frequency 1193182 Hz quality 0
Calibrating TSC clock ... TSC clock: 3027797532 Hz
CPU: Genuine Intel(R) CPU T2500 @ 2.00GHz (3027.80-MHz 686-class CPU)
Origin = "GenuineIntel" Id = 0x6e8 Stepping = 8
Features=0xbfe9fbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE>
Features2=0xc1a9<SSE3,MON,VMX,EST,TM2,<b14>,<b15>>
AMD Features=0x100000<NX>
Cores per package: 2

Instruction TLB: 4 KB Pages, 4-way set associative, 128 entries
Data TLB: 4 KB Pages, 4-way set associative, 128 entries
Instruction TLB: 4 MB pages, fully associative, 2 entries
2nd-level cache: 2-MB, 8-way set associative, 64-byte line size
1st-level instruction cache: 32 KB, 8-way set associative, 64 byte line size
Data TLB: 4 MB Pages, 4-way set associative, 8 entries
1st-level data cache: 32 KB, 8-way set associative, 64 byte line size
L2 cache: 2048 kbytes, 8-way associative, 64 bytes/line
real memory = 1057738752 (1008 MB)
Physical memory chunk(s):
0x0000000000001000 - 0x000000000009efff, 647168 bytes (158 pages)
0x0000000000100000 - 0x00000000003fffff, 3145728 bytes (768 pages)
0x0000000000c28000 - 0x000000003dec8fff, 1026166784 bytes (250529 pages)
avail memory = 1025761280 (978 MB)
pnpbios: Found PnP BIOS data at 0xc00fe0e0
pnpbios: Entry = f0000:bc6f Rev = 1.0
pnpbios: OEM ID 8224744e
Other BIOS signatures found:
wlan: <802.11 Link Layer>
random: <entropy source, Software, Yarrow>
nfslock: pseudo-device
io: <I/O>
kbd0 at kbdmux0
mem: <memory>
Pentium Pro MTRR support enabled
null: <null device, zero device>
npx0: INT 16 interface
acpi0: <APPLE Apple00> on motherboard
acpi0: [MPSAFE]
acpi_ec0: <Embedded Controller: GPE 0x17, ECDT> port 0x62,0x66 on acpi0
pci_open(1): mode 1 addr port (0x0cf8) is 0x8000fb04
pci_open(1a): mode1res=0x80000000 (0x80000000)
pci_cfgcheck: device 0 [class=060000] [hdr=00] is there (id=27a08086)
pcibios: No call entry point
acpi_bus_number: root bus has no _BBN, assuming 0
acpi_bus_number: can't get _ADR
acpi_bus_number: can't get _ADR
AcpiOsDerivePciId: bus 0 dev 31 func 0
acpi0: Power Button (fixed)
atpic: Programming IRQ9 as level/low
acpi_bus_number: root bus has no _BBN, assuming 0
acpi_bus_number: can't get _ADR
acpi_bus_number: can't get _ADR
AcpiOsDerivePciId: bus 0 dev 0 func 0
pci_link0: Links after initial probe:
Index IRQ Rtd Ref IRQs
0 11 N 0 1 3 4 5 6 7 10 12 14 15
pci_link0: Links after initial validation:
Index IRQ Rtd Ref IRQs
0 255 N 0 1 3 4 5 6 7 10 12 14 15
pci_link0: Links after disable:
Index IRQ Rtd Ref IRQs
0 255 N 0 1 3 4 5 6 7 10 12 14 15
pci_link1: Links after initial probe:
Index IRQ Rtd Ref IRQs
0 11 N 0 1 3 4 5 6 7 11 12 14 15
pci_link1: Links after initial validation:
Index IRQ Rtd Ref IRQs
0 11 N 0 1 3 4 5 6 7 11 12 14 15
pci_link1: Links after disable:
Index IRQ Rtd Ref IRQs
0 255 N 0 1 3 4 5 6 7 11 12 14 15
pci_link2: Links after initial probe:
Index IRQ Rtd Ref IRQs
0 11 N 0 1 3 4 5 6 7 10 12 14 15
pci_link2: Links after initial validation:
Index IRQ Rtd Ref IRQs
0 255 N 0 1 3 4 5 6 7 10 12 14 15
pci_link2: Links after disable:
Index IRQ Rtd Ref IRQs
0 255 N 0 1 3 4 5 6 7 10 12 14 15
pci_link3: Links after initial probe:
Index IRQ Rtd Ref IRQs
0 11 N 0 1 3 4 5 6 7 11 12 14 15
pci_link3: Links after initial validation:
Index IRQ Rtd Ref IRQs
0 11 N 0 1 3 4 5 6 7 11 12 14 15
pci_link3: Links after disable:
Index IRQ Rtd Ref IRQs
0 255 N 0 1 3 4 5 6 7 11 12 14 15
pci_link4: Links after initial probe:
Index IRQ Rtd Ref IRQs
0 255 N 0 1 3 4 5 6 7 10 12 14 15
pci_link4: Links after initial validation:
Index IRQ Rtd Ref IRQs
0 255 N 0 1 3 4 5 6 7 10 12 14 15
pci_link4: Links after disable:
Index IRQ Rtd Ref IRQs
0 255 N 0 1 3 4 5 6 7 10 12 14 15
pci_link5: Links after initial probe:
Index IRQ Rtd Ref IRQs
0 255 N 0 1 3 4 5 6 7 11 12 14 15
pci_link5: Links after initial validation:
Index IRQ Rtd Ref IRQs
0 255 N 0 1 3 4 5 6 7 11 12 14 15
pci_link5: Links after disable:
Index IRQ Rtd Ref IRQs
0 255 N 0 1 3 4 5 6 7 11 12 14 15
pci_link6: Links after initial probe:
Index IRQ Rtd Ref IRQs
0 11 N 0 1 3 4 5 6 7 10 12 14 15
pci_link6: Links after initial validation:
Index IRQ Rtd Ref IRQs
0 255 N 0 1 3 4 5 6 7 10 12 14 15
pci_link6: Links after disable:
Index IRQ Rtd Ref IRQs
0 255 N 0 1 3 4 5 6 7 10 12 14 15
pci_link7: Links after initial probe:
Index IRQ Rtd Ref IRQs
0 11 N 0 3 4 5 6 7 11 12 14 15
pci_link7: Links after initial validation:
Index IRQ Rtd Ref IRQs
0 11 N 0 3 4 5 6 7 11 12 14 15
pci_link7: Links after disable:
Index IRQ Rtd Ref IRQs
0 255 N 0 3 4 5 6 7 11 12 14 15
acpi_hpet0: Vendor: 0x8086
acpi_hpet0: Leg_Route_Cap: 1
acpi_hpet0: Count_Size_Cap: 1
acpi_hpet0: Num_Tim_Cap: 1
acpi_hpet0: Rev_id: 0x1
acpi_hpet0: Period: 69841279 fs (14318180 Hz)
acpi_hpet0: HPET attach
Timecounter "HPET" frequency 14318180 Hz quality -200
ACPI timer: 1/1 1/1 1/1 1/1 1/1 1/1 1/1 1/1 1/1 1/1 -> 10
Timecounter "ACPI-fast" frequency 3579545 Hz quality 1000
acpi_timer0: <24-bit timer at 3.579545MHz> port 0x408-0x40b on acpi0
cpu0: <ACPI CPU> on acpi0
acpi_throttle0: <ACPI CPU Throttling> on cpu0
acpi_throttle0: P_CNT from P_BLK 0x410
acpi_acad0: <AC Adapter> on acpi0
acpi_lid0: <Control Method Lid Switch> on acpi0
acpi_button0: <Power Button> on acpi0
acpi_button1: <Sleep Button> on acpi0
pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff on acpi0
ACPI: Found matching pin for 0.1.INTA at func 0: 10
ACPI: Found matching pin for 0.7.INTA at func 0: 10
ACPI: Found matching pin for 0.27.INTA at func 0: 11
pci_link6: BIOS IRQ 11 for 0.27.INTA is invalid
ACPI: Found matching pin for 0.28.INTA at func 0: 11
ACPI: Found matching pin for 0.28.INTB at func 1: 10
ACPI: Found matching pin for 0.28.INTC at func 2: 11
pci_link2: BIOS IRQ 11 for 0.28.INTC is invalid
ACPI: Found matching pin for 0.29.INTA at func 0: 11
ACPI: Found matching pin for 0.29.INTB at func 1: 11
ACPI: Found matching pin for 0.29.INTC at func 2: 11
pci_link2: BIOS IRQ 11 for 0.29.INTC is invalid
ACPI: Found matching pin for 0.29.INTD at func 3: 10
ACPI: Found matching pin for 0.31.INTA at func 1: 11
pci_link2: BIOS IRQ 11 for 0.31.INTA is invalid
ACPI: Found matching pin for 0.31.INTB at func 2: 11
pci0: <ACPI PCI bus> on pcib0
pci0: physical bus=0
found-> vendor=0x8086, dev=0x27a0, revid=0x03
bus=0, slot=0, func=0
class=06-00-00, hdrtype=0x00, mfdev=0
cmdreg=0x0006, statreg=0x2090, cachelnsz=0 (dwords)
lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
found-> vendor=0x8086, dev=0x27a1, revid=0x03
bus=0, slot=1, func=0
class=06-04-00, hdrtype=0x01, mfdev=0
cmdreg=0x0007, statreg=0x0010, cachelnsz=64 (dwords)
lattimer=0x00 (0 ns), mingnt=0x08 (2000 ns), maxlat=0x00 (0 ns)
intpin=a, irq=10
pcib0: matched entry for 0.1.INTA (src \\_SB_.PCI0.LPCB.LNKA:0)
pcib0: slot 1 INTA routed to irq 10 via \\_SB_.PCI0.LPCB.LNKA
found-> vendor=0x8086, dev=0x27a3, revid=0x03
bus=0, slot=7, func=0
class=11-01-00, hdrtype=0x00, mfdev=0
cmdreg=0x0002, statreg=0x00b0, cachelnsz=0 (dwords)
lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
intpin=a, irq=10
powerspec 2 supports D0 D3 current D0
map[10]: type 1, range 32, base 98404000, size 12, enabled
pcib0: matched entry for 0.7.INTA (src \\_SB_.PCI0.LPCB.LNKA:0)
pcib0: slot 7 INTA routed to irq 10 via \\_SB_.PCI0.LPCB.LNKA
found-> vendor=0x8086, dev=0x27d8, revid=0x02
bus=0, slot=27, func=0
class=04-03-00, hdrtype=0x00, mfdev=0
cmdreg=0x0006, statreg=0x0010, cachelnsz=64 (dwords)
lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
intpin=a, irq=11
powerspec 2 supports D0 D3 current D0
MSI supports 1 message, 64 bit
map[10]: type 1, range 64, base 98400000, size 14, enabled
pcib0: matched entry for 0.27.INTA (src \\_SB_.PCI0.LPCB.LNKG:0)
pci_link6: Picked IRQ 9 with weight 0
pcib0: slot 27 INTA routed to irq 9 via \\_SB_.PCI0.LPCB.LNKG
found-> vendor=0x8086, dev=0x27d0, revid=0x02
bus=0, slot=28, func=0
class=06-04-00, hdrtype=0x01, mfdev=1
cmdreg=0x0007, statreg=0x0010, cachelnsz=64 (dwords)
lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
intpin=a, irq=11
pcib0: matched entry for 0.28.INTA (src \\_SB_.PCI0.LPCB.LNKB:0)
pcib0: slot 28 INTA routed to irq 11 via \\_SB_.PCI0.LPCB.LNKB
found-> vendor=0x8086, dev=0x27d2, revid=0x02
bus=0, slot=28, func=1
class=06-04-00, hdrtype=0x01, mfdev=1
cmdreg=0x0007, statreg=0x0010, cachelnsz=64 (dwords)
lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
intpin=b, irq=10
pcib0: matched entry for 0.28.INTB (src \\_SB_.PCI0.LPCB.LNKA:0)
pcib0: slot 28 INTB routed to irq 10 via \\_SB_.PCI0.LPCB.LNKA
found-> vendor=0x8086, dev=0x27d4, revid=0x02
bus=0, slot=28, func=2
class=06-04-00, hdrtype=0x01, mfdev=1
cmdreg=0x0007, statreg=0x0010, cachelnsz=64 (dwords)
lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
intpin=c, irq=11
pcib0: matched entry for 0.28.INTC (src \\_SB_.PCI0.LPCB.LNKC:0)
pci_link2: Picked IRQ 9 with weight 2
pcib0: slot 28 INTC routed to irq 9 via \\_SB_.PCI0.LPCB.LNKC
found-> vendor=0x8086, dev=0x27c8, revid=0x02
bus=0, slot=29, func=0
class=0c-03-00, hdrtype=0x00, mfdev=1
cmdreg=0x0005, statreg=0x0280, cachelnsz=0 (dwords)
lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
intpin=a, irq=11
map[20]: type 4, range 32, base 000040a0, size 5, enabled
pcib0: matched entry for 0.29.INTA (src \\_SB_.PCI0.LPCB.LNKH:0)
pcib0: slot 29 INTA routed to irq 11 via \\_SB_.PCI0.LPCB.LNKH
found-> vendor=0x8086, dev=0x27c9, revid=0x02
bus=0, slot=29, func=1
class=0c-03-00, hdrtype=0x00, mfdev=0
cmdreg=0x0005, statreg=0x0280, cachelnsz=0 (dwords)
lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
intpin=b, irq=11
map[20]: type 4, range 32, base 00004080, size 5, enabled
pcib0: matched entry for 0.29.INTB (src \\_SB_.PCI0.LPCB.LNKD:0)
pcib0: slot 29 INTB routed to irq 11 via \\_SB_.PCI0.LPCB.LNKD
found-> vendor=0x8086, dev=0x27ca, revid=0x02
bus=0, slot=29, func=2
class=0c-03-00, hdrtype=0x00, mfdev=0
cmdreg=0x0005, statreg=0x0280, cachelnsz=0 (dwords)
lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
intpin=c, irq=11
map[20]: type 4, range 32, base 00004060, size 5, enabled
pcib0: matched entry for 0.29.INTC (src \\_SB_.PCI0.LPCB.LNKC:0)
pcib0: slot 29 INTC routed to irq 9 via \\_SB_.PCI0.LPCB.LNKC
found-> vendor=0x8086, dev=0x27cb, revid=0x02
bus=0, slot=29, func=3
class=0c-03-00, hdrtype=0x00, mfdev=0
cmdreg=0x0005, statreg=0x0280, cachelnsz=0 (dwords)
lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
intpin=d, irq=10
map[20]: type 4, range 32, base 00004040, size 5, enabled
pcib0: matched entry for 0.29.INTD (src \\_SB_.PCI0.LPCB.LNKA:0)
pcib0: slot 29 INTD routed to irq 10 via \\_SB_.PCI0.LPCB.LNKA
found-> vendor=0x8086, dev=0x27cc, revid=0x02
bus=0, slot=29, func=7
class=0c-03-20, hdrtype=0x00, mfdev=0
cmdreg=0x0006, statreg=0x0290, cachelnsz=0 (dwords)
lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
intpin=a, irq=11
powerspec 2 supports D0 D3 current D0
map[10]: type 1, range 32, base 98405400, size 10, enabled
pcib0: matched entry for 0.29.INTA (src \\_SB_.PCI0.LPCB.LNKH:0)
pcib0: slot 29 INTA routed to irq 11 via \\_SB_.PCI0.LPCB.LNKH
found-> vendor=0x8086, dev=0x2448, revid=0xe2
bus=0, slot=30, func=0
class=06-04-01, hdrtype=0x01, mfdev=0
cmdreg=0x0007, statreg=0x0010, cachelnsz=0 (dwords)
lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
found-> vendor=0x8086, dev=0x27b9, revid=0x02
bus=0, slot=31, func=0
class=06-01-00, hdrtype=0x00, mfdev=1
cmdreg=0x0007, statreg=0x0210, cachelnsz=0 (dwords)
lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
found-> vendor=0x8086, dev=0x27df, revid=0x02
bus=0, slot=31, func=1
class=01-01-8a, hdrtype=0x00, mfdev=0
cmdreg=0x0005, statreg=0x0288, cachelnsz=0 (dwords)
lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
intpin=a, irq=11
map[20]: type 4, range 32, base 000040c0, size 4, enabled
pcib0: matched entry for 0.31.INTA (src \\_SB_.PCI0.LPCB.LNKC:0)
pcib0: slot 31 INTA routed to irq 9 via \\_SB_.PCI0.LPCB.LNKC
found-> vendor=0x8086, dev=0x27c4, revid=0x02
bus=0, slot=31, func=2
class=01-01-8f, hdrtype=0x00, mfdev=0
cmdreg=0x0005, statreg=0x02b0, cachelnsz=0 (dwords)
lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
intpin=b, irq=11
powerspec 2 supports D0 D3 current D0
map[10]: type 4, range 32, base 000040d8, size 3, enabled
map[14]: type 4, range 32, base 000040f4, size 2, enabled
map[18]: type 4, range 32, base 000040d0, size 3, enabled
map[1c]: type 4, range 32, base 000040f0, size 2, enabled
map[20]: type 4, range 32, base 00004020, size 4, enabled
map[24]: type 1, range 32, base 98405000, size 10, memory disabled
pcib0: matched entry for 0.31.INTB (src \\_SB_.PCI0.LPCB.LNKD:0)
pcib0: slot 31 INTB routed to irq 11 via \\_SB_.PCI0.LPCB.LNKD
found-> vendor=0x8086, dev=0x27da, revid=0x02
bus=0, slot=31, func=3
class=0c-05-00, hdrtype=0x00, mfdev=0
cmdreg=0x0001, statreg=0x0280, cachelnsz=0 (dwords)
lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
intpin=b, irq=11
map[20]: type 4, range 32, base 0000efa0, size 5, enabled
pcib0: matched entry for 0.31.INTB (src \\_SB_.PCI0.LPCB.LNKD:0)
pcib0: slot 31 INTB routed to irq 11 via \\_SB_.PCI0.LPCB.LNKD
pcib1: <ACPI PCI-PCI bridge> irq 10 at device 1.0 on pci0
pcib1: secondary bus 1
pcib1: subordinate bus 1
pcib1: I/O decode 0x3000-0x3fff
pcib1: memory decode 0x98300000-0x983fffff
pcib1: prefetched decode 0x80000000-0x8fffffff
ACPI: Found matching pin for 1.0.INTA at func 0: 10
pci1: <ACPI PCI bus> on pcib1
pci1: physical bus=1
found-> vendor=0x1002, dev=0x71c5, revid=0x00
bus=1, slot=0, func=0
class=03-00-00, hdrtype=0x00, mfdev=0
cmdreg=0x0007, statreg=0x0010, cachelnsz=64 (dwords)
lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
intpin=a, irq=10
powerspec 2 supports D0 D1 D2 D3 current D0
MSI supports 1 message, 64 bit
map[10]: type 3, range 32, base 80000000, size 28, enabled
pcib1: (null) requested memory range 0x80000000-0x8fffffff: good
map[14]: type 4, range 32, base 00003000, size 8, enabled
pcib1: (null) requested I/O range 0x3000-0x30ff: in range
map[18]: type 1, range 32, base 98300000, size 16, enabled
pcib1: (null) requested memory range 0x98300000-0x9830ffff: good
pcib1: matched entry for 1.0.INTA (src \\_SB_.PCI0.LPCB.LNKA:0)
pcib1: slot 0 INTA routed to irq 10 via \\_SB_.PCI0.LPCB.LNKA
vgapci0: <VGA-compatible display> port 0x3000-0x30ff mem 0x80000000-0x8fffffff,0x98300000-0x9830ffff irq 10 at device 0.0 on pci1
pci0: <dasp> at device 7.0 (no driver attached)
pci0: <multimedia> at device 27.0 (no driver attached)
pcib2: <ACPI PCI-PCI bridge> irq 11 at device 28.0 on pci0
pcib2: secondary bus 2
pcib2: subordinate bus 2
pcib2: I/O decode 0x2000-0x2fff
pcib2: memory decode 0x98200000-0x982fffff
pcib2: prefetched decode 0xfff00000-0xfffff
ACPI: Found matching pin for 2.0.INTA at func 0: 11
pci_link0: BIOS IRQ 11 for 2.0.INTA is invalid
pci2: <ACPI PCI bus> on pcib2
pci2: physical bus=2
found-> vendor=0x11ab, dev=0x4362, revid=0x22
bus=2, slot=0, func=0
class=02-00-00, hdrtype=0x00, mfdev=0
cmdreg=0x0007, statreg=0x0010, cachelnsz=64 (dwords)
lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
intpin=a, irq=11
powerspec 2 supports D0 D1 D2 D3 current D0
MSI supports 2 messages, 64 bit
map[10]: type 1, range 64, base 98200000, size 14, enabled
pcib2: (null) requested memory range 0x98200000-0x98203fff: good
map[18]: type 4, range 32, base 00002000, size 8, enabled
pcib2: (null) requested I/O range 0x2000-0x20ff: in range
pcib2: matched entry for 2.0.INTA (src \\_SB_.PCI0.LPCB.LNKA:0)
pcib2: slot 0 INTA routed to irq 10 via \\_SB_.PCI0.LPCB.LNKA
skc0: <Apple MacBook Pro Gigabit Ethernet> port 0x2000-0x20ff mem 0x98200000-0x98203fff irq 10 at device 0.0 on pci2
skc0: Reserved 0x4000 bytes for rid 0x10 type 3 at 0x98200000
skc0: interrupt moderation is 100 us
skc0: bad VPD resource id: expected 82 got 0
skc0: unknown media type: 0x31
device_attach: skc0 attach returned 6
pcib3: <ACPI PCI-PCI bridge> irq 10 at device 28.1 on pci0
pcib3: secondary bus 3
pcib3: subordinate bus 3
pcib3: I/O decode 0xf000-0xfff
pcib3: memory decode 0x98100000-0x981fffff
pcib3: prefetched decode 0xfff00000-0xfffff
ACPI: Found matching pin for 3.0.INTA at func 0: 11
pci3: <ACPI PCI bus> on pcib3
pci3: physical bus=3
found-> vendor=0x168c, dev=0x001c, revid=0x01
bus=3, slot=0, func=0
class=02-00-00, hdrtype=0x00, mfdev=0
cmdreg=0x0007, statreg=0x0010, cachelnsz=64 (dwords)
lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
intpin=a, irq=11
powerspec 2 supports D0 D3 current D0
MSI supports 1 message
map[10]: type 1, range 64, base 98100000, size 16, enabled
pcib3: (null) requested memory range 0x98100000-0x9810ffff: good
pcib3: matched entry for 3.0.INTA (src \\_SB_.PCI0.LPCB.LNKB:0)
pcib3: slot 0 INTA routed to irq 11 via \\_SB_.PCI0.LPCB.LNKB
pci3: <network, ethernet> at device 0.0 (no driver attached)
pcib4: <ACPI PCI-PCI bridge> irq 9 at device 28.2 on pci0
pcib4: secondary bus 4
pcib4: subordinate bus 11
pcib4: I/O decode 0x1000-0x1fff
pcib4: memory decode 0x94100000-0x980fffff
pcib4: prefetched decode 0x90000000-0x93ffffff
pci4: <ACPI PCI bus> on pcib4
pci4: physical bus=4
uhci0: <UHCI (generic) USB controller> port 0x40a0-0x40bf irq 11 at device 29.0 on pci0
uhci0: Reserved 0x20 bytes for rid 0x20 type 4 at 0x40a0
uhci0: [GIANT-LOCKED]
usb0: <UHCI (generic) USB controller> on uhci0
usb0: USB revision 1.0
uhub0: <Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1> on usb0
uhub0: 2 ports with 2 removable, self powered
uhci1: <UHCI (generic) USB controller> port 0x4080-0x409f irq 11 at device 29.1 on pci0
uhci1: Reserved 0x20 bytes for rid 0x20 type 4 at 0x4080
uhci1: [GIANT-LOCKED]
usb1: <UHCI (generic) USB controller> on uhci1
usb1: USB revision 1.0
uhub1: <Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1> on usb1
uhub1: 2 ports with 2 removable, self powered
uhci2: <UHCI (generic) USB controller> port 0x4060-0x407f irq 9 at device 29.2 on pci0
uhci2: Reserved 0x20 bytes for rid 0x20 type 4 at 0x4060
uhci2: [GIANT-LOCKED]
usb2: <UHCI (generic) USB controller> on uhci2
usb2: USB revision 1.0
uhub2: <Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1> on usb2
uhub2: 2 ports with 2 removable, self powered
uhci3: <UHCI (generic) USB controller> port 0x4040-0x405f irq 10 at device 29.3 on pci0
uhci3: Reserved 0x20 bytes for rid 0x20 type 4 at 0x4040
uhci3: [GIANT-LOCKED]
usb3: <UHCI (generic) USB controller> on uhci3
usb3: USB revision 1.0
uhub3: <Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1> on usb3
uhub3: 2 ports with 2 removable, self powered
ehci0: <Intel 82801GB/R (ICH7) USB 2.0 controller> mem 0x98405400-0x984057ff irq 11 at device 29.7 on pci0
ehci0: Reserved 0x400 bytes for rid 0x10 type 3 at 0x98405400
ehci0: [GIANT-LOCKED]
usb4: EHCI version 1.0
usb4: companion controllers, 2 ports each: usb0 usb1 usb2 usb3
usb4: <Intel 82801GB/R (ICH7) USB 2.0 controller> on ehci0
usb4: USB revision 2.0
uhub4: <Intel EHCI root hub, class 9/0, rev 2.00/1.00, addr 1> on usb4
uhub4: 8 ports with 8 removable, self powered
ugen0: <vendor 0x05ac product 0x8300, class 255/255, rev 2.00/0.0a, addr 2> on uhub4
pcib5: <ACPI PCI-PCI bridge> at device 30.0 on pci0
pcib5: secondary bus 12
pcib5: subordinate bus 12
pcib5: I/O decode 0xf000-0xfff
pcib5: memory decode 0x94000000-0x940fffff
pcib5: prefetched decode 0xfff00000-0xfffff
pcib5: Subtractively decoded bridge.
ACPI: Found matching pin for 12.3.INTA at func 0: 11
pci12: <ACPI PCI bus> on pcib5
pci12: physical bus=12
found-> vendor=0x11c1, dev=0x5811, revid=0x61
bus=12, slot=3, func=0
class=0c-00-10, hdrtype=0x00, mfdev=0
cmdreg=0x0216, statreg=0x0290, cachelnsz=16 (dwords)
lattimer=0xf8 (7440 ns), mingnt=0x0c (3000 ns), maxlat=0x18 (6000 ns)
intpin=a, irq=11
powerspec 2 supports D0 D1 D2 D3 current D0
map[10]: type 1, range 32, base 94000000, size 12, enabled
pcib5: (null) requested memory range 0x94000000-0x94000fff: good
pcib5: matched entry for 12.3.INTA (src \\_SB_.PCI0.LPCB.LNKD:0)
pcib5: slot 3 INTA routed to irq 11 via \\_SB_.PCI0.LPCB.LNKD
fwohci0: <Lucent FW322/323> mem 0x94000000-0x94000fff irq 11 at device 3.0 on pci12
fwohci0: Reserved 0x1000 bytes for rid 0x10 type 3 at 0x94000000
fwohci0: [MPSAFE]
fwohci0: OHCI version 1.0 (ROM=0)
fwohci0: No. of Isochronous channels is 8.
fwohci0: EUI64 00:16:cb:ff:fe:58:d8:96
fwohci0: Phy 1394a available S400, 3 ports.
fwohci0: Link S400, max_rec 2048 bytes.
firewire0: <IEEE1394(FireWire) bus> on fwohci0
fwe0: <Ethernet over FireWire> on firewire0
if_fwe0: Fake Ethernet address: 02:16:cb:58:d8:96
fwe0: bpf attached
fwe0: Ethernet address: 02:16:cb:58:d8:96
fwe0: if_start running deferred for Giant
sbp0: <SBP-2/SCSI over FireWire> on firewire0
fwohci0: Initiate bus reset
fwohci0: node_id=0xc000ffc0, gen=2, CYCLEMASTER mode
firewire0: 1 nodes, maxhop <= 0, cable IRM = 0 (me)
firewire0: bus manager 0 (me)
isab0: <PCI-ISA bridge> at device 31.0 on pci0
isa0: <ISA bus> on isab0
atapci0: <Intel ICH7 UDMA100 controller> port 0x1f0-0x1f7,0x3f6,0x170-0x177,0x376,0x40c0-0x40cf irq 9 at device 31.1 on pci0
atapci0: Reserved 0x10 bytes for rid 0x20 type 4 at 0x40c0
ata0: <ATA channel 0> on atapci0
atapci0: Reserved 0x8 bytes for rid 0x10 type 4 at 0x1f0
atapci0: Reserved 0x1 bytes for rid 0x14 type 4 at 0x3f6
ata0: reset tp1 mask=03 ostat0=50 ostat1=00
ata0: stat0=0x00 err=0x01 lsb=0x14 msb=0xeb
ata0: stat1=0x00 err=0x00 lsb=0x00 msb=0x00
ata0: reset tp2 stat0=00 stat1=00 devices=0x4<ATAPI_MASTER>
ata0: [MPSAFE]
ata1: <ATA channel 1> on atapci0
atapci0: Reserved 0x8 bytes for rid 0x18 type 4 at 0x170
atapci0: Reserved 0x1 bytes for rid 0x1c type 4 at 0x376
ata1: reset tp1 mask=03 ostat0=7f ostat1=7f
ata1: stat0=0x7f err=0x7f lsb=0x7f msb=0x7f
ata1: stat0=0x7f err=0x7f lsb=0x7f msb=0x7f
ata1: stat0=0x7f err=0x7f lsb=0x7f msb=0x7f
ata1: stat0=0x7f err=0x7f lsb=0x7f msb=0x7f
ata1: stat0=0x7f err=0x7f lsb=0x7f msb=0x7f
ata1: stat0=0x7f err=0x7f lsb=0x7f msb=0x7f
ata1: stat0=0x7f err=0x7f lsb=0x7f msb=0x7f
ata1: stat0=0x7f err=0x7f lsb=0x7f msb=0x7f
ata1: stat0=0x7f err=0x7f lsb=0x7f msb=0x7f
ata1: stat0=0x7f err=0x7f lsb=0x7f msb=0x7f
ata1: stat0=0x7f err=0x7f lsb=0x7f msb=0x7f
ata1: stat0=0x7f err=0x7f lsb=0x7f msb=0x7f
ata1: stat1=0x7f err=0x7f lsb=0x7f msb=0x7f
ata1: reset tp2 stat0=ff stat1=ff devices=0x0
ata1: [MPSAFE]
atapci1: <GENERIC ATA controller> port 0x40d8-0x40df,0x40f4-0x40f7,0x40d0-0x40d7,0x40f0-0x40f3,0x4020-0x402f mem 0x98405000-0x984053ff irq 11 at device 31.2 on pci0
atapci1: Reserved 0x10 bytes for rid 0x20 type 4 at 0x4020
atapci1: [MPSAFE]
ata2: <ATA channel 0> on atapci1
atapci1: Reserved 0x8 bytes for rid 0x10 type 4 at 0x40d8
atapci1: Reserved 0x4 bytes for rid 0x14 type 4 at 0x40f4
ata2: reset tp1 mask=03 ostat0=7f ostat1=50
ata2: stat0=0x7f err=0x00 lsb=0xff msb=0xff
ata2: stat1=0x50 err=0x01 lsb=0x00 msb=0x00
ata2: reset tp2 stat0=7f stat1=50 devices=0x2<ATA_SLAVE>
ata2: [MPSAFE]
ata3: <ATA channel 1> on atapci1
atapci1: Reserved 0x8 bytes for rid 0x18 type 4 at 0x40d0
atapci1: Reserved 0x4 bytes for rid 0x1c type 4 at 0x40f0
ata3: reset tp1 mask=03 ostat0=7f ostat1=7f
ata3: stat0=0x7f err=0x00 lsb=0xff msb=0xff
ata3: stat1=0x7f err=0xff lsb=0xff msb=0xff
ata3: stat1=0x7f err=0xff lsb=0xff msb=0xff
ata3: stat1=0x7f err=0xff lsb=0xff msb=0xff
ata3: stat1=0x7f err=0xff lsb=0xff msb=0xff
ata3: stat1=0x7f err=0xff lsb=0xff msb=0xff
ata3: stat1=0x7f err=0xff lsb=0xff msb=0xff
ata3: stat1=0x7f err=0xff lsb=0xff msb=0xff
ata3: stat1=0x7f err=0xff lsb=0xff msb=0xff
ata3: stat1=0x7f err=0xff lsb=0xff msb=0xff
ata3: stat1=0x7f err=0xff lsb=0xff msb=0xff
ata3: stat1=0x7f err=0xff lsb=0xff msb=0xff
ata3: stat1=0x7f err=0xff lsb=0xff msb=0xff
ata3: stat1=0x7f err=0xff lsb=0xff msb=0xff
ata3: stat1=0x7f err=0xff lsb=0xff msb=0xff
ata3: stat1=0x7f err=0xff lsb=0xff msb=0xff
ata3: stat1=0x7f err=0xff lsb=0xff msb=0xff
ata3: stat1=0x7f err=0xff lsb=0xff msb=0xff
ata3: stat1=0x7f err=0xff lsb=0xff msb=0xff
ata3: stat1=0x7f err=0xff lsb=0xff msb=0xff
ata3: stat1=0x7f err=0xff lsb=0xff msb=0xff
ata3: stat1=0x7f err=0xff lsb=0xff msb=0xff
ata3: stat1=0x7f err=0xff lsb=0xff msb=0xff
ata3: reset tp2 stat0=7f stat1=ff devices=0x0
ata3: [MPSAFE]
pci0: <serial bus, SMBus> at device 31.3 (no driver attached)
battery0: <ACPI Control Method Battery> on acpi0
ex_isa_identify()
ata: ata0 already exists; skipping it
ata: ata1 already exists; skipping it
pnp_identify: Trying Read_Port at 203
pnp_identify: Trying Read_Port at 243
pnp_identify: Trying Read_Port at 283
pnp_identify: Trying Read_Port at 2c3
pnp_identify: Trying Read_Port at 303
pnp_identify: Trying Read_Port at 343
pnp_identify: Trying Read_Port at 383
pnp_identify: Trying Read_Port at 3c3
PNP Identify complete
unknown: status reg test failed ff
unknown: status reg test failed ff
unknown: status reg test failed ff
unknown: status reg test failed ff
unknown: status reg test failed ff
unknown: status reg test failed ff
sc: sc0 already exists; skipping it
vga: vga0 already exists; skipping it
isa_probe_children: disabling PnP devices
isa_probe_children: probing non-PnP devices
pmtimer0 on isa0
adv0: not probed (disabled)
aha0: not probed (disabled)
aic0: not probed (disabled)
atkbdc0: not probed (disabled)
bt0: not probed (disabled)
cs0: not probed (disabled)
ed0: not probed (disabled)
fdc0: not probed (disabled)
fe0: not probed (disabled)
ie0: not probed (disabled)
lnc0: not probed (disabled)
ppc0: parallel port not found.
ppc0: <Parallel port> failed to probe at irq 7 on isa0
sc0: <System console> at flags 0x100 on isa0
sc0: VGA <16 virtual consoles, flags=0x300>
sc0: fb0, kbd0, terminal emulator: sc (syscons terminal)
sio0: not probed (disabled)
sio1: not probed (disabled)
sio2: not probed (disabled)
sio3: not probed (disabled)
sn0: not probed (disabled)
vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
vt0: not probed (disabled)
isa_probe_children: probing PnP devices
ums0: <Logitech USB-PS/2 Optical Mouse, class 0/0, rev 2.00/11.10, addr 2> on uhub0
ums0: 3 buttons and Z dir.
ukbd0: <Apple Computer Apple Internal Keyboard / Trackpad, class 0/0, rev 2.00/0.60, addr 3> on uhub0
kbd: new array size 4
kbd1 at ukbd0
kbd1: ukbd0, generic (0), config:0x0, flags:0x3d0000
ums1: <Apple Computer Apple Internal Keyboard / Trackpad, class 0/0, rev 2.00/0.60, addr 3> on uhub0
ums1: 3 buttons.
uhid0: <Apple Computer Apple Internal Keyboard / Trackpad, class 0/0, rev 2.00/0.60, addr 3> on uhub0
uhid1: <Apple Computer, Inc. IR Receiver, class 0/0, rev 2.00/1.09, addr 2> on uhub2
ukbd1: <vendor 0x05ac product 0x1000, class 0/0, rev 2.00/19.65, addr 2> on uhub3
kbd2 at ukbd1
kbd2: ukbd1, generic (0), config:0x0, flags:0x3d0000
ums2: <vendor 0x05ac product 0x1000, class 0/0, rev 2.00/19.65, addr 2> on uhub3
ums2: 5 buttons.
Device configuration finished.
procfs registered
Timecounter "TSC" frequency 3027797532 Hz quality 800
Timecounters tick every 1.000 msec
lo0: bpf attached
acpi_acad0: acline initialization start
acpi_acad0: On Line
acpi_acad0: acline initialization done, tried 1 times
battery0: battery initialization start
ata0-master: pio=PIO4 wdma=WDMA2 udma=UDMA66 cable=80 wire
acd0: setting PIO4 on ICH7 chip
acd0: setting UDMA66 on ICH7 chip
battery0: battery initialization done, tried 1 times
acd0: <MATSHITADVD-R UJ-857/HAE4> DVDR drive at ata0 as master
acd0: read 4134KB/s (4134KB/s) write 689KB/s (689KB/s), 2048KB buffer, UDMA66
acd0: Reads: CDR, CDRW, CDDA stream, DVDROM, DVDR, DVDRAM, packet
acd0: Writes: CDR, CDRW, DVDR, test write, burnproof
acd0: Audio: play, 256 volume levels
acd0: Mechanism: ejectable tray, unlocked
acd0: Medium: CD-RW 120mm data disc
Interrupt storm detected on "irq11:"; throttling interrupt source
ata2-slave: pio=PIO4 wdma=WDMA2 udma=UDMA133 cable=40 wire
ad5: 95396MB <Seagate ST910021AS 3.07> at ata2-slave UDMA33
ad5: 195371568 sectors [193821C/16H/63S] 16 sectors/interrupt 1 depth queue
ad5: Intel check1 failed
ad5: Adaptec check1 failed
ad5: LSI (v3) check1 failed
ad5: LSI (v2) check1 failed
ad5: FreeBSD check1 failed
GEOM_LABEL: Label for provider acd0 is iso9660/NEW.
GEOM: new disk ad5
(probe0:sbp0:0:0:0): error 22
(probe0:sbp0:0:0:0): Unretryable Error
(probe4:sbp0:0:4:0): error 22
(probe4:sbp0:0:4:0): Unretryable Error
(probe5:sbp0:0:5:0): error 22
(probe5:sbp0:0:5:0): Unretryable Error
(probe1:sbp0:0:1:0): error 22
(probe1:sbp0:0:1:0): Unretryable Error
(probe2:sbp0:0:2:0): error 22
(probe2:sbp0:0:2:0): Unretryable Error
(probe3:sbp0:0:3:0): error 22
(probe3:sbp0:0:3:0): Unretryable Error
(probe6:sbp0:0:6:0): error 22
(probe6:sbp0:0:6:0): Unretryable Error
ATA PseudoRAID loaded
GEOM: ad5: GPT detected, but no protective MBR.

Manual root filesystem specification:
<fstype>:<device> Mount <device> using filesystem <fstype>
eg. ufs:da0s1a
? List valid disk boot devices
<empty line> Abort manual input

mountroot> ufs:da0s5
Trying to mount root from ufs:da0s5
umass0: <Myson Century, Inc. USB Mass Storage Device, class 0/0, rev 2.00/b0.07, addr 3> on uhub4
umass0:1:0:-1: Attached to scbus1
pass0 at umass-sim0 bus 0 target 0 lun 0
pass0: <IC25N040 ATMR04-0 MO2O> Fixed Direct Access SCSI-0 device
pass0: Serial Number \^_
pass0: 40.000MB/s transfers
GEOM: new disk da0
da0 at umass-sim0 bus 0 target 0 lun 0
da0: <IC25N040 ATMR04-0 MO2O> Fixed Direct Access SCSI-0 device
da0: Serial Number \^_
da0: 40.000MB/s transfers
da0: 38154MB (78140160 512 byte sectors: 255H 63S/T 4864C)
GEOM_LABEL: Label for provider da0s2 is ufs/scratch.
Mount point / had 1 dangling refs

Manual root filesystem specification:
<fstype>:<device> Mount <device> using filesystem <fstype>
eg. ufs:da0s1a
? List valid disk boot devices
<empty line> Abort manual input

mountroot> ufs:us\^H \^Hfs/scratch
Trying to mount root from ufs:ufs/scratch
start_init: trying /sbin/init

--------------050209040900010500090104


Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________

--------------050209040900010500090104--

Andre Guibert de Bruet

unread,
Apr 10, 2006, 11:22:30 AM4/10/06
to
On Apr 10, 2006, at 10:52 AM, Maxim Sobolev wrote:

> Oh, cool disabling psm and atkbd/atkbdc helps! The kernel starts
> booting, but something goes wrong and it dies with:
>
> avail memory = 1025830912 (978 MB)
> AP #1 (PHY# 1) failed!
> panic y/n? [y]
>
> Disabling apic helps to boot the system, following is first dmesg
> of FreeBSD running on Macintel:

This is great news! Kudos!

Disabling atkbd/psm makes complete sense, everything is USB on the
Intel-iMac. As for the APIC problem, it appears that we are detecting
that the machine is a multiprocessor system, and failing to start the
second CPU. Could the Core Duo require a different init sequence for
its secondary cores than previous chips from Intel (Like the Pentium
D and P4 w/HTT)?

Andy

/* Andre Guibert de Bruet * 6f43 6564 7020 656f 2e74 4220 7469 6a20 */
/* Code poet / Sysadmin * 636f 656b 2e79 5320 7379 6461 696d 2e6e */
/* GSM: +1 734 846 8758 * 5520 494e 2058 6c73 7565 6874 002e 0000 */
/* WWW: siliconlandmark.com * Please practice safe hex. */

Maxim Sobolev

unread,
Apr 10, 2006, 11:31:04 AM4/10/06
to
Andre Guibert de Bruet wrote:
> On Apr 10, 2006, at 10:52 AM, Maxim Sobolev wrote:
>
>> Oh, cool disabling psm and atkbd/atkbdc helps! The kernel starts
>> booting, but something goes wrong and it dies with:
>>
>> avail memory = 1025830912 (978 MB)
>> AP #1 (PHY# 1) failed!
>> panic y/n? [y]
>>
>> Disabling apic helps to boot the system, following is first dmesg of
>> FreeBSD running on Macintel:
>
> This is great news! Kudos!
>
> Disabling atkbd/psm makes complete sense, everything is USB on the
> Intel-iMac. As for the APIC problem, it appears that we are detecting
> that the machine is a multiprocessor system, and failing to start the
> second CPU. Could the Core Duo require a different init sequence for its
> secondary cores than previous chips from Intel (Like the Pentium D and
> P4 w/HTT)?

Well, it should be pretty similar considering the fact that stock XP
just works on it in SMP mode without any problems.

-Maxim

Reply all
Reply to author
Forward
0 new messages