* [parisc-linux] Boot messages from C3000 console
@ 1999-10-21 19:57 Paul Bame
1999-10-21 21:24 ` Stan Sieler
` (3 more replies)
0 siblings, 4 replies; 17+ messages in thread
From: Paul Bame @ 1999-10-21 19:57 UTC (permalink / raw)
To: parisc-linux
This is long. Thanks to Alex Williamson for this -
The short answer is once control is apparently transferred to the
kernel, the system dies hard. Someone who can read PIM dumps
might deduce more from this log.
-Paul Bame
Information Menu: Enter command > io
I/O MODULE INFORMATION
IODC IODC
Path Decimal Type Location HVER SVER Vers Dep
- ------------ ----------- --------------------- ---------- ---- ---- ---- ----
LAN 10/0/12/0 Ethernet built-in 0060 a200 0x02 0x00
AUDIO 10/0/13/0 Audio built-in
IDE 10/0/14/0 IDE built-in 0060 a300 0x00 0x00
SUPERIO MISC 10/0/14/1 Bridge Device built-in
SERIAL_1 10/0/14/1/1 RS232 Port built-in 0060 8c00 0x01 0x00
SERIAL_2 10/0/14/1/2 RS232 Port built-in 0060 8c00 0x01 0x00
PARALLEL 10/0/14/1/3 Parallel Port built-in
USB 10/0/14/2 USB built-in 0060 a900 0x98 0x00
SCSI 10/0/15/0 SCSI built-in 0060 a300 0x00 0x00
FWSCSI 10/0/15/1 SCSI built-in 0060 a300 0x00 0x00
GRAPHICS(2) 10/6/2/0 Display slot 2 0070 8500 0x01 0x00
Information Menu: Enter command > ma
- ----- Main Menu -------------------------------------------------------------
Command Description
------- -----------
BOot [PRI|ALT|<path>] Boot from specified path
PAth [PRI|ALT|CON|KEY] [<path>] Display or modify a path
SEArch [DIsplay|IPL] [<path>] Search for boot devices
COnfiguration [<command>] Access Configuration menu/commands
INformation [<command>] Access Information menu/commands
SERvice [<command>] Access Service menu/commands
DIsplay Redisplay the current menu
HElp [<menu>|<command>] Display help for menu or command
RESET Restart the system
- -----
Main Menu: Enter command > bo lan.15.1.55.151
Interact with IPL (Y, N, Q)?> n
Booting...
Network Station Address 001083-354faa
System IP Address 15.1.52.165
Server IP Address 15.1.55.151
Boot IO Dependent Code (IODC) revision 2
HARD Booted.
- ------------------------------------------------------------------------------
PARISC/Linux Bootstrap Version 0.6 (non-interactive)
By Helge Deller & Jason Eckhardt
Built Thu Oct 21 12:03:52 MDT 1999 by bame@burmese
Reading parameters...done.
Loading PA-RISC/Linux Kernel...
No ramdisks available.
SOM-Kernel:
aux_header_location: 00000080
som : 00200080
exec_dfile: 000DD000
exec_dsize: 00084000
exec_dmem : C00A9000
exec_tfile: 00044000
exec_tsize: 00098008
exec_tmem : C0010000
Code at 0x00010000, size=0x00098008
Data at 0x000A9000, size=0x00084000
BSS at 0x0012D000.
Transferring control to kernel. (At entry point 0x00010000)
Firmware Version 1.8
Duplex Console IO Dependent Code (IODC) revision 1
- ------------------------------------------------------------------------------
(c) Copyright 1995-1998, Hewlett-Packard Company, All rights reserved
- ------------------------------------------------------------------------------
Processor Speed State Coprocessor State I/D Cache
--------- -------- --------------------- ----------------- -------------
0 400 MHz Active Functional 512 kB/1 MB
Central Bus Speed: 120 MHz
Available memory: 805306368 bytes
Good memory required: 82538496 bytes
Primary boot path: FWSCSI.6.0
Alternate boot path: SCSI.6.0
Console path: GRAPHICS(2)
Keyboard path: USB
CPU 0
WARNING: Self tests have been disabled as a result of FASTBOOT
being enabled. To enable self tests, use the FASTBOOT
command in the CONFIGURATION menu and reboot the system.
WARNING: Memory has been initialized, but not tested as a result of
FASTBOOT being enabled. To test memory, use the FASTBOOT
command in the CONFIGURATION menu and reboot the system.
Processor is starting auto boot process.
To discontinue, press any key within 10 seconds.
\aBoot terminated.
~`\x03x
- ----- Main Menu -------------------------------------------------------------
Command Description
------- -----------
BOot [PRI|ALT|<path>] Boot from specified path
PAth [PRI|ALT|CON|KEY] [<path>] Display or modify a path
SEArch [DIsplay|IPL] [<path>] Search for boot devices
COnfiguration [<command>] Access Configuration menu/commands
INformation [<command>] Access Information menu/commands
SERvice [<command>] Access Service menu/commands
DIsplay Redisplay the current menu
HElp [<menu>|<command>] Display help for menu or command
RESET Restart the system
- -----
Main Menu: Enter command > ser pim
PROCESSOR PIM INFORMATION
- ----------------- Processor 0 HPMC Information ------------------
Timestamp =
Thu Oct 21 20:18:08 GMT 1999 (19:99:10:21:20:18:08)
HPMC Chassis Codes = 2cbf0 2500b 2cbf5 2cbfc
General Registers 0 - 31
00-03 0000000000000000 ffffffffffffffff 00000000000100c4 0000000000504000
04-07 0000000000504010 0000000000504000 0000000000000048 00000000f0002f88
08-11 0050427700000002 000000000000004d 000000000012c320 000000000000000a
12-15 0000000000000000 00000000ffffffff 0000000000000000 00000000f0400004
16-19 000000f0f00008a4 000000f0f0000160 000000f0f0000158 fffffffffff80810
20-23 0000000003000000 0000000000001000 0000000000000000 00000000000c0000
24-27 0000000000000000 0000000000000001 00000000c0159610 ffffffffc00a8000
28-31 ffffffffffffffff 00000000000ac948 00000000000ac400 0200000000000204
<Press any key to continue (q to quit)>
Control Registers 0 - 31
00-03 0000000000000000 0000000000000000 0000000000000000 0000000000000000
04-07 0000000000000000 0000000000000000 0000000000000000 0000000000000000
08-11 0000000000000000 0000000000000000 0000000000000000 000000000000003c
12-15 0000000000000000 0000000000000000 0000000000000000 0000000000000000
16-19 0000001d9f33c26d 0000000000000000 0000000000010184 000000000e601181
20-23 00000000a627ffff c0000000e0380810 0000000000000009 0000000080000000
24-27 00000000fdffffff 00000000ffffffff 0000000000000002 0000000008000009
28-31 00000000fdffffff 00000000ffffffff 00000000fdffffff 00000000fdffffff
Space Registers 0 - 7
00-03 00000000 00000000 00000000 00000000
04-07 00000000 00000000 00000000 00000000
<Press any key to continue (q to quit)>
IIA Space = 0x0000000000000000
IIA Offset = 0x0000000000010188
Check Type = 0x20000000
CPU State = 0x9e000004
Cache Check = 0x00000000
TLB Check = 0x00000000
Bus Check = 0x0030103b
Assists Check = 0x00000000
Assist State = 0x00000000
Path Info = 0x00000000
System Responder Address = 0x000000fffff80810
System Requestor Address = 0x000000fffffa0000
Floating-Point Registers 0 - 31
00-03 ffd00fbfffffffdf ffffffffffffffff ffffffffffffffff ffffffffffffffff
04-07 ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff
08-11 ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff
12-15 ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff
16-19 ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff
20-23 ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff
24-27 ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff
28-31 ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff
<Press any key to continue (q to quit)>
'B1000/C3000/J5000/J7000 Unarchitected (per-CPU)', revision 1, 140 bytes:
Check Summary = 0xcb81041008000000
Available Memory = 0x0000000030000000
CPU Diagnose Register 2 = 0x0200000000000204
CPU Status Register 0 = 0x2420c20000000000
CPU Status Register 1 = 0x8002000000000000
SADD LOG = 0x0000000000000000
Read Short LOG = 0xc1af00fffff80810
ERROR_STATUS = 0x0000000000100010
MEM_ADDR = 0x000001ff3fffffff
MEM_SYND = 0x0000000000000000
MEM_ADDR_CORR = 0x000001ff3fffffff
MEM_SYND_CORR = 0x0000000000000000
RUN_DATA_HIGH = 0xc1bff0fffed08040
RUN_DATA_LOW = 0xc1bff0fffed08040
RUN_CTRL = 0x0000021c00001418
RUN_ADDR = 0xc1bff0fffed08040
System Responder Path = 0x00ffffffffffffff
<Press any key to continue (q to quit)>
- ----------------- Processor 0 LPMC Information ------------------
Check Type = 0x00000000
I/D Cache Parity Info = 0x00000000
Cache Check = 0x00000000
TLB Check = 0x00000000
Bus Check = 0x00000000
Assists Check = 0x00000000
Assist State = 0x00000000
Path Info = 0x00000000
System Responder Address = 0x0000000000000000
System Requestor Address = 0x0000000000000000
- ----------------- Processor 0 TOC Information -------------------
General Registers 0 - 31
00-03 0000000000000000 000000f0f0093000 000000f0f000b658 00000000000f4240
04-07 00000020317d230d 0000000000000004 000000f0f0407aa8 0000000000000000
08-11 000000f0f0407aa8 000000000000004d 000000000012c320 000000000000000a
12-15 0000000000000000 00000000ffffffff 0000000000000000 00000000f0400004
16-19 000000f0f00008a4 000000f0f0000160 000000f0f0000158 000000f0f0077270
20-23 000000f0f05f0068 0000000000000004 0000000000000008 000000f0f003c3ac
24-27 0000000009f9c6f0 000000003d090000 0000000017d78400 000000f0f0412000
28-31 0000000017d78400 0000000000000008 000000f0f0407d68 000000f0f00772f0
<Press any key to continue (q to quit)>
Control Registers 0 - 31
00-03 0000000000000000 0000000000000000 0000000000000000 0000000000000000
04-07 0000000000000000 0000000000000000 0000000000000000 0000000000000000
08-11 0000000000000000 0000000000000000 0000000000000000 0000000000000005
12-15 0000000000000000 0000000000000000 000000f0f0003800 0000000000000000
16-19 000000203b7aaa7c 00000000000000f0 000000f0f000b664 00000000020008b8
20-23 000000009237c3c1 0000000001c07d10 000000ff0809cf08 0000000080000000
24-27 00000000fdffffff 00000000ffffffff 0000000000000002 0000000008000009
28-31 00000000fdffffff 00000000ffffffff 00000000fdffffff 00000000fdffffff
Space Registers 0 - 7
00-03 00000000 00000000 00000000 00000000
04-07 00000000 00000000 00000000 00000000
IIA Space = 0x00000000000000f0
IIA Offset = 0x000000f0f000b65c
CPU State = 0x0000004d
<Press any key to continue (q to quit)>
Memory Error Log Information:
Timestamp =
Thu Oct 21 20:18:08 GMT 1999 (19:99:10:21:20:18:08)
'B1000/C3000/J5000/J7000 Memory Error Log', revision 0, 64 bytes:
No memory errors logged
I/O Module Error Log Information:
Timestamp =
Thu Oct 21 20:18:08 GMT 1999 (19:99:10:21:20:18:08)
'B1000/C3000/J5000/J7000 IO Error Log', revision 0, 228 bytes:
Rope Word1 Word2 Word3
- ------ ------------ ------------
0 0x00000000 0x0e0cc009 0x00000000fed30048
1 0x00000000 0x1e0cc009 0x00000000fed32048
2 ---------- 0x2e0cc009 ------------------
3 ---------- 0x3e0cc009 ------------------
4 0x00000000 0x4e0cc009 0x00000000fed38048
5 ---------- 0x5e0cc009 ------------------
6 0x00000000 0x6e0cc009 0x00000000fed3c048
7 ---------- 0x7e0cc009 ------------------
Main Menu: Enter command >
- --------------6D46321F53F67470D064CBF0--
------- End of Forwarded Message
^ permalink raw reply [flat|nested] 17+ messages in thread* Re: [parisc-linux] Boot messages from C3000 console 1999-10-21 19:57 [parisc-linux] Boot messages from C3000 console Paul Bame @ 1999-10-21 21:24 ` Stan Sieler 1999-10-21 22:05 ` Frank Rowand ` (2 subsequent siblings) 3 siblings, 0 replies; 17+ messages in thread From: Stan Sieler @ 1999-10-21 21:24 UTC (permalink / raw) To: Paul Bame; +Cc: parisc-linux Re: Don't know if this helps at all... > kernel, the system dies hard. Someone who can read PIM dumps > might deduce more from this log. ... > HPMC Chassis Codes = 2cbf0 2500b 2cbf5 2cbfc In a possibly not-quite-matching manual: cbf0 = HPMC occurred 500b = bus timeout (slot 0, bus 0) cbf5 = IVA+32 was equal to 0 cbfc = branch to os HPMC failed > General Registers 0 - 31 > 00-03 0000000000000000 ffffffffffffffff 00000000000100c4 0000000000504000 > 04-07 0000000000504010 0000000000504000 0000000000000048 00000000f0002f88 > 08-11 0050427700000002 000000000000004d 000000000012c320 000000000000000a > 12-15 0000000000000000 00000000ffffffff 0000000000000000 00000000f0400004 > 16-19 000000f0f00008a4 000000f0f0000160 000000f0f0000158 fffffffffff80810 > 20-23 0000000003000000 0000000000001000 0000000000000000 00000000000c0000 > 24-27 0000000000000000 0000000000000001 00000000c0159610 ffffffffc00a8000 > 28-31 ffffffffffffffff 00000000000ac948 00000000000ac400 0200000000000204 > > <Press any key to continue (q to quit)> > > > Control Registers 0 - 31 > 00-03 0000000000000000 0000000000000000 0000000000000000 0000000000000000 > 04-07 0000000000000000 0000000000000000 0000000000000000 0000000000000000 > 08-11 0000000000000000 0000000000000000 0000000000000000 000000000000003c > 12-15 0000000000000000 0000000000000000 0000000000000000 0000000000000000 > 16-19 0000001d9f33c26d 0000000000000000 0000000000010184 000000000e601181 > 20-23 00000000a627ffff c0000000e0380810 0000000000000009 0000000080000000 > 24-27 00000000fdffffff 00000000ffffffff 0000000000000002 0000000008000009 > 28-31 00000000fdffffff 00000000ffffffff 00000000fdffffff 00000000fdffffff > Space Registers 0 - 7 > > 00-03 00000000 00000000 00000000 00000000 > 04-07 00000000 00000000 00000000 00000000 > > IIA Space = 0x0000000000000000 > IIA Offset = 0x0000000000010188 ... > System Responder Address = 0x000000fffff80810 > System Requestor Address = 0x000000fffffa0000 CR19 (IIR) = e601181 = LDWAS 0(0,19),1 So, looks like an absolute load was being done, using R19 as the address: R19 = fffffffffff80810 The "System Responder Address", whatever that is, is 0x000000fffff80810 which is suspciciously similar to what's in R19. SS ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [parisc-linux] Boot messages from C3000 console 1999-10-21 19:57 [parisc-linux] Boot messages from C3000 console Paul Bame 1999-10-21 21:24 ` Stan Sieler @ 1999-10-21 22:05 ` Frank Rowand 1999-10-21 22:51 ` Grant Grundler 1999-10-22 0:57 ` Frank Rowand 3 siblings, 0 replies; 17+ messages in thread From: Frank Rowand @ 1999-10-21 22:05 UTC (permalink / raw) To: Paul Bame; +Cc: parisc-linux Paul Bame wrote: > > This is long. Thanks to Alex Williamson for this - > > The short answer is once control is apparently transferred to the > kernel, the system dies hard. Someone who can read PIM dumps > might deduce more from this log. > > -Paul Bame Look in the IO ARS, under PDC_PIM() for info on decoding this stuff. I'll decode a couple of key words, but I have to run to a meeting. > Main Menu: Enter command > ser pim > > PROCESSOR PIM INFORMATION > > - ----------------- Processor 0 HPMC Information ------------------ > > Timestamp = > Thu Oct 21 20:18:08 GMT 1999 (19:99:10:21:20:18:08) > > HPMC Chassis Codes = 2cbf0 2500b 2cbf5 2cbfc > > General Registers 0 - 31 > 00-03 0000000000000000 ffffffffffffffff 00000000000100c4 0000000000504000 > 04-07 0000000000504010 0000000000504000 0000000000000048 00000000f0002f88 > 08-11 0050427700000002 000000000000004d 000000000012c320 000000000000000a > 12-15 0000000000000000 00000000ffffffff 0000000000000000 00000000f0400004 > 16-19 000000f0f00008a4 000000f0f0000160 000000f0f0000158 fffffffffff80810 > 20-23 0000000003000000 0000000000001000 0000000000000000 00000000000c0000 > 24-27 0000000000000000 0000000000000001 00000000c0159610 ffffffffc00a8000 > 28-31 ffffffffffffffff 00000000000ac948 00000000000ac400 0200000000000204 > > <Press any key to continue (q to quit)> > > Control Registers 0 - 31 > 00-03 0000000000000000 0000000000000000 0000000000000000 0000000000000000 > 04-07 0000000000000000 0000000000000000 0000000000000000 0000000000000000 > 08-11 0000000000000000 0000000000000000 0000000000000000 000000000000003c > 12-15 0000000000000000 0000000000000000 0000000000000000 0000000000000000 > 16-19 0000001d9f33c26d 0000000000000000 0000000000010184 000000000e601181 > 20-23 00000000a627ffff c0000000e0380810 0000000000000009 0000000080000000 > 24-27 00000000fdffffff 00000000ffffffff 0000000000000002 0000000008000009 > 28-31 00000000fdffffff 00000000ffffffff 00000000fdffffff 00000000fdffffff > Space Registers 0 - 7 > > 00-03 00000000 00000000 00000000 00000000 > 04-07 00000000 00000000 00000000 00000000 > > <Press any key to continue (q to quit)> > This should be the address of the instruction that caused the HPMC. Use adb against the kernel to see what this instruction is. Then you'll probably need to use the contents of the general registers above to figure out what was going on: > IIA Space = 0x0000000000000000 > IIA Offset = 0x0000000000010188 Bus check: > Check Type = 0x20000000 > CPU State = 0x9e000004 > Cache Check = 0x00000000 > TLB Check = 0x00000000 Read timeout: > Bus Check = 0x0030103b > Assists Check = 0x00000000 > Assist State = 0x00000000 > Path Info = 0x00000000 Someone needs to look at an address map to see what address was being accessed: > System Responder Address = 0x000000fffff80810 cpu 0 is the requestor: > System Requestor Address = 0x000000fffffa0000 Off to the meeting... -Frank Rowand ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [parisc-linux] Boot messages from C3000 console 1999-10-21 19:57 [parisc-linux] Boot messages from C3000 console Paul Bame 1999-10-21 21:24 ` Stan Sieler 1999-10-21 22:05 ` Frank Rowand @ 1999-10-21 22:51 ` Grant Grundler 1999-10-22 0:57 ` Frank Rowand 3 siblings, 0 replies; 17+ messages in thread From: Grant Grundler @ 1999-10-21 22:51 UTC (permalink / raw) To: Paul Bame; +Cc: parisc-linux Paul Bame wrote: > The short answer is once control is apparently transferred to the > kernel, the system dies hard. Someone who can read PIM dumps > might deduce more from this log. I can't find a PIM decoder for the C3000....I'll try the J5000 decoder later. Here's a few more notes by hand. I saw Stan Sieler's reply and can fill in a few more gaps. > HPMC Chassis Codes = 2cbf0 2500b 2cbf5 2cbfc The bus time-out suggests the processor tried to access 0xfffff80810 and no device lives there. The processor saw an error condition (bus timeout) and brought the system down. ... > IIA Space = 0x0000000000000000 > IIA Offset = 0x0000000000010188 > Check Type = 0x20000000 > CPU State = 0x9e000004 > Cache Check = 0x00000000 > TLB Check = 0x00000000 > Bus Check = 0x0030103b > Assists Check = 0x00000000 > Assist State = 0x00000000 > Path Info = 0x00000000 > System Responder Address = 0x000000fffff80810 > System Requestor Address = 0x000000fffffa0000 Responder is the address which was supposed to respond. Requestor is the address of the device which started the transaction. I would guess 0xff_fffa0000 is the processor. What's at 0xff_fff80000? And which driver uses offset 0x810? (card-mode Dino does....but am pretty sure the kernel didn't get that far.) This is the interesting part: > 'B1000/C3000/J5000/J7000 Unarchitected (per-CPU)', revision 1, 140 bytes: > > Check Summary = 0xcb81041008000000 > Available Memory = 0x0000000030000000 > CPU Diagnose Register 2 = 0x0200000000000204 > CPU Status Register 0 = 0x2420c20000000000 > CPU Status Register 1 = 0x8002000000000000 > SADD LOG = 0x0000000000000000 > Read Short LOG = 0xc1af00fffff80810 This is another copy of the offending address. > ERROR_STATUS = 0x0000000000100010 Broad Error on the Runway Bus > MEM_ADDR = 0x000001ff3fffffff > MEM_SYND = 0x0000000000000000 > MEM_ADDR_CORR = 0x000001ff3fffffff > MEM_SYND_CORR = 0x0000000000000000 No memory problems. > RUN_DATA_HIGH = 0xc1bff0fffed08040 > RUN_DATA_LOW = 0xc1bff0fffed08040 Last data on runway before the error. 0xFF_FEDO_8000 is runway bus interface register space. > RUN_CTRL = 0x0000021c00001418 > RUN_ADDR = 0xc1bff0fffed08040 Last ctrl/addr on the runway bus before the error. > System Responder Path = 0x00ffffffffffffff NULL path - default value. Not PCI related. ... On K/T-class system, the I/O error log was invaluable. Not sure how useful it is on this set of boxes. I'm sure we'll see. > 'B1000/C3000/J5000/J7000 IO Error Log', revision 0, 228 bytes: > > Rope Word1 Word2 Word3 > - ------ ------------ ------------ > 0 0x00000000 0x0e0cc009 0x00000000fed30048 > 1 0x00000000 0x1e0cc009 0x00000000fed32048 > 2 ---------- 0x2e0cc009 ------------------ > 3 ---------- 0x3e0cc009 ------------------ > 4 0x00000000 0x4e0cc009 0x00000000fed38048 > 5 ---------- 0x5e0cc009 ------------------ > 6 0x00000000 0x6e0cc009 0x00000000fed3c048 > 7 ---------- 0x7e0cc009 ------------------ Grant Grundler Unix Developement Lab +1.408.447.7253 ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [parisc-linux] Boot messages from C3000 console 1999-10-21 19:57 [parisc-linux] Boot messages from C3000 console Paul Bame ` (2 preceding siblings ...) 1999-10-21 22:51 ` Grant Grundler @ 1999-10-22 0:57 ` Frank Rowand 1999-10-22 2:23 ` Jason Eckhardt ` (2 more replies) 3 siblings, 3 replies; 17+ messages in thread From: Frank Rowand @ 1999-10-22 0:57 UTC (permalink / raw) To: Paul Bame, parisc-linux Paul Bame wrote: > > This is long. Thanks to Alex Williamson for this - > > The short answer is once control is apparently transferred to the > kernel, the system dies hard. Someone who can read PIM dumps > might deduce more from this log. > > -Paul Bame < detailed HPMC info deleted> We found it... I'm cutting this from another discussion, don't feel like re-typing it. The file we are talking about (giving line number references) is head.S. We calculated the the offending offset was at label "blargh" plus a bit. The following discussion talks about how we get to the code section where the HPMC occurs. Earlier, we talked about hard-coding magic addresses, which are machine specific (that's in the macro "debug", which is what actually caused the HPMC -- line 162). <ggg> I was looking at how we get to blargh and don't get it. Only one location branches there. > yes, it compares r28 to zero > ah, r28 is the return value from the procedure called from line 265 (duhhhh) > r1 is loaded at line 251 (the value of MEM_PDC, from page zero) > That should be the entry point to PDC. > So there's an error returned by the pdc call at line 265. > calling PDC_BLOCK_TLB(). [arg0 = 18]. PDC_BLOCK_TLB doesn't exist on a PA2.0 server (and I assume the same for workstations), because block TLB entries don't exist, we have variable size pages instead. Then I get a little incensed at the coding style here.... (editing out other people's responses to my tirade) > This is a **bogus** way to write code. Comments should be required!!!!!! Is there any way to encourage that? > But I'm *extremely* serious about that. This code is unmaintainable in it's current form. It's going to be miserable adding 2.0 support to something like that. > it's important to anyone who would like to pick up head.S and be able to read it. To decode the procedure call I had to know where to find documentation for page zero, know what PDCE_PROC is, figure out what PDC procedure was being called. > For me, it was about 45 seconds instead of the two seconds it would take to read a comment. > For someone who doesn't have my background, it could be hours. Ok, tirade mode off. This is where my newbie status becomes apparent. Please excuse any foot in mouth here. I looked at the Puffin web page and didn't notice anything about the process of making sure that code that is submitted has some minimal level of quality. Is it just a matter of the community applying peer pressure? -Frank Rowand ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [parisc-linux] Boot messages from C3000 console 1999-10-22 0:57 ` Frank Rowand @ 1999-10-22 2:23 ` Jason Eckhardt 1999-10-22 2:33 ` Alex deVries 1999-10-22 22:14 ` [parisc-linux] Boot messages from C3000 console Philipp Rumpf 2 siblings, 0 replies; 17+ messages in thread From: Jason Eckhardt @ 1999-10-22 2:23 UTC (permalink / raw) To: frowand; +Cc: Paul Bame, parisc-linux On Thu, 21 Oct 1999, Frank Rowand wrote: > read it. To decode the procedure call I had to know where to find > documentation for page zero, know what PDCE_PROC is, figure out what PDC > procedure was being called. > This is where my newbie status becomes apparent. Yes. > excuse any foot in mouth here. I looked at the Puffin web page and didn't > notice anything about the process of making sure that code that is submitted > has some minimal level of quality. Is it just a matter of the community > applying peer pressure? > We could institute ECN's (engineering change notices, for those of you who've never worked for HP) if that would help :)... But seriously, this is an important concern. Normally, there would be a "maintainer" who would review code for accuracy, cleanliness, quality, etc. before allowing it to be checked in. That person was me at one time, but due to tremendous time pressures, I gave up on that. jason. ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [parisc-linux] Boot messages from C3000 console 1999-10-22 0:57 ` Frank Rowand 1999-10-22 2:23 ` Jason Eckhardt @ 1999-10-22 2:33 ` Alex deVries 1999-10-22 15:15 ` Helge Deller 1999-10-22 16:06 ` Grant Grundler 1999-10-22 22:14 ` [parisc-linux] Boot messages from C3000 console Philipp Rumpf 2 siblings, 2 replies; 17+ messages in thread From: Alex deVries @ 1999-10-22 2:33 UTC (permalink / raw) To: frowand; +Cc: Paul Bame, parisc-linux On Thu, 21 Oct 1999, Frank Rowand wrote: > Ok, tirade mode off. This is where my newbie status becomes apparent. Please > excuse any foot in mouth here. I looked at the Puffin web page and didn't > notice anything about the process of making sure that code that is submitted > has some minimal level of quality. Is it just a matter of the community > applying peer pressure? In fact, it's *ALL* about the community applying pressure. If the code in head.S is a bit rough, remember that it was just about the first PA-RISC assembler that Helge or Philipp had ever written, so do keep that in mind. Also, at the start of the project, there was a very conscious effort to only be concerned with 1.1 code. It doesn't surprise me in the least that it's not 2.0 compliant. I agree that the code is unreadable though; I've simply passed it off on not being able to understand parisc assembler well enough. We'd all appreciate it if you could commit appropriate changes to make the code clearer. - Alex ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [parisc-linux] Boot messages from C3000 console 1999-10-22 2:33 ` Alex deVries @ 1999-10-22 15:15 ` Helge Deller 1999-10-22 17:32 ` Frank Rowand 1999-10-22 22:16 ` Philipp Rumpf 1999-10-22 16:06 ` Grant Grundler 1 sibling, 2 replies; 17+ messages in thread From: Helge Deller @ 1999-10-22 15:15 UTC (permalink / raw) To: parisc-linux, Alex deVries, frowand; +Cc: Paul Bame Am Fri, 22 Oct 1999 schrieb Alex deVries: > On Thu, 21 Oct 1999, Frank Rowand wrote: > > Ok, tirade mode off. This is where my newbie status becomes apparent. Please > > excuse any foot in mouth here. I looked at the Puffin web page and didn't > > notice anything about the process of making sure that code that is submitted > > has some minimal level of quality. Is it just a matter of the community > > applying peer pressure? > > In fact, it's *ALL* about the community applying pressure. > > If the code in head.S is a bit rough, remember that it was just about the > first PA-RISC assembler that Helge or Philipp had ever written, so do keep > that in mind. Also, at the start of the project, there was a very > conscious effort to only be concerned with 1.1 code. It doesn't surprise > me in the least that it's not 2.0 compliant. > > I agree that the code is unreadable though; I've simply passed it off on > not being able to understand parisc assembler well enough. > > We'd all appreciate it if you could commit appropriate changes to make the > code clearer. > > - Alex Thanks Alex, Yes, we all know that the boot-loader really needs a complete clean-up, and as it looks like I´m the maintainer of the bootloader. It´s really funny to see people from HP talking to the list and saying somthing about code-quality, but only as a little reminder: When I wrote the bootloader I had no documentation on bootloading from HP at all, no knowledge of parisc and got it only working with trial & error methods in day and night-sessions. More, it´s first goal was to get at least a kernel booted so that the real kernel-development could start. (See my messages in the commits) The end of this all was this really ugly bootloader with many until now unused enhancements (ELF-loader and ramdisk-support) which can be easily removed. More I think there are currently MUCH MORE IMPORTANT things to be fixed in the kernel than beautifying a (mostly) working bootloader which will be completely rewritten in the future. When time has come and we have clean code to read filesystems like LIF and HFS, then this can be easily integrated into a completely rewritten PALO (PArisc-LOader). But currently I have nearly no time at all (as many others on this list), so if anyone has time to fix things, beautify the code and send me patches or enhancements I really would like to integrate them at once. SO: PLEASE don´t talk about quality of source code (we all know, that the bootloader is bad!) , just send patches !!!!! NB: It seems, that many people wants to talk about this over and over again. All this was already said some weeks ago..... Helge Deller. ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [parisc-linux] Boot messages from C3000 console 1999-10-22 15:15 ` Helge Deller @ 1999-10-22 17:32 ` Frank Rowand 1999-10-22 23:42 ` Philipp Rumpf 1999-10-23 3:46 ` Ryan Bradetich 1999-10-22 22:16 ` Philipp Rumpf 1 sibling, 2 replies; 17+ messages in thread From: Frank Rowand @ 1999-10-22 17:32 UTC (permalink / raw) To: parisc-linux; +Cc: Paul Bame Helge Deller wrote: > > Am Fri, 22 Oct 1999 schrieb Alex deVries: > > On Thu, 21 Oct 1999, Frank Rowand wrote: > > > Ok, tirade mode off. This is where my newbie status becomes apparent. Please > > > excuse any foot in mouth here. I looked at the Puffin web page and didn't > > > notice anything about the process of making sure that code that is submitted > > > has some minimal level of quality. Is it just a matter of the community > > > applying peer pressure? > > > > In fact, it's *ALL* about the community applying pressure. > > > > If the code in head.S is a bit rough, remember that it was just about the > > first PA-RISC assembler that Helge or Philipp had ever written, so do keep > > that in mind. Also, at the start of the project, there was a very > > conscious effort to only be concerned with 1.1 code. It doesn't surprise > > me in the least that it's not 2.0 compliant. > > > > I agree that the code is unreadable though; I've simply passed it off on > > not being able to understand parisc assembler well enough. > > > > We'd all appreciate it if you could commit appropriate changes to make the > > code clearer. > > > > - Alex > > Thanks Alex, > > Yes, we all know that the boot-loader really needs a complete clean-up, and as > it looks like I´m the maintainer of the bootloader. > > It´s really funny to see people from HP talking to the list and saying somthing > about code-quality, but only as a little reminder: > When I wrote the bootloader I had no documentation on bootloading from HP at > all, no knowledge of parisc and got it only working with trial & error methods > in day and night-sessions. More, it´s first goal was to get at least a kernel > booted so that the real kernel-development could start. (See my messages in the <stuff deleted> First, thanks to all for the gentle replies. I like this community!! Alex, I guess I wasn't clear enough about what my issue was. I wasn't complaining about the actual code (I try to avoid that, as long as code is mostly correct (works)). My concern was that I, with twelve years experience with PA-RISC (including four different OSs - MPE, NextStep, HP-RT, and HP-UX), had to go to external documentation to read what is trivial code (a PDC call) when a one line comment would have made it obvious that the code was calling PDC_BLOCK_TLB(). For me, just annoying - for someone who might be missing one or two of the bits of knowledge, potentially a multi-hour sidetrack to understand some trivial code. I want to encourage people to make the code easily readable so I don't have to waste a lot of time when my help is requested to debug or contribute code. Helge, I wasn't complaining about the boot-loader, I think you are mixing two different threads together. And I'm not complaining about the algorithms, the instructions coded, correctness of code, or anything like that. I'm just saying that the sequence that I had to read in head.S to figure out the cause of the HPMC on the C3000 needed at least a comment to make it readable without having to know about and consult external documents. (And Grant made a good point that using defines instead of numbers can also increase readability significantly). And yes, I suspect that adding the comment to the code will be my first submission to parisc linux (how embaressing to submit a comment before submitting any code!). Thanks all, Frank Rowand ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [parisc-linux] Boot messages from C3000 console 1999-10-22 17:32 ` Frank Rowand @ 1999-10-22 23:42 ` Philipp Rumpf 1999-10-23 3:46 ` Ryan Bradetich 1 sibling, 0 replies; 17+ messages in thread From: Philipp Rumpf @ 1999-10-22 23:42 UTC (permalink / raw) To: frowand; +Cc: parisc-linux, Paul Bame > one line comment would have made it obvious that the code was calling > PDC_BLOCK_TLB(). For me, just annoying - for someone who might be missing one I agree that adding "using PDC_BLOCK_TLB" to the "setup the BTLB" comment might have been a good idea. > understand some trivial code. I want to encourage people to make the code > easily readable so I don't have to waste a lot of time when my help is requested > to debug or contribute code. > > saying that the sequence that I had to read in head.S to figure out the > cause of the HPMC on the C3000 needed at least a comment to make it readable I somehow get the impression what you are suggesting is the author of this code (i.e. me) wrote this code, left for some weeks and you were forced to fix this bug. What I did was to leave for 38 hours. Of course it would be nice to have as little code as possible in the tree only the author understands, and we don't have very much, but I don't think we'll ever get rid of the last bits of "unreadable" code (in fact, there's enough of that in the architecture-independent parts to spend a long and busy life ranting about it). You found some. Now what you could have done is comment the code, change the code to use #defines, yell at the author, yell at the author in public, or start a discussion on how to avoid ever having any unreadable code in the kernel at all. You chose (possibly among other possibilities) to have a discussion. I am not sure which effect you intended it to have, but I am pretty sure the effect it is going to have, if any, is to waste lots of time that otherwise would have gone into development, both in the discussion itself and in enforcing any rules that we "agree upon" (i.e. about which one side gets too tired to argue about). My impression is we'll save a lot of time by simply yelling at each other about bad code as long as the number of developers and users is as low as it currently is and most likely will be within the next 6 months. Philipp Rumpf ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [parisc-linux] Boot messages from C3000 console 1999-10-22 17:32 ` Frank Rowand 1999-10-22 23:42 ` Philipp Rumpf @ 1999-10-23 3:46 ` Ryan Bradetich 1 sibling, 0 replies; 17+ messages in thread From: Ryan Bradetich @ 1999-10-23 3:46 UTC (permalink / raw) To: frowand; +Cc: parisc-linux, Paul Bame [-- Attachment #1: Type: text/plain, Size: 4515 bytes --] Frank Rowand wrote: > Helge Deller wrote: > > > > Am Fri, 22 Oct 1999 schrieb Alex deVries: > > > On Thu, 21 Oct 1999, Frank Rowand wrote: > > > > Ok, tirade mode off. This is where my newbie status becomes apparent. Please > > > > excuse any foot in mouth here. I looked at the Puffin web page and didn't > > > > notice anything about the process of making sure that code that is submitted > > > > has some minimal level of quality. Is it just a matter of the community > > > > applying peer pressure? > > > > > > In fact, it's *ALL* about the community applying pressure. > > > > > > If the code in head.S is a bit rough, remember that it was just about the > > > first PA-RISC assembler that Helge or Philipp had ever written, so do keep > > > that in mind. Also, at the start of the project, there was a very > > > conscious effort to only be concerned with 1.1 code. It doesn't surprise > > > me in the least that it's not 2.0 compliant. > > > > > > I agree that the code is unreadable though; I've simply passed it off on > > > not being able to understand parisc assembler well enough. > > > > > > We'd all appreciate it if you could commit appropriate changes to make the > > > code clearer. > > > > > > - Alex > > > > Thanks Alex, > > > > Yes, we all know that the boot-loader really needs a complete clean-up, and as > > it looks like I´m the maintainer of the bootloader. > > > > It´s really funny to see people from HP talking to the list and saying somthing > > about code-quality, but only as a little reminder: > > When I wrote the bootloader I had no documentation on bootloading from HP at > > all, no knowledge of parisc and got it only working with trial & error methods > > in day and night-sessions. More, it´s first goal was to get at least a kernel > > booted so that the real kernel-development could start. (See my messages in the > > <stuff deleted> > > First, thanks to all for the gentle replies. I like this community!! > > Alex, I guess I wasn't clear enough about what my issue was. I wasn't complaining > about the actual code (I try to avoid that, as long as code is mostly correct > (works)). My concern was that I, with twelve years experience with PA-RISC > (including four different OSs - MPE, NextStep, HP-RT, and HP-UX), had to go to > external documentation to read what is trivial code (a PDC call) when a > one line comment would have made it obvious that the code was calling > PDC_BLOCK_TLB(). For me, just annoying - for someone who might be missing one > or two of the bits of knowledge, potentially a multi-hour sidetrack to > understand some trivial code. I want to encourage people to make the code > easily readable so I don't have to waste a lot of time when my help is requested > to debug or contribute code. > > Helge, I wasn't complaining about the boot-loader, I think you are mixing two > different threads together. And I'm not complaining about the algorithms, > the instructions coded, correctness of code, or anything like that. I'm just > saying that the sequence that I had to read in head.S to figure out the > cause of the HPMC on the C3000 needed at least a comment to make it readable > without having to know about and consult external documents. (And Grant made > a good point that using defines instead of numbers can also increase > readability significantly). > > And yes, I suspect that adding the comment to the code will be my first > submission to parisc linux (how embaressing to submit a comment before > submitting any code!). > Sorry I haven't responded to this thread earlier .... (Spent last week traveling ...) I've been working on trying to figure out how the boot-loader works, and get it to work on the C200+ (which is PA-RISC 2.0) I'm going to assume the C3000 is also PA-RISC 2.0 also. I've gone through and attempted to clean up clean up the code and put in comments so that I could understand it. (I've attach my modified head.S. Be gentle .... this is my first attempt at PA-RISC assembly) Since there seems to be other interest in getting this to work, I'd be very interested in sharing what I have learned, and working with others to get this to work. -Ryan Bradetich who is finally home again. P.S I really want to help on this port, but I can't until it boots on the C200. > > Thanks all, > > Frank Rowand > > --------------------------------------------------------------------------- > To unsubscribe: send e-mail to parisc-linux-request@thepuffingroup.com with > `unsubscribe' as the subject. [-- Attachment #2: head.S --] [-- Type: text/plain, Size: 8086 bytes --] /* * * This file is subject to the terms and conditions of the GNU General Public * License. See the file "COPYING" in the main directory of this archive * for more details. * * Copyright (C) 1999 by Helge Deller * Copyright 1999 SuSE GmbH (Philipp Rumpf, prumpf@suse.de) * * Initial Version 04-23-1999 by Helge Deller (helge.deller@ruhr-uni-bochum.de) */ /* --------------------------------------------------------------------------- * * $Log: head.S,v $ * Revision 1.32 1999/08/31 19:25:23 prumpf * fixes * * Revision 1.30 1999/08/21 19:07:07 prumpf * removed the initrd stuff for now * * Revision 1.29 1999/08/21 17:08:27 prumpf * debugging * * Revision 1.28 1999/08/10 15:44:35 prumpf * changes for having the kernel virtually mapped * * Revision 1.27 1999/08/06 17:05:11 prumpf * cleaned up a bit * * Revision 1.26 1999/07/24 00:00:41 deller * * * first work on initrd * * Revision 1.25 1999/07/21 00:30:34 deller * * * renamed some symbols in head.S (for mmu-code) * * the same changes in setup.c * * removed irq_setup() from setup.c (not used). * * Revision 1.24 1999/07/16 10:26:41 prumpf * Fixed some of the obvious problems so interruptions will work again * * Revision 1.23 1999/07/15 13:52:59 deller * * * found the problem, why kernel stopped with booting via hpux-loader: * the hpux-bootloader did not zero-initialized the BSS segment, so * that all uninitialized variables from kernel was in undefined state. * * the kernel now zero-initializes the BSS segment itself * * the memory-adress of the first free byte is now the same, it doesn't * matter if you boot via hpux-loader or our ipl-loader.... * * -> Now booting all ways (network, CD, HDD, hpux) should be OK ! * * Revision 1.22 1999/07/14 09:36:52 deller * * * cache will be reset, when init_cache() is called, * * fatal() is called, when a function from fixme.c is called, * * the Kernel now gets the (yet static) command-line from the bootloader. * * Revision 1.21 1999/07/13 23:33:30 deller * * next approach on Phillips' bug-report. (better, should work, but not optimal!) * the bogompis/irq-detection hangs when booted via hpux-bootloader, * it seems that some general irq-flags has to be set in head.s or irq.c (?) * * Revision 1.20 1999/07/13 20:59:29 deller * * Phillip, would you try again with this.... * Please remove the boot/boot_code/ipl-file before (maybe it's now done * automatically). * * Revision 1.18 1999/07/13 01:23:25 deller * * small changes in fixme.c - (it would be good to remove that file), * better memory-optimization in head.S for booting from the local hpux-bootloader * (tested with HP-UX 10.20). * * Revision 1.17 1999/07/09 21:54:44 deller * * * Fixed the hpux-bootloader-problem ! * The problem was in head.S (where I assumed, that we always start the kernel * from our own bootloader). * * Now you can do: * boot pri isl * hpux /stand/vmlinux * * Revision 1.16 1999/07/08 15:47:31 prumpf * stack alignment is 64 bytes * */ /* FIXME !!! When vmlinux was started by the hpux-bootloader, then I don't know the size of the BSS-Data, which follows the end of the vmlinux-file. I did some debugging-tests here, and it seemed, that %arg3=%r23 will get the HALF of the size of BSS from the bootloader, so I implemented that ! If anybody has real documentation, please contact me: Helge Deller <helge.deller@ruhr-uni-bochum.de> or <deller@gmx.de> (NB: The commands for booting are: "boot pri isl" and "hpux /stand/vmlinux"). Maybe I should mention, that this problem does not exist, when vmlinux was started by our own bootloader. Helge Deller, 99-07-13 */ #define PA(x) ((x)-0xc0000000) #include <asm/offset.h> #include <asm/psw.h> .level 1.1 .space $TEXT$ .subspa $UNWIND_START$,QUAD=0,ALIGN=8,ACCESS=0x2C,SORT=56 .export $UNWIND_START $UNWIND_START .subspa $UNWIND_END$,QUAD=0,ALIGN=8,ACCESS=0x2C,SORT=73 .export $UNWIND_END $UNWIND_END .space $TEXT$ .subspa $FIRST$ .import start_parisc,code .import init_task_union,data .import fault_vector,code .import $global$ .export stext .export _stext,data ; Kernel want it this way! .export $START$,entry $START$ _stext stext .proc .callinfo copy %r0,%dp ; Debug ldil L%$global$,%dp ; Initialize the global ldo R%$global$(%dp),%dp ; data pointer (%dp) ldil L%TASK_SZ_ALGN,%r13 ldo R%TASK_SZ_ALGN(%r13),%r13 ldil L%PA(init_task_union+TASK_SZ_ALGN),%sp ldo R%PA(init_task_union+TASK_SZ_ALGN)(%sp),%sp copy %sp,%r12 ; Debug /* * There are 2 possible methods, how vmlinux was started: * * 1. It was started by our own ipl-bootloader: * %arg0=Kernel_MemFreeStart ( >= offset(_bss_start)) [not used!] * %arg1=ptr to the command line * %arg3(=%r23) holds HALF(!) of the size of the BSS-Segment * * 2. It was started by the hpux-bootloader: * %arg0 should then be lower than offset(_bss_start) * %arg1= ????? [not used!] * %arg3(=%r23) holds HALF(!) of the size of the BSS-Segment */ ldil L%_bss_start-0xc0000000,%r10 ldo R%_bss_start-0xc0000000(%r10),%r10 ; _bss_start comclr,<< %r10,%arg0,%r0 ; is %arg0 < offset _bss_start ?? copy %r0,%arg1 sh1add %arg3,%r10,%arg0 ; _bss_start + 2*(bss_size) depi 3,1,2, %arg0 ; 0xC0000000 + %arg0 /* Why are we setting up the BTLB? */ /* setup the BTLB. XXX: This assumes a unified BTLB */ ldo 128(%sp),%sp stw %arg0, -128(%sp) stw %arg1, -124(%sp) stw %arg2, -120(%sp) stw %arg3, -116(%sp) /* What are we doing here? */ ldo 0x388(%r0), %r1 ; What is the significance of 0x388? ; 0x388 (Page C-3) Start of MEM_PDC[32-63] ldwax %r0(%r1), %r1 ; ldwax does not exist in PA-RISC 2.0?? ; Do we need this statement?? ldo 18(%r0), %arg0 ; (Page C-4) MEM_PF_LEN (Checksum for MEM_POW_FAIL) ldo 1(%r0), %arg1 ; (Page C-4) MEM_POW_FAIL ldil L%0xc0000, %arg3 ; What this significance of this statement? ldo 0(%r0), %arg2 ; (Page C-4) 0 ldil L%0x00000000, %r22 ; Start of PAGE0 Data format (C-3)? stw %r22, -52(%sp) ldo 4096(0), %r22 ; What is the significance of 0x4096? stw %r22, -56(%sp) ; End of the PAGE0 Data format (C-3)? ldil L%0x03000000, %r22 ; What is the significance of 0x03000000? stw %r22, -60(%sp) ldo 0(%r0), %r22 ; We already stored 0 once ... Why again? stw %r22, -64(%sp) ldil L%PA(.+12),%r2 ; Not sure what this is doing ..... bv %r0(%r1) ; %r1 is set by ldil ... ldo R%PA(.+4)(%r2), %r2 ; No clue about this either ... (.+4) -> pc-relative /* Restore the origional values of %arg0 - %arg3 from the stack */ ldw -128(%sp), %arg0 ldw -124(%sp), %arg1 ldw -120(%sp), %arg2 ldw -116(%sp), %arg3 ldo -128(%sp), %sp /* Load the fault vector into %r10 */ ldil L%PA(fault_vector), %r10 ldo R%PA(fault_vector)(%r10), %r10 /* Move the fault vector into %iva (%cr14) */ mtctl %r10, %iva /* Store the following value 0xF(%sp{2..31}) depi 3, 1, 2, %sp /* Store this value to a temporary control register .... mtctl %r0, %cr30 mtsm %r0 ; Disable (most) interruptions /* kernel PSW: * - no interruptions except for HPMC and TOC (which are handled by PDC) * - Q bit set (IODC / PDC interruptions) * - big-endian * - virtually mapped */ #define KERNEL_PSW 0x4000a /* Set the C, Q, and D bits */ ldil L%KERNEL_PSW,%r10 ldo R%KERNEL_PSW(%r10),%r10 mtctl %r10,%ipsw mtctl %r0,%cr17 ; Clear two-level IIA Space Queue mtctl %r0,%cr17 ; effectively setting kernel space. ldil L%start_parisc,%r10 ldo R%start_parisc(%r10),%r10 mtctl %r10,%cr18 ldo 4(%r10),%r10 mtctl %r10,%cr18 mtctl %arg0, %cr0 rfi nop .procend .space $PRIVATE$ .subspa $GLOBAL$ .export $global$,data .export _data_start,data $global$ _data_start .word 0 /* offset(_bss_start) is the start of the $BSS-segment in vmlinux */ .space $PRIVATE$ .subspa $BSS$,QUAD=1,ALIGN=8,ACCESS=31,ZERO,SORT=82 .export _bss_start,data _bss_start ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [parisc-linux] Boot messages from C3000 console 1999-10-22 15:15 ` Helge Deller 1999-10-22 17:32 ` Frank Rowand @ 1999-10-22 22:16 ` Philipp Rumpf 1 sibling, 0 replies; 17+ messages in thread From: Philipp Rumpf @ 1999-10-22 22:16 UTC (permalink / raw) To: Helge Deller; +Cc: parisc-linux, Alex deVries, frowand, Paul Bame > Yes, we all know that the boot-loader really needs a complete clean-up, and as > it looks like I´m the maintainer of the bootloader. This isn't bootloader code though. ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [parisc-linux] Boot messages from C3000 console 1999-10-22 2:33 ` Alex deVries 1999-10-22 15:15 ` Helge Deller @ 1999-10-22 16:06 ` Grant Grundler 1999-10-24 3:44 ` [parisc-linux] Trying to boot on an N-Class Justin Hamilton 1 sibling, 1 reply; 17+ messages in thread From: Grant Grundler @ 1999-10-22 16:06 UTC (permalink / raw) To: Alex deVries; +Cc: parisc-linux Alex deVries wrote: ... > If the code in head.S is a bit rough, remember that it was just about the > first PA-RISC assembler that Helge or Philipp had ever written, so do keep > that in mind. Also, at the start of the project, there was a very > conscious effort to only be concerned with 1.1 code. It doesn't surprise > me in the least that it's not 2.0 compliant. > > I agree that the code is unreadable though; I've simply passed it off on > not being able to understand parisc assembler well enough. Alex, I think you are walking around Frank's point: It doesn't matter which language the code is written in. The code should be readable by a wide audience. (Understanding will still be limited to a subset) (Corallary: Because it's assembler, comments and #define's are required for clarity and there were none.) > We'd all appreciate it if you could commit appropriate changes to make the > code clearer. That's what I suggested earlier to him. My sense is the "Open Source Way" (similar to the "HP Way") is to do, not to complain. [ soapbox on ] I agree with Frank's gripe too...IMHO, it would be really bad thing for parisc-linux if he not to contribute. My point is contributors should remember out of 6 billion other people on the planet, a few capable ones will choose to look at the code because they want to add functionality or fix "bugs". And they can change their mind after the first look. And worse would be if only-slightly-less-capable folks contribute stuff which breaks various platforms (we'll get there). And even with well commented, supportable code, it could take a while to sort out which code is "broken" and which platforms it's needed on. I would prefer if someone like Frank just did it right the first time around...but if I can't have that I'd at least like him to help look at problems in the successive passes. [ soapbox off ] grant Grant Grundler Communications Infrastructure Computer Operations +1.408.447.7253 ^ permalink raw reply [flat|nested] 17+ messages in thread
* [parisc-linux] Trying to boot on an N-Class 1999-10-22 16:06 ` Grant Grundler @ 1999-10-24 3:44 ` Justin Hamilton 1999-10-24 5:22 ` Grant Grundler 1999-10-24 8:43 ` Philipp Rumpf 0 siblings, 2 replies; 17+ messages in thread From: Justin Hamilton @ 1999-10-24 3:44 UTC (permalink / raw) To: parisc-linux Here's what I get when trying to boot the kernel on an N-Class: Firmware Version 39.25 Duplex Console IO Dependent Code (IODC) revision 1 ---------------------------------------------------------------------------- -- (c) Copyright 1995-1998, Hewlett-Packard Company, All rights reserved ---------------------------------------------------------------------------- -- Processor Speed State CoProcessor State CacheSize Number State Inst Data --------- -------- --------------------- ----------------- ---------- -- 1 360 MHz Active Functional 512KB 1 MB 3 360 MHz Idle Functional 512KB 1 MB Central Bus Speed (in MHz) : 120 Available Memory : 2097152 KB Good Memory Required : 140844 KB Primary boot path: 1/10/0/0.8 Alternate boot path: 0/0/2/1.6 Console path: 0/0/4/0.0 Keyboard path: 0/0/4/0.0 Processor is booting from first available device. To discontinue, press any key within 10 seconds. Boot terminated. Main Menu: Enter command or menu > bo 1/10/0/0.8.1 Interact with IPL (Y, N, or Cancel)?> n Booting... Boot IO Dependent Code (IODC) revision 1 HARD Booted. ---------------------------------------------------------------------------- -- PARISC/Linux Bootstrap Version 0.6 (non-interactive) By Helge Deller & Jason Eckhardt Built Wed Oct 20 04:01:37 EDT 1999 by chris@rum Reading parameters...done. Loading PA-RISC/Linux Kernel... No ramdisks available. SOM-Kernel: aux_header_location: 00000080 som : 00200080 exec_dfile: 000B4000 exec_dsize: 0007F000 exec_dmem : C008A000 exec_tfile: 0003A000 exec_tsize: 00079008 exec_tmem : C0010000 Code at 0x00010000, size=0x00079008 Data at 0x0008A000, size=0x0007F000 BSS at 0x00109000. Transferring control to kernel. (At entry point 0x00010000) And this is where it sits. Is this kind of info useful to anyone? Am I expecting too much at this stage in development? Justin Hamilton Unix Systems Engineer. ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [parisc-linux] Trying to boot on an N-Class 1999-10-24 3:44 ` [parisc-linux] Trying to boot on an N-Class Justin Hamilton @ 1999-10-24 5:22 ` Grant Grundler 1999-10-24 8:43 ` Philipp Rumpf 1 sibling, 0 replies; 17+ messages in thread From: Grant Grundler @ 1999-10-24 5:22 UTC (permalink / raw) To: JHamilton; +Cc: parisc-linux "Justin Hamilton" wrote: > Here's what I get when trying to boot the kernel on an N-Class: ... > And this is where it sits. > > Is this kind of info useful to anyone? Not to me. (yet). But I have access to N-class machines. > Am I expecting too much at this stage in development? Definitely. Firmware on N-class is *quite* different from the of two flavors of PDC we have the current code talking to. And none of the CEC (Core Electronics Complex - CPU, Mem, I/O bus adapters) in an N-class are supported by the code in CVS today. We are quite a ways off from implementing everything N-class needs. The docs for that box are not (and probably won't be) published for quite a while. The next step in that direction is probably to write PA2.0 processor support and support for the "ccio" bus adapter. Then try to get this working on a C200 through C360. I know some folks are working on the processor support but docs for "ccio" haven't been released. (Or have they?) thanks though, grant Grant Grundler Unix Developement Lab +1.408.447.7253 ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [parisc-linux] Trying to boot on an N-Class 1999-10-24 3:44 ` [parisc-linux] Trying to boot on an N-Class Justin Hamilton 1999-10-24 5:22 ` Grant Grundler @ 1999-10-24 8:43 ` Philipp Rumpf 1 sibling, 0 replies; 17+ messages in thread From: Philipp Rumpf @ 1999-10-24 8:43 UTC (permalink / raw) To: Justin Hamilton; +Cc: parisc-linux > exec_tfile: 0003A000 > exec_tsize: 00079008 > exec_tmem : C0010000 > Code at 0x00010000, size=0x00079008 > Data at 0x0008A000, size=0x0007F000 > BSS at 0x00109000. > > Transferring control to kernel. (At entry point 0x00010000) > > And this is where it sits. This looks like it is the same PA 2.0 PDC problem we see on the C class. Could you try againg after we fixed it ? (Don't expect the kernel to do too much with your hardware in the near future, but at least you might be able to get to a shell prompt). Philipp Rumpf ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [parisc-linux] Boot messages from C3000 console 1999-10-22 0:57 ` Frank Rowand 1999-10-22 2:23 ` Jason Eckhardt 1999-10-22 2:33 ` Alex deVries @ 1999-10-22 22:14 ` Philipp Rumpf 2 siblings, 0 replies; 17+ messages in thread From: Philipp Rumpf @ 1999-10-22 22:14 UTC (permalink / raw) To: frowand; +Cc: Paul Bame, parisc-linux > I'm cutting this from another discussion, don't feel like re-typing it. > The file we are talking about (giving line number references) is head.S. > We calculated the the offending offset was at label "blargh" plus a bit. > > The following discussion talks about how we get to the code section > where the HPMC occurs. Earlier, we talked about hard-coding magic > addresses, which are machine specific (that's in the macro "debug", > which is what actually caused the HPMC -- line 162). The debug macro should indeed have been empty (and is, now). Sorry for that. > Then I get a little incensed at the coding style here.... (editing out other > people's responses to my tirade) > > > > This is a **bogus** way to write code. Comments should be required!!!!!! > Is there any way to encourage that? there is a comment on top of the section of code in question /* setup the BTLB. XXX: This assumes a unified BTLB */" which I agree isn't as verbose as it could be but it seems not to hard to me to get to "we do a PDC_BLOCK_TLB call now" from "setup the BTLB". > > But I'm *extremely* serious about that. This code is unmaintainable in it's > current form. It's going to be miserable adding 2.0 support to something > like that. indeed it is, which is one of the reasons I proposed to wrap the virtually-mapped kernel in a physically-mapped som binary which could do these pdc calls in C (and would remove the need for most of head.S) > > it's important to anyone who would like to pick up head.S and be able to > read it. To decode the procedure call I had to know where to find > documentation for page zero, know what PDCE_PROC is, figure out what PDC > procedure was being called. > > For me, it was about 45 seconds instead of the two seconds it would take to > read a comment. > > For someone who doesn't have my background, it could be hours. I cannot exactly remember whether this was based on gcc-generated code, but I am pretty sure it was, which might explain why it doesn't use macros (of course, it would have been a good idea to include the C code as comment in this case). Philipp Rumpf ^ permalink raw reply [flat|nested] 17+ messages in thread
end of thread, other threads:[~1999-10-24 8:42 UTC | newest] Thread overview: 17+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 1999-10-21 19:57 [parisc-linux] Boot messages from C3000 console Paul Bame 1999-10-21 21:24 ` Stan Sieler 1999-10-21 22:05 ` Frank Rowand 1999-10-21 22:51 ` Grant Grundler 1999-10-22 0:57 ` Frank Rowand 1999-10-22 2:23 ` Jason Eckhardt 1999-10-22 2:33 ` Alex deVries 1999-10-22 15:15 ` Helge Deller 1999-10-22 17:32 ` Frank Rowand 1999-10-22 23:42 ` Philipp Rumpf 1999-10-23 3:46 ` Ryan Bradetich 1999-10-22 22:16 ` Philipp Rumpf 1999-10-22 16:06 ` Grant Grundler 1999-10-24 3:44 ` [parisc-linux] Trying to boot on an N-Class Justin Hamilton 1999-10-24 5:22 ` Grant Grundler 1999-10-24 8:43 ` Philipp Rumpf 1999-10-22 22:14 ` [parisc-linux] Boot messages from C3000 console Philipp Rumpf
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.