Skip to contentSkip to conversation

ARM: boards: phytec-som-am335x: Fallback ram timings

PATCH In review Daniel Schultz 2 participants 3 messages Dec 14, 2017 – Dec 22, 2017

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 ARM: boards: phytec-som-am335x: Fallback ram timings

The 'get_ram_size' function can return false values with 1GB RAMs during warm reset. If a not-existing RAM size will be returned, the fallback RAM timings get loaded to prevent hangs.

---
 arch/arm/boards/phytec-som-am335x/lowlevel.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
arch/arm/boards/phytec-som-am335x/lowlevel.c +2 -1
index b1576ee..5030966 100644
@@ -174,8 +174,9 @@ static noinline void physom_board_init(void *fdt, int sdram, int module_family)
 		/* Find the ram size and set up the correct ram timings */
 		ramsize = get_ram_size((long *) 0x80000000, SZ_1G);
 		timing = get_timings_by_size(module_family, ramsize);
+		/* In case of a failure, load generic ram timings as fallback */
 		if (!timing)
-			hang();
+			timing = get_minimal_timings(module_family);
 	}
 
 	am335x_sdram_init(DDR_IOCTRL, &physom_cmd,
Signature · 7 lines
2.7.4


_______________________________________________
barebox mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/barebox
#1 lore raw

Hi Daniel,

Quoted 3 lines · Daniel Schultz

The 'get_ram_size' function can return false values with 1GB RAMs during warm reset. If a not-existing RAM size will be returned, the fallback RAM timings get loaded to prevent hangs.

Just continuing with wrong ram size and fallback timing is not really an option. It doesn't help the user and only changes the bug reports you get.

Sascha

Quoted 30 lines
---
 arch/arm/boards/phytec-som-am335x/lowlevel.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
arch/arm/boards/phytec-som-am335x/lowlevel.c +2 -1
index b1576ee..5030966 100644
@@ -174,8 +174,9 @@ static noinline void physom_board_init(void *fdt, int sdram, int module_family)
 		/* Find the ram size and set up the correct ram timings */
 		ramsize = get_ram_size((long *) 0x80000000, SZ_1G);
 		timing = get_timings_by_size(module_family, ramsize);
+		/* In case of a failure, load generic ram timings as fallback */
 		if (!timing)
-			hang();
+			timing = get_minimal_timings(module_family);
 	}
 
 	am335x_sdram_init(DDR_IOCTRL, &physom_cmd,
Signature · 7 lines
2.7.4


_______________________________________________
barebox mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/barebox
Signature · 9 lines
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
barebox mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/barebox
#2 lore raw

Hi,

Quoted 12 lines · Sascha Hauer

Hi Daniel,

Quoted 3 lines · Daniel Schultz

The 'get_ram_size' function can return false values with 1GB RAMs during warm reset. If a not-existing RAM size will be returned, the fallback RAM timings get loaded to prevent hangs.

Just continuing with wrong ram size and fallback timing is not really an option. It doesn't help the user and only changes the bug reports you get.

Sascha

yes, sorry. I sent a new patch to remove the bug from our MLO and I will investigate for this problem next year, because this seems to be a little more trickier.

Daniel

Quoted 29 lines
Quoted 29 lines
---
  arch/arm/boards/phytec-som-am335x/lowlevel.c | 3 ++-
  1 file changed, 2 insertions(+), 1 deletion(-)
arch/arm/boards/phytec-som-am335x/lowlevel.c +2 -1
index b1576ee..5030966 100644
@@ -174,8 +174,9 @@ static noinline void physom_board_init(void *fdt, int sdram, int module_family)
  		/* Find the ram size and set up the correct ram timings */
  		ramsize = get_ram_size((long *) 0x80000000, SZ_1G);
  		timing = get_timings_by_size(module_family, ramsize);
+		/* In case of a failure, load generic ram timings as fallback */
  		if (!timing)
-			hang();
+			timing = get_minimal_timings(module_family);
  	}
 
  	am335x_sdram_init(DDR_IOCTRL, &physom_cmd,
Signature · 7 lines
2.7.4


_______________________________________________
barebox mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/barebox
Signature · 26 lines
Mit freundlichen Grüßen,
With best regards,
  Daniel Schultz

- Entwicklung -
Tel.: 	+49 6131 92 21 457
[email protected]
www.phytec.de

Sie finden uns auch auf: Facebook, LinkedIn, Xing, YouTube

PHYTEC Messtechnik GmbH | Robert-Koch-Str. 39 | 55129 Mainz, Germany
Geschäftsführer: Dipl.-Ing. Michael Mitezki, Dipl.-Ing. Bodo Huber |
Handelsregister Mainz HRB 4656 | Finanzamt Mainz-Mitte | St.Nr. 266500608,
DE 149059855
This E-Mail may contain confidential or privileged information. If you are
not the intended recipient (or have received this E-Mail in error) please
notify the sender immediately and destroy this E-Mail. Any unauthorized
copying, disclosure or distribution of the material in this E-Mail is
strictly forbidden.


_______________________________________________
barebox mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/barebox