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

lx_kit/lx_emul: enable x86 and 32-bit arm #4411

Closed
skalk opened this issue Feb 8, 2022 · 0 comments
Closed

lx_kit/lx_emul: enable x86 and 32-bit arm #4411

skalk opened this issue Feb 8, 2022 · 0 comments

Comments

@skalk
Copy link
Member

skalk commented Feb 8, 2022

The re-newed lx_emul and lx_kit layers to support porting of Linux kernel drivers was written for ARM 64-bit initially. Now, that we want to use this new approach for all driver ports, we have to support other architectures as well.

@skalk skalk added the feature label Feb 8, 2022
skalk added a commit to skalk/genode that referenced this issue Feb 8, 2022
We use the architecture-specific setjmp/longjmp implementation without
modification in the newer lx_kit implementation as well. There is no
need for a duplication.

Ref genodelabs#4411
skalk added a commit to skalk/genode that referenced this issue Feb 8, 2022
skalk added a commit to skalk/genode that referenced this issue Feb 8, 2022
Until now, the lx_emul layer addressed a 5.11 Linux Kernel port,
now that we add new architectures it is better to update the default version
first. There are especially changes in the task_struct code,
and the signature of some functions in the paging subsystem changed.

Ref genodelabs#4411
skalk added a commit to skalk/genode that referenced this issue Feb 8, 2022
Split in between x86 and arm code. Move arm-specifics away from
generic include pathes.

Ref genodelabs#4411
skalk pushed a commit to skalk/genode that referenced this issue Feb 8, 2022
This change is necessary for also supporting 32bit platforms.

Ref genodelabs#4411
skalk pushed a commit to skalk/genode that referenced this issue Feb 8, 2022
skalk added a commit to skalk/genode that referenced this issue Feb 9, 2022
We use the architecture-specific setjmp/longjmp implementation without
modification in the newer lx_kit implementation as well. There is no
need for a duplication.

Ref genodelabs#4411
skalk added a commit to skalk/genode that referenced this issue Feb 9, 2022
skalk added a commit to skalk/genode that referenced this issue Feb 9, 2022
Until now, the lx_emul layer addressed a 5.11 Linux Kernel port,
now that we add new architectures it is better to update the default version
first. There are especially changes in the task_struct code,
and the signature of some functions in the paging subsystem changed.

Ref genodelabs#4411
skalk added a commit to skalk/genode that referenced this issue Feb 9, 2022
Split in between x86 and arm code. Move arm-specifics away from
generic include pathes.

Ref genodelabs#4411
skalk pushed a commit to skalk/genode that referenced this issue Feb 9, 2022
This change is necessary for also supporting 32bit platforms.

Ref genodelabs#4411
skalk pushed a commit to skalk/genode that referenced this issue Feb 9, 2022
skalk pushed a commit to skalk/genode that referenced this issue Feb 9, 2022
The function within this commit were taken verbatim from the
original Linux implementation.

Ref genodelabs#4411
skalk pushed a commit to skalk/genode that referenced this issue Feb 9, 2022
skalk pushed a commit to skalk/genode that referenced this issue Feb 9, 2022
The x86 platform driver uses a different API than the one for ARM for
which the lx_kit glue code was designed. Since the x86 platform driver
will eventually adopt a similar interface we implement a wrapper that
encapsulates the old interface.

Ref genodelabs#4411
skalk pushed a commit to skalk/genode that referenced this issue Feb 9, 2022
skalk added a commit to skalk/genode that referenced this issue Feb 9, 2022
@skalk skalk added the fixed label Feb 10, 2022
skalk added a commit to skalk/genode-allwinner that referenced this issue Feb 10, 2022
* The upstream Linux Kernel version is now 5.14, no need for task_struct quirk
* _alloc_pages_bulk, wake_q_add, wake_up_q are provided by common lx_emul
* Some pathes and compilation units in the common lx_emul have changed,
  due to architectural split

Ref genodelabs/genode#4411
skalk added a commit to skalk/genode that referenced this issue Feb 10, 2022
We use the architecture-specific setjmp/longjmp implementation without
modification in the newer lx_kit implementation as well. There is no
need for a duplication.

Ref genodelabs#4411
skalk added a commit to skalk/genode that referenced this issue Feb 10, 2022
skalk added a commit to skalk/genode that referenced this issue Feb 10, 2022
Until now, the lx_emul layer addressed a 5.11 Linux Kernel port,
now that we add new architectures it is better to update the default version
first. There are especially changes in the task_struct code,
and the signature of some functions in the paging subsystem changed.

