#3015 closed task (fixed)
Add support for IBM PPC 750 chip
Reported by: | phongvanpham | Owned by: | joel.sherrill@… |
---|---|---|---|
Priority: | normal | Milestone: | 5.1 |
Component: | arch/powerpc | Version: | 5 |
Severity: | normal | Keywords: | |
Cc: | Blocked By: | ||
Blocking: |
Description
Currently MPC750 chip is supported. However, PPC750 (from IBM) is very close to MPC750 except minor differences. Enclosed is the delta to support PPC750.
Attachments (8)
Change History (22)
Changed on 05/09/17 at 23:29:10 by phongvanpham
Attachment: | cpuIdent.c added |
---|
Changed on 05/09/17 at 23:29:39 by phongvanpham
Attachment: | cpuIdent.c.orig added |
---|
This is the original file (before change) for diff'ing purposes to see code delta
Changed on 05/09/17 at 23:29:58 by phongvanpham
Attachment: | cpuIdent.h added |
---|
Baseline of this version is 4.12
Changed on 05/09/17 at 23:30:18 by phongvanpham
Attachment: | cpuIdent.h.orig added |
---|
This is the original file (before change) for diff'ing purposes to see code delta
Changed on 05/09/17 at 23:30:38 by phongvanpham
Attachment: | ppc_exc_categories.c added |
---|
Baseline of this version is 4.12
Changed on 05/09/17 at 23:31:01 by phongvanpham
Attachment: | ppc_exc_categories.c.orig added |
---|
This is the original file (before change) for diff'ing purposes to see code delta
comment:1 Changed on 05/11/17 at 07:31:02 by Sebastian Huber
Milestone: | 4.12 → 4.12.0 |
---|
comment:2 follow-up: 3 Changed on 05/12/17 at 05:16:56 by Sebastian Huber
Has the existing PPC 740 a performance monitor exception? Maybe use one category for both variants.
Changed on 05/12/17 at 18:39:29 by phongvanpham
Attachment: | 0001-Add-support-for-IBM-PowerPC-750-chip.patch added |
---|
patch
comment:3 Changed on 05/17/17 at 16:12:53 by phongvanpham
Replying to Sebastian Huber:
Has the existing PPC 740 a performance monitor exception? Maybe use one category for both variants.
Current ppc_booke_category_table (exception category for PPC 740) code does not have exception vector 0x1700 supported. Whether or not PPC 740 does have exception vector 0x1700 is unknown since I am not working on that chip nor do I have the datasheet for it. For IBM PowerPC750, exception 0x1700 is Thermal Management. ASM_60X_ITM_VECTOR is defined to be 0x17
comment:4 follow-up: 5 Changed on 05/17/17 at 16:25:08 by Joel Sherrill
I did a quick google and turned up this:
https://people.cs.clemson.edu/~mark/ppc750.pdf
Which has 740 and 750 in the title. It lists 0x1700 as Thermal Management and doesn't appear to distinguish 740 from 750.
One odd thought is whether there is an MPC740 which is different from the PPC740. Clearly from the "About This Book" section, they are nearly identical:
The primary objective of this user’s manual is to define the functionality of the PowerPC 750™ and PowerPC 740™ microprocessors for use by software and hardware developers. Although the emphasis of this manual is upon the 750, unless otherwise noted, all information here applies to 740.
Maybe that reference helps.
comment:5 Changed on 05/17/17 at 16:33:34 by phongvanpham
Replying to Joel Sherrill:
I did a quick google and turned up this:
https://people.cs.clemson.edu/~mark/ppc750.pdf
Which has 740 and 750 in the title. It lists 0x1700 as Thermal Management and doesn't appear to distinguish 740 from 750.
One odd thought is whether there is an MPC740 which is different from the PPC740. Clearly from the "About This Book" section, they are nearly identical:
The primary objective of this user’s manual is to define the functionality of the PowerPC 750™ and PowerPC 740™ microprocessors for use by software and hardware developers. Although the emphasis of this manual is upon the 750, unless otherwise noted, all information here applies to 740.Maybe that reference helps.
Yes, that reference does help. Page 182 (where thermal exception management is described) states it is "750-specific".
comment:6 Changed on 05/22/17 at 17:16:07 by phongvanpham
Hi Developers,
What is your status on this ticket? Are you accepting the change and I am just waiting for the code to be merged to main line or you are rejecting the change or postponing it to another release at a TBD date?
If the variable names, etc. does not meet your standard, pls. change them to your liking.
comment:7 follow-up: 9 Changed on 05/23/17 at 10:09:30 by Sebastian Huber
Its still not clear to me why you cannot use the mpc_750_category_table for the IBM PPC750.
comment:8 Changed on 05/23/17 at 16:02:58 by phongvanpham
I copy & paste the two data structures for you convenience.
static const ppc_exc_categories mpc_750_category_table = {
PPC_BASIC_VECS,
[ASM_60X_SYSMGMT_VECTOR] = PPC_EXC_CLASSIC | PPC_EXC_ASYNC,
[ASM_60X_ADDR_VECTOR] = PPC_EXC_CLASSIC,
[ASM_60X_ITM_VECTOR] = PPC_EXC_CLASSIC,
};
static const ppc_exc_categories ppc_750_category_table = {
PPC_BASIC_VECS,
[ASM_60X_PERFMON_VECTOR] = PPC_EXC_CLASSIC,
[ASM_60X_SYSMGMT_VECTOR] = PPC_EXC_CLASSIC | PPC_EXC_ASYNC,
[ASM_60X_ADDR_VECTOR] = PPC_EXC_CLASSIC,
[ASM_60X_ITM_VECTOR] = PPC_EXC_CLASSIC,
};
There is 1 additional line in ppc_750 that is not in mpc750.
comment:9 follow-up: 10 Changed on 05/23/17 at 16:20:45 by phongvanpham
Replying to Sebastian Huber:
Its still not clear to me why you cannot use the mpc_750_category_table for the IBM PPC750.
Are you comfortable/Do you prefer that I add
[ASM_60X_PERFMON_VECTOR] = PPC_EXC_CLASSIC,
to mpc_750_category_table data structure? From the datasheet, it looks like this exception is missing but I only have access to PowerPC 750 chip so I can't verify anything for folks using MPC750.
comment:10 follow-up: 11 Changed on 05/24/17 at 05:19:38 by Sebastian Huber
Replying to phongvanpham:
Replying to Sebastian Huber:
Its still not clear to me why you cannot use the mpc_750_category_table for the IBM PPC750.
Are you comfortable/Do you prefer that I add
[ASM_60X_PERFMON_VECTOR] = PPC_EXC_CLASSIC,
to mpc_750_category_table data structure? From the datasheet, it looks like this exception is missing but I only have access to PowerPC 750 chip so I can't verify anything for folks using MPC750.
Yes, please add this to the mpc_750_category_table.
Changed on 05/26/17 at 00:05:14 by phongvanpham
Attachment: | 0001-Reuse-mpc750-category-instead-of-creating-new-one-an.patch added |
---|
This is the patch to reuse mpc750 category table instead of creating one with ppc750
comment:11 Changed on 05/26/17 at 00:06:48 by phongvanpham
Replying to Sebastian Huber:
Replying to phongvanpham:
Replying to Sebastian Huber:
Its still not clear to me why you cannot use the mpc_750_category_table for the IBM PPC750.
Are you comfortable/Do you prefer that I add
[ASM_60X_PERFMON_VECTOR] = PPC_EXC_CLASSIC,
to mpc_750_category_table data structure? From the datasheet, it looks like this exception is missing but I only have access to PowerPC 750 chip so I can't verify anything for folks using MPC750.
Yes, please add this to the mpc_750_category_table.
Just completed. See the additional patch attachment.
comment:12 Changed on 05/29/17 at 06:07:13 by Phong Pham <phamp@…>
Resolution: | → fixed |
---|---|
Status: | new → closed |
In 848007c/rtems:
comment:13 Changed on 10/10/17 at 06:32:53 by Sebastian Huber
Component: | libcpu → arch/powerpc |
---|
comment:14 Changed on 11/09/17 at 06:27:14 by Sebastian Huber
Milestone: | 4.12.0 → 5.1 |
---|
Milestone renamed
Baseline of this version is 4.12