Skip to contentSkip to conversation

config: peach: Correct memory layout environment settings

PATCH New Sjoerd Simons 4 participants 11 messages Mar 12, 2015 – Apr 6, 2015

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 config: peach: Correct memory layout environment settings

The peach boards have their SDRAM start address at 0x20000000 instead of 0x40000000 which seems common for all other exynos5 based boards. This means the layout set in exynos5-common.h causes the kernel be loaded more then 128MB (at 0x42000000) away from memory start which breaks booting kernels with CONFIG_AUTO_ZRELADDR

Define a custom MEM_LAYOUT_ENV_SETTINGS for both peach boards which uses the same offsets from start of memory as the common exynos5 settings.

This fixes booting via bootz and PXE

---
 include/configs/peach-pi.h  | 8 ++++++++
 include/configs/peach-pit.h | 8 ++++++++
 2 files changed, 16 insertions(+)
include/configs/peach-pi.h +8 -0
index f04f061..e3cb09e 100644
@@ -16,6 +16,14 @@
 #define CONFIG_ENV_OFFSET	(FLASH_SIZE - CONFIG_BL2_SIZE)
 #define CONFIG_SPI_BOOTING
 
+#define MEM_LAYOUT_ENV_SETTINGS \
+	"bootm_size=0x10000000\0" \
+	"kernel_addr_r=0x22000000\0" \
+	"fdt_addr_r=0x23000000\0" \
+	"ramdisk_addr_r=0x23300000\0" \
+	"scriptaddr=0x30000000\0" \
+	"pxefile_addr_r=0x31000000\0"
+
 #include <configs/exynos5420-common.h>
 #include <configs/exynos5-dt-common.h>
 
include/configs/peach-pit.h +8 -0
index b5efbdc..3ee42ef 100644
@@ -16,6 +16,14 @@
 #define CONFIG_ENV_OFFSET	(FLASH_SIZE - CONFIG_BL2_SIZE)
 #define CONFIG_SPI_BOOTING
 
+#define MEM_LAYOUT_ENV_SETTINGS \
+	"bootm_size=0x10000000\0" \
+	"kernel_addr_r=0x22000000\0" \
+	"fdt_addr_r=0x23000000\0" \
+	"ramdisk_addr_r=0x23300000\0" \
+	"scriptaddr=0x30000000\0" \
+	"pxefile_addr_r=0x31000000\0"
+
 #include <configs/exynos5420-common.h>
 #include <configs/exynos5-dt-common.h>
 
Signature · 1 line
2.1.4
#1 lore raw

PATCH 1/1 config: peach: Correct memory layout environment settings

Hi Sjoerd,

Quoted 44 lines · Sjoerd Simons

The peach boards have their SDRAM start address at 0x20000000 instead of 0x40000000 which seems common for all other exynos5 based boards. This means the layout set in exynos5-common.h causes the kernel be loaded more then 128MB (at 0x42000000) away from memory start which breaks booting kernels with CONFIG_AUTO_ZRELADDR

Define a custom MEM_LAYOUT_ENV_SETTINGS for both peach boards which uses the same offsets from start of memory as the common exynos5 settings.

This fixes booting via bootz and PXE

---
 include/configs/peach-pi.h  | 8 ++++++++
 include/configs/peach-pit.h | 8 ++++++++
 2 files changed, 16 insertions(+)
include/configs/peach-pi.h +8 -0
index f04f061..e3cb09e 100644
@@ -16,6 +16,14 @@
 #define CONFIG_ENV_OFFSET      (FLASH_SIZE - CONFIG_BL2_SIZE)
 #define CONFIG_SPI_BOOTING
 
+#define MEM_LAYOUT_ENV_SETTINGS \
+       "bootm_size=0x10000000\0" \
+       "kernel_addr_r=0x22000000\0" \
+       "fdt_addr_r=0x23000000\0" \
+       "ramdisk_addr_r=0x23300000\0" \
+       "scriptaddr=0x30000000\0" \
+       "pxefile_addr_r=0x31000000\0"
+
 #include <configs/exynos5420-common.h>
 #include <configs/exynos5-dt-common.h>
 
include/configs/peach-pit.h +0 -0
index b5efbdc..3ee42ef 100644
@@ -16,6 +16,14 @@
 #define CONFIG_ENV_OFFSET      (FLASH_SIZE - CONFIG_BL2_SIZE)
 #define CONFIG_SPI_BOOTING
 

include/configs/peach-pit.h line 28

Quoted 10 lines
include/configs/peach-pit.h +8 -0
+#define MEM_LAYOUT_ENV_SETTINGS \
+       "bootm_size=0x10000000\0" \
+       "kernel_addr_r=0x22000000\0" \
+       "fdt_addr_r=0x23000000\0" \
+       "ramdisk_addr_r=0x23300000\0" \
+       "scriptaddr=0x30000000\0" \
+       "pxefile_addr_r=0x31000000\0"
+
 #include <configs/exynos5420-common.h>
 #include <configs/exynos5-dt-common.h>

It would be great if we could have this in the device tree.

I haven't merged this patch yet, but it goes some of the way:

http://patchwork.ozlabs.org/patch/402714/

Regards,
Simon

#2 lore raw

PATCH 1/1 config: peach: Correct memory layout environment settings

Hey Simon,

Quoted 13 lines · Simon Glass

Hi Sjoerd,

Quoted 10 lines · Sjoerd Simons

The peach boards have their SDRAM start address at 0x20000000 instead of 0x40000000 which seems common for all other exynos5 based boards. This means the layout set in exynos5-common.h causes the kernel be loaded more then 128MB (at 0x42000000) away from memory start which breaks booting kernels with CONFIG_AUTO_ZRELADDR

Define a custom MEM_LAYOUT_ENV_SETTINGS for both peach boards which uses the same offsets from start of memory as the common exynos5 settings.

This fixes booting via bootz and PXE

<snip>

Quoted 5 lines

It would be great if we could have this in the device tree.

I haven't merged this patch yet, but it goes some of the way:

http://patchwork.ozlabs.org/patch/402714/

I think it would be awesome to have this via device tree as well as that would be another step closer to allowing one u-boot binary for a group of boards. However, that's clearly much more work. So for the short term (and ideally the coming release) i'd quite prefer this minimal change to go in to unbreak bootz and PXE on these boards.

Signature · 2 lines
Sjoerd Simons <[email protected]>
Collabora Ltd.
#3 lore raw

PATCH 1/1 config: peach: Correct memory layout environment settings

Hi Sjoerd,

Quoted 24 lines · Sjoerd Simons

Hey Simon,

Quoted 13 lines · Simon Glass

Hi Sjoerd,

Quoted 10 lines · Sjoerd Simons

The peach boards have their SDRAM start address at 0x20000000 instead of 0x40000000 which seems common for all other exynos5 based boards. This means the layout set in exynos5-common.h causes the kernel be loaded more then 128MB (at 0x42000000) away from memory start which breaks booting kernels with CONFIG_AUTO_ZRELADDR

Define a custom MEM_LAYOUT_ENV_SETTINGS for both peach boards which uses the same offsets from start of memory as the common exynos5 settings.

This fixes booting via bootz and PXE

<snip>

Quoted 4 lines

It would be great if we could have this in the device tree.

I haven't merged this patch yet, but it goes some of the way:

Quoted 7 lines
Quoted 1 line

http://patchwork.ozlabs.org/patch/402714/

I think it would be awesome to have this via device tree as well as that would be another step closer to allowing one u-boot binary for a group of boards. However, that's clearly much more work. So for the short term (and ideally the coming release) i'd quite prefer this minimal change to go in to unbreak bootz and PXE on these boards.

OK.

Who is going to apply this?

Regards,
Simon

#4 lore raw

PATCH 1/1 config: peach: Correct memory layout environment settings

In reply to Simon Glass
Quoted 47 lines · Simon Glass

Hi Sjoerd,

Quoted 44 lines · Sjoerd Simons

The peach boards have their SDRAM start address at 0x20000000 instead of 0x40000000 which seems common for all other exynos5 based boards. This means the layout set in exynos5-common.h causes the kernel be loaded more then 128MB (at 0x42000000) away from memory start which breaks booting kernels with CONFIG_AUTO_ZRELADDR

Define a custom MEM_LAYOUT_ENV_SETTINGS for both peach boards which uses the same offsets from start of memory as the common exynos5 settings.

This fixes booting via bootz and PXE

---
 include/configs/peach-pi.h  | 8 ++++++++
 include/configs/peach-pit.h | 8 ++++++++
 2 files changed, 16 insertions(+)
include/configs/peach-pi.h +8 -0
index f04f061..e3cb09e 100644
@@ -16,6 +16,14 @@
 #define CONFIG_ENV_OFFSET      (FLASH_SIZE - CONFIG_BL2_SIZE)
 #define CONFIG_SPI_BOOTING
 
+#define MEM_LAYOUT_ENV_SETTINGS \
+       "bootm_size=0x10000000\0" \
+       "kernel_addr_r=0x22000000\0" \
+       "fdt_addr_r=0x23000000\0" \
+       "ramdisk_addr_r=0x23300000\0" \
+       "scriptaddr=0x30000000\0" \
+       "pxefile_addr_r=0x31000000\0"
+
 #include <configs/exynos5420-common.h>
 #include <configs/exynos5-dt-common.h>
 
include/configs/peach-pit.h +0 -0
index b5efbdc..3ee42ef 100644
@@ -16,6 +16,14 @@
 #define CONFIG_ENV_OFFSET      (FLASH_SIZE - CONFIG_BL2_SIZE)
 #define CONFIG_SPI_BOOTING
 
Quoted 12 lines

include/configs/peach-pit.h line 28

Quoted 10 lines
include/configs/peach-pit.h +8 -0
+#define MEM_LAYOUT_ENV_SETTINGS \
+       "bootm_size=0x10000000\0" \
+       "kernel_addr_r=0x22000000\0" \
+       "fdt_addr_r=0x23000000\0" \
+       "ramdisk_addr_r=0x23300000\0" \
+       "scriptaddr=0x30000000\0" \
+       "pxefile_addr_r=0x31000000\0"
+
 #include <configs/exynos5420-common.h>
 #include <configs/exynos5-dt-common.h>

It would be great if we could have this in the device tree.

I understand what you're thinking but this is environment. And really this is not board specific, this is SoC family specific which is why the similar part for TI stuff is in ti_armv7_common.h :)

Signature · 8 lines
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20150325/7e529259/attachment.sig>
#5 lore raw

PATCH 1/1 config: peach: Correct memory layout environment settings

Quoted 61 lines · Tom Rini
Quoted 47 lines · Simon Glass

Hi Sjoerd,

Quoted 44 lines · Sjoerd Simons

The peach boards have their SDRAM start address at 0x20000000 instead of 0x40000000 which seems common for all other exynos5 based boards. This means the layout set in exynos5-common.h causes the kernel be loaded more then 128MB (at 0x42000000) away from memory start which breaks booting kernels with CONFIG_AUTO_ZRELADDR

Define a custom MEM_LAYOUT_ENV_SETTINGS for both peach boards which uses the same offsets from start of memory as the common exynos5 settings.

This fixes booting via bootz and PXE

---
 include/configs/peach-pi.h  | 8 ++++++++
 include/configs/peach-pit.h | 8 ++++++++
 2 files changed, 16 insertions(+)
include/configs/peach-pi.h +8 -0
index f04f061..e3cb09e 100644
@@ -16,6 +16,14 @@
 #define CONFIG_ENV_OFFSET      (FLASH_SIZE - CONFIG_BL2_SIZE)
 #define CONFIG_SPI_BOOTING
 
+#define MEM_LAYOUT_ENV_SETTINGS \
+       "bootm_size=0x10000000\0" \
+       "kernel_addr_r=0x22000000\0" \
+       "fdt_addr_r=0x23000000\0" \
+       "ramdisk_addr_r=0x23300000\0" \
+       "scriptaddr=0x30000000\0" \
+       "pxefile_addr_r=0x31000000\0"
+
 #include <configs/exynos5420-common.h>
 #include <configs/exynos5-dt-common.h>
 
include/configs/peach-pit.h +0 -0
index b5efbdc..3ee42ef 100644
@@ -16,6 +16,14 @@
 #define CONFIG_ENV_OFFSET      (FLASH_SIZE - CONFIG_BL2_SIZE)
 #define CONFIG_SPI_BOOTING
 
Quoted 12 lines

include/configs/peach-pit.h line 28

Quoted 10 lines
include/configs/peach-pit.h +8 -0
+#define MEM_LAYOUT_ENV_SETTINGS \
+       "bootm_size=0x10000000\0" \
+       "kernel_addr_r=0x22000000\0" \
+       "fdt_addr_r=0x23000000\0" \
+       "ramdisk_addr_r=0x23300000\0" \
+       "scriptaddr=0x30000000\0" \
+       "pxefile_addr_r=0x31000000\0"
+
 #include <configs/exynos5420-common.h>
 #include <configs/exynos5-dt-common.h>

It would be great if we could have this in the device tree.

Quoted 3 lines

I understand what you're thinking but this is environment. And really this is not board specific, this is SoC family specific which is why the similar part for TI stuff is in ti_armv7_common.h :)

Exynos 5 has the same in exynos5-common.h, however for whatever reason the peach pi/pit boards are different then other exynos board supported by u-boot thusfar. So in this case, this information _is_ board specific not platform specific.

But even in case of including it in device tree, a default/common setting could go into the platforms dtsi with board-specific overrides as needed.

One thing i have wondered though, looking at the various boards specifying the various memory layour addresses. They all end up being relatively similar offset to the base memory address, which makes me think it may be possible to calculate these values in the initialisation code rather then having to hardcode it in the environment. However, even if that's a sensible thing, something for later :)

Signature · 2 lines
Sjoerd Simons <[email protected]>
Collabora Ltd.
#6 lore raw

PATCH 1/1 config: peach: Correct memory layout environment settings

Quoted 62 lines · Sjoerd Simons
Quoted 61 lines · Tom Rini
Quoted 59 lines · Simon Glass

Hi Sjoerd,

Quoted 44 lines · Sjoerd Simons

The peach boards have their SDRAM start address at 0x20000000 instead of 0x40000000 which seems common for all other exynos5 based boards. This means the layout set in exynos5-common.h causes the kernel be loaded more then 128MB (at 0x42000000) away from memory start which breaks booting kernels with CONFIG_AUTO_ZRELADDR

Define a custom MEM_LAYOUT_ENV_SETTINGS for both peach boards which uses the same offsets from start of memory as the common exynos5 settings.

This fixes booting via bootz and PXE

---
 include/configs/peach-pi.h  | 8 ++++++++
 include/configs/peach-pit.h | 8 ++++++++
 2 files changed, 16 insertions(+)
include/configs/peach-pi.h +8 -0
index f04f061..e3cb09e 100644
@@ -16,6 +16,14 @@
 #define CONFIG_ENV_OFFSET      (FLASH_SIZE - CONFIG_BL2_SIZE)
 #define CONFIG_SPI_BOOTING
 
+#define MEM_LAYOUT_ENV_SETTINGS \
+       "bootm_size=0x10000000\0" \
+       "kernel_addr_r=0x22000000\0" \
+       "fdt_addr_r=0x23000000\0" \
+       "ramdisk_addr_r=0x23300000\0" \
+       "scriptaddr=0x30000000\0" \
+       "pxefile_addr_r=0x31000000\0"
+
 #include <configs/exynos5420-common.h>
 #include <configs/exynos5-dt-common.h>
 
include/configs/peach-pit.h +0 -0
index b5efbdc..3ee42ef 100644
@@ -16,6 +16,14 @@
 #define CONFIG_ENV_OFFSET      (FLASH_SIZE - CONFIG_BL2_SIZE)
 #define CONFIG_SPI_BOOTING
 

include/configs/peach-pit.h line 28

Quoted 10 lines
include/configs/peach-pit.h +8 -0
+#define MEM_LAYOUT_ENV_SETTINGS \
+       "bootm_size=0x10000000\0" \
+       "kernel_addr_r=0x22000000\0" \
+       "fdt_addr_r=0x23000000\0" \
+       "ramdisk_addr_r=0x23300000\0" \
+       "scriptaddr=0x30000000\0" \
+       "pxefile_addr_r=0x31000000\0"
+
 #include <configs/exynos5420-common.h>
 #include <configs/exynos5-dt-common.h>

It would be great if we could have this in the device tree.

Quoted 8 lines
Quoted 3 lines

I understand what you're thinking but this is environment. And really this is not board specific, this is SoC family specific which is why the similar part for TI stuff is in ti_armv7_common.h :)

Exynos 5 has the same in exynos5-common.h, however for whatever reason the peach pi/pit boards are different then other exynos board supported by u-boot thusfar. So in this case, this information _is_ board specific not platform specific.

Oh I missed that early on, sorry. But...

Why not change things around a bit to enable CONFIG_CMD_SETEXPR and then have MEM_LAYOUT_ENV_SETTINGS just set the exynos5_ddr_base and then setexpr kernel_addr_r $exynos5_ddr_base + 0x2000000
and similar in the generic part.

Quoted 10 lines

But even in case of including it in device tree, a default/common setting could go into the platforms dtsi with board-specific overrides as needed.

One thing i have wondered though, looking at the various boards specifying the various memory layour addresses. They all end up being relatively similar offset to the base memory address, which makes me think it may be possible to calculate these values in the initialisation code rather then having to hardcode it in the environment. However, even if that's a sensible thing, something for later :)

... Yes, we should then take what I just did above and make it even further wide-spread among boards where we have more than ~512MB DDR or so :)

Signature · 8 lines
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20150325/499ed3a6/attachment.sig>
#7 lore raw

PATCH 1/1 config: peach: Correct memory layout environment settings

Quoted 72 lines · Tom Rini
Quoted 62 lines · Sjoerd Simons
Quoted 61 lines · Tom Rini
Quoted 59 lines · Simon Glass

Hi Sjoerd,

Quoted 44 lines · Sjoerd Simons

The peach boards have their SDRAM start address at 0x20000000 instead of 0x40000000 which seems common for all other exynos5 based boards. This means the layout set in exynos5-common.h causes the kernel be loaded more then 128MB (at 0x42000000) away from memory start which breaks booting kernels with CONFIG_AUTO_ZRELADDR

Define a custom MEM_LAYOUT_ENV_SETTINGS for both peach boards which uses the same offsets from start of memory as the common exynos5 settings.

This fixes booting via bootz and PXE

---
 include/configs/peach-pi.h  | 8 ++++++++
 include/configs/peach-pit.h | 8 ++++++++
 2 files changed, 16 insertions(+)
include/configs/peach-pi.h +8 -0
index f04f061..e3cb09e 100644
@@ -16,6 +16,14 @@
 #define CONFIG_ENV_OFFSET      (FLASH_SIZE - CONFIG_BL2_SIZE)
 #define CONFIG_SPI_BOOTING
 
+#define MEM_LAYOUT_ENV_SETTINGS \
+       "bootm_size=0x10000000\0" \
+       "kernel_addr_r=0x22000000\0" \
+       "fdt_addr_r=0x23000000\0" \
+       "ramdisk_addr_r=0x23300000\0" \
+       "scriptaddr=0x30000000\0" \
+       "pxefile_addr_r=0x31000000\0"
+
 #include <configs/exynos5420-common.h>
 #include <configs/exynos5-dt-common.h>
 
include/configs/peach-pit.h +0 -0
index b5efbdc..3ee42ef 100644
@@ -16,6 +16,14 @@
 #define CONFIG_ENV_OFFSET      (FLASH_SIZE - CONFIG_BL2_SIZE)
 #define CONFIG_SPI_BOOTING
 

include/configs/peach-pit.h line 28

Quoted 10 lines
include/configs/peach-pit.h +8 -0
+#define MEM_LAYOUT_ENV_SETTINGS \
+       "bootm_size=0x10000000\0" \
+       "kernel_addr_r=0x22000000\0" \
+       "fdt_addr_r=0x23000000\0" \
+       "ramdisk_addr_r=0x23300000\0" \
+       "scriptaddr=0x30000000\0" \
+       "pxefile_addr_r=0x31000000\0"
+
 #include <configs/exynos5420-common.h>
 #include <configs/exynos5-dt-common.h>

It would be great if we could have this in the device tree.

Quoted 8 lines
Quoted 3 lines

I understand what you're thinking but this is environment. And really this is not board specific, this is SoC family specific which is why the similar part for TI stuff is in ti_armv7_common.h :)

Exynos 5 has the same in exynos5-common.h, however for whatever reason the peach pi/pit boards are different then other exynos board supported by u-boot thusfar. So in this case, this information _is_ board specific not platform specific.

Quoted 6 lines

Oh I missed that early on, sorry. But...

Why not change things around a bit to enable CONFIG_CMD_SETEXPR and then have MEM_LAYOUT_ENV_SETTINGS just set the exynos5_ddr_base and then setexpr kernel_addr_r $exynos5_ddr_base + 0x2000000
and similar in the generic part.

Partially because i didn't know the setexpr command and partially because i wanted a minimally disruptive patch that can hopefully still make it for 2015.4.

I think doing the above would also require tweaking the distro_boot_cmd code to integrate it nicely.

Quoted 11 lines
Quoted 10 lines

But even in case of including it in device tree, a default/common setting could go into the platforms dtsi with board-specific overrides as needed.

One thing i have wondered though, looking at the various boards specifying the various memory layour addresses. They all end up being relatively similar offset to the base memory address, which makes me think it may be possible to calculate these values in the initialisation code rather then having to hardcode it in the environment. However, even if that's a sensible thing, something for later :)

Quoted 3 lines

... Yes, we should then take what I just did above and make it even further wide-spread among boards where we have more than ~512MB DDR or so :)

Sounds like a plan.

Signature · 2 lines
Sjoerd Simons <[email protected]>
Collabora Ltd.
#8 lore raw

PATCH 1/1 config: peach: Correct memory layout environment settings

Quoted 75 lines · Sjoerd Simons
Quoted 74 lines · Tom Rini
Quoted 62 lines · Sjoerd Simons
Quoted 61 lines · Tom Rini
Quoted 59 lines · Simon Glass

Hi Sjoerd,

Quoted 44 lines · Sjoerd Simons

The peach boards have their SDRAM start address at 0x20000000 instead of 0x40000000 which seems common for all other exynos5 based boards. This means the layout set in exynos5-common.h causes the kernel be loaded more then 128MB (at 0x42000000) away from memory start which breaks booting kernels with CONFIG_AUTO_ZRELADDR

Define a custom MEM_LAYOUT_ENV_SETTINGS for both peach boards which uses the same offsets from start of memory as the common exynos5 settings.

This fixes booting via bootz and PXE

---
 include/configs/peach-pi.h  | 8 ++++++++
 include/configs/peach-pit.h | 8 ++++++++
 2 files changed, 16 insertions(+)
include/configs/peach-pi.h +8 -0
index f04f061..e3cb09e 100644
@@ -16,6 +16,14 @@
 #define CONFIG_ENV_OFFSET      (FLASH_SIZE - CONFIG_BL2_SIZE)
 #define CONFIG_SPI_BOOTING
 
+#define MEM_LAYOUT_ENV_SETTINGS \
+       "bootm_size=0x10000000\0" \
+       "kernel_addr_r=0x22000000\0" \
+       "fdt_addr_r=0x23000000\0" \
+       "ramdisk_addr_r=0x23300000\0" \
+       "scriptaddr=0x30000000\0" \
+       "pxefile_addr_r=0x31000000\0"
+
 #include <configs/exynos5420-common.h>
 #include <configs/exynos5-dt-common.h>
 
include/configs/peach-pit.h +0 -0
index b5efbdc..3ee42ef 100644
@@ -16,6 +16,14 @@
 #define CONFIG_ENV_OFFSET      (FLASH_SIZE - CONFIG_BL2_SIZE)
 #define CONFIG_SPI_BOOTING
 

include/configs/peach-pit.h line 28

Quoted 10 lines
include/configs/peach-pit.h +8 -0
+#define MEM_LAYOUT_ENV_SETTINGS \
+       "bootm_size=0x10000000\0" \
+       "kernel_addr_r=0x22000000\0" \
+       "fdt_addr_r=0x23000000\0" \
+       "ramdisk_addr_r=0x23300000\0" \
+       "scriptaddr=0x30000000\0" \
+       "pxefile_addr_r=0x31000000\0"
+
 #include <configs/exynos5420-common.h>
 #include <configs/exynos5-dt-common.h>

It would be great if we could have this in the device tree.

Quoted 8 lines
Quoted 3 lines

I understand what you're thinking but this is environment. And really this is not board specific, this is SoC family specific which is why the similar part for TI stuff is in ti_armv7_common.h :)

Exynos 5 has the same in exynos5-common.h, however for whatever reason the peach pi/pit boards are different then other exynos board supported by u-boot thusfar. So in this case, this information _is_ board specific not platform specific.

Oh I missed that early on, sorry. But...

Quoted 8 lines
Quoted 4 lines

Why not change things around a bit to enable CONFIG_CMD_SETEXPR and then have MEM_LAYOUT_ENV_SETTINGS just set the exynos5_ddr_base and then setexpr kernel_addr_r $exynos5_ddr_base + 0x2000000
and similar in the generic part.

Partially because i didn't know the setexpr command and partially because i wanted a minimally disruptive patch that can hopefully still make it for 2015.4.

For the first part I forgot it existed until this morning so that's OK :)

Quoted 2 lines

I think doing the above would also require tweaking the distro_boot_cmd code to integrate it nicely.

I'm agreeable to taking this now to fix things if we promise to clean it up ASAP after the release (since we can do that without breaking the visible portion I think).

Signature · 8 lines
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20150325/e9027565/attachment.sig>
#9 lore raw

PATCH 1/1 config: peach: Correct memory layout environment settings

Quoted 81 lines · Tom Rini
Quoted 80 lines · Sjoerd Simons
Quoted 78 lines · Tom Rini
Quoted 62 lines · Sjoerd Simons
Quoted 61 lines · Tom Rini
Quoted 59 lines · Simon Glass

Hi Sjoerd,

Quoted 44 lines · Sjoerd Simons

The peach boards have their SDRAM start address at 0x20000000 instead of 0x40000000 which seems common for all other exynos5 based boards. This means the layout set in exynos5-common.h causes the kernel be loaded more then 128MB (at 0x42000000) away from memory start which breaks booting kernels with CONFIG_AUTO_ZRELADDR

Define a custom MEM_LAYOUT_ENV_SETTINGS for both peach boards which uses the same offsets from start of memory as the common exynos5 settings.

This fixes booting via bootz and PXE

---
 include/configs/peach-pi.h  | 8 ++++++++
 include/configs/peach-pit.h | 8 ++++++++
 2 files changed, 16 insertions(+)
include/configs/peach-pi.h +8 -0
index f04f061..e3cb09e 100644
@@ -16,6 +16,14 @@
 #define CONFIG_ENV_OFFSET      (FLASH_SIZE - CONFIG_BL2_SIZE)
 #define CONFIG_SPI_BOOTING
 
