Message ID | 534C0D7B.6030307@linaro.org |
---|---|
State | Not Applicable, archived |
Headers | show |
Thanks for your comments. I tried with Tod's comment of dtb and Julien's patch. But no difference. env setting: ----------------------------------- setenv kernel_addr_r 0x60000000 setenv xen_addr_r 0x50000000 setenv dtb_addr_r 0x42000000 fatload mmc 0:2 $kernel_addr_r /zImage fatload mmc 0:2 $xen_addr_r /xen-uImage fatload mmc 0:2 $dtb_addr_r /exynos5420-arndale-octa.dtb fdt addr $dtb_addr_r fdt resize setenv xen_bootargs 'sync_console console=dtuart dtuart=/serial@12C20000' setenv dom0_bootargs 'console=hvc0 ignore_loglevel psci_enable clk_ignore_unused root=/dev/mmcblk1p3' fdt set /chosen xen,xen-bootargs \"$xen_bootargs\" fdt set /chosen xen,dom0-bootargs \"$dom0_bootargs\" fdt mknode /chosen modules fdt set /chosen/modules '#address-cells' <1> fdt set /chosen/modules '#size-cells' <1> fdt mknode /chosen/modules module@0 fdt set /chosen/modules/module@0 compatible "xen,linux-zimage" "xen,multiboot-module" fdt set /chosen/modules/module@0 reg <$kernel_addr_r 0x00a00000> bootm $xen_addr_r - $dtb_addr_r ----------------------------------- Log: ============================= U-Boot 2012.07 (Feb 15 2014 - 17:29:55) for ARNDALE OCTA CPU: Exynos5420 Rev2.0 [Samsung SOC on SMP Platform Base on ARM CortexA15] APLL = 800MHz, KPLL = 600MHz MPLL = 532MHz, BPLL = 800MHz Board: ARNDALE OCTA DRAM: 2 GiB WARNING: Caches not enabled TrustZone Enabled BSP BL1 version: Checking Boot Mode ... SDMMC MMC: S5P_MSHC2: 0, S5P_MSHC0: 1 MMC Device 0: 3.7 GiB MMC Device 1: 3.6 GiB MMC Device 2: MMC Device 2 not found there are pending interrupts 0x00000001 *** Warning - bad CRC, using default environment In: serial Out: serial Err: serial Net: No ethernet found. (Re)start USB... USB: Register 1313 NbrPorts 3 USB EHCI 1.00 scanning bus for devices... The request port(2) is not configured The request port(2) is not configured 3 USB Device(s) found scanning bus for storage devices... 0 Storage Device(s) found scanning usb for ethernet devices... 1 Ethernet Device(s) found Hit any key to stop autoboot: 0 reading boot.scr 989 bytes read Running bootscript from mmc0:2 ... ## Executing script at 22000000 reading /zImage 2606416 bytes read reading /xen-uImage 557904 bytes read reading /exynos5420-arndale-octa.dtb 31105 bytes read ## Booting kernel from Legacy Image at 50000000 ... Image Name: Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 557840 Bytes = 544.8 KiB Load Address: 80200000 Entry Point: 80200000 Verifying Checksum ... OK ## Flattened Device Tree blob at 42000000 Booting using the fdt blob at 0x42000000 Loading Kernel Image ... OK OK reserving fdt memory region: addr=42000000 size=8000 Loading Device Tree to 2fff5000, end 2fffffff ... OK Starting kernel ... ======================= It is very wired that CONFIG_EARLY_PRINTK is not working. If the patch is correct, is xen dead just at starting or totally wrong place of image? Best, Hyonyoung On Mon, Apr 14, 2014 at 12:31 PM, Julien Grall <julien.grall@linaro.org>wrote: > On 04/14/2014 04:33 PM, HyonYoung Choi wrote: > > Hello Julien, > > > I'm Hyonyoung Choi, working on Xen into Arndale-Octa board with Meng. > > > > I tried to recompiled xen with CONFIG_EARLY_PRINTK=exynos5250 as your > > advice. > > > > The command line is like this: > > > > make distclean > > export CONFIG_EARLY_PRINTK=exynos5250 > > make dist-xen XEN_TARGET_ARCH=arm32 > > > > The result is nothing happened at all. > > No additional message is printed. > > Sorry I misread the documentation, the UART port is not the same on the > exynos5420. Can you try to apply the patch below and recompile xen (make > clean make) with CONFIG_EARLY_PRINTK=exynos5420. > > Regards, > > commit 9595eedd366145b5b3e91b2b7cfa076cc2fc4174 > Author: Julien Grall <julien.grall@linaro.org> > Date: Mon Apr 14 17:24:54 2014 +0100 > > xen/arm: Add early printk for Arndale Octa (exynos5420) > > Enable early printk for exynos5420. > > Signed-off-by: Julien Grall <julien.grall@linaro.org> > > diff --git a/xen/arch/arm/Rules.mk b/xen/arch/arm/Rules.mk > index c551afb..ddc2e28 100644 > --- a/xen/arch/arm/Rules.mk > +++ b/xen/arch/arm/Rules.mk > @@ -57,6 +57,12 @@ EARLY_PRINTK_INIT_UART := y > EARLY_PRINTK_BAUD := 115200 > EARLY_UART_BASE_ADDRESS := 0x12c20000 > endif > +ifeq ($(CONFIG_EARLY_PRINTK), exynos5420) > +EARLY_PRINTK_INC := exynos4210 > +EARLY_PRINTK_INIT_UART := y > +EARLY_PRINTK_BAUD := 11520 > +EARLY_UART_BASE_ADDRESS := 0x12c30000 > +endif > ifeq ($(CONFIG_EARLY_PRINTK), midway) > EARLY_PRINTK_INC := pl011 > EARLY_PRINTK_BAUD := 115200 > > > > -- > Julien Grall >
On Mon, Apr 14, 2014 at 9:31 AM, Julien Grall <julien.grall@linaro.org> wrote: > On 04/14/2014 04:33 PM, HyonYoung Choi wrote: >> Hello Julien, > >> I'm Hyonyoung Choi, working on Xen into Arndale-Octa board with Meng. >> >> I tried to recompiled xen with CONFIG_EARLY_PRINTK=exynos5250 as your >> advice. >> >> The command line is like this: >> >> make distclean >> export CONFIG_EARLY_PRINTK=exynos5250 >> make dist-xen XEN_TARGET_ARCH=arm32 >> >> The result is nothing happened at all. >> No additional message is printed. > > Sorry I misread the documentation, the UART port is not the same on the > exynos5420. Can you try to apply the patch below and recompile xen (make > clean make) with CONFIG_EARLY_PRINTK=exynos5420. > > Regards, > Hello HyonYoung, Also, please note the typo for EARLY_PRINTK_BAUD. I guess Julien missed a 0 at the end. For the exynos5410, this is what I did with some expert guidance from Julien and Ian Campbell. I shall document it here, as it might help you too. Changes in XEN (xen 4.4 stable) (first lets get XEN to boot and show some output) 1. change: xen/arch/arm/platforms/exynos5.c structure: exynos5_dt_compat[], and add “samsung,exynos5410” in that list For you it might be "samsung,exynos5420" -> check your dtsi file. 2. Linux kernel exynos5410.dtsi (for you possibly exynos5420.dtsi)to have the ARCH generic timer information. You might already have it. timer { compatible = "arm,cortexa15timer","arm,armv7timer"; interrupts = <1 13 0xf08>, <1 14 0xf08>, <1 11 0xf08>, <1 10 0xf08>; clockfrequency = <24000000>; }; Above works for 5250 and 5410. 3. Comment out all CPUs but the first cpu to start with (done in your exynos5420.dtsi file) 4. As Tod mentioned, you are missing the dtb file that you need to pass as 3rd parameter to the bootm command. -> bootm $kernel_addr_t - $dtb_addr_t 5. The bootargs that you have set for xen, need to have the console=dtuart dtuart=/serial@12C20000. For you as Julien pointed out it might be @12C30000 I am not sure if just settign bootargs will help. I wonder if it has to be fdt set to /chosen etc. I have pasted a working env file which you can modify and convert to scr to run it if need be. For building XEN (make dist-xen), I am not sure if you have to add debug=y as well for the CONFIG_EARLY_PRINTK=exynos5420 to be pulled in - but, please do check on that. The below script, please change the names of files and the serial location. ---- Working script for xen boot from mmc ---- 8< ----- # Generic script to load and boot Xen from mmc # # For any questions/bug report please send an email to: # xendevel@lists.xen.org # # Requirements: # Uboot variable environment: # kernel_addr_r: kernel load address # xen_addr_r: xen load address # dtb_addr_r: fdt load address # serverip: IP of the tftp server # xen_bootargs: xen command line # dom0_bootargs: dom0 command line # kernel_path: kernel path # xen_path: xen path # dtb_path: device tree path # # Tftp server file: # You need to provide the files that you have specified in # $xen_path, $dtb_path and $kernel_path ## Load the different components # Load Linux in memory fatload mmc 0:1 $kernel_addr_r $kernel_path # Load Xen in memory fatload mmc 0:1 $xen_addr_r $xen_path # Load the device tree in memory fatload mmc 0:1 $dtb_addr_r $dtb_path ## Fixup the device tree # Be sure Uboot is using our FDT fdt addr $dtb_addr_r # Resize the FDT just in case fdt resize # Set Xen arguments based on $xen_bootargs fdt set /chosen xen,xenbootargs \"$xen_bootargs\" #setenv bootargs $xen_bootargs # On Xen unstable, xen cmdline is in bootargs # Set Dom0 arguments based on $dom0_bootargs fdt set /chosen xen,dom0bootargs \"$dom0_bootargs\" # Create modules node fdt mknode /chosen modules fdt set /chosen/modules '#addresscells' <1> fdt set /chosen/modules '#sizecells' <1> # Create node for the linux located at $kernel_addr_r # It seems Uboot doesn't have command to retrieve the size, so the size is # set to a big value (10Mb) fdt mknode /chosen/modules module@0 fdt set /chosen/modules/module@0 compatible xen,linuxzimage xen,multibootmodule fdt set /chosen/modules/module@0 reg <$kernel_addr_r 0x00a00000> ## Boot Xen bootm $xen_addr_r $dtb_addr_r --------------------------- 8< -------------------------- 2. Set the following uboot variables: setenv xen_addr_r 0x50000000 setenv kernel_addr_r 0x60000000 setenv dtb_addr_r 0x42000000 setenv xen_path /xenuImage setenv kernel_path /linuxzImage setenv dtb_path /exynos5410odroidxu.dtb setenv xen_bootargs 'sync_console console=dtuart dtuart=/serial@12C20000' setenv dom0_bootargs 'console=hvc0 ignore_loglevel psci=enable clk_ignore_unused root=/dev/mmcblk0p2' saveenv With the saveenv we do not have to do it again and again > commit 9595eedd366145b5b3e91b2b7cfa076cc2fc4174 > Author: Julien Grall <julien.grall@linaro.org> > Date: Mon Apr 14 17:24:54 2014 +0100 > > xen/arm: Add early printk for Arndale Octa (exynos5420) > > Enable early printk for exynos5420. > > Signed-off-by: Julien Grall <julien.grall@linaro.org> > > diff --git a/xen/arch/arm/Rules.mk b/xen/arch/arm/Rules.mk > index c551afb..ddc2e28 100644 > --- a/xen/arch/arm/Rules.mk > +++ b/xen/arch/arm/Rules.mk > @@ -57,6 +57,12 @@ EARLY_PRINTK_INIT_UART := y > EARLY_PRINTK_BAUD := 115200 > EARLY_UART_BASE_ADDRESS := 0x12c20000 > endif > +ifeq ($(CONFIG_EARLY_PRINTK), exynos5420) > +EARLY_PRINTK_INC := exynos4210 > +EARLY_PRINTK_INIT_UART := y > +EARLY_PRINTK_BAUD := 11520 > +EARLY_UART_BASE_ADDRESS := 0x12c30000 > +endif > ifeq ($(CONFIG_EARLY_PRINTK), midway) > EARLY_PRINTK_INC := pl011 > EARLY_PRINTK_BAUD := 115200 > > > > -- > Julien Grall
On 04/14/2014 06:07 PM, Suriyan Ramasami wrote: > Also, please note the typo for EARLY_PRINTK_BAUD. I guess Julien > missed a 0 at the end. Hrmmm, right. I didn't check my patch. > > For the exynos5410, this is what I did with some expert guidance from > Julien and Ian Campbell. I shall document it here, as it might help > you too. > > Changes in XEN (xen 4.4 stable) (first lets get XEN to boot and show > some output) > 1. change: xen/arch/arm/platforms/exynos5.c structure: > exynos5_dt_compat[], and add “samsung,exynos5410” in that list > For you it might be "samsung,exynos5420" -> check your dtsi file. Do you plan to send a patch for adding odroid Xu support in Xen? > 2. Linux kernel exynos5410.dtsi (for you possibly exynos5420.dtsi)to > have the ARCH generic timer information. You might already have it. Do you plan to send this patch on Linux upstream? > timer { > compatible = "arm,cortexa15timer","arm,armv7timer"; I guess you meant arm,armv7-timer? > interrupts = <1 13 0xf08>, > <1 14 0xf08>, > <1 11 0xf08>, > <1 10 0xf08>; > clockfrequency = <24000000>; > }; > Above works for 5250 and 5410. > 3. Comment out all CPUs but the first cpu to start with (done in your > exynos5420.dtsi file) > 4. As Tod mentioned, you are missing the dtb file that you need to > pass as 3rd parameter to the bootm command. -> bootm $kernel_addr_t - > $dtb_addr_t > 5. The bootargs that you have set for xen, need to have the > console=dtuart dtuart=/serial@12C20000. > For you as Julien pointed out it might be @12C30000 > I am not sure if just settign bootargs will help. I wonder if it has > to be fdt set to /chosen etc. I have pasted a working env file which > you can modify and convert to scr to run it if need be. We should see some messages > For building XEN (make dist-xen), I am not sure if you have to add > debug=y as well for the CONFIG_EARLY_PRINTK=exynos5420 to be pulled in > - but, please do check on that. Aargh, I though Ian's patch to print an error when CONFIG_EARLY_PRINTK is used without debug=y was in Xen 4.4. From HyonYoung's previous mail, debug=y was not set. Regards,
Hello all, I have modified all as Julien mentioned. No changes. When I change ".dtsi" file, is just executing "make dtbs" right? I got something printed out after putting "debug=y" to xen-make. However it is some characters not based on alphabet. Wrong port? Thank you, Hyonyoung On Mon, Apr 14, 2014 at 1:37 PM, Julien Grall <julien.grall@linaro.org>wrote: > On 04/14/2014 06:07 PM, Suriyan Ramasami wrote: > > > Also, please note the typo for EARLY_PRINTK_BAUD. I guess Julien > > missed a 0 at the end. > > Hrmmm, right. I didn't check my patch. > > > > > For the exynos5410, this is what I did with some expert guidance from > > Julien and Ian Campbell. I shall document it here, as it might help > > you too. > > > > Changes in XEN (xen 4.4 stable) (first lets get XEN to boot and show > > some output) > > 1. change: xen/arch/arm/platforms/exynos5.c structure: > > exynos5_dt_compat[], and add “samsung,exynos5410” in that list > > For you it might be "samsung,exynos5420" -> check your dtsi file. > > Do you plan to send a patch for adding odroid Xu support in Xen? > > > > 2. Linux kernel exynos5410.dtsi (for you possibly exynos5420.dtsi)to > > have the ARCH generic timer information. You might already have it. > > Do you plan to send this patch on Linux upstream? > > > timer { > > compatible = "arm,cortexa15timer","arm,armv7timer"; > > I guess you meant arm,armv7-timer? > > > interrupts = <1 13 0xf08>, > > <1 14 0xf08>, > > <1 11 0xf08>, > > <1 10 0xf08>; > > clockfrequency = <24000000>; > > }; > > Above works for 5250 and 5410. > > 3. Comment out all CPUs but the first cpu to start with (done in your > > exynos5420.dtsi file) > > 4. As Tod mentioned, you are missing the dtb file that you need to > > pass as 3rd parameter to the bootm command. -> bootm $kernel_addr_t - > > $dtb_addr_t > > 5. The bootargs that you have set for xen, need to have the > > console=dtuart dtuart=/serial@12C20000. > > For you as Julien pointed out it might be @12C30000 > > I am not sure if just settign bootargs will help. I wonder if it has > > to be fdt set to /chosen etc. I have pasted a working env file which > > you can modify and convert to scr to run it if need be. > > We should see some messages > > > For building XEN (make dist-xen), I am not sure if you have to add > > debug=y as well for the CONFIG_EARLY_PRINTK=exynos5420 to be pulled in > > - but, please do check on that. > > Aargh, I though Ian's patch to print an error when CONFIG_EARLY_PRINTK > is used without debug=y was in Xen 4.4. > > From HyonYoung's previous mail, debug=y was not set. > > Regards, > > -- > Julien Grall >
On 04/14/2014 06:52 PM, HyonYoung Choi wrote: > Hello all, Hello HyonYoung, > I have modified all as Julien mentioned. No changes. > > When I change ".dtsi" file, is just executing "make dtbs" right? Yes. > I got something printed out after putting "debug=y" to xen-make. > However it is some characters not based on alphabet. > Wrong port? I don't have any octa board. I won't be more helpful than Google/the Device Tree/U-boot/Linux. You will have to dig into the code and see what is the issue. If you get some output that means you are using the right port. The UART layout is an exynos4210 (see xen/arch/arm/arm32/debug-exynos4210.inc). My guess is the clock frequency is not the same on the exynos5250 and the exynos5420. Regards,
I really appreciate for all your help Thanks Hyonyoung On Mon, Apr 14, 2014 at 2:34 PM, Julien Grall <julien.grall@linaro.org>wrote: > On 04/14/2014 06:52 PM, HyonYoung Choi wrote: > > Hello all, > > Hello HyonYoung, > > > I have modified all as Julien mentioned. No changes. > > > > When I change ".dtsi" file, is just executing "make dtbs" right? > > Yes. > > > I got something printed out after putting "debug=y" to xen-make. > > However it is some characters not based on alphabet. > > Wrong port? > > I don't have any octa board. I won't be more helpful than Google/the > Device Tree/U-boot/Linux. You will have to dig into the code and see > what is the issue. > > If you get some output that means you are using the right port. The UART > layout is an exynos4210 (see xen/arch/arm/arm32/debug-exynos4210.inc). > > My guess is the clock frequency is not the same on the exynos5250 and > the exynos5420. > > Regards, > > -- > Julien Grall >
On Mon, Apr 14, 2014 at 10:37 AM, Julien Grall <julien.grall@linaro.org> wrote: > On 04/14/2014 06:07 PM, Suriyan Ramasami wrote: > >> Also, please note the typo for EARLY_PRINTK_BAUD. I guess Julien >> missed a 0 at the end. > > Hrmmm, right. I didn't check my patch. > >> >> For the exynos5410, this is what I did with some expert guidance from >> Julien and Ian Campbell. I shall document it here, as it might help >> you too. >> >> Changes in XEN (xen 4.4 stable) (first lets get XEN to boot and show >> some output) >> 1. change: xen/arch/arm/platforms/exynos5.c structure: >> exynos5_dt_compat[], and add “samsung,exynos5410” in that list >> For you it might be "samsung,exynos5420" -> check your dtsi file. > > Do you plan to send a patch for adding odroid Xu support in Xen? > That is my intent. I have yet to find time to resolve the other issues when enabling multiple CPUs. > >> 2. Linux kernel exynos5410.dtsi (for you possibly exynos5420.dtsi)to >> have the ARCH generic timer information. You might already have it. > > Do you plan to send this patch on Linux upstream? > I guess I will take this one up as well. >> timer { >> compatible = "arm,cortexa15timer","arm,armv7timer"; > > I guess you meant arm,armv7-timer? That is correct, somehow the "-" characters got eaten in the email. It should be: "arm,cortex-a15-timer", "arm,armv7-timer" > >> interrupts = <1 13 0xf08>, >> <1 14 0xf08>, >> <1 11 0xf08>, >> <1 10 0xf08>; >> clockfrequency = <24000000>; >> }; >> Above works for 5250 and 5410. >> 3. Comment out all CPUs but the first cpu to start with (done in your >> exynos5420.dtsi file) >> 4. As Tod mentioned, you are missing the dtb file that you need to >> pass as 3rd parameter to the bootm command. -> bootm $kernel_addr_t - >> $dtb_addr_t >> 5. The bootargs that you have set for xen, need to have the >> console=dtuart dtuart=/serial@12C20000. >> For you as Julien pointed out it might be @12C30000 >> I am not sure if just settign bootargs will help. I wonder if it has >> to be fdt set to /chosen etc. I have pasted a working env file which >> you can modify and convert to scr to run it if need be. > > We should see some messages > >> For building XEN (make dist-xen), I am not sure if you have to add >> debug=y as well for the CONFIG_EARLY_PRINTK=exynos5420 to be pulled in >> - but, please do check on that. > > Aargh, I though Ian's patch to print an error when CONFIG_EARLY_PRINTK > is used without debug=y was in Xen 4.4. > > From HyonYoung's previous mail, debug=y was not set. > > Regards, > > -- > Julien Grall
diff --git a/xen/arch/arm/Rules.mk b/xen/arch/arm/Rules.mk index c551afb..ddc2e28 100644 --- a/xen/arch/arm/Rules.mk +++ b/xen/arch/arm/Rules.mk @@ -57,6 +57,12 @@ EARLY_PRINTK_INIT_UART := y EARLY_PRINTK_BAUD := 115200 EARLY_UART_BASE_ADDRESS := 0x12c20000 endif +ifeq ($(CONFIG_EARLY_PRINTK), exynos5420) +EARLY_PRINTK_INC := exynos4210 +EARLY_PRINTK_INIT_UART := y +EARLY_PRINTK_BAUD := 11520 +EARLY_UART_BASE_ADDRESS := 0x12c30000 +endif ifeq ($(CONFIG_EARLY_PRINTK), midway) EARLY_PRINTK_INC := pl011 EARLY_PRINTK_BAUD := 115200