[U-Boot] [PATCH v4 6/6] PPC 85xx: Add qemu-ppce500 machine

York Sun yorksun at freescale.com
Mon Apr 28 20:40:15 CEST 2014


On 02/20/2014 04:52 AM, Alexander Graf wrote:
> For KVM we have a special PV machine type called "ppce500". This machine
> is inspired by the MPC8544DS board, but implements a lot less features
> than that one.
> 
> It also provides more PCI slots and is supposed to be enumerated by
> device tree only.
> 
> This patch adds support for the generic ppce500 machine and tries to
> rely solely on device tree for device enumeration.
> 
> Signed-off-by: Alexander Graf <agraf at suse.de>
> 
> ---
> 
> v3 -> v4:
> 
>   - use new tlb map syntax
>   - check that tlb map mapped everything
>   - always save/restore r3 for cpu_init_early_f
>   - remove CONFIG_DYNAMIC_CCSRBAR
>   - make init_tlbs weak and remove all init_tlbs_dynamic() cruft
>   - always map fdt to fixed virtual address
>   - fold together AS=1 fdt map functions
>   - use tlb_map_range for CCSR map
>   - search for PCI based on device type rather than compatible
>   - remove unnecessary cast
>   - call get_linear_ram_size directly
>   - override get_tbclk with timebase-frequency fetching code
> ---

<snip>

> diff --git a/arch/powerpc/cpu/mpc85xx/cpu_init_early.c b/arch/powerpc/cpu/mpc85xx/cpu_init_early.c
> index 993b8b8..998781b 100644
> --- a/arch/powerpc/cpu/mpc85xx/cpu_init_early.c
> +++ b/arch/powerpc/cpu/mpc85xx/cpu_init_early.c
> @@ -79,7 +79,7 @@ void setup_ifc(void)
>  #endif
>  
>  /* We run cpu_init_early_f in AS = 1 */
> -void cpu_init_early_f(void)
> +void cpu_init_early_f(void *fdt)
>  {
>  	u32 mas0, mas1, mas2, mas3, mas7;
>  	int i;
> @@ -102,6 +102,12 @@ void cpu_init_early_f(void)
>  	for (i = 0; i < sizeof(gd_t); i++)
>  		((char *)gd)[i] = 0;
>  
> +	/*
> +	 * CONFIG_SYS_CCSRBAR_PHYS below may use gd->fdt_blob on ePAPR systems,
> +	 * so we need to populate it before it accesses it.
> +	 */
> +	gd->fdt_blob = fdt;
> +

Alex,

I am thinking to add back "#ifdef CONFIG_QEMU_E500" you had for your v3 and
earlier version for the above change. Do you have any concerns?

The reason I am proposing this is to use generic board architecture.
gd->fdt_blob is used by some other functions to detect if device tree exists.
Your change takes r3 from entry and treat it as device tree. It is not the case
for a normal metal SoC. I need to clear this variable.

York



More information about the U-Boot mailing list