lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date:	Mon, 2 Apr 2007 23:26:54 -1000
From:	"Sam" <sam@...gner.com>
To:	<linux-kernel@...r.kernel.org>
Subject: Adding support for IDE on nCS5 on an ARM7

	I'm working on getting the IDE subsystem to communicate with an IDE device wired to nCS5 on a CLEP7312 board.  I have
0x50000000 set to be remapped to 0xfe100000 but whenever I try to access the registers I get kernel crashes.  I'm sure I'm doing
something wrong, since this works on a 2.6 kernel... but I don't know where to find what I'm doing wrong.

Could somebody perhaps let me know if they know what I'm doing wrong, or point me in the right direction of the relevant
documentation?

The error below is from trying to access as 32-bit wide blocks, same thing happens if I try to read it as an 8-bit block...

It also does the same thing if I don't do the mapping and try to access at the physical base address... but of course I shouldn't be
doing that anyways right?

Thanks,
Sam

Segfault:
-------------------------------------------------------------------------
IO_SYSCON1 = 0x000401C0
IO_SYSCON2 = 0x00040100
IO_SYSCON3 = 0x00040026
IO_MEMCFG1 = 0x00000080
IO_MEMCFG2 = 0xFFFDBD00

inb_ide(0xfe100007)
Unable to handle kernel paging request at virtual address fe100004
pgd = c0024000
[fe100004] *pgd=00000000
Internal error: Oops: e3c11005 [#1]
CPU: 0
PC is at ide_inb+0x70/0xe0
LR is at _spin_unlock_irqrestore+0x14/0x1c
pc : [<c012e668>]    lr : [<c014da10>]    Not tainted
sp : c01e1ef8  ip : 00000000  fp : c01e1f10
r10: c0036848  r9 : 60000013  r8 : 00000000
r7 : c01bc6a8  r6 : fe100007  r5 : c01bc698  r4 : 000088b7
r3 : fe100004  r2 : c018517c  r1 : c0176bf4  r0 : 00000017
Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  Segment kernel
Control: 217B
Table: C0024017  DAC: 00000017
Process swapper (pid: 1, stack limit = 0xc01e0250)
Stack: (0xc01e1ef8 to 0xc01e2000)
1ee0:                                                       000088b7 c01bc698
1f00: c01bc698 c01e1f28 c01e1f14 c012fec8 c012e608 c01bce9c 00000003 c01e1f60                                                1f20:
c01e1f2c c013133c c012fea8 c01e1f58 00000006 c00c062c c01bce9c 00000003
1f40: c01e1f78 c0036d64 00000000 00000000 c0036848 c01e1f90 c01e1f64 c01324f0                                                  1f60:
c0131258 00000001 00000001 00000001 00000001 00000000 c003682c c01e0000
1f80: c0036d64 c01e1fa0 c01e1f94 c0035d38 c0132488 c01e1ff4 c01e1fa4 c0039100                                                  1fa0:
c0035d38 00000001 c0039e44 c0042f20 00000000 00000000 c0039058 c0049a34
1fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000                                                  1fe0:
00000000 00000000 00000000 c01e1ff8 c0049a34 c0039068 82504000 60208006
Backtrace:
[<c012e5f8>] (ide_inb+0x0/0xe0) from [<c012fec8>] (ide_wait_not_busy+0x30/0x74)
 r6 = C01BC698  r5 = C01BC698  r4 = 000088B7
[<c012fe98>] (ide_wait_not_busy+0x0/0x74) from [<c013133c>] (probe_hwif+0xf4/0x7c0)
 r5 = 00000003  r4 = C01BCE9C
[<c0131248>] (probe_hwif+0x0/0x7c0) from [<c01324f0>] (ideprobe_init+0x78/0x160)
[<c0132478>] (ideprobe_init+0x0/0x160) from [<c0035d38>] (ide_generic_init+0x10/0x1c)                                           r7 =
C0036D64  r6 = C01E0000  r5 = C003682C  r4 = 00000000
[<c0035d28>] (ide_generic_init+0x0/0x1c) from [<c0039100>] (init+0xa8/0x274)
[<c0039058>] (init+0x0/0x274) from [<c0049a34>] (do_exit+0x0/0x770)
Code: e1a01006 e59f006c ebfc66c7 e3c63003 (e5934000)
 <0>Kernel panic - not syncing: Attempted to kill init!
-------------------------------------------------------------------------
#define EP7312_PHYS_IDE         CS5_PHYS_BASE
#define EP7312_VIRT_IDE         (0xfe100000)
-------------------------------------------------------------------------
Mapping line:
static struct map_desc edb7211_io_desc[] __initdata = {
        {       /* Phatnoise IDE */
                .virtual        = EP7312_VIRT_IDE,
                .pfn            = __phys_to_pfn(EP7312_PHYS_IDE),
                .length         = SZ_1M,
                .type           = MT_DEVICE,
        },
};

Machine definition:
-------------------------------------------------------------------------
MACHINE_START(CLEP7212, "Cirrus Logic 7212/7312")
        /* Maintainer: Nobody */
        .phys_io        = 0x80000000,
        .io_pg_offst    = ((0xff000000) >> 18) & 0xfffc,
        .boot_params    = 0xc0000100,
        .fixup          = fixup_clep7312,
        .map_io         = clps711x_map_io,
        .init_irq       = clps711x_init_irq,
        .timer          = &clps711x_timer,
MACHINE_END


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