* [parisc-linux] YA pb with PCI IDE (my merge 2.4.21-pre1)
@ 2002-12-16 17:06 jsoe0708
2002-12-16 18:04 ` [parisc-linux] " Alan Cox
0 siblings, 1 reply; 13+ messages in thread
From: jsoe0708 @ 2002-12-16 17:06 UTC (permalink / raw)
To: Alan Cox; +Cc: parisc-linux
[-- Attachment #1: Type: text/plain, Size: 4441 bytes --]
Hi Alan,
Worried about ext3 pb, I try to merge parisc kernel 2.4.20-pa14 with 2.4.21-pre1.
This merge seems to works fine on a b180l+ (without pci devices).
But still boot twice (??) and crash on a b2k with an ide cdrom.
So with k-2.4.20-pa14 here is the ide cdrom identification:
...
Uniform Multi-Platform E-IDE driver Revision: 6.31
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
NS87415: IDE controller on PCI bus 00 dev 70
NS87415: chipset revision 3
NS87415: not 100% native mode: will probe irqs later
ide0: BM-DMA at 0x0900-0x0907, BIOS settings: hda:pio, hdb:pio
ide1: BM-DMA at 0x0908-0x090f, BIOS settings: hdc:pio, hdd:pio
hda: LTN485S, ATAPI CD/DVD-ROM drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 103
hda: ATAPI 48X CD-ROM drive, 120kB Cache
Uniform CD-ROM driver Revision: 3.12
...
And now with k-2.4.21-pre1-pa-alpha:
Linux version 2.4.21-pre1-pa14 (root@palx2000) (gcc version 3.0.4) #1 Mon
Dec 16 15:05:24 CET 2002
FP[0] enabled: Rev 1 Model 16
The 32-bit Kernel has started...
...
Uniform Multi-Platform E-IDE driver Revision: 7.00beta-2.4
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
NS87415: IDE controller at PCI slot 00:0e.0
NS87415: chipset revision 3
NS87415: not 100% native mode: will probe irqs later
ide0: BM-DMA at 0x0900-0x0907, BIOS settings: hda:pio, hdb:pio
ide1: BM-DMA at 0x0908-0x090f, BIOS settings: hdc:pio, hdd:pio
Linux version 2.4.21-pre1-pa14 (root@palx2000) (gcc version 3.0.4) #1 Mon
Dec 16 15:05:24 CET 2002
FP[0] enabled: Rev 1 Model 16
The 32-bit Kernel has started...
Determining PDC firmware type: System Map.
model 00005d00 00000481 00000000 00000002 77e93910 100000f0 00000008 000000b2
...
Just have to explain that after previous 'hdc:pio, hdd:pio' it wait less
than a second then reboot and finaly crash as follow:
...
Uniform Multi-Platform E-IDE driver Revision: 7.00beta-2.4
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
NS87415: IDE controller at PCI slot 00:0e.0
NS87415: chipset revision 3
NS87415: not 100% native mode: will probe irqs later
ide0: BM-DMA at 0x0900-0x0907, BIOS settings: hda:pio, hdb:pio
ide1: BM-DMA at 0x0908-0x090f, BIOS settings: hdc:pio, hdd:pio
Stack Dump:
1008c800: 04100800 1021e454 1008c780 00061a80
1008c7f0: 000000df 1033a010 00000000 00c80000
1008c7e0: 000000a0 000f4240 17d78400 00000003
1008c7d0: 891511dd 00022520 f0000174 f000017c
1008c7c0: 1036e468 f0400004 00000000 ffffffff
1008c7b0: 00000000 102159fc 1034a810 1034a810
Kernel addresses on the stack:
[<1021e454>] [<102159fc>] [<102141d0>] [<102141e4>]
[<101053a4>] [<10214acc>] [<10213a1c>] [<1021560c>]
[<101003d4>] [<10108c4c>] [<10108cf4>] [<10163f64>]
[<1011dbf4>] [<10164528>] [<1011df6c>] [<101647bc>]
[<101003c4>] [<1011de40>] [<10121714>]
High Priority Machine Check (HPMC): Code=1 regs=1033d080 (Addr=00000000)
YZrvWESTHLNXBCVMcbcbcbcbOGFRQPDI
PSW: 00000000000001001111110100001101 Not tainted
r00-03 00000000 1034a010 10110848 000000ff
r04-07 1036e468 1036e3e0 103555c0 000000ec
r08-11 0000000f 1034a810 1034a810 1034d810
r12-15 00000000 ffffffff 00000000 f0400004
r16-19 f00008c4 f000017c f0000174 fee00000
r20-23 0000000f 100b4160 10111bd0 000f4240
r24-27 00000e06 fee00e06 100b4160 1033a010
r28-31 000000df 00061a80 1008c800 10110848
sr0-3 00000000 00000000 00000000 00000000
sr4-7 00000000 00000000 00000000 00000000
IASQ: 00000000 00000000 IAOQ: 10111be0 10111be4
IIR: 0f20001c ISR: a607fffb IOR: 80200e06
CPU: 0 CR30: 1008c000 CR31: 103f0000
ORIG_R28: 00000000
Well, I can try with this dump to use Thibaut 'dump_analyser.sh' but I doubt
to obtain relevant info because of the two successive kernel launch?
May be can you advise me on a start point of investigation: it is the first
time I met this kind of two successive boot?
Thanks in advance for your attention,
Joel
PS1: I join a full log including a normal 2.4.20-pa14 boot, the abnormal
2.4.21-pr1 crash and finaly the pim info.
PS2: it is a 32bits kernel build on a 'unstable' debian distro updated this
morning with gcc-3.0.4
********************************************************************************
Controlez mieux votre consommation Internet...surfez Tiscali Complete...http://tiscali.complete.be
[-- Attachment #2: B2kBoot.doc --]
[-- Type: application/msword, Size: 28514 bytes --]
^ permalink raw reply [flat|nested] 13+ messages in thread* [parisc-linux] Re: YA pb with PCI IDE (my merge 2.4.21-pre1) 2002-12-16 17:06 [parisc-linux] YA pb with PCI IDE (my merge 2.4.21-pre1) jsoe0708 @ 2002-12-16 18:04 ` Alan Cox 2002-12-16 17:29 ` Matthew Wilcox ` (2 more replies) 0 siblings, 3 replies; 13+ messages in thread From: Alan Cox @ 2002-12-16 18:04 UTC (permalink / raw) To: jsoe0708; +Cc: parisc-linux On Mon, 2002-12-16 at 17:06, jsoe0708@tiscali.be wrote: > Hi Alan, > > Worried about ext3 pb, I try to merge parisc kernel 2.4.20-pa14 with 2.4.21-pre1. > This merge seems to works fine on a b180l+ (without pci devices). > But still boot twice (??) and crash on a b2k with an ide cdrom. I've sent the PCI fixup patch to linux-kernel. Depending upon how the PA-RISC system interfaces to the IDE controller you may also need platform specific fixups or to drop the chip into Native mode. Someone at HP can probably answer that bit ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [parisc-linux] Re: YA pb with PCI IDE (my merge 2.4.21-pre1) 2002-12-16 18:04 ` [parisc-linux] " Alan Cox @ 2002-12-16 17:29 ` Matthew Wilcox 2002-12-16 18:20 ` Alan Cox 2002-12-17 8:22 ` jsoe0708 2002-12-16 17:48 ` jsoe0708 2002-12-17 7:22 ` [parisc-linux] Dropping ide controler in 'Native' mode? jsoe0708 2 siblings, 2 replies; 13+ messages in thread From: Matthew Wilcox @ 2002-12-16 17:29 UTC (permalink / raw) To: Alan Cox; +Cc: jsoe0708, parisc-linux On Mon, Dec 16, 2002 at 06:04:26PM +0000, Alan Cox wrote: > On Mon, 2002-12-16 at 17:06, jsoe0708@tiscali.be wrote: > > Hi Alan, > > > > Worried about ext3 pb, I try to merge parisc kernel 2.4.20-pa14 with 2.4.21-pre1. > > This merge seems to works fine on a b180l+ (without pci devices). > > But still boot twice (??) and crash on a b2k with an ide cdrom. > > I've sent the PCI fixup patch to linux-kernel. Depending upon how the > PA-RISC system interfaces to the IDE controller you may also need > platform specific fixups or to drop the chip into Native mode. You mean the "IDE but no disks" patch: http://www.uwsg.iu.edu/hypermail/linux/kernel/0212.2/0105.html ? If so, that might be relevant, but have davem's concerns about this IDE code being broken on big-endian machines been addressed? -- "It's not Hollywood. War is real, war is primarily not about defeat or victory, it is about death. I've seen thousands and thousands of dead bodies. Do you think I want to have an academic debate on this subject?" -- Robert Fisk ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [parisc-linux] Re: YA pb with PCI IDE (my merge 2.4.21-pre1) 2002-12-16 17:29 ` Matthew Wilcox @ 2002-12-16 18:20 ` Alan Cox 2002-12-16 17:59 ` jsoe0708 2002-12-17 8:22 ` jsoe0708 1 sibling, 1 reply; 13+ messages in thread From: Alan Cox @ 2002-12-16 18:20 UTC (permalink / raw) To: Matthew Wilcox; +Cc: jsoe0708, parisc-linux On Mon, 2002-12-16 at 17:29, Matthew Wilcox wrote: > You mean the "IDE but no disks" patch: > http://www.uwsg.iu.edu/hypermail/linux/kernel/0212.2/0105.html ? > If so, that might be relevant, but have davem's concerns about this IDE > code being broken on big-endian machines been addressed? Platform dependant. The pre1 code fails if: You use the mmio ops not the pio ops on a big endian box (except PPC) Your pci_resource_foo() returns a value with the top 32bit used Both of those are fixed in Marcelo's tree, although platforms may need to define some functions. Dave has the updated code running on sparc64 ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [parisc-linux] Re: YA pb with PCI IDE (my merge 2.4.21-pre1) 2002-12-16 18:20 ` Alan Cox @ 2002-12-16 17:59 ` jsoe0708 2002-12-16 18:01 ` Matthew Wilcox 0 siblings, 1 reply; 13+ messages in thread From: jsoe0708 @ 2002-12-16 17:59 UTC (permalink / raw) To: Alan Cox, Matthew Wilcox; +Cc: parisc-linux [-- Attachment #1: Type: text/plain, Size: 1027 bytes --] >On Mon, 2002-12-16 at 17:29, Matthew Wilcox wrote: >> You mean the "IDE but no disks" patch: >> http://www.uwsg.iu.edu/hypermail/linux/kernel/0212.2/0105.html ? >> If so, that might be relevant, but have davem's concerns about this IDE >> code being broken on big-endian machines been addressed? > >Platform dependant. > >The pre1 code fails if: > You use the mmio ops not the pio ops on a big endian box (except PPC) > Your pci_resource_foo() returns a value with the top 32bit used > >Both of those are fixed in Marcelo's tree, although platforms may need >to define some functions. Dave has the updated code running on sparc64 > I do well have to define new function in system.h system_irqsave.h as per attached doc (please consider revert) and based on mips implementation. Is it what you spoke about? Joel ******************************************************************************** Controlez mieux votre consommation Internet...surfez Tiscali Complete...http://tiscali.complete.be [-- Attachment #2: add_function.diff.doc --] [-- Type: application/msword, Size: 5885 bytes --] ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [parisc-linux] Re: YA pb with PCI IDE (my merge 2.4.21-pre1) 2002-12-16 17:59 ` jsoe0708 @ 2002-12-16 18:01 ` Matthew Wilcox 2002-12-16 18:13 ` jsoe0708 2002-12-16 18:19 ` jsoe0708 0 siblings, 2 replies; 13+ messages in thread From: Matthew Wilcox @ 2002-12-16 18:01 UTC (permalink / raw) To: jsoe0708; +Cc: Alan Cox, Matthew Wilcox, parisc-linux why are you sending word documents? i'm not reading that shit. -- "It's not Hollywood. War is real, war is primarily not about defeat or victory, it is about death. I've seen thousands and thousands of dead bodies. Do you think I want to have an academic debate on this subject?" -- Robert Fisk ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [parisc-linux] Re: YA pb with PCI IDE (my merge 2.4.21-pre1) 2002-12-16 18:01 ` Matthew Wilcox @ 2002-12-16 18:13 ` jsoe0708 2002-12-16 18:16 ` Matthew Wilcox 2002-12-16 18:19 ` jsoe0708 1 sibling, 1 reply; 13+ messages in thread From: jsoe0708 @ 2002-12-16 18:13 UTC (permalink / raw) To: Matthew Wilcox; +Cc: Alan Cox, Matthew Wilcox, parisc-linux > >why are you sending word documents? i'm not reading that shit. > Sorry for confusion, it just contents ascii text. Trust me there is no re= lation with world, just an extension (a professional habit to make internal exch= ange more confortable for the one not familiar with unix). Tell me what is your prefered extension, I will take care to adopt it. Joel *************************************************************************= ******* Controlez mieux votre consommation Internet...surfez Tiscali Complete...h= ttp://tiscali.complete.be ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [parisc-linux] Re: YA pb with PCI IDE (my merge 2.4.21-pre1) 2002-12-16 18:13 ` jsoe0708 @ 2002-12-16 18:16 ` Matthew Wilcox 2002-12-16 18:24 ` jsoe0708 0 siblings, 1 reply; 13+ messages in thread From: Matthew Wilcox @ 2002-12-16 18:16 UTC (permalink / raw) To: jsoe0708; +Cc: Matthew Wilcox, Alan Cox, parisc-linux On Mon, Dec 16, 2002 at 07:13:53PM +0100, jsoe0708@tiscali.be wrote: > > > >why are you sending word documents? i'm not reading that shit. > > > Sorry for confusion, it just contents ascii text. Trust me there is no relation > with world, just an extension (a professional habit to make internal exchange > more confortable for the one not familiar with unix). something's very screwed up then, probably your mail server: [-- Attachment #2: add_function.diff.doc --] [-- Type: application/msword, Encoding: base64, Size: 7.8K --] [-- application/msword is unsupported (use 'v' to view this part) --] is what i see. > Tell me what is your prefered extension, I will take care to adopt it. i prefer it inlined, not as an attachment. it's easier to reply to. -- "It's not Hollywood. War is real, war is primarily not about defeat or victory, it is about death. I've seen thousands and thousands of dead bodies. Do you think I want to have an academic debate on this subject?" -- Robert Fisk ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [parisc-linux] Re: YA pb with PCI IDE (my merge 2.4.21-pre1) 2002-12-16 18:16 ` Matthew Wilcox @ 2002-12-16 18:24 ` jsoe0708 0 siblings, 0 replies; 13+ messages in thread From: jsoe0708 @ 2002-12-16 18:24 UTC (permalink / raw) To: Matthew Wilcox; +Cc: Matthew Wilcox, Alan Cox, parisc-linux >On Mon, Dec 16, 2002 at 07:13:53PM +0100, jsoe0708@tiscali.be wrote: >> > >> >why are you sending word documents? i'm not reading that shit. >> > >> Sorry for confusion, it just contents ascii text. Trust me there is no= >relation >> with world, just an extension (a professional habit to make internal exchange >> more confortable for the one not familiar with unix). > >something's very screwed up then, probably your mail server: > >[-- Attachment #2: add_function.diff.doc --] >[-- Type: application/msword, Encoding: base64, Size: 7.8K --] > >[-- application/msword is unsupported (use 'v' to view this part) --] > >is what i see. > That should be the webmail interface (I do not like it but have no choise= behind a fw not allowing pop.mail connection) >> Tell me what is your prefered extension, I will take care to adopt it.= > >i prefer it inlined, not as an attachment. it's easier to reply to. > That is ok for me: diff -NaurwbBX /Develop/Kernel-Linux/dontdiff linux-2.4.21-pre1-pa14-alph= a/include/asm-parisc/ide.h linux-2.4.21-pre1-pa14-beta/include/asm-parisc/ide.h --- linux-2.4.21-pre1-pa14-alpha/include/asm-parisc/ide.h 2002-12-13 14:0= 0:09.000000000 +0100 +++ linux-2.4.21-pre1-pa14-beta/include/asm-parisc/ide.h 2002-12-15 15:34= :01.000000000 +0100 @@ -20,6 +20,8 @@ #define MAX_HWIFS 2 #endif +#define ide__sti() __sti() + static __inline__ int ide_default_irq(ide_ioreg_t base) { switch (base) { @@ -78,13 +80,116 @@ #endif /* CONFIG_BLK_DEV_IDEPCI */ } -/* +typedef union { + unsigned all : 8; /* all of the bits together */ + struct { + unsigned bit7 : 1; /* always 1 */ + unsigned lba : 1; /* using LBA instead of CHS */ + unsigned bit5 : 1; /* always 1 */ + unsigned unit : 1; /* drive select number, 0 or 1 */ + unsigned head : 4; /* always zeros here */ + } b; +} select_t; + +typedef union { + unsigned all : 8; /* all of the bits together */ + struct { + unsigned bit0 : 1; + unsigned nIEN : 1; /* device INTRQ to host */ + unsigned SRST : 1; /* host soft reset bit */ + unsigned bit3 : 1; /* ATA-2 thingy */ + unsigned reserved456 : 3; + unsigned HOB : 1; /* 48-bit address ordering */ + } b; +} control_t; + #define ide_request_irq(irq,hand,flg,dev,id) request_irq((irq),(hand),(f= lg),(dev),(id)) #define ide_free_irq(irq,dev_id) free_irq((irq), (dev_id)) #define ide_check_region(from,extent) check_region((from), (extent)) #define ide_request_region(from,extent,name) request_region((from), (ext= ent), (name)) #define ide_release_region(from,extent) release_region((from), (extent)= ) + +#define T_CHAR (0x0000) /* char: don't touch */ +#define T_SHORT (0x4000) /* short: 12 -> 21 */ +#define T_INT (0x8000) /* int: 1234 -> 4321 */ +#define T_TEXT (0xc000) /* text: 12 -> 21 */ + +#define T_MASK_TYPE (0xc000) +#define T_MASK_COUNT (0x3fff) + +#define D_CHAR(cnt) (T_CHAR | (cnt)) +#define D_SHORT(cnt) (T_SHORT | (cnt)) +#define D_INT(cnt) (T_INT | (cnt)) +#define D_TEXT(cnt) (T_TEXT | (cnt)) + +static u_short driveid_types[] =3D { + D_SHORT(10), /* config - vendor2 */ + D_TEXT(20), /* serial_no */ + D_SHORT(3), /* buf_type - ecc_bytes */ + D_TEXT(48), /* fw_rev - model */ + D_CHAR(2), /* max_multsect - vendor3 */ + D_SHORT(1), /* dword_io */ + D_CHAR(2), /* vendor4 - capability */ + D_SHORT(1), /* reserved50 */ + D_CHAR(4), /* vendor5 - tDMA */ + D_SHORT(4), /* field_valid - cur_sectors */ + D_INT(1), /* cur_capacity */ + D_CHAR(2), /* multsect - multsect_valid */ + D_INT(1), /* lba_capacity */ + D_SHORT(194) /* dma_1word - reservedyy */ +}; + +#define num_driveid_types (sizeof(driveid_types)/sizeof(*driveid_t= ypes)) + +static __inline__ void ide_fix_driveid(struct hd_driveid *id) +{ + u_char *p =3D (u_char *)id; + int i, j, cnt; + u_char t; + + for (i =3D 0; i < num_driveid_types; i++) { + cnt =3D driveid_types[i] & T_MASK_COUNT; + switch (driveid_types[i] & T_MASK_TYPE) { + case T_CHAR: + p +=3D cnt; + break; + case T_SHORT: + for (j =3D 0; j < cnt; j++) { + t =3D p[0]; + p[0] =3D p[1]; + p[1] =3D t; + p +=3D 2; + } + break; + case T_INT: + for (j =3D 0; j < cnt; j++) { + t =3D p[0]; + p[0] =3D p[3]; + p[3] =3D t; + t =3D p[1]; + p[1] =3D p[2]; + p[2] =3D t; + p +=3D 4; + } + break; + case T_TEXT: + for (j =3D 0; j < cnt; j +=3D 2) { + t =3D p[0]; + p[0] =3D p[1]; + p[1] =3D t; + p +=3D 2; + } + break; + }; + } +} + +/* + * The following are not needed for the non-m68k ports */ +#define ide_ack_intr(hwif) (1) +#define ide_release_lock(lock) do {} while (0) +#define ide_get_lock(lock, hdlr, data) do {} while (0) #endif /* __KERNEL__ */ diff -NaurwbBX /Develop/Kernel-Linux/dontdiff linux-2.4.21-pre1-pa14-alph= a/include/asm-parisc/system.h linux-2.4.21-pre1-pa14-beta/include/asm-parisc/system.h --- linux-2.4.21-pre1-pa14-alpha/include/asm-parisc/system.h 2002-12-13 13:58:36.000000000 +0100 +++ linux-2.4.21-pre1-pa14-beta/include/asm-parisc/system.h 2002-12-15 15= :34:01.000000000 +0100 @@ -66,8 +66,6 @@ #define sti() __global_sti() #define save_flags(x) ((x)=3D__global_save_flags()) #define restore_flags(x) __global_restore_flags(x) -#define save_and_cli(x) do { save_flags(x); cli(); } while(0); -#define save_and_sti(x) do { save_flags(x); sti(); } while(0); #else @@ -75,8 +73,6 @@ #define sti() __sti() #define save_flags(x) __save_flags(x) #define restore_flags(x) __restore_flags(x) -#define save_and_cli(x) __save_and_cli(x) -#define save_and_sti(x) __save_and_sti(x) #endif diff -NaurwbBX /Develop/Kernel-Linux/dontdiff linux-2.4.21-pre1-pa14-alph= a/include/asm-parisc/system_irqsave.h linux-2.4.21-pre1-pa14-beta/include/asm-parisc/system_irqsave.h --- linux-2.4.21-pre1-pa14-alpha/include/asm-parisc/system_irqsave.h 2002= -12-12 16:12:02.000000000 +0100 +++ linux-2.4.21-pre1-pa14-beta/include/asm-parisc/system_irqsave.h 2002-= 12-15 15:34:01.000000000 +0100 @@ -7,21 +7,10 @@ #define __cli() __asm__ __volatile__("rsm %0,%%r0\n" : : "i" (PSW_I) : "memory" ) #define __sti() __asm__ __volatile__("ssm %0,%%r0\n" : : "i" (PSW_I) : "memory" ) -#define __save_and_cli(x) do { __save_flags(x); __cli(); } while(0); -#define __save_and_sti(x) do { __save_flags(x); __sti(); } while(0); - -/* For spinlocks etc */ -#if 0 #define local_irq_save(x) \ __asm__ __volatile__("rsm %1,%0" : "=3Dr" (x) :"i" (PSW_I) : "memory" )= -#define local_irq_set(x) \ -# "Warning local_irq_set(x) is not yet defined" -#else -#define local_irq_save(x) __save_and_cli(x) -#define local_irq_set(x) __save_and_sti(x) -#endif - -#define local_irq_restore(x) __restore_flags(x) +#define local_irq_restore(x) \ + __asm__ __volatile__("mtsm %0" : : "r" (x) : "memory" ) #define local_irq_disable() __cli() #define local_irq_enable() __sti() Hope this is still readable, Joel *************************************************************************= ******* Controlez mieux votre consommation Internet...surfez Tiscali Complete...h= ttp://tiscali.complete.be ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [parisc-linux] Re: YA pb with PCI IDE (my merge 2.4.21-pre1) 2002-12-16 18:01 ` Matthew Wilcox 2002-12-16 18:13 ` jsoe0708 @ 2002-12-16 18:19 ` jsoe0708 1 sibling, 0 replies; 13+ messages in thread From: jsoe0708 @ 2002-12-16 18:19 UTC (permalink / raw) To: Matthew Wilcox; +Cc: Alan Cox, Matthew Wilcox, parisc-linux [-- Attachment #1: Type: text/plain, Size: 343 bytes --] > >why are you sending word documents? i'm not reading that shit. > Please accept my appologies for confusion. Here is the same info :-) Joel ******************************************************************************** Controlez mieux votre consommation Internet...surfez Tiscali Complete...http://tiscali.complete.be [-- Attachment #2: add_function.diff --] [-- Type: application/octet-stream, Size: 5885 bytes --] diff -NaurwbBX /Develop/Kernel-Linux/dontdiff linux-2.4.21-pre1-pa14-alpha/include/asm-parisc/ide.h linux-2.4.21-pre1-pa14-beta/include/asm-parisc/ide.h --- linux-2.4.21-pre1-pa14-alpha/include/asm-parisc/ide.h 2002-12-13 14:00:09.000000000 +0100 +++ linux-2.4.21-pre1-pa14-beta/include/asm-parisc/ide.h 2002-12-15 15:34:01.000000000 +0100 @@ -20,6 +20,8 @@ #define MAX_HWIFS 2 #endif +#define ide__sti() __sti() + static __inline__ int ide_default_irq(ide_ioreg_t base) { switch (base) { @@ -78,13 +80,116 @@ #endif /* CONFIG_BLK_DEV_IDEPCI */ } -/* +typedef union { + unsigned all : 8; /* all of the bits together */ + struct { + unsigned bit7 : 1; /* always 1 */ + unsigned lba : 1; /* using LBA instead of CHS */ + unsigned bit5 : 1; /* always 1 */ + unsigned unit : 1; /* drive select number, 0 or 1 */ + unsigned head : 4; /* always zeros here */ + } b; +} select_t; + +typedef union { + unsigned all : 8; /* all of the bits together */ + struct { + unsigned bit0 : 1; + unsigned nIEN : 1; /* device INTRQ to host */ + unsigned SRST : 1; /* host soft reset bit */ + unsigned bit3 : 1; /* ATA-2 thingy */ + unsigned reserved456 : 3; + unsigned HOB : 1; /* 48-bit address ordering */ + } b; +} control_t; + #define ide_request_irq(irq,hand,flg,dev,id) request_irq((irq),(hand),(flg),(dev),(id)) #define ide_free_irq(irq,dev_id) free_irq((irq), (dev_id)) #define ide_check_region(from,extent) check_region((from), (extent)) #define ide_request_region(from,extent,name) request_region((from), (extent), (name)) #define ide_release_region(from,extent) release_region((from), (extent)) + +#define T_CHAR (0x0000) /* char: don't touch */ +#define T_SHORT (0x4000) /* short: 12 -> 21 */ +#define T_INT (0x8000) /* int: 1234 -> 4321 */ +#define T_TEXT (0xc000) /* text: 12 -> 21 */ + +#define T_MASK_TYPE (0xc000) +#define T_MASK_COUNT (0x3fff) + +#define D_CHAR(cnt) (T_CHAR | (cnt)) +#define D_SHORT(cnt) (T_SHORT | (cnt)) +#define D_INT(cnt) (T_INT | (cnt)) +#define D_TEXT(cnt) (T_TEXT | (cnt)) + +static u_short driveid_types[] = { + D_SHORT(10), /* config - vendor2 */ + D_TEXT(20), /* serial_no */ + D_SHORT(3), /* buf_type - ecc_bytes */ + D_TEXT(48), /* fw_rev - model */ + D_CHAR(2), /* max_multsect - vendor3 */ + D_SHORT(1), /* dword_io */ + D_CHAR(2), /* vendor4 - capability */ + D_SHORT(1), /* reserved50 */ + D_CHAR(4), /* vendor5 - tDMA */ + D_SHORT(4), /* field_valid - cur_sectors */ + D_INT(1), /* cur_capacity */ + D_CHAR(2), /* multsect - multsect_valid */ + D_INT(1), /* lba_capacity */ + D_SHORT(194) /* dma_1word - reservedyy */ +}; + +#define num_driveid_types (sizeof(driveid_types)/sizeof(*driveid_types)) + +static __inline__ void ide_fix_driveid(struct hd_driveid *id) +{ + u_char *p = (u_char *)id; + int i, j, cnt; + u_char t; + + for (i = 0; i < num_driveid_types; i++) { + cnt = driveid_types[i] & T_MASK_COUNT; + switch (driveid_types[i] & T_MASK_TYPE) { + case T_CHAR: + p += cnt; + break; + case T_SHORT: + for (j = 0; j < cnt; j++) { + t = p[0]; + p[0] = p[1]; + p[1] = t; + p += 2; + } + break; + case T_INT: + for (j = 0; j < cnt; j++) { + t = p[0]; + p[0] = p[3]; + p[3] = t; + t = p[1]; + p[1] = p[2]; + p[2] = t; + p += 4; + } + break; + case T_TEXT: + for (j = 0; j < cnt; j += 2) { + t = p[0]; + p[0] = p[1]; + p[1] = t; + p += 2; + } + break; + }; + } +} + +/* + * The following are not needed for the non-m68k ports */ +#define ide_ack_intr(hwif) (1) +#define ide_release_lock(lock) do {} while (0) +#define ide_get_lock(lock, hdlr, data) do {} while (0) #endif /* __KERNEL__ */ diff -NaurwbBX /Develop/Kernel-Linux/dontdiff linux-2.4.21-pre1-pa14-alpha/include/asm-parisc/system.h linux-2.4.21-pre1-pa14-beta/include/asm-parisc/system.h --- linux-2.4.21-pre1-pa14-alpha/include/asm-parisc/system.h 2002-12-13 13:58:36.000000000 +0100 +++ linux-2.4.21-pre1-pa14-beta/include/asm-parisc/system.h 2002-12-15 15:34:01.000000000 +0100 @@ -66,8 +66,6 @@ #define sti() __global_sti() #define save_flags(x) ((x)=__global_save_flags()) #define restore_flags(x) __global_restore_flags(x) -#define save_and_cli(x) do { save_flags(x); cli(); } while(0); -#define save_and_sti(x) do { save_flags(x); sti(); } while(0); #else @@ -75,8 +73,6 @@ #define sti() __sti() #define save_flags(x) __save_flags(x) #define restore_flags(x) __restore_flags(x) -#define save_and_cli(x) __save_and_cli(x) -#define save_and_sti(x) __save_and_sti(x) #endif diff -NaurwbBX /Develop/Kernel-Linux/dontdiff linux-2.4.21-pre1-pa14-alpha/include/asm-parisc/system_irqsave.h linux-2.4.21-pre1-pa14-beta/include/asm-parisc/system_irqsave.h --- linux-2.4.21-pre1-pa14-alpha/include/asm-parisc/system_irqsave.h 2002-12-12 16:12:02.000000000 +0100 +++ linux-2.4.21-pre1-pa14-beta/include/asm-parisc/system_irqsave.h 2002-12-15 15:34:01.000000000 +0100 @@ -7,21 +7,10 @@ #define __cli() __asm__ __volatile__("rsm %0,%%r0\n" : : "i" (PSW_I) : "memory" ) #define __sti() __asm__ __volatile__("ssm %0,%%r0\n" : : "i" (PSW_I) : "memory" ) -#define __save_and_cli(x) do { __save_flags(x); __cli(); } while(0); -#define __save_and_sti(x) do { __save_flags(x); __sti(); } while(0); - -/* For spinlocks etc */ -#if 0 #define local_irq_save(x) \ __asm__ __volatile__("rsm %1,%0" : "=r" (x) :"i" (PSW_I) : "memory" ) -#define local_irq_set(x) \ -# "Warning local_irq_set(x) is not yet defined" -#else -#define local_irq_save(x) __save_and_cli(x) -#define local_irq_set(x) __save_and_sti(x) -#endif - -#define local_irq_restore(x) __restore_flags(x) +#define local_irq_restore(x) \ + __asm__ __volatile__("mtsm %0" : : "r" (x) : "memory" ) #define local_irq_disable() __cli() #define local_irq_enable() __sti() ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [parisc-linux] Re: YA pb with PCI IDE (my merge 2.4.21-pre1) 2002-12-16 17:29 ` Matthew Wilcox 2002-12-16 18:20 ` Alan Cox @ 2002-12-17 8:22 ` jsoe0708 1 sibling, 0 replies; 13+ messages in thread From: jsoe0708 @ 2002-12-17 8:22 UTC (permalink / raw) To: Matthew Wilcox, Alan Cox; +Cc: parisc-linux Hi Willy, > >You mean the "IDE but no disks" patch: >http://www.uwsg.iu.edu/hypermail/linux/kernel/0212.2/0105.html ? I apply it (by hand) and it works: "... Uniform Multi-Platform E-IDE driver Revision: 7.00beta-2.4 ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=3D= xx NS87415: IDE controller at PCI slot 00:0e.0 NS87415: chipset revision 3 NS87415: not 100% native mode: will probe irqs later ide0: BM-DMA at 0x0900-0x0907, BIOS settings: hda:pio, hdb:pio ide1: BM-DMA at 0x0908-0x090f, BIOS settings: hdc:pio, hdd:pio hda: LTN485S, ATAPI CD/DVD-ROM drive ide0 at 0x1f0-0x1f7,0x3f6 on irq 103 hda: ATAPI 48X CD-ROM drive, 120kB Cache Uniform CD-ROM driver Revision: 3.12 ... palx2000:~# uname -a Linux palx2000 2.4.21-pre1-pa14 #2 Tue Dec 17 08:44:14 CET 2002 parisc un= known unknown GNU/Linux" Thanks all, Joel *************************************************************************= ******* Controlez mieux votre consommation Internet...surfez Tiscali Complete...h= ttp://tiscali.complete.be ^ permalink raw reply [flat|nested] 13+ messages in thread
* [parisc-linux] Re: YA pb with PCI IDE (my merge 2.4.21-pre1) 2002-12-16 18:04 ` [parisc-linux] " Alan Cox 2002-12-16 17:29 ` Matthew Wilcox @ 2002-12-16 17:48 ` jsoe0708 2002-12-17 7:22 ` [parisc-linux] Dropping ide controler in 'Native' mode? jsoe0708 2 siblings, 0 replies; 13+ messages in thread From: jsoe0708 @ 2002-12-16 17:48 UTC (permalink / raw) To: Alan Cox; +Cc: parisc-linux > >On Mon, 2002-12-16 at 17:06, jsoe0708@tiscali.be wrote: >> Hi Alan, >> >> Worried about ext3 pb, I try to merge parisc kernel 2.4.20-pa14 with 2.4.21-pre1. >> This merge seems to works fine on a b180l+ (without pci devices). >> But still boot twice (??) and crash on a b2k with an ide cdrom. > >I've sent the PCI fixup patch to linux-kernel. Depending upon how the >PA-RISC system interfaces to the IDE controller you may also need >platform specific fixups or to drop the chip into Native mode. > >Someone at HP can probably answer that bit > Thanks Alan, Joel *************************************************************************= ******* Controlez mieux votre consommation Internet...surfez Tiscali Complete...h= ttp://tiscali.complete.be ^ permalink raw reply [flat|nested] 13+ messages in thread
* [parisc-linux] Dropping ide controler in 'Native' mode? 2002-12-16 18:04 ` [parisc-linux] " Alan Cox 2002-12-16 17:29 ` Matthew Wilcox 2002-12-16 17:48 ` jsoe0708 @ 2002-12-17 7:22 ` jsoe0708 2 siblings, 0 replies; 13+ messages in thread From: jsoe0708 @ 2002-12-17 7:22 UTC (permalink / raw) To: parisc-linux > >On Mon, 2002-12-16 at 17:06, jsoe0708@tiscali.be wrote: >> Hi Alan, >> >> Worried about ext3 pb, I try to merge parisc kernel 2.4.20-pa14 with 2.4.21-pre1. >> This merge seems to works fine on a b180l+ (without pci devices). >> But still boot twice (??) and crash on a b2k with an ide cdrom. > >I've sent the PCI fixup patch to linux-kernel. Depending upon how the >PA-RISC system interfaces to the IDE controller you may also need >platform specific fixups or to drop the chip into Native mode. > Can somebody tell me if it is possible (if yes how)? Thanks in advance, Joel *************************************************************************= ******* Controlez mieux votre consommation Internet...surfez Tiscali Complete...h= ttp://tiscali.complete.be ^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2002-12-17 8:22 UTC | newest] Thread overview: 13+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2002-12-16 17:06 [parisc-linux] YA pb with PCI IDE (my merge 2.4.21-pre1) jsoe0708 2002-12-16 18:04 ` [parisc-linux] " Alan Cox 2002-12-16 17:29 ` Matthew Wilcox 2002-12-16 18:20 ` Alan Cox 2002-12-16 17:59 ` jsoe0708 2002-12-16 18:01 ` Matthew Wilcox 2002-12-16 18:13 ` jsoe0708 2002-12-16 18:16 ` Matthew Wilcox 2002-12-16 18:24 ` jsoe0708 2002-12-16 18:19 ` jsoe0708 2002-12-17 8:22 ` jsoe0708 2002-12-16 17:48 ` jsoe0708 2002-12-17 7:22 ` [parisc-linux] Dropping ide controler in 'Native' mode? jsoe0708
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.