Message ID | 1398862909-17580-3-git-send-email-valentin.longchamp@keymile.com |
---|---|
State | Superseded |
Delegated to: | York Sun |
Headers | show |
On 04/30/2014 06:01 AM, Valentin Longchamp wrote: > From: Stefan Bigler <stefan.bigler@keymile.com> <snip> > diff --git a/board/keymile/kmp204x/qrio.c b/board/keymile/kmp204x/qrio.c > index 11949f4..c4f8dfd 100644 > --- a/board/keymile/kmp204x/qrio.c > +++ b/board/keymile/kmp204x/qrio.c > @@ -158,3 +158,16 @@ void qrio_set_leds(void) > ctrlh |= (CTRLH_WRL_BOOT | CTRLH_WRL_UNITRUN); > out_8(qrio_base + CTRLH_OFF, ctrlh); > } > + > +#define CTRLL_OFF 0x03 > +#define CTRLL_WRB_BUFENA 0x20 > + > +void qrio_enable_app_buffer(void) > +{ > + u8 ctrll; > + void __iomem *qrio_base = (void *)CONFIG_SYS_QRIO_BASE; You need a blank line here. > + /* enable application buffer */ > + ctrll = in_8(qrio_base + CTRLL_OFF); > + ctrll |= (CTRLL_WRB_BUFENA); > + out_8(qrio_base + CTRLL_OFF, ctrll); > +} >
diff --git a/board/keymile/kmp204x/kmp204x.c b/board/keymile/kmp204x/kmp204x.c index 5fceedd..fba1bdd 100644 --- a/board/keymile/kmp204x/kmp204x.c +++ b/board/keymile/kmp204x/kmp204x.c @@ -116,6 +116,9 @@ int board_early_init_r(void) /* enable the Unit LED (red) & Boot LED (on) */ qrio_set_leds(); + /* enable Application Buffer */ + qrio_enable_app_buffer(); + return ret; } @@ -171,6 +174,18 @@ int hush_init_var(void) #if defined(CONFIG_LAST_STAGE_INIT) int last_stage_init(void) { +#if defined(CONFIG_KMCOGE4) + /* on KMCOGE4, the BFTIC4 is on the LBAPP2 */ + struct bfticu_iomap *bftic4 = + (struct bfticu_iomap *)CONFIG_SYS_LBAPP2_BASE; + u8 dip_switch = in_8((u8 *)&(bftic4->mswitch)) & BFTICU_DIPSWITCH_MASK; + + if (dip_switch != 0) { + /* start bootloader */ + puts("DIP: Enabled\n"); + setenv("actual_bank", "0"); + } +#endif set_km_env(); return 0; } diff --git a/board/keymile/kmp204x/kmp204x.h b/board/keymile/kmp204x/kmp204x.h index 34de27e..720e225 100644 --- a/board/keymile/kmp204x/kmp204x.h +++ b/board/keymile/kmp204x/kmp204x.h @@ -22,5 +22,6 @@ void qrio_gpio_direction_input(u8 port_off, u8 gpio_nr); void qrio_prst(u8 bit, bool en, bool wden); void qrio_prstcfg(u8 bit, u8 mode); void qrio_set_leds(void); +void qrio_enable_app_buffer(void); void pci_of_setup(void *blob, bd_t *bd); diff --git a/board/keymile/kmp204x/qrio.c b/board/keymile/kmp204x/qrio.c index 11949f4..c4f8dfd 100644 --- a/board/keymile/kmp204x/qrio.c +++ b/board/keymile/kmp204x/qrio.c @@ -158,3 +158,16 @@ void qrio_set_leds(void) ctrlh |= (CTRLH_WRL_BOOT | CTRLH_WRL_UNITRUN); out_8(qrio_base + CTRLH_OFF, ctrlh); } + +#define CTRLL_OFF 0x03 +#define CTRLL_WRB_BUFENA 0x20 + +void qrio_enable_app_buffer(void) +{ + u8 ctrll; + void __iomem *qrio_base = (void *)CONFIG_SYS_QRIO_BASE; + /* enable application buffer */ + ctrll = in_8(qrio_base + CTRLL_OFF); + ctrll |= (CTRLL_WRB_BUFENA); + out_8(qrio_base + CTRLL_OFF, ctrll); +}