>Unfortunately, there is no documentation, but you can peruse the Legacy GRUB
>source that is bundled with Solaris. The specific workaround I'm referring to
>involves the use of the drives_addr field in the multiboot_info structure. On
>netboot, the entire DHCP ACK packet is referred-to there.
>See line ~1422 of usr/src/uts/i86pc/os/fakebop.c to see how that is
>interpreted.
Thanks for the information.
I'm afraid there may be another incompatibility between gpxe and Opensolaris
though.
I attached a virtual serial port to the VMware VM I'm testing with, and
specified Opensolaris debug options, but I never get the "Building boot
properties" debug message that is at the top of the function you refer to.
So apparently things go wrong before reaching that function
Only seems to get passed the prekernel stage, no messages after that.
==
==
Solaris prekernel set: unix -kvd -B
console=ttya,prom_debug=true,map_debug=true,kbm_debug=true
(uintptr_t)bi is 0xc108f0
target_kernel_text is 0xfffffffffb800000
Entered init_mem_alloc()
(uintptr_t)mb_info is 0x96478
Finding Modules
next_avail_addr is 0xc12000
module #0: boot_archive at: 0x3d10c000, len 0x3fcd0534
next_avail_addr is 0x3fcd1000
bi->bi_modules is 0xc10840
bi->bi_module_cnt is 0x1
Finding Memory Map
mb_info->flags is 0x24d
mb_info->mmap_addr is 0x964d0
mb_info->mmap_length is 0x48
type: 1 0..95400
type: 1 100000..3fef0000
type: 1 3ff00000..40000000
type: 1 0..95400
type: 1 100000..3fef0000
type: 1 3ff00000..40000000
pcimemlist entry 0x3fef0000..0x3ff00000
pcimemlist entry 0x40000000..0xfff00000
bi->bi_pcimem is 0xc11018
Sorting phys-installed list
Final memlists:
0: addr=0 size=95000
1: addr=100000 size=3fdf0000
2: addr=3ff00000 size=100000
bi->bi_phys_install is 0xc109d8
bi->bi_rsvdmem is 0xc11660
pge_support is 0x1
NX_support is 0x1
largepage_support is 0x1
amd64_support is 0x1
top_level is 0x3
pte_size is 0x8
ptes_per_table is 0x200
lpagesize is 0x200000
Allocating nucleus pages.
Skipping PT_LOAD segment for paddr = 0xc00000
copying 1359292 bytes from ELF offset 0x12000 to physaddr 0xff800000
(va=0xfb800000)
copying 64680 bytes from ELF offset 0x15e000 to physaddr 0xffc00000
(va=0xfbc00000)
ktext_phys is 0xff800000
(uintptr_t)top_page_table is 0x0
Mapping kernel
ktext_phys is 0xff800000
target_kernel_text is 0xfffffffffb800000
ksize is 0x800000
psize is 0x200000
mapping ma=0xff800000 va=0xfffffffffb800000 pte=0xff8005e3 l=1
new page table lvl=3 paddr=0x1000 ptp=0x1027
new page table lvl=2 paddr=0x2000 ptp=0x2027
mapping ma=0xffa00000 va=0xfffffffffba00000 pte=0xffa005e3 l=1
mapping ma=0xffc00000 va=0xfffffffffbc00000 pte=0xffc005e3 l=1
mapping ma=0xffe00000 va=0xfffffffffbe00000 pte=0xffe005e3 l=1
bi->bi_pt_window is 0x3000
new page table lvl=3 paddr=0x4000 ptp=0x4027
new page table lvl=2 paddr=0x5000 ptp=0x5027
new page table lvl=1 paddr=0x6000 ptp=0x6027
bi->bi_pte_to_pt_window is 0x6018
1:1 map pa=0..1Meg
1:1 map pa=0..95000
1:1 map pa=100000..3fef0000
1:1 map pa=3ff00000..40000000
Page tables constructed
entry_addr_low is 0xfb800000
bi->bi_next_paddr is 0x7000
bi->bi_next_vaddr is 0x7000
bi->bi_kseg_size is 0x400000
Finished pagetables:
0[0x0] = 4027, va=0 physaddr=4000
4000[0x0] = 5027, va=0 physaddr=5000
5000[0x0] = 6027, va=0 physaddr=6000
6000[0x0] = 473, va=0 physaddr=0
...
6000[0xff] = ff473, va=ff000 physaddr=ff000
0[0x1ff] = 1027, va=ffffff0000000000 physaddr=1000
1000[0x1ff] = 2027, va=ffffff7fc0000000 physaddr=2000
2000[0x1dc] = ff8005e3, va=ffffff7ffb800000 physaddr=ff800000
...
2000[0x1df] = ffe005e3, va=ffffff7ffbe00000 physaddr=ffe00000
*** DBOOT DONE -- back to asm to jump to kernel
==
==
--
This message posted from opensolaris.org
_______________________________________________
caiman-discuss mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/caiman-discuss