Hi John, 2011/1/13 John Crispin <blogic@xxxxxxxxxxx>: > >>> + >>> +/* all access to the ebu must be locked */ >>> +DEFINE_SPINLOCK(ebu_lock); >>> +EXPORT_SYMBOL_GPL(ebu_lock); >>> >> This lock is only needed if you want to use software arbitration. >> Normally the EBU does hardware arbitration and can be accessed safely >> without lock. >> >> > openwrt borks up on mini_fo init when this lock is not in-place. we saw > a lot of issues in the past which lead to this lock being added. i will > retry it with out the lock to verify > Ok I never tried mini_fo bit it's working fine with squashfs. Maybe it's a problem with your EBU setup. We always reset the EBU_ADDR_SEL0 and EBU_CON_0 registers in U-Boot's lowlevel_init.S. The values are EBU_ADDR_SEL0 = 0x10000021 and EBU_CON_0 = 0x8001F7FF. My suggestion is to wrap the locking mechanism into separate inline functions and define them only if really needed and enabled in kernel config. Daniel