Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

liteeth: update register offsets + other fixes #2

Conversation

mczerski
Copy link

  • update register map
  • use normal iowrite* functions
  • disable events on driver init
  • clear pending event when received incorrect packet length

- update register map
- use normal iowrite* functions
- disable events on driver init
- clear pending event when received incorrect packet length
@frantony
Copy link
Member

@mczerski

Please add link to the commit which updated hardware for new register map.

Is there prebuilt image for testing?

I have tried to use litex-hub/linux-on-litex-vexriscv#164 on Arty board but miitool reports that there is no phy connected.

@mczerski
Copy link
Author

@frantony I do not know which commit caused the changes. I'm using de0nano board and there is no prebuild bitstreams so I use current master commits from liteeth and litex repos.

Maybe the issue is related with this comment:

/* Helper routines for accessing MMIO over a wishbone bus.
 * Each 32 bit memory location contains a single byte of data, stored
 * little endian
 */

On my setup the 32bit registers are accessed as continous 4 bytes space. In liteeth linux driver this seems to be handled by the config option so both access methods are possible (by choosing the correct config option). So I suppose the correct solution would be to do it the same way as is in linux driver.

frantony pushed a commit that referenced this pull request Apr 15, 2021
For the sandbox architecture, we use __sanitizer_start_switch_fiber
and __sanitizer_finish_switch_fiber to tell ASan when we switch stacks.

If we don't, ASan complains that:

  ==2472828==WARNING: ASan is ignoring requested __asan_handle_no_return:
    stack top: 0xff9fc000; bottom 0xf3be8000; size: 0x0be14000 (199311360)
  False positive error reports may follow
  For details see google/sanitizers#189

This works on 64-bit sandbox, but 32-bit sandbox currently crashes on
bthread -v:

==2469590==AddressSanitizer CHECK failed: ../../../../../src/libsanitizer/asan/asan_poisoning.cpp:37 "((AddrIsAlignedByGranularity(addr + size))) != (0)" (0x0, 0x0)
    #0 0xf7a4aa46 in AsanCheckFailed ../../../../../src/libsanitizer/asan/asan_rtl.cpp:73
    #1 0xf7a6b5cf in __sanitizer::CheckFailed(char const*, int, char const*, unsigned long long, unsigned long long) ../../../../../src/libsanitizer/sanitizer_common/sanitizer_termination.cpp:78
    #2 0xf7a4489f in __asan::PoisonShadow(unsigned long, unsigned long, unsigned char) ../../../../../src/libsanitizer/asan/asan_poisoning.cpp:37
    #3 0xf7a4c81b in __asan_handle_no_return ../../../../../src/libsanitizer/asan/asan_rtl.cpp:595
    #4 0x566a1ce7 in bthread_schedule /home/a3f/dl/barebox-stm32mp/common/bthread.c:178
    #5 0x566a1d54 in bthread_reschedule /home/a3f/dl/barebox-stm32mp/common/bthread.c:165
    #6 0x566a1d80 in bthread_trampoline /home/a3f/dl/barebox-stm32mp/common/bthread.c:56
    #7 0x567f5bfb in coroutine_bootstrap (/home/a3f/dl/build/barebox/sandbox/barebox+0x1bdbfb)
    #8 0x567f5c4b in coroutine_trampoline (/home/a3f/dl/build/barebox/sandbox/barebox+0x1bdc4b)
    #9 0xf7f7056f  (linux-gate.so.1+0x56f)
    #10 0xf7f70558  (linux-gate.so.1+0x558)
    #11 0x56892fff  (/home/a3f/dl/build/barebox/sandbox/barebox+0x25afff)

Just disable the special ASan accounting there until this is figured
out. bthreads still function there, but ASan may yield false positives
according to the message. This does not affect non-sandbox platforms.

Signed-off-by: Ahmad Fatoum <ahmad@a3f.at>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
@frantony
Copy link
Member

Your changes with some changes are incorporated into the commit 0025baa

Signed-off-by: Marek Czerski <m.czerski@ap-tech.pl> is added to the commit message.

@frantony frantony closed this Aug 13, 2021
frantony pushed a commit that referenced this pull request May 17, 2022
Fix memory leak of propname.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants