Re: reset handling in am335x hwmod data

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

On Sun, Dec 23, 2012 at 08:58:13PM +0000, Paul Walmsley wrote:
> > In this specific case the pin is connected to nCONFIG of a FPGA. The
> > FPGA is commanded to start configuration from a SPI flash in the
> > bootloader, so it can happen in parallel with kernel
> > load/uncompress/startup, but as the kernel resets the gpio during
> > initialization this doesn't work.
> > 
> > Digging a bit into it, I see the hwmod of the gpio controller is
> > configured to reset at startup, and it works correctly (E.G. the pin is
> > left asserted) if I change it to HWMOD_INIT_NO_RESET:
> > 
> > --- a/arch/arm/mach-omap2/omap_hwmod_33xx_data.c
> > +++ b/arch/arm/mach-omap2/omap_hwmod_33xx_data.c
> > @@ -992,7 +992,7 @@ static struct omap_hwmod am33xx_gpio1_hwmod = {
> >         .name           = "gpio2",
> >         .class          = &am33xx_gpio_hwmod_class,
> >         .clkdm_name     = "l4ls_clkdm",
> > -       .flags          = HWMOD_CONTROL_OPT_CLKS_IN_RESET,
> > +       .flags          = (HWMOD_INIT_NO_IDLE | HWMOD_INIT_NO_RESET),
> >         .mpu_irqs       = am33xx_gpio1_irqs,
> >         .main_clk       = "l4ls_gclk",
> >         .prcm           = {
> > 
> > Now the question is why is this configured like this?
> 
> This behavior is intended to decouple the kernel from the bootloader, or 
> previously-booted operating system (e.g., the kexec case).  The original 
> goal was to place the system in an known safe state as soon as possible 
> after the kernel starts.  This is to prevent misconfigured or 

there is one "issue" with this. At least on AM335x starter kit, GPIO0_7
is used as DDR power pin. If we reset that GPIO bank, DDR looses power
and "for obscure reasons" (:-)) the board doesn't boot.

In this case, we cannot reset that bank, otherwise Starter Kit will
never boot in mainline. Bad PCB design, I know, but it's not something
we can change now :-)

cheers

-- 
balbi

Attachment: signature.asc
Description: Digital signature


[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux