Dear Stefan, In message <20210806133843.3642916-2...@denx.de> you wrote: > The optimized memset() ARM64 implementation cannot be used very early > on, since caches need to be enabled for this function to work. Otherwise > an exception occurs (only printed with very early DEBUG_UART enabled). > > This patch now implements a very simple memset() version, which will be > used in a few selected places in the ARM64 early boot process. ...
We have already implementations of memset() elsewhere, for example in lib/string.c [hey, that's even the file you are modifying...], then again in lib/efi/efi_stub.c and also in lib/efi_loader/efi_freestanding.c - so do we really need another implementation? BTW: lib/efi_loader/efi_freestanding.c looks completely useless to me. Can we dump this? [Adding Heinich to Cc:] > +void *memset_simple(void *s, int c, size_t count) > +{ > + char *s8 = (char *)s; > + > + while (count--) > + *s8++ = c; > + > + return s; > +} In which way is this different from memset() as defined in the same file (further up) with CONFIG_TINY_MEMSET enabled? And even without this option the memset() implementation here should work. Or does it not? Best regards, Wolfgang Denk -- DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: w...@denx.de : ... and it's got weird formatting - Notepad, Write, Works 3 can't : decipher it, and it's too big to go in DOS Edit. Help! Install an operating system. :-) -- Tom Christiansen