16 captures
05 Oct 2009 - 27 Sep 2011
Aug SEP Oct
27
2010 2011 2012
success
fail
About this capture
COLLECTED BY
Organization: Internet Archive
The Internet Archive discovers and captures web pages through many different web crawls. At any given time several distinct crawls are running, some for months, and some every day or longer. View the web archive through the Wayback Machine.

Web wide crawl with initial seedlist and crawler configuration from March 2011. This uses the new HQ software for distributed crawling by Kenji Nagahashi.

What's in the data set:

Crawl start date: 09 March, 2011
Crawl end date: 23 December, 2011
Number of captures: 2,713,676,341
Number of unique URLs: 2,273,840,159
Number of hosts: 29,032,069

The seed list for this crawl was a list of Alexa's top 1 million web sites, retrieved close to the crawl start date. We used Heritrix (3.1.1-SNAPSHOT) crawler software and respected robots.txt directives. The scope of the crawl was not limited except for a few manually excluded sites.

However this was a somewhat experimental crawl for us, as we were using newly minted software to feed URLs to the crawlers, and we know there were some operational issues with it. For example, in many cases we may not have crawled all of the embedded and linked objects in a page since the URLs for these resources were added into queues that quickly grew bigger than the intended size of the crawl (and therefore we never got to them). We also included repeated crawls of some Argentinian government sites, so looking at results by country will be somewhat skewed.

We have made many changes to how we do these wide crawls since this particular example, but we wanted to make the data available "warts and all" for people to experiment with. We have also done some further analysis of the content.

If you would like access to this set of crawl data, please contact us at info at archive dot org and let us know who you are and what you're hoping to do with it. We may not be able to say "yes" to all requests, since we're just figuring out whether this is a good idea, but everyone will be considered.

TIMESTAMPS
The Wayback Machine - https://web.archive.org/web/20110927151019/http://hub.opensolaris.org/bin/view/Project+ppc%2Ddev/status
Status
en

Status

Project Status Page

In lieu of a blog we will go a simple route here just posting notes with their associated dates. Jump to the bottom of the page to see the latest boot log output from the target.

We have completed process of pushing out code to the ppc-dev svn repository and the internal Sunlabs repository is now deprecated even though it still functional. While we could drop tarballs it doesn't seem to provide much value but can if requested.

Current tasks in process

  1. Establish outward facing PPC development server vespa2 - done
  2. Establish svn access with both pp-dev and labs polaris-trunk from vespa2 - done
  3. Build vespa2:$HOME/usr/src/uts - done
  4. Build vespa2:/$HOME/usr/src/lib - done - TODO: add rules for automated genassym and assym.h building.
  5. Verify ODW boot and statically linked userland shell - the last development point when the Labs exited the project. - done
  6. Rebuild all tools onbld, gcc, cmd/sgs and verify functionality based on all ppc-dev bits - in process
  7. Update website and associated documentation - ongoing basis
  8. Move druidia and 2nd ODW target to external site - pending
  9. Fix lost MAC address bug to allow other 2 ODW targets to boot on VOF - pending
  10. Sync the ppc-dev source to the latest OpenSolaris repository - pending
  11. Move the current repo control from subversion to Mercurial - pending

Vespa2 as a development system is fully functional

We have succeeded in recreating and then moving one of the SunLabs development systems to be publicly available. A serious developer can now log into vespa2.sunlabs.com, pull the ppc-dev source, build it, download their kernel, boot it and debug it on a target Pegasos ODW system there. The statically linked init is a demonstration of a userland program that forks and execs, executes in from user space and returns to the kernel.

Vespa2 is now externally accessible

It is the first of two standalone development servers have been turned outward facing and is externally accessible by the community. These systems were the original project hardware used by the Pulsar Project and have been generously donated by SunLabs. They will be maintained at the Sun Menlo Park Bldg 16 facility but are not part of the Sun network or any project. This has not been a simple task and some details remain. Pictures are always good so here is the stuff in action. vespa2 shown on the bottom with an ODW board above. There is a network controlled powerstrip that can be used to recycle power and provide reset to the ODW target system.

jpg](http://www.opensolaris.org/os/project/ppc-dev/status/labdev4_small.jpg "The externally available ppc-dev system")

Now Have 2 Development Systems and 3 Targets -- 02/04/2009

We now have 2 available solaris build and boot servers for our odw targets. They are vespa and vespa2. Additionally we have drudia, a linux server which functions as a boot server for the third odw target. Anyone wanting to use druidia would build their bins on either vespa or vespa2 then scp over to druduia and execute on the odw served from drudia. We will be placing them on the external network shortly and they will be generally available for anyone who would like to do development.

Development Systems Up -- 01/25/2009

We have emerged from a self imposed hibernation. It seems that the folks really interested in getting a PPC port have returned and are now putting in the effort to make further progress.

Sunlabs has agreed to host the previous development systems and offer remote access. There will be two individual servers each with a ODW target and power / reset control. One setup will have a BDI debugger.

The svn repo has been updated with the final work done by Guy Shaw, this wraps up any direct work by SunLabs. There is a single user prompt in a statically linked init.

Updated SVN repository -- 02/18/2008

Now at rev 111. Major items to note

Bug fixes for missing BRL instruction in a number of critical assembly files
Implement lwp_pcb_exit()

Updated SVN repository -- 11/02/2007

Now at rev 97. Major items to note

We have sync'd with onnv bld 58 --hmmm aren't we a bit behind

Well this is the bulk of the commit, we have not done a merge since earlier this year. Why? It's a messy thing being on a parallel path here, but this will take us from 57 to 58. We will now be spending time on playing catchup to get back in sync with the releases. Guy does this by himself. There is alot more work to do now with each one of these since we are successfully building much more of the consolidation. The lack of accounting for a 3rd architecture can be painfully seen with each one of these but we grind away.

Updates to sgs. We can now build rtld (ld.so.1)

Updated SVN repository -- 10/29/2007

It is now at rev 95. Many updates to lib/ and a number of shared objects are building. We have yet to actually test any of this on the target since we need a functional rtld, which should be here soon.

You will need to build the libs with make -k install. We have a problem with building lint related items and that will get you temporarily past the issue.

To build you will also need the updated toolchain which has a reconfigured gcc which now handles c++.

Once you have the right shared objects you should also be able to build cmd/init and cmd/sh.

Sync Up with Sun Labs Source Development Complete -- 10/11/2007

Ok, we're now at rev 93 and the repo is in sync with the Sun Labs development. All of the latest code is out. It should build cleanly, just follow the instructions. If you have any questions, feedback, suggestions or want to jump in post to the discussion list.

We're in the process of updating the task pages and overall documentation on the project itself. Please take the time to review and provide feedback or information updating.

Successful Bulding of SVN repository -- 10/09/2007

The ppc-dev repo is now at rev 89 this is around the mid Aug 07 development timeline so we're now only a few months behind. Lots of ddi and interrupt development was going on. The additional good news here is that the repo is building on the outside by community members.

Updated SVN repository -- 09/28/2007

It is now at rev 82 this is now around the June 07 development timeline so the ppc-dev code base is catching up. This putback has updates to the VM, HAT layer and PMDB. A few more drivers completes the PPC driver build dirs and their associated Makefiles.

Updated SVN repository -- 09/27/2007

It is now at rev 80. This putback generally completes adding the PPC driver build dirs and their associated Makefiles. It also has the start of the CBE work along with update pci nexus and genral interrupt work. There are updates to the tool set that Guy has created, see the work in onbld. Added a bit of support for the EFIKA platform, but ODW continues to be the platform we develop on.

You may notice in the log alot of comments to code regarding double mappings. This was a problem we fought with for a while before finding an oversight related to the ODW firmware and active BAT regs that we thought were disabled.

Updated SVN repository -- 09/25/2007

It is now at rev 79. This putback includes a large number of the PPC driver build dirs and Makefiles. It also has the start of the rootnexus and ddi interface.

Updated SVN repository -- 09/20/2007

It is now at rev 78. At this point the interrupt framework and the cbe was just being added. The PMDB (Poor Mans Debugger) was updated and also some VM related work was added. The RHINE ethernet chip driver was added here.

Updated SVN repository -- 09/11/2007

It is now at rev 72. This is about half way through the merge of the ppc-dev tree with bld 57. Best to wait till the whole merge is pushed out before attempting to build and test. Note you will need to load ands run VOF on top of the ODW's firmware. A binary has been provided.

Updated SVN repository -- 08/28/2007

It is now at rev 62. This includes the beginning merge of the ppc-dev tree with bld 56 which is around the Jan 07 timeframe. Notable commits are related to mdb and other kernel boot funcs.

Updated SVN repository -- 07/23/2007

It is now at rev 38. This is up to the merge of the tree with bld 54. You will have to use the updated toolchain GNU/GCC/AS/solaris ld from now on to build. Get it here

Updated SVN repository -- 06/22/2007

It is now at rev 24. These updates were still related to general work that continued in the kernel bringup but you may also notice the cmd/sgs ld work that's was going on.

More SVN Updates -- 06/20/2007

Gotta love svn. The merge command works well on files that are already in place. but won't create new files. We've been using svn cat to create the new files, do an svn add, then go for the merge.

Created SVN repository -- 06/10/2007

Populated it with the source from the initial code release. As usual doing something for the 1st time always takes a bit longer to get the hang of it. The SCM management support wasn't available back at the time of the 1st source drop so the tarball was essentially it. You can access according to the std instructions. For example you would have svn+ssh://user@svn.opensolaris.org/svn/ppc-dev/ppc-dev. You also need to be affiliated with the project and have a public key available on your profile.

Updated GNU Assembler -- 11/27/2006

The GNU ld was covering up the incorrect symbol relocations, fancy that. The new one is here /opt/polaris/powerpc-solaris2/bin/as. The difference is that the new as should generate the proper relocations for unaligned 32 and 16 bit address relocations. With this new as we can go back to compiling with -g -gdwarf-2.

Merger with build 54 complete -- 11/22/2006

onnv-gate build 54 (2006-Nov-22) and the ppc-dev source base is complete. This is not a simple job, many files must be hand merged after the bulk is integrated.

Active topics -- 11/20/2006

  1. Figured out problems with inetboot. Restricted reads to 1K as the ethernet driver in the OF drops back to back packets. Also randomized the initial port number so that back to back reboots won't have to wait for 4 minutes for the previous connections to time out.
  2. Cross built ld. Required libconv, libelf, libld, liblddbg as well. Most of usr/src/cmd/sgs builds, but not all. Skipped over TLS (thread local storage) stuff for now. Also did nothing for 64-bit. Main issues surrounded no cross building was envisioned or testing. Byte flipping issues abound.
  3. kernel and boot both can be properly built by the Solaris ld. We've switched over to the Solaris ld totally now and using the Solaris kernel mapping layout. Still cannot run at 0xe0000000 as OF has problems dealing with non real mode addresses.
  4. Got krtld working. Apparently fully functional. Issues w/byte flipping in doreloc() and addend values were both in the addend field of the relocation and left at the memory location referred to by the relocation.
  5. Worked on and analyzed issues with usr/src/tools/ctf
  6. Started working on mdb/kmdb. Makefile tree in place.
  7. Created a work around solution for genassym/assym.h until the ctf tools are functional. Compile the offsets (data table only) with the GNU gcc cross compiler into an assembler file. Use that assembler file as input into Sun x86 c compiler. Relies on the fact that the x86 and PowerPC assemblers are very similar.

Move to solaris ld -- 11/09/2006

It is available in /opt/onbld/usr/ccs/bin/ld. There are also the libraries which are in /opt/onbld/lib/. In order to run the new linker you must set in your environment LD=/opt/onbld/usr/ccs/bin/ld then export LD.

But now we run into some very strange issues with symbol unaligned relocations. Since we use the Metrowerks PowerTAP and Codewarrior for source level debuging we need to have DWARF symbols even though we can build successfully without them. The solaris ld complains, but the GNU ld never did.

(for sh and bsh at least).

KRTLD update -- 11/07/2006

krtld is running.
inetboot loads /platform/chrp/kernel/unix.
inetboot reads unix and observes that misc/krtld
is required. inetboot reads in /kernel/misc/krtld.
Control is transferred to krtld. krtld relocates
itself and then reads unix for its symbols and
well as reading that genunix is needed. krtld
then reads in genunix and relocates it and
binds everything together. Control is then
transferred to unix which starts execution.

Initial project contribution -- 10/02/2006

This was quite a bit of work just to get to this point but now there is a working development system available to all who would like to particpate in any area of this project. There is no closed code, all of the platform source is open. The build is sync with ON a bit past BLD_47. The Polaris task map was updated also.

In simple terms the kernel boots and outputs to the console to a point and then will panic. This is currently during the VM initialization. Development continues not only on the VM/HAT but in parallel on KRTLD, RTLD. At this time however we statically link unix/genunix to facilitate debugging. The task map is the best way to obtain details on development status of each area.

--

Important target notes for now 11/1/08

you must add these lines to your asy.conf file in your $ROOT/kernel/drv


ttyb-ignore-cd=1;
ttyb-mode="115200,8,n,1,-";

You must enter in the following once the ODW boots and your at the smartfirmware prompt. This will route the ethernet irq to a non shared number.


54600080 f1000c78 l!
a09990 f1000c7c l!
3c680080 f1000c78 l!
a01ffff f1000c7c l!

boot eth:192.168.1.10,openfirmware

The current status is that we are at the point of running our first code from userland. As you can see there is a bit more work to do but progress has been made. In this run we have replaced the "usual" init with a application that is statically linked that simply does an open of the console device, a write of
"Hello, world!" and then exits.

> elfexec

elfexec: level = 0
> elfexec -> getelfhead
< elfexec -> getelfhead
> elfexec -> getelfphdr
< elfexec -> getelfphdr
exec_args: size = 4096
hat_unload_callback: vaddr=dfffd000, len=2000
hat_unload_callback: cb = NULL
ppcmmu_alloc: > vmem_alloc
ppcmmu_alloc: < vmem_alloc
ppcmmu_setup: not kernel hat
ppcmmu_setup: > mmu_segload
ppcmmu_setup: < mmu_segload
> exec_args -> stk_copyout

\-> grow
\-> grow_internal: sp=dfffefc0, growszc=0
<- grow_internal: newsize=1000
as_fault: seg->s_ops->fault = e0204ff4 = unix:segvn_fault+0
<- grow
< exec_args -> stk_copyout
as_fault: seg->s_ops->fault = e0204ff4 = unix:segvn_fault+0
< elfexec
> exec_init -- rc=0

Hello, world! <--This is what we have been waiting for!!!

WARNING: init(1M) exited with status 0: restarting automatically

To browse the latest project source just go here Note that the cvs viewer appears to be unable to view the recent putbacks on the svn repo.

01/26/2009 target boot log

--
Quite a bit of progress had been made since the October release, see below

CONNECT THE SERIAL PORT TO THE TARGET


{{code}}# tip -115200 /dev/ttya
connected{{/code}}

RESET THE ODW TARGET BY POWER CYCLING OR USING THE BDI-2000 "HALT-RESET-GO"


{{code}}PegasosII Boot Strap (c) 2002-2004 bplan GmbH
Running on CPU PVR:80020101
Enable L1 ICache...
len=3
libmacros
len=3
-module /platform/chrp/kernel/unix: text at [0xe0001000, 0xe03d0f53] data at 0xe2000000
module misc/krtld: text at [0xe03d0f54, 0xe03fb7f3] data at 0xe20c04f8{{/code}}

AFTER LOADING KRTLD AND THE KERNEL HERE IS THE FIRST OUTPUT


{{code}}Processor Version Reg (PVR) = 80020101 (version=8002, revision=101)
Found Valid CPU: MPC7457
HID0~_old=0x8410c09c
=8410c09c
HID0~_new=0x8410c09c
=8410c09c
HID0~_set=0x0
=0
HID0~_rst=0x0
=0
HID1=0x2c80
=2c80
L2CR=0
L3CR=0
mlsetup.c:118: mlsetup() starting...
Initialized t0 thread.
mlsetup.c:544: fiximp~_obp() starting...
prom~_set~_cache~_geometry: try l2-cache
prom~_set~_cache~_level: l2-cache
prom~_set~_cache~_geometry: try l3-cache
mlsetup.c:558: fiximp~_obp() done.
mlsetup.c:395: config~_timebase() starting...
Calculated dec~_incr~_per~_tick = 0x51615 for 10ms tick
Obtained timebase frequency = 33333333 hz
Calculated timebase period = 61440 (30 nsec / tick)
Calculated timebase ticks per 10usec = 333
Error per second under = 20480 = 10 ppb
Error per second over = 33312853 = 16266 ppb
mlsetup.c:426: config~_timebase() done.
Loaded decrementer with 0x7fffffff
mlsetup.c:304: mlsetup() done.
Running with VOF version 2.0
> ppcmmu~_init
< ppcmmu~_init
Leaving locore.s ... executing main()...{{/code}}

LIKE IT SAID IT IS IN MAIN


`[progress bar init]
startup.c:779: startup~_init(): starting...

===> File: chrp/os/startup.c, Line: 780, e001ef24 = unix:startup~_init+50
startup~_init(): starting...
> startup~_init
startup.c:783: startup~_init(): bootid()
../../chrp/os/startup.c//startup_init//787
PMDB = Poor Man's DeBugger
Kernel configuration shell:
Commands that affect startup:
ut Run unit test
ch Copy Solaris interrupt handlers
ei Enable Interrupts
ro Protect kernel text pages; set to read-only
kmpage kmem~_alloc objects of given size whole pages
config Run configure
ttyinit Run ttyinit
dbinit Run debug shell after /sbin/init
demo Run demo, just before init
Commands that enable/disable debug trace messages:
ga Show native PowerPC genassym
td Trap debug
mfr Enable MMU Flight Recorder
ifr Enable Interrupt Flight Recorder
pwatch Panic on any attempt to modify a watched PTE
kmf Set kmem~_flags = arg[1]
If no args, set to default value
cbe Set cbe~_debug
Other:
cf Show all configuration (startup and debug)
cfs Show startup options
cfd Show debug configuration
go Exit debugger and continue running Solaris
m1 = "ch config ei ttyinit dbinit 0d kmf"
m2 = "ch config ei ttyinit dbinit"{{code}}

SO ABOVE IS THE MENU OF THE PMDB BUT WE JUST RUN THE MACRO "M1 GO"


{{/code}}pmdb kconf: m1 go

> copy~_handlers
< copy~_handlers
bootops at 0x185f1c4:
bsys~_version 9
bsys~_super 0x0
boot~_mem 0x0
bsys~_1275~_call 0x1806210
bsys~_printf 0x1804f30
< startup~_init
startup.c:860: startup~_init() done
startup.c:1091: startup~_memlist() starting...
phys-installed: 2 elements
phys-avail: 4 elements
virt-avail: 10 elements
MEMLIST: phys-installed:
Address Size
~----~----
0x0 0x10000000
MEMLIST: phys-avail:
Address Size
~----~----
0x2e2000 0x21e000
0x92a000 0xf2d6000

MEMLIST: virt-avail:
Address Size
~----~----
0x0 0x1800000
0x184a000 0x6000
0x1946000 0xde6bb000
0xe03fc000 0x1c04000
0xe20d1000 0x19f2f000
MEMLIST: boot~_physinstalled:
Address Size
~----~----
0x0 0x10000000
Total: 1 ranges, 0x10000000 bytes
MEMLIST: boot~_physavail:
Address Size
~----~----
0x2e2000 0x21e000
0x92a000 0xf2d6000
Total: 2 ranges, 0xf4f4000 bytes
MEMLIST: boot~_virtavail:
Address Size
~----~----
0x0 0x1800000
0x184a000 0x6000
0x1946000 0xde6bb000
0xe03fc000 0x1c04000
0xe20d1000 0x19f2f000
Total: 5 ranges, 0xfb9f4000 bytes

===> File: chrp/os/startup.c, Line: 1110, e001f7d4 = unix:startup~_memlist+dc
physmax = 0xffff

===> File: chrp/os/startup.c, Line: 1111, e001f804 = unix:startup~_memlist+10c
physinstalled = 0x10000
probe~_kernel~_vof:
s~_text = e0001000
e~_text = e03fb7f4
s~_data = e2000000
e~_data = e20d016e
ppcmmu~_pt~_vof
Request to map V=0x0 to R=0x2e2000
Stack backtrace:
0xfc01212c
0xfc0126a8
0xfc0138dc
0xfc0258d4
0xfc01a540
0xfc0197fc
0xe00af778
0xe00af9d4
0xe00b038c
0xe0040514
0xe0040798
0xe0040f18
0xe001f870
0xe001eea4
0xe0192c6c
0xe0001110
ppcmmu~_pt~_switch:
pt~_virt=fdc00000
pt~_phys=fc00000
pt~_size=400000
hash~_pteg~_mask = ffff
ptes=fdc00000, eptes=fe000000, pt~_size=400000
startup.c:1129: > startup\//build//\mem~_nodes
plat~_build~_mem~_nodes: list=1945000
mem~_node~_add~_slice: mnode=0, start=0, end=ffff
startup.c:1131: < startup~_build~_mem~_nodes

===> File: chrp/os/startup.c, Line: 1148, e001f950 = unix:startup~_memlist+258
s~_avail = 0xe20d1000
===> File: chrp/os/startup.c, Line: 1149, e001f980 = unix:startup~_memlist+288
e~_avail = 0xe20d1000
===> File: chrp/os/startup.c, Line: 1156, e001fa1c = unix:startup~_memlist+324
s~_gap = 0xe20d1000
===> File: chrp/os/startup.c, Line: 1157, e001fa4c = unix:startup~_memlist+354
e~_gap = 0xe20d1000
===> File: chrp/os/startup.c, Line: 1158, e001fa7c = unix:startup~_memlist+384
s~_avail = 0xe20d1000
===> File: chrp/os/startup.c, Line: 1159, e001faac = unix:startup~_memlist+3b4
e~_avail = 0xe20d1000
===> File: chrp/os/startup.c, Line: 1179, e001fbdc = unix:startup~_memlist+4e4
s~_gap = 0xe20d1000
===> File: chrp/os/startup.c, Line: 1180, e001fc0c = unix:startup~_memlist+514
e~_gap = 0xe20d1000
===> File: chrp/os/startup.c, Line: 1181, e001fc3c = unix:startup~_memlist+544
s~_avail = 0xe20d1000
===> File: chrp/os/startup.c, Line: 1182, e001fc6c = unix:startup~_memlist+574
e~_avail = 0xe20d1000
nucleus~_alloc: startup~_memlist() modtext:
remaining space = 0+0, need 6291456
nucleus~_alloc: startup~_memlist() moddata:
remaining space = 0+0, need 6291456

===> File: chrp/os/startup.c, Line: 1319, e001ffc8 = unix:startup~_memlist+8d0
s~_modtext = 0xe03fd000
===> File: chrp/os/startup.c, Line: 1320, e001fff8 = unix:startup~_memlist+900
e~_modtext = 0xe09fd000
===> File: chrp/os/startup.c, Line: 1321, e0020028 = unix:startup_memlist+930
s~_moddata = 0xe20d2000
===> File: chrp/os/startup.c, Line: 1322, e0020058 = unix:startup~_memlist+960
e~_moddata = 0xe26d2000
===> File: chrp/os/startup.c, Line: 1323, e0020088 = unix:startup~_memlist+990
econtig = 0xe20d1000
===> File: chrp/os/startup.c, Line: 1324, e00200b8 = unix:startup~_memlist+9c0
s~_avail = 0xe20d1000
===> File: chrp/os/startup.c, Line: 1325, e00200e8 = unix:startup~_memlist+9f0
e~_avail = 0xe20d1000
===> File: chrp/os/startup.c, Line: 1349, e00201e0 = unix:startup~_memlist+ae8
physmem = 0xffff
===> File: chrp/os/startup.c, Line: 1362, e0020220 = unix:startup~_memlist+b28
memseg~_sz = 0x104
nucleus~_alloc: valloc~_try() memseg~_base:
remaining space = 0+0, need 260

===> File: chrp/os/startup.c, Line: 1371, e0020284 = unix:startup~_memlist+b8c
memlist~_sz = 0x1000
nucleus~_alloc: valloc~_try() memlists:
remaining space = 0+0, need 4096

===> File: chrp/os/startup.c, Line: 1381, e002033c = unix:startup~_memlist+c44
pagehash~_sz = 0x10000
nucleus~_alloc: valloc~_try() page~_hash:
remaining space = 0+0, need 65536

===> File: chrp/os/startup.c, Line: 1387, e0020388 = unix:startup~_memlist+c90
npages = 0xffff

===> File: chrp/os/startup.c, Line: 1389, e00203c8 = unix:startup~_memlist+cd0
pp~_sz = 0x4fffb0
nucleus~_alloc: valloc~_try() pp~_base:
remaining space = 0+0, need 5242800
page~_coloring~_init:
pc~_size=262144
pc~_assoc=8

pc~_colors=8
PAGE~_COLORS~_MIN=16
page~_colors=16
cpu~_page~_colors=8
colorequiv=0
colorequivszc[0] = 16

===> File: chrp/os/startup.c, Line: 1394, e002044c = unix:startup~_memlist+d54
pagecolor~_memsz = 0x260

===> File: chrp/os/startup.c, Line: 1398, e00204a0 = unix:startup~_memlist+da8
page~_ctrs~_size = 0x298
Init HMEs:
sizeof(hme~_t) = 20
nptes = 524288
nptegp = 32768
NPTEPERPTEGP = 16
sizeof (ptegp~_t) = 16
nucleus~_alloc: valloc~_try() hments:
remaining space = 0+0, need 10485760
nucleus~_alloc: valloc~_try() ptegps:
remaining space = 0+0, need 524288
nucleus~_alloc: valloc~_try() ptelock~_hashtab:
remaining space = 0+0, need 8192
phys-installed: 2 elements
phys-avail: 4 elements
virt-avail: 14 elements
MEMLIST: phys-installed:
Address Size
~----~----
0x0 0x10000000
MEMLIST: phys-avail:
Address Size
~----~----
0x2e3000 0x21d000
0x152a000 0xe6d6000
MEMLIST: virt-avail:
Address Size
~----~----
0x0 0x1800000
0x184a000 0x6000
0x1947000 0xde6ba000
0xe03fc000 0x1000
0xe09fd000 0x1603000
0xe20d1000 0x1000
0xe26d2000 0x1992e000
MEMLIST: phys~_install:
Address Size
~----~----
0x0 0x10000000
Total: 1 ranges, 0x10000000 bytes
MEMLIST: phys~_avail:
Address Size
~----~----
0x2e3000 0x21d000
0x152a000 0xe6d6000
Total: 2 ranges, 0xe8f3000 bytes
MEMLIST: virt~_avail:
Address Size
~----~----
0x0 0x1800000
0x184a000 0x6000
0x1947000 0xde6ba000
0xe03fc000 0x1000
0xe09fd000 0x1603000
0xe20d1000 0x1000
0xe26d2000 0x1992e000
Total: 7 ranges, 0xfadf3000 bytes

===> File: chrp/os/startup.c, Line: 1433, e002056c = unix:startup~_memlist+e74
e~_avail = 0xe20d1000

===> File: chrp/os/startup.c, Line: 1434, e002059c = unix:startup~_memlist+ea4
valloc~_sz = 0xf96000

===> File: chrp/os/startup.c, Line: 1446, e0020674 = unix:startup~_memlist+f7c
valloc~_base = 0xe26d2000
nucleus~_alloc: perform~_allocations() valloc~_base:
remaining space = 0+0, need 16343040
valloc
valloc
valloc
valloc
valloc
valloc
valloc
valloc
valloc
[0] bzero(e26d2000, 1000)
[1] bzero(e26d3000, 1000)
[2] bzero(e26d4000, 10000)
[3] bzero(e26e4000, 500000)
[4] bzero(e2be4000, 1000)
[5] bzero(e2be5000, 1000)
[6] bzero(e2be6000, a00000)
[7] bzero(e35e6000, 80000)
[8] bzero(e3666000, 2000)
phys-installed: 2 elements
phys-avail: 4 elements
virt-avail: 14 elements
MEMLIST: phys-installed:
Address Size
~----~----
0x0 0x10000000
MEMLIST: phys-avail:
Address Size
~----~----
0x2e4000 0x21c000
0x24c0000 0xd740000
MEMLIST: virt-avail:
Address Size
~----~----
0x0 0x1800000
0x184a000 0x6000
0x1948000 0xde6b9000
0xe03fc000 0x1000
0xe09fd000 0x1603000
0xe20d1000 0x1000
0xe3668000 0x18998000
MEMLIST: phys~_avail:
Address Size
~----~----
0x2e4000 0x21c000
0x24c0000 0xd740000
Total: 2 ranges, 0xd95c000 bytes
startup.c:1481: Calling kphysm~_init()...
kphysm~_init/2625: pmem=1947018
kphysm~_init/2636: addr=2e4000 size=21c000

MEMSEG addr=0x2e4000 pgs=0x21c pfn 0x2e4-0x500, pmem=1947018, pp=e26e4000, cur~_memseg=e26d2000
kphysm~_init/2715: -> add~_physmem(pp=e26e4000, num=21c, base~_pfn=2e4)
mtype~_modify~_max: mnoderangecnt=2
mtype~_modify~_max: mtype=0, pfn=2e4, endpfn=500
mtype~_modify~_max: hipfn=fff, inc=21c, pfn=500
kphysm~_init/2717: <- add~_physmem
kphysm~_init/2625: pmem=1947030
kphysm~_init/2636: addr=24c0000 size=d740000
MEMSEG addr=0x24c0000 pgs=0xd740 pfn 0x24c0-0xfc00, pmem=1947030, pp=e26ee8c0, cur~_memseg=e26d2014
kphysm~_init/2715: -> add~_physmem(pp=e26ee8c0, num=d740, base~_pfn=24c0)
mtype~_modify~_max: mnoderangecnt=2
mtype~_modify~_max: mtype=0, pfn=24c0, endpfn=fc00
mtype~_modify~_max: mtype=1, pfn=24c0, endpfn=fc00
mtype~_modify~_max: hipfn=ffff, inc=d740, pfn=fc00
kphysm~_init/2717: <- add~_physmem

===> File: chrp/os/startup.c, Line: 2724, e0022ff8 = unix:kphysm~_init+5e8
availrmem~_initial = 0xd95c
===> File: chrp/os/startup.c, Line: 2725, e0023028 = unix:kphysm~_init+618
availrmem = 0xd95c
===> File: chrp/os/startup.c, Line: 2726, e0023058 = unix:kphysm~_init+648
freemem = 0xd95c
startup.c:1483: kphysm~_init() done

===> File: chrp/os/startup.c, Line: 1484, e00207d4 = unix:startup~_memlist+10dc
npages = 0xd95c
print~_shared~_pages~_pt(fdc00000, 80000)
phys
share pages
~----~----
1 9792
Mapping for valloc~_base = e26d2000
PTE @ fdc9b300:
[0] 0x80000f09 = {V=1,VSID=1e,H=0,API=9} va=e26d2000
[1] 0x152a190 = {RPN=152a,R=1,C=1,WIMG=2=~--m-,PP=0=SrwUxx}

===> File: chrp/os/startup.c, Line: 1494, e0020834 = unix:startup~_memlist+113c
valloc~_base = 0xe26d2000
===> File: chrp/os/startup.c, Line: 1495, e0020864 = unix:startup~_memlist+116c
valloc~_sz = 0xf96000
startup.c:1519: startup~_memlist() done
startup.c:1580: > startup~_kmem

===> File: chrp/os/startup.c, Line: 1584, e0020bac = unix:startup~_kmem+70
heap~_base = 0xe3692000
===> File: chrp/os/startup.c, Line: 1592, e0020c24 = unix:startup~_kmem+e8
boot~_kernelheap = 0xe36d2000
===> File: chrp/os/startup.c, Line: 1601, e0020c98 = unix:startup~_kmem+15c
kernelheap = 0xe36d2000
===> File: chrp/os/startup.c, Line: 1602, e0020cc8 = unix:startup~_kmem+18c
ekernelheap = 0xeb6d2000
startup.c:1610: > kmem~_init{{code}}

THE KERNEL BANNER: WE ARE ALIVE


{{/code}}SunOS Release 5.11 Version polaris/hat-shaw-2007-12-30@22:05 32-bit
Copyright 1983-2008 Sun Microsystems, Inc. All rights reserved.
Use is subject to license terms.
DEBUG enabled
startup.c:1612: < kmem~_init
startup.c:1642: > bp~_init
startup.c:1644: < bp~_init
startup.c:1646: < startup~_kmem
startup.c:1658: startup~_modules() starting...
startup.c:1667: param~_calc
startup.c:1670: mod~_setup
modload(misc, cl~_bootstrap)
startup.c:1676: param~_init
startup.c:1687: hat~_init

===> ../../ppc/vm/hat~_ppcmmu.c, line 351, hat~_init/ppcmmu~_lock~_init

===> ../../ppc/vm/hat~_ppcmmu.c, line 354, hat~_init/ppcmmu~_init2
startup.c:1693: seg~_init
> seg~_init
> seg~_pinit
** sema~_init
p~_hashtab = 0
physmem = 65535
** seg~_pinit~_mem~_config()
> seg~_pinit~_mem~_config
< seg~_pinit~_mem~_config
< seg~_pinit
< seg~_init
startup.c:1696: modload specfs

modload(fs, specfs)
startup.c:1700: modload devfs

modload(fs, devfs)
startup.c:1704: dispinit

modload(sched, TS)
Trying setup~_ddi()
-> setup~_ddi
Using default device instance data
-> impl~_ddi~_callback~_init
<- impl~_ddi~_callback~_init
-> log~_event~_init
<- log~_event~_init
-> fm~_init
<- fm~_init
-> i~_ddi~_load~_drvconf
<- i~_ddi~_load~_drvconf
-> ldi~_init
<- ldi~_init
-> i~_ddi~_devices~_init
<- i~_ddi~_devices~_init
-> i~_ddi~_read~_devices~_files
<- i~_ddi~_read~_devices~_files
<- setup~_ddi
Finished setup~_ddi()
Loading root modules

modload(misc, tlimod)
modload(strmod, rpcmod)
modload(misc, nfs~_dlboot)
modload(mac, mac~_ether)
modload(misc, strplumb)
Finished loading root modules
Skipping cmi~_init() ~-- but that is OK.
startup.c:1760: startup~_modules() done
startup.c:1975: startup~_vm() starting...

===> File: chrp/os/startup.c, Line: 2063, e002195c = unix:startup~_vm+50
segmap~_start = 0xe3692000

===> File: chrp/os/startup.c, Line: 2064, e002198c = unix:startup~_vm+80
segmap~_reserved = 0x40000

===> File: chrp/os/startup.c, Line: 2065, e00219bc = unix:startup~_vm+b0
segmapsize = 0x40000

===> File: chrp/os/startup.c, Line: 2100, e0021a80 = unix:startup~_vm+174
segmap~_start = 0xe3694000

===> File: chrp/os/startup.c, Line: 2101, e0021ab0 = unix:startup~_vm+1a4
segmapsize = 0x3e000

===> File: chrp/os/startup.c, Line: 2103, e0021b08 = unix:startup~_vm+1fc
final~_kernelheap = 0xe36d2000
startup.c:2110: Calling hat~_kern~_alloc()...
startup.c:2112: hat~_kern~_alloc() done
startup.c:2117: Calling hat~_kern~_setup()...
startup.c:2119: hat~_kern~_setup() done
set~_callback: old 0x0 new 0xe00b07ec
~----setup~_prom~_callbacks ~----
traceback: %fp = e2003e80
traceback: fp=0xe2003e80, nextfp=0xe2003e90
e2003e80 e004100c unix:ppcmmu~_pt~_init~_vof+c0
traceback: fp=0xe2003e90, nextfp=0xe2003ea0
e2003e90 e004103c unix:ppcmmu~_pt~_init+18
traceback: fp=0xe2003ea0, nextfp=0xe2003ee0
e2003ea0 e0021c60 unix:startup~_vm+354
traceback: fp=0xe2003ee0, nextfp=0xe2003ef0
e2003ee0 e001eeb4 unix:startup+30
traceback: fp=0xe2003ef0, nextfp=0xe2003f50
e2003ef0 e0192c6c unix:main+d0
traceback: fp=0xe2003f50, nextfp=0x0
e2003f50 e0001110 unix:~_start+110
end of traceback
~----setup~_prom~_callbacks ~----
startup.c:2132: Protecting boot pages
Skipping hat~_cpu~_online(CPU)
startup.c:2154: Calling kvm~_init()...
-> seg~_attach(kas, start=e0001000, size=9fc000, ktextseg)
<- seg~_attach
**** NOTE: Ensure s~_moddata..e~_moddata is in kas.
-> segkmem~_create(ktextseg)
<- segkmem~_create
-> seg~_attach(kas, start=e26d2000, size=f96000, kvalloc)
<- seg~_attach
-> segkmem~_create(kvalloc)
<- segkmem~_create
-> seg~_attach(final~_kernelheap, ...)
<- seg~_attach

===> File: chrp/os/startup.c, Line: 2788, e0023298 = unix:kvm~_init+1f0
kvseg.s~_base = 0xe36d2000
-> segkmem~_create(&kvseg)
<- segkmem~_create

===> File: chrp/os/startup.c, Line: 2792, e00232ec = unix:kvm~_init+244
kvseg.s~_base = 0xe36d2000
startup.c:2156: kvm~_init() done

===> File: chrp/os/startup.c, Line: 2169, e0021d60 = unix:startup~_vm+454
final~_kernelheap = 0xe36d2000

===> File: chrp/os/startup.c, Line: 2223, e0021ddc = unix:startup~_vm+4d0
toxic~_bit~_map~_len = 0x7e00

===> File: chrp/os/startup.c, Line: 2227, e0021e5c = unix:startup~_vm+550
toxic~_bit~_map = 0xe3ece000
mem = 262144K (0x10000000)
Skipping hat~_init~_finish()
startup.c:2307: segkp~_create(segkp)
segkp~_create: segkp~_bitmap=e3ecc000, kpsd->kpsd~_arena=e3d4a690
segkp~_create: kmem~_zalloc
segkp~_create: -> segkpinit~_mem~_config
segkp~_create: <- segkpinit~_mem~_config

===> File: chrp/os/startup.c, Line: 2314, e0022008 = unix:startup~_vm+6fc
segkp = 0xe20722c0
Virtual address address map:
name start size end
~----~----~----~----
virt 0 100000000 100000000
name start size end
~----~----~----~----
user 0 e0000000 e0000000
kmem e0000000 10000000 f0000000
name start size end
~----~----~----~----
ktext e0000000 3fc000 e03fc000
e03fc000 1000 e03fd000
modtext e03fd000 600000 e09fd000
e09fd000 1603000 e2000000
kdata e2000000 d1000 e20d1000
e20d1000 601000 e26d2000
valloc e26d2000 f96000 e3668000
e3668000 8000 e3670000
iomem e3670000 20000 e3690000
e3690000 4000 e3694000
kmap e3694000 3e000 e36d2000
heap e36d2000 7e00000 eb4d2000
gap eb4d2000 4b2e000 f0000000
prom f0000000 f800000 ff800000
dbug ff800000 400000 ffc00000
gap ffc00000 400000 100000000

===> File: chrp/os/startup.c, Line: 2345, e0022124 = unix:startup~_vm+818
segmap = 0xe2072bdc

===> File: chrp/os/startup.c, Line: 2346, e0022154 = unix:startup~_vm+848
segmap~_start = 0xe3694000

===> File: chrp/os/startup.c, Line: 2347, e0022184 = unix:startup~_vm+878
segmapsize = 0x3e000

===> File: chrp/os/startup.c, Line: 2348, e00221b4 = unix:startup~_vm+8a8
segmap->s~_base = 0xe3694000

===> File: chrp/os/startup.c, Line: 2349, e00221e4 = unix:startup~_vm+8d8
segmap->s~_size = 0x3e000
startup.c:2366: Initialize segmap~_crargs a
startup.c:2371: -> segmap~_create
startup.c:2374: <- segmap~_create
Skipping segdev~_init()
Kernel address space:
start = e0001000, size = 9fc000
start = e26d2000, size = f96000
start = e3694000, size = 3e000
start = e36d2000, size = 7e00000
start = ff800000, size = 400000
startup.c:2388: startup~_vm() done
startup.c:2419: startup~_end() starting...
iomem~_map: PCI ISA:
virt=e3670000, phys=fe000000, size=10000
PTE @ fdcd9b80:
[0] 0x80000f0d = {V=1,VSID=1e,H=0,API=d} va=e3670000
[1] 0xfe000038 = {RPN=fe000,R=0,C=0,WIMG=7=-img,PP=0=SrwUxx}
iomem~_map: Discovery 2 internal:
virt=e3680000, phys=f1000000, size=10000
PTE @ fdcda780:
[0] 0x80000f0d = {V=1,VSID=1e,H=0,API=d} va=e3680000
[1] 0xf1000038 = {RPN=f1000,R=0,C=0,WIMG=7=-img,PP=0=SrwUxx}
startup.c:2468: Enabling interrupts
print~_shared~_pages~_pt(fdc00000, 80000)
phys
share pages
~----~----
1 13575
startup.c:2515: Calling configure()...
configure entered
configure: returned from check~_driver~_disable()
impl~_ddi~_sunbus~_name~_child() returned ""
impl~_ddi~_sunbus~_initchild: returned from ddi~_set~_name~_addr

modload(drv, rootnex)
root nexus = ODW,board
impl~_ddi~_sunbus~_name~_child() returned ""
impl~_ddi~_sunbus~_initchild: returned from ddi~_set~_name~_addr
impl~_ddi~_sunbus~_name~_child() returned ""
impl~_ddi~_sunbus~_initchild: returned from ddi~_set~_name~_addr
impl~_ddi~_sunbus~_name~_child() returned ""
impl~_ddi~_sunbus~_initchild: returned from ddi~_set~_name~_addr

modload(drv, options)
modload(drv, pseudo)
pseudo0 at root
pseudo0 is /pseudo

modload(drv, clone)
configure: returned from i~_ddi~_init~_root()
configure: returned from impl~_bus~_reprobe()
startup.c:2517: configure() done
mach~_softlvl~_to~_vect: ipl=1, psm~_set~_softint=0x0
hat~_init~_userland: vsidr=1
startup.c:2539: startup~_end() done

[progress bar start]
mach~_softlvl~_to~_vect: ipl=10, psm~_set~_softint=0x0
mach~_softlvl~_to~_vect: ipl=2, psm~_set~_softint=0x0
clkstart: loaded decrementer with 0x51615.
Leaving cbe~_init:

lgrp~_plat~_probe: max~_mem~_nodes=1, topo~_limit=4
cpuid.c -> cpuid~_get~_chipid: cpu~_id is not being read for PPC.
cpuid.c -> cpuid~_get~_coreid: cpi~_coreid is not being read for PPC.
vfs~_mountroot: about to call rootconf(){{code}}

TIME TO LOAD THE KERNEL MODULES

{{/code}}modload(fs, nfs)
modload(drv, dld)
pseudo-device: dld0
dld0 is /pseudo/dld@0
modload(drv, ip)
modload(drv, ip6)
modload(drv, tcp)
modload(drv, tcp6)
modload(drv, udp)
modload(drv, udp6)
modload(drv, sctp)
modload(drv, sctp6)
modload(drv, icmp)

modload(drv, icmp6)
modload(drv, arp)
modload(strmod, timod)
modload(drv, sad)
impl~_sunbus~_name~_child: hack - NEEDSWORK!
impl~_ddi~_sunbus~_name~_child() returned "c0000000"
impl~_ddi~_sunbus~_initchild: returned from ddi~_set~_name~_addr
impl~_sunbus~_name~_child: hack - NEEDSWORK!
impl~_ddi~_sunbus~_name~_child() returned "80000000"
impl~_ddi~_sunbus~_initchild: returned from ddi~_set~_name~_addr

modload(drv, pci)
pci1 at root: space 80000000 offset 40000000
ddi~_map: map~_func=pci:pci~_bus~_map
ddi~_map: map~_func=pci:pci~_bus~_map

modload(drv, vfe)
ddi~_map: map~_func=pci:pci~_bus~_map
ddi~_map: map~_func=pci:pci~_bus~_map
ddi~_map: map~_func=pci:pci~_bus~_map
ddi~_map: map~_func=rootnex:rootnex~_map
ddi~_map: map~_func=pci:pci~_bus~_map
ddi~_map: map~_func=rootnex:rootnex~_map
ddi~_map: map~_func=pci:pci~_bus~_map
ddi~_map: map~_func=rootnex:rootnex~_map
ddi~_map: map~_func=pci:pci~_bus~_map
ddi~_map: map~_func=pci:pci~_bus~_map
ddi~_map: map~_func=pci:pci~_bus~_map
ddi~_map: map~_func=pci:pci~_bus~_map
ddi~_map: map~_func=pci:pci~_bus~_map
ddi~_map: map~_func=pci:pci~_bus~_map
ddi~_map: map~_func=pci:pci~_bus~_map
ddi~_map: map~_func=pci:pci~_bus~_map
tod~_set: not yet implemented!!!
WARNING: Time-of-day chip unresponsive; dead batteries?
Requesting Internet address for 0:b:2f:4f:80:3
Found my IP address: c0a8010b (192.168.1.11)
hostname: polariscl
domainname: sunlabs.sfbay.sun.com
tod~_set: not yet implemented!!!
WARNING: Time-of-day chip unresponsive; dead batteries?
root on polarisbs:/bootserv/nfsroot fstype nfsdyn

modload(fs, devfs)
modload(fs, dev)
modload(fs, ctfs)
modload(fs, procfs)
WARNING: Cannot mount /proc
WARNING: Cannot find /etc/mnttab

modload(fs, tmpfs)
modload(fs, objfs)
mach~_softlvl~_to~_vect: ipl=2, psm~_set~_softint=0x0
startup.c:2545: post~_startup() starting...
startup.c:2547: post~_startup() done

modload(drv, conskbd)
modload(drv, consms)

modload(drv, wc)
modload(drv, iwscn)
ddi~_map: map~_func=pci:pci~_bus~_map
ddi~_map: map~_func=pci:pci~_bus~_map

modload(drv, isa)
PCI-device: isa0

modload(drv, asy)
ddi~_map: map~_func=isa:isa~_map
ddi~_map: map~_func=pci:pci~_bus~_map
ddi~_map: map~_func=rootnex:rootnex~_map
ddi~_map: map~_func=isa:isa~_map
ddi~_map: map~_func=pci:pci~_bus~_map
ddi~_map: map~_func=rootnex:rootnex~_map
ddi~_map: map~_func=isa:isa~_map
ddi~_map: map~_func=pci:pci~_bus~_map
ddi~_map: map~_func=rootnex:rootnex~_map
mach~_softlvl~_to~_vect: ipl=4, psm~_set~_softint=0x0
ddi~_map: map~_func=isa:isa~_map
ddi~_map: map~_func=pci:pci~_bus~_map
ddi~_map: map~_func=rootnex:rootnex~_map
ddi~_map: map~_func=isa:isa~_map
ddi~_map: map~_func=pci:pci~_bus~_map
ddi~_map: map~_func=rootnex:rootnex~_map
ISA-device: asy0
asy0 is /pci@80000000/isa@c/serial@i2f8

modload(drv, kssl){{code}}

NOW WE ARE STARTING INIT - BUT WE HAVE A STATICALLY LINKED USERLAND SHELL

INSTEAD AND HAVE RENAMED IT FOR INIT AND IT GIVES US A PROMPT


{{/code}}> start~_init
> start~_init~_common
ppcmmu~_alloc: > vmem~_alloc
ppcmmu~_alloc: < vmem~_alloc
ppcmmu~_setup: not kernel hat
ppcmmu~_setup: > mmu~_segload
ppcmmu~_setup: < mmu~_segload
> exec~_init(/sbin/init, 0xe200d478)
exec~_init: cnt~_exec~_init=1
exec~_init: argvlen=12
exec~_init: p=e4e33408
exec~_init: p->p~_usrstack=dffff000
t~_copyops == NULL

gexec: magic = { 7f 45 4c 46 01 02 01 00 }

modload(exec, elfexec)

> elfexec

elfexec: level = 0
> elfexec -> getelfhead
< elfexec -> getelfhead
> elfexec -> getelfphdr
< elfexec -> getelfphdr
exec~_args: size = 4096
ppcmmu~_alloc: > vmem~_alloc
ppcmmu~_alloc: < vmem~_alloc
ppcmmu~_setup: not kernel hat
ppcmmu~_setup: > mmu~_segload
ppcmmu~_setup: < mmu~_segload
> exec~_args -> stk~_copyout
-> grow
-> grow~_internal: sp=dfffefc0, growszc=0
<- grow~_internal: newsize=1000
<- grow
< exec~_args -> stk~_copyout
execmap: calling uzero(0x20981d4, 0xe2c) (on~_fault in place)
< elfexec
setregs: r3 (argc) 0x2 r4 (argcv) 0xdfffefc4 r5 (envp) 0xdfffefd0 r6 (auxv) 0xdfffefd4
< exec~_init ~-- rc=0
map~_addr~_proc(addrp 0xe4eaff38, len 0x6000, off 0x0, vacalign 0x0, userlimit 0xe0001000, p 0xe4e33408, flags 0x382)
traceback: %fp = e4eafdd0
traceback: fp=0xe4eafdd0, nextfp=0xe4eafe10
e4eafdd0 e0028324 unix:map~_addr+a4
traceback: fp=0xe4eafe10, nextfp=0xe4eafe90
e4eafe10 e015e010 unix:zmap+14c
traceback: fp=0xe4eafe90, nextfp=0xe4eaff10
e4eafe90 e015e31c unix:smmap~_common+240
traceback: fp=0xe4eaff10, nextfp=0xe4eaff50
e4eaff10 e015e774 unix:smmap32+b0
traceback: fp=0xe4eaff50, nextfp=0x0
e4eaff50 e00023dc unix:sys~_call+f0
end of traceback
map~_addr~_proc: base 0x10000 slen 0x2089ca8 p->p~_brkbase 0x2099ca8
map~_addr~_proc: base 0x10000 slen 0x1ff0000 len 0x18000
map~_addr~_proc: addr 0x1fe9000
map~_addr~_proc: addr 0x1fe0000
map~_addr~_proc: addr 0x1fe0000
map~_addr~_proc: addr 0x1ff0000
map~_addr~_proc: returning addrp 0x1ff0000

modload(drv, cn)
-> grow
-> grow~_internal: sp=dfffdd60, growszc=0
<- grow~_internal: newsize=2000
<- grow
-> map~_addr~_proc(addrp 0xe4eafe74, len 0x1000, off 0xe4f92000, vacalign 0x1, userlimit 0xe0001000, p 0xe4e33408, flags 0x0)
traceback: %fp = e4eafe20
traceback: fp=0xe4eafe20, nextfp=0xe4eafe60
e4eafe20 e0028324 unix:map~_addr+a4
traceback: fp=0xe4eafe60, nextfp=0xe4eafed0
e4eafe60 e01ec1b4 unix:schedctl~_map+70
traceback: fp=0xe4eafed0, nextfp=0xe4eaff20
e4eafed0 e01ebe24 unix:schedctl~_shared~_alloc+130
traceback: fp=0xe4eaff20, nextfp=0xe4eaff50
e4eaff20 e01eb440 unix:schedctl+44
traceback: fp=0xe4eaff50, nextfp=0x0
e4eaff50 e00023dc unix:sys~_call+f0
end of traceback
map~_addr~_proc: base 0x10000 slen 0x2089ca8 p->p~_brkbase 0x2099ca8
map~_addr~_proc: base 0x10000 slen 0x1fe0000 len 0x13000
map~_addr~_proc: addr 0x1fde000
map~_addr~_proc: addr 0x1fd0000
map~_addr~_proc: addr 0x1fd2000
map~_addr~_proc: addr 0x1fe2000
map~_addr~_proc: returning addrp 0x1fe2000
ppcmmu~_alloc: > vmem~_alloc
ppcmmu~_alloc: < vmem~_alloc
Can't exec hello{{code}}

SILLY ME I TRIED TO EXECUTE "HELLO" BUT THAT IS NOT THE CORRECT PROGRAM NAME


{{/code}}-> map~_addr~_proc(addrp 0xe4fa1e74, len 0x1000, off 0xe4f91000, vacalign 0x1, userlimit 0xe0001000, p 0xe4e32b88, flags 0x0)
traceback: %fp = e4fa1e20
traceback: fp=0xe4fa1e20, nextfp=0xe4fa1e60
e4fa1e20 e0028324 unix:map~_addr+a4
traceback: fp=0xe4fa1e60, nextfp=0xe4fa1ed0
e4fa1e60 e01ec1b4 unix:schedctl~_map+70
traceback: fp=0xe4fa1ed0, nextfp=0xe4fa1f20
e4fa1ed0 e01ebe24 unix:schedctl~_shared~_alloc+130
traceback: fp=0xe4fa1f20, nextfp=0xe4fa1f50
e4fa1f20 e01eb440 unix:schedctl+44
traceback: fp=0xe4fa1f50, nextfp=0x0
e4fa1f50 e00023dc unix:sys~_call+f0
end of traceback
map~_addr~_proc: base 0x10000 slen 0x2089ca8 p->p~_brkbase 0x2099ca8
map~_addr~_proc: base 0x10000 slen 0x1fe0000 len 0x13000
map~_addr~_proc: addr 0x1fde000
map~_addr~_proc: addr 0x1fd0000
map~_addr~_proc: addr 0x1fd1000
map~_addr~_proc: addr 0x1fe1000
map~_addr~_proc: returning addrp 0x1fe1000
ppcmmu~_alloc: > vmem~_alloc
ppcmmu~_alloc: < vmem~_alloc
Can't exec hello-hello-kprintf{{code}}

ONCE AGAIN I MISTYPD THE PROGRAM NAME


{{/code}}-> map~_addr~_proc(addrp 0xe4f95e74, len 0x1000, off 0xe4f90000, vacalign 0x1, userlimit 0xe0001000, p 0xe4e32308, flags 0x0)
traceback: %fp = e4f95e20
traceback: fp=0xe4f95e20, nextfp=0xe4f95e60
e4f95e20 e0028324 unix:map~_addr+a4
traceback: fp=0xe4f95e60, nextfp=0xe4f95ed0
e4f95e60 e01ec1b4 unix:schedctl~_map+70
traceback: fp=0xe4f95ed0, nextfp=0xe4f95f20
e4f95ed0 e01ebe24 unix:schedctl~_shared~_alloc+130
traceback: fp=0xe4f95f20, nextfp=0xe4f95f50
e4f95f20 e01eb440 unix:schedctl+44
traceback: fp=0xe4f95f50, nextfp=0x0
e4f95f50 e00023dc unix:sys~_call+f0
end of traceback
map~_addr~_proc: base 0x10000 slen 0x2089ca8 p->p~_brkbase 0x2099ca8
map~_addr~_proc: base 0x10000 slen 0x1fe0000 len 0x13000
map~_addr~_proc: addr 0x1fde000
map~_addr~_proc: addr 0x1fd0000
map~_addr~_proc: addr 0x1fd0000
map~_addr~_proc: addr 0x1fe0000
map~_addr~_proc: returning addrp 0x1fe0000
ppcmmu~_alloc: > vmem~_alloc
ppcmmu~_alloc: < vmem~_alloc

gexec: magic = { 7f 45 4c 46 01 02 01 00 }`

OK I'VE GOT IT - "HELLO-KPRINTF" WHICH SPITS OUT THE HELLO WORLD

{{code}}> elfexec

elfexec: level = 0
> elfexec -> getelfhead
< elfexec -> getelfhead
> elfexec -> getelfphdr
< elfexec -> getelfphdr
exec~_args: size = 4096
ppcmmu~_alloc: > vmem~_alloc
ppcmmu~_alloc: < vmem~_alloc
ppcmmu~_setup: not kernel hat
ppcmmu~_setup: > mmu~_segload
ppcmmu~_setup: < mmu~_segload
> exec~_args -> stk~_copyout
-> grow
-> grow~_internal: sp=dfffefa0, growszc=0
<- grow~_internal: newsize=1000
<- grow
< exec~_args -> stk~_copyout
< elfexec
setregs: r3 (argc) 0x1 r4 (argcv) 0xdfffefa4 r5 (envp) 0xdfffefac r6 (auxv) 0xdfffefb8

Hello, world! [1]
Hello, world! [2]
Hello, world! [3]
Hello, world! [4]
Hello, world! [5]
Hello, world! [6]
Hello, world! [7]
Hello, world! [8]
Hello, world! [9]
Hello, world! [10]
Hello, world!

-> ppcmmu~_alloc: > vmem~_alloc
ppcmmu~_alloc: < vmem~_alloc
Unimplemented function: lwp~_stk~_fini(){{/code}}

HERE WE FORCE AN EXCEPTION AND IT DUMPS US BACK INTO PMDB


`Giving up...

thread = e48587e0:
lwp = e4d5e3a0
lwp errno = 0
t_sysnum = 8e
t_astflag = 1
t_sig_check = 0
traceback: %fp = e4f95c90
traceback: fp=0xe4f95c90, nextfp=0xe4f95d30
e4f95c90 e007d8c8 unix:panic+88
traceback: fp=0xe4f95d30, nextfp=0xe4f95d50
e4f95d30 e0051800 unix:unimplemented_fn+38
traceback: fp=0xe4f95d50, nextfp=0xe4f95d60
e4f95d50 e0051d08 unix:lwp_stk_fini+20
traceback: fp=0xe4f95d60, nextfp=0xe4f95e20
e4f95d60 e0185e04 unix:lwp_create+49c
traceback: fp=0xe4f95e20, nextfp=0xe4f95e80
e4f95e20 e0189054 unix:forklwp+154
traceback: fp=0xe4f95e80, nextfp=0xe4f95f20
e4f95e80 e0153ab0 unix:cfork+708
traceback: fp=0xe4f95f20, nextfp=0xe4f95f50
e4f95f20 e01532fc unix:forksys+6c
traceback: fp=0xe4f95f50, nextfp=0x0
e4f95f50 e00023dc unix:sys_call+f0
end of traceback
MMU state:
--
IBAT0={0, 0}
IBAT1={0, 0}
IBAT2={0, 0}
IBAT3={0, 0}
DBAT0={0, 0}
DBAT1={0, 0}
DBAT2={0, 0}
DBAT3={0, 0}
Segment registers:

00: 20000040={T=0,Ks=0,Kp=1,N=0,VSID=40} *
01: 20000041={T=0,Ks=0,Kp=1,N=0,VSID=41} *
02: 20000042={T=0,Ks=0,Kp=1,N=0,VSID=42} *
03: 20000043={T=0,Ks=0,Kp=1,N=0,VSID=43} *
04: 20000044={T=0,Ks=0,Kp=1,N=0,VSID=44} *
05: 20000045={T=0,Ks=0,Kp=1,N=0,VSID=45} *
06: 20000046={T=0,Ks=0,Kp=1,N=0,VSID=46} *
07: 20000047={T=0,Ks=0,Kp=1,N=0,VSID=47} *
08: 20000048={T=0,Ks=0,Kp=1,N=0,VSID=48} *
09: 20000049={T=0,Ks=0,Kp=1,N=0,VSID=49} *
10: 2000004a={T=0,Ks=0,Kp=1,N=0,VSID=4a} *
11: 2000004b={T=0,Ks=0,Kp=1,N=0,VSID=4b} *
12: 2000004c={T=0,Ks=0,Kp=1,N=0,VSID=4c} *
13: 2000004d={T=0,Ks=0,Kp=1,N=0,VSID=4d} *
14: 2000001e={T=0,Ks=0,Kp=1,N=0,VSID=1e}
15: 2000001f={T=0,Ks=0,Kp=1,N=0,VSID=1f}
SDR1=fc0003f={HTABORG=fc00000=252M,HTABMASK=3f} ptsize=4M
HID0=0x8410c09c
=8410c09c HID1=0x2c80 =2c80

Statistics:
mutex_enter: enter=519192, owned=2227, lost_resv=0
mutex_tryenter: enter=35281, owned=0, lost_resv=0
atomic: interference=0, lost_resv=0, ov32=0, ovfld=0
PMDB configuration:
Startup:
Unit test (ut) : 0 Copy handlers (ch) : 1 Enable Interrupts (ei) : 1 Read-only ktext (ro) : 1 Run configure (config) : 1 Run ttyinit (ttyinit) : 1 Debug init (dbinit) : 1 Run demo (demo) : 0 Debug: Trap debug (td) : 0 CBE debug (cbe) : 0 Genassym (ga) : 0 MMU Flight Rec (mfr) : 0 Int Flight Rec (ifr) : 0 Panic Watch (pwatch) : 0 kmem~_flags (kmf) : d PMDB = Poor Man's DeBugger Commands are: mmufr Show MMU flight recorder mod Show modules vmem Show vmems: heap, module {text, data, ctf} dump Show virtual memory (takes address and 32-bit count) trans Show PROM virtual to physical memory translations ptrans Show translations from pagetable ptstat Show pagetable statistics ptegp Show entire PTEG pair for a given virtual address devs Show device tree intr Show information about interrupts reboot Reboot the target go Exit debugger and continue running Solaris pmdb panic:~.~.~. Unknown command, ~.~.~. Type '?' for help on PMDB commands. pmdb panic:~{{code}}

{{/code}}======> VOF is now loaded

> Use this simple VOF command that will load a kernel from your
> bootserver nfsroot proto/root
> but first let's get inetboot from tftpboot
> Got KRTLD, let's get rolling
> See where you have loaded the kernel

module /platform/chrp/kernel/unix: text at [0xe0001000, 0xe03c8e0f] data at 0xe2000000
module misc/krtld: text at [0xe03c8e10, 0xe03f30eb] data at 0xe20bc078
> Here are the first statements from the kernel

Here are the loaded modules

id text-va text-sz name file-name flags
------------
0 e0001000 3c8a30 unix /platform/chrp/kernel/unix
1 e03c9a30 2a2dc krtld misc/krtld
2 0 0 cl_bootstrap misc/cl_bootstrap
3 e03f5000 8c1c specfs fs/specfs
4 0 0 dtrace dtrace
5 e03fdc1c 918c devfs fs/devfs
6 e0406da8 6294 TS sched/TS
7 e040d03c 16c TS_DPTBL sched/TS_DPTBL
8 e040d1a8 22a4 swapgeneric misc/swapgeneric
9 e040f44c c96e8 nfs fs/nfs
10 e04d8b34 28bd0 rpcmod strmod/rpcmod
11 e0501704 2d44 tlimod misc/tlimod
12 e0504448 8b2c rpcsec misc/rpcsec
13 e050cf74 135c4 vfe drv/vfe
14 e0520538 4c8c mac misc/mac
15 e05251c4 209f00 ip drv/ip
16 e072f0c4 4de4 md5 misc/md5
17 e0733ea8 2e29c kcf misc/kcf
18 e0762144 1e44 swrand crypto/swrand
19 e0763f88 208c hook misc/hook
20 e0766014 160c neti misc/neti
21 e0767620 3c7c pci drv/pci
22 e076b29c 889c rootnex drv/rootnex
23 e0773b38 75fc nfs_dlboot misc/nfs_dlboot
24 e077b134 3234 strplumb misc/strplumb
25 e077e368 90c mac_ether mac/mac_ether
26 e077ec74 a4d4 dld drv/dld
27 e0789148 8154 dls misc/dls
28 e079129c 434 ip6 drv/ip6
29 e07916d0 44c tcp drv/tcp
30 e0791b1c 45c tcp6 drv/tcp6
31 e0791f78 4a4 udp drv/udp
32 e079241c 454 udp6 drv/udp6
33 e0792870 42c sctp drv/sctp
34 e0792c9c 434 sctp6 drv/sctp6
35 e07930d0 d530 icmp drv/icmp
36 e07a0600 44c icmp6 drv/icmp6
37 e07a0a4c a0cc arp drv/arp
38 e07aab18 6cec timod strmod/timod
39 e07b1804 234 options drv/options
40 e07b1a38 f94 pseudo drv/pseudo
41 e07b29cc 89c clone drv/clone
42 e07b3268 1734 sad drv/sad
43 e07b499c 18e84 dev fs/dev
44 e07cd820 4004 ctfs fs/ctfs
45 0 0 procfs fs/procfs
46 e07d1824 b4e4 tmpfs fs/tmpfs
47 e07dcd08 2a4c objfs fs/objfs
48 e07df754 1e4 consconfig misc/consconfig
49 e07df938 481c consconfig_dacf dacf/consconfig_dacf
50 e07e4154 410c conskbd drv/conskbd
51 e07e8260 55cc kbtrans misc/kbtrans
52 e07ed82c 24e4 consms drv/consms
53 e07efd10 213c wc drv/wc
54 e07f1e4c 68c4 tem misc/tem
55 e07f8710 129c iwscn drv/iwscn
56 e07f99ac 3234 isa drv/isa
57 e07fcbe0 3434 busra misc/busra
58 e0800014 b914 asy drv/asy
59 e080b928 c924 kssl drv/kssl
60 e081824c 67b4 elfexec exec/elfexec
61 e081ea00 b64 cn drv/cn`

Tags:
Created by admin on 2009/10/26 12:17
Last modified by admin on 2009/10/26 13:05

XWiki Enterprise 2.7.1.34853 - Documentation