Hi All,
I have been working on porting Linux-4.15.13 kernel on our existing MPC8270
processor board. For this exercise, I have used pq2fads as a reference
board, its associated device tree and used cuImage for building the kernel.
I am facing an issue with the generic IDE flash controller driver in the new
kernel source where it fails to detect the Flash controller connected to 2GB
NAND flash available on the board. We have used non-standard IO port
addresses for this driver in the older kernel and I have added the required
code in the new kernel to setup the set of addresses that we need as IO
ports. Also, modified the code in the drivers/ide/ source to use the
non-standard IO port address. However, during boot up while inserting the
module I continue to get the below errors.
[ 4.116587] ide: forcing hda as a disk (3543/255/63)
[ 4.184190] Probing IDE interface ide0...
[ 4.226330] Machine check in kernel mode.
[ 4.233809] Caused by (from SRR1=49030):
[ 4.233826] Transfer error ack signal
[ 4.249263] IN from bad port e000000e at 004123ef
I understand that this is an addressing issue but not sure exactly what am I
missing to fix the problem. Can you provide me your inputs on debugging this
issue?
Thanks,
Sachin.
--
Sent from: http://linuxppc.10917.n7.nabble.com/linuxppc-dev-f3.html
Hi All,
I have been working on porting Linux-4.15.13 kernel on our existing MPC8270
processor board. For this exercise, I have used pq2fads as a reference
board, its associated device tree and used cuImage for building the kernel.
What it the last linux version known to work properly ?
Christophe
I am facing an issue with the generic IDE flash controller driver in the new
kernel source where it fails to detect the Flash controller connected to 2GB
NAND flash available on the board. We have used non-standard IO port
addresses for this driver in the older kernel and I have added the required
code in the new kernel to setup the set of addresses that we need as IO
ports. Also, modified the code in the drivers/ide/ source to use the
non-standard IO port address. However, during boot up while inserting the
module I continue to get the below errors.
[ 4.116587] ide: forcing hda as a disk (3543/255/63)
[ 4.184190] Probing IDE interface ide0...
[ 4.226330] Machine check in kernel mode.
[ 4.233809] Caused by (from SRR1=49030):
[ 4.233826] Transfer error ack signal
[ 4.249263] IN from bad port e000000e at 004123ef
I understand that this is an addressing issue but not sure exactly what am I
missing to fix the problem. Can you provide me your inputs on debugging this
issue?
Thanks,
Sachin.
--
Sent from: http://linuxppc.10917.n7.nabble.com/linuxppc-dev-f3.html
What it the last linux version known to work properly?
We have used it successfully in the Linux-2.6.17.6 version.
Oh, ok, there's a big gap between the two versions.
Why using 4.15.13 which is obsolete instead of using one of the Long
Term Support versions which are still maintained, like 4.14 or 4.19 ?
(see the complete list at https://www.kernel.org/category/releases.html)
Christophe
Why using 4.15.13 which is obsolete instead of using one of the Long
Term Support versions which are still maintained, like 4.14 or 4.19 ?
(see the complete list at https://www.kernel.org/category/releases.html)
Well, when I started this task 4.15.13 was probably the latest stable
release and hence we decided to port this version. In the older kernel, we
have the m8260_setup.c source file for our board where the function
"io_block_mapping" was used to configure the non-standard IO port address
starting at 0xe0000000 location. This address was passed as the base address
followed by control address and IRQ number to the ide-core.ko module. In the
new kernel we do not have an option to send these addresses and IRQ numbers
as arguments to the driver. Instead the ide-generic.c source file in the new
kernel uses the standard IO port values and IRQ values. I modified the code
in the above file to used the addresses and IRQ number we used in the past.
Also, added code in the "MMU_init" function call available under
arch/PowerPC/init_32.c to setup the IO port address range by adding the
"io_block_mapping" call and the required IO port address range.
Is there anything else that needs to be added or how can we configure the
desired IO address range in the new kernel?
Thanks,
Sachin
--
Sent from: http://linuxppc.10917.n7.nabble.com/linuxppc-dev-f3.html
Why using 4.15.13 which is obsolete instead of using one of the Long
Term Support versions which are still maintained, like 4.14 or 4.19 ?
(see the complete list at https://www.kernel.org/category/releases.html)
Well, when I started this task 4.15.13 was probably the latest stable
release and hence we decided to port this version. In the older kernel, we
have the m8260_setup.c source file for our board where the function
"io_block_mapping" was used to configure the non-standard IO port address
starting at 0xe0000000 location. This address was passed as the base address
followed by control address and IRQ number to the ide-core.ko module. In the
new kernel we do not have an option to send these addresses and IRQ numbers
as arguments to the driver. Instead the ide-generic.c source file in the new
kernel uses the standard IO port values and IRQ values. I modified the code
in the above file to used the addresses and IRQ number we used in the past.
Also, added code in the "MMU_init" function call available under
arch/PowerPC/init_32.c to setup the IO port address range by adding the
"io_block_mapping" call and the required IO port address range.
Is there anything else that needs to be added or how can we configure the
desired IO address range in the new kernel?
Also look at ide_platform.c. I imagine there must be some way to set it
up in your device tree.
I have gone through this before and also tried the pata_platform driver but
no success yet. I haven't found any example that passes the IO ports and IRQ
information through the device tree to the driver code.
Thanks,
Sachin.
--
Sent from: http://linuxppc.10917.n7.nabble.com/linuxppc-dev-f3.html
Why using 4.15.13 which is obsolete instead of using one of the Long
Term Support versions which are still maintained, like 4.14 or 4.19 ?
(see the complete list at https://www.kernel.org/category/releases.html)
Well, when I started this task 4.15.13 was probably the latest stable
release and hence we decided to port this version. In the older
kernel, we
have the m8260_setup.c source file for our board where the function
"io_block_mapping" was used to configure the non-standard IO port address
starting at 0xe0000000 location. This address was passed as the base
address
followed by control address and IRQ number to the ide-core.ko module.
In the
new kernel we do not have an option to send these addresses and IRQ
numbers
as arguments to the driver. Instead the ide-generic.c source file in
the new
kernel uses the standard IO port values and IRQ values. I modified the
code
in the above file to used the addresses and IRQ number we used in the
past.
Also, added code in the "MMU_init" function call available under
arch/PowerPC/init_32.c to setup the IO port address range by adding the
"io_block_mapping" call and the required IO port address range.
Is there anything else that needs to be added or how can we configure the
desired IO address range in the new kernel?
Le 14/02/2019 à 09:17, sgosavi1 a écrit :>> Maybe look around
>
> I have gone through this before and also tried the pata_platform
driver but
> no success yet. I haven't found any example that passes the IO ports
and IRQ
> information through the device tree to the driver code.
>
> Thanks,
> Sachin.
Maybe someone from the IDE SUBSYSTEM would be able to help better ?
Entire thread at
http://linuxppc.10917.n7.nabble.com/Kernel-panic-when-loading-the-IDE-controller-driver-td150020.html#none
Christophe
Also look at ide_platform.c. I imagine there must be some way to set it
up in your device tree.
I have gone through this before and also tried the pata_platform driver but
no success yet. I haven't found any example that passes the IO ports and IRQ
information through the device tree to the driver code.
Hopefully there are examples of passing these values through ACPI.
Thanks
Michal
Hopefully there are examples of passing these values through ACPI.
Are you suggesting here to look at the ide-acpi.c sourc file available as
part of the driver code? In my original post I mentioned that I have
modified the ide-generic.c source file to use the IO port addresses and IRQ
number that we used in the older kernel. Also, added code in the kernel
under arch/PowerPC/mm/init_32.c source to configure the addresses required
by the driver as IO ports. But the error I am getting still continues to
suggest that probably the required address range is still setup by the
kernel as IO ports.
How can we configure a set of virtual address as IO ports in the kernel
version 4.15.13?
Sachin
--
Sent from: http://linuxppc.10917.n7.nabble.com/linuxppc-dev-f3.html
Why using 4.15.13 which is obsolete instead of using one of the Long
Term Support versions which are still maintained, like 4.14 or 4.19 ?
(see the complete list at https://www.kernel.org/category/releases.html)
Well, when I started this task 4.15.13 was probably the latest stable
release and hence we decided to port this version. In the older kernel, we
have the m8260_setup.c source file for our board where the function
"io_block_mapping" was used to configure the non-standard IO port address
starting at 0xe0000000 location. This address was passed as the base address
followed by control address and IRQ number to the ide-core.ko module. In the
new kernel we do not have an option to send these addresses and IRQ numbers
as arguments to the driver. Instead the ide-generic.c source file in the new
kernel uses the standard IO port values and IRQ values. I modified the code
in the above file to used the addresses and IRQ number we used in the past.
Also, added code in the "MMU_init" function call available under
arch/PowerPC/init_32.c to setup the IO port address range by adding the
"io_block_mapping" call and the required IO port address range.
Is there anything else that needs to be added or how can we configure the
desired IO address range in the new kernel?
Please don't add new users to subsystem deprecated almost 10 years ago..
quoted
Maybe Bartlomiej Zolnierkiewicz can help ?
Christophe
Le 14/02/2019 à 09:17, sgosavi1 a écrit :>> Maybe look around
quoted
I have gone through this before and also tried the pata_platform driver but
no success yet. I haven't found any example that passes the IO ports and IRQ
information through the device tree to the driver code.
Please look at pata_of_platform.c driver from libata subsystem,
it should have all required functionality.