
On Thursday, July 16, 2015 at 11:36:08 PM, Scott Wood wrote:
On Thu, 2015-07-16 at 23:26 +0200, Marek Vasut wrote:
On Thursday, July 16, 2015 at 11:15:58 PM, Scott Wood wrote:
[...]
+/* temporary buffer in internal ram */ +#ifdef CONFIG_SPL_BUILD +/* in SPL temporary buffer cannot be @ 0x0 */ +unsigned char temp_buf[SPL_WRITE_SIZE] __aligned(0x10) __section(".text#"); +#else +/* put temporary buffer @ 0x0 */ +unsigned char *temp_buf = (unsigned char *)0x0; +#endif
If 0x0 is the address of an SRAM, its address should be symbolically defined. Also consider mapping it to a different virtual address, to avoid potential compiler mischief.
The DMA I believe accesses it via PA anyway, so mapping it elsewhere would only confuse everyone who's hacking on the driver. Just my 5 cents ;-)
Hey, if it wakes people up to the fact that they ought to be using virt_to_phys() (or better yet, something that distinguishes DMA addresses from physical), great! :-)
Not really useful here, but whatever.
And yes, people go on to do the same "everything is u32" crap in non-platform- specific files. Just look at drivers/block/ahci.c.
Errr, this file is platform specific.
Best regards, Marek Vasut