+#define MEM_LAYOUT_ENV_SETTINGS \
+       "bootm_size=0x10000000\0" \
+       "kernel_addr_r=0x22000000\0" \
+       "fdt_addr_r=0x23000000\0" \
+       "ramdisk_addr_r=0x23300000\0" \
+       "scriptaddr=0x30000000\0" \
+       "pxefile_addr_r=0x31000000\0"
+
 #include <configs/exynos5420-common.h>
 #include <configs/exynos5-dt-common.h>
 
include/configs/peach-pit.h +0 -0
index b5efbdc..3ee42ef 100644
@@ -16,6 +16,14 @@
 #define CONFIG_ENV_OFFSET      (FLASH_SIZE - CONFIG_BL2_SIZE)
 #define CONFIG_SPI_BOOTING
 

include/configs/peach-pit.h line 28

Quoted 10 lines
include/configs/peach-pit.h +8 -0
+#define MEM_LAYOUT_ENV_SETTINGS \
+       "bootm_size=0x10000000\0" \
+       "kernel_addr_r=0x22000000\0" \
+       "fdt_addr_r=0x23000000\0" \
+       "ramdisk_addr_r=0x23300000\0" \
+       "scriptaddr=0x30000000\0" \
+       "pxefile_addr_r=0x31000000\0"
+
 #include <configs/exynos5420-common.h>
 #include <configs/exynos5-dt-common.h>

It would be great if we could have this in the device tree.

Quoted 8 lines
Quoted 3 lines

I understand what you're thinking but this is environment. And really this is not board specific, this is SoC family specific which is why the similar part for TI stuff is in ti_armv7_common.h :)

Exynos 5 has the same in exynos5-common.h, however for whatever reason the peach pi/pit boards are different then other exynos board supported by u-boot thusfar. So in this case, this information _is_ board specific not platform specific.

Oh I missed that early on, sorry. But...

Why not change things around a bit to enable CONFIG_CMD_SETEXPR and then have MEM_LAYOUT_ENV_SETTINGS just set the exynos5_ddr_base and then setexpr kernel_addr_r $exynos5_ddr_base + 0x2000000
and similar in the generic part.

Quoted 6 lines
Quoted 3 lines

Partially because i didn't know the setexpr command and partially because i wanted a minimally disruptive patch that can hopefully still make it for 2015.4.

For the first part I forgot it existed until this morning so that's OK :)

Hah

Quoted 6 lines
Quoted 2 lines

I think doing the above would also require tweaking the distro_boot_cmd code to integrate it nicely.

I'm agreeable to taking this now to fix things if we promise to clean it up ASAP after the release (since we can do that without breaking the visible portion I think).

I'm ok to prepare some patches for polishing this in the next few weeks as it peeked my interests.

Signature · 2 lines
Sjoerd Simons <[email protected]>
Collabora Ltd.
#10 lore raw

PATCH 1/1 config: peach: Correct memory layout environment settings

Quoted 18 lines · Sjoerd Simons
Quoted 17 lines · Tom Rini
Quoted 16 lines · Sjoerd Simons
Quoted 15 lines · Tom Rini
Quoted 14 lines · Sjoerd Simons
Quoted 13 lines · Tom Rini
Quoted 12 lines · Simon Glass

Hi Sjoerd,

Quoted 9 lines · Sjoerd Simons

The peach boards have their SDRAM start address at 0x20000000 instead of 0x40000000 which seems common for all other exynos5 based boards. This means the layout set in exynos5-common.h causes the kernel be loaded more then 128MB (at 0x42000000) away from memory start which breaks booting kernels with CONFIG_AUTO_ZRELADDR

Define a custom MEM_LAYOUT_ENV_SETTINGS for both peach boards which uses the same offsets from start of memory as the common exynos5 settings.

Quoted 8 lines
Quoted 8 lines
Quoted 8 lines
Quoted 8 lines
Quoted 8 lines
Quoted 8 lines
Quoted 8 lines
Quoted 8 lines

This fixes booting via bootz and PXE

---
 include/configs/peach-pi.h  | 8 ++++++++
 include/configs/peach-pit.h | 8 ++++++++
 2 files changed, 16 insertions(+)

applied to u-boot-samsung.

Thanks,
Minkyu Kang.