Ref genodelabs#4411
skalk added a commit to skalk/genode that referenced this issue Feb 10, 2022
Split in between x86 and arm code. Move arm-specifics away from
generic include pathes.

Ref genodelabs#4411
skalk pushed a commit to skalk/genode that referenced this issue Feb 10, 2022
This change is necessary for also supporting 32bit platforms.

Ref genodelabs#4411
skalk pushed a commit to skalk/genode that referenced this issue Feb 10, 2022
skalk pushed a commit to skalk/genode that referenced this issue Feb 10, 2022
The function within this commit were taken verbatim from the
original Linux implementation.

Ref genodelabs#4411
skalk pushed a commit to skalk/genode that referenced this issue Feb 10, 2022
skalk pushed a commit to skalk/genode that referenced this issue Feb 10, 2022
The x86 platform driver uses a different API than the one for ARM for
which the lx_kit glue code was designed. Since the x86 platform driver
will eventually adopt a similar interface we implement a wrapper that
encapsulates the old interface.

Ref genodelabs#4411
skalk pushed a commit to skalk/genode that referenced this issue Feb 10, 2022
skalk added a commit to skalk/genode that referenced this issue Feb 10, 2022
nfeske pushed a commit that referenced this issue Feb 11, 2022
We use the architecture-specific setjmp/longjmp implementation without
modification in the newer lx_kit implementation as well. There is no
need for a duplication.

Ref #4411
nfeske pushed a commit that referenced this issue Feb 11, 2022
nfeske pushed a commit that referenced this issue Feb 11, 2022
Until now, the lx_emul layer addressed a 5.11 Linux Kernel port,
now that we add new architectures it is better to update the default version
first. There are especially changes in the task_struct code,
and the signature of some functions in the paging subsystem changed.

Ref #4411
nfeske pushed a commit that referenced this issue Feb 11, 2022
Split in between x86 and arm code. Move arm-specifics away from
generic include pathes.

Ref #4411
nfeske pushed a commit that referenced this issue Feb 11, 2022
This change is necessary for also supporting 32bit platforms.

Ref #4411
nfeske pushed a commit that referenced this issue Feb 11, 2022
The function within this commit were taken verbatim from the
original Linux implementation.

Ref #4411
nfeske pushed a commit that referenced this issue Feb 11, 2022
nfeske pushed a commit that referenced this issue Feb 11, 2022
The x86 platform driver uses a different API than the one for ARM for
which the lx_kit glue code was designed. Since the x86 platform driver
will eventually adopt a similar interface we implement a wrapper that
encapsulates the old interface.

Ref #4411
nfeske pushed a commit that referenced this issue Feb 11, 2022
Original commit by Josef Soentgen.

Fix #4411
nfeske pushed a commit to genodelabs/genode-allwinner that referenced this issue Feb 11, 2022
* The upstream Linux Kernel version is now 5.14, no need for task_struct quirk
* _alloc_pages_bulk, wake_q_add, wake_up_q are provided by common lx_emul
* Some pathes and compilation units in the common lx_emul have changed,
  due to architectural split

Ref genodelabs/genode#4411
nfeske pushed a commit that referenced this issue Feb 15, 2022
We use the architecture-specific setjmp/longjmp implementation without
modification in the newer lx_kit implementation as well. There is no
need for a duplication.

Ref #4411
nfeske pushed a commit that referenced this issue Feb 15, 2022
nfeske pushed a commit that referenced this issue Feb 15, 2022
Until now, the lx_emul layer addressed a 5.11 Linux Kernel port,
now that we add new architectures it is better to update the default version
first. There are especially changes in the task_struct code,
and the signature of some functions in the paging subsystem changed.

Ref #4411
nfeske pushed a commit that referenced this issue Feb 15, 2022
Split in between x86 and arm code. Move arm-specifics away from
generic include pathes.

Ref #4411
nfeske pushed a commit that referenced this issue Feb 15, 2022
This change is necessary for also supporting 32bit platforms.

Ref #4411
nfeske pushed a commit that referenced this issue Feb 15, 2022
The function within this commit were taken verbatim from the
original Linux implementation.

Ref #4411
nfeske pushed a commit that referenced this issue Feb 15, 2022
nfeske pushed a commit that referenced this issue Feb 15, 2022
The x86 platform driver uses a different API than the one for ARM for
which the lx_kit glue code was designed. Since the x86 platform driver
will eventually adopt a similar interface we implement a wrapper that
encapsulates the old interface.

Ref #4411
@nfeske nfeske closed this as completed in da55425 Feb 15, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant