Message ID | 20220126135329.2997430-10-Mr.Bossman075@gmail.com |
---|---|
State | Superseded |
Delegated to: | Andre Przywara |
Headers | show |
Series | Add support for SUNIV and F1C100s. | expand |
On 1/26/22 08:53, Jesse Taube wrote: > From: Icenowy Zheng <icenowy@aosc.io> > > Adds support for SUNIV and the F1C100s. > > Signed-off-by: Icenowy Zheng <icenowy@aosc.io> > Signed-off-by: Jesse Taube <Mr.Bossman075@gmail.com> > --- > V1->V2: > * Combine ifdefs > * Fix indentation > * Fix negative logic > * Fix rebase artifacts > * Remove CONFIG_SYS_LOAD_ADDR > * Remove CONFIG_ENV_SECT_SIZE > --- > include/configs/suniv.h | 14 ++++++++ > include/configs/sunxi-common.h | 59 +++++++++++++++++++++++++--------- > 2 files changed, 57 insertions(+), 16 deletions(-) > create mode 100644 include/configs/suniv.h > > diff --git a/include/configs/suniv.h b/include/configs/suniv.h > new file mode 100644 > index 0000000000..6118cd5e1a > --- /dev/null > +++ b/include/configs/suniv.h > @@ -0,0 +1,14 @@ > +/* SPDX-License-Identifier: GPL-2.0+ */ > +/* > + * Configuration settings for new Allwinner F-series (suniv) CPU > + */ > + > +#ifndef __CONFIG_H > +#define __CONFIG_H > + > +/* > + * Include common sunxi configuration where most the settings are > + */ > +#include <configs/sunxi-common.h> > + > +#endif /* __CONFIG_H */ > diff --git a/include/configs/sunxi-common.h b/include/configs/sunxi-common.h > index 7260eb72a4..38c3321c4f 100644 > --- a/include/configs/sunxi-common.h > +++ b/include/configs/sunxi-common.h > @@ -22,7 +22,12 @@ > /* Serial & console */ > #define CONFIG_SYS_NS16550_SERIAL > /* ns16550 reg in the low bits of cpu reg */ > +#ifdef CONFIG_MACH_SUNIV > +/* suniv doesn't have apb2 and uart is connected to apb1 */ > +#define CONFIG_SYS_NS16550_CLK 100000000 > +#else > #define CONFIG_SYS_NS16550_CLK 24000000 > +#endif > #ifndef CONFIG_DM_SERIAL > # define CONFIG_SYS_NS16550_REG_SIZE -4 > # define CONFIG_SYS_NS16550_COM1 SUNXI_UART0_BASE > @@ -49,6 +54,15 @@ > * since it needs to fit in with the other values. By also #defining it > * we get warnings if the Kconfig value mismatches. */ > #define CONFIG_SPL_BSS_START_ADDR 0x2ff80000 > +#elif defined(CONFIG_MACH_SUNIV) > +#define SDRAM_OFFSET(x) 0x8##x > +#define CONFIG_SYS_SDRAM_BASE 0x80000000 > +/* Note SPL_STACK_R_ADDR is set through Kconfig, we include it here > + * since it needs to fit in with the other values. By also #defining it > + * we get warnings if the Kconfig value mismatches. > + */ > +#define CONFIG_SPL_STACK_R_ADDR 0x81e00000 > +#define CONFIG_SPL_BSS_START_ADDR 0x81f80000 > #else > #define SDRAM_OFFSET(x) 0x4##x > #define CONFIG_SYS_SDRAM_BASE 0x40000000 > @@ -186,21 +200,7 @@ > #define FDTOVERLAY_ADDR_R __stringify(SDRAM_OFFSET(FE00000)) > #define RAMDISK_ADDR_R __stringify(SDRAM_OFFSET(FF00000)) > > -#else > -/* > - * 160M RAM (256M minimum minus 64MB heap + 32MB for u-boot, stack, fb, etc. > - * 32M uncompressed kernel, 16M compressed kernel, 1M fdt, > - * 1M script, 1M pxe, 1M dt overlay and the ramdisk at the end. > - */ > -#ifndef CONFIG_MACH_SUN8I_V3S > -#define BOOTM_SIZE __stringify(0xa000000) > -#define KERNEL_ADDR_R __stringify(SDRAM_OFFSET(2000000)) > -#define FDT_ADDR_R __stringify(SDRAM_OFFSET(3000000)) > -#define SCRIPT_ADDR_R __stringify(SDRAM_OFFSET(3100000)) > -#define PXEFILE_ADDR_R __stringify(SDRAM_OFFSET(3200000)) > -#define FDTOVERLAY_ADDR_R __stringify(SDRAM_OFFSET(3300000)) > -#define RAMDISK_ADDR_R __stringify(SDRAM_OFFSET(3400000)) > -#else > +#elif defined(CONFIG_MACH_SUN8I_V3S) > /* > * 64M RAM minus 2MB heap + 16MB for u-boot, stack, fb, etc. > * 16M uncompressed kernel, 8M compressed kernel, 1M fdt, > @@ -213,7 +213,34 @@ > #define PXEFILE_ADDR_R __stringify(SDRAM_OFFSET(1A00000)) > #define FDTOVERLAY_ADDR_R __stringify(SDRAM_OFFSET(1B00000)) > #define RAMDISK_ADDR_R __stringify(SDRAM_OFFSET(1C00000)) > -#endif > + > +#elif defined(CONFIG_MACH_SUNIV) > +/* > + * 32M RAM minus 1MB heap + 8MB for u-boot, stack, fb, etc. > + * 8M uncompressed kernel, 4M compressed kernel, 512K fdt, > + * 512K script, 512K pxe and the ramdisk at the end. > + */ > +#define BOOTM_SIZE __stringify(0x1700000) > +#define KERNEL_ADDR_R __stringify(SDRAM_OFFSET(0500000)) > +#define FDT_ADDR_R __stringify(SDRAM_OFFSET(0C00000)) > +#define SCRIPT_ADDR_R __stringify(SDRAM_OFFSET(0C50000)) > +#define PXEFILE_ADDR_R __stringify(SDRAM_OFFSET(0D00000)) > +#define FDTOVERLAY_ADDR_R __stringify(SDRAM_OFFSET(0D50000)) > +#define RAMDISK_ADDR_R __stringify(SDRAM_OFFSET(0D60000)) > + > +#else > +/* > + * 160M RAM (256M minimum minus 64MB heap + 32MB for u-boot, stack, fb, etc. > + * 32M uncompressed kernel, 16M compressed kernel, 1M fdt, > + * 1M script, 1M pxe and the ramdisk at the end. > + */ ^^^^^^ I copied wrong comment I'll fix this in V3... > +#define BOOTM_SIZE __stringify(0xa000000) > +#define KERNEL_ADDR_R __stringify(SDRAM_OFFSET(2000000)) > +#define FDT_ADDR_R __stringify(SDRAM_OFFSET(3000000)) > +#define SCRIPT_ADDR_R __stringify(SDRAM_OFFSET(3100000)) > +#define PXEFILE_ADDR_R __stringify(SDRAM_OFFSET(3200000)) > +#define FDTOVERLAY_ADDR_R __stringify(SDRAM_OFFSET(3300000)) > +#define RAMDISK_ADDR_R __stringify(SDRAM_OFFSET(3400000)) > #endif > > #define MEM_LAYOUT_ENV_SETTINGS \
On Wed, 26 Jan 2022 08:53:26 -0500 Jesse Taube <mr.bossman075@gmail.com> wrote: > From: Icenowy Zheng <icenowy@aosc.io> > > Adds support for SUNIV and the F1C100s. > > Signed-off-by: Icenowy Zheng <icenowy@aosc.io> > Signed-off-by: Jesse Taube <Mr.Bossman075@gmail.com> With that comment fixed, as you mentioned in the reply to this mail, and with making sure the V3s comment stays the same (you lost dt overlay): Reviewed-by: Andre Przywara <andre.przywara@arm.com> Cheers, Andre > --- > V1->V2: > * Combine ifdefs > * Fix indentation > * Fix negative logic > * Fix rebase artifacts > * Remove CONFIG_SYS_LOAD_ADDR > * Remove CONFIG_ENV_SECT_SIZE > --- > include/configs/suniv.h | 14 ++++++++ > include/configs/sunxi-common.h | 59 +++++++++++++++++++++++++--------- > 2 files changed, 57 insertions(+), 16 deletions(-) > create mode 100644 include/configs/suniv.h > > diff --git a/include/configs/suniv.h b/include/configs/suniv.h > new file mode 100644 > index 0000000000..6118cd5e1a > --- /dev/null > +++ b/include/configs/suniv.h > @@ -0,0 +1,14 @@ > +/* SPDX-License-Identifier: GPL-2.0+ */ > +/* > + * Configuration settings for new Allwinner F-series (suniv) CPU > + */ > + > +#ifndef __CONFIG_H > +#define __CONFIG_H > + > +/* > + * Include common sunxi configuration where most the settings are > + */ > +#include <configs/sunxi-common.h> > + > +#endif /* __CONFIG_H */ > diff --git a/include/configs/sunxi-common.h b/include/configs/sunxi-common.h > index 7260eb72a4..38c3321c4f 100644 > --- a/include/configs/sunxi-common.h > +++ b/include/configs/sunxi-common.h > @@ -22,7 +22,12 @@ > /* Serial & console */ > #define CONFIG_SYS_NS16550_SERIAL > /* ns16550 reg in the low bits of cpu reg */ > +#ifdef CONFIG_MACH_SUNIV > +/* suniv doesn't have apb2 and uart is connected to apb1 */ > +#define CONFIG_SYS_NS16550_CLK 100000000 > +#else > #define CONFIG_SYS_NS16550_CLK 24000000 > +#endif > #ifndef CONFIG_DM_SERIAL > # define CONFIG_SYS_NS16550_REG_SIZE -4 > # define CONFIG_SYS_NS16550_COM1 SUNXI_UART0_BASE > @@ -49,6 +54,15 @@ > * since it needs to fit in with the other values. By also #defining it > * we get warnings if the Kconfig value mismatches. */ > #define CONFIG_SPL_BSS_START_ADDR 0x2ff80000 > +#elif defined(CONFIG_MACH_SUNIV) > +#define SDRAM_OFFSET(x) 0x8##x > +#define CONFIG_SYS_SDRAM_BASE 0x80000000 > +/* Note SPL_STACK_R_ADDR is set through Kconfig, we include it here > + * since it needs to fit in with the other values. By also #defining it > + * we get warnings if the Kconfig value mismatches. > + */ > +#define CONFIG_SPL_STACK_R_ADDR 0x81e00000 > +#define CONFIG_SPL_BSS_START_ADDR 0x81f80000 > #else > #define SDRAM_OFFSET(x) 0x4##x > #define CONFIG_SYS_SDRAM_BASE 0x40000000 > @@ -186,21 +200,7 @@ > #define FDTOVERLAY_ADDR_R __stringify(SDRAM_OFFSET(FE00000)) > #define RAMDISK_ADDR_R __stringify(SDRAM_OFFSET(FF00000)) > > -#else > -/* > - * 160M RAM (256M minimum minus 64MB heap + 32MB for u-boot, stack, fb, etc. > - * 32M uncompressed kernel, 16M compressed kernel, 1M fdt, > - * 1M script, 1M pxe, 1M dt overlay and the ramdisk at the end. > - */ > -#ifndef CONFIG_MACH_SUN8I_V3S > -#define BOOTM_SIZE __stringify(0xa000000) > -#define KERNEL_ADDR_R __stringify(SDRAM_OFFSET(2000000)) > -#define FDT_ADDR_R __stringify(SDRAM_OFFSET(3000000)) > -#define SCRIPT_ADDR_R __stringify(SDRAM_OFFSET(3100000)) > -#define PXEFILE_ADDR_R __stringify(SDRAM_OFFSET(3200000)) > -#define FDTOVERLAY_ADDR_R __stringify(SDRAM_OFFSET(3300000)) > -#define RAMDISK_ADDR_R __stringify(SDRAM_OFFSET(3400000)) > -#else > +#elif defined(CONFIG_MACH_SUN8I_V3S) > /* > * 64M RAM minus 2MB heap + 16MB for u-boot, stack, fb, etc. > * 16M uncompressed kernel, 8M compressed kernel, 1M fdt, > @@ -213,7 +213,34 @@ > #define PXEFILE_ADDR_R __stringify(SDRAM_OFFSET(1A00000)) > #define FDTOVERLAY_ADDR_R __stringify(SDRAM_OFFSET(1B00000)) > #define RAMDISK_ADDR_R __stringify(SDRAM_OFFSET(1C00000)) > -#endif > + > +#elif defined(CONFIG_MACH_SUNIV) > +/* > + * 32M RAM minus 1MB heap + 8MB for u-boot, stack, fb, etc. > + * 8M uncompressed kernel, 4M compressed kernel, 512K fdt, > + * 512K script, 512K pxe and the ramdisk at the end. > + */ > +#define BOOTM_SIZE __stringify(0x1700000) > +#define KERNEL_ADDR_R __stringify(SDRAM_OFFSET(0500000)) > +#define FDT_ADDR_R __stringify(SDRAM_OFFSET(0C00000)) > +#define SCRIPT_ADDR_R __stringify(SDRAM_OFFSET(0C50000)) > +#define PXEFILE_ADDR_R __stringify(SDRAM_OFFSET(0D00000)) > +#define FDTOVERLAY_ADDR_R __stringify(SDRAM_OFFSET(0D50000)) > +#define RAMDISK_ADDR_R __stringify(SDRAM_OFFSET(0D60000)) > + > +#else > +/* > + * 160M RAM (256M minimum minus 64MB heap + 32MB for u-boot, stack, fb, etc. > + * 32M uncompressed kernel, 16M compressed kernel, 1M fdt, > + * 1M script, 1M pxe and the ramdisk at the end. > + */ > +#define BOOTM_SIZE __stringify(0xa000000) > +#define KERNEL_ADDR_R __stringify(SDRAM_OFFSET(2000000)) > +#define FDT_ADDR_R __stringify(SDRAM_OFFSET(3000000)) > +#define SCRIPT_ADDR_R __stringify(SDRAM_OFFSET(3100000)) > +#define PXEFILE_ADDR_R __stringify(SDRAM_OFFSET(3200000)) > +#define FDTOVERLAY_ADDR_R __stringify(SDRAM_OFFSET(3300000)) > +#define RAMDISK_ADDR_R __stringify(SDRAM_OFFSET(3400000)) > #endif > > #define MEM_LAYOUT_ENV_SETTINGS \
diff --git a/include/configs/suniv.h b/include/configs/suniv.h new file mode 100644 index 0000000000..6118cd5e1a --- /dev/null +++ b/include/configs/suniv.h @@ -0,0 +1,14 @@ +/* SPDX-License-Identifier: GPL-2.0+ */ +/* + * Configuration settings for new Allwinner F-series (suniv) CPU + */ + +#ifndef __CONFIG_H +#define __CONFIG_H + +/* + * Include common sunxi configuration where most the settings are + */ +#include <configs/sunxi-common.h> + +#endif /* __CONFIG_H */ diff --git a/include/configs/sunxi-common.h b/include/configs/sunxi-common.h index 7260eb72a4..38c3321c4f 100644 --- a/include/configs/sunxi-common.h +++ b/include/configs/sunxi-common.h @@ -22,7 +22,12 @@ /* Serial & console */ #define CONFIG_SYS_NS16550_SERIAL /* ns16550 reg in the low bits of cpu reg */ +#ifdef CONFIG_MACH_SUNIV +/* suniv doesn't have apb2 and uart is connected to apb1 */ +#define CONFIG_SYS_NS16550_CLK 100000000 +#else #define CONFIG_SYS_NS16550_CLK 24000000 +#endif #ifndef CONFIG_DM_SERIAL # define CONFIG_SYS_NS16550_REG_SIZE -4 # define CONFIG_SYS_NS16550_COM1 SUNXI_UART0_BASE @@ -49,6 +54,15 @@ * since it needs to fit in with the other values. By also #defining it * we get warnings if the Kconfig value mismatches. */ #define CONFIG_SPL_BSS_START_ADDR 0x2ff80000 +#elif defined(CONFIG_MACH_SUNIV) +#define SDRAM_OFFSET(x) 0x8##x +#define CONFIG_SYS_SDRAM_BASE 0x80000000 +/* Note SPL_STACK_R_ADDR is set through Kconfig, we include it here + * since it needs to fit in with the other values. By also #defining it + * we get warnings if the Kconfig value mismatches. + */ +#define CONFIG_SPL_STACK_R_ADDR 0x81e00000 +#define CONFIG_SPL_BSS_START_ADDR 0x81f80000 #else #define SDRAM_OFFSET(x) 0x4##x #define CONFIG_SYS_SDRAM_BASE 0x40000000 @@ -186,21 +200,7 @@ #define FDTOVERLAY_ADDR_R __stringify(SDRAM_OFFSET(FE00000)) #define RAMDISK_ADDR_R __stringify(SDRAM_OFFSET(FF00000)) -#else -/* - * 160M RAM (256M minimum minus 64MB heap + 32MB for u-boot, stack, fb, etc. - * 32M uncompressed kernel, 16M compressed kernel, 1M fdt, - * 1M script, 1M pxe, 1M dt overlay and the ramdisk at the end. - */ -#ifndef CONFIG_MACH_SUN8I_V3S -#define BOOTM_SIZE __stringify(0xa000000) -#define KERNEL_ADDR_R __stringify(SDRAM_OFFSET(2000000)) -#define FDT_ADDR_R __stringify(SDRAM_OFFSET(3000000)) -#define SCRIPT_ADDR_R __stringify(SDRAM_OFFSET(3100000)) -#define PXEFILE_ADDR_R __stringify(SDRAM_OFFSET(3200000)) -#define FDTOVERLAY_ADDR_R __stringify(SDRAM_OFFSET(3300000)) -#define RAMDISK_ADDR_R __stringify(SDRAM_OFFSET(3400000)) -#else +#elif defined(CONFIG_MACH_SUN8I_V3S) /* * 64M RAM minus 2MB heap + 16MB for u-boot, stack, fb, etc. * 16M uncompressed kernel, 8M compressed kernel, 1M fdt, @@ -213,7 +213,34 @@ #define PXEFILE_ADDR_R __stringify(SDRAM_OFFSET(1A00000)) #define FDTOVERLAY_ADDR_R __stringify(SDRAM_OFFSET(1B00000)) #define RAMDISK_ADDR_R __stringify(SDRAM_OFFSET(1C00000)) -#endif + +#elif defined(CONFIG_MACH_SUNIV) +/* + * 32M RAM minus 1MB heap + 8MB for u-boot, stack, fb, etc. + * 8M uncompressed kernel, 4M compressed kernel, 512K fdt, + * 512K script, 512K pxe and the ramdisk at the end. + */ +#define BOOTM_SIZE __stringify(0x1700000) +#define KERNEL_ADDR_R __stringify(SDRAM_OFFSET(0500000)) +#define FDT_ADDR_R __stringify(SDRAM_OFFSET(0C00000)) +#define SCRIPT_ADDR_R __stringify(SDRAM_OFFSET(0C50000)) +#define PXEFILE_ADDR_R __stringify(SDRAM_OFFSET(0D00000)) +#define FDTOVERLAY_ADDR_R __stringify(SDRAM_OFFSET(0D50000)) +#define RAMDISK_ADDR_R __stringify(SDRAM_OFFSET(0D60000)) + +#else +/* + * 160M RAM (256M minimum minus 64MB heap + 32MB for u-boot, stack, fb, etc. + * 32M uncompressed kernel, 16M compressed kernel, 1M fdt, + * 1M script, 1M pxe and the ramdisk at the end. + */ +#define BOOTM_SIZE __stringify(0xa000000) +#define KERNEL_ADDR_R __stringify(SDRAM_OFFSET(2000000)) +#define FDT_ADDR_R __stringify(SDRAM_OFFSET(3000000)) +#define SCRIPT_ADDR_R __stringify(SDRAM_OFFSET(3100000)) +#define PXEFILE_ADDR_R __stringify(SDRAM_OFFSET(3200000)) +#define FDTOVERLAY_ADDR_R __stringify(SDRAM_OFFSET(3300000)) +#define RAMDISK_ADDR_R __stringify(SDRAM_OFFSET(3400000)) #endif #define MEM_LAYOUT_ENV_SETTINGS \