This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Halted on 'Starting kernel ...' after changing kernel starting phy address.

I referred to below site for running the linux from a different phy address.

Linux code patch

--- ref/keystone-0430a//linux-keystone/arch/arm/mach-keystone/Makefile.boot	2013-04-30 11:19:07.000000000 -0700
+++ linux-keystone/arch/arm/mach-keystone/Makefile.boot	2013-05-09 13:47:29.829257106 -0700
@@ -1 +1 @@
-zreladdr-y	:= 0x80008000
+zreladdr-y	:= 0xA0008000
--- ref/keystone-0430a//linux-keystone/arch/arm/mach-keystone/include/mach/memory.h	2013-04-30 11:19:07.000000000 -0700
+++ linux-keystone/arch/arm/mach-keystone/include/mach/memory.h	2013-05-09 12:05:10.561756528 -0700
@@ -16,6 +16,7 @@
 #ifndef __ASM_MACH_MEMORY_H
 #define __ASM_MACH_MEMORY_H

+
 #define MAX_PHYSMEM_BITS	36
 #define SECTION_SIZE_BITS	34

@@ -32,10 +33,17 @@

 #ifndef __ASSEMBLY__

+static inline phys_addr_t __virt_to_phys(unsigned long x);
+
 static inline phys_addr_t __virt_to_idmap(unsigned long x)
 {
+#ifdef	ORIGINAL_PRE_TBESEMER
 	return (phys_addr_t)(x) - CONFIG_PAGE_OFFSET +
 		KEYSTONE_LOW_PHYS_START;
+#else
+	return __virt_to_phys(x) - KEYSTONE_HIGH_PHYS_START +
+		KEYSTONE_LOW_PHYS_START;
+#endif
 }

 #define virt_to_idmap(x)	__virt_to_idmap((unsigned long)(x))

Device tree source patch

--- ref/keystone-0430a//linux-keystone/arch/arm/boot/dts/k2hk-evm.dts	2013-04-30 11:19:07.000000000 -0700
+++ linux-keystone/arch/arm/boot/dts/k2hk-evm.dts	2013-05-10 09:56:40.418347675 -0700
@@ -17,7 +17,7 @@
 	};

 	memory {
-		reg = <0x00000000 0x80000000 0x00000000 0x20000000>;
+		reg = <0x00000000 0xA0000000 0x00000000 0x20000000>;
 	};

 	droppolicies: default-drop-policies {

u-boot code patch

--- ref/keystone-0430a//u-boot-keystone/include/configs/tci6638_evm.h	2013-04-30 10:29:03.000000000 -0700
+++ u-boot-keystone/include/configs/tci6638_evm.h	2013-05-09 13:46:25.277274692 -0700
@@ -47,8 +47,8 @@

 /* Memory Configuration */
 #define CONFIG_NR_DRAM_BANKS		1
-#define CONFIG_SYS_SDRAM_BASE		0x80000000
-#define CONFIG_MAX_RAM_BANK_SIZE	(2 << 30)	/* 2GB */
+#define CONFIG_SYS_SDRAM_BASE		0xA0000000
+#define CONFIG_MAX_RAM_BANK_SIZE	((1024 * 1024) * 1024)
 #define CONFIG_STACKSIZE		(512 << 10)	/* 512 KiB */
 #define CONFIG_SYS_MALLOC_LEN		(512 << 10)	/* 512 KiB */
 #define CONFIG_SYS_MEMTEST_START	CONFIG_SYS_SDRAM_BASE
@@ -194,7 +194,7 @@
 #define CONFIG_CMD_SF

 /* U-Boot general configuration */
-#define CONFIG_SYS_PROMPT		"TCI6638 EVM # "
+#define CONFIG_SYS_PROMPT		"TCI6638 EVM (teb) # "
 #define CONFIG_SYS_CBSIZE		1024
 #define CONFIG_SYS_PBSIZE		2048
 #define CONFIG_SYS_MAXARGS		16
@@ -265,6 +265,6 @@
 #define CONFIG_SETUP_MEMORY_TAGS
 #define CONFIG_SYS_BARGSIZE		1024
 #define CONFIG_SYS_LOAD_ADDR		(CONFIG_SYS_SDRAM_BASE + 0x08000000)
-#define LINUX_BOOT_PARAM_ADDR		(CONFIG_SYS_SDRAM_BASE + 0x100)
+#define LINUX_BOOT_PARAM_ADDR		(CONFIG_SYS_SDRAM_BASE + 0x00000100)

 #endif /* __CONFIG_H */

Also when using the patch, make sure to update the following env variables in u-boot

setenv addr_fdt 0xA7000000
setenv addr_kern 0xA8000000

I did success to modify u-boot, but kernel is halted on when kernel is booting with printing as 'Starting kernel ...' message.

I think it's incorrect with current git repo version because above site's content is so old..

could share an information if there is any update this issue?

Gilbert.