From mboxrd@z Thu Jan 1 00:00:00 1970 From: Scott Wood Date: Wed, 28 Nov 2007 17:04:26 -0600 Subject: [U-Boot-Users] [PATCH][FDT][UPDATE] Add common memory fixup function In-Reply-To: <526292C8-CD61-48E1-9A3B-A398E21DBB87@kernel.crashing.org> References: <474DE8CA.7020707@freescale.com> <8D4815F8-349A-4A3C-8642-38393F6617CF@kernel.crashing.org> <474DEDCD.1070009@freescale.com> <526292C8-CD61-48E1-9A3B-A398E21DBB87@kernel.crashing.org> Message-ID: <474DF3FA.1020809@freescale.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Kumar Gala wrote: > On Nov 28, 2007, at 4:38 PM, Scott Wood wrote: >> Kumar Gala wrote: >>> I don't see how to use them w/o going through an additional memcpy. >>> If you can provide a better solution I'm all for it. But I don't see >>> any reason to hold up the patch at this point. >> >> union { >> uint8_t tmp[8]; >> uint64_t mem64; >> uint32_t mem32; >> } >> >> int len; >> >> if (addrcell && *addrcell == 2) { >> mem64 = cpu_to_fdt64(memsize); >> len = 8; >> } else { >> mem32 = cpu_to_fdt32(memsize); >> len = 4; >> } > > This gets more complicated with finishing off the rest of temp since you > have to use len to figure out an index. OK, so make mem64/mem32 arrays. :-P > I'm keeping the code as is since its the simplest version. Fine, if you don't mind making people's eyes bleed... Maybe a generic function that takes a buffer pointer, a uint64_t, and a numcells? This is hardly going to be the only place that needs to write out a quantity that might be one or two cells. -Scott