Bios Mods -The Best BIOS Update and Modification Source

Full Version: ThinkPad T410/T510 Intel IGP/Optimus Unlock Request
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2 3 4
Thinkpad T510 laptops were released in early 2010, and some models were available with a discrete NVIDIA graphics chip, a Quadro NVS 3100m. The graphics capabilities of the Intel i5 were completely inaccessable (not mentioned in BIOS options or visible to OS), but Lenovo promised that they would add an option to the BIOS that would allow switchable graphics. Several months later, NVIDIA Optimus was announced and Lenovo's new T510 included this feature. According to Lenovo engineer Russ Compton, the only difference between my T510 and the new ones is as follows: A BIOS Update, an EEPROM Flash and a Graphics Driver. The EEPROM is probably something GPU or Optimus-specific.
Source: Post 4, http://www.lenovoblogs.com/lenovofiles/2.../#comments

I have the feeling that the EEPROM Flash is necessary for Optimus to function, but it should still be possible to use the Intel "integrated graphics" instead of NVIDIA "Discrete Graphics". The "Optimus" or "Switchable" option should be disabled, but maybe the Switchable option could be usable with Linux. When Lenovo released the updated T510, they released a BIOS update, with a changelog stating only:
"BIOS: 1.35 / ECP: 1.17
- (New) Added support for NVIDIA Optimus models."
This did not add the "Graphics Device" option to the "Display" page of older T510s. The difference between a T410, T410s and T510 BIOS are probably minimal. The "T410s" model does have a "Switchable" graphics option, but T510 is only available an "Integrated only", "Discrete" (Nvidia Quadro NVS 3100m only) and "Optimus" models.


I have no idea how the BIOS determines whether to display the "Graphics Device" option, but the BIOS probably checks for the presence of a certain PCI ID, PnP ID or Laptop model number. Since all T510 laptops, whether integrated only, discrete or Optimus-enabled, use the same BIOS, I would imagine there is some sort of table or list that is read. It appears that the PCI IDs of both Discrete and Optimus versions of the NVIDIA Quadro NVS3100m are the same, but the PnP IDs are different.


List of PCI and PnP IDs:
Code:
Integrated (Intel HD Graphics) 8086_0046_21C117AA
Discrete (T410s, NVidia Quadro NVS 3100m) 10DE_0A6C_21CD17AA
Discrete (T410, NVidia Quadro NVS 3100m) 10DE_0A6C_21CD17AA
Discrete (T510, NVIDIA Quadro NVS 3100m) 10DE_0A6C_215C17AA
Optimus (T410s, NVidia Quadro NVS 3100m) 10DE_0A6C_21CC17AA
Switchable (T410s, NVidia Quadro NVS 3100m) 10DE_0A6C_21C017AA
Source: http://www-307.ibm.com/pc/support/site.w...76476.html
I added the PnP ID of my Discrete-only T510 to the above list.


There are a huge amount of ThinkPad T510, T410 and T410s models, but here is a list of relevant model numbers separated by type of Video adapter:

Code:
T510 (Optimus)
4314-DEU
4349-GDU

T510 (Discrete)
4313-29U
4314-2MU
4314-2PU
4314-7QU
4314-7RU
4314-9CU
4314-9DU
4314-C4U
4349-2QU
4349-3HU
4349-2RU
4349-3BU
4349-4WU
4349-5AU
4349-5BU
4349-5DU
4349-G2U
4384-2RU
4384-3BU
4384-5DU
4384-H2U
ALSO: Mine is 4313-CTO and has discrete graphics. I believe this is the model of a "custom built" machine.


T410 (Optimus)
2518-AJU
2522-88U

T410 (Discrete)
2516-AEU
2518-C4U
2518-F5U
2519-4KU
2518-4LU
2518-QCU
2519-8BU
2522-23U
2522-24U
2522-2BU
2522-26U
2522-4AU
2522-4BU
2522-4EU
2522-4FU
2522-4TU
2522-KJU
2522-K2U
2522-K3U
2522-K4U
2522-K5U
2537-23U
2537-24U
2537-26U
2522-55U
2522-56U
2518-JYU


T410s (Switchable)
2904-G2U
2904-GEU
2904-GFU
2912-24U
2912-2CU
2912-30U
2912-40U
2912-3WU
2924-24U
2924-3WU

T410s (Optimus)
2904-HDU
2912-47U
2904-HDx
2904-HGx
2904-HHx
2912-43x
2912-47x
2924-9Gx
2924-9Hx
Sources: www.lenovo.com/psref/pdf/tabook.pdf and http://www-307.ibm.com/pc/support/site.w...76476.html

What I'm looking to do is enable the Graphics Device option on the Display screen of the BIOS. This could be either the Switchable Graphics option as found on a T410s, or the "Optimus" option as found on T510, T410 and T410s models. Optimus will almost certainly not function without flashing a currently unlocated EEPROM, so switchable may be "more friendly". Also, it is very important that the default setting is set to "Discrete", so that if the Intel GPU does not function, I can disconnect my CMOS battery to return to usable settings.


Thank you very much for your consideration, I will try to solicit as many donations as possible if this works!




Picture of the screen in question, PnP ID Optimus identification info. Please note, the Graphics Device option is NOT visible on models sold as "Discrete only"
http://www-307.ibm.com/pc/support/site.w...76476.html

T510 BIOS CHANGELOG:
http://download.lenovo.com/ibmdl/pub/pc/...uj25us.txt

T510 BIOS Latest Version To-Date:
http://support.lenovo.com/en_CH/download...MIGR-74265

T510 BIOS update before GPU Menu:
http://download.lenovo.com/ibmdl/pub/pc/...uj18us.exe

T510 BIOS update that added GPU menu:
http://download.lenovo.com/ibmdl/pub/pc/...uj19us.exe
well , i`m able to modify the lenovo think pad bios. but , i have some questions first .
1 ) concerning the 3 bios files you have posted
Latest BIOS:
http://support.lenovo.com/en_CH/download...MIGR-74265

BIOS update before GPU Menu:
http://download.lenovo.com/ibmdl/pub/pc/...uj18us.exe

BIOS update that added GPU menu:
http://download.lenovo.com/ibmdl/pub/pc/...uj19us.exe

all these bioses are identical from the menus ( display menu ) and the option called graphics device has only 3 selectable choises ( integrated , discrete and switchable ) it means that no optimus choice in these bioses................also i won`t to knew for what model are these bioses 410s or 510!

2 ) i entered the lenovo website and downloaded the latest t410s and t510 bios files and it already has the option called graphics device with no optimus choice ( swithchable , discrete and integrated ) .

3 ) concerning this link http://www-307.ibm.com/pc/support/site.w...76476.html
these pics means that the only diffrence is the that switchable choice is replaced by optimus choice but you still can select integrated to use the intel igd or discrete to use nvidia.............so , please explain more as i can`t understand what options you want to unlock.

i`m waiting you reply.

Thank you very much for your quick reply, Mr Hossam! I hope to better explain the situation.

Edit: I just updated my first post to make it much more clear.

So you looked at the BIOS menus and found no option for Optimus, only Switchable? That's OK! I have the feeling that the EEPROM Flash is necessary for Optimus to function, but it may still be possible to use the Intel "integrated graphics" instead of NVIDIA "Discrete Graphics". The "Optimus" or "Switchable" option should probably still be disabled. When Lenovo released the updated T510, they released a BIOS update, with a changelog stating only:
"BIOS: 1.35 / ECP: 1.17
- (New) Added support for NVIDIA Optimus models."
This did not add the "Graphics Device" option to the "Display" page of older T510s.
I believe the BIOS probably checks for the presence of a certain PCI ID, PNP ID or Laptop model number.

So: the modification request is for an early model T510 with the following properties:

Series: T
Subseries: 510 or T510
Machine Type: 4313
Model: CTO
Graphics: NVIDIA Quadro NVS 3100m, PCI ID 10de:0a6c (rev a2)

The goal is to enable the "Graphics Device" option on the Display Page of the BIOS, setting the default option to "Discrete Graphics" for safety reasons in case the Intel Graphics do not function and the CMOS battery must be removed. The Optimus or Switchable option should also be disabled until further research is made.

If you have difficulty finding which method the BIOS uses to determine whether the option should be visible, I am compiling a list of Machine Types and Model Numbers that may be useful. Also if you would be willing to share the name of the software you are using by PM or e-mail, I would be very grateful. Of course I understand if it is proprietary and must be kept private. Thanks again for your assistance!

-Tom Gelinas
Also, another consideration: The Intel Graphics Accelerator versions of these laptops appear to allocate more RAM to BIOS than the Nvidia versions do, and of course the addresses are different. Is this type of issue normally taken care of when you add/remove option roms?

http://support.lenovo.com/en_CH/download...265#memory

I'm extremely interested in what methods are used to modify these later Phoenix BIOS. I've tried searching for appropriate software on my own, but many of the sites I found are Chinese.

Edit: Combined posts, first post significantly updated.
Hi,

I examine all three BIOS & I found in all of 'em, there are more than one BIOS images. My best guess is when the BIOS update utility is executed, a script will be running to determine the model/type of the computer. When it successfully identified the model/type of the computer, correct BIOS image will be selected. The problem is to identified which BIOS image is for older model & which is for latest model.

In the latest BIOS, there are 3 BIOS images. I take a look in first BIOS image & I found 2 sets of "Graphics Device" menu; one for switchable & the other one is for Optimus. Examining the module in IDA, revealing there are 3 conditions (like if-else statement in programming) which responsible in whether the "Graphics Device" menu is visible or not. I know for sure, one of the condition is checking whether the switchable graphic system is Switchable or Optimus. This conditions can be patch/bypass.

Enabling Intel HD Graphics in older model is long shot. Unless the manufacturer is generous, usually older model lack of required components to support Intel HD Graphics. Since there are menu to enable Intel HD Graphics in the BIOS, you can try it. Also since the menu does work for latest model, it should work for older model too, assuming older model have the required components on the motherboard to support Intel HD Graphics. If toggling the options only resulting blank/black screen, it means the required components are not there on the motherboard. If you can obtain/access your computer schematic, you can check for yourself whether the Intel HD Graphics is electrically connected or not. Based on other (switchable) notebook schematic, I found the Intel HD Graphics is connected to PCH chipset & from PCH connected to output (via multiplexer if Switchable). If there is no link, Intel HD Graphics won't work.

These are 3 BIOS images found in the latest BIOS update utility:-
  1. $01C1200.FL1
  2. $01C1200.FL2
  3. $01C1210.FL2
Probably the naming convention follow computer model name? If yes, it should help Mr. AHMED HOSSAM a lot.

BTW, I don't think you should worry with the memory address map if the older & latest model share the same BIOS image. Memory address map is advanced stuff. I'm myself still studying it.
Hi kizwan!

I can't really be sure if the Intel graphics processor is electrically functional. It's one of those Intel HD graphics processors that was found in the same package (on the same die, too?) as Arrandale i5 Processors, and Lenovo also made comments about releasing a BIOS update that was supposed to add this functionality. I think what ended up happening is that they were initially going to ship these laptops with "Switchable" graphics, but there were some bugs and they shipped without that functionality. By the time they released ThinkPads with Optimus, some EEPROM required a reflash and supposedly it isn't possible to do it through software. My theory is that this EEPROM is not necessary to use "switchable" graphics, only Optimus, and Lenovo simply didn't want to support a major feature upgrade 6 months after the product's release. Of course, that EEPROM may be necessary for supplying electricity/somehow activating the Intel HD GPU.

Considering that I don't know anything about this mystery EEPROM the Lenovo blog referred to, I'm really just hoping to get the Intel HD graphics processor to work on its own, forgetting about switchable graphics. Optimus is way more complicated than "simple" switchable graphics, so I assume that it certainly won't work without that EEPROM flash. My main motivation is that NVIDIA drivers are a bit of a pain under Linux, I only wanted them for video acceleration and Intel's Linux support is much better now. I'd really like to try adding these menu options, but do you think it would be possible to set the "Discrete" option as default so that if it doesn't work I could just remove my CMOS battery?

As for my PCI PnP IDs idea (and I don't even know if that is a Windows-centric concept!), I actually found another ID on my laptop that wasn't listed on that Lenovo site. Here's an updated list, I will clean up my previous posts in a few minutes.

Code:
Integrated (Intel HD Graphics)              8086_0046_21C117AA
Discrete   (T410s, NVidia Quadro NVS 3100m) 10DE_0A6C_21CD17AA
Discrete   (T410, NVidia Quadro NVS 3100m)  10DE_0A6C_21CD17AA
Discrete   (T510, NVIDIA Quadro NVS 3100m)  10DE_0A6C_215C17AA
Optimus    (T410s, NVidia Quadro NVS 3100m) 10DE_0A6C_21CC17AA
Switchable (T410s, NVidia Quadro NVS 3100m) 10DE_0A6C_21C017AA
Mine is the one from a T510, a so-called "Discrete" model.
The whole PnP ID thing may only matter for Windows drivers, and I could probably just edit an .inf file or forget about using switchable graphics under Windows.

In terms of naming convention for the Fl1 and Fl2 files, according to this site: http://www.endeer.cz/bios.tools/bios.html the Fl1 files are for the BIOS and Fl2 files are for the Embedded Controller. Is the separate rom for embedded controller some ThinkPad weirdness, and does this even exist any longer? Also, are there pretty much no "easy-to-use" tools for editing Phoenix BIOS anymore and you guys are using disassemblers?

I could take high resolution pictures of my motherboard, but I assumed that it wouldn't be that useful because supposedly the hardware of an early T510 is identical to later ones.


Thank you both for your time, this stuff is really interesting!
Another thing: Have either of you played around with something like this: http://biosbits.org/

That was my first idea, but i`m not smart enough to use it.
To answer your questions:-
  • When you change settings in BIOS menu & it causing notebook unbootable, you can get it to boot again by clearing the CMOS (disconnect the CMOS battery).
  • I'm afraid there is no easy-to-use tools for editing Phoenix BIOS. BIOS image is a binary file. So, you'll need to use HEX editor & disassembler. Also BIOS consist of many modules. So, the tools, procedure & skills needed for BIOS mod depend on what you're going to mod.
  • The .FL1 & .FL2 files are definitely BIOS images. Modern computer still using Embedded Controller (EC). EC responsible in communicating with sensors, thermal & fan controller, etc. In the ThinkPad T510 BIOS images, firmware for the EC is not separated. Possibly EC firmware is included in the BIOS image (one of the modules).

The "BIOS Implementation Test Suite" or BITS is a tool to test whether the BIOS meets the Intel's specification/recommendation, like CPU power & performance management (C-States & P-States). It also can fix problem & error without modifying the BIOS. It inject the fix on-the-fly (into memory).
The ThinkPad Bios Flash Update utility (a frontend to WinPhlash and possibly more) actually has an option to change the model number of the system. Unfortunately, it only allows the model (last 3 characters) to be changed, so I'm stuck with 4313 machine type. I wonder if this program, WINUPTP.EXE actually modifies those BIOS files before they are flashed. It probably runs some command line arguments against WinPhlash. Perhaps these machine type strings are only stored in DMI!

[attachment=2218]

If it were to work, the default option for the Graphics Device option in BIOS would be set to Optimus, so I think i'd be in trouble because Optimus certainly won't work. I need to find out if one of those "Crisis Discs" would work on a ThinkPad, I know Lenovo and IBM offer such software for their servers.

Could someone easily make a version of the BIOS that merely changes the Graphics Device menu to Optimus-type, with a default option of "Integrated"?
(07-05-2011, 04:12 AM)kizwan Wrote: [ -> ]Hi,

I examine all three BIOS & I found in all of 'em, there are more than one BIOS images. My best guess is when the BIOS update utility is executed, a script will be running to determine the model/type of the computer. When it successfully identified the model/type of the computer, correct BIOS image will be selected. The problem is to identified which BIOS image is for older model & which is for latest model.

In the latest BIOS, there are 3 BIOS images. I take a look in first BIOS image & I found 2 sets of "Graphics Device" menu; one for switchable & the other one is for Optimus. Examining the module in IDA, revealing there are 3 conditions (like if-else statement in programming) which responsible in whether the "Graphics Device" menu is visible or not. I know for sure, one of the condition is checking whether the switchable graphic system is Switchable or Optimus. This conditions can be patch/bypass.

Enabling Intel HD Graphics in older model is long shot. Unless the manufacturer is generous, usually older model lack of required components to support Intel HD Graphics. Since there are menu to enable Intel HD Graphics in the BIOS, you can try it. Also since the menu does work for latest model, it should work for older model too, assuming older model have the required components on the motherboard to support Intel HD Graphics. If toggling the options only resulting blank/black screen, it means the required components are not there on the motherboard. If you can obtain/access your computer schematic, you can check for yourself whether the Intel HD Graphics is electrically connected or not. Based on other (switchable) notebook schematic, I found the Intel HD Graphics is connected to PCH chipset & from PCH connected to output (via multiplexer if Switchable). If there is no link, Intel HD Graphics won't work.

These are 3 BIOS images found in the latest BIOS update utility:-
  1. $01C1200.FL1
  2. $01C1200.FL2
  3. $01C1210.FL2
Probably the naming convention follow computer model name? If yes, it should help Mr. AHMED HOSSAM a lot.

BTW, I don't think you should worry with the memory address map if the older & latest model share the same BIOS image. Memory address map is advanced stuff. I'm myself still studying it.

THANKS FOR YOUR GOOD REPLY Smile
but , concerning the 3 bios file
[*]$01C1200.FL1
[*]$01C1200.FL2
[*]$01C1210.FL2

it`s known that you should only edit the FL1 file and ignore the other 2 files .
and the simplest thread about this issue is here http://forums.mydigitallife.info/threads...Bios-Files
and you are completely right about the EC firmware .
however , i forgot that and opened the FL2 file in PBE .Big Grin
but , after i have read your useful reply , i remembered that i should be concerned with the FL1 file only and ignore the other files .
after checking the FL1 bios file i found 2 sets of the graphic device option as you said.
concerning the routines controlling these options , the routines contain far calls not a near one i mean that the routine is calling subprogram which is found in other segment ( other module ) and ofcourse you need to disassemble all modules and relocate it to knew the right segment and offest. SO, i think it would be easier to delete the call or replace it than searching for routines in other modules ( i will only do this if removing the mov ax , 13h have failed to show the menu ).
THANKS AGAIN FOR YOUR REPLY , I REALLY CONSIDER YOU AS THE BEST ONE CAN MOD. PHOENIX BIOSES HERE Smile .
(07-05-2011, 12:35 AM)sequencesequence Wrote: [ -> ]Thank you very much for your quick reply, Mr Hossam! I hope to better explain the situation.

Edit: I just updated my first post to make it much more clear.

So you looked at the BIOS menus and found no option for Optimus, only Switchable? That's OK! I have the feeling that the EEPROM Flash is necessary for Optimus to function, but it may still be possible to use the Intel "integrated graphics" instead of NVIDIA "Discrete Graphics". The "Optimus" or "Switchable" option should probably still be disabled. When Lenovo released the updated T510, they released a BIOS update, with a changelog stating only:
"BIOS: 1.35 / ECP: 1.17
- (New) Added support for NVIDIA Optimus models."
This did not add the "Graphics Device" option to the "Display" page of older T510s.
I believe the BIOS probably checks for the presence of a certain PCI ID, PNP ID or Laptop model number.

So: the modification request is for an early model T510 with the following properties:

Series: T
Subseries: 510 or T510
Machine Type: 4313
Model: CTO
Graphics: NVIDIA Quadro NVS 3100m, PCI ID 10de:0a6c (rev a2)

The goal is to enable the "Graphics Device" option on the Display Page of the BIOS, setting the default option to "Discrete Graphics" for safety reasons in case the Intel Graphics do not function and the CMOS battery must be removed. The Optimus or Switchable option should also be disabled until further research is made.

If you have difficulty finding which method the BIOS uses to determine whether the option should be visible, I am compiling a list of Machine Types and Model Numbers that may be useful. Also if you would be willing to share the name of the software you are using by PM or e-mail, I would be very grateful. Of course I understand if it is proprietary and must be kept private. Thanks again for your assistance!

-Tom Gelinas
Also, another consideration: The Intel Graphics Accelerator versions of these laptops appear to allocate more RAM to BIOS than the Nvidia versions do, and of course the addresses are different. Is this type of issue normally taken care of when you add/remove option roms?

http://support.lenovo.com/en_CH/download...265#memory

I'm extremely interested in what methods are used to modify these later Phoenix BIOS. I've tried searching for appropriate software on my own, but many of the sites I found are Chinese.


WELL , i understand the issue now Smile
i have moded the bios for you and here is the link Smile
http://www.mediafire.com/?ob8lqz1thf5x2l5
you will find the 2 graphic device option sets in the display menu . also you will find the option ( os detect for switchable ) and the option ( os detect for optimus )
in other words , your new bios will contain both the optimus and switchable options but it`s sure that one of them wouldn`t work properly because of your computer hardware ( i will search more about your notebook to find what hardware it already has )

concerning flashing your bios , the lenovo bios is special and i really didn`t flash this bios before but here is a thread which explain how to flash this bios http://forums.mydigitallife.info/threads...Bios-Files
you will find in this thread an explain to how to flash and modify lenovo bios.
but , you are only concerned with this
((( 16. One file that was made is $01B8100.ROM and the second one is $01B8100_SLIC.ROM.

17. Take both of these two files, $01B8100.ROM and $01B8100_SLIC.ROM, and do not rename but place in the folder of where WINPHLASH is located.

18. Now, we need to modify some settings in Winphlash.

19. Find PHLASH.INI file and open with Notepad.

20. When PHLASH.INI opens in Notepad, find [UI]. Click underneath [UI] and add this: Advanced=1 and hideall=0 if it does not exist or if it exist with different values other than 1 and 0, then change those values to correct ones.

21. Next, in PHLASH.INI find BackupFile= and make sure the backup file is $01B8200_SLIC.BAK. Therefore, it will read in PHLASH.INI as BackupFile=$01B8200_SLIC.BAK.

22. Next, in PHLASH.INI find ImageFile= and make sure image file is $01B8200_SLIC.ROM. THerefore it will read in PHLASH.INI as ImageFile=$01B8200_SLIC.ROM

23. Now save PHLASH.INI changes and close out.

24. Now you are ready to flash your bios.

25. Open WINPHLASH - When Winphlash Opens, When winphlash opens, find SPECIFY NEW BIOS FILE and navigate to $01B8200_SLIC.ROM located in 7UET79WW FOLDER.

26. Don't worry about backup bios file - Next click ADVANCED BUTTON.

27. When Advanced Window opens and At flags, tick verify block after programming and disable Axx swapping automatic detection.

28. At DMI chose update the bios and not the DMI.

29. Press OK and then flash the bios and follow on-screen instructions.

30. Congratulations, you have just modified and successfully flashed your lenovo bios. ))))
i gave you the link to understand how to flash it ( please read it carefully and understand well the lenovo flashing method )


FINALLY , PLEASE FLASH THIS MODIFIED BIOS AND UPLOAD PICS FOR THE DISPLAY MENU TO MAKE ME KNEW IF THIS WORKED . ALSO MAKE SURE YOU HAVE A CRISIS DISK AND REMOVE THE CMOS BATTERY IF THE NOTEBOOK DIDN`T BOOT AFTER FLASHING.
I`M WAITING YOUR REPLY Smile

AHMED HOSSAM: THANK YOU SO MUCH!
I haven't tested it yet, just a few questions first Wink

I am absolutely terrified of flashing until I get a bit more information.

1. Which official BIOS is this based upon? 1.46 is the latest one I linked to in the first post.

2. Attempting to use the wrong graphics device may prevent the laptop from booting. It is absolutely necessary that the default graphics device options be set to DISCRETE and OS Detection be set to DISABLED by default. Otherwise, removing the CMOS battery would be useless! On a normal BIOS, Optimus or Switchable are default and OS Detection is Enabled.

3. Today I found out that due to a bad BIOS release by Lenovo, my laptop no longer has an SLIC table. At all. http://forums.lenovo.com/t5/T400-T500-an...499#M24344 There was once an official BIOS update that wiped it out. I know that despite its main function, Phoenix SLIC Mod Tool has many uses. Should my missing SLIC have any negative effect on the ROMs you made?

4. I have not yet determined whether ThinkPads have a BIOS Boot Block that supports a Phoenix Crisis Disk (ie. holding down multiple keys to force boot). I am still investigating this. I have found anecdotal evidence here: http://forums.mydigitallife.info/threads...post261775 and I bet that method doesn't work, but it's better than nothing. My understanding is that the Phoenix Crisis flash program blanks the screen so there's no status until the computer is restarted. I don't look forward to testing this Wink

sorry to hold things up, I just don't want to leave my machine unbootable. The crisis disk thing probably won't work, im willing to try the flash so long as those defaults are set properly Wink
Pages: 1 2 3 4