cfi causes vm_fault on IXP435

Sam Leffler sam at freebsd.org
Thu Feb 5 10:58:26 PST 2009


Well I didn't enable it for Cambria because it wasn't right :-)

I know that at the very least the flash config on the 2358 is 32M but I 
only map 16M so if everything else worked you couldn't access all the 
memory.  But otherwise I hit this fault and haven't had time to diagnose 
it.  Not sure when I'll get to it; would love to have some help (once 
you get it mapped correctly you can add support to the cfi driver to 
dynamically map 1M blocks so we don't have to map all of flash).

BTW since you tried this w/o asking you probably noticed I also just 
committed support for the SrataFlash protection register.  It looks like 
it might be working and I was just confused about the ability to write 
the user segment multiple times.  The doc is a bit confusing and seems 
to say this 64-bit segment is OTP (write once).  I think I need to move 
the code that lets you write it under the CFI_AMEDANDDANGEROUS option...

    Sam

Alex Vinogradovs wrote:
> Guys,
>
> I've enabled cfi driver, specifying 0x50000000 as the address in hints 
> (like for AVILA board),
> and that causes vm_fault.
>
> Here is what redboot reports about flash :
>
> FLASH: 0x50000000 - 0x50800000, 128 blocks of 0x00010000 bytes each.
>
> and here are the messages :
>
> subsystem 3800000
>   xdr_sizeof(0)... done.
>   taskqueue_start_threads(0)... done.
>   taskqueue_create(0)... done.
>   taskqueue_create(0)... done.
>   module_register_init(0xc04a20a8)... done.
>   module_register_init(0xc04a5b50)... done.
>   knlist_init(0)... done.
>   taskqueue_create_fast(0)... done.
>   xdr_sizeof(0)... ixp0: <Intel IXP4XX> on motherboard
> ixp0: 37fff<RCOMP,USB,HASH,AES,DES,HDLC,AAL,HSS,UTOPIA,ETH0,ETH1,PCI>
> ixpclk0: <IXP4XX Timer> on ixp0
> ixpiic0: <IXP4XX GPIO-Based I2C Interface> on ixp0
> iicbb0: <I2C bit-banging driver> on ixpiic0
> iicbus0: <Philips I2C bus> on iicbb0 master-only
> iic0: <I2C generic I/O> on iicbus0
> iicbus0: <unknown card> at addr 0x5a
> ad74180: <Analog Devices AD7418 ADC> at addr 0x50 on iicbus0
> ds16720: <Dallas Semiconductor DS1672 RTC> at addr 0xd0 on iicbus0
> ixpwdog0: <IXP4XX Watchdog Timer> on ixp0
> uart0: <Non-standard ns8250 class UART with FIFOs> on ixp0
> uart0: [FILTER]
> uart0: console (115200,n,8,1)
> ixpqmgr0: <IXP4XX Q-Manager> on ixp0
> ixpqmgr0: [ITHREAD]
> ixpqmgr0: [ITHREAD]
> npe0: <IXP NPE-C> on ixp0
> npe0: [ITHREAD]
> npe0: MAC at 0xc800a000
> npe0: MII at 0xc800a000
> npe0: load fw image IXP425.NPE-C Func 0x5 Rev 2.1
> miibus0: <MII bus> on npe0
> ukphy0: <Generic IEEE 802.3u media interface> PHY 1 on miibus0
> ukphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
> npe0: Ethernet address: 00:03:47:df:32:a8
>
> vm_fault(0xc0781000, fd000000, 2, 0) -> 1
> Fatal kernel mode data abort: 'Translation Fault (S)'
> trapframe: 0xc00fbc40
> FSR=000000f5, FAR=fd0000aa, spsr=600000d3
> r0 =00000000, r1 =fd000000, r2 =000000aa, r3 =00000098
> r4 =00000010, r5 =c1146600, r6 =c119b280, r7 =c1145580
> r8 =00000001, r9 =c04aa9a4, r10=c119b2bc, r11=c00fbc98
> r12=c04c0c0c, ssp=c00fbc8c, slr=c0221a9c, pc =c03fe5fc
>
> [thread pid 0 tid 100000 ]
> Stopped at      generic_armv4_bs_w_2:   strh    r3, [r1, r2]
> db>
>
> _______________________________________________
> freebsd-arm at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-arm
> To unsubscribe, send any mail to "freebsd-arm-unsubscribe at freebsd.org"
>
>



More information about the freebsd-arm mailing list