* [U-Boot] [PATCH v2 0/2] ARM: atmel: sama5d3xek: enable NOR flash support @ 2014-07-18 8:43 Bo Shen 2014-07-18 8:43 ` [U-Boot] [PATCH v2 1/2] ARM: atmel: sama5d3xek: add nor flash init function Bo Shen 2014-07-18 8:43 ` [U-Boot] [PATCH v2 2/2] ARM: atmel: sama5d3xek: enable NOR flash support Bo Shen 0 siblings, 2 replies; 6+ messages in thread From: Bo Shen @ 2014-07-18 8:43 UTC (permalink / raw) To: u-boot Add NOR flash support on sama5d3xek board. Then, we can use NOR flash related command to access it. Changes in v2: - Add CONFIG_SYS_FLASH_PROTECTION - Correct the max sector number Bo Shen (2): ARM: atmel: sama5d3xek: add nor flash init function ARM: atmel: sama5d3xek: enable NOR flash support board/atmel/sama5d3xek/sama5d3xek.c | 58 +++++++++++++++++++++++++++++++++++++ include/configs/sama5d3xek.h | 13 ++++++++- 2 files changed, 70 insertions(+), 1 deletion(-) -- 1.8.5.2 ^ permalink raw reply [flat|nested] 6+ messages in thread
* [U-Boot] [PATCH v2 1/2] ARM: atmel: sama5d3xek: add nor flash init function 2014-07-18 8:43 [U-Boot] [PATCH v2 0/2] ARM: atmel: sama5d3xek: enable NOR flash support Bo Shen @ 2014-07-18 8:43 ` Bo Shen 2014-08-28 11:38 ` Andreas Bießmann 2014-09-19 6:31 ` [U-Boot] [U-Boot,v2,1/2] " Andreas Bießmann 2014-07-18 8:43 ` [U-Boot] [PATCH v2 2/2] ARM: atmel: sama5d3xek: enable NOR flash support Bo Shen 1 sibling, 2 replies; 6+ messages in thread From: Bo Shen @ 2014-07-18 8:43 UTC (permalink / raw) To: u-boot Add NOR flash hardware init function, including SMC and PIO configuration. Signed-off-by: Bo Shen <voice.shen@atmel.com> --- Changes in v2: None board/atmel/sama5d3xek/sama5d3xek.c | 58 +++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) diff --git a/board/atmel/sama5d3xek/sama5d3xek.c b/board/atmel/sama5d3xek/sama5d3xek.c index c835c12..f53754b 100644 --- a/board/atmel/sama5d3xek/sama5d3xek.c +++ b/board/atmel/sama5d3xek/sama5d3xek.c @@ -67,6 +67,61 @@ void sama5d3xek_nand_hw_init(void) } #endif +#ifndef CONFIG_SYS_NO_FLASH +static void sama5d3xek_nor_hw_init(void) +{ + struct at91_smc *smc = (struct at91_smc *)ATMEL_BASE_SMC; + + at91_periph_clk_enable(ATMEL_ID_SMC); + + /* Configure SMC CS0 for NOR flash */ + writel(AT91_SMC_SETUP_NWE(1) | AT91_SMC_SETUP_NCS_WR(0) | + AT91_SMC_SETUP_NRD(2) | AT91_SMC_SETUP_NCS_RD(0), + &smc->cs[0].setup); + writel(AT91_SMC_PULSE_NWE(10) | AT91_SMC_PULSE_NCS_WR(11) | + AT91_SMC_PULSE_NRD(10) | AT91_SMC_PULSE_NCS_RD(11), + &smc->cs[0].pulse); + writel(AT91_SMC_CYCLE_NWE(11) | AT91_SMC_CYCLE_NRD(14), + &smc->cs[0].cycle); + writel(AT91_SMC_TIMINGS_TCLR(0) | AT91_SMC_TIMINGS_TADL(0) | + AT91_SMC_TIMINGS_TAR(0) | AT91_SMC_TIMINGS_TRR(0) | + AT91_SMC_TIMINGS_TWB(0) | AT91_SMC_TIMINGS_RBNSEL(0)| + AT91_SMC_TIMINGS_NFSEL(0), &smc->cs[0].timings); + writel(AT91_SMC_MODE_RM_NRD | AT91_SMC_MODE_WM_NWE | + AT91_SMC_MODE_EXNW_DISABLE | + AT91_SMC_MODE_DBW_16 | + AT91_SMC_MODE_TDF_CYCLE(1), + &smc->cs[0].mode); + + /* Address pin (A1 ~ A23) configuration */ + at91_set_a_periph(AT91_PIO_PORTE, 1, 0); + at91_set_a_periph(AT91_PIO_PORTE, 2, 0); + at91_set_a_periph(AT91_PIO_PORTE, 3, 0); + at91_set_a_periph(AT91_PIO_PORTE, 4, 0); + at91_set_a_periph(AT91_PIO_PORTE, 5, 0); + at91_set_a_periph(AT91_PIO_PORTE, 6, 0); + at91_set_a_periph(AT91_PIO_PORTE, 7, 0); + at91_set_a_periph(AT91_PIO_PORTE, 8, 0); + at91_set_a_periph(AT91_PIO_PORTE, 9, 0); + at91_set_a_periph(AT91_PIO_PORTE, 10, 0); + at91_set_a_periph(AT91_PIO_PORTE, 11, 0); + at91_set_a_periph(AT91_PIO_PORTE, 12, 0); + at91_set_a_periph(AT91_PIO_PORTE, 13, 0); + at91_set_a_periph(AT91_PIO_PORTE, 14, 0); + at91_set_a_periph(AT91_PIO_PORTE, 15, 0); + at91_set_a_periph(AT91_PIO_PORTE, 16, 0); + at91_set_a_periph(AT91_PIO_PORTE, 17, 0); + at91_set_a_periph(AT91_PIO_PORTE, 18, 0); + at91_set_a_periph(AT91_PIO_PORTE, 19, 0); + at91_set_a_periph(AT91_PIO_PORTE, 20, 0); + at91_set_a_periph(AT91_PIO_PORTE, 21, 0); + at91_set_a_periph(AT91_PIO_PORTE, 22, 0); + at91_set_a_periph(AT91_PIO_PORTE, 23, 0); + /* CS0 pin configuration */ + at91_set_a_periph(AT91_PIO_PORTE, 26, 0); +} +#endif + #ifdef CONFIG_CMD_USB static void sama5d3xek_usb_hw_init(void) { @@ -181,6 +236,9 @@ int board_init(void) #ifdef CONFIG_NAND_ATMEL sama5d3xek_nand_hw_init(); #endif +#ifndef CONFIG_SYS_NO_FLASH + sama5d3xek_nor_hw_init(); +#endif #ifdef CONFIG_CMD_USB sama5d3xek_usb_hw_init(); #endif -- 1.8.5.2 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* [U-Boot] [PATCH v2 1/2] ARM: atmel: sama5d3xek: add nor flash init function 2014-07-18 8:43 ` [U-Boot] [PATCH v2 1/2] ARM: atmel: sama5d3xek: add nor flash init function Bo Shen @ 2014-08-28 11:38 ` Andreas Bießmann 2014-09-19 6:31 ` [U-Boot] [U-Boot,v2,1/2] " Andreas Bießmann 1 sibling, 0 replies; 6+ messages in thread From: Andreas Bießmann @ 2014-08-28 11:38 UTC (permalink / raw) To: u-boot On 07/18/2014 10:43 AM, Bo Shen wrote: > Add NOR flash hardware init function, including SMC and PIO > configuration. > > Signed-off-by: Bo Shen <voice.shen@atmel.com> Reviewed-by: Andreas Bie?mann <andreas.devel@googlemail.com> > --- > Changes in v2: None > > board/atmel/sama5d3xek/sama5d3xek.c | 58 +++++++++++++++++++++++++++++++++++++ > 1 file changed, 58 insertions(+) > > diff --git a/board/atmel/sama5d3xek/sama5d3xek.c b/board/atmel/sama5d3xek/sama5d3xek.c > index c835c12..f53754b 100644 > --- a/board/atmel/sama5d3xek/sama5d3xek.c > +++ b/board/atmel/sama5d3xek/sama5d3xek.c > @@ -67,6 +67,61 @@ void sama5d3xek_nand_hw_init(void) > } > #endif > > +#ifndef CONFIG_SYS_NO_FLASH > +static void sama5d3xek_nor_hw_init(void) > +{ > + struct at91_smc *smc = (struct at91_smc *)ATMEL_BASE_SMC; > + > + at91_periph_clk_enable(ATMEL_ID_SMC); > + > + /* Configure SMC CS0 for NOR flash */ > + writel(AT91_SMC_SETUP_NWE(1) | AT91_SMC_SETUP_NCS_WR(0) | > + AT91_SMC_SETUP_NRD(2) | AT91_SMC_SETUP_NCS_RD(0), > + &smc->cs[0].setup); > + writel(AT91_SMC_PULSE_NWE(10) | AT91_SMC_PULSE_NCS_WR(11) | > + AT91_SMC_PULSE_NRD(10) | AT91_SMC_PULSE_NCS_RD(11), > + &smc->cs[0].pulse); > + writel(AT91_SMC_CYCLE_NWE(11) | AT91_SMC_CYCLE_NRD(14), > + &smc->cs[0].cycle); > + writel(AT91_SMC_TIMINGS_TCLR(0) | AT91_SMC_TIMINGS_TADL(0) | > + AT91_SMC_TIMINGS_TAR(0) | AT91_SMC_TIMINGS_TRR(0) | > + AT91_SMC_TIMINGS_TWB(0) | AT91_SMC_TIMINGS_RBNSEL(0)| > + AT91_SMC_TIMINGS_NFSEL(0), &smc->cs[0].timings); > + writel(AT91_SMC_MODE_RM_NRD | AT91_SMC_MODE_WM_NWE | > + AT91_SMC_MODE_EXNW_DISABLE | > + AT91_SMC_MODE_DBW_16 | > + AT91_SMC_MODE_TDF_CYCLE(1), > + &smc->cs[0].mode); > + > + /* Address pin (A1 ~ A23) configuration */ > + at91_set_a_periph(AT91_PIO_PORTE, 1, 0); > + at91_set_a_periph(AT91_PIO_PORTE, 2, 0); > + at91_set_a_periph(AT91_PIO_PORTE, 3, 0); > + at91_set_a_periph(AT91_PIO_PORTE, 4, 0); > + at91_set_a_periph(AT91_PIO_PORTE, 5, 0); > + at91_set_a_periph(AT91_PIO_PORTE, 6, 0); > + at91_set_a_periph(AT91_PIO_PORTE, 7, 0); > + at91_set_a_periph(AT91_PIO_PORTE, 8, 0); > + at91_set_a_periph(AT91_PIO_PORTE, 9, 0); > + at91_set_a_periph(AT91_PIO_PORTE, 10, 0); > + at91_set_a_periph(AT91_PIO_PORTE, 11, 0); > + at91_set_a_periph(AT91_PIO_PORTE, 12, 0); > + at91_set_a_periph(AT91_PIO_PORTE, 13, 0); > + at91_set_a_periph(AT91_PIO_PORTE, 14, 0); > + at91_set_a_periph(AT91_PIO_PORTE, 15, 0); > + at91_set_a_periph(AT91_PIO_PORTE, 16, 0); > + at91_set_a_periph(AT91_PIO_PORTE, 17, 0); > + at91_set_a_periph(AT91_PIO_PORTE, 18, 0); > + at91_set_a_periph(AT91_PIO_PORTE, 19, 0); > + at91_set_a_periph(AT91_PIO_PORTE, 20, 0); > + at91_set_a_periph(AT91_PIO_PORTE, 21, 0); > + at91_set_a_periph(AT91_PIO_PORTE, 22, 0); > + at91_set_a_periph(AT91_PIO_PORTE, 23, 0); > + /* CS0 pin configuration */ > + at91_set_a_periph(AT91_PIO_PORTE, 26, 0); > +} > +#endif > + > #ifdef CONFIG_CMD_USB > static void sama5d3xek_usb_hw_init(void) > { > @@ -181,6 +236,9 @@ int board_init(void) > #ifdef CONFIG_NAND_ATMEL > sama5d3xek_nand_hw_init(); > #endif > +#ifndef CONFIG_SYS_NO_FLASH > + sama5d3xek_nor_hw_init(); > +#endif > #ifdef CONFIG_CMD_USB > sama5d3xek_usb_hw_init(); > #endif > ^ permalink raw reply [flat|nested] 6+ messages in thread
* [U-Boot] [U-Boot,v2,1/2] ARM: atmel: sama5d3xek: add nor flash init function 2014-07-18 8:43 ` [U-Boot] [PATCH v2 1/2] ARM: atmel: sama5d3xek: add nor flash init function Bo Shen 2014-08-28 11:38 ` Andreas Bießmann @ 2014-09-19 6:31 ` Andreas Bießmann 1 sibling, 0 replies; 6+ messages in thread From: Andreas Bießmann @ 2014-09-19 6:31 UTC (permalink / raw) To: u-boot Dear Bo Shen, Bo Shen <voice.shen@atmel.com> writes: >Add NOR flash hardware init function, including SMC and PIO >configuration. > >Signed-off-by: Bo Shen <voice.shen@atmel.com> >Reviewed-by: Andreas Bie?mann <andreas.devel@googlemail.com> >--- >Changes in v2: None > > board/atmel/sama5d3xek/sama5d3xek.c | 58 +++++++++++++++++++++++++++++++++++++ > 1 file changed, 58 insertions(+) applied to u-boot-atmel/master, thanks! Best regards, Andreas Bie?mann ^ permalink raw reply [flat|nested] 6+ messages in thread
* [U-Boot] [PATCH v2 2/2] ARM: atmel: sama5d3xek: enable NOR flash support 2014-07-18 8:43 [U-Boot] [PATCH v2 0/2] ARM: atmel: sama5d3xek: enable NOR flash support Bo Shen 2014-07-18 8:43 ` [U-Boot] [PATCH v2 1/2] ARM: atmel: sama5d3xek: add nor flash init function Bo Shen @ 2014-07-18 8:43 ` Bo Shen 2014-09-19 6:31 ` [U-Boot] [U-Boot,v2,2/2] " Andreas Bießmann 1 sibling, 1 reply; 6+ messages in thread From: Bo Shen @ 2014-07-18 8:43 UTC (permalink / raw) To: u-boot Signed-off-by: Bo Shen <voice.shen@atmel.com> --- Changes in v2: - Add CONFIG_SYS_FLASH_PROTECTION - Correct the max sector number include/configs/sama5d3xek.h | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/include/configs/sama5d3xek.h b/include/configs/sama5d3xek.h index da27180..844416f 100644 --- a/include/configs/sama5d3xek.h +++ b/include/configs/sama5d3xek.h @@ -79,8 +79,19 @@ #define CONFIG_BOOTP_GATEWAY #define CONFIG_BOOTP_HOSTNAME -/* No NOR flash */ +/* NOR flash */ +#define CONFIG_CMD_FLASH + +#ifdef CONFIG_CMD_FLASH +#define CONFIG_FLASH_CFI_DRIVER +#define CONFIG_SYS_FLASH_CFI +#define CONFIG_SYS_FLASH_PROTECTION +#define CONFIG_SYS_FLASH_BASE 0x10000000 +#define CONFIG_SYS_MAX_FLASH_SECT 131 +#define CONFIG_SYS_MAX_FLASH_BANKS 1 +#else #define CONFIG_SYS_NO_FLASH +#endif /* * Command line configuration. -- 1.8.5.2 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* [U-Boot] [U-Boot,v2,2/2] ARM: atmel: sama5d3xek: enable NOR flash support 2014-07-18 8:43 ` [U-Boot] [PATCH v2 2/2] ARM: atmel: sama5d3xek: enable NOR flash support Bo Shen @ 2014-09-19 6:31 ` Andreas Bießmann 0 siblings, 0 replies; 6+ messages in thread From: Andreas Bießmann @ 2014-09-19 6:31 UTC (permalink / raw) To: u-boot Dear Bo Shen, Bo Shen <voice.shen@atmel.com> writes: >Signed-off-by: Bo Shen <voice.shen@atmel.com> >--- >Changes in v2: > - Add CONFIG_SYS_FLASH_PROTECTION > - Correct the max sector number > > include/configs/sama5d3xek.h | 13 ++++++++++++- > 1 file changed, 12 insertions(+), 1 deletion(-) applied to u-boot-atmel/master, thanks! Best regards, Andreas Bie?mann ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2014-09-19 6:31 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2014-07-18 8:43 [U-Boot] [PATCH v2 0/2] ARM: atmel: sama5d3xek: enable NOR flash support Bo Shen 2014-07-18 8:43 ` [U-Boot] [PATCH v2 1/2] ARM: atmel: sama5d3xek: add nor flash init function Bo Shen 2014-08-28 11:38 ` Andreas Bießmann 2014-09-19 6:31 ` [U-Boot] [U-Boot,v2,1/2] " Andreas Bießmann 2014-07-18 8:43 ` [U-Boot] [PATCH v2 2/2] ARM: atmel: sama5d3xek: enable NOR flash support Bo Shen 2014-09-19 6:31 ` [U-Boot] [U-Boot,v2,2/2] " Andreas Bießmann
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox