Re: [PATCH v4 1/5] ARM: Add interface for registering and calling firmware-specific operations

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



2012/11/22, Tomasz Figa <t.figa@xxxxxxxxxxx>:
> Some boards are running with secure firmware running in TrustZone secure
> world, which changes the way some things have to be initialized.
>
> This patch adds an interface for platforms to specify available firmware
> operations and call them.
>
> A wrapper macro, call_firmware_op(), checks if the operation is provided
> and calls it if so, otherwise returns -ENOSYS to allow fallback to
> legacy operation..
>
> By default no operations are provided.
>
> Example of use:
>
> In code using firmware ops:
>
> 	__raw_writel(virt_to_phys(exynos4_secondary_startup),
> 		CPU1_BOOT_REG);
>
> 	/* Call Exynos specific smc call */
> 	if (call_firmware_op(cpu_boot, cpu) == -ENOSYS)
> 		cpu_boot_legacy(...); /* Try legacy way */
>
> 	gic_raise_softirq(cpumask_of(cpu), 1);
>
> In board-/platform-specific code:
>
> 	static int platformX_do_idle(void)
> 	{
> 		/* tell platformX firmware to enter idle */
> 	        return 0;
> 	}
>
> 	static int platformX_cpu_boot(int i)
> 	{
> 		/* tell platformX firmware to boot CPU i */
> 		return 0;
> 	}
>
> 	static const struct firmware_ops platformX_firmware_ops = {
> 		.do_idle	= exynos_do_idle,
> 		.cpu_boot	= exynos_cpu_boot,
> 		/* other operations not available on platformX */
> 	};

i am thinking the firmware_ops should be namespaced, some hardware has
firmware, firmware_ops should not be using a global namespace here.

>
> 	static void __init board_init_early(void)
> 	{
> 	        register_firmware_ops(&platformX_firmware_ops);
> 	}
>

-barry
--
To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux SoC Development]     [Linux Rockchip Development]     [Linux USB Development]     [Video for Linux]     [Linux Audio Users]     [Linux SCSI]     [Yosemite News]

  Powered by Linux