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

Alexander Graf agraf at suse.de
Mon Apr 28 23:27:10 CEST 2014



> Am 28.04.2014 um 20:40 schrieb York Sun <yorksun at freescale.com>:
> 
>> 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.

No complaints at all from me here :)

Alex

> 
> York
> 


More information about the U-Boot mailing list