[OpenBIOS] [PATCH 2/3] fw_cfg: add fw_cfg_find_file() and fw_cfg_read_file() functions
Mark Cave-Ayland
mark.cave-ayland at ilande.co.uk
Mon Mar 20 10:04:49 CET 2017
On 19/03/17 19:04, Segher Boessenkool wrote:
> Hi Mark,
>
> On Sun, Mar 19, 2017 at 11:46:53AM +0000, Mark Cave-Ayland wrote:
>> + uint32_t buf, count;
>> +
>> + fw_cfg_read(FW_CFG_FILE_DIR, (char *)&buf, sizeof(uint32_t));
>> + count = __be32_to_cpu(buf);
>
> It's a lot cleaner to use e.g.
>
> count = fw_cfg_read32(FW_CFG_FILE_DIR);
Yeah I know what you mean here. The reason for the above was that the
existing registers are LE, except for the fw_cfg API which is BE. And
since this was the only BE I just added it straight in...
I'm not sure I'm too excited about splitting this into a separate
function although I do see that I'm missing a couple of __be*_to_cpu()
wrappers in this patch. I'll do a resend later.
> and ideally you wouldn't use byte-swapping things at all:
>
> uint32_t fw_cfg_read32(unsigned char *p)
> {
> uint32_t x = 0;
> for (int i = 0; i < 4; i++_
> x = (x << 8) | p[i];
> return x;
> }
This still wouldn't handle the case of mixed LE and BE accesses though?
ATB,
Mark.
More information about the OpenBIOS
mailing list