Porting linux to Stellaris Cortex-M3

Maxin John arm.maxinbjohn at gmail.com
Tue Sep 27 04:58:06 EDT 2011

Hi Fernando,

On Mon, Sep 26, 2011 at 11:19 PM, Fernando Endo
<fernando.endo at phiinnovations.com> wrote:
> Hello everybody,
> I'm currently porting linux to a Stellaris board from TI.
> But I'm having some problems with the execution of the Busybox init program.
> Some info:
> - the toolchain is CodeSourcery lite edition
> - I've followed the steps described by Catalin Marinas at
> http://www.linux-arm.org/LinuxKernel/LinuxM3
> - I'm using my own bootloader, based on the script at the site above
> and on informations found on linux/Documents
> - I've based the mach-stellaris implementation from realview and mps ones
> - the timer, irqs and uart seems to work fine
> - the system crashes after calling /init, which is linked with Busybox init
> - BUG: scheduling while atomic: init/1/0xffff000a

This is the code which corresponds to "scheduling while atomic" bug
(from "kernel/sched.c") :
 * Print scheduling while atomic bug:
static noinline void __schedule_bug(struct task_struct *prev)
        struct pt_regs *regs = get_irq_regs();

        printk(KERN_ERR "BUG: scheduling while atomic: %s/%d/0x%08x\n",
                prev->comm, prev->pid, preempt_count());

        if (irqs_disabled())

        if (regs)

We hit this bug if we are scheduling when we should not be. ie : if we
call schedule() or sleep() from a driver while in an interrupt handler
or holding a spin-lock, that will trigger this bug. This is because of
a bug present in any of the kernel drivers.  Please share the detailed

Warm Regards,
Maxin B. John

More information about the linux-arm-toolchain mailing list