* [PATCH 1/4] at91:: Remove dead definition of atmel_nand_load_image() @ 2025-03-05 6:20 Alexander Shiyan 2025-03-05 6:20 ` [PATCH 2/4] at91: Use the ddramc driver for all boards whose architecture uses it Alexander Shiyan ` (3 more replies) 0 siblings, 4 replies; 7+ messages in thread From: Alexander Shiyan @ 2025-03-05 6:20 UTC (permalink / raw) To: barebox; +Cc: Alexander Shiyan atmel_nand_load_image() is not defined anywhere. Signed-off-by: Alexander Shiyan <eagle.alexander923@gmail.com> --- include/mach/at91/board.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/include/mach/at91/board.h b/include/mach/at91/board.h index 5f04f9c849..7edadeafba 100644 --- a/include/mach/at91/board.h +++ b/include/mach/at91/board.h @@ -31,8 +31,6 @@ struct at91_usbh_data { extern void __init at91_add_device_usbh_ohci(struct at91_usbh_data *data); extern void __init at91_add_device_usbh_ehci(struct at91_usbh_data *data); -void atmel_nand_load_image(void *dest, int size, int pagesize, int blocksize); - /* USB Device */ struct at91_udc_data { int vbus_pin; /* high == host powering us */ -- 2.39.1 ^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 2/4] at91: Use the ddramc driver for all boards whose architecture uses it 2025-03-05 6:20 [PATCH 1/4] at91:: Remove dead definition of atmel_nand_load_image() Alexander Shiyan @ 2025-03-05 6:20 ` Alexander Shiyan 2025-03-07 8:18 ` Sascha Hauer 2025-03-05 6:21 ` [PATCH 3/4] at91: ddramc: Trivial code cleanup Alexander Shiyan ` (2 subsequent siblings) 3 siblings, 1 reply; 7+ messages in thread From: Alexander Shiyan @ 2025-03-05 6:20 UTC (permalink / raw) To: barebox; +Cc: Alexander Shiyan Reuse ddramc driver for all SAMA5D2/3/4 boards. Signed-off-by: Alexander Shiyan <eagle.alexander923@gmail.com> --- arch/arm/boards/sama5d4_xplained/lowlevel.c | 4 ++-- arch/arm/mach-at91/ddramc.c | 4 ++-- arch/arm/mach-at91/sama5d3_devices.c | 7 +++---- arch/arm/mach-at91/sama5d4_devices.c | 7 +++---- include/mach/at91/at91_ddrsdrc.h | 11 ----------- 5 files changed, 10 insertions(+), 23 deletions(-) diff --git a/arch/arm/boards/sama5d4_xplained/lowlevel.c b/arch/arm/boards/sama5d4_xplained/lowlevel.c index 183bd9c5a9..5763333f39 100644 --- a/arch/arm/boards/sama5d4_xplained/lowlevel.c +++ b/arch/arm/boards/sama5d4_xplained/lowlevel.c @@ -10,7 +10,7 @@ #include <asm/barebox-arm-head.h> #include <asm/barebox-arm.h> -#include <mach/at91/at91_ddrsdrc.h> +#include <mach/at91/ddramc.h> #include <mach/at91/hardware.h> void __naked __bare_init barebox_arm_reset_vector(uint32_t r0, uint32_t r1, uint32_t r2) @@ -19,5 +19,5 @@ void __naked __bare_init barebox_arm_reset_vector(uint32_t r0, uint32_t r1, uint arm_setup_stack(SAMA5D4_SRAM_BASE + SAMA5D4_SRAM_SIZE); - barebox_arm_entry(SAMA5_DDRCS, at91sama5d4_get_ddram_size(), NULL); + sama5d4_barebox_entry(0, NULL); } diff --git a/arch/arm/mach-at91/ddramc.c b/arch/arm/mach-at91/ddramc.c index 4d0637b487..ca77889ecc 100644 --- a/arch/arm/mach-at91/ddramc.c +++ b/arch/arm/mach-at91/ddramc.c @@ -30,14 +30,14 @@ void __noreturn sama5d3_barebox_entry(unsigned int r4, void *boarddata) { __sama5d3_stashed_bootrom_r4 = r4; - barebox_arm_entry(SAMA5_DDRCS, at91sama5d3_get_ddram_size(), + barebox_arm_entry(SAMA5_DDRCS, sama5_ramsize(IOMEM(SAMA5D3_BASE_MPDDRC)), boarddata); } void __noreturn sama5d4_barebox_entry(unsigned int r4, void *boarddata) { __sama5d4_stashed_bootrom_r4 = r4; - barebox_arm_entry(SAMA5_DDRCS, at91sama5d4_get_ddram_size(), + barebox_arm_entry(SAMA5_DDRCS, sama5_ramsize(IOMEM(SAMA5D4_BASE_MPDDRC)), boarddata); } diff --git a/arch/arm/mach-at91/sama5d3_devices.c b/arch/arm/mach-at91/sama5d3_devices.c index f6d5617e5f..4871c2bd69 100644 --- a/arch/arm/mach-at91/sama5d3_devices.c +++ b/arch/arm/mach-at91/sama5d3_devices.c @@ -21,10 +21,9 @@ void at91_add_device_sdram(u32 size) { - if (!size) - size = at91sama5d3_get_ddram_size(); - - arm_add_mem_device("ram0", SAMA5_DDRCS, size); + add_generic_device("sama5-ddramc", DEVICE_ID_SINGLE, NULL, + SAMA5D3_BASE_MPDDRC, SZ_512, + IORESOURCE_MEM, NULL); add_mem_device("sram0", SAMA5D3_SRAM_BASE, SAMA5D3_SRAM_SIZE, IORESOURCE_MEM_WRITEABLE); } diff --git a/arch/arm/mach-at91/sama5d4_devices.c b/arch/arm/mach-at91/sama5d4_devices.c index e438bd0d10..4a81e7cd40 100644 --- a/arch/arm/mach-at91/sama5d4_devices.c +++ b/arch/arm/mach-at91/sama5d4_devices.c @@ -21,10 +21,9 @@ void at91_add_device_sdram(u32 size) { - if (!size) - size = at91sama5d4_get_ddram_size(); - - arm_add_mem_device("ram0", SAMA5_DDRCS, size); + add_generic_device("sama5-ddramc", DEVICE_ID_SINGLE, NULL, + SAMA5D4_BASE_MPDDRC, SZ_512, + IORESOURCE_MEM, NULL); add_mem_device("sram0", SAMA5D4_SRAM_BASE, SAMA5D4_SRAM_SIZE, IORESOURCE_MEM_WRITEABLE); } diff --git a/include/mach/at91/at91_ddrsdrc.h b/include/mach/at91/at91_ddrsdrc.h index b9b0eb20b3..d511e157b2 100644 --- a/include/mach/at91/at91_ddrsdrc.h +++ b/include/mach/at91/at91_ddrsdrc.h @@ -357,17 +357,6 @@ static inline u32 at91sam9n12_get_ddram_size(void) return at91_get_ddram_size(IOMEM(AT91SAM9N12_BASE_DDRSDRC0), true); } -static inline u32 at91sama5d3_get_ddram_size(void) -{ - return at91_get_ddram_size(IOMEM(SAMA5D3_BASE_MPDDRC), true); -} - -static inline u32 at91sama5d4_get_ddram_size(void) -{ - return at91_get_ddram_size(IOMEM(SAMA5D4_BASE_MPDDRC), true); -} - - #endif /* __ASSEMBLY__ */ #endif /* #ifndef __AT91_DDRSDRC_H__ */ -- 2.39.1 ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 2/4] at91: Use the ddramc driver for all boards whose architecture uses it 2025-03-05 6:20 ` [PATCH 2/4] at91: Use the ddramc driver for all boards whose architecture uses it Alexander Shiyan @ 2025-03-07 8:18 ` Sascha Hauer 2025-03-07 8:24 ` Alexander Shiyan 0 siblings, 1 reply; 7+ messages in thread From: Sascha Hauer @ 2025-03-07 8:18 UTC (permalink / raw) To: Alexander Shiyan; +Cc: barebox On Wed, Mar 05, 2025 at 09:20:59AM +0300, Alexander Shiyan wrote: > Reuse ddramc driver for all SAMA5D2/3/4 boards. > > Signed-off-by: Alexander Shiyan <eagle.alexander923@gmail.com> > --- > arch/arm/boards/sama5d4_xplained/lowlevel.c | 4 ++-- > arch/arm/mach-at91/ddramc.c | 4 ++-- > arch/arm/mach-at91/sama5d3_devices.c | 7 +++---- > arch/arm/mach-at91/sama5d4_devices.c | 7 +++---- > include/mach/at91/at91_ddrsdrc.h | 11 ----------- > 5 files changed, 10 insertions(+), 23 deletions(-) > > diff --git a/arch/arm/boards/sama5d4_xplained/lowlevel.c b/arch/arm/boards/sama5d4_xplained/lowlevel.c > index 183bd9c5a9..5763333f39 100644 > --- a/arch/arm/boards/sama5d4_xplained/lowlevel.c > +++ b/arch/arm/boards/sama5d4_xplained/lowlevel.c > @@ -10,7 +10,7 @@ > #include <asm/barebox-arm-head.h> > #include <asm/barebox-arm.h> > > -#include <mach/at91/at91_ddrsdrc.h> > +#include <mach/at91/ddramc.h> > #include <mach/at91/hardware.h> > > void __naked __bare_init barebox_arm_reset_vector(uint32_t r0, uint32_t r1, uint32_t r2) > @@ -19,5 +19,5 @@ void __naked __bare_init barebox_arm_reset_vector(uint32_t r0, uint32_t r1, uint > > arm_setup_stack(SAMA5D4_SRAM_BASE + SAMA5D4_SRAM_SIZE); > > - barebox_arm_entry(SAMA5_DDRCS, at91sama5d4_get_ddram_size(), NULL); > + sama5d4_barebox_entry(0, NULL); > } > diff --git a/arch/arm/mach-at91/ddramc.c b/arch/arm/mach-at91/ddramc.c > index 4d0637b487..ca77889ecc 100644 > --- a/arch/arm/mach-at91/ddramc.c > +++ b/arch/arm/mach-at91/ddramc.c > @@ -30,14 +30,14 @@ void __noreturn sama5d3_barebox_entry(unsigned int r4, void *boarddata) > { > __sama5d3_stashed_bootrom_r4 = r4; > > - barebox_arm_entry(SAMA5_DDRCS, at91sama5d3_get_ddram_size(), > + barebox_arm_entry(SAMA5_DDRCS, sama5_ramsize(IOMEM(SAMA5D3_BASE_MPDDRC)), > boarddata); I like it better to have a at91sama5d3_get_ddram_size() because with that you don't have to worry about the base address, but only need to call for the correct SoC. > } > void __noreturn sama5d4_barebox_entry(unsigned int r4, void *boarddata) > { > __sama5d4_stashed_bootrom_r4 = r4; > > - barebox_arm_entry(SAMA5_DDRCS, at91sama5d4_get_ddram_size(), > + barebox_arm_entry(SAMA5_DDRCS, sama5_ramsize(IOMEM(SAMA5D4_BASE_MPDDRC)), > boarddata); > } > > diff --git a/arch/arm/mach-at91/sama5d3_devices.c b/arch/arm/mach-at91/sama5d3_devices.c > index f6d5617e5f..4871c2bd69 100644 > --- a/arch/arm/mach-at91/sama5d3_devices.c > +++ b/arch/arm/mach-at91/sama5d3_devices.c > @@ -21,10 +21,9 @@ > > void at91_add_device_sdram(u32 size) > { > - if (!size) > - size = at91sama5d3_get_ddram_size(); > - > - arm_add_mem_device("ram0", SAMA5_DDRCS, size); > + add_generic_device("sama5-ddramc", DEVICE_ID_SINGLE, NULL, > + SAMA5D3_BASE_MPDDRC, SZ_512, > + IORESOURCE_MEM, NULL); Is this necessary? I just merged your patch that says that all SAMA5D3 boards are merged to device tree. The device tree already has a "atmel,sama5d3-ddramc" node, so there shouldn't be a need to create the device here again. Sascha > add_mem_device("sram0", SAMA5D3_SRAM_BASE, > SAMA5D3_SRAM_SIZE, IORESOURCE_MEM_WRITEABLE); > } > diff --git a/arch/arm/mach-at91/sama5d4_devices.c b/arch/arm/mach-at91/sama5d4_devices.c > index e438bd0d10..4a81e7cd40 100644 > --- a/arch/arm/mach-at91/sama5d4_devices.c > +++ b/arch/arm/mach-at91/sama5d4_devices.c > @@ -21,10 +21,9 @@ > > void at91_add_device_sdram(u32 size) > { > - if (!size) > - size = at91sama5d4_get_ddram_size(); > - > - arm_add_mem_device("ram0", SAMA5_DDRCS, size); > + add_generic_device("sama5-ddramc", DEVICE_ID_SINGLE, NULL, > + SAMA5D4_BASE_MPDDRC, SZ_512, > + IORESOURCE_MEM, NULL); > add_mem_device("sram0", SAMA5D4_SRAM_BASE, > SAMA5D4_SRAM_SIZE, IORESOURCE_MEM_WRITEABLE); > } > diff --git a/include/mach/at91/at91_ddrsdrc.h b/include/mach/at91/at91_ddrsdrc.h > index b9b0eb20b3..d511e157b2 100644 > --- a/include/mach/at91/at91_ddrsdrc.h > +++ b/include/mach/at91/at91_ddrsdrc.h > @@ -357,17 +357,6 @@ static inline u32 at91sam9n12_get_ddram_size(void) > return at91_get_ddram_size(IOMEM(AT91SAM9N12_BASE_DDRSDRC0), true); > } > > -static inline u32 at91sama5d3_get_ddram_size(void) > -{ > - return at91_get_ddram_size(IOMEM(SAMA5D3_BASE_MPDDRC), true); > -} > - > -static inline u32 at91sama5d4_get_ddram_size(void) > -{ > - return at91_get_ddram_size(IOMEM(SAMA5D4_BASE_MPDDRC), true); > -} > - > - > #endif /* __ASSEMBLY__ */ > > #endif /* #ifndef __AT91_DDRSDRC_H__ */ > -- > 2.39.1 > > > -- Pengutronix e.K. | | Steuerwalder Str. 21 | http://www.pengutronix.de/ | 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 | ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 2/4] at91: Use the ddramc driver for all boards whose architecture uses it 2025-03-07 8:18 ` Sascha Hauer @ 2025-03-07 8:24 ` Alexander Shiyan 0 siblings, 0 replies; 7+ messages in thread From: Alexander Shiyan @ 2025-03-07 8:24 UTC (permalink / raw) To: Sascha Hauer; +Cc: barebox Hello. > > diff --git a/arch/arm/mach-at91/sama5d3_devices.c b/arch/arm/mach-at91/sama5d3_devices.c > > index f6d5617e5f..4871c2bd69 100644 > > --- a/arch/arm/mach-at91/sama5d3_devices.c > > +++ b/arch/arm/mach-at91/sama5d3_devices.c > > @@ -21,10 +21,9 @@ > > > > void at91_add_device_sdram(u32 size) > > { > > - if (!size) > > - size = at91sama5d3_get_ddram_size(); > > - > > - arm_add_mem_device("ram0", SAMA5_DDRCS, size); > > + add_generic_device("sama5-ddramc", DEVICE_ID_SINGLE, NULL, > > + SAMA5D3_BASE_MPDDRC, SZ_512, > > + IORESOURCE_MEM, NULL); > > Is this necessary? I just merged your patch that says that all SAMA5D3 > boards are merged to device tree. The device tree already has a > "atmel,sama5d3-ddramc" node, so there shouldn't be a need to create the > device here again. This series was created before I realized that board files for SAMA5D3 can be deleted completely. In general, in this case it is a patch race :) Thanks! ^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 3/4] at91: ddramc: Trivial code cleanup 2025-03-05 6:20 [PATCH 1/4] at91:: Remove dead definition of atmel_nand_load_image() Alexander Shiyan 2025-03-05 6:20 ` [PATCH 2/4] at91: Use the ddramc driver for all boards whose architecture uses it Alexander Shiyan @ 2025-03-05 6:21 ` Alexander Shiyan 2025-03-05 6:21 ` [PATCH 4/4] at91: Use proper values of stashed SAMA5D2/3/4 bootsource Alexander Shiyan 2025-03-07 8:20 ` (subset) [PATCH 1/4] at91:: Remove dead definition of atmel_nand_load_image() Sascha Hauer 3 siblings, 0 replies; 7+ messages in thread From: Alexander Shiyan @ 2025-03-05 6:21 UTC (permalink / raw) To: barebox; +Cc: Alexander Shiyan Trivial code cleanup, which includes: - Adding/removing blank lines for better code readability. - Wrapping the of_compatible driver property in DRV_OF_COMPAT(). Signed-off-by: Alexander Shiyan <eagle.alexander923@gmail.com> --- arch/arm/mach-at91/ddramc.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/arch/arm/mach-at91/ddramc.c b/arch/arm/mach-at91/ddramc.c index ca77889ecc..ffedd39d6b 100644 --- a/arch/arm/mach-at91/ddramc.c +++ b/arch/arm/mach-at91/ddramc.c @@ -22,6 +22,7 @@ static unsigned sama5_ramsize(void __iomem *base) void __noreturn sama5d2_barebox_entry(unsigned int r4, void *boarddata) { __sama5d2_stashed_bootrom_r4 = r4; + barebox_arm_entry(SAMA5_DDRCS, sama5_ramsize(SAMA5D2_BASE_MPDDRC), boarddata); } @@ -33,6 +34,7 @@ void __noreturn sama5d3_barebox_entry(unsigned int r4, void *boarddata) barebox_arm_entry(SAMA5_DDRCS, sama5_ramsize(IOMEM(SAMA5D3_BASE_MPDDRC)), boarddata); } + void __noreturn sama5d4_barebox_entry(unsigned int r4, void *boarddata) { __sama5d4_stashed_bootrom_r4 = r4; @@ -54,7 +56,7 @@ static int sama5_ddr_probe(struct device *dev) return arm_add_mem_device("ram0", SAMA5_DDRCS, sama5_ramsize(base)); } -static struct of_device_id sama5_ddr_dt_ids[] = { +static __maybe_unused struct of_device_id sama5_ddr_dt_ids[] = { { .compatible = "atmel,sama5d3-ddramc" }, { /* sentinel */ } }; @@ -63,7 +65,6 @@ MODULE_DEVICE_TABLE(of, sama5_ddr_dt_ids); static struct driver sama5_ddr_driver = { .name = "sama5-ddramc", .probe = sama5_ddr_probe, - .of_compatible = sama5_ddr_dt_ids, + .of_compatible = DRV_OF_COMPAT(sama5_ddr_dt_ids), }; - mem_platform_driver(sama5_ddr_driver); -- 2.39.1 ^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 4/4] at91: Use proper values of stashed SAMA5D2/3/4 bootsource 2025-03-05 6:20 [PATCH 1/4] at91:: Remove dead definition of atmel_nand_load_image() Alexander Shiyan 2025-03-05 6:20 ` [PATCH 2/4] at91: Use the ddramc driver for all boards whose architecture uses it Alexander Shiyan 2025-03-05 6:21 ` [PATCH 3/4] at91: ddramc: Trivial code cleanup Alexander Shiyan @ 2025-03-05 6:21 ` Alexander Shiyan 2025-03-07 8:20 ` (subset) [PATCH 1/4] at91:: Remove dead definition of atmel_nand_load_image() Sascha Hauer 3 siblings, 0 replies; 7+ messages in thread From: Alexander Shiyan @ 2025-03-05 6:21 UTC (permalink / raw) To: barebox; +Cc: Alexander Shiyan Since the SRAM area varies across different processor variants, let's make a distinction for stashed bootsource recovery. Signed-off-by: Alexander Shiyan <eagle.alexander923@gmail.com> --- arch/arm/mach-at91/sama5_bootsource.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/arch/arm/mach-at91/sama5_bootsource.c b/arch/arm/mach-at91/sama5_bootsource.c index 4ede256e8f..0d91f5fb5a 100644 --- a/arch/arm/mach-at91/sama5_bootsource.c +++ b/arch/arm/mach-at91/sama5_bootsource.c @@ -19,11 +19,15 @@ */ static int sama5_bootsource_init(void) { - if (!of_machine_is_compatible("atmel,sama5")) + if (of_machine_is_compatible("atmel,sama5d2")) + at91_bootsource = __sama5d2_stashed_bootrom_r4; + else if (of_machine_is_compatible("atmel,sama5d3")) + at91_bootsource = __sama5d3_stashed_bootrom_r4; + else if (of_machine_is_compatible("atmel,sama5d4")) + at91_bootsource = __sama5d4_stashed_bootrom_r4; + else return 0; - at91_bootsource = __sama5d2_stashed_bootrom_r4; - if (at91_bootsource) bootsource_set_raw(sama5_bootsource(at91_bootsource), sama5_bootsource_instance(at91_bootsource)); -- 2.39.1 ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: (subset) [PATCH 1/4] at91:: Remove dead definition of atmel_nand_load_image() 2025-03-05 6:20 [PATCH 1/4] at91:: Remove dead definition of atmel_nand_load_image() Alexander Shiyan ` (2 preceding siblings ...) 2025-03-05 6:21 ` [PATCH 4/4] at91: Use proper values of stashed SAMA5D2/3/4 bootsource Alexander Shiyan @ 2025-03-07 8:20 ` Sascha Hauer 3 siblings, 0 replies; 7+ messages in thread From: Sascha Hauer @ 2025-03-07 8:20 UTC (permalink / raw) To: barebox, Alexander Shiyan On Wed, 05 Mar 2025 09:20:58 +0300, Alexander Shiyan wrote: > atmel_nand_load_image() is not defined anywhere. > > Applied, thanks! [1/4] at91:: Remove dead definition of atmel_nand_load_image() https://git.pengutronix.de/cgit/barebox/commit/?id=b4f53ca046e0 (link may not be stable) [3/4] at91: ddramc: Trivial code cleanup https://git.pengutronix.de/cgit/barebox/commit/?id=94bb3615d786 (link may not be stable) [4/4] at91: Use proper values of stashed SAMA5D2/3/4 bootsource https://git.pengutronix.de/cgit/barebox/commit/?id=b70ae92dda7a (link may not be stable) Best regards, -- Sascha Hauer <s.hauer@pengutronix.de> ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2025-03-07 8:24 UTC | newest] Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2025-03-05 6:20 [PATCH 1/4] at91:: Remove dead definition of atmel_nand_load_image() Alexander Shiyan 2025-03-05 6:20 ` [PATCH 2/4] at91: Use the ddramc driver for all boards whose architecture uses it Alexander Shiyan 2025-03-07 8:18 ` Sascha Hauer 2025-03-07 8:24 ` Alexander Shiyan 2025-03-05 6:21 ` [PATCH 3/4] at91: ddramc: Trivial code cleanup Alexander Shiyan 2025-03-05 6:21 ` [PATCH 4/4] at91: Use proper values of stashed SAMA5D2/3/4 bootsource Alexander Shiyan 2025-03-07 8:20 ` (subset) [PATCH 1/4] at91:: Remove dead definition of atmel_nand_load_image() Sascha Hauer
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